Example #1
0
 /**
  * Ham them moi mot widget vao position
  * @param string $diyId id cua diy
  * @param string $itemId id cua widget duoc luu vao mang
  * @param string $containerId id cua container chua position
  * @param string $positionId id cua position duoc move vao
  * @param string $draggable_id id cua widget trong database
  * @return string
  */
 private function addWidget($diyId, $itemId, $containerId, $positionId, $draggable_id)
 {
     // Generate template widget
     $template = DiyWidget::generateTemplateSetting($containerId, $positionId, $itemId, $draggable_id, []);
     $model = Diy::find()->where(['_id' => $diyId])->one();
     if ($model) {
         // Check position co widget hay chua
         $position = ArrayHelper::getValue($model->data[$containerId][$positionId], 'widgets', []);
         // Neu chua thi add moi vao position
         if (empty($position)) {
             $model->data = ArrayHelper::merge($model->data, [$containerId => [$positionId => ArrayHelper::merge($model->data[$containerId][$positionId], ['widgets' => [$itemId => ['id' => $draggable_id]]])]]);
         } else {
             // Neu co widget trong position thi add them vao mang hien co
             $model->data = ArrayHelper::merge($model->data, [$containerId => [$positionId => ArrayHelper::merge($model->data[$containerId][$positionId], ['widgets' => ArrayHelper::merge($model->data[$containerId][$positionId]['widgets'], [$itemId => ['id' => $draggable_id]])])]]);
         }
         $model->save();
     }
     return $template;
 }
Example #2
0
 /**
  * Ham get ra template cua position
  * @param int $numberColumn so cot cua position
  * @param string $diyId id cua diy
  * @param string $containerId id cua container
  * @param string $itemId id cua position
  * @param array $widgetItems mang cac widget cua position
  * @return string
  */
 public static function generateTemplatePosition($numberColumn = 12, $diyId = null, $containerId, $itemId = null, $widgetItems = [])
 {
     $tempalatePosition = Html::beginTag('div', ['class' => 'let_position col-md-' . $numberColumn . ' col-sm-' . $numberColumn . ' col-xs-12', 'id' => $itemId, 'data-diyId' => $diyId, 'data-id' => $itemId]);
     // Begin button delete position
     $tempalatePosition .= Html::beginTag('div', ['class' => 'row positionButton', 'style' => 'margin: 10px 0 10px 0;']);
     $tempalatePosition .= Html::beginTag('div', ['class' => 'pull-right']);
     $tempalatePosition .= Html::beginTag('div', ['class' => 'btn-group buttonDelete']);
     $tempalatePosition .= Html::button('<i class="glyphicon glyphicon-trash"></i>', ['class' => 'btn btn-danger btn-xs', 'onclick' => 'deleteItems(this, "p", ".let_position");']);
     $tempalatePosition .= Html::endTag('div');
     $tempalatePosition .= Html::endTag('div');
     $tempalatePosition .= Html::endTag('div');
     // End button delete position
     $tempalatePosition .= Html::beginTag('div', ['class' => 'let_widget_position']);
     if (!empty($widgetItems)) {
         foreach ($widgetItems as $widgetId => $widget) {
             $id = ArrayHelper::getValue($widget, 'id');
             $settings = ArrayHelper::getValue($widget, 'settings', []);
             $tempalatePosition .= DiyWidget::generateTemplateSetting($containerId, $itemId, $widgetId, $id, $settings);
         }
     }
     $tempalatePosition .= Html::endTag('div');
     $tempalatePosition .= Html::endTag('div');
     return $tempalatePosition;
 }