Esempio n. 1
0
 /**
  * @param Tag $tag
  * @param array $locales
  * @return \Kris\LaravelFormBuilder\Form
  */
 protected function getCreateTranslationForm(Tag $tag, array $locales)
 {
     $form = $this->form('Reactor\\Html\\Forms\\Tags\\CreateEditForm', ['method' => 'POST', 'url' => route('reactor.tags.translations.store', [$tag->getKey()])]);
     $form->addBefore('title', 'locale', 'select', ['choices' => $locales, 'inline' => true]);
     return $form;
 }
Esempio n. 2
0
 /**
  * Returns the collection of retrieved nodes by json response
  *
  * @param Request $request
  * @return Response
  */
 public function searchJson(Request $request)
 {
     $tags = Tag::search($request->input('q'), 20, true)->groupBy('id')->limit(10)->get();
     $locale = $request->input('locale', null);
     $results = [];
     foreach ($tags as $tag) {
         $results[$tag->getKey()] = ['title' => $tag->translate($locale, true)->title, 'translatable' => $tag->canHaveMoreTranslations(), 'editurl' => route('reactor.tags.edit', [$tag->getKey(), $tag->translate()->getKey()]), 'translateurl' => route('reactor.tags.translations.create', [$tag->getKey(), $tag->translate()->getKey()])];
     }
     return response()->json($results);
 }
Esempio n. 3
0
 /**
  * Finds a tag by title or creates it
  *
  * @param string $title
  * @param string $locale
  * @return Tag
  */
 public static function firstByTitleOrCreate($title, $locale = null)
 {
     $tag = Tag::whereTranslation('title', $title, $locale)->first();
     if (is_null($tag)) {
         $attributes = compact('title');
         if ($locale) {
             $attributes = [$locale => $attributes];
         }
         $tag = Tag::create($attributes);
     }
     return $tag;
 }
Esempio n. 4
0
 /**
  * Shows the tag page
  *
  * @param string $tags
  * @param string $name
  * @return View
  */
 public function getTag($tags, $name)
 {
     set_app_locale_with('tags', $tags);
     $tag = Tag::withName($name)->firstOrFail();
     return view('tag', compact('tag'));
 }
Esempio n. 5
0
 /**
  * Stores a tag for the resource
  *
  * @param Request $request
  * @param int $id
  * @return response
  */
 public function storeTag(Request $request, $id)
 {
     $this->authorize('EDIT_TAGS');
     $node = $this->authorizeAndFindNode($id, null, 'EDIT_NODES', false);
     if ($node->isLocked()) {
         return response()->json(['type' => 'danger', 'message' => trans('nodes.node_is_locked')]);
     }
     $this->validate($request, ['title' => 'required|max:255']);
     $tag = Tag::firstByTitleOrCreate($request->input('title'));
     $node->attachTag($tag->getKey());
     return response()->json(['type' => 'success', 'tag' => ['id' => $tag->getKey(), 'title' => $tag->title, 'translatable' => $tag->canHaveMoreTranslations(), 'editurl' => route('reactor.tags.edit', [$tag->getKey(), $tag->translate()->getKey()]), 'translateurl' => route('reactor.tags.translations.create', [$tag->getKey(), $tag->translate()->getKey()])]]);
 }