Exemple #1
0
 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;
 }