function On_Compiler_BuiltTemplate($a_data)
 {
     // Get Template_Document from event data
     $doc = $a_data->doc;
     // Find body container
     $nodes = $doc->getElementsByTag('CMS_BODY');
     // There is only one body node (unless someone messed with templates) so get first element
     $node = $nodes[0];
     // Iterate over all locales
     $langs = '';
     foreach (Locales::$m_locales as $locale) {
         $langs .= '<a style="margin-left: 5px;" href="?locale=' . $locale . '"><img src="' . Locales::GetConstString('ICO', $locale) . '"/></a>';
     }
     // Add container div
     $langbar = '<div style="position: absolute; right: 0; top: 0; padding: 5px; z-index: 10000;">' . $langs . '</div>';
     // Replace
     $node->addChild(new Template_TextNode($langbar));
 }
 public static function GetPage($a_id)
 {
     $id = Database::Escape($a_id);
     $result = Database::Query("SELECT * FROM `" . DB_TBL_PAGES . "` WHERE `id` = '" . $id . "'");
     if (!$result->HasData()) {
         die('Unknown page id');
     }
     self::$m_pagename = unserialize($result->GetValue('name'));
     $doc = unserialize($result->GetValue('compiled'));
     if (!$doc) {
         $compiler = new Compiler();
         $doc = $compiler->CompilePage($id);
     }
     // Plugin Hook
     $data_object = new stdClass();
     $data_object->doc = $doc;
     ObjMgr::GetPluginMgr()->ExecuteHook("On_PrepareTemplate", $data_object);
     // Title
     Content::AddTitle($doc, Locales::GetConstString("PAGE_TITLE", NULL, self::$m_pagename[Locales::$m_locale]));
     return $doc->getHtml();
 }
 public function On_PrepareTemplate($a_data)
 {
     $doc = $a_data->doc;
     // Load all strings
     $strings = $doc->getElementsByTag('CMS_STRING');
     foreach ($strings as $string) {
         $html = "";
         switch ($string->getAttribute('type')) {
             case "const":
                 $html = Locales::GetConstString($string->getAttribute("name"));
                 break;
             default:
                 // Process data in plugin
                 $plugin = $this->m_pluginmgr->GetPlugin("input_" . $string->getAttribute('type'));
                 if (!$plugin) {
                     die('Plugin_cms_string::On_Editor_LoadedPageTemplate(): No valid generators found for string type "' . $string->getAttribute('type') . '".');
                 }
                 $html = $plugin->GetContent($string->attributes());
                 break;
         }
         $string->replaceWith(new Template_TextNode($html));
     }
 }
 public static function GetPage($a_id)
 {
     self::$m_pageid = $a_id;
     $result = Database::Query("SELECT * FROM `" . DB_TBL_PAGES . "` WHERE `id` = '" . Database::Escape($a_id) . "'");
     if (!$result->HasData()) {
         die("Page with id #" . $a_id . " not found!");
     }
     Content::$m_pagename = unserialize($result->GetValue('name'));
     $compiler = new Compiler();
     $doc = $compiler->CompilePage(self::$m_pageid, COMPILER_MODE_EDITOR);
     // Plugin Hook
     $data_object = new stdClass();
     $data_object->doc = $doc;
     ObjMgr::GetPluginMgr()->ExecuteHook("On_PrepareTemplate", $data_object);
     //Content::ProcessStrings($doc);
     // Add neccessary data
     $locale_list = array();
     foreach (Locales::$m_locales as $locale) {
         $loc_data = array();
         $loc_data['name'] = $locale;
         $loc_data['ico'] = Locales::GetConstString('ICO', $locale);
         $locale_list[] = $loc_data;
     }
     self::AddData(DATA_LOCALES, array('default' => Locales::$m_locale, 'list' => $locale_list));
     self::AddData(DATA_STRINGS, Locales::$m_const_strings[Locales::$m_locale]);
     self::GeneratePageData();
     self::GenerateModulesData();
     self::InsertHeadContent($doc);
     self::GenerateToolBar($doc);
     // Title
     Content::AddTitle($doc, Locales::GetConstString("PAGE_TITLE", NULL, Content::$m_pagename[Locales::$m_locale]));
     return $doc->getHtml();
 }