/** * Execute the console command. * * @return mixed */ public function handle() { $path = app_path('Widgets') . DIRECTORY_SEPARATOR . $this->argument('name') . '.json'; if ($this->option('path')) { $path = base_path($this->argument('name')); } $this->extensions->registerManifest($path); $this->laravel->make('cache.store')->forget('extensions.widgets'); $this->laravel->make('cache.store')->forget('extensions.all'); $this->info($this->argument('name') . ' widget extension installed!'); }
/** * 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'); }
/** * Get all registered widgets. * * @return \Illuminate\Support\Collection */ public function allWidgets() { return $this->cache->rememberForever('extensions.widgets', function () { return $this->repository->allWidgets(); }); }