public function GetOutput() { $yams = YAMS::GetInstance(); $YEM = YamsErrorMgr::GetInstance(); $YLM = YamsLangMgr::GetInstance(); // Load the module template $tpl = new Templator(); $success = $tpl->LoadTemplateFromFile('yams/module/yams.module.tpl.html'); if (!$success) { return; } if (YamsUtils::IsHTTPS()) { $protocol = 'https://'; } else { $protocol = 'http://'; } $requestURL = YamsUtils::Escape($protocol . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']); // Define the placholders $tpl->RegisterPlaceholder('form_action', '[+request_url+]'); $tpl->RegisterPlaceholder('error_messages', $YEM->GetOutput()); $tpl->RegisterPlaceholder('lang_chooser', $YLM->GetOutput()); // Parse non-language placeholders $tpl->Parse(NULL, true); $tpl->ClearStoredPlaceholders(); // Register global placeholders... $tpl->RegisterPlaceholder('request_url', $requestURL); $tpl->RegisterPlaceholder('modx_manager_theme', $modx->config['manager_theme']); $tpl->RegisterPlaceholder('modx_site_url', $modx->config['site_url']); $tpl->RegisterPlaceholder('modx_charset', $modx->config['modx_charset']); $tpl->RegisterPlaceholder('yams_contact_en_url', 'http://nashi.podzone.org/en/contact.xhtml'); $tpl->RegisterPlaceholder('yams_contact_fr_url', 'http://nashi.podzone.org/fr/contact.xhtml'); $tpl->RegisterPlaceholder('yams_contact_ja_url', 'http://nashi.podzone.org/ja/contact.xhtml'); $tpl->RegisterPlaceholder('yams_donate_en_url', 'http://nashi.podzone.org/en/donate.xhtml'); $tpl->RegisterPlaceholder('yams_donate_fr_url', 'http://nashi.podzone.org/fr/donate.xhtml'); $tpl->RegisterPlaceholder('yams_donate_ja_url', 'http://nashi.podzone.org/ja/donate.xhtml'); $tpl->RegisterPlaceholder('yams_package_url', 'http://modxcms.com/extras/package/?package=543'); $tpl->RegisterPlaceholder('yams_forums_url', 'http://modxcms.com/forums/index.php/board,381.0.html'); $tpl->RegisterPlaceholder('yams_author_url', 'http://modxcms.com/forums/index.php?action=profile;u=12570'); $tpl->RegisterPlaceholder('yams_author', '<a href="[+yams_author_url+]" target="_blank">PMS</a>'); $tpl->RegisterPlaceholder('yams_copyright', '<a href="http://nashi.podzone.org/" target="_blank">Nashi Power</a> 2009'); $tpl->RegisterPlaceholder('yams_licence', 'GPL v3'); $tpl->RegisterPlaceholder('yams_version', YamsUtils::Escape($yams->GetVersion())); // Parse language text... $YLM->ParseLanguageText($tpl); // Temporarily comment out this line so it's easy to find missing placeholders... // $tpl->RemovePlaceholdersFromTpl( NULL, true ); return $tpl->GetTpl(); }
public function GetOutput() { $yams = YAMS::GetInstance(); $errorList = ''; if (count($this->itsErrorMessages) > 0) { $errorList .= '<ul>'; foreach ($this->itsErrorMessages as $msg) { $errorList .= '<li>' . YamsUtils::Escape($msg) . '</li>'; } $errorList .= '</ul>'; } $tpl = new Templator(); $tpl->LoadTemplateFromFile('yams/module/yams.error.tpl.html'); $tpl->RegisterPlaceholder('error_list', $errorList); return $tpl->Parse(); }
public function ParseLanguageText(Templator &$tpl) { // Parses a template, resolving all language specific placeholders // Parses in the current language first, then the default language after if (!$tpl->IsTemplateLoaded()) { throw new Exception('YamsLangMgr: A template must be loaded in before parsing the language text'); } $parseCurrent = true; if ($this->itsDefaultLang == $this->itsCurrentLang) { $parseCurrent = false; } else { $currentLangFile = $this->itsCurrentLang . '.inc.php'; $currentLangPath = $this->itsLangDir . $currentLangFile; if (!is_file($currentLangPath)) { if (!is_file($currentLangPath)) { throw new Exception('YamsLangMgr: Could not load current language file: ' . $currentLangPath); } } } $defaultLangFile = $this->itsDefaultLang . '.inc.php'; $defaultLangPath = $this->itsLangDir . $defaultLangFile; if (!is_file($defaultLangPath)) { throw new Exception('YamsLangMgr: Could not load default language file: ' . $defaultLangPath); } $removeUnrecognisedPlaceholders = $tpl->IsRemoveUnrecognisedPlaceHolders(); $tpl->SetRemoveUnrecognisedPlaceHolders(false); // Register the placeholders if ($parseCurrent) { require $currentLangPath; $tpl->Parse(NULL, true); } require $defaultLangPath; $tpl->Parse(NULL, true); // restore the placeholder removal mode $tpl->SetRemoveUnrecognisedPlaceHolders($removeUnrecognisedPlaceholders); }