public function add_category_node($treeNodeParentID) { if ($this->token->validate('add_category_node')) { $parent = TreeNode::getByID($treeNodeParentID); $tree = $parent->getTreeObject(); $title = $_POST['treeNodeCategoryName']; if (!$title) { $this->error->add(t('Invalid title for category')); } if (!is_object($parent)) { $this->error->add(t('Invalid parent category')); } $np = new Permissions($parent); if (!$np->canAddTopicCategoryTreeNode()) { $this->error->add(t('You may not add a category here.')); } if (!$this->error->has()) { $category = TopicCategoryTreeNode::add($title, $parent); $r = $category->getTreeNodeJSON(); Loader::helper('ajax')->sendResult($r); } } else { $this->error->add($this->token->getErrorMessage()); } if ($this->error->has()) { Loader::helper('ajax')->sendError($this->error); } }
public static function add($name) { // copy permissions from the other node. $rootNode = TopicCategoryTreeNode::add(); $treeID = parent::add($rootNode); $tree = self::getByID($treeID); $tree->setTopicTreeName($name); // by default, topic trees are viewable by all $guestGroupEntity = GroupPermissionAccessEntity::getOrCreate(UserGroup::getByID(GUEST_GROUP_ID)); $pk = TopicCategoryTreeNodePermissionKey::getByHandle('view_topic_category_tree_node'); $pk->setPermissionObject($rootNode); $pa = PermissionAccess::create($pk); $pa->addListItem($guestGroupEntity); $pt = $pk->getPermissionAssignmentObject(); $pt->assignPermissionAccess($pa); return $tree; }