Example #1
0
 /**
  * Ham add mot position vao container
  * @param string $diyId id cua diy
  * @param string $itemId id cua position
  * @param string $containerId container id cua position
  * @param int $numberColumn so cot cua position
  * @return string
  */
 private function addPosition($diyId, $itemId, $containerId, $numberColumn)
 {
     // Generate template container
     $template = Diy::generateTemplatePosition($numberColumn, $diyId, $containerId, $itemId);
     $model = Diy::find()->where(['_id' => $diyId])->one();
     if ($model) {
         // Check container co position hay chua
         $container = ArrayHelper::getValue($model->data, $containerId);
         // Neu chua thi add moi vao container
         if (empty($container)) {
             $model->data = ArrayHelper::merge($model->data, [$containerId => [$itemId => ['column' => $numberColumn]]]);
         } else {
             // Neu co position trong container thi add them vao mang hien co
             $model->data = ArrayHelper::merge($model->data, [$containerId => ArrayHelper::merge($model->data[$containerId], [$itemId => ['column' => $numberColumn]])]);
         }
         $model->save();
     }
     return $template;
 }
Example #2
0
 /**
  * Ham get ra template cua container
  * @param string $diyId id cua diy dang build layout
  * @param string $itemId id cua container duoc sinh ra
  * @param array $positionItems 1 mang cac position cua container
  * @return string
  */
 public static function generateTemplateContainer($diyId = null, $itemId = null, $positionItems = [])
 {
     $templateContainer = Html::beginTag('div', ['class' => 'let_container', 'id' => $itemId, 'data-diyId' => $diyId, 'data-id' => $itemId]);
     $templateContainer .= Html::beginTag('div', ['class' => 'panel panel-default']);
     $templateContainer .= Html::beginTag('div', ['class' => 'panel-heading clearfix']);
     // Begin button add position and delete container
     $templateContainer .= Html::beginTag('div', ['class' => 'pull-right']);
     $templateContainer .= Html::beginTag('div', ['class' => 'btn-group']);
     $templateContainer .= Html::button('<i class="glyphicon glyphicon-trash"></i>', ['class' => 'btn btn-danger btn-xs', 'onclick' => 'deleteItems(this, "c", ".let_container");']);
     $templateContainer .= Html::button('<i class="glyphicon glyphicon-plus"></i>', ['class' => 'btn btn-success btn-xs', 'onclick' => 'addPosition(this);']);
     $templateContainer .= Html::endTag('div');
     $templateContainer .= Html::endTag('div');
     // End button add position and delete container
     $templateContainer .= Html::endTag('div');
     $templateContainer .= Html::beginTag('div', ['class' => 'panel-body let_positions', 'data-id' => $itemId]);
     if (!empty($positionItems)) {
         foreach ($positionItems as $positionId => $position) {
             $column = ArrayHelper::getValue($position, 'column');
             $widgetItems = ArrayHelper::getValue($position, 'widgets');
             $templateContainer .= Diy::generateTemplatePosition($column, $diyId, $itemId, $positionId, $widgetItems);
         }
     }
     $templateContainer .= Html::endTag('div');
     $templateContainer .= Html::endTag('div');
     $templateContainer .= Html::endTag('div');
     return $templateContainer;
 }