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;
 }
Ejemplo n.º 2
0
 /**
  * Insert new page
  *
  * @param int $parentId
  * @param string $title
  * @param array $data
  * @return int page id
  * @throws \Ip\Exception
  */
 public static function addPage($parentId, $title, $data = array())
 {
     $data['title'] = $title;
     if (!isset($data['createdAt'])) {
         $data['createdAt'] = date('Y-m-d H:i:s');
     }
     if (!isset($data['updatedAt'])) {
         $data['updatedAt'] = date('Y-m-d H:i:s');
     }
     if (!isset($data['isVisible'])) {
         $data['isVisible'] = !ipGetOption('Pages.hideNewPages');
     }
     if (!isset($data['languageCode'])) {
         $data['languageCode'] = ipDb()->selectValue('page', 'languageCode', array('id' => $parentId));
         if (empty($data['languageCode'])) {
             $data['languageCode'] = ipDb()->selectValue('page', 'languageCode', array('alias' => $parentId));
         }
         if (empty($data['languageCode'])) {
             throw new \Ip\Exception('Page languageCode should be set if parent is absent');
         }
     }
     if (!isset($data['urlPath'])) {
         $dataForPath = $data;
         $dataForPath['parentId'] = $parentId;
         $data['urlPath'] = UrlAllocator::allocatePathForNewPage($dataForPath);
     }
     $newPageId = Model::addPage($parentId, $data);
     return $newPageId;
 }