Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/Mvc/RouteBuiltLink.php
<?php

namespace XF\Mvc;

use function
strlen;

class
RouteBuiltLink
{
    protected
$link;
    protected
$allowPather;

    public function
__construct($link, $allowPather = true)
    {
       
$this->link = $link;
       
$this->allowPather = $allowPather;
    }

    public function
getLink()
    {
        return
$this->link;
    }

    public function
setLink($link)
    {
       
$this->link = $link;
    }

    public function
getFinalLink(Router $router, $modifier, $queryString)
    {
        if (
$this->link instanceof \Closure)
        {
           
$link = $this->link;
            return
$link($router, $modifier, $queryString);
        }

        if (
strlen($queryString))
        {
           
$replace = [
               
'{qs}' => $queryString,
               
'{?qs}' => "?$queryString",
               
'{&qs}' => "&$queryString"
           
];
        }
        else
        {
           
$replace = [
               
'{qs}' => '',
               
'{?qs}' => '',
               
'{&qs}' => ''
           
];
        }

       
$url = strtr($this->link, $replace);

        if (
$this->allowPather)
        {
           
$url = $router->applyPather($url, $modifier);
        }

        return
$url;
    }
}