/** * Uninstall an extension. * * @param string $id * @return \Illuminate\Http\RedirectResponse */ public function destroy($id) { $extension = $this->repository->findOrFail($id); if ($extension->protected) { return $this->notifyError(trans('cms::extension.protected')); } if ($this->repository->uninstall($id)) { flash()->success(trans('cms::extension.deleted', compact('id'))); } else { flash()->error(trans('cms::extension.error', compact('id'))); } return back(); }
/** * @param \Illuminate\Http\Request $request * @param \Yajra\CMS\Entities\Menu $menu * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View|string */ public function extensions(Request $request, Menu $menu) { $extension = $this->extensions->findOrFail($request->query('key')); $template = $extension->param('template'); if (view()->exists($template)) { return view($template, compact('menu')); } return ''; }
/** * Get widget custom parameter form if any. * * @param int $id * @param int $widget * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View|string */ public function parameters($id, $widget) { $widget = Widget::withoutGlobalScope('menu_assignment')->findOrNew($widget); $extension = $this->repository->findOrFail($id); $formView = $extension->param('form'); if (view()->exists($formView)) { return view($formView, compact('widget')); } return view('widgets.partials.none'); }
/** * Find or fail an extension. * * @param int $id * @return \Yajra\CMS\Entities\Extension */ public function findOrFail($id) { return $this->cache->rememberForever('extension.' . $id, function () use($id) { return $this->repository->findOrFail($id); }); }