Esempio n. 1
0
 /**
  * @param Menu $menu
  * @param MenuItem $item
  * @param Request $request
  * @param Page $page
  * @param Locale $locale
  * @param ModuleRoute $route
  * @return
  */
 public function store(Menu $menu, MenuItem $item, Request $request, Page $page, Locale $locale, ModuleRoute $route)
 {
     $input = translation_input($request, ['name']);
     if (isset($input['page_id'])) {
         //make sure to set the default labels for the menu item
         $page = $page->findOrFail($input['page_id']);
         foreach ($locale->all() as $locale) {
             $translation = $page->translate($locale->slug);
             if ($translation) {
                 $input[$locale->slug]['name'] = $translation->title;
             }
         }
     } elseif (isset($input['module_route_id'])) {
         //make sure to set the default labels for the menu item
         $route = $route->findOrFail($input['module_route_id']);
         foreach ($locale->all() as $locale) {
             $translation = $route->translate($locale->slug);
             if ($translation) {
                 $input[$locale->slug]['name'] = $translation->title;
             }
         }
     } else {
         $rules = ['url' => 'required'];
         foreach ($this->account->account()->locales as $locale) {
             $rules = array_merge($rules, ["translations.{$locale->slug}.name" => 'required']);
         }
         $this->validate($request, $rules);
     }
     return $this->menu->createItem($input);
 }