/** * 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; }