Inheritance: extends App\Foundation\Models\Base\TranslatableEloquent, use trait App\Foundation\Models\Traits\Presentable
Exemplo n.º 1
0
 public static function boot()
 {
     parent::boot();
     static::updating(function ($stringTranslation) {
         $string = Fragment::findOrFail($stringTranslation->string_id);
         Cache::forget(Fragment::getCacheKeyName($string->name, $stringTranslation->locale));
     });
 }
Exemplo n.º 2
0
 /**
  * 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]);
 }
Exemplo n.º 3
0
 /**
  * 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);
     });
 }
Exemplo n.º 4
0
 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');
 }
Exemplo n.º 5
0
 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();
     });
 }
Exemplo n.º 6
0
 /**
  * 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]);
 }
Exemplo n.º 7
0
 public function getFragments(bool $hidden) : Collection
 {
     return Fragment::where('hidden', $hidden)->orderBy('group')->orderBy('key')->get();
 }