/** * Add javascript logout to the page if a timeout is set for the site. * @param I2CE_Page $page */ public function javascriptTimeout($page) { if (!$page->getUser()->logged_in()) { return; } $timeout = 0; I2CE::getConfig()->setIfIsSet($timeout, "/config/site/user_timeout"); I2CE::getConfig()->setIfIsSet($timeout, "/user_prefs/timeout/user_timeout"); if ($timeout && is_numeric($timeout) && $timeout > 0) { $timeout = $timeout * 1000; $message = "You have been logged out due to inactivity."; I2CE::getConfig()->setIfIsSet($message, "/config/site/user_timeout_message"); I2CE::getConfig()->setIfIsSet($message, "/user_prefs/timeout/user_timeout_message"); $logout = $page->getAccessedBaseURL() . "logout?message=" . urlencode($message); $js = <<<EOJS var auto_logout_timeout_id = 0; window.addEvent('domready', function() { autoLogoutResetTimeout(); document.addEvent('keypress', function(event) { autoLogoutResetTimeout(); } ); document.addEvent('mousemove', function(event) { autoLogoutResetTimeout(); } ); } ); function autoLogoutResetTimeout() { if ( auto_logout_timeout_id > 0 ) { clearTimeout( auto_logout_timeout_id ); } auto_logout_timeout_id = setTimeout( function() { window.location = "{$logout}"; }, {$timeout} ); } EOJS; $template = $page->getTemplate(); $template->addHeaderLink("mootools-core.js"); $template->addHeaderText($js, "script", true); } }
/** * Add alerts to the page * @param I2CE_Page $page */ public function add_alerts($page) { if (!$page instanceof I2CE_Page) { return; } $config = I2CE::getConfig()->traverse("/modules/UserAlerts/display"); $user = I2CE_FormFactory::instance()->createContainer("user|" . $page->getUser()->username); $alerts = $user->getChildIds("user_alert"); $alert_count = count($alerts); if ($alert_count == 0) { return; } $pend_where = array('operator' => 'FIELD_LIMIT', 'field' => 'time_ack', 'style' => 'null'); $pending = $user->getChildIds("user_alert", array(), $pend_where); $pend_count = count($pending); $append_id = 'sysUser'; $config->setIfIsSet($append_id, "append_id"); $append_tag = 'li'; $config->setIfIsSet($append_tag, "append_tag"); $append_before = true; $config->setIfIsSet($append_before, "append_before"); $pending_style = 'alerts_pending'; $config->setIfIsSet($pending_style, "pending_style"); $default_style = 'alerts_seen'; $config->setIfIsSet($default_style, "default_style"); $template_file = 'user_alert_link.html'; $config->setIfIsSet($template_file, "append_file"); if ($pend_count > 0) { $style = $pending_style; } else { $style = $default_style; } $template = $page->getTemplate(); $alert = $template->appendFileById($template_file, $append_tag, $append_id, $append_before); $alert->setAttribute("class", $style); $template->setDisplayDataImmediate("alert_pending_count", $pend_count, $alert); $template->setDisplayDataImmediate("alert_total_count", $alert_count, $alert); }
static function get_department_programs() { $ff = I2CE_FormFactory::instance(); $pageObj = new I2CE_Page(); $username = $pageObj->getUser()->username; $user_info = iHRIS_PageFormLecturer::fetch_user_info($username); $dep_id = $user_info["department"]; $all_trng_prgrms = self::get_institution_programs(); foreach ($all_trng_prgrms as $prgrms) { $progObj = $ff->createContainer($prgrms); $progObj->populate(); if ($progObj->getField("department")->getDBValue() == $dep_id) { $trng_prgrms[] = $prgrms; } } return $trng_prgrms; }