/** * Хук обработки формы Страницы * * @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() система сама определяет вставлять новое значение или обновлять уже выбранное } } }