public function execute(Batch $batch) { $values = $batch->getObjectCollection('tree'); if (!$values) { return; } foreach ($values->getTrees() as $t) { $name = (string) $t->getName(); $tree = Topic::getByName($name); if (is_object($tree)) { // We already have a tree. But we know we're going to have sub-nodes // of this tree in the import, so let's keep the same tree so that pointers // to attributes work, but let's clear it out. $root = $tree->getRootTreeNodeObject(); $root->populateChildren(); $children = $root->getChildNodes(); foreach ($children as $child) { $child->delete(); } } else { $tree = Topic::add($name); } $parent = $tree->getRootTreeNodeObject(); foreach ($t->getRootNodes() as $node) { $this->add($node, $parent); } } }
/** * @param TopicsAttributeKey $source * @param CoreAttributeKey $destination */ public function publish(AttributeKey $source, CoreAttributeKey $destination) { $controller = $destination->getController(); $name = (string) $source->getTreeName(); $tree = \Concrete\Core\Tree\Type\Topic::getByName($name); $node = $tree->getNodeByDisplayPath($source->getNodePath()); $controller->setNodes($node->getTreeNodeID(), $tree->getTreeID()); }
public function topicTreeExists($name, $batch) { $tree = Topic::getByName($name); if (is_object($tree)) { return true; } $r = \ORM::entityManager()->getRepository('\\PortlandLabs\\Concrete5\\MigrationTool\\Entity\\Import\\Tree'); $tree = $r->findOneByName($name); if (is_object($tree)) { return true; } return false; }
public function importKey($key) { $name = (string) $key->tree['name']; $tree = \Concrete\Core\Tree\Type\Topic::getByName($name); $node = $tree->getNodeByDisplayPath((string) $key->tree['path']); $this->setNodes($node->getTreeNodeID(), $tree->getTreeID()); }
public function getImportData($blockNode, $page) { $args = array(); $treeName = (string) $blockNode->data->tree; $page = (string) $blockNode->data->cParentID; $tree = Topic::getByName($treeName); $args['topicTreeID'] = $tree->getTreeID(); $args['cParentID'] = 0; $args['title'] = (string) $blockNode->data->title; $args['mode'] = (string) $blockNode->data->mode; if (!$args['mode']) { $args['mode'] = 'S'; } $args['topicAttributeKeyHandle'] = (string) $blockNode->data->topicAttributeKeyHandle; if ($page) { if (preg_match('/\\{ccm:export:page:(.*?)\\}/i', $page, $matches)) { $c = \Page::getByPath($matches[1]); $args['externalTarget'] = 1; $args['cParentID'] = $c->getCollectionID(); } } return $args; }
public function importKey(\SimpleXMLElement $key) { $type = $this->getAttributeKeySettings(); $name = (string) $key->tree['name']; $tree = \Concrete\Core\Tree\Type\Topic::getByName($name); $node = $tree->getNodeByDisplayPath((string) $key->tree['path']); $type->setTopicTreeID($tree->getTreeID()); $type->setParentNodeID($node->getTreeNodeID()); return $type; }
public function skipItem() { $tree = Topic::getByName($this->object->getName()); return is_object($tree); }