Example #1
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;
 }