/** * Updates a particular model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id the ID of the model to be updated */ public function actionUpdate($id) { $horario = Horario::model()->findByPk($id); if (isset($_POST['Horario'])) { $horario->attributes = $_POST['Horario']; $horario->hora_inicio = date('Gi', strtotime($horario->hora_inicio)); $horario->hora_fin = date('Gi', strtotime($horario->hora_fin)); if ($horario->save()) { Yii::app()->user->setFlash('success', Horarios::getDiaSemana($horario->dia_semana) . ' ' . Horarios::hora($horario->hora_inicio) . ' guardado con éxito'); $pgPrograma = PgPrograma::model()->with('pagina')->findByPk($horario->pg_programa_id); $this->redirect(array('programas/view', 'id' => $pgPrograma->pagina->micrositio_id)); } //if($horario->save()) } //if(isset($_POST['Horario'])) // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); $this->render('modificar', array('model' => $horario)); }
<?php $this->pageTitle = 'Modificar horario ' . Horarios::getDiaSemana($model->dia_semana) . ' ' . Horarios::hora($model->hora_inicio); $bc = array(); $bc['Padre'] = $this->createUrl('programas/view', array('id' => $model->pgPrograma->pagina->micrositio->id)); $bc[] = 'Editar'; $this->breadcrumbs = $bc; ?> <div class="col-sm-12"> <?php echo $this->renderPartial('_form', array('model' => $model)); ?> </div>
<?php $this->pageTitle = 'Modificar horario ' . Horarios::getDiaSemana($model->dia_semana) . ' ' . Horarios::hora($model->hora_inicio); ?> <h1>Modificar horario <?php echo Horarios::getDiaSemana($model->dia_semana) . ' ' . Horarios::hora($model->hora_inicio) . ' a ' . Horarios::hora($model->hora_fin); ?> </h1> <?php echo $this->renderPartial('_form', array('model' => $model));
public static function html_emision($emision) { $subitem = null; $html = ''; $dias = ''; //Ordeno por hora de inicio usort($emision, "Horarios::ob_hora_inicio"); //Agrupo por horas $array_final = array(); foreach ($emision as $e) { $hora = $e['hora_inicio']; $array_final[$hora][] = $e; } foreach ($array_final as $item) { //Este ciclo permite definir los días de la transmisión a una hora determinada foreach ($item as $subitem) { //Si es el primer día lo agrego limpio al html if ($subitem === reset($item)) { $dias .= Horarios::getDiaSemana($subitem['dia_semana']) . ' '; } //Si es el segundo item y no hay más después, lo concateno con un "y" al inicio if ($subitem !== reset($item) && count($item) == 2) { if ($subitem === end($item)) { $dias .= ' y ' . Horarios::getDiaSemana($subitem['dia_semana']) . ' '; } } //Si hay más de dos items if ($subitem !== reset($item) && count($item) > 2) { $prev = prev($item); //Si el item es contiguo lo concateno con una coma ", " (Por ejemplo, lunes, martes) if ($subitem['dia_semana'] === $prev['dia_semana'] + 1) { $dias .= ', ' . Horarios::getDiaSemana($subitem['dia_semana']) . ' '; } else { if ($subitem === end($item)) { $dias .= ' a ' . Horarios::getDiaSemana($subitem['dia_semana']) . ' '; } } } } //Si no es el primer item, y tampoco el último agrego una coma para separarlo del anterior if ($item !== reset($array_final) && $item !== end($array_final)) { $html .= ', '; } else { if ($item === end($array_final) && $item !== reset($array_final)) { $html .= ' y '; } } $html .= $dias; //Verifico si el patrón de los días de emisión se repite, (strpos) //por ejemplo lunes a viernes a las 4pm y lunes a viernes a las 8pm //en este caso se obviaría el segundo quedando lunes a viernes a las 4pm y a las 8pm. if ($subitem !== reset($item)) { $posicion_inicial = strpos($html, $dias); $posicion_final = strrpos($html, $dias); //Busco la primera y la última ocurrencia, si son diferentes es porque hay más de una //en cuyo caso obvio la segunda if ($posicion_inicial !== $posicion_final) { $html = substr_replace($html, '', $posicion_final); } //También habría que mirar si son varios los que se repiten para poner el y o la coma (,) } $dias = ''; //Limpio el html de días //Después de definir los días de la transmisión se pone la hora $html .= ' a la'; //Si es entre la 1 y las 2, queda en singular (A la 1:30 pm) if ($subitem['hora_inicio'] >= 1300 && $subitem['hora_inicio'] < 1400) { $html .= ' '; } else { $html .= 's '; } //Concateno la hora de emisión formateada $html .= '<time>' . Horarios::hora($subitem['hora_inicio']) . '</time>'; } return $html; }