MetaModels\BackendIntegration\SearchablePages::getJumpTosFor PHP Метод

getJumpTosFor() защищенный Метод

Get the list of jumpTos based on the items.
protected getJumpTosFor ( array $availableLanguages, MetaModels\IMetaModel $metaModels, MetaModels\Filter\IFilter $filter, MetaModels\Render\Setting\ICollection $view, string | null $rootPage = null ) : array
$availableLanguages array List of languages to be used.
$metaModels MetaModels\IMetaModel The MetaModels to be used.
$filter MetaModels\Filter\IFilter The filter to be used.
$view MetaModels\Render\Setting\ICollection The view to be used.
$rootPage string | null The root page id or null if there is no root page.
Результат array A list of urls for the jumpTos
    protected function getJumpTosFor($availableLanguages, $metaModels, $filter, $view, $rootPage = null)
    {
        $entries = array();
        foreach ($availableLanguages as $language) {
            // Set the language.
            $GLOBALS['TL_LANGUAGE'] = $language;
            // Get the object.
            $items = $metaModels->findByFilter($filter);
            /** @var Item $item */
            foreach ($items as $item) {
                $jumpTo = $item->buildJumpToLink($view);
                $event = new GetPageDetailsEvent($jumpTo['page']);
                $this->getEventDispatcher()->dispatch(ContaoEvents::CONTROLLER_GET_PAGE_DETAILS, $event);
                $pageDetails = $event->getPageDetails();
                // If there is a root page check the context or if we have no page continue.
                if ($pageDetails === null || $rootPage !== null && $pageDetails['rootId'] != $rootPage) {
                    continue;
                }
                // Build the url.
                $url = $this->getBaseUrl($pageDetails, $jumpTo['url']);
                $entries[] = $url->getUrl();
            }
        }
        return $entries;
    }