Пример #1
0
 /**
  * Хук обработки формы Страницы
  *
  * @param object $Form
  * @param boolean $is_valid
  * @param object $result
  */
 public function hookFormResultPage($Form, $is_valid, $result)
 {
     // Если идёт редактирование страницы, тогда удаляем поле
     if ($Form->object() instanceof Page) {
         $Form->remove('menu_item_autoadd');
     } elseif ($result) {
         // Если было выбрано значение (не равно 0) и такое меню существует в базе
         if ($result->menu_item_autoadd && ($menu = menu($result->menu_item_autoadd))) {
             $menu_item = new Menu_Db_Item();
             $menu_item->menu_id = $menu->id;
             $menu_item->label = $result->name;
             // по умолчанию совпадает с именем страницы, но после можно исправить после при редактировании меню
             // Внимание! Создаём объект Page для получения ссылки, но не сохраняем его!
             $menu_item->link = l($result->link);
             $menu_item->save();
             // Можно и insert(), но через save() система сама определяет вставлять новое значение или обновлять уже выбранное
         }
     }
 }