public function run() { if (($model = Widgets::findOne($this->id)) !== null) { $params = $model->getParams(); $params['options'] = ['class' => $model->css_class]; $params['cache'] = $model->cache; $params['name'] = $model->name; $params['id'] = $model->id; return Yii::$app->widgets->callWidget(['callback' => $model->widget, 'params' => $params]); } }
protected function findModel($id) { if ($id === null && ($widget = $this->getWidget(Yii::$app->request->get('widget'))) !== null) { $model = new Widgets(['state' => 1]); $model->widgetModel = new $widget(); $model->widget = Yii::$app->request->get('widget'); return $model; } elseif (($model = Widgets::findOne($id)) !== null && ($widget = $this->getWidget($model->widget)) !== null) { $model->widgetModel = new $widget(); $model->widgetModel->setAttributes(\yii\helpers\Json::decode($model->params)); return $model; } else { // throw new NotFoundHttpException('The requested page does not exist.'); } }