Ip\Menu\Helper::arrayToMenuItem PHP Method

arrayToMenuItem() private static method

private static arrayToMenuItem ( array $pages, integer $depth, integer $curDepth, string $order ) : array
$pages array
$depth integer
$curDepth integer
$order string
return array
    private static function arrayToMenuItem($pages, $depth, $curDepth, $order)
    {
        $items = array();
        foreach ($pages as $pageRow) {
            $page = new \Ip\Page($pageRow['id']);
            $item = new Item();
            $subSelected = false;
            if ($curDepth < $depth) {
                $children = ipDb()->selectAll('page', '*', array('parentId' => $page->getId(), 'isVisible' => 1, 'isSecured' => 0, 'isDeleted' => 0), "ORDER BY {$order}");
                if ($children) {
                    $childrenItems = self::arrayToMenuItem($children, $depth, $curDepth + 1, $order);
                    $item->setChildren($childrenItems);
                }
            }
            if ($page->isCurrent() || $page->getRedirectUrl() && $page->getLink() == \Ip\Internal\UrlHelper::getCurrentUrl()) {
                $item->markAsCurrent(true);
            } elseif ($page->isInCurrentBreadcrumb() || $subSelected || $page->getRedirectUrl() && self::existInBreadcrumb($page->getLink())) {
                $item->markAsInCurrentBreadcrumb(true);
            }
            if ($page->isDisabled()) {
                $item->setUrl('');
            } elseif ($page->getRedirectUrl()) {
                $url = $page->getRedirectUrl();
                if (!preg_match('/^((http|https):\\/\\/|\\/\\/)/i', $url)) {
                    $url = ipConfig()->protocol() . '://' . $url;
                }
                $item->setUrl($url);
            } else {
                $item->setUrl($page->getLink());
            }
            $metaTitle = $page->getMetaTitle();
            $item->setBlank($page->isBlank());
            $item->setTitle($page->getTitle());
            $item->setDepth($curDepth);
            $item->setDisabled($page->isDisabled());
            $item->setId($page->getId());
            $item->setAlias($page->getAlias());
            $item->setPageTitle(empty($metaTitle) ? $page->getTitle() : $metaTitle);
            $items[] = $item;
        }
        return $items;
    }