/** * Finds the model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param string $id * @return the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Diy::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * 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; }
public function actionDeleteitems() { // Kieu item xoa $type = Yii::$app->request->post('type'); // Id cua diy $diyId = Yii::$app->request->post('diyId'); // Id cua container $containerId = Yii::$app->request->post('containerId'); // Id cua position $positionId = Yii::$app->request->post('positionId'); // Id cua widget $widgetId = Yii::$app->request->post('widgetId'); // Ham sap xep item, tra ve gia tri boolean $result = Diy::deleteItems($type, $diyId, $containerId, $positionId, $widgetId); echo $result; }
/** * 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; }
use yii\helpers\Url; use letyii\diy\models\Diy; use letyii\diy\models\DiyWidget; use yii\helpers\ArrayHelper; ?> <div class="wrapper wrapper-content animated fadeInRight"> <div class="row clearfix"> <div class="col-md-9 col-sm-9 col-xs-12"> <div id="let_containers"> <?php if (is_array($model->data) and !empty($model->data)) { foreach ($model->data as $containerId => $container) { $positionItems = ArrayHelper::getValue($model->data, $containerId); ?> <?php echo Diy::generateTemplateContainer((string) $model->_id, $containerId, $positionItems); ?> <?php } } ?> </div> <?php echo Html::button('<i class="glyphicon glyphicon-plus"></i>', ['class' => 'btn btn-success col-md-12 col-sm-12 col-xs-12', 'id' => 'addContainer']); ?> </div> <div class="col-md-3 col-sm-3 col-xs-12"> <div id='let_widgets'> <?php foreach ($diy_widget as $widget) { ?>