Ejemplo n.º 1
0
 /**
  * Change URL path of page
  *
  * @param string $pageId
  * @param string $newUrlPath
  * @return bool|null
  */
 protected static function changePageUrlPath($pageId, $newUrlPath)
 {
     $pageBeforeChange = ipPage($pageId);
     if (ipGetOption('Config.trailingSlash', 1)) {
         if (mb_substr($newUrlPath, -1) != '/') {
             $newUrlPath .= '/';
         }
     } else {
         if (mb_substr($newUrlPath, -1) == '/') {
             $newUrlPath = mb_substr($newUrlPath, 0, -1);
         }
     }
     if ($newUrlPath == $pageBeforeChange->getUrlPath()) {
         return false;
     }
     $allocatedPath = UrlAllocator::allocatePath($pageBeforeChange->getLanguageCode(), $newUrlPath);
     ipDb()->update('page', array('urlPath' => $allocatedPath), array('id' => $pageId));
     $pageAfterChange = ipPage($pageId);
     $oldUrl = $pageBeforeChange->getLink();
     if (substr($oldUrl, -1) == '/') {
         $oldUrl = substr($oldUrl, 0, -1);
     }
     $newUrl = $pageAfterChange->getLink();
     if (substr($newUrl, -1) == '/') {
         $newUrl = substr($newUrl, 0, -1);
     }
     ipEvent('ipUrlChanged', array('oldUrl' => $oldUrl, 'newUrl' => $newUrl));
     return null;
 }