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;
 }
Esempio n. 2
0
 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();
     }
 }
Esempio n. 3
0
 /**
  * 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));
     }
 }
Esempio n. 7
0
 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>";
    }
}
Esempio n. 9
0
    $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>
Esempio n. 12
0
 /**
  * Обрабатывает ajax-запрос к блоку
  *
  * @param int $widgetId id блока
  */
 public function actionAjax($widgetId)
 {
     $widget = Widget::model()->findByPk($widgetId);
     $widget->content->ajax($_REQUEST);
 }