/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update($id) { $navigation = Nav::find($id); if (empty($navigation)) { return Redirect::to('admin/navigation')->with('success', Lang::get('admin.navigation_notfind')); } $rules = array(); $navigation_name_locales = array(); foreach (Input::except('_token') as $k => $v) { if (strpos($k, 'navigation_title_') !== false) { $rules[$k] = Config::get('validator.admin.navigation_title.title'); $navigation_name_locales[] = mb_substr($k, strlen('navigation_title_'), strlen($k) - strpos($k, 'navigation_title_')); } } $rules = array_merge($rules, Config::get('validator.admin.navigation')); //return var_dump($rules); // Validate the inputs $validator = Validator::make(Input::all(), $rules); if ($validator->passes()) { //Update translations foreach ($navigation_name_locales as $locale) { if (!I18n::find($navigation->i18n_title)->updateText($locale, Input::get('navigation_title_' . $locale))) { return Redirect::to('admin/navigation')->with('error', Lang::get('admin.navigation_update_error')); } } /* if (Input::has('parent_id')) { $navigation->parent_id = Input::get('parent_id'); } else { $navigation->parent_id = 0; } */ if (Input::has('url_external')) { //create a link and put the id in the navigable_id :) $nav_link = NavLink::find($navigation->navigable_id); $nav_link->url = Input::get('url_external'); $nav_link->save(); } if (Input::has('model_resource_id')) { $result_explode = explode('|', Input::get('model_resource_id')); $navigation->navigable_id = $result_explode[1]; $navigation->navigable_type = $result_explode[0]; } if (Input::has('order')) { $navigation->order = Input::get('order'); } else { $navigation->order = Nav::max() + 1; } // Was the blog post created? if ($navigation->save()) { //track user parent::track('update', 'Navigation', $navigation->id); Cache::forget('DB_Nav'); // Redirect to the new blog post menu return Redirect::to('admin/navigation')->with('success', 'Le menu à bien été modifié !'); } // Redirect to the blog post edit menu return Redirect::to('admin/navigation/' . $id . '/edit')->with('error', 'Le menu n\'a pas pu être modifiée...'); } // Form validation failed return Redirect::to('admin/navigation/' . $id . '/edit')->withInput()->withErrors($validator); }