87 $this->
_init(
'cms_page',
'page_id');
95 return $this->metadataPool->getMetadata(PageInterface::class)->getEntityConnection();
113 foreach ([
'custom_theme_from',
'custom_theme_to'] as $field) {
114 $value = !$object->
getData($field) ? null : $this->dateTime->formatDate($object->
getData($field));
121 "The page URL key can't use capital letters or disallowed symbols. " 122 .
"Remove the letters and symbols and try again." 129 __(
"The page URL key can't use only numbers. Add letters or words and try again.")
132 return parent::_beforeSave($object);
145 $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class);
147 if (!is_numeric(
$value) && $field ===
null) {
148 $field =
'identifier';
150 $field = $entityMetadata->getIdentifierField();
154 if ($field != $entityMetadata->getIdentifierField() || $object->getStoreId()) {
157 ->columns($this->
getMainTable() .
'.' . $entityMetadata->getIdentifierField())
175 $pageId = $this->getPageId($object,
$value, $field);
177 $this->entityManager->load($object, $pageId);
192 $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class);
193 $linkField = $entityMetadata->getLinkField();
197 if ($object->getStoreId()) {
200 (int)$object->getStoreId(),
203 [
'cms_page_store' => $this->
getTable(
'cms_page_store')],
204 $this->
getMainTable() .
'.' . $linkField .
' = cms_page_store.' . $linkField,
207 ->where(
'is_active = ?', 1)
208 ->where(
'cms_page_store.store_id IN (?)', $storeIds)
209 ->order(
'cms_page_store.store_id DESC')
226 $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class);
227 $linkField = $entityMetadata->getLinkField();
232 [
'cps' => $this->
getTable(
'cms_page_store')],
233 'cp.' . $linkField .
' = cps.' . $linkField,
236 ->where(
'cp.identifier = ?', $identifier)
237 ->where(
'cps.store_id IN (?)',
$store);
239 if ($isActive !==
null) {
240 $select->where(
'cp.is_active = ?', $isActive);
254 return preg_match(
'/^[0-9]+$/', $object->
getData(
'identifier'));
265 return preg_match(
'/^[a-z0-9][a-z0-9_\/-]+(\.[a-z0-9_-]+)?$/', $object->
getData(
'identifier'));
278 $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class);
283 ->columns(
'cp.' . $entityMetadata->getIdentifierField())
284 ->order(
'cps.store_id DESC')
305 ->columns(
'cp.title')
306 ->order(
'cps.store_id DESC')
321 $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class);
325 ->where($entityMetadata->getIdentifierField() .
' = :page_id');
339 $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class);
343 ->where($entityMetadata->getIdentifierField() .
' = :page_id');
358 $entityMetadata = $this->metadataPool->getMetadata(PageInterface::class);
359 $linkField = $entityMetadata->getLinkField();
362 ->from([
'cps' => $this->
getTable(
'cms_page_store')],
'store_id')
365 'cps.' . $linkField .
' = cp.' . $linkField,
368 ->where(
'cp.' . $entityMetadata->getIdentifierField() .
' = :page_id');
392 return $this->_storeManager->getStore($this->_store);
400 $this->entityManager->save($object);
409 $this->entityManager->delete($object);
setData($key, $value=null)
isValidPageIdentifier(AbstractModel $object)
getData($key='', $index=null)
elseif(isset( $params[ 'redirect_parent']))
_beforeSave(AbstractModel $object)
_init($mainTable, $idFieldName)
getCmsPageIdentifierById($id)
isNumericPageIdentifier(AbstractModel $object)
load(AbstractModel $object, $value, $field=null)
checkIdentifier($identifier, $storeId)
__construct(Context $context, StoreManagerInterface $storeManager, DateTime $dateTime, EntityManager $entityManager, MetadataPool $metadataPool, $connectionName=null)
_getLoadSelect($field, $value, $object)
getCmsPageTitleByIdentifier($identifier)
save(AbstractModel $object)
_getLoadByIdentifierSelect($identifier, $store, $isActive=null)