public static function doRegister(ThemeWidget $themeWidget) { $widgetClass = WidgetsFacade::widgetClass($themeWidget->name); if (!empty($widgetClass) && class_exists($widgetClass)) { $params = empty($themeWidget) ? [] : $themeWidget->params; $widget = new $widgetClass($params); $widget->setThemeWidget($themeWidget); $widget->register(); } }
public function update(Request $request) { $themeWidget = ThemeWidget::findOrFail($request->input('id')); $widgetClass = WidgetsFacade::widgetClass($themeWidget->name); if (empty($widgetClass) || !class_exists($widgetClass)) { abort(404); } $params = empty($themeWidget) ? [] : $themeWidget->params; $widget = new $widgetClass($params); $widget->setThemeWidget($themeWidget); $redirect = redirect(adminUrl('widgets/{id}/edit', ['id' => $themeWidget->id])); $htmlInputs = $this->htmlInputs($request); $emptyHtmlInputs = empty($htmlInputs); $data = []; foreach ($widget->fields() as $field) { $value = $request->input($field, ''); if (!$emptyHtmlInputs && array_key_exists($field, $htmlInputs)) { $value = clean($value, $htmlInputs[$field]); } $data[$field] = $value; } $validator = Validator::make($data, $widget->validationRules()); if ($validator->fails()) { return $redirect->withInput()->withErrors($validator); } $translatable = $widget->isTranslatable(); $localizedData = []; if ($translatable) { $this->validateMultipleLocaleData($request, $widget->localizedFields(), $widget->localizedValidationRules(), $localizedData, $successes, $fails, $old); if (count($successes) <= 0 && count($fails) > 0) { return $redirect->withInput()->withErrors($fails[0]); } } $save = $widget->update($data, $localizedData); if ($save !== true) { return $redirect->withInput()->withErrors($save); } return $redirect; }
protected function registerWidgets($is_auth = false) { WidgetsFacade::register(); }
function placeholder($name, $before = '', $after = '', $default = '') { return WidgetsFacade::display($name, $before, $after, $default); }