public static function boot() { parent::boot(); static::updating(function ($stringTranslation) { $string = Fragment::findOrFail($stringTranslation->string_id); Cache::forget(Fragment::getCacheKeyName($string->name, $stringTranslation->locale)); }); }
/** * Update the specified resource in storage. * * @param int $id * @param \App\Http\Requests\Back\FragmentRequest $request * * @return \App\Http\Controllers\Back\Response */ public function update($id, FragmentRequest $request) { $fragment = Fragment::find($id); $fragment = FragmentUpdater::create($fragment, $request)->update(); $fragment->save(); app('cache')->flush(); $eventDescription = trans('back.events.updated', ['model' => 'Fragment', 'name' => $fragment->name]); Activity::log($eventDescription); flash()->success(strip_tags($eventDescription)); return redirect()->action('Back\\FragmentController@edit', [$fragment->id]); }
/** * Load the messages for the given locale. * * @param string $locale * @param string $group * @param string $namespace * * @return array */ public function load($locale, $group, $namespace = null) : array { if (!is_null($namespace) && $namespace !== '*') { return $this->loadNamespaced($locale, $group, $namespace); } if (!$this->fragmentsAreAvailable()) { return []; } return Cache::rememberForever("locale.fragments.{$locale}.{$group}", function () use($group, $locale) { return Fragment::getGroup($group, $locale); }); }
public function update($id, FragmentRequest $request) { $fragment = Fragment::find($id); foreach (locales() as $locale) { $requestAttribute = "translated_{$locale}_text"; $fragment->setTranslation($locale, $request->get($requestAttribute)); } $fragment->save(); app('cache')->flush(); $eventDescription = fragment('back.events.updated', ['model' => 'Fragment', 'name' => $fragment->name]); flash()->success(strip_tags($eventDescription)); return redirect()->action('Back\\FragmentsController@index'); }
public function import(string $path) { $this->guardAgainstInvalidPath($path); $this->loadFragments($path)->each(function (array $data) { $fragment = Fragment::firstOrNew(['group' => $data['group'], 'key' => $data['key']]); if (!$this->shouldImport($fragment)) { return; } $fragment->group = $data['group']; $fragment->key = $data['key']; $fragment->hidden = $data['hidden']; $fragment->contains_html = $data['contains_html'] ?? false; $fragment->description = $data['description'] ?? ''; $fragment->draft = false; $this->locales()->each(function (string $locale) use($fragment, $data) { $fragment->setTranslation($locale, $data["text_{$locale}"] ?? ''); }); $fragment->save(); }); }
/** * Create a new record and redirect to the edit page. * * @return \Illuminate\Http\RedirectResponse */ public function create() { $fragment = new Fragment(); $fragment->save(); return redirect()->action('Back\\FragmentController@edit', [$fragment->id]); }
public function getFragments(bool $hidden) : Collection { return Fragment::where('hidden', $hidden)->orderBy('group')->orderBy('key')->get(); }