Example #1
0
 /**
  * Ham them/sua setting cua widget
  * @param string $diyId id cua diy
  * @param string $containerId id cua container
  * @param string $positionId id cua position
  * @param string $widgetId id cua widget
  * @param array $settings mang gia tri cua option
  * @return boolean
  */
 public function saveSettingWidget($diyId, $containerId, $positionId, $widgetId, $settings)
 {
     // Map name setting with value
     $settingArray = ArrayHelper::map($settings, 'name', 'value');
     // Get widget info by id
     $model = Diy::find()->where(['_id' => $diyId])->one();
     if ($model) {
         $model->data = ArrayHelper::merge($model->data, [$containerId => [$positionId => ArrayHelper::merge($model->data[$containerId][$positionId], ['widgets' => ArrayHelper::merge($model->data[$containerId][$positionId]['widgets'], [$widgetId => ArrayHelper::merge($model->data[$containerId][$positionId]['widgets'][$widgetId], ['settings' => $settingArray])])])]]);
         return $model->save();
     }
     return false;
 }
Example #2
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;
 }