/** * Обновляет данные конфига и данные о скрипте */ 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(); }
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); }
/** * Отображает форму редактирования */ 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(); }
/** * Отображает вкладку информаци в карте сайта */ protected function outputSitemapTabSheet($aTabSheet) { SitemapCMSForms::outputSitemapTabSheet($this->sitemapInfo, $aTabSheet['id']); }
/** * Сохраняет данные при редактировании 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); } } }