Пример #1
0
 public function UpdatePage(ModulePage_EntityPage $oPage)
 {
     $sql = "UPDATE ?_page\n\t\t\tSET page_pid = ? ,\n\t\t\tpage_url = ? ,\n\t\t\tpage_url_full = ? ,\n\t\t\tpage_title = ? ,\n\t\t\tpage_text = ? ,\n\t\t\tpage_text_source = ?,\n\t\t\tpage_date_edit = ? ,\n\t\t\tpage_seo_keywords = ? ,\n\t\t\tpage_seo_description = ? ,\n\t\t\tpage_active\t = ?, \t\t\n\t\t\tpage_main\t = ?,\t\t\n\t\t\tpage_sort\t = ?, \t\t\n\t\t\tpage_auto_br\t = ?\n\t\t\tWHERE page_id = ?d\n\t\t";
     $bResult = $this->oDb->query($sql, $oPage->getPid(), $oPage->getUrl(), $oPage->getUrlFull(), $oPage->getTitle(), $oPage->getText(), $oPage->getTextSource(), $oPage->getDateEdit(), $oPage->getSeoKeywords(), $oPage->getSeoDescription(), $oPage->getActive(), $oPage->getMain(), $oPage->getSort(), $oPage->getAutoBr(), $oPage->getId());
     return $bResult !== false;
 }
Пример #2
0
 /**
  * Обработка отправки формы при редактировании страницы
  *
  * @param ModulePage_EntityPage $oPageEdit
  */
 protected function SubmitEditPage($oPageEdit)
 {
     // * Проверяем корректность полей
     if (!$this->CheckPageFields()) {
         return;
     }
     if ($oPageEdit->getId() == F::GetRequest('page_pid')) {
         E::ModuleMessage()->AddError(E::ModuleLang()->Get('system_error'));
         return;
     }
     // * Проверяем есть ли страница с указанным URL
     if ($oPageEdit->getUrlFull() != F::GetRequest('page_url')) {
         if (E::ModulePage()->GetPageByUrlFull(F::GetRequest('page_url'))) {
             E::ModuleMessage()->AddError(E::ModuleLang()->Get('action.admin.page_url_exist'), E::ModuleLang()->Get('error'));
             return;
         }
     }
     // * Обновляем свойства страницы
     $oPageEdit->setActive(F::GetRequest('page_active') ? 1 : 0);
     $oPageEdit->setAutoBr(F::GetRequest('page_auto_br') ? 1 : 0);
     $oPageEdit->setMain(F::GetRequest('page_main') ? 1 : 0);
     $oPageEdit->setDateEdit(F::Now());
     if (F::GetRequest('page_pid') == 0) {
         $oPageEdit->setUrlFull(F::GetRequest('page_url'));
         $oPageEdit->setPid(null);
     } else {
         $oPageEdit->setPid(F::GetRequest('page_pid'));
         $oPageParent = E::ModulePage()->GetPageById(F::GetRequest('page_pid'));
         $oPageEdit->setUrlFull($oPageParent->getUrlFull() . '/' . F::GetRequest('page_url'));
     }
     $oPageEdit->setSeoDescription(F::GetRequest('page_seo_description'));
     $oPageEdit->setSeoKeywords(F::GetRequest('page_seo_keywords'));
     $oPageEdit->setText(E::ModuleText()->SnippetParser(F::GetRequest('page_text')));
     $oPageEdit->setTextSource(F::GetRequest('page_text'));
     $oPageEdit->setTitle(F::GetRequest('page_title'));
     $oPageEdit->setUrl(F::GetRequest('page_url'));
     $oPageEdit->setSort(F::GetRequest('page_sort'));
     // * Обновляем страницу
     if (E::ModulePage()->UpdatePage($oPageEdit)) {
         E::ModulePage()->RebuildUrlFull($oPageEdit);
         E::ModuleMessage()->AddNotice(E::ModuleLang()->Get('action.admin.pages_edit_submit_save_ok'));
         $this->SetParam(0, null);
         $this->SetParam(1, null);
         R::Location('admin/content-pages/');
     } else {
         E::ModuleMessage()->AddError(E::ModuleLang()->Get('system_error'));
     }
 }
Пример #3
0
 /**
  * Рекурсивно обновляет полный URL у всех дочерних страниц(веток)
  *
  * @param ModulePage_EntityPage $oPageStart
  */
 public function RebuildUrlFull($oPageStart)
 {
     $aPages = $this->GetPagesByPid($oPageStart->getId());
     foreach ($aPages as $oPage) {
         if ($oPage->getId() == $oPageStart->getId()) {
             continue;
         }
         if (in_array($oPage->getId(), $this->aRebuildIds)) {
             continue;
         }
         $this->aRebuildIds[] = $oPage->getId();
         $oPage->setUrlFull($oPageStart->getUrlFull() . '/' . $oPage->getUrl());
         $this->UpdatePage($oPage);
         $this->RebuildUrlFull($oPage);
     }
 }