?
Path : /home/admin/public_html/old/board/administrator/includes/ |
Current File : /home/admin/public_html/old/board/administrator/includes/application.php |
<?php /** * @version $Id: application.php 14401 2010-01-26 14:10:00Z louis $ * @package Joomla * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); jimport('joomla.application.component.helper'); /** * Joomla! Application class * * Provide many supporting API functions * * @package Joomla * @final */ class JAdministrator extends JApplication { /** * Class constructor * * @access protected * @param array An optional associative array of configuration settings. * Recognized key values include 'clientId' (this list is not meant to be comprehensive). */ function __construct($config = array()) { $config['clientId'] = 1; parent::__construct($config); //Set the root in the URI based on the application name JURI::root(null, str_replace('/'.$this->getName(), '', JURI::base(true))); } /** * Initialise the application. * * @access public * @param array An optional associative array of configuration settings. */ function initialise($options = array()) { // if a language was specified it has priority // otherwise use user or default language settings if (empty($options['language'])) { $user = & JFactory::getUser(); $lang = $user->getParam( 'admin_language' ); // Make sure that the user's language exists if ( $lang && JLanguage::exists($lang) ) { $options['language'] = $lang; } else { $params = JComponentHelper::getParams('com_languages'); $client =& JApplicationHelper::getClientInfo($this->getClientId()); $options['language'] = $params->get($client->name, 'en-GB'); } } // One last check to make sure we have something if ( ! JLanguage::exists($options['language']) ) { $options['language'] = 'en-GB'; } parent::initialise($options); } /** * Route the application * * @access public */ function route() { $uri = JURI::getInstance(); if($this->getCfg('force_ssl') >= 1 && strtolower($uri->getScheme()) != 'https') { //forward to https $uri->setScheme('https'); $this->redirect($uri->toString()); } } /** * Return a reference to the JRouter object. * * @access public * @return JRouter. * @since 1.5 */ function &getRouter() { $router =& parent::getRouter('administrator'); return $router; } /** * Dispatch the application * * @access public */ function dispatch($component) { $document =& JFactory::getDocument(); $user =& JFactory::getUser(); switch($document->getType()) { case 'html' : { $document->setMetaData( 'keywords', $this->getCfg('MetaKeys') ); if ( $user->get('id') ) { $document->addScript( JURI::root(true).'/includes/js/joomla.javascript.js'); } JHTML::_('behavior.mootools'); } break; default : break; } $document->setTitle( htmlspecialchars_decode($this->getCfg('sitename' )). ' - ' .JText::_( 'Administration' )); $document->setDescription( $this->getCfg('MetaDesc') ); $contents = JComponentHelper::renderComponent($component); $document->setBuffer($contents, 'component'); } /** * Display the application. * * @access public */ function render() { $component = JRequest::getCmd('option'); $template = $this->getTemplate(); $file = JRequest::getCmd('tmpl', 'index'); if($component == 'com_login') { $file = 'login'; } $params = array( 'template' => $template, 'file' => $file.'.php', 'directory' => JPATH_THEMES ); $document =& JFactory::getDocument(); $data = $document->render($this->getCfg('caching'), $params ); JResponse::setBody($data); } /** * Login authentication function * * @param array Array( 'username' => string, 'password' => string ) * @param array Array( 'remember' => boolean ) * @access public * @see JApplication::login */ function login($credentials, $options = array()) { //The minimum group $options['group'] = 'Public Backend'; //Make sure users are not autoregistered $options['autoregister'] = false; //Set the application login entry point if(!array_key_exists('entry_url', $options)) { $options['entry_url'] = JURI::base().'index.php?option=com_user&task=login'; } $result = parent::login($credentials, $options); if(!JError::isError($result)) { $lang = JRequest::getCmd('lang'); $lang = preg_replace( '/[^A-Z-]/i', '', $lang ); $this->setUserState( 'application.lang', $lang ); JAdministrator::purgeMessages(); } return $result; } /** * Get the template * * @return string The template name * @since 1.0 */ function getTemplate() { static $template; if (!isset($template)) { // Load the template name from the database $db =& JFactory::getDBO(); $query = 'SELECT template' . ' FROM #__templates_menu' . ' WHERE client_id = 1' . ' AND menuid = 0' ; $db->setQuery( $query ); $template = $db->loadResult(); $template = JFilterInput::clean($template, 'cmd'); if (!file_exists(JPATH_THEMES.DS.$template.DS.'index.php')) { $template = 'khepri'; } } return $template; } /** * Purge the jos_messages table of old messages * * static method * @since 1.5 */ function purgeMessages() { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $userid = $user->get('id'); $query = 'SELECT *' . ' FROM #__messages_cfg' . ' WHERE user_id = ' . (int) $userid . ' AND cfg_name = "auto_purge"' ; $db->setQuery( $query ); $config = $db->loadObject( ); // check if auto_purge value set if (is_object( $config ) and $config->cfg_name == 'auto_purge' ) { $purge = $config->cfg_value; } else { // if no value set, default is 7 days $purge = 7; } // calculation of past date // if purge value is not 0, then allow purging of old messages if ($purge > 0) { // purge old messages at day set in message configuration $past =& JFactory::getDate(time() - $purge * 86400); $pastStamp = $past->toMySQL(); $query = 'DELETE FROM #__messages' . ' WHERE date_time < ' . $db->Quote( $pastStamp ) . ' AND user_id_to = ' . (int) $userid ; $db->setQuery( $query ); $db->query(); } } /** * Deprecated, use JURI::root() instead. * * @since 1.5 * @deprecated As of version 1.5 * @see JURI::root() */ function getSiteURL() { return JURI::root(); } }