protected function add(TreeNode $node, Node $parent)
 {
     $type = NodeType::getByHandle($node->getType());
     $class = $type->getTreeNodeTypeClass();
     $new = call_user_func_array(array($class, 'add'), array($node->getTitle(), $parent));
     foreach ($node->getChildren() as $child) {
         $this->add($child, $new);
     }
 }
예제 #2
0
 /**
  * Creates everything necessary to store files in folders.
  */
 public function create()
 {
     $type = NodeType::getByHandle('file');
     if (!is_object($type)) {
         NodeType::add('file');
     }
     $type = NodeType::getByHandle('file_folder');
     if (!is_object($type)) {
         NodeType::add('file_folder');
     }
     $type = NodeType::getByHandle('search_preset');
     if (!is_object($type)) {
         NodeType::add('search_preset');
     }
     $type = TreeType::getByHandle('file_manager');
     if (!is_object($type)) {
         TreeType::add('file_manager');
     }
     $manager = FileManager::get();
     if (!is_object($manager)) {
         $manager = FileManager::add();
     }
     return $manager;
 }
예제 #3
0
파일: Node.php 프로젝트: ceko/concrete5-1
 public function importChildren(\SimpleXMLElement $sx)
 {
     $xnodes = $sx->children();
     foreach ($xnodes as $xn) {
         $type = NodeType::getByHandle($xn->getName());
         $class = $type->getTreeNodeTypeClass();
         $node = call_user_func_array(array($class, 'importNode'), array($xn, $this));
         call_user_func_array(array($node, 'importChildren'), array($xn));
     }
 }
예제 #4
0
파일: Node.php 프로젝트: ceko/concrete5-1
 public static function add($parent = false)
 {
     $db = Loader::db();
     $treeNodeParentID = 0;
     $treeID = 0;
     $treeNodeDisplayOrder = false;
     $inheritPermissionsFromTreeNodeID = 0;
     if (is_object($parent)) {
         $treeNodeParentID = $parent->getTreeNodeID();
         $treeID = $parent->getTreeID();
         $inheritPermissionsFromTreeNodeID = $parent->getTreeNodePermissionsNodeID();
         $treeNodeDisplayOrder = $db->GetOne('select count(treeNodeDisplayOrder) from TreeNodes where treeNodeParentID = ?', array($treeNodeParentID));
     }
     if (!$treeNodeDisplayOrder) {
         $treeNodeDisplayOrder = 0;
     }
     $treeNodeTypeHandle = Loader::helper('text')->uncamelcase(strrchr(get_called_class(), '\\'));
     $type = TreeNodeType::getByHandle($treeNodeTypeHandle);
     $db->Execute('insert into TreeNodes (treeNodeTypeID, treeNodeParentID, treeNodeDisplayOrder, inheritPermissionsFromTreeNodeID, treeID) values (?, ?, ?, ?, ?)', array($type->getTreeNodeTypeID(), $treeNodeParentID, $treeNodeDisplayOrder, $inheritPermissionsFromTreeNodeID, $treeID));
     $id = $db->Insert_ID();
     $node = self::getByID($id);
     if (!$inheritPermissionsFromTreeNodeID) {
         $node->setTreeNodePermissionsToOverride();
     }
     return $node;
 }
 protected function addTreeNodeTypes()
 {
     $this->output(t('Adding tree node types...'));
     $this->connection->Execute('update TreeNodeTypes set treeNodeTypeHandle = ? where treeNodeTypeHandle = ?', array('category', 'topic_category'));
     $this->connection->Execute('update PermissionKeys set pkHandle = ? where pkHandle = ?', array('view_category_tree_node', 'view_topic_category_tree_node'));
     $this->connection->Execute('update PermissionKeyCategories set pkCategoryHandle = ? where pkCategoryHandle = ?', array('category_tree_node', 'topic_category_tree_node'));
     $results = NodeType::getByHandle('express_entry_results');
     if (!is_object($results)) {
         NodeType::add('express_entry_results');
     }
     $category = NodeType::getByHandle('express_entry_category');
     if (!is_object($category)) {
         NodeType::add('express_entry_category');
     }
     $results = TreeType::getByHandle('express_entry_results');
     if (!is_object($results)) {
         TreeType::add('express_entry_results');
         $tree = ExpressEntryResults::add();
         $node = $tree->getRootTreeNodeObject();
         // Add forms node beneath it.
         \Concrete\Core\Tree\Node\Type\ExpressEntryCategory::add(ExpressFormBlockController::FORM_RESULTS_CATEGORY_NAME, $node);
     }
 }
예제 #6
0
 public static function getNodeByName($name)
 {
     $db = Database::connection();
     $treeNodeTypeHandle = uncamelcase(strrchr(get_called_class(), '\\'));
     $type = TreeNodeType::getByHandle($treeNodeTypeHandle);
     $treeNodeID = $db->fetchColumn('select treeNodeID from TreeNodes where treeNodeName = ? and treeNodeTypeID = ?', [$name, $type->getTreeNodeTypeID()]);
     if ($treeNodeID) {
         return static::getByID($treeNodeID);
     }
 }