/** * Builds the upgader page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Introduction/templates'); $tpl->SetBlock('Introduction'); $tpl->SetVariable('welcome', _t('UPGRADE_INTRO_WELCOME')); $tpl->SetVariable('title_info', _t('UPGRADE_INTRO_UPGRADER')); $tpl->SetVariable('db_info', _t('UPGRADE_INTRO_DATABASE')); $tpl->SetVariable('ftp_info', _t('UPGRADE_INTRO_FTP')); $tpl->SetVariable('language', _t('GLOBAL_LANGUAGE')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); if (is_writable(JAWS_PATH . 'data/logs') && is_dir(JAWS_PATH . 'data/logs')) { $tpl->SetVariable('log_use', _t('UPGRADE_INTRO_LOG', 'data/logs/upgrade.txt')); $tpl->SetBlock('Introduction/logcheckbox'); $tpl->ParseBlock('Introduction/logcheckbox'); } else { $tpl->SetVariable('log_use', _t('UPGRADE_INTRO_LOG_ERROR', 'data/logs')); } $langs = Jaws_Utils::GetLanguagesList(); $selected_lang = isset($_SESSION['upgrade']['language']) ? $_SESSION['upgrade']['language'] : 'en'; foreach ($langs as $code => $fullname) { $tpl->SetBlock('Introduction/lang'); $tpl->SetVariable('selected', $code == $selected_lang ? 'selected="selected"' : ''); $tpl->SetVariable('code', $code); $tpl->SetVariable('fullname', $fullname); $tpl->ParseBlock('Introduction/lang'); } $tpl->ParseBlock('Introduction'); return $tpl->Get(); }
/** * Sends notify to user * * @access public * @param array $users Users properties associated array * @param string $title Notification title * @param string $summary Notification summary * @param string $content Notification content * @return mixed Jaws_Error on failure */ function notify($users, $title, $summary, $content) { $this->object->reset(); $this->object->SetFrom(); foreach ($users as $user) { $this->object->AddRecipient($user['email']); } $this->object->SetSubject($title); $tpl = new Jaws_Template(true); $tpl->loadRTLDirection = $this->attributes['site_direction'] == 'rtl'; $tpl->Load('Notification.html', 'include/Jaws/Resources'); $tpl->SetBlock('notification'); $tpl->SetVariable('site-url', $this->attributes['site_url']); $tpl->SetVariable('site-direction', $this->attributes['site_direction']); $tpl->SetVariable('site-name', $this->attributes['site_name']); $tpl->SetVariable('site-slogan', $this->attributes['site_slogan']); $tpl->SetVariable('site-comment', $this->attributes['site_comment']); $tpl->SetVariable('site-author', $this->attributes['site_author']); $tpl->SetVariable('site-license', $this->attributes['site_license']); $tpl->SetVariable('site-copyright', $this->attributes['site_copyright']); $tpl->SetVariable('content', $content); $tpl->ParseBlock('notification'); $this->object->SetBody($tpl->Get()); unset($tpl); return $this->object->send(); }
/** * Builds the installer page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { _log(JAWS_LOG_DEBUG, "Preparing configuration file"); $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/WriteConfig/templates'); $tpl->SetBlock('WriteConfig'); $config_path = JAWS_PATH . 'config' . DIRECTORY_SEPARATOR; $tpl->setVariable('lbl_info', _t('INSTALL_CONFIG_INFO')); $tpl->setVariable('lbl_solution', _t('INSTALL_CONFIG_SOLUTION')); $tpl->setVariable('lbl_solution_permission', _t('INSTALL_CONFIG_SOLUTION_PERMISSION', $config_path)); $tpl->setVariable('lbl_solution_upload', _t('INSTALL_CONFIG_SOLUTION_UPLOAD', $config_path . 'JawsConfig.php')); $tpl->SetVariable('lbl_loglevel', _t('INSTALL_CONFIG_LOGLEVEL')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $request = Jaws_Request::getInstance(); $loglevel = $request->fetch('loglevel', 'post'); $loglevel = is_null($loglevel) ? JAWS_LOG_ERROR : (int) $loglevel; $_SESSION['install']['LogLevel'] = $loglevel; $tpl->SetVariable('config', $this->BuildConfig()); $log_levels_messages = $GLOBALS['log']->_Log_Priority_Str; array_unshift($log_levels_messages, 'LOG_DISABLED'); foreach ($log_levels_messages as $level => $title) { $tpl->SetBlock('WriteConfig/loglevel'); $tpl->setVariable('level', $level); $tpl->setVariable('title', $title); $tpl->SetVariable('selected', $level == $loglevel ? 'selected="selected"' : ''); $tpl->ParseBlock('WriteConfig/loglevel'); } $tpl->ParseBlock('WriteConfig'); return $tpl->Get(); }
/** * Builds the upgader page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/100To110/templates'); $tpl->SetBlock('100To110'); $tpl->setVariable('lbl_info', _t('UPGRADE_VER_INFO', '1.0.0', '1.1.0')); $tpl->setVariable('lbl_notes', _t('UPGRADE_VER_NOTES')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $tpl->ParseBlock('100To110'); return $tpl->Get(); }
/** * Builds the upgrader page. * * @access public * @return string A block of valid XHTML to display the status of old/current jaws versions */ function Display() { include_once JAWS_PATH . 'include/Jaws/DB.php'; $objDatabase = Jaws_DB::getInstance('default', $_SESSION['upgrade']['Database']); require_once JAWS_PATH . 'include/Jaws.php'; $GLOBALS['app'] = jaws(); if (!isset($_SESSION['upgrade']['InstalledVersion'])) { $_SESSION['upgrade']['InstalledVersion'] = $GLOBALS['app']->Registry->Init(); } $GLOBALS['app']->loadPreferences(array('language' => $_SESSION['upgrade']['language']), false); $supportedversions = array(array('version' => '1.2.0', 'stage' => '9'), array('version' => '1.1.1', 'stage' => '8'), array('version' => '1.1.0', 'stage' => '7'), array('version' => '1.0.0', 'stage' => '6'), array('version' => '0.9.3', 'stage' => null), array('version' => '0.9.2', 'stage' => null), array('version' => '0.9.1', 'stage' => null), array('version' => '0.9.0', 'stage' => null)); _log(JAWS_LOG_DEBUG, "Checking/Reporting previous missed installations"); $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Report/templates'); $tpl->SetBlock('Report'); $tpl->setVariable('lbl_info', _t('UPGRADE_REPORT_INFO', JAWS_VERSION)); $tpl->setVariable('lbl_message', _t('UPGRADE_REPORT_MESSAGE')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $versions_to_upgrade = 0; $_SESSION['upgrade']['stagedVersions'] = array(); foreach ($supportedversions as $supported) { $tpl->SetBlock('Report/versions'); $tpl->SetBlock('Report/versions/version'); $tpl->SetVariable('description', $supported['version']); $_SESSION['upgrade']['versions'][$supported['version']] = array('version' => $supported['version'], 'stage' => $supported['stage'], 'file' => isset($supported['file']) ? $supported['file'] : '', 'script' => isset($supported['script']) ? $supported['script'] : ''); if (version_compare($supported['version'], $_SESSION['upgrade']['InstalledVersion'], '<=')) { if ($supported['version'] == JAWS_VERSION) { $tpl->SetVariable('status', _t('UPGRADE_REPORT_NO_NEED_CURRENT')); _log(JAWS_LOG_DEBUG, $supported['version'] . " does not requires upgrade(is current)"); } else { $tpl->SetVariable('status', _t('UPGRADE_REPORT_NO_NEED')); _log(JAWS_LOG_DEBUG, $supported['version'] . " does not requires upgrade"); } $_SESSION['upgrade']['versions'][$supported['version']]['status'] = true; } else { $tpl->SetVariable('status', _t('UPGRADE_REPORT_NEED')); $_SESSION['upgrade']['versions'][$supported['version']]['status'] = false; $versions_to_upgrade++; _log(JAWS_LOG_DEBUG, $supported['version'] . " requires upgrade"); $_SESSION['upgrade']['versions'][$supported['version']]['status'] = false; } if (!is_null($supported['stage'])) { $_SESSION['upgrade']['stagedVersions'][] = $supported['version']; } $tpl->ParseBlock('Report/versions/version'); $tpl->ParseBlock('Report/versions'); } $_SESSION['upgrade']['versions_to_upgrade'] = $versions_to_upgrade; arsort($_SESSION['upgrade']['versions']); krsort($_SESSION['upgrade']['stagedVersions']); $tpl->ParseBlock('Report'); return $tpl->Get(); }
/** * Builds the installer page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Finished/templates'); $tpl->SetBlock('Finished'); $base_url = Jaws_Utils::getBaseURL('', true); $tpl->setVariable('lbl_info', _t('INSTALL_FINISH_INFO')); $tpl->setVariable('lbl_choices', _t('INSTALL_FINISH_CHOICES', "{$base_url}/", "{$base_url}/admin.php")); $tpl->setVariable('lbl_thanks', _t('INSTALL_FINISH_THANKS')); $tpl->SetVariable('move_log', _t('INSTALL_FINISH_MOVE_LOG')); $tpl->ParseBlock('Finished'); // Kill the session session_destroy(); return $tpl->Get(); }
/** * Builds the upgrader page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { require_once JAWS_PATH . 'include/Jaws.php'; $GLOBALS['app'] = jaws(); $GLOBALS['app']->loadPreferences(array('language' => $_SESSION['upgrade']['language']), false); $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Finished/templates'); $tpl->SetBlock('Finished'); $base_url = $GLOBALS['app']->getSiteURL(); $tpl->setVariable('lbl_info', _t('UPGRADE_FINISH_INFO')); $tpl->setVariable('lbl_choices', _t('UPGRADE_FINISH_CHOICES', "{$base_url}/", "{$base_url}/admin.php")); $tpl->setVariable('lbl_thanks', _t('UPGRADE_FINISH_THANKS')); $tpl->SetVariable('move_log', _t('UPGRADE_FINISH_MOVE_LOG')); $tpl->ParseBlock('Finished'); return $tpl->Get(); }
/** * Builds the installer page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $values = $this->_Fields; $keys = array_keys($values); $request = Jaws_Request::getInstance(); $post = $request->fetch($keys, 'post'); foreach ($this->_Fields as $key => $value) { if ($post[$key] !== null) { $values[$key] = $post[$key]; } } $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/CreateUser/templates'); $tpl->SetBlock('CreateUser'); $tpl->setVariable('lbl_info', _t('INSTALL_USER_INFO')); $tpl->setVariable('lbl_notice', _t('INSTALL_USER_NOTICE')); $tpl->setVariable('lbl_user', _t('INSTALL_USER_USER')); $tpl->setVariable('user_info', _t('INSTALL_USER_USER_INFO')); $tpl->setVariable('lbl_pass', _t('INSTALL_USER_PASS')); $tpl->setVariable('lbl_repeat', _t('INSTALL_USER_REPEAT')); $tpl->setVariable('repeat_info', _t('INSTALL_USER_REPEAT_INFO')); $tpl->setVariable('lbl_nickname', _t('INSTALL_USER_NAME')); $tpl->setVariable('name_info', _t('INSTALL_USER_NAME_INFO')); $tpl->setVariable('lbl_email', _t('INSTALL_USER_EMAIL')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); if ($_SESSION['secure']) { $JCrypt = Jaws_Crypt::getInstance(array('pvt_key' => $_SESSION['pvt_key'], 'pub_key' => $_SESSION['pub_key'])); if (!Jaws_Error::IsError($JCrypt)) { $tpl->SetVariable('length', $JCrypt->length()); $tpl->SetVariable('modulus', $JCrypt->modulus()); $tpl->SetVariable('exponent', $JCrypt->exponent()); $tpl->SetVariable('func_onsubmit', 'EncryptPassword(this)'); } else { $_SESSION['secure'] = false; $tpl->SetVariable('func_onsubmit', 'true'); } } else { $tpl->SetVariable('func_onsubmit', 'true'); } $tpl->SetVariable('username', $values['username']); $tpl->SetVariable('password', ''); $tpl->SetVariable('repeat', ''); $tpl->SetVariable('nickname', $values['nickname']); $tpl->SetVariable('email', $values['email']); $tpl->ParseBlock('CreateUser'); return $tpl->Get(); }
/** * Builds the installer page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Authentication/templates'); $tpl->SetBlock('Authentication'); $tpl->SetVariable('key_path_info', _t('INSTALL_AUTH_PATH_INFO', 'key.txt', INSTALL_PATH)); $tpl->SetVariable('rsa_security', _t('INSTALL_AUTH_ENABLE_SECURITY')); $tpl->SetVariable('auth_upload', _t('INSTALL_AUTH_UPLOAD')); $tpl->SetVariable('key_file_info', _t('INSTALL_AUTH_KEY_INFO')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $tpl->SetVariable('key', $_SESSION['install']['Authentication']['key']); $tpl->SetVariable('checked_secure', $_SESSION['secure'] ? 'checked="checked"' : ''); $tpl->SetVariable('checked_customize', $_SESSION['customize'] ? 'checked="checked"' : ''); $tpl->SetVariable('custom_installation', _t('INSTALL_AUTH_CUSTOM_INSTALL')); $tpl->ParseBlock('Authentication'); return $tpl->Get(); }
/** * Builds the upgrader page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { // Create application include_once JAWS_PATH . 'include/Jaws.php'; $GLOBALS['app'] = jaws(); $GLOBALS['app']->loadPreferences(array('language' => $_SESSION['upgrade']['language']), false); $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Cleanup/templates'); _log(JAWS_LOG_DEBUG, "Preparing cleanup stage"); $tpl->SetBlock('cleanup'); $tpl->setVariable('lbl_info', _t('UPGRADE_CLEANUP_INFO')); $cleanup_required = false; $cleanup_items = @file_get_contents(JAWS_PATH . 'upgrade/stages/Cleanup/folders.txt'); $cleanup_items = array_filter(explode("\n", $cleanup_items)); foreach ($cleanup_items as $item) { if (file_exists(JAWS_PATH . $item)) { $cleanup_required = true; $tpl->SetBlock('cleanup/item'); $tpl->setVariable('type', '1'); $tpl->setVariable('item_path', $item); $tpl->ParseBlock('cleanup/item'); } } $cleanup_items = @file_get_contents(JAWS_PATH . 'upgrade/stages/Cleanup/files.txt'); $cleanup_items = array_filter(explode("\n", $cleanup_items)); foreach ($cleanup_items as $item) { if (file_exists(JAWS_PATH . $item)) { $cleanup_required = true; $tpl->SetBlock('cleanup/item'); $tpl->setVariable('type', '0'); $tpl->setVariable('item_path', $item); $tpl->ParseBlock('cleanup/item'); } } if (!$cleanup_required) { $tpl->SetBlock('cleanup/not_required'); $tpl->setVariable('message', _t('UPGRADE_CLEANUP_NOT_REQUIRED')); $tpl->ParseBlock('cleanup/not_required'); } $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $tpl->ParseBlock('cleanup'); return $tpl->Get(); }
/** * Builds the upgrader page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { // Create application include_once JAWS_PATH . 'include/Jaws.php'; $GLOBALS['app'] = jaws(); $GLOBALS['app']->loadPreferences(array('language' => $_SESSION['upgrade']['language']), false); $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/WriteConfig/templates'); _log(JAWS_LOG_DEBUG, "Preparing configuaration file"); $tpl->SetBlock('WriteConfig'); $config_path = JAWS_PATH . 'config' . DIRECTORY_SEPARATOR; $tpl->setVariable('lbl_info', _t('UPGRADE_CONFIG_INFO')); $tpl->setVariable('lbl_solution', _t('UPGRADE_CONFIG_SOLUTION')); $tpl->setVariable('lbl_solution_permission', _t('UPGRADE_CONFIG_SOLUTION_PERMISSION', $config_path)); $tpl->setVariable('lbl_solution_upload', _t('UPGRADE_CONFIG_SOLUTION_UPLOAD', $config_path . 'JawsConfig.php')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $tpl->SetVariable('config', $this->BuildConfig()); $tpl->ParseBlock('WriteConfig'); return $tpl->Get(); }
/** * Builds the upgrader page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $request = Jaws_Request::getInstance(); $use_log = $request->fetch('use_log', 'post'); //Set main session-log vars if (isset($use_log)) { $_SESSION['use_log'] = $use_log === 'yes' ? JAWS_LOG_DEBUG : false; } _log(JAWS_LOG_DEBUG, "Generating new installation key"); $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Authentication/templates'); $tpl->SetBlock('Authentication'); $tpl->SetVariable('key_path_info', _t('UPGRADE_AUTH_PATH_INFO', 'key.txt', UPGRADE_PATH)); $tpl->SetVariable('rsa_security', _t('UPGRADE_AUTH_ENABLE_SECURITY')); $tpl->SetVariable('auth_upload', _t('UPGRADE_AUTH_UPLOAD')); $tpl->SetVariable('key_file_info', _t('UPGRADE_AUTH_KEY_INFO')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $tpl->SetVariable('key', $_SESSION['upgrade']['Authentication']['key']); $tpl->SetVariable('checked', $_SESSION['secure'] ? 'checked="checked"' : ''); $tpl->ParseBlock('Authentication'); return $tpl->Get(); }
/** * Shows the HTML of the Layout. * * @access public */ function Get($raw_content = false) { // Set Headers header('Content-Type: text/html; charset=utf-8'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); $this->AddHeadMeta('generator', 'Jaws Project (http://jaws-project.com)'); $use_rewrite = $GLOBALS['app']->Registry->fetch('map_use_rewrite', 'UrlMapper') == 'true'; $use_rewrite = $use_rewrite && JAWS_SCRIPT == 'index'; $this->AddHeadMeta('application-name', ($use_rewrite ? '' : BASE_SCRIPT) . ':' . $GLOBALS['app']->mainGadget . ':' . $GLOBALS['app']->mainAction); $headContent = $this->GetHeaderContent($this->_HeadLink, $this->_ScriptLink, $this->_HeadMeta, $this->_HeadOther); if (!empty($headContent)) { $this->_Template->SetBlock('layout/head'); $this->_Template->SetVariable('ELEMENT', $headContent); $this->_Template->ParseBlock('layout/head'); } if (JAWS_SCRIPT == 'index') { $this->PutTitle(); $this->PutDescription(); $this->PutMetaKeywords(); $this->PutMetaLanguages(); } // parse template an show the HTML $this->_Template->ParseBlock('layout'); if ($raw_content) { return $this->_Template->Get(); } else { $content = $this->_Template->Get(); if ($GLOBALS['app']->GZipEnabled()) { if (false == strpos($GLOBALS['app']->GetBrowserEncoding(), 'x-gzip')) { jaws()->request->update('restype', 'gzip'); } else { jaws()->request->update('restype', 'x-gzip'); } } return $content; } }
/** * The preg_replace call back function * * @access private * @param string $data Matched strings from preg_replace_callback * @return string Gadget's action output or access message */ function Prepare($data) { $users = $data[2]; $groups = $data[4]; $content =& $data[5]; if ($GLOBALS['app']->Session->Logged()) { if (!$GLOBALS['app']->Session->IsSuperAdmin()) { $users = empty($users) ? array() : array_map('trim', explode(',', $users)); $groups = empty($groups) ? array() : array_map('trim', explode(',', $groups)); static $user_groups; $user = $GLOBALS['app']->Session->GetAttribute('username'); if (!isset($user_groups)) { $user_groups = $GLOBALS['app']->Session->GetAttribute('groups'); $user_groups = array_values($user_groups); } if (!empty($users) || !empty($groups)) { if ((empty($users) || !in_array($user, $users)) && (empty($groups) || !count(array_intersect($groups, $user_groups)))) { $tpl = new Jaws_Template(); $tpl->Load('AccessLimiter.html', 'plugins/AccessLimiter/Templates/'); $tpl->SetBlock('AccessLimiter'); $tpl->SetVariable('message', _t('GLOBAL_ERROR_ACCESS_DENIED')); $tpl->ParseBlock('AccessLimiter'); return $tpl->Get(); } } } return $content; } $tpl = new Jaws_Template(); $tpl->Load('AccessLimiter.html', 'plugins/AccessLimiter/Templates/'); $tpl->SetBlock('AccessLimiter'); $login_url = $GLOBALS['app']->Map->GetURLFor('Users', 'LoginBox'); $register_url = $GLOBALS['app']->Map->GetURLFor('Users', 'Registration'); $tpl->SetVariable('message', _t('GLOBAL_ERROR_ACCESS_RESTRICTED', $login_url, $register_url)); $tpl->ParseBlock('AccessLimiter'); return $tpl->Get(); }
/** * Builds the installer page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Introduction/templates'); $tpl->SetBlock('Introduction'); $tpl->SetVariable('welcome', _t('INSTALL_INTRO_WELCOME')); $tpl->SetVariable('title_info', _t('INSTALL_INTRO_INSTALLER')); $tpl->SetVariable('db_info', _t('INSTALL_INTRO_DATABASE')); $tpl->SetVariable('ftp_info', _t('INSTALL_INTRO_FTP')); $tpl->SetVariable('mail_info', _t('INSTALL_INTRO_MAIL')); $tpl->SetVariable('language', _t('GLOBAL_LANGUAGE')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $langs = Jaws_Utils::GetLanguagesList(); $selected_lang = isset($_SESSION['install']['language']) ? $_SESSION['install']['language'] : 'en'; foreach ($langs as $code => $fullname) { $tpl->SetBlock('Introduction/lang'); $tpl->SetVariable('selected', $code == $selected_lang ? 'selected="selected"' : ''); $tpl->SetVariable('code', $code); $tpl->SetVariable('fullname', $fullname); $tpl->ParseBlock('Introduction/lang'); } $tpl->ParseBlock('Introduction'); return $tpl->Get(); }
/** * Builds the installer page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $request = Jaws_Request::getInstance(); $use_log = $request->fetch('use_log', 'post'); //Set main session-log vars if (isset($use_log)) { $_SESSION['use_log'] = $use_log === 'yes' ? JAWS_LOG_DEBUG : false; } _log(JAWS_LOG_DEBUG, "Generating new installation key"); $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Customize/templates'); $tpl->SetBlock('Customize'); $tpl->SetVariable('customize_info', _t('INSTALL_CUSTOMIZE_INFO')); $paths = array('jaws_data', 'jaws_base_data', 'jaws_themes', 'jaws_base_themes', 'jaws_cache'); foreach ($paths as $path) { $upper_path = strtoupper($path); $tpl->SetVariable($path, constant($upper_path)); $tpl->SetVariable("checked_{$path}", isset($_SESSION[$upper_path]) ? 'checked="checked"' : ''); $tpl->SetVariable("disabled_{$path}", isset($_SESSION[$upper_path]) ? '' : 'disabled="disabled"'); } $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $tpl->ParseBlock('Customize'); return $tpl->Get(); }
/** * Get HTTP status reponse * * @access public * @param int $code Status code * @param string $title Reponse page title * @param string $message Response message * @return string HTML template content */ static function Get($code, $title = null, $message = null) { header('Content-Type: text/html; charset=utf-8'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); // Let everyone know a HTTP error has been happened $result = $GLOBALS['app']->Listener->Shout('HTTPError', 'HTTPError', $code, 'UrlMapper'); if (!Jaws_Error::IsError($result) && !empty($result)) { $code = empty($result['code']) ? $code : $result['code']; } switch ($code) { case 401: $realm = $GLOBALS['app']->Registry->fetch('realm', 'Settings'); jaws()->http_response_code(401); // using invalid authentication type for avoid popup login box header('WWW-Authenticate: LoginBox realm="' . $realm . '"'); $urlLogin = $GLOBALS['app']->Map->GetURLFor('Users', 'LoginBox', array('referrer' => bin2hex(Jaws_Utils::getRequestURL(true)))); $title = empty($title) ? _t('GLOBAL_HTTP_ERROR_TITLE_401') : $title; $message = empty($message) ? _t('GLOBAL_HTTP_ERROR_CONTENT_401', $urlLogin) : $message; break; case 403: jaws()->http_response_code(403); $title = empty($title) ? _t('GLOBAL_HTTP_ERROR_TITLE_403') : $title; $message = empty($message) ? _t('GLOBAL_HTTP_ERROR_CONTENT_403') : $message; break; case 404: $uri = Jaws_XSS::filter(Jaws_Utils::getRequestURL(false)); if (empty($message)) { $message = _t('GLOBAL_HTTP_ERROR_CONTENT_404', $uri); } jaws()->http_response_code(404); $title = empty($title) ? _t('GLOBAL_HTTP_ERROR_TITLE_404') : $title; break; case 410: jaws()->http_response_code(410); $title = empty($title) ? _t('GLOBAL_HTTP_ERROR_TITLE_410') : $title; $message = empty($message) ? _t('GLOBAL_HTTP_ERROR_CONTENT_410') : $message; break; case 500: jaws()->http_response_code(500); $title = empty($title) ? _t('GLOBAL_HTTP_ERROR_TITLE_500') : $title; $message = empty($message) ? _t('GLOBAL_HTTP_ERROR_CONTENT_500') : $message; break; case 503: jaws()->http_response_code(503); $title = empty($title) ? _t('GLOBAL_HTTP_ERROR_TITLE_503') : $title; $message = empty($message) ? _t('GLOBAL_HTTP_ERROR_CONTENT_503') : $message; break; default: $title = empty($title) ? _t("GLOBAL_HTTP_ERROR_TITLE_{$code}") : $title; $message = empty($message) ? _t("GLOBAL_HTTP_ERROR_CONTENT_{$code}") : $message; } // if current theme has a error code html file, return it, if not return the messages. $theme = $GLOBALS['app']->GetTheme(); $site_name = $GLOBALS['app']->Registry->fetch('site_name', 'Settings'); if (file_exists($theme['path'] . "{$code}.html")) { $tpl = new Jaws_Template(); $tpl->Load("{$code}.html", $theme['path']); $tpl->SetBlock($code); //set global site config $direction = _t('GLOBAL_LANG_DIRECTION'); $dir = $direction == 'rtl' ? '.' . $direction : ''; $brow = $GLOBALS['app']->GetBrowserFlag(); $brow = empty($brow) ? '' : '.' . $brow; $tpl->SetVariable('.dir', $dir); $tpl->SetVariable('.browser', $brow); $tpl->SetVariable('site-name', $site_name); $tpl->SetVariable('site-title', $site_name); $tpl->SetVariable('site-slogan', $GLOBALS['app']->Registry->fetch('site_slogan', 'Settings')); $tpl->SetVariable('site-author', $GLOBALS['app']->Registry->fetch('site_author', 'Settings')); $tpl->SetVariable('site-copyright', $GLOBALS['app']->Registry->fetch('copyright', 'Settings')); $tpl->SetVariable('site-description', $GLOBALS['app']->Registry->fetch('site_description', 'Settings')); $tpl->SetVariable('title', $title); $tpl->SetVariable('content', $message); $tpl->ParseBlock($code); return $tpl->Get(); } return "<div class=\"gadget_header\"><div class=\"gadget_title\"><h3>{$title}</h3></div></div>" . "<div class=\"gadget_container\"><div class=\"content\">{$message}</div></div>"; }
/** * Builds the visits report * * @access public * @param array $visit_counters Types of reports * @return string XHTML content */ function GetVisitorsFormat($visit_counters) { $tpl = $this->gadget->template->load('VisitCounter.html'); $tpl->SetBlock("VisiCounter"); $tpl->SetVariable('title', _t('VISITCOUNTER_VISITORS')); $model = $this->gadget->model->load('Visitors'); $viewMode = strtolower($this->gadget->registry->fetch('mode')); $theme = $GLOBALS['app']->GetTheme(); if (is_dir($theme['path'] . 'VisitCounter/Resources/images/')) { $counter_image = $theme['url'] . 'VisitCounter/Resources/images/'; } else { $counter_image = $GLOBALS['app']->getSiteURL('/gadgets/VisitCounter/Resources/images/', true); } $online_count = $model->GetOnlineVisitors(); $today_count = $model->GetTodayVisitors(); $yesterday_count = $model->GetYesterdayVisitors(); $total_count = $model->GetTotalVisitors(); $date = Jaws_Date::getInstance(); $startdate = $date->Format($model->GetStartDate()); if (in_array('online', $visit_counters)) { $tpl->SetBlock("VisiCounter/classic"); $tpl->SetVariable('label', _t('VISITCOUNTER_ONLINE_VISITORS')); $tpl->SetVariable('value', $viewMode == 'text' ? $this->gadget->ParseText($online_count) : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $online_count)); $tpl->ParseBlock("VisiCounter/classic"); } if (in_array('today', $visit_counters)) { $tpl->SetBlock("VisiCounter/classic"); $tpl->SetVariable('label', _t('VISITCOUNTER_TODAY_VISITORS')); $tpl->SetVariable('value', $viewMode == 'text' ? $this->gadget->ParseText($today_count) : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $today_count)); $tpl->ParseBlock("VisiCounter/classic"); } if (in_array('yesterday', $visit_counters)) { $tpl->SetBlock("VisiCounter/classic"); $tpl->SetVariable('label', _t('VISITCOUNTER_YESTERDAY_VISITORS')); $tpl->SetVariable('value', $viewMode == 'text' ? $this->gadget->ParseText($yesterday_count, 'VisitCounter') : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $yesterday_count)); $tpl->ParseBlock("VisiCounter/classic"); } if (in_array('total', $visit_counters)) { $tpl->SetBlock("VisiCounter/classic"); $tpl->SetVariable('label', _t('VISITCOUNTER_TOTAL_VISITORS')); $tpl->SetVariable('value', $viewMode == 'text' ? $this->gadget->ParseText($total_count, 'VisitCounter') : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $total_count)); $tpl->ParseBlock("VisiCounter/classic"); } if (in_array('custom', $visit_counters)) { $custom = stripslashes($this->gadget->registry->fetch('custom_text')); if (trim($custom) == '') { $res = "{$total_count} - {$startdate}"; } else { $tp = new Jaws_Template(); $tp->LoadFromString("<!-- BEGIN x -->{$custom}<!-- END x -->"); $tp->SetBlock('x'); $tp->SetVariable('online', $viewMode == 'text' ? $this->gadget->ParseText($online_count) : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $online_count)); $tp->SetVariable('today', $viewMode == 'text' ? $this->gadget->ParseText($today_count) : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $today_count)); $tp->SetVariable('yesterday', $viewMode == 'text' ? $this->gadget->ParseText($yesterday_count) : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $yesterday_count)); $tp->SetVariable('total', $viewMode == 'text' ? $this->gadget->ParseText($total_count) : preg_replace('/([0-9])/', '<img src="' . $counter_image . '$1.png" alt="$1" />', $total_count)); $tp->SetVariable('date', $this->gadget->ParseText($startdate)); $tp->ParseBlock('x'); $res = $tp->Get(); $tp = null; } $tpl->SetBlock('VisiCounter/custom'); $tpl->SetVariable('custom_text', $res); $tpl->ParseBlock('VisiCounter/custom'); } $tpl->ParseBlock("VisiCounter"); return $tpl->Get(); }
/** * Builds the installer page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { $values = $this->_Fields; $keys = array_keys($values); $request = Jaws_Request::getInstance(); $post = $request->fetch($keys, 'post'); foreach ($this->_Fields as $key => $value) { if ($post[$key] !== null) { $values[$key] = $post[$key]; } } $data = array(); if (isset($_SESSION['install']['data']['Settings'])) { $data = $_SESSION['install']['data']['Settings']; } $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Settings/templates'); $tpl->SetBlock('Settings'); $tpl->setVariable('lbl_info', _t('INSTALL_SETTINGS_INFO')); $tpl->setVariable('lbl_site_name', _t('INSTALL_SETTINGS_SITE_NAME')); $tpl->setVariable('site_name_info', _t('INSTALL_SETTINGS_SITE_NAME_INFO')); $tpl->setVariable('lbl_site_slogan', _t('INSTALL_SETTINGS_SLOGAN')); $tpl->setVariable('site_slogan_info', _t('INSTALL_SETTINGS_SLOGAN_INFO')); $tpl->setVariable('lbl_site_language', _t('INSTALL_SETTINGS_SITE_LANGUAGE')); $tpl->setVariable('site_language_info', _t('INSTALL_SETTINGS_SITE_LANGUAGE_INFO')); $tpl->setVariable('lbl_site_sample', _t('INSTALL_SETTINGS_SITE_SAMPLE')); $tpl->setVariable('site_sample_info', _t('INSTALL_SETTINGS_SITE_SAMPLE_INFO')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); $tpl->SetVariable('site_name', $values['site_name']); $tpl->SetVariable('site_slogan', $values['site_slogan']); // fill languages combo box $languages = Jaws_Utils::GetLanguagesList(); foreach ($languages as $k => $v) { $tpl->SetBlock('Settings/lang'); $tpl->setVariable('code', $k); $tpl->setVariable('title', $v); if ($values['site_language'] == $k) { $tpl->setVariable('selected', 'selected="selected"'); } else { $tpl->setVariable('selected', ''); } $tpl->ParseBlock('Settings/lang'); } $tpl->ParseBlock('Settings'); return $tpl->Get(); }
} $tpl->setBlock('page/message'); $tpl->setVariable('text', $GLOBALS['message']->getMessage()); $tpl->setVariable('type', $type); $tpl->parseBlock('page/message'); } $tpl->ParseBlock('page'); // Defines where the layout template should be loaded from. $direction = _t('GLOBAL_LANG_DIRECTION'); $dir = $direction == 'rtl' ? '.' . $direction : ''; // Display the layout $layout = new Jaws_Template(false, false); $layout->Load('layout.html', 'templates'); $layout->SetBlock('layout'); // Basic setup $layout->SetVariable('BASE_URL', Jaws_Utils::getBaseURL('/install/')); $layout->SetVariable('.dir', $dir); $layout->SetVariable('site-title', 'Jaws ' . JAWS_VERSION); $layout->SetVariable('site-name', 'Jaws ' . JAWS_VERSION); $layout->SetVariable('site-slogan', JAWS_VERSION_CODENAME); // Load js files $layout->SetBlock('layout/head'); $layout->SetVariable('ELEMENT', '<script type="text/javascript" src="../libraries/js/rsa.lib.js"></script>'); $layout->ParseBlock('layout/head'); // Display the stage $layout->SetBlock('layout/main'); $layout->SetVariable('ELEMENT', $tpl->Get()); $layout->ParseBlock('layout/main'); $layout->ParseBlock('layout'); echo $layout->Get(); exit;
/** * Displays the next level of parent menu * * @access public * @param object $model Jaws_Model reference * @param string $tpl_str XHTML template content passed by reference * @param int $gid Group ID * @param int $pid * @return string XHTML template content with sub menu items */ function GetNextLevel(&$model, &$tpl_str, $gid, $pid) { $menus = $model->GetLevelsMenus($pid, $gid, true); if (Jaws_Error::IsError($menus) || empty($menus)) { return ''; } $tpl = new Jaws_Template(); $tpl->LoadFromString($tpl_str); $tpl->SetBlock('levels'); $len = count($menus); static $level = -1; for ($i = 0; $i < $len; $i++) { // check ACL if ($menus[$i]['menu_type'] != 'url' && !empty($menus[$i]['key_name']) && !$GLOBALS['app']->Session->GetPermission($menus[$i]['menu_type'], $menus[$i]['acl_key_name'], $menus[$i]['acl_key_subkey'])) { continue; } $level++; $tpl->SetVariable('level', $level); $tpl->SetBlock('levels/menu_item'); $tpl->SetVariable('mid', $menus[$i]['id']); $tpl->SetVariable('title', $menus[$i]['title']); $tpl->SetVariable('url', $menus[$i]['url']); $tpl->SetVariable('target', $menus[$i]['url_target'] == 0 ? '_self' : '_blank'); if (!empty($menus[$i]['image'])) { $src = $this->gadget->urlMap('LoadImage', array('id' => $menus[$i]['id'])); $image =& Piwi::CreateWidget('Image', $src, $menus[$i]['title']); $image->SetID(''); $tpl->SetVariable('image', $image->get()); } else { $tpl->SetVariable('image', ''); } //menu selected? $selected = str_replace(BASE_SCRIPT, '', urldecode($menus[$i]['url'])) == $this->_ReqURL; //get sub level menus $subLevel = $this->GetNextLevel($model, $tpl_str, $gid, $menus[$i]['id']); if ($i == 0) { $tpl->SetBlock('levels/menu_item/first'); $tpl->ParseBlock('levels/menu_item/first'); } if ($i == $len - 1) { $tpl->SetBlock('levels/menu_item/last'); $tpl->ParseBlock('levels/menu_item/last'); } if ($selected) { $tpl->SetBlock('levels/menu_item/current'); $tpl->ParseBlock('levels/menu_item/current'); } if (!empty($subLevel)) { $tpl->SetBlock('levels/menu_item/super'); $tpl->ParseBlock('levels/menu_item/super'); } $tpl->SetVariable('sub_menu', $subLevel); $tpl->ParseBlock('levels/menu_item'); $level--; } $tpl->ParseBlock('levels'); return $tpl->Get(); }
/** * Build the XHTML * * @access public * @return void */ function buildXHTML() { static $alreadyLoaded; $alreadyLoaded = isset($alreadyLoaded) ? true : false; $plugins = array(); $lang = $GLOBALS['app']->GetLanguage(); $pluginDir = JAWS_PATH . 'libraries/tinymce/plugins/'; if (is_dir($pluginDir)) { $dirs = scandir($pluginDir); foreach ($dirs as $dir) { if ($dir[0] != '.' && is_dir($pluginDir . $dir)) { $plugins[] = $dir; } } } $plugins = implode(',', $plugins); $label = $this->_Label->GetValue(); if (!empty($label)) { $this->_Container->PackStart($this->_Label); } $this->_Container->PackStart($this->TextArea); $this->_Container->SetWidth($this->_Width); $this->_XHTML .= $this->_Container->Get(); $ibrowser = ''; if (Jaws_Gadget::IsGadgetInstalled('Phoo')) { $ibrowser = $GLOBALS['app']->getSiteURL() . '/' . BASE_SCRIPT . '?gadget=Phoo&action=BrowsePhoo'; } $fbrowser = ''; if (Jaws_Gadget::IsGadgetInstalled('FileBrowser')) { $fbrowser = $GLOBALS['app']->getSiteURL() . '/' . BASE_SCRIPT . '?gadget=FileBrowser&action=BrowseFile'; } $mbrowser = ''; if (Jaws_Gadget::IsGadgetInstalled('Directory')) { $mbrowser = $GLOBALS['app']->getSiteURL() . '/' . BASE_SCRIPT . '?gadget=Directory&action=Browse'; } if (JAWS_SCRIPT == 'admin') { $plugins = str_replace(',bbcode,', ',', $plugins); $block = 'tinymce_backend'; } else { $block = 'tinymce_frontend'; } $tpl = new Jaws_Template(); $tpl->Load('TinyMCE.html', 'include/Jaws/Resources'); $tpl->SetBlock($block); $tpl->SetVariable('ibrowser', $ibrowser); $tpl->SetVariable('fbrowser', $fbrowser); $tpl->SetVariable('mbrowser', !empty($mbrowser) ? $mbrowser : $fbrowser); $tpl->SetVariable('mode', $this->_Mode); $tpl->SetVariable('lang', $lang); $tpl->SetVariable('theme', $this->_Theme); $tpl->SetVariable('plugins', $plugins); // set toolbars $index = 0; foreach ($this->toolbars as $key => $toolbar) { $tpl->SetBlock("{$block}/toolbar"); $index = $key + 1; $tpl->SetVariable('theme', $this->_Theme); $tpl->SetVariable('key', $index); $tpl->SetVariable('toolbar', $toolbar); $tpl->ParseBlock("{$block}/toolbar"); } $index = $index + 1; $tpl->SetVariable('key', $index); $tpl->SetVariable('browsers', implode($this->_Browsers, ',')); $tpl->SetVariable('dir', _t('GLOBAL_LANG_DIRECTION')); $tpl->SetVariable('valid_elements', $this->_ExtendedValidElements); $tpl->SetVariable('invalid_elements', $this->_InvalidElements); $tpl->SetVariable('class', $this->_Class); $tpl->ParseBlock($block); $this->_XHTML .= $tpl->Get(); }
/** * Displays banners(all-time visibles and random ones) * * @access public * @param int $gid Group ID * @return string XHTML template content */ function Banners($gid = 0) { $id = (int) $this->gadget->request->fetch('id', 'get'); $abs_url = false; if (!empty($id)) { $gid = $id; header(Jaws_XSS::filter($_SERVER['SERVER_PROTOCOL']) . " 200 OK"); $abs_url = true; } $groupModel = $this->gadget->model->load('Groups'); $group = $groupModel->GetGroup($gid); if (Jaws_Error::IsError($group) || empty($group) || !$group['published']) { return false; } $bannerModel = $this->gadget->model->load('Banners'); $banners = $bannerModel->GetVisibleBanners($gid, $group['limit_count']); if (Jaws_Error::IsError($banners) || empty($banners)) { return false; } $tpl = $this->gadget->template->load('Banners.html'); switch ($group['show_type']) { case 1: case 2: $type_block = 'banners_type_' . $group['show_type']; break; default: $type_block = 'banners'; } $tpl->SetBlock($type_block); $tpl->SetVariable('gid', $gid); if ($group['show_title']) { $tpl->SetBlock("{$type_block}/title"); $tpl->SetVariable('title', _t('BANNER_ACTIONS_BANNERS_TITLE', $group['title'])); $tpl->ParseBlock("{$type_block}/title"); } foreach ($banners as $banner) { $tpl->SetBlock("{$type_block}/banner"); $tpl_template = new Jaws_Template(); $tpl_template->LoadFromString('<!-- BEGIN x -->' . $banner['template'] . '<!-- END x -->'); $tpl_template->SetBlock('x'); $tpl_template->SetVariable('title', $banner['title']); if (file_exists(JAWS_DATA . $this->gadget->DataDirectory . $banner['banner'])) { $tpl_template->SetVariable('banner', $GLOBALS['app']->getDataURL($this->gadget->DataDirectory . $banner['banner'])); } else { $tpl_template->SetVariable('banner', $banner['banner']); } if (empty($banner['url'])) { $tpl_template->SetVariable('link', 'javascript:void(0);'); $tpl_template->SetVariable('target', '_self'); } else { $tpl_template->SetVariable('link', $this->gadget->urlMap('Click', array('id' => $banner['id']), $abs_url)); $tpl_template->SetVariable('target', '_blank'); } $tpl_template->ParseBlock('x'); $tpl->SetVariable('template', $tpl_template->Get()); unset($tpl_template); $tpl->ParseBlock("{$type_block}/banner"); $bannerModel->ViewBanner($banner['id']); } $tpl->ParseBlock($type_block); return $tpl->Get(); }
/** * Internal recursive function to build the menu * * @access private * @param array $items * @param string $tplString * @param int $level * @return string XHTML menu */ function DisplayMenu(&$items, &$tplString, $level = 1) { $tpl = new Jaws_Template(); $tpl->LoadFromString($tplString); $tpl->SetBlock('branch'); $tpl->SetVariable('level', $level); if (count($items) > 0) { foreach ($items as $item) { $tpl->SetBlock('branch/menu'); $tpl->SetVariable('level', $level); $tpl->SetVariable('url', $item['url']); $tpl->SetVariable('title', $item['title']); $active = ''; if ($GLOBALS['app']->mainGadget == 'Sitemap' && jaws()->request->fetch('path', 'get') == $item['path']) { $active = 'active'; } $tpl->SetVariable('active', $active); if (count($item['childs']) > 0) { $tpl->SetVariable('submenu', $this->DisplayMenu($item['childs'], $tplString, $level + 1)); } else { $tpl->SetVariable('submenu', ''); } $tpl->ParseBlock('branch/menu'); } } $tpl->ParseBlock('branch'); return $tpl->Get(); }
/** * Builds the upgrader page. * * @access public * @return string A block of valid XHTML to display an introduction and form. */ function Display() { // Get values $values = $this->_Defaults; foreach ($this->_Defaults as $name => $value) { if (isset($_SESSION['upgrade']['Database'][$name])) { $values[$name] = $_SESSION['upgrade']['Database'][$name]; } } $data = array(); if (isset($_SESSION['upgrade']['data']['Database'])) { $data = $_SESSION['upgrade']['data']['Database']; } $tpl = new Jaws_Template(false, false); $tpl->Load('display.html', 'stages/Database/templates'); $tpl->SetBlock('Database'); $tpl->setVariable('db_info', _t('UPGRADE_DB_INFO')); $tpl->SetVariable('next', _t('GLOBAL_NEXT')); if ($_SESSION['secure']) { $JCrypt = Jaws_Crypt::getInstance(array('pvt_key' => $_SESSION['pvt_key'], 'pub_key' => $_SESSION['pub_key'])); if (!Jaws_Error::IsError($JCrypt)) { $tpl->SetVariable('length', $JCrypt->length()); $tpl->SetVariable('modulus', $JCrypt->modulus()); $tpl->SetVariable('exponent', $JCrypt->exponent()); $tpl->SetVariable('func_onsubmit', 'EncryptPassword(this)'); } else { $_SESSION['secure'] = false; $tpl->SetVariable('func_onsubmit', 'true'); } } else { $_SESSION['pub_key'] = ''; $_SESSION['pvt_key'] = ''; $tpl->SetVariable('func_onsubmit', 'true'); } $fields = 0; if (!isset($data['host'])) { $fields++; $tpl->SetBlock('Database/host'); $tpl->setVariable('lbl_host', _t('UPGRADE_DB_HOST')); $tpl->setVariable('host_info', _t('UPGRADE_DB_HOST_INFO', 'localhost')); $tpl->SetVariable('host', $values['host']); $tpl->ParseBlock('Database/host'); } if (!isset($data['user'])) { $fields++; $tpl->SetBlock('Database/user'); $tpl->setVariable('lbl_user', _t('UPGRADE_DB_USER')); $tpl->setVariable('is_db_admin', _t('UPGRADE_DB_IS_ADMIN')); $tpl->SetVariable('user', $values['user']); $tpl->SetVariable('isdba_checked', empty($values['isdba']) || $values['isdba'] == 'false' ? '' : 'checked="checked"'); $tpl->ParseBlock('Database/user'); } if (!isset($data['password'])) { $fields++; $tpl->SetBlock('Database/password'); $tpl->setVariable('lbl_pass', _t('UPGRADE_DB_PASS')); $tpl->SetVariable('dbpass', ''); $tpl->ParseBlock('Database/password'); } if (!isset($data['name'])) { $fields++; $tpl->SetBlock('Database/name'); $tpl->setVariable('lbl_db_name', _t('UPGRADE_DB_NAME')); $tpl->SetVariable('name', $values['name']); $tpl->ParseBlock('Database/name'); } if (!isset($data['path'])) { $fields++; $tpl->SetBlock('Database/path'); $tpl->setVariable('lbl_db_path', _t('UPGRADE_DB_PATH')); $tpl->setVariable('path_info', _t('UPGRADE_DB_PATH_INFO')); $tpl->SetVariable('path', $values['path']); $tpl->ParseBlock('Database/path'); } if (!isset($data['port'])) { $fields++; $tpl->SetBlock('Database/port'); $tpl->setVariable('lbl_port', _t('UPGRADE_DB_PORT')); $tpl->setVariable('port_info', _t('UPGRADE_DB_PORT_INFO')); $tpl->SetVariable('port', $values['port']); $tpl->ParseBlock('Database/port'); } if (!isset($data['prefix'])) { $fields++; $tpl->SetBlock('Database/prefix'); $tpl->setVariable('lbl_prefix', _t('UPGRADE_DB_PREFIX')); $tpl->setVariable('prefix_info', _t('UPGRADE_DB_PREFIX_INFO')); $tpl->SetVariable('prefix', $values['prefix']); $tpl->ParseBlock('Database/prefix'); } // drivers if (!isset($data['driver'])) { $fields++; $tpl->SetBlock('Database/drivers'); $tpl->setVariable('lbl_driver', _t('UPGRADE_DB_DRIVER')); $drivers = array('mysqli' => array('ext' => 'mysqli', 'title' => 'MySQLi (4.1.3 and above)'), 'mysql' => array('ext' => 'mysql', 'title' => 'MySQL'), 'pgsql' => array('ext' => 'pgsql', 'title' => 'PostgreSQL'), 'oci8' => array('ext' => 'oci8', 'title' => 'Oracle'), 'mssql' => array('ext' => 'mssql', 'title' => 'MSSQL Server'), 'sqlsrv' => array('ext' => 'sqlsrv', 'title' => 'MSSQL Server(Microsoft Driver)'), 'ibase' => array('ext' => 'interbase', 'title' => 'Interbase/Firebird')); $modules = get_loaded_extensions(); $modules = array_map('strtolower', $modules); foreach ($drivers as $driver => $driver_info) { _log(JAWS_LOG_DEBUG, "Checking if " . $driver_info['title'] . "(" . $driver_info['ext'] . ") driver is available"); if (!in_array($driver_info['ext'], $modules)) { $available = false; //However... mssql support exists in some Linux distros with the sybase package if ($driver_info['ext'] == 'mssql' && function_exists('mssql_connect')) { $available = true; } if ($available === false) { _log(JAWS_LOG_DEBUG, "Driver " . $driver_info['title'] . "(" . $driver_info['ext'] . ") is NOT available"); continue; } } _log(JAWS_LOG_DEBUG, "Driver " . $driver_info['title'] . "(" . $driver_info['ext'] . ") is available"); $tpl->setBlock('Database/drivers/driver'); $tpl->setVariable('d_name', $driver); $tpl->setVariable('d_realname', $driver_info['title']); if (!empty($values['driver']) && $values['driver'] == $driver) { $selected = ' selected="selected"'; } else { $selected = ''; } $tpl->setVariable('d_selected', $selected); $tpl->ParseBlock('Database/drivers/driver'); } $tpl->ParseBlock('Database/drivers'); } if ($fields === 0 && !isset($GLOBALS['message'])) { $_SESSION['upgrade']['Database']['skip'] = '1'; header('Location: index.php'); } $tpl->ParseBlock('Database'); return $tpl->Get(); }
/** * Shows a given month/year */ function ShowMonth($month, $year = null) { if (empty($year)) { $year = $this->Today['year']; } $tpl = new Jaws_Template(); $tpl->Load('Calendar.html', $this->_TemplateDir); $tpl->SetBlock('calendar'); $tpl->setVariable('title', _t('BLOG_LAYOUT_CALENDAR')); $objDate = Jaws_Date::getInstance(); // Obtain first week day of month $date = $objDate->GetDateInfo($year, $month, 1, 12, 0, 0); $first = $date['wday']; if ($first == 0 && START_WEEKDAY != 0) { $first += 7; } // Move to date to first week day. $date = $objDate->GetDateInfo($year, $month, START_WEEKDAY + 1 - $first, 12, 0, 0); // type cast to int $date['year'] = (int) $date['year']; $date['mon'] = (int) $date['mon']; $date['mday'] = (int) $date['mday']; // Set header if (isset($this->Arrow['left'])) { $left_arrow = '<a href="' . $this->Arrow['left']['url'] . '">' . $this->Arrow['left']['text'] . '</a>'; $tpl->setVariable('left_arrow', $left_arrow); } if ($this->Arrow['right']) { $right_arrow = '<a href="' . $this->Arrow['right']['url'] . '">' . $this->Arrow['right']['text'] . '</a>'; $tpl->setVariable('right_arrow', $right_arrow); } $tpl->SetVariable('month', $objDate->MonthString($month)); $tpl->SetVariable('year', $year); // weekdays $wd = START_WEEKDAY; for ($i = 0; $i <= 6; $i++) { $tpl->SetBlock('calendar/weekday'); $tpl->SetVariable('weekday', $objDate->DayShortString($wd)); $tpl->ParseBlock('calendar/weekday'); $wd < 6 ? $wd++ : ($wd = 0); } // days $end = false; while (!$end) { $tpl->SetBlock('calendar/week'); for ($iDay = 0; $iDay <= 6; $iDay++) { $tpl->SetBlock('calendar/week/day'); if ($date['mday'] == $this->Today['mday'] && $date['mon'] == $this->Today['mon'] && $date['year'] == $this->Today['year']) { $style = 'today'; } elseif ($date['mday'] == $this->Day && $date['mon'] == $this->Month && $date['year'] == $this->Year) { $style = 'selectedday'; } elseif ($date['mon'] == $month) { $style = 'day'; } else { $style = 'noday'; // TODO: Simplify this condition ;-) if (($date['mon'] > $month || $date['mon'] == 1 && $month == 12) && !($date['mon'] == 12 && $month == 1)) { $end = true; } } $tpl->SetVariable('style', $style); $url = $title = ''; // Got URL? if (isset($this->Items[$date['year']][$date['mon']][$date['mday']]['url'])) { $url = $this->Items[$date['year']][$date['mon']][$date['mday']]['url']; } if (isset($this->Items[$date['year']][$date['mon']][$date['mday']]['title'])) { $title = $this->Items[$date['year']][$date['mon']][$date['mday']]['title']; } if (!empty($url)) { $tpl->SetVariable('day', '<a href="' . $url . '" title="' . $title . '">' . $date['mday'] . '</a>'); } else { $tpl->SetVariable('day', $date['mday']); } $date = $objDate->GetDateInfo($date['year'], $date['mon'], $date['mday'] + 1, 12, 0, 0); // type cast to int $date['year'] = (int) $date['year']; $date['mon'] = (int) $date['mon']; $date['mday'] = (int) $date['mday']; $tpl->ParseBlock('calendar/week/day'); } $tpl->ParseBlock('calendar/week'); } $tpl->ParseBlock('calendar'); return $tpl->Get(); }
/** * Retrieves Menu Level * * @access public * @param object $model Jaws_Model reference * @param string $tpl_str XHTML template content passed by reference * @param int $gid Group ID * @param int $pid * @return string XHTML template content */ function GetMenuLevel(&$model, &$tpl_str, $gid, $pid) { $menus = $model->GetLevelsMenus($pid, $gid); if (Jaws_Error::IsError($menus) || empty($menus)) { return ''; } $tpl = new Jaws_Template(); $tpl->LoadFromString($tpl_str); $tpl->SetBlock('parent'); foreach ($menus as $menu) { $tpl->SetBlock('parent/menu'); $tpl->SetVariable('class_name', 'menu_levels'); $tpl->SetVariable('mg_id', 'menu_' . $menu['id']); $tpl->SetVariable('icon', 'gadgets/Menu/Resources/images/menu-item.png'); $tpl->SetVariable('title', $menu['title']); $tpl->SetVariable('js_edit_func', "editMenu({$menu['id']})"); $tpl->SetVariable('add_title', _t('MENU_ADD_MENU')); $tpl->SetVariable('add_icon', STOCK_NEW); $tpl->SetVariable('js_add_func', "addMenu({$gid}, {$menu['id']})"); $tpl->SetVariable('sub_menus', $this->GetMenuLevel($model, $tpl_str, $gid, $menu['id'])); $tpl->ParseBlock('parent/menu'); } $tpl->ParseBlock('parent'); return $tpl->Get(); }
/** * Build the XHTML * * @access public * @return string XHTML content */ function buildXHTML() { $label = $this->_Label->GetValue(); if (!empty($label)) { $this->_Container->PackStart($this->_Label); } $this->_Container->PackStart($this->TextArea); $this->_Container->SetWidth($this->_Width); $this->_XHTML .= $this->_Container->Get(); $extraPlugins = array(); $pluginDir = JAWS_PATH . 'libraries/ckeditor/plugins/'; if (is_dir($pluginDir)) { $dirs = scandir($pluginDir); foreach ($dirs as $dir) { if ($dir[0] != '.' && is_dir($pluginDir . $dir)) { if (!in_array($dir, $this->_DefaultPlugins)) { $extraPlugins[] = $dir; } } } } $tpl = new Jaws_Template(); $tpl->Load('CKEditor.html', 'include/Jaws/Resources'); $block = JAWS_SCRIPT == 'admin' ? 'ckeditor_backend' : 'ckeditor_frontend'; $tpl->SetBlock($block); $tpl->SetVariable('name', $this->_Name); $tpl->SetVariable('baseUrl', Jaws_Utils::getBaseURL('/', true)); $tpl->SetVariable('contentsLangDirection', $this->_Direction); $tpl->SetVariable('language', $this->_Language); $tpl->SetVariable('AutoDetectLanguage', 'false'); $tpl->SetVariable('autoParagraph', 'false'); $tpl->SetVariable('height', $this->_Height); $tpl->SetVariable('skin', $this->_Skin); $tpl->SetVariable('theme', $this->_Theme); $tpl->SetVariable('readOnly', $this->_IsEnabled ? 'false' : 'true'); $tpl->SetVariable('resize_enabled', $this->_IsResizable ? 'true' : 'false'); $tpl->SetVariable('toolbar', json_encode($this->toolbars)); if (!empty($extraPlugins)) { $tpl->SetBlock("{$block}/extra"); $tpl->SetVariable('extraPlugins', implode(',', $extraPlugins)); $tpl->ParseBlock("{$block}/extra"); } // removed plugins $tpl->SetVariable('removePlugins', $this->_RemovePlugins); // direction if ('rtl' == $this->_Direction) { $tpl->SetVariable('contentsCss', 'gadgets/ControlPanel/Resources/ckeditor.rtl.css'); } else { $tpl->SetVariable('contentsCss', 'gadgets/ControlPanel/Resources/ckeditor.css'); } // FileBrowser if (Jaws_Gadget::IsGadgetInstalled('FileBrowser')) { $tpl->SetBlock("{$block}/filebrowser"); $tpl->SetVariable('filebrowserBrowseUrl', BASE_SCRIPT . '?gadget=FileBrowser&action=BrowseFile'); $tpl->SetVariable('filebrowserFlashBrowseUrl', BASE_SCRIPT . '?gadget=FileBrowser&action=BrowseFile'); $tpl->ParseBlock("{$block}/filebrowser"); } // Phoo if (Jaws_Gadget::IsGadgetInstalled('Phoo')) { $tpl->SetBlock("{$block}/phoo"); $tpl->SetVariable('filebrowserImageBrowseUrl', BASE_SCRIPT . '?gadget=Phoo&action=BrowsePhoo'); $tpl->ParseBlock("{$block}/phoo"); } // Directory if (Jaws_Gadget::IsGadgetInstalled('Directory')) { $tpl->SetBlock("{$block}/directory"); $tpl->SetVariable('filebrowserFlashBrowseUrl', BASE_SCRIPT . '?gadget=Directory&action=Browse'); $tpl->ParseBlock("{$block}/directory"); } $tpl->ParseBlock($block); $this->_XHTML .= $tpl->Get(); }
/** * Overrides, Parses the text * * @access public * @param string $html HTML to be parsed * @return string Parsed content */ function ParseText($html) { while (preg_match_all('#\\[(\\w+|\\*)[=]?(.*?)\\][\\n]?(.+?)\\[/\\1\\]#isu', $html, $matches)) { foreach ($matches[0] as $key => $match) { list($tag, $params, $innertext) = array($matches[1][$key], $matches[2][$key], $matches[3][$key]); $params = explode(' ', $params); $first = array_shift($params); $params = implode(' ', $params); switch ($tag) { case 'dir': $replacement = "<div dir=\"{$first}\">{$innertext}</div>"; break; case 'indent': $first = floatval($first); $style = 'margin-' . (!empty($params) ? $params : 'left'); $replacement = "<div style=\"{$style}:{$first}em;\">{$innertext}</div>"; break; case 'h': $first = (int) $first == 0 ? 3 : (int) $first; $replacement = "<h{$first}>{$innertext}</h{$first}>"; break; case 'hr': $replacement = "<hr/>"; break; case 'b': $replacement = "<strong>{$innertext}</strong>"; break; case 'i': $replacement = "<em>{$innertext}</em>"; break; case 'h1': case 'h2': case 'h3': case 'h4': case 'h5': case 'h6': case 's': case 'u': case 'li': case 'tr': case 'th': case 'td': case 'sup': case 'sub': case 'table': $replacement = "<{$tag}>{$innertext}</{$tag}>"; break; case 'code': case 'noparse': $replacement = '<pre><code>' . str_replace(array('[', ']', '{', '}'), array('[', ']', '{', '}'), $innertext) . '</code></pre>'; break; case 'list': $tag = empty($first) ? 'ul' : 'ol'; case 'ul': case 'ol': switch ($first) { case '1': $replacement = "<ol style=\"list-style-type:decimal;\">{$innertext}</ol>"; break; case 'a': $replacement = "<ol style=\"list-style-type:lower-alpha;\">{$innertext}</ol>"; break; case 'A': $replacement = "<ol style=\"list-style-type:upper-alpha;\">{$innertext}</ol>"; break; case 'i': $replacement = "<ol style=\"list-style-type:lower-roman;\">{$innertext}</ol>"; break; case 'I': $replacement = "<ol style=\"list-style-type:upper-roman;\">{$innertext}</ol>"; break; default: $replacement = "<{$tag}>{$innertext}</{$tag}>"; } break; case '*': $replacement = "<li>{$innertext}</li>"; break; case 'size': $first .= is_numeric($first) ? 'px' : ''; $replacement = "<span style=\"font-size:{$first};\">{$innertext}</span>"; break; case 'color': $replacement = "<span style=\"color:{$first};\">{$innertext}</span>"; break; case 'bgcolor': $replacement = "<span style=\"background-color:{$first};\">{$innertext}</span>"; break; case 'align': $replacement = "<div style=\"text-align:{$first};\">{$innertext}</div>"; break; case 'quote': $replacement = $first ? "<cite>{$first}:</cite>" : ''; $replacement = "<blockquote>{$replacement}<div>{$innertext}</div></blockquote>"; break; case 'url': $replacement = '<a href="' . ($first ? $first : $innertext) . "\" rel=\"nofollow\">{$innertext}</a>"; break; case 'email': $replacement = '<a href="mailto:' . ($first ? $first : $innertext) . "\">{$innertext}</a>"; break; case 'img': @(list($width, $height) = preg_split('#x#i', $first)); $replacement = "<img src=\"{$innertext}\" "; $replacement .= is_numeric($width) ? "width=\"{$width}\" " : ''; $replacement .= is_numeric($height) ? "height=\"{$height}\" " : ''; $replacement .= !empty($params) ? "alt=\"{$params}\" " : ''; $replacement .= '/>'; break; case 'media': @(list($width, $height) = preg_split('#x#i', $first)); $mSource = 'youtube'; if (!empty($params)) { $mSource = preg_replace('/[^[:alnum:]_-]/', '', $params); } $replacement = ''; $mSourcePath = JAWS_PATH . "plugins/BBCode/Templates/{$mSource}.html"; if (file_exists($mSourcePath)) { $tpl = new Jaws_Template(); $tpl->Load("{$mSource}.html", 'plugins/BBCode/Templates/'); $tpl->SetBlock('media'); $tpl->SetVariable('vid', $innertext); if (is_numeric($width)) { $tpl->SetBlock('media/width'); $tpl->SetVariable('width', $width); $tpl->ParseBlock('media/width'); } if (is_numeric($height)) { $tpl->SetBlock('media/height'); $tpl->SetVariable('height', $height); $tpl->ParseBlock('media/height'); } $tpl->ParseBlock('media'); $replacement = $tpl->Get(); } break; case 'video': @(list($width, $height) = preg_split('#x#i', $first)); $size = is_numeric($width) ? "width=\"{$width}\" " : ''; $size .= is_numeric($height) ? "height=\"{$height}\" " : ''; $replacement = "<video {$size} controls>"; $replacement .= "<source src=\"{$innertext}.ogg\" type=\"video/ogg\">"; $replacement .= "<source src=\"{$innertext}.webm\" type=\"video/webm\">"; $replacement .= "<source src=\"{$innertext}.mp4\" type=\"video/mp4\">"; $replacement .= 'Your browser does not support the HTML5 video tag.'; $replacement .= '</video>'; break; case 'audio': @(list($width, $height) = preg_split('#x#i', $first)); $size = is_numeric($width) ? "style='width:{$width}px;' " : ''; $replacement = "<audio {$size}" . $params . ' controls>'; $replacement .= "<source src=\"{$innertext}.ogg\" type=\"audio/ogg\">"; $replacement .= "<source src=\"{$innertext}.mp3\" type=\"audio/mpeg\">"; $replacement .= "<source src=\"{$innertext}.wav\" type=\"audio/wav\">"; $replacement .= 'Your browser does not support the HTML5 audio tag.'; $replacement .= '</audio>'; break; default: $replacement = str_replace(array('[', ']'), array('[', ']'), $match); } $html = str_replace($match, $replacement, $html); } } return $html; }