/** * Сохранение пункта меню */ public function actionSaveItem() { if (!CSession::isAuth()) { $this->redirectNoAccess(); } $item = new CMenuItem(); $item->setAttributes(CRequest::getArray(CMenuItem::getClassName())); if ($item->validate()) { $item->save(); // сохранение ролей. удаляем старые, записываем новые foreach (CActiveRecordProvider::getWithCondition(TABLE_MENU_ITEMS_ACCESS, "item_id = " . $item->id)->getItems() as $val) { $val->remove(); } // делаем новые и сохраняем их $items = CRequest::getArray(CMenuItem::getClassName()); if (array_key_exists("roles", $items)) { foreach ($items["roles"] as $role) { $r = new CMenuItemRole(); $r->item_id = $item->id; $r->role_id = $role; $r->save(); } } $this->redirect("?action=view&id=" . $item->getMenu()->getId()); } $this->setData("item", $item); $this->setData("menu", CMenuManager::getMenu(CRequest::getInt("menu_id", CMenuItem::getClassName()))); $this->renderView("_menumanager/editItem.tpl"); }