Ejemplo n.º 1
0
    /**
     * 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);
        }
    }
Ejemplo n.º 2
0
 /**
  * Th constructor
  * @param I2CE_Page $page
  * @param string $action.  What action to perform for this form browser.  Valid options are 'showForm', 'editForm' and 'saveForm'
  * @param array $options.  An associatve array.  The following keys are recognized:
  * 'FBPrefix' => The prefix of all id's related to the formBrowser.  If not set 'formBrowser' is used.
  * (This enables having ajax functionality for
  * multiple formBrowsers on the same page).
  */
 public function __construct($page, $action = 'showForm', $options)
 {
     if (!array_key_exists('FBPrefix', $options) || $options['FBPrefix'] === null) {
         $options['FBPrefix'] = "formBrowser";
     }
     $this->page = $page;
     $this->template = $page->getTemplate();
     $this->formBrowserPrefix = $options['FBPrefix'];
     $this->action = $action;
 }
 /**
  * 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);
 }