/** * Get pages list * @param \DOMElement $node * @param int $menuId * @param MenuItem $currentItem */ public function getAvailablePagesXML($node, $menuId, $currentItem = null) { $current = MenuItem::getList($menuId); $currentIds = []; if (!empty($current)) { foreach ($current as $item) { $currentIds[] = $item->getPage(); } } $all = CMS\Page::getList(true); if (!empty($all)) { foreach ($all as $item) { if (!$currentItem or $item->getId() != $currentItem->getPage()) { if (in_array($item->getId(), $currentIds)) { continue; } } /** @var $pageNode \DOMElement */ $pageNode = $node->appendChild($node->ownerDocument->createElement('page')); $item->getXML($pageNode); } } }
/** * Get pages list * @param \DOMElement|\DOMNode $node * @param bool|int $visible * @return bool */ public function getListXML($node, $visible = null) { $data = Page::getList($visible); if (empty($data)) { return false; } foreach ($data as $page) { $pageNode = $node->appendChild($node->ownerDocument->createElement('page')); $page->getXML($pageNode); } return true; }