For the curret page, return the text that will be used for that pages canonical path. This happens before
any uniqueness checks get run.

@return string
336379
protected function computeCanonicalPagePath()
    {
        $parent = static::getByID($this->cParentID);
        $parentPath = $parent->getCollectionPathObject();
        $path = '';
        if ($parentPath instanceof PagePath) {
            $path = $parentPath->getPagePath();
        }
        $path .= '/';
        $cID = ($this->getCollectionPointerOriginalID() > 0) ? $this->getCollectionPointerOriginalID() : $this->cID;
        $path .= $this->getCollectionHandle() ? $this->getCollectionHandle() : $cID;

        $event = new PagePathEvent($this);
        $event->setPagePath($path);
        $event = Events::dispatch('on_compute_canonical_page_path', $event);

        return $event->getPagePath();
    }
284590
public function docletPath()
    {
        //return $this->makeAbsolutePath($this->fixPath($this->_docletPath).$this->fixPath($this->_doclet), $this->_path);
        return realpath($this->fixPath($this->_docletPath).$this->fixPath($this->_doclet)).'/';
    }
59223
public function getHeadingText()
    {
        if ($this->Heading) {
            return $this->Heading;
        }
        
        if ($this->hasLinkPage()) {
            return $this->LinkPage()->MetaTitle;
        }
    }
244050
private static function getCanonicalPath($path): string
    {
        $path = static::normalizeWindowsPath($path);

        $absolutePathPrefix = '';
        if (static::isAbsolutePath($path)) {
            if (static::isWindows() && strpos($path, ':/') === 1) {
                $absolutePathPrefix = substr($path, 0, 3);
                $path = substr($path, 3);
            } else {
                $path = ltrim($path, '/');
                $absolutePathPrefix = '/';
            }
        }

        $pathParts = explode('/', $path);
        $pathPartsLength = count($pathParts);
        for ($partCount = 0; $partCount < $pathPartsLength; $partCount++) {
            // double-slashes in path: remove element
            if ($pathParts[$partCount] === '') {
                array_splice($pathParts, $partCount, 1);
                $partCount--;
                $pathPartsLength--;
            }
            // "." in path: remove element
            if (($pathParts[$partCount] ?? '') === '.') {
                array_splice($pathParts, $partCount, 1);
                $partCount--;
                $pathPartsLength--;
            }
            // ".." in path:
            if (($pathParts[$partCount] ?? '') === '..') {
                if ($partCount === 0) {
                    array_splice($pathParts, $partCount, 1);
                    $partCount--;
                    $pathPartsLength--;
                } elseif ($partCount >= 1) {
                    // Rremove this and previous element
                    array_splice($pathParts, $partCount - 1, 2);
                    $partCount -= 2;
                    $pathPartsLength -= 2;
                } elseif ($absolutePathPrefix) {
                    // can't go higher than root dir
                    // simply remove this part and continue
                    array_splice($pathParts, $partCount, 1);
                    $partCount--;
                    $pathPartsLength--;
                }
            }
        }

        return $absolutePathPrefix . implode('/', $pathParts);
    }
1132272
protected function get_script_path()
    {
        if( null == $this->script_path )
        {
            $class_name =  substr( get_called_class() , strrpos( get_called_class(), '\\') + 1);
            $this->script_path = $this->get_dir() . '/' . $class_name . '.phtml';
        }
        return $this->script_path;
    }
1274995
public function getPath(): string
    {

        $query = http_build_query(
            [
                'q'      => $this->query,
                'show'   => ($this->page !== 1) ? 50 * ($this->page - 1) : null,
                'letter' => $this->char,
                'type'   => $this->type,
                'score'  => $this->score,
                'status' => $this->status,
                'p'      => $this->producer,
                'r'      => $this->rated,
                'sd'     => $this->startDate[0],
                'sm'     => $this->startDate[1],
                'sy'     => $this->startDate[2],
                'ed'     => $this->endDate[0],
                'em'     => $this->endDate[1],
                'ey'     => $this->endDate[2],
                'gx'     => (int)$this->genreExclude,
                'o'      => $this->orderBy,
                'w'      => $this->sort
            ]
        );

        // Add genre[]=
        if (!empty($this->genre)) {
            foreach ($this->genre as $genre) {
                $query .= '&genre[]='.$genre;
            }
        }

        return sprintf(
            'https://myanimelist.net/anime.php?%s&c[]=a&c[]=b&c[]=c&c[]=f&c[]=d&c[]=e&c[]=g',
            $query
        );
    }
84051
public function getTitleText()
    {
        if ($this->UseLevelTitle && ($level = $this->getLevel())) {
            return $level->MenuTitle;
        }
        
        return parent::getTitleText();
    }
193973
public function getExcerptText()
    {
        if($this->excerpt)
        {
            return $this->excerpt;
        }
        else
        {
            $rowExcerpt = strip_tags($this->content);

            if( strlen($rowExcerpt) > self::EXCERPT_LENGTH)
            {
                $break = strpos($rowExcerpt, ' ', self::EXCERPT_LENGTH - 10);
                $rowExcerpt = substr($rowExcerpt, 0, $break) . '...';
            }

            return $rowExcerpt;
        }
    }
52435
public static function GetPath () {
		return static::LasyClassVarAccessCallback('path', function () {return (preg_match(sprintf("@^%s(.+)$@u", str_replace('@', "\\@", dirname($_SERVER['SCRIPT_NAME']))), $_SERVER['REQUEST_URI'], $matches) === 1) ? '/' . explode('?', $matches[1], 2)[0] : '';});
	}
289000
protected function getEntrySubmitScriptText()
    {
        $url       = $this->buildCompatibleUrl();
        $entryName = $this->entry->getName();
        $link      = Builder::escapeText($url . $entryName . "=");
        return "
declare Value = TextLib::URLEncode(Entry.Value);
OpenLink({$link}^Value, CMlScript::LinkType::Goto);
";
    }
832355
protected function getPath()
    {
        if (null === $this->parent) {
            return null;
        }
        if (null !== ( $pPath = $this->parent->getPath() )) {
            return $pPath . '.' . $this->handle;
        }else {
            return $this->handle;
        }
    }
1121213
protected function computeCanonicalPagePath()
    {
        $parent = self::getByID($this->cParentID);
        $parentPath = $parent->getCollectionPathObject();
        $path = '';
        if ($parentPath instanceof PagePath) {
            $path = $parentPath->getPagePath();
        }
        $path .= '/';
        $cID = ($this->getCollectionPointerOriginalID() > 0) ? $this->getCollectionPointerOriginalID() : $this->cID;
        /** @var \Concrete\Core\Utility\Service\Validation\Strings $stringValidator */
        $stringValidator = Core::make('helper/validation/strings');
        if ($stringValidator->notempty($this->getCollectionHandle())) {
            $path .= $this->getCollectionHandle();
        } else if (!$this->isHomePage()) {
            $path .= $cID;
        } else {
            $path = ''; // This is computing the path for the home page, which has no handle, and so shouldn't have a segment.
        }

        $event = new PagePathEvent($this);
        $event->setPagePath($path);
        $event = Events::dispatch('on_compute_canonical_page_path', $event);

        return $event->getPagePath();
    }
458046
public function say_local_path()
  {
    if ( ($pp = $this->get_prepath()) && (strpos($this->path, $pp) === 0) ){
      return substr($this->path, \strlen($pp));
    }
    return $this->path;
  }
699286
public function getContent()
    {
        $content = self::getNumberingTypeAsRtf($this->_footnoteNumberingType) . ' '
                 . self::getNumberingTypeAsRtf($this->_endnoteNumberingType, '\aftnn') . ' '
                 . '\ftnstart' . $this->_footnoteStartNumber . ' '
                 . '\aftnstart' . $this->_endnoteStartNumber . ' ';

        if ($this->_footnoteRestartEachPage) {
            $content .= '\ftnrstpg ';
        }
        if ($this->_endnoteRestartEachPage) {
            $content .= '\aftnrstpg ';
        }

        return $content;
    }
507379
public function getMatchedPath()
    {
        $path = $this->pathMatched;
        if ($this->mount) {
            $len = strlen($this->mount);
            if (substr($path, 0, $len) == $this->mount) {
                $path = ltrim(substr($path, $len), "/");
            }
        }

        return $path;
    }
781947
public function getRouteName()
    {
        if ($this->is_page) {
            return $this->alias;
        }

        return str_replace('category-', '', $this->category->getRouteName() . '.' . $this->alias);
    }
1044535
protected function getNext() {
		if ($this->get('page')< $this->pageTotal) {
			return $this->replaceLine($this->get('page')+ 1, $this->get('next'));
		}
		return null;
	}