Example #1
0
 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;
     }
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 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();
     }
 }