/** * Returns news for the dashboard (if a new version is available). * * @return html */ public static function getNews() { $systemInfoDb = new SystemInfo(); $systemInfo = $systemInfoDb->getSystemInfo(); /* Update daily. */ $lastWeeksDate = time() - SECONDS_IN_A_DAY; $lastCheck = strtotime($systemInfo['date_version_checked']); if ($lastWeeksDate > $lastCheck) { self::checkForUpdate(); /* Refresh the new information. */ $systemInfo = $systemInfoDb->getSystemInfo(); } /* Only display new version news if a new version is available. */ if ($systemInfo['available_version'] > CATSUtility::getVersionAsInteger()) { return urldecode($systemInfo['available_version_description']); } return ''; }
/** * Prints logo and "top-right" header HTML. * * @return void */ public static function printHeaderBlock($showTopRight = true) { $username = $_SESSION['CATS']->getUsername(); $siteName = $_SESSION['CATS']->getSiteName(); $fullName = $_SESSION['CATS']->getFullName(); $indexName = CATSUtility::getIndexName(); echo '<div id="headerBlock">', "\n"; /* CATS Logo */ echo '<table cellspacing="0" cellpadding="0" style="margin: 0px; padding: 0px; float: left;">', "\n"; echo '<tr>', "\n"; echo '<td rowspan="2"><img src="images/applicationLogo.jpg" border="0" alt="CATS Applicant Tracking System" /></td>', "\n"; echo '</tr>', "\n"; echo '</table>', "\n"; if (!eval(Hooks::get('TEMPLATE_LIVE_CHAT'))) { return; } if (!eval(Hooks::get('TEMPLATE_LOGIN_INFO_PRE_TOP_RIGHT'))) { return; } if ($showTopRight) { // FIXME: Use common functions. // FIXME: Isn't the UNIX-name stuff ASP specific? Hook? if (strpos($username, '@' . $_SESSION['CATS']->getSiteID()) !== false && substr($username, strpos($username, '@' . $_SESSION['CATS']->getSiteID())) == '@' . $_SESSION['CATS']->getSiteID()) { $username = str_replace('@' . $_SESSION['CATS']->getSiteID(), '', $username); } if (!eval(Hooks::get('TEMPLATE_LOGIN_INFO_TOP_RIGHT_1'))) { return; } /* Top Right Corner */ echo '<div id="topRight">', "\n"; echo '<div style="padding-bottom: 8px;">'; // Begin top-right action block if (!eval(Hooks::get('TEMPLATE_LOGIN_INFO_TOP_RIGHT_UPGRADE'))) { return; } if ((!file_exists('modules/asp') || defined('CATS_TEST_MODE') && CATS_TEST_MODE) && LicenseUtility::isProfessional() && $_SESSION['CATS']->getAccessLevel() >= ACCESS_LEVEL_SA) { if (abs(LicenseUtility::getExpirationDate() - time()) < 60 * 60 * 24 * 30) { $daysLeft = abs(LicenseUtility::getExpirationDate() - time()) / 60 / 60 / 24; echo '<a href="http://www.catsone.com/professional" target="_blank">'; echo '<img src="images/tabs/small_upgrade.jpg" border="0" /> '; echo 'License expires in ' . number_format($daysLeft, 0) . ' days, Renew?</a> ', "\n"; } else { echo '<a href="http://www.catsone.com/professional" target="_blank">'; echo '<img src="images/tabs/small_upgrade.jpg" border="0" /> '; echo 'CATS Professional Account Login</a> ', "\n"; } } if (!file_exists('modules/asp') && !LicenseUtility::isProfessional()) { echo '<a href="http://www.catsone.com/professional" target="_blank">'; echo '<img src="images/tabs/small_upgrade.jpg" border="0" /> '; echo '<b>For more features, upgrade to CATS Professional</b></a> ', "\n"; } echo '<a href="', $indexName, '?m=logout">'; echo '<img src="images/tabs/small_logout.jpg" border="0" /> '; echo 'Logout</a>', "\n"; echo '</div>', "\n"; // End top-right action block if (!eval(Hooks::get('TEMPLATE_LOGIN_INFO_EXTENDED_SITE_NAME'))) { return; } echo '<span>', $fullName, ' <', $username, '> (', $siteName, ')</span>', "\n"; if ($_SESSION['CATS']->getAccessLevel() >= ACCESS_LEVEL_SA) { echo ' <span style="font-weight:bold;">Administrator</span>', "\n"; } echo '<br />'; $systemInfo = new SystemInfo(); $systemInfoData = $systemInfo->getSystemInfo(); if (isset($systemInfoData['available_version']) && $systemInfoData['available_version'] > CATSUtility::getVersionAsInteger() && isset($systemInfoData['disable_version_check']) && !$systemInfoData['disable_version_check'] && $_SESSION['CATS']->getAccessLevel() >= ACCESS_LEVEL_SA) { echo '<a href="http://www.catsone.com/download.php" target="catsdl">A new CATS version is available!</a><br />'; } /* Disabled notice */ if (!$_SESSION['CATS']->accountActive()) { echo '<span style="font-weight:bold;">Account Inactive</span><br />', "\n"; } else { if ($_SESSION['CATS']->getAccessLevel() == ACCESS_LEVEL_READ) { echo '<span>Read Only Access</span><br />', "\n"; } else { if (!eval(Hooks::get('TEMPLATE_LOGIN_INFO_TOP_RIGHT_2_ELSE'))) { return; } } } echo '</div>', "\n"; } echo '</div>', "\n"; }
private function changeNewVersionCheck($enableNewVersionCheck) { $systemInfo = new SystemInfo(); $systemInfo->updateVersionCheckPrefs($enableNewVersionCheck); NewVersionCheck::checkForUpdate(); }
public function versionCheck($h) { $systeminfo = SystemInfo::instance(); $result = $systeminfo->plugin_version_getAll($h); if ($result) { $h->messages[$h->lang('admin_theme_version_check_completed')] = 'alert-success'; } else { $h->messages[$h->lang('admin_theme_version_check_failed')] = 'alert-danger'; } }
public function loginForum($username = '', $password = '') { $systemInfo = SystemInfo::instance(); return $systemInfo->loginForum($this, $username, $password); }
/** * Admin Pages */ public function pages($h, $page = 'admin_login') { $h->vars['admin_sidebar_layout'] = 'vertical'; $h->sidebars = true; $h->pluginHook('admin_pages'); switch ($page) { case "admin_login": $h->sidebars = false; $h->adminLoginLogout('login'); break; case "admin_logout": $h->adminLoginLogout('logout'); break; case "admin_news": echo $h->adminNews(10, 3, 300); die; case "systeminfo_feedback": $sysInfo = SystemInfo::instance(); $sysInfo->hotaru_feedback($h); die; case "admin_account": $h->vars['admin_account'] = $this->adminAccount($h); break; case "settings": $h->vars['admin_settings'] = $this->settings($h); break; case "maintenance": $this->maintenanceAction($h); $h->vars['admin_plugin_settings'] = $this->listPluginSettings($h); $h->vars['admin_plugin_tables'] = $this->listDbTables($h, true); break; case "blocked": $h->vars['admin_blocked_list'] = $this->blocked($h); break; case "pages_management": $h->vars['admin_pages_array'] = $this->getPages($h); break; case "pages_management_edit": $h->vars['admin_edit_page'] = $h->cage->get->testAlnumLines('filename'); break; case "plugin_management": $h->vars['admin_settings'] = $this->settings($h); $this->adminPlugins($h); break; case "plugin_management_beta_search": break; case "theme_management": break; case "spam_management": break; case "ajax_stats": $this->ajaxStats($h); die; break; case "stats_users": break; case "media": $h->vars['media_folder'] = $h->cage->get->testAlnumLines('folder'); break; case "ajax_loginforum": $ch = $h->loginForum(FORUM_USERNAME, FORUM_PASSWORD); $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($statusCode == 303) { $error = false; $message = 'Success'; } else { $error = true; $message = 'Password Failed'; } print json_encode(array('error' => $error, 'message' => $message)); die; case "ajax_getHotaruApiKey": // call api on api.hotarucms.org with site details $newApiKey = getGUID(); \Hotaru\Models2\Setting::makeUpdate($h, 'HOTARU_API_KEY', $newApiKey); $error = false; $message = "API Key Reset"; print json_encode(array('error' => $error, 'message' => $message, 'apiKey' => $newApiKey)); die; case "plugin_search": $h->vars['admin_sidebar_layout'] = 'horizontal'; //$this->adminPluginSearch($h); break; case "plugin_settings": $h->vars['settings_plugin'] = $h->cage->get->testAlnumLines('plugin'); // get plugin name from url if (!$h->vars['settings_plugin']) { $h->vars['settings_plugin'] = $h->cage->post->testAlnumLines('plugin'); // get plugin name from form } $h->vars['plugin_settings_csrf_error'] = ''; if ($h->cage->post->testAlpha('submitted') == 'true') { $h->vars['plugin_settings_csrf_error'] = !$h->csrf() ? true : false; } $alt_template = $h->cage->get->testPage('alt_template'); if ($alt_template) { $h->template($alt_template, $h->vars['settings_plugin']); exit; } break; case "theme_settings": $h->vars['settings_theme'] = $h->cage->get->testAlnumLines('theme'); // get plugin name from url if (!$h->vars['settings_theme']) { $h->vars['settings_theme'] = $h->cage->post->testAlnumLines('theme'); // get plugin name from form } $h->vars['theme_settings_csrf_error'] = ''; if ($h->cage->post->testAlpha('submitted') == 'true') { $h->vars['theme_settings_csrf_error'] = !$h->csrf() ? true : false; } break; default: // we need this because it's not specified in the url: $h->pageName = 'admin_home'; break; } // Display the main theme's index.php template $h->template('admin_index'); }
/** * Generate a System Report * * @param string $type 'log', 'email' or 'object' */ public function generateReport($h, $type = 'log', $level = '') { $sysinfo = new SystemInfo(); $report = $sysinfo->getSystemData($h, $level); if ($type == 'object') { return $report; } // TODO // remove by 1.6.0 // if ($type == 'email') { // $to = "*****@*****.**"; // do not change! // $subject = "System Report from " . SITE_NAME; // $body = $sysinfo->logSystemReport($h, $report); // $h->email($to, $subject, $body); // $h->message = $h->lang('admin_maintenance_system_report_emailed'); // $h->messageType = 'green'; // return true; // } $h->openLog('system_report', 'w'); // convert object to text $output = $sysinfo->logSystemReport($h, $report); if ($output) { $h->writeLog('system_report', $output); $h->closeLog('system_report'); $h->message = $h->lang('admin_maintenance_system_report_success'); $h->messageType = 'green'; return true; } else { $h->message = $h->lang('admin_maintenance_system_report_failure'); $h->messageType = 'red'; return false; } }
private function loadTheme($_AUIEO_ARR_THEME_VAR) { if($_SERVER["REQUEST_URI"]=="/demo/careers/") { $AUIEO_THEME_MODULE="careers"; } else if(isset($_REQUEST["m"]) && $_REQUEST["m"]=="careers") { $AUIEO_THEME_MODULE="careers"; } else if(!$_SESSION['CATS']->isLoggedIn()) { $AUIEO_THEME_MODULE="login"; } else { $AUIEO_THEME_MODULE=isset($_REQUEST["m"])?$_REQUEST["m"]:"index"; } $objModule=new ClsAuieoModule($AUIEO_THEME_MODULE,isset($_REQUEST["a"])?$_REQUEST["a"]:"create"); $actionTheme=$objModule->getConfigVar("actions"); if($actionTheme) { $AUIEO_THEME_MODULE=$actionTheme; } if(!file_exists("themes/default/{$AUIEO_THEME_MODULE}.php")) { $AUIEO_THEME_MODULE="index"; } extract($_AUIEO_ARR_THEME_VAR); unset($_AUIEO_ARR_THEME_VAR); $HTML_ENCODING=HTML_ENCODING; $AUIEO_USER_NAME = $_SESSION['CATS']->getUsername(); $AUIEO_SITE_NAME = $_SESSION['CATS']->getSiteName(); $AUIEO_FULL_NAME = $_SESSION['CATS']->getFullName(); $AUIEO_INDEX_NAME = CATSUtility::getIndexName(); $_AUIEO_MODULE=isset($_GET["m"])?$_GET["m"]:"home"; if (strpos($AUIEO_USER_NAME, '@'.$_SESSION['CATS']->getSiteID()) !== false && substr($AUIEO_USER_NAME, strpos($username, '@'.$_SESSION['CATS']->getSiteID())) == '@'.$_SESSION['CATS']->getSiteID() ) { $AUIEO_USER_NAME = str_replace('@'.$_SESSION['CATS']->getSiteID(), '', $AUIEO_USER_NAME); } $ACCESS_LEVEL_SA_GREATER=""; if ($_SESSION['CATS']->getAccessLevel() >= ACCESS_LEVEL_SA) { $ACCESS_LEVEL_SA_GREATER = " <span style='font-weight:bold;'>Administrator</span>\n"; } $AUIEO_NOTICE=""; /* Disabled notice */ if (!$_SESSION['CATS']->accountActive()) { $AUIEO_NOTICE = "<span style='font-weight:bold;'>Account Inactive</span><br />\n"; } else if ($_SESSION['CATS']->getAccessLevel() == ACCESS_LEVEL_READ) { $AUIEO_NOTICE = "<span>Read Only Access</span><br />\n"; } ob_start(); $forceHighlight = ''; $modules = ModuleUtility::getModules(); if($_SESSION["CATS"]->getSiteID()>0) { $objPRGManagement=PRGManagement::getInstance(); } foreach ($modules as $moduleName => $parameters) { if($_SESSION["CATS"]->getSiteID()>0) { $permit=$objPRGManagement->isModulePermitted($moduleName); if($permit===false) { continue; } } $tabText = $parameters[1]; /* Don't display a module's tab if $tabText is empty. */ if (empty($tabText)) { continue; } /* If name = Companies and HR mode is on, change tab name to My Company. */ if ($_SESSION['CATS']->isHrMode() && $tabText == 'Companies') { $tabText = 'My Company'; } /* Allow a hook to prevent a module from being displayed. */ $displayTab = true; if (!eval(Hooks::get('TEMPLATE_UTILITY_EVALUATE_TAB_VISIBLE'))) return; if (!$displayTab) { continue; } /* Inactive Tab? */ if (!isset($this->active) || empty($this->active) || $moduleName != $this->active->getModuleName()) { if ($moduleName == $forceHighlight) { $className = 'active'; } else { $className = 'inactive'; } $alPosition = strpos($tabText, "*al="); if ($alPosition === false) { echo '<li><a class="', $className, '" href="', $AUIEO_INDEX_NAME, '?m=', $moduleName, '">', $tabText, '</a></li>', "\n"; } else { $al = substr($tabText, $alPosition + 4); if ($_SESSION['CATS']->getAccessLevel() >= $al || $_SESSION['CATS']->isDemo()) { echo '<li><a class="', $className, '" href="', $indexName, '?m=', $moduleName, '">', substr($tabText, 0, $alPosition), '</a></li>', "\n"; } } continue; } $alPosition = strpos($tabText, "*al="); if ($alPosition !== false) { $tabText = substr($tabText, 0, $alPosition); } /* Start the <li> block for the active tab. The secondary <ul> * for subtabs MUST be contained within this block. It is * closed after subtabs are printed. */ echo '<li>'; echo '<a class="active" href="', $AUIEO_INDEX_NAME, '?m=', $moduleName, '">', $tabText, '</a>', "\n"; $subTabs = $this->active->getSubTabs($modules); if ($subTabs) { echo '<ul id="secondary">'; foreach ($subTabs as $subTabText => $link) { if (isset($this->subActive) && $subTabText == $this->subActive) { $style = "color:#cccccc;"; } else { $style = ""; } /* Check HR mode for displaying tab. */ $hrmodePosition = strpos($link, "*hrmode="); if ($hrmodePosition !== false) { /* Access level restricted subtab. */ $hrmode = substr($link, $hrmodePosition + 8); if ((!$_SESSION['CATS']->isHrMode() && $hrmode == 0) || ($_SESSION['CATS']->isHrMode() && $hrmode == 1)) { $link = substr($link, 0, $hrmodePosition); } else { $link = ''; } } /* Check access level for displaying tab. */ $alPosition = strpos($link, "*al="); if ($alPosition !== false) { /* Access level restricted subtab. */ $al = substr($link, $alPosition + 4); if ($_SESSION['CATS']->getAccessLevel() >= $al || $_SESSION['CATS']->isDemo()) { $link = substr($link, 0, $alPosition); } else { $link = ''; } } $jsPosition = strpos($link, "*js="); if ($jsPosition !== false) { /* Javascript subtab. */ echo '<li><a href="', substr($link, 0, $jsPosition), '" onclick="', substr($link, $jsPosition + 4), '" style="'.$style.'">', $subTabText, '</a></li>', "\n"; } /* A few subtabs have special logic to decide if they display or not. */ /* FIXME: Put the logic for these somewhere else. Perhaps the definitions of the subtabs themselves should have an eval()uatable rule? Brian 6-14-07: Second. */ else if (strpos($link, 'a=internalPostings') !== false) { /* Default company subtab. */ include_once('./lib/Companies.php'); $companies = new Companies($_SESSION['CATS']->getSiteID()); $defaultCompanyID = $companies->getDefaultCompany(); if ($defaultCompanyID !== false) { echo '<li><a href="', $link, '" style="'.$style.'">', $subTabText, '</a></li>', "\n"; } } else if (strpos($link, 'a=administration') !== false) { /* Administration subtab. */ if ($_SESSION['CATS']->getRealAccessLevel() >= ACCESS_LEVEL_DEMO) { echo '<li><a href="', $link, '" style="'.$style.'">', $subTabText, '</a></li>', "\n"; } } else if (strpos($link, 'a=customizeEEOReport') !== false) { /* EEO Report subtab. Shouldn't be visible if EEO tracking is disabled. */ $EEOSettings = new EEOSettings($_SESSION['CATS']->getSiteID()); $EEOSettingsRS = $EEOSettings->getAll(); if ($EEOSettingsRS['enabled'] == 1) { echo '<li><a href="', $link, '" style="'.$style.'">', $subTabText, '</a></li>', "\n"; } } /* Tab is ok to draw. */ else if ($link != '') { /* Normal subtab. */ echo '<li><a href="', $link, '" style="'.$style.'">', $subTabText, '</a></li>', "\n"; } } if (!eval(Hooks::get('TEMPLATE_UTILITY_DRAW_SUBTABS'))) return; echo '</ul>'; } echo '</li>'; } $_AUIEO_TABS= ob_get_clean(); $systemInfo = new SystemInfo(); $systemInfoData = $systemInfo->getSystemInfo(); $AUIEO_DOWNLOAD_LATEST=""; if (isset($systemInfoData['available_version']) && $systemInfoData['available_version'] > CATSUtility::getVersionAsInteger() && isset($systemInfoData['disable_version_check']) && !$systemInfoData['disable_version_check'] && $_SESSION['CATS']->getAccessLevel() >= ACCESS_LEVEL_SA) { $AUIEO_DOWNLOAD_LATEST = "<a href='http://www.catsone.com/download.php' target='catsdl'>A new CATS version is available!</a><br />"; } $AUIEO_RECENT=""; if (!empty($MRU)) { $AUIEO_RECENT = '<span class="MRUTitle">Recent: </span> {$MRU}'; } else { $AUIEO_RECENT = '<span class="MRUTitle"></span> '; } $AUIEO_HAS_USER_CATEGORY=""; //FIXME: Abstract into a hook. if ($_SESSION['CATS']->hasUserCategory('msa')) { $AUIEO_HAS_USER_CATEGORY = "<input type='hidden' name='m' value='asp' /> <input type='hidden' name='a' value='aspSearch' /> <span class='quickSearchLabel' id='quickSearchLabel>ASP Search:</span> "; } else { $AUIEO_HAS_USER_CATEGORY = "<input type='hidden' name='m' value='home' /> <input type='hidden' name='a' value='quickSearch' /> <span class='quickSearchLabel' id='quickSearchLabel'>Quick Search:</span> "; } $wildCardString = ''; /* Get the formatted MRU list from Session. */ $MRU = $_SESSION['CATS']->getMRU()->getFormatted(); $indexName = CATSUtility::getIndexName(); $AUIEO_PREFIX=""; if(isset($_REQUEST["m"]) && $_REQUEST["m"]=="careers") { $AUIEO_PREFIX="../"; } $pageTitle = pageTitle(); $headIncludes = pageHeaderInclude(); $AUIEO_PAGE_START=""; ob_start(); //TemplateUtility::_printCommonHeader($pageTitle, $headIncludes); if (!is_array($headIncludes)) { $headIncludes = array($headIncludes); } $siteID = $_SESSION['CATS']->getSiteID(); /* This prevents caching problems when SVN updates are preformed. */ if ($_SESSION['CATS']->getCachedBuild() > 0) { $javascriptAntiCache = '?b=' . $_SESSION['CATS']->getCachedBuild(); } else { $javascriptAntiCache = '?v=' . CATSUtility::getVersionAsInteger(); } $headIncludes[] = 'main.css'; foreach ($headIncludes as $key => $filename) { /* Done manually to prevent a global dependency on FileUtility. */ if ($filename == 'tinymce') { echo ('<script language="javascript" type="text/javascript" src="lib/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>'."\n". '<script language="javascript" type="text/javascript">tinyMCE.init({ mode : "specific_textareas", editor_selector : "mceEditor", width : "100%", theme : "advanced", theme_advanced_buttons1 : "bold,italic,strikethrough,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,link,unlink,separator,underline,forecolor,separator,removeformat,cleanup,separator,charmap,separator,undo,redo", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", language : "en", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_resizing : true, browsers : "msie,gecko,opera,safari", dialog_type : "modal", theme_advanced_resize_horizontal : false, convert_urls : false, relative_urls : false, remove_script_host : false, force_p_newlines : false, force_br_newlines : true, convert_newlines_to_brs : false, remove_linebreaks : false, fix_list_elements : true });</script>'."\n"); } else { $extension = substr($filename, strrpos($filename, '.') + 1); $filename .= $javascriptAntiCache; if ($extension == 'js') { echo '<script type="text/javascript" src="', $filename, '"></script>', "\n"; } else if ($extension == 'css') { echo '<style type="text/css" media="all">@import "', $filename, '";</style>', "\n"; } } } $AUIEO_PAGE_START= ob_get_clean(); //ob_start(); $AUIEO_LOAD_TIME = $_SESSION['CATS']->getExecutionTime(); $AUIEO_CANDIDATS_VERSION=CANDIDATS_VERSION; include("themes/default/{$AUIEO_THEME_MODULE}.php"); /** * for handing comment in html template. usage is {$_("This is comment")} */ $_=function($comment) { return ""; }; ob_start(); eval('echo <<< EOT '.file_get_contents("themes/default/{$AUIEO_THEME_MODULE}.html").' EOT; '); $html = ob_get_clean(); return $html; }