Maps:
article -> ArsThanea\BundleName\Entity\Pages\ArticlePage

@param string $pageName
@return string
501039
public function getContentTypeClass($pageName)
    {
        $pageName = $this->getFriendlyName($pageName);

        $allTypes = $this->getAllContentTypeClasses();

        return isset($allTypes[$pageName]) ? $allTypes[$pageName] : null;
    }
1208645
public function getPage($pageNumber)
    {
        if (!\is_numeric($pageNumber)) {
            throw new \InvalidArgumentException(
                'Page number needs to be a number.'
            );
        }

        if ($pageNumber < 1 || $pageNumber > $this->getPageCount()) {
            throw new \InvalidArgumentException(
                \sprintf(
                    'Page number "%s" out of available page range (1 - %s)',
                    $pageNumber,
                    $this->getPageCount()
                )
            );
        }

        $this->readPages();

        $page = $this->pages[$pageNumber - 1];

        if ($page instanceof PdfIndirectObjectReference) {
            $readPages = function ($kids) use (&$readPages) {
                $kids = PdfArray::ensure($kids);

                /** @noinspection LoopWhichDoesNotLoopInspection */
                foreach ($kids->value as $reference) {
                    $reference = PdfIndirectObjectReference::ensure($reference);
                    $object = $this->parser->getIndirectObject($reference->value);
                    $type = PdfDictionary::get($object->value, 'Type');

                    if ($type->value === 'Pages') {
                        return $readPages(PdfDictionary::get($object->value, 'Kids'));
                    }

                    return $object;
                }

                throw new PdfReaderException(
                    'Kids array cannot be empty.',
                    PdfReaderException::KIDS_EMPTY
                );
            };

            $page = $this->parser->getIndirectObject($page->value);
            $dict = PdfType::resolve($page, $this->parser);
            $type = PdfDictionary::get($dict, 'Type');
            if ($type->value === 'Pages') {
                $kids = PdfType::resolve(PdfDictionary::get($dict, 'Kids'), $this->parser);
                $page = $this->pages[$pageNumber - 1] = $readPages($kids);
            } else {
                $this->pages[$pageNumber - 1] = $page;
            }
        }

        return new Page($page, $this->parser);
    }
849915
public function generatePagePath()
    {
        $newPath = '';
        if ($this->cParentID > 0) {
            $em = Database::connection()->getEntityManager();
            /* @var $em \Doctrine\ORM\EntityManager */
            $pathObject = $this->getCollectionPathObject();
            if (is_object($pathObject) && !$pathObject->isPagePathAutoGenerated()) {
                $pathString = $pathObject->getPagePath();
            } else {
                $pathString = $this->computeCanonicalPagePath();
            }
            // ensure that the path is unique
            $suffix = 0;
            $cID = ($this->getCollectionPointerOriginalID() > 0) ? $this->getCollectionPointerOriginalID() : $this->cID;
            $q = $em->createQuery("select p.cID from Concrete\Core\Page\PagePath p where p.cPath = ?0 and p.cID <> ?1");
            $q->setHydrationMode(\Doctrine\ORM\Query::HYDRATE_SCALAR);
            $pagePathSeparator = Config::get('concrete.seo.page_path_separator');
            while (true) {
                $newPath = ($suffix === 0) ? $pathString : $pathString.$pagePathSeparator.$suffix;
                $result = $q->execute(
                    array(
                        $newPath,
                        $cID,
                    )
                );
                if (empty($result)) {
                    break;
                }
                $suffix++;
            }
        }

        return $newPath;
    }
565896
public function forward(PageDocument $page, $templateName)
    {
        $request = $this->requestStack->getCurrentRequest();
        $subRequest = $request->duplicate([], null, [
            '_controller'     => self::GLOBAL_CONTROLLER_ACTION,
            'contentDocument' => $page,
            'contentTemplate' => $templateName
        ]);

        return $this->kernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
    }
600124
private function findRouteDefinitionByRouteName($routeName)
    {
        if ($routeName === $this->homeRouteName) {
            return $this->homeDefinition;
        }

        return $this->homeDefinition->findChildByRouteName($routeName);
    }
959976
protected function getNameOfSmallestPacketForArticle( $articleName )
	{
		foreach( array_keys( $this->packets ) as $packetName )
			if( $this->volumes[$packetName][$articleName] <= 1 )
				return $packetName;
	}
1347665
public static function clean_page_url($name)
    {
        $name = str_replace(array(' '), '_', $name);

        $name = self::trim_extension_off($name);
        $name = self::trim_sort_number($name);

        if (preg_match('/^[\/]?index[\/]?/', $name)) {
            return '';
        }

        return strtolower($name);
    }
107555
protected function getUniquePageName($pageName, $parentID)
    {
        $uniquePageName = $pageName;
        $parentID = (int) $parentID;
        $index = 1;
        for (; ;) {
            $pageWithSameName = $this->connection->fetchColumn(
                'select Pages.cID from CollectionVersions inner join Pages on (CollectionVersions.cID = Pages.cID and CollectionVersions.cvIsApproved = 1) where Pages.cParentID = ? and CollectionVersions.cvName = ? limit 1',
                [$parentID, $uniquePageName]
            );
            if ($pageWithSameName === false) {
                return $uniquePageName;
            }
            ++$index;
            $uniquePageName = $pageName . ' ' . $index;
        }
    }
772198
public function getPrefix(Page $page)
    {
        $parent = $page->getParent();

        if ($parent === null) {
            return '';
        }

        return ($parent->getChildPageUrlPrefix()) ?: $page->getParent()->url()->getLocation();
    }
597044
private function getMappedTemplateName(string $templateName): ?string
    {
        if (isset($this->mapping['mandatory'][$templateName])) {
            return $this->mapping['mandatory'][$templateName];
        }

        if (isset($this->mapping['optional'][$templateName])) {
            return $this->mapping['optional'][$templateName];
        }

        return null;
    }
1007028
public function mapBrowserMaker(string $browserMaker, ?string $browserName = null): ?string
    {
        if (null === $browserName) {
            return null;
        }

        switch (mb_strtolower($browserName)) {
            case 'unknown':
            case 'other':
            case '':
                $browserMaker = null;
                break;
            default:
                $browserMaker = (new MakerMapper())->mapMaker($browserMaker);
                break;
        }

        return $browserMaker;
    }
648630
protected function generateSitesPageFusion($packageKey, $siteName)
    {
        $templatePathAndFilename = 'resource://Neos.SiteKickstarter/Private/Generator/Fusion/NodeTypes/Pages/Page.fusion';

        $contextVariables = [];
        $contextVariables['packageKey'] = $packageKey;
        $contextVariables['siteName'] = $siteName;
        $packageKeyDomainPart = substr(strrchr($packageKey, '.'), 1) ?: $packageKey;
        $contextVariables['siteNodeName'] = $packageKeyDomainPart;

        $fileContent = $this->renderSimpleTemplate($templatePathAndFilename, $contextVariables);

        $sitesPageFusionPathAndFilename = $this->packageManager->getPackage($packageKey)->getResourcesPath() . 'Private/Fusion/NodeTypes/Page.fusion';
        $this->generateFile($sitesPageFusionPathAndFilename, $fileContent);
    }
247993
public function getIndexedContent($pageUid)
    {
        $queryBuilder = Db::getQueryBuilder('tx_kesearch_index');
        $contentRows = $queryBuilder
            ->select('*')
            ->from('tx_kesearch_index')
            ->where(
                $queryBuilder->expr()->eq('type', $queryBuilder->createNamedParameter('page')),
                $queryBuilder->expr()->eq('targetpid', intval($pageUid))
            )
            ->orWhere(
                $queryBuilder->expr()->neq('type', $queryBuilder->createNamedParameter('page')),
                $queryBuilder->expr()->eq('pid', intval($pageUid))
            )
            ->execute();

        while ($row = $contentRows->fetch()) {
            // build tag table
            $tagTable = '<div class="tags" >';
            $tags = GeneralUtility::trimExplode(',', $row['tags'], true);
            foreach ($tags as $tag) {
                $tagTable .= '<span class="tag">' . $tag . '</span>';
            }
            $tagTable .= '</div>';

            // build content
            $timeformat = '%d.%m.%Y %H:%M';
            $content .=
                '<div class="summary">'
                . '<span class="title">' . $row['title'] . '</span>'
                . '<div class="clearer">&nbsp;</div>'
                . $this->renderFurtherInformation('Type', $row['type'])
                . $this->renderFurtherInformation('Words', str_word_count($row['content']))
                . $this->renderFurtherInformation('Language', $row['language'])
                . $this->renderFurtherInformation('Created', strftime($timeformat, $row['crdate']))
                . $this->renderFurtherInformation('Modified', strftime($timeformat, $row['tstamp']))
                . $this->renderFurtherInformation(
                    'Sortdate',
                    ($row['sortdate'] ? strftime($timeformat, $row['sortdate']) : '')
                )
                . $this->renderFurtherInformation(
                    'Starttime',
                    ($row['starttime'] ? strftime($timeformat, $row['starttime']) : '')
                )
                . $this->renderFurtherInformation(
                    'Endtime',
                    ($row['endtime'] ? strftime($timeformat, $row['endtime']) : '')
                )
                . $this->renderFurtherInformation('FE Group', $row['fe_group'])
                . $this->renderFurtherInformation('Target Page', $row['targetpid'])
                . $this->renderFurtherInformation('URL Params', $row['params'])
                . $this->renderFurtherInformation('Original PID', $row['orig_pid'])
                . $this->renderFurtherInformation('Original UID', $row['orig_uid'])
                . $this->renderFurtherInformation('Path', $row['directory'])
                . '<div class="clearer">&nbsp;</div>'
                . '<div class="box"><div class="headline">Abstract</div><div class="content">'
                . nl2br($row['abstract']) . '</div></div>'
                . '<div class="box"><div class="headline">Content</div><div class="content">'
                . nl2br($row['content']) . '</div></div>'
                . '<div class="box"><div class="headline">Tags</div><div class="content">' . $tagTable . '</div></div>'
                . '</div>';
        }

        return $content;
    }
1194704
public function getPageMapper()
    {
        if (null === $this->pageMapper) {
            $this->pageMapper = $this->serviceLocator->get('playgroundcms_page_mapper');
        }

        return $this->pageMapper;
    }
132627
public function article($entity)
    {
        if (!$entity->displayArticleMetaTags) {
            return '';
        }

        $attributes = [
            'article:publisher' => Configure::read('Settings.Cms.SEO.Social.facebook_url'),
            'article:tag' => '',
            'article:section' => ''
        ];

        if ($entity->displayMetaDates) {
            $attributes['article:published_time'] = ($entity->published !== null) ? $entity->published->format('c') : null;
            $attributes['article:modified_time'] = $entity->modified->format('c');
        }

        $out = '';
        foreach ($attributes as $property => $content) {
            $out .= $this->_render(self::ATTR_PROP, $property, $content);
        }

        return $out;
    }
304833
public function getPageBlocksByRouteName($routeName)
    {
        $pageName = $this->routeConfig->getPageName($routeName);

        if (!isset($this->pageBlocks[$pageName])) {
            throw new \Exception(
                sprintf(
                    'Not found blocs for page with name \'%s\' and route name \'%s\'',
                    $pageName,
                    $routeName
                )
            );
        }

        return $this->pageBlocks[$pageName];
    }
949245
public function getLinkForPage($page)
    {
        return $page->Link() . "article/" . $this->HailID . '/' . Convert::raw2url($this->Title);
    }