public function formatLink(Url $url)
 {
     $page = $url->getQueryParameter(self::$pageParamName);
     if (!empty($page)) {
         $oldPath = $url->getPath();
         ////
         // get path without filename
         if (substr($oldPath, -1, 1) == '/') {
             // path don't contains filename
             $path = $oldPath;
         } else {
             if ($lastDelimiterPos = strrpos($oldPath, '/')) {
                 // any path (with folder) given
                 $path = substr($oldPath, 0, $lastDelimiterPos + 1);
                 // omit filename, include last delimiter
             } else {
                 $path = '/';
             }
         }
         ////
         // omit page param "folder" at last position
         $paramLength = strlen(self::$pageParamName . '/');
         if (substr($path, -1 * $paramLength) == self::$pageParamName . '/') {
             $pathLength = strlen($path);
             $path = substr($path, 0, $pathLength - $paramLength);
         }
         // put page parameter at end of path
         $path .= self::$pageParamName . '/' . $page;
         $url->setPath($path);
         $url->setQueryParameter(self::$pageParamName, null);
     }
     return parent::formatLink($url);
 }
Beispiel #2
0
 /**
  * @param Url $url
  *
  * @return Url
  */
 public function setPageRequestParamInURL(Url $url)
 {
     /** @var $SMSM SMSManager */
     $SMSM = $this->getDIServiceObject('APF\\extensions\\apfelsms', 'Manager');
     $pageRequestParam = $SMSM->getPageRequestParamName();
     $url->setQueryParameter($pageRequestParam, $this->getId());
     return $url;
 }