public function actionAjaxGetChannels() { $pointId = Yii::app()->request->getPost('pointId'); $pointDateStr = date('Y-m-d'); $requestTime = date('H:i:s'); $pointDatetimeStr = $pointDateStr . " 23:59:59"; $pointDateTimestamp = strtotime($pointDateStr); $weekDay = strtolower(date('D', $pointDateTimestamp)); $Playlist = new Playlists(); $pointChannels = Channel::model()->findAll('id_point=:id_point AND window_id IS NOT NULL', array(':id_point' => $pointId)); $resp = array(); foreach ($pointChannels as $pointChannel) { $pointChannelId = $pointChannel->internalId; $windowId = $pointChannel->window_id; if (!is_null($windowId)) { $bg = $Playlist->GetBGContentArr($pointId, $pointChannelId, $pointDatetimeStr, $weekDay); $adv = $Playlist->GetAdvContentArr($pointId, $pointChannelId, $pointDatetimeStr, $weekDay); $blockStructedContent = $Playlist->BuildBlockStructedContent($bg, $adv); $straightTimeContent = $Playlist->ConverBlockStructedToStraightTimeContent($blockStructedContent); $straightTimeContentHisToSecs = $this->ConvertHisToSecsInStraightTime($straightTimeContent, $requestTime); $url = Yii::app()->request->getBaseUrl(true) . '/spool/points/' . $pointId . '/' . $pointChannelId; $straightTimeContentWithURLPath = $this->UpdateContentPathes($straightTimeContentHisToSecs, $url); $window = Window::model()->findByPK($windowId); $widgetToChannel = WidgetToChannel::model()->find("channel_id = :channel_id", array("channel_id" => $pointChannel->id)); $widget = ''; if (count($widgetToChannel) > 0) { $widgetModel = Widget::model()->findByPk($widgetToChannel['widget_id']); $widget = $widgetModel['content']; } $resp[] = array('width' => $window->width, 'height' => $window->height, 'top' => $window->top, 'left' => $window->left, 'content' => $straightTimeContentWithURLPath, 'widget' => $widget); } } echo json_encode($resp); exit; }
public function ajax($vars) { $widget = Widget::model()->findByPk($vars['widgetId']); $content = $widget->content; if ($content && !Yii::app()->user->isGuest) { if (isset($vars['ContentModel'])) { $content->attributes = $vars['ContentModel']; } if (isset($vars['attribute']) && isset($vars['width']) && isset($vars['height']) && isset($vars['tag']) && isset($vars['number'])) { $html = $content->{$vars['attribute']}; preg_match_all("/<{$vars['tag']}[^>]*?\\/?>/msiu", $html, $matches, PREG_OFFSET_CAPTURE); $t = $matches[0][intval($vars['number'])]; $source = $t[0]; $repl = preg_replace("/width=[\"\\']?([\\d]*)[\"\\'?]/msi", 'width="' . intval($vars['width']) . '"', $t[0]); if ($repl == $t[0]) { $repl = str_ireplace('<' . $vars['tag'], '<' . $vars['tag'] . ' width="' . intval($vars['width']) . '"', $repl); } $t[0] = $repl; $repl = preg_replace("/height=[\"\\']?([\\d]*)[\"\\'?]/msi", 'height="' . intval($vars['height']) . '"', $repl); if ($repl == $t[0]) { $repl = str_ireplace('<' . $vars['tag'], '<' . $vars['tag'] . ' height="' . intval($vars['height']) . '"', $repl); } $repl = preg_replace("/width:[\\s]+?([\\d]*)px/msi", 'width: ' . intval($vars['width']) . 'px', $repl); $repl = preg_replace("/height:[\\s]+?([\\d]*)px/msi", 'height: ' . intval($vars['height']) . 'px', $repl); $content->{$vars['attribute']} = substr($html, 0, $t[1]) . str_replace($source, $repl, substr($html, $t[1], strlen($source))) . substr($html, $t[1] + strlen($source)); } echo $widget->save() && $content->save(); } }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = Widget::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function loadWidget() { $widget = Widget::model()->findAllByAttributes(array('groups' => $this->widgetID), array('order' => 'sort ASC')); if ($widget === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $widget; }
protected function afterSave() { parent::afterSave(); if ($this->isNewRecord) { $menu = Widget::model()->findByPk($this->term_id); $menu->saveCounters(array('count' => '1'), array('condition' => "term_id = :term_id"), array(':term_id' => $this->term_id)); } }
protected function setWidget() { $child = get_called_class(); include_once $child . '/models/model_' . $child . '.php'; $modelClass = "model_{$child}"; $model = new $modelClass(); // set value of model property foreach (get_object_vars($model) as $property => $value) { if (isset($this->data[$property])) { $model->{$property} = $this->data[$property]; } } // check if widget is isset and set attributes for validation if (isset($_POST[$this->param['ID'] . '-save'])) { $model->attributes = $_POST[$modelClass]; } // check validation if (isset($_POST[$this->param['ID'] . '-save']) && $model->validate()) { // mulai transaksi $transaction = Yii::app()->db->beginTransaction(); try { foreach ($_POST[$modelClass] as $field => $fd) { $array["{$field}"] = $fd; } $array['last_update'] = date('Y-m-d H:i:s'); if (isset($_POST['visibleOn'])) { $array['visibleOn'] = $_POST['visibleOn']; } $model = Widget::model()->findByPk((int) $this->param['ID']); if ($model !== null) { $model->description = serialize(str_replace(Helper::rootImg('content'), '', $array)); if ($model->save(false)) { $transaction->commit(); $message = "<strong>Well done!</strong> You successfully Saving"; Yii::app()->user->setFlash('success', $message); $this->controller->refresh(); } else { Yii::app()->user->setFlash('error', "on error occured, please try again"); } } else { Yii::app()->user->setFlash('error', "on error occured, please try again"); } } catch (Exception $e) { $transaction->rollBack(); if (true == YII_DEBUG) { Yii::app()->user->setFlash('error', "{$e->getMessage()}"); } else { Yii::app()->user->setFlash('error', "on error occured, please try again"); } // for production // $this->refresh(); } } else { $this->render('_form', array('model' => $model, 'param' => $this->param, 'data' => $this->data)); } }
public function actionIndex() { Yii::app()->returnUrl; // TODO: component has to be called, preload does not work $criteria = new CDbCriteria(); $criteria->condition = 'controllerId = :controllerId AND actionName = :actionName AND requestParam != :universalValue'; $criteria->params = array(':controllerId' => 'wiki', ':actionName' => 'index', ':universalValue' => P3WidgetContainer::UNIVERSAL_VALUE); $criteria->order = 'requestParam'; $criteria->group = 'requestParam'; $models = Widget::model()->findAll($criteria); $items = array(); foreach ($models as $model) { $items[] = array('label' => $model->requestParam ? $model->requestParam : 'Home', 'url' => array('/wiki', 'page' => $model->requestParam)); } $this->render('index', array('items' => $items)); }
if (empty($item)) { $widget_name = $item; } else { if (!empty($param['name'])) { $widget_name = !is_array($param['name']) ? $param['name'] : ''; } if (!empty($param['description'])) { $widget_description = !is_array($param['description']) ? $param['description'] : ''; } } if (ctype_alnum($item) and $item != 'controller') { // check alphanumeric echo "<div class='well'>"; echo CHtml::Link('<i class="fa fa-edit"></i>', $this->createUrl('widget/edit', array('id' => $widget_id)), array('class' => 'btn-warning btn pull-right')); echo "<b>" . $widget_name . "</b> "; $count = Widget::model()->findAllByattributes(array('groups' => $widget_id)); echo " - <span class='label label-info'>" . count($count) . "</span><br>"; echo "<span class='muted'>(" . $widget_description . ")</span><br>"; foreach ($count as $wid) { $set = $wid->description != '' ? "<i class='text-success'>Telah di set</i>" : "<i class='text-error'>Belum di set</i>"; echo "<i class='fa fa-caret-right'></i> " . $wid->name . " - " . $set . "<br>"; } echo "</div>"; } } echo "</div></div>"; if ($a++ % 2 == 0) { // cek row ini pertama atau kedua, jika kedua tampilkan echo "</div>"; } }
$channels = $model->channels; $ScreenModelId = $model->screen_id; if ($ScreenModelId != null) { $ScreenModel = Screen::model()->findByPk($ScreenModelId); if (isset($ScreenModel->windows)) { $windows = $ScreenModel->windows; foreach ($windows as $window) { $windowId = $window->id; $windowName = $window->name; foreach ($channels as $channel) { if ($channel->id_point === $model->id && $channel->window_id === $window->id) { printf("<div class='ChannelsContainer btn-toolbar' data-channelid='%s' role='toolbar' aria-label=''>", $channel['id']); $widgetToChannel = WidgetToChannel::model()->find("channel_id = :channel_id", array("channel_id" => $channel['id'])); printf("<div class='btn-group' role='group' aria-label=''>" . "<button type='button' class='btn btn-default ChannelButt' disabled='disabled'>Screen %s</button>", $windowName); if (count($widgetToChannel) > 0) { $widgetModel = Widget::model()->findByPk($widgetToChannel['widget_id']); printf("<button type='button' class='detach-widget btn btn-warning' data-channelid='%s'>" . "<span class='glyphicon glyphicon-off'></span> Detach widget " . $widgetModel['name'] . "</button>", $channel['id']); } else { printf("<button type='button' class='attach-widget btn btn-success' data-channelid='%s'>" . "<span class='glyphicon glyphicon-paperclip'></span> Attach widget" . "</button>", $channel['id']); } echo "</div>"; } } } } } } printf("</div>"); ?> <?php echo $form->error($model, 'screen_id');
public function loadModel($id) { $model = Widget::model()->findAllByAttributes(array('groups' => $id), array('order' => 'sort ASC')); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
<!-- Modal --> <div id="widget-dialog" title="Attach widget channel"> <p> <?php $userId = Yii::app()->user->id; $widgets = Widget::model()->findAll(); $attributeLabels = Widget::model()->attributeLabels(); if (count($widgets) > 0) { echo '<table class="table table-hover">'; echo '<tr>'; echo '<td></td>'; echo '<td>' . $attributeLabels['name'] . '</td>'; echo '<td>' . $attributeLabels['description'] . '</td>'; echo '<td>' . $attributeLabels['created_dt'] . '</td>'; echo '</tr>'; foreach ($widgets as $widget) { echo '<tr>'; echo '<td>' . '<input class="selected-widget" type="radio" name="selected-widget" ' . 'data-widgetid="' . $widget['id'] . '" ' . 'data-widgetname="' . $widget['name'] . '"/>' . '</td>'; echo '<td>' . $widget['name'] . '</td>'; echo '<td>' . $widget['description'] . '</td>'; echo '<td>' . $widget['created_dt'] . '</td>'; echo '</tr>'; } echo '</table>'; } else { echo 'No avaliable widgets'; } ?> </p> </div>
/** * Обрабатывает ajax-запрос к блоку * * @param int $widgetId id блока */ public function actionAjax($widgetId) { $widget = Widget::model()->findByPk($widgetId); $widget->content->ajax($_REQUEST); }