Beispiel #1
0
 /**
  * Обновляет данные конфига и данные о скрипте
  */
 public function postConfig($name, $url_key, $move_id = null)
 {
     if (!is_null($move_id)) {
         $this->updateScript($move_id, $name, $url_key);
         SitemapCMSForms::updateSitemapPageFromPost($this->aSitemap);
     }
     parent::post();
 }
Beispiel #2
0
 protected function post($sitemapId)
 {
     $this->getModel($sitemapId);
     $this->checkUserHasEnoughRights();
     try {
         $result = $this->document->updateFromPost($_POST);
         if ($result == true) {
             // Если успешно, пишем всё ок
             $this->addAlert(_msg('Документ был успешно обновлен'));
         } else {
             // Если нет, пишем всё галимо
             $this->addAlert(_msg('Ошибки при обновлении документа, попробуйте позже'));
         }
         SitemapCMSForms::updateSitemapPageFromPost($this->aSitemap);
     } catch (SiteMapException $e) {
         CMSLog::addMessage('sitemap', $e);
         $this->addError('При обновлении документа произошла ошибка сохранения в базе документов');
     }
     // Показываем страницу
     $url = 'edit.php?id=' . $sitemapId;
     $this->jump($url);
 }
Beispiel #3
0
 /**
  * Отображает форму редактирования
  */
 protected function outputEditingForm($sheets, $controls)
 {
     $sheetsEmpty = false;
     if (empty($sheets)) {
         $sheetsEmpty = true;
         $sheets = array(array('id' => 'mainTab', 'title' => 'Ошибка'));
     }
     if ($this->schema->getSitemapLink()) {
         $sitemapInfo = Sitemap_Sample::get($this->schema->getSitemapLink());
         array_push($sheets, array('id' => 'sitemapTab', 'title' => 'Свойства'));
     }
     //
     $design = CMSDesign::getInstance();
     $design->forms->begin();
     // Вывод вкладок
     $design->tabs->sheetsBegin($sheets);
     // По вкладкам вывод
     $i = 0;
     if (!empty($controls)) {
         foreach ($controls as $list) {
             $design->tabs->contentBegin($sheets[$i]['id']);
             $design->table->begin();
             foreach ($list as $control) {
                 $design->table->row2cell($control->getTitle(), $control->outputInForm());
             }
             $design->table->end();
             $design->tabs->contentEnd();
             $i++;
         }
     } else {
         $design->tabs->contentBegin($sheets[0]['id']);
         $design->decor->contentBegin();
         printf('У данной схемы пока нету вкладок для редактирования<br/>');
         $auth = CMSAuth::getInstance();
         if ($auth->isSuperAdmin(UsersLogin::getCurrentUser())) {
             printf('Перейти к <a href="%scconfig/manage.php?schema=%s&edit=1">управлению</a> конфигом', \Extasy\CMS::getDashboardWWWRoot(), $this->schema->getName());
         }
         $design->decor->contentEnd();
         $design->tabs->contentEnd();
     }
     if (!empty($sitemapInfo)) {
         $auth = CMSAuth::getInstance();
         if ($auth->isSuperAdmin(UsersLogin::getCurrentUser())) {
             $link = sprintf('<a href="%scconfig/manage.php?schema=%s" target="_blank">Управление конфигом</a>', \Extasy\CMS::getDashboardWWWRoot(), $this->schema->getName());
             $property = array('' => $link);
         } else {
             $property = array();
         }
         SitemapCMSForms::outputSitemapTabSheet($sitemapInfo, $sheets[sizeof($sheets) - 1]['id'], $property);
     }
     $design->tabs->sheetsEnd();
     $design->forms->hidden('schema', $this->schema->getName());
     // Вывод конца
     $design->forms->submit('submit', 'Сохранить');
     $design->forms->end();
     $this->outputFooter();
 }
Beispiel #4
0
 /**
  * Отображает вкладку информаци в карте сайта
  */
 protected function outputSitemapTabSheet($aTabSheet)
 {
     SitemapCMSForms::outputSitemapTabSheet($this->sitemapInfo, $aTabSheet['id']);
 }
Beispiel #5
0
 /**
  * Сохраняет данные при редактировании sitemap-страницы
  * @param array $sitemap
  */
 public static function updateSitemapPageFromPost($sitemap)
 {
     self::$sitemap = $sitemap;
     self::updateVisible($sitemap['id']);
     self::updateSitemapXMLFromPost($sitemap['id']);
     self::updateNameAndUrlkey($sitemap['id']);
     // Если это скрипт, то
     if (!empty($_POST['sitemap_url_key'])) {
         $name = $_POST['sitemap_name'];
         $parent = $sitemap['parent'];
         $urlKey = $_POST['sitemap_url_key'];
         if (isset($_POST['sitemap_move_id'])) {
             $sitemapMoveId = intval($_POST['sitemap_move_id']);
             if ($sitemapMoveId >= 0) {
                 $parent = $sitemapMoveId;
             }
         }
         Sitemap::updateScript($sitemap['id'], $name, $sitemap['script'], $urlKey, $parent, $sitemap['script_admin_url'], $sitemap['script_manual_order']);
         if (!empty($sitemapMoveId)) {
             Sitemap::updateParentCount($sitemap['parent']);
             Sitemap::updateParentCount($sitemapMoveId);
         }
     }
 }