public function updateOrder(Request $request) { $validator = Validator::make($request->all(), ['placeholder' => 'required|in:' . implode(',', array_keys(HomeThemeFacade::placeholders())), 'widget_ids' => 'required|array|exists:theme_widgets,id']); if ($validator->fails()) { return response()->json(['success' => false, 'msg' => $validator->errors()->all()]); } $order = 0; foreach ($request->input('widget_ids') as $id) { ThemeWidget::where('id', $id)->update(['placeholder' => $request->input('placeholder'), 'order' => ++$order]); } return response()->json(['success' => true]); }
public function create($placeholder, array $data = [], array $localizedData = []) { if (!$this::WIDGET_TRANSLATABLE) { $localizedData = []; } $order = ThemeWidget::where('placeholder', $placeholder)->count() + 1; $this->themeWidget = ThemeWidget::create(['widget_name' => $this::WIDGET_NAME, 'theme_name' => $this::THEME_NAME, 'placeholder' => $placeholder, 'constructing_data' => json_encode(array_merge($data, $localizedData)), 'order' => $order]); return empty($this->themeWidget) ? [trans('error.database_insert')] : true; }
public function copyTo(Request $request) { $themeWidget = ThemeWidget::findOrFail($request->input('widget_id')); $validator = Validator::make($request->all(), ['placeholder' => 'required|in:' . implode(',', array_keys(HomeThemeFacade::placeholders()))]); $redirect = redirect(adminUrl('widgets')); if ($validator->fails()) { return $redirect->withErrors($validator); } ThemeWidget::create(['widget_name' => $themeWidget->widget_name, 'theme_name' => $themeWidget->theme_name, 'placeholder' => $request->input('placeholder'), 'constructing_data' => $themeWidget->constructing_data, 'active' => $themeWidget->active, 'order' => ThemeWidget::where('placeholder', $request->input('placeholder'))->count() + 1]); return $redirect; }