function executeSave() { $request = fvRequest::getInstance(); if (!($Page = PageManager::getInstance()->getByPk($request->getRequestParameter('id')))) { $Page = new Page(); } $p = $request->getRequestParameter('p'); $meta = $request->getRequestParameter('meta'); if ($Page->isNew()) { $defaultPage = PageManager::getInstance()->getByPageName('default'); if (is_object($defaultPage = $defaultPage[0])) { if (!$p['page_title']) { $p['page_title'] = $defaultPage->page_title; } if (!$p['page_description']) { $p['page_description'] = $defaultPage->page_description; } if (!$p['page_keywords']) { $p['page_keywords'] = $defaultPage->page_keywords; } if (!$p['page_content']) { $p['page_content'] = $defaultPage->page_content; } } } $Page->addField("oldImage", 'string', $Page->image); $Page->updateFromRequest($p); $Page->getMeta()->updateFromRequest($meta); if ($Page->setMeta($Page->getMeta()) && $Page->save()) { fvResponce::getInstance()->setHeader('Id', $Page->getPk()); $this->setFlash("Данные успешно сохранены", self::$FLASH_SUCCESS); fvResponce::getInstance()->setHeader('redirect', fvSite::$fvConfig->get('dir_web_root') . $request->getRequestParameter('module') . "/?id=" . $Page->getPk()); } else { fvResponce::getInstance()->setHeader('X-JSON', json_encode($Page->getValidationResult())); $this->setFlash("Ошибка при сохранении данных проверте правильность введенных данных", self::$FLASH_ERROR); } if (fvRequest::getInstance()->isXmlHttpRequest()) { return self::$FV_AJAX_CALL; } else { return self::$FV_OK; } }
/** * Renders master template using block values as set by the time of calling * * @param Page $page * * @return string * @throws \Exception */ public function render($page) { // get initial set of blocks from the page $blocks = $page->getBlocks(); //region Normalize styles and scripts, accumulated in meta, styles, scripts, cssFiles and jsFiles $templateContent = $this->getTemplate('index.meta'); foreach ($page->getMeta() as $key => $value) { $blocks['meta'] .= TextProcessor::doText($templateContent, array('key' => $key, 'value' => $value)); } $templateContent = $this->getTemplate('index.og'); foreach ($page->getOg() as $property => $content) { $blocks['og'] .= TextProcessor::doText($templateContent, array('property' => $property, 'content' => $content)); } $templateContent = $this->getTemplate('index.cssFile'); foreach ($page->getCcsFiles() as $cssFileName) { $blocks['cssFiles'] .= TextProcessor::doText($templateContent, array('filename' => $cssFileName)); } $styles = $page->getStyles(); if (count($styles) > 0) { $blocks['styles'] = join(PHP_EOL, $styles); } $templateContent = $this->getTemplate('framework', 'index.jsFile'); foreach ($page->getHeadJsFiles() as $jsFileName) { $blocks['headJsFiles'] .= TextProcessor::doText($templateContent, array('filename' => $jsFileName)); } foreach ($page->getBodyJsFiles() as $jsFileName) { $blocks['bodyJsFiles'] .= TextProcessor::doText($templateContent, array('filename' => $jsFileName)); } $headScripts = $page->getHeadScripts(); if (count($headScripts) > 0) { $blocks['headScripts'] = join(PHP_EOL, $headScripts); } $bodyScripts = $page->getBodyScripts(); if (count($bodyScripts) > 0) { $blocks['bodyScripts'] = join(PHP_EOL, $bodyScripts); } //endregion // Parse the location of master template list($moduleName, $templateName) = explode(':', $page->getMasterTemplate(), 2); // Return parsed value return TextProcessor::doTemplate($moduleName, $templateName, $blocks); }
public function display() { $template = new Template(); $template->load("site_edit"); $page = new Page(); if (isset($_GET['site'])) { $page->loadProperties(DataBase::Current()->EscapeString($_GET['site'])); if (isset($_POST['save'])) { $oldpage = $page; $page->title = $_POST['title']; $page->menu = $_POST['menu']; $page->getMeta()->description = $_POST['meta-description']; $page->getMeta()->keywords = $_POST['meta-keywords']; $page->getMeta()->robots = $_POST['meta-robots']; $page->alias = $page->getDir() . $_POST['localalias']; $page->ownerid = $_POST['owner']; $page->canonical = $_POST['canonical']; $page->advancedHtmlHeader = $_POST['advanced_html_header']; $page->SetChangeFrequence($_POST['change_frequence']); if (isset($_POST['in_sitemap'])) { $page->inSitemap = $_POST['in_sitemap']; } else { $page->inSitemap = false; } $page->priority = $_POST['priority']; $page->save(); $page->getEditor()->save($page, $oldpage); Role::clearAccess($page); if ($_POST['rights']) { foreach ($_POST['rights'] as $right) { $role = new Role(); $role->load($right); $role->allowAccess($page); } } } else { if (isset($_POST['menu'])) { $page->title = $_POST['title']; $page->alias = $page->getDir() . $_POST['localalias']; $page->menu = $_POST['menu']; $page->getEditor()->content = $_POST['content']; } } $url = UrlRewriting::GetUrlByAlias("admin/pageedit", "site=" . $page->alias); $template->assign_var("PATH", $url); $template->assign_var("ALIAS", $page->alias); $template->assign_var("LOCALALIAS", $page->getLocalAlias()); if (!isset($_POST['menu'])) { foreach (Role::getAllRoles() as $role) { $index = $template->add_loop_item("RIGHTS"); $template->assign_loop_var("RIGHTS", $index, "LABEL", "/"); $template->assign_loop_var("RIGHTS", $index, "VALUE", $role->ID); $template->assign_loop_var("RIGHTS", $index, "NAME", $role->name); if ($role->canAccess($page)) { $template->assign_loop_var("RIGHTS", $index, "SELECTED", "selected=\"1\" "); } else { $template->assign_loop_var("RIGHTS", $index, "SELECTED", ""); } } } else { foreach (Role::getAllRoles() as $role) { $index = $template->add_loop_item("RIGHTS"); $template->assign_loop_var("RIGHTS", $index, "LABEL", "/"); $template->assign_loop_var("RIGHTS", $index, "VALUE", $role->ID); $template->assign_loop_var("RIGHTS", $index, "NAME", $role->name); if (isset($_POST['rights']) && in_array($role->ID, $_POST['rights'])) { $template->assign_loop_var("RIGHTS", $index, "SELECTED", "selected=\"1\" "); } else { $template->assign_loop_var("RIGHTS", $index, "SELECTED", ""); } } } $index = $template->add_loop_item("MENU"); $template->assign_loop_var("MENU", $index, "VALUE", "0"); $template->assign_loop_var("MENU", $index, "NAME", "-- " . Language::DirectTranslate("NO_MENU") . " --"); $template->assign_loop_var("MENU", $index, "SELECTED", ""); foreach (sys::getMenues($_SESSION['dir']) as $menu) { $index = $template->add_loop_item("MENU"); $template->assign_loop_var("MENU", $index, "VALUE", $menu->id); $template->assign_loop_var("MENU", $index, "NAME", $menu->name); if (isset($_POST['menu']) && $_POST['menu'] == $menu->id) { $template->assign_loop_var("MENU", $index, "SELECTED", "selected=\"1\" "); } else { if (!isset($_POST['menu']) && $menu->id == $page->menu) { $template->assign_loop_var("MENU", $index, "SELECTED", "selected=\"1\" "); } else { $template->assign_loop_var("MENU", $index, "SELECTED", ""); } } } if (isset($_POST['menu'])) { $template->assign_var("MENUPREVIEW", Menu::getCode($_POST['menu'], "<ul>", "</ul>", "<li>", "</li>", "")); } else { if ($page->menu > 0) { $template->assign_var("MENUPREVIEW", Menu::getCode($page->menu, "<ul>", "</ul>", "<li>", "</li>", "")); } else { $template->assign_var("MENUPREVIEW", ""); } } $template->assign_var("METADESCRIPTION", htmlentities($page->getMeta()->description)); $template->assign_var("METAKEYWORDS", htmlentities($page->getMeta()->keywords)); $template->assign_var("METAROBOTS", htmlentities($page->getMeta()->robots)); $template->assign_var("CANONICAL", $page->canonical); $template->assign_var("ADVANCED_HTML_HEADER", htmlentities($page->advancedHtmlHeader)); $template->assign_var("TITLE", $page->title); $template->assign_var("EDITOR", $page->getEditor()->getEditableCode()); $template->assign_var("HOST", Settings::getRootInstance()->dir($page->alias . "§page")->get("host") . $page->getDir()); $template->assign_var("CHANGE_FREQUENCE", $page->GetChangeFrequence()); $template->assign_var("PRIORITY", $page->priority); if ($page->inSitemap) { $template->assign_var("IN_SITEMAP_CHECKED", " checked=\"checked\""); } else { $template->assign_var("IN_SITEMAP_CHECKED", ""); } $selector = new PageSelector(); $selector->name = 'owner'; $selector->value = $page->ownerid; $selector->noValueText = "-- " . Language::DirectTranslate("NOOWNER") . " --"; $template->assign_var("OWNERCONTROL", $selector->getCode()); $template->output(); } }