ShellBanner
System:Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686
Software:Apache. PHP/5.3.6-13ubuntu3.10
ID:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
Safe Mode:OFF
Open_Basedir:OFF
Freespace:24.87 GB of 70.42 GB (35.32%)
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

/ http/ yalagina/ administrator/ components/ com_modules/ models/ - drwxr-xr-x

Directory:
Viewing file:     modules.php (9.42 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 */

// No direct access.
defined('_JEXEC') or die;

jimport('joomla.application.component.modellist');

/**
 * Modules Component Module Model
 *
 * @package        Joomla.Administrator
 * @subpackage    com_modules
 * @since        1.5
 */
class ModulesModelModules extends JModelList
{
    
/**
     * Constructor.
     *
     * @param    array    An optional associative array of configuration settings.
     * @see        JController
     * @since    1.6
     */
    
public function __construct($config = array())
    {
        if (empty(
$config['filter_fields'])) {
            
$config['filter_fields'] = array(
                
'id''a.id',
                
'title''a.title',
                
'checked_out''a.checked_out',
                
'checked_out_time''a.checked_out_time',
                
'published''a.published',
                
'access''a.access''access_level',
                
'ordering''a.ordering',
                
'module''a.module',
                
'language''a.language''language_title',
                
'publish_up''a.publish_up',
                
'publish_down''a.publish_down',
                
'client_id''a.client_id',
                
'position''a.position',
                
'pages',
                
'name''e.name',
            );
        }

        
parent::__construct($config);
    }

    
/**
     * Method to auto-populate the model state.
     *
     * Note. Calling getState in this method will result in recursion.
     *
     * @since    1.6
     */
    
protected function populateState($ordering null$direction null)
    {
        
// Initialise variables.
        
$app JFactory::getApplication('administrator');

        
// Load the filter state.
        
$search $this->getUserStateFromRequest($this->context.'.filter.search''filter_search');
        
$this->setState('filter.search'$search);

        
$accessId $this->getUserStateFromRequest($this->context.'.filter.access''filter_access'null'int');
        
$this->setState('filter.access'$accessId);

        
$state $this->getUserStateFromRequest($this->context.'.filter.state''filter_state''''string');
        
$this->setState('filter.state'$state);

        
$position $this->getUserStateFromRequest($this->context.'.filter.position''filter_position''''string');
        
$this->setState('filter.position'$position);

        
$module $this->getUserStateFromRequest($this->context.'.filter.module''filter_module''''string');
        
$this->setState('filter.module'$module);

        
$clientId $this->getUserStateFromRequest($this->context.'.filter.client_id''filter_client_id'0'int'false);
        
$previousId $app->getUserState($this->context.'.filter.client_id_previous'null);
        if(
$previousId != $clientId || $previousId === null){
            
$this->getUserStateFromRequest($this->context.'.filter.client_id_previous''filter_client_id_previous'0'int'true);
            
$app->setUserState($this->context.'.filter.client_id_previous'$clientId);
        }
        
$this->setState('filter.client_id'$clientId);

        
$language $this->getUserStateFromRequest($this->context.'.filter.language''filter_language''');
        
$this->setState('filter.language'$language);

        
// Load the parameters.
        
$params JComponentHelper::getParams('com_modules');
        
$this->setState('params'$params);

        
// List state information.
        
parent::populateState('position''asc');
    }

    
/**
     * Method to get a store id based on model configuration state.
     *
     * This is necessary because the model is used by the component and
     * different modules that might need different sets of data or different
     * ordering requirements.
     *
     * @param    string    A prefix for the store id.
     *
     * @return    string    A store id.
     */
    
protected function getStoreId($id '')
    {
        
// Compile the store id.
        
$id    .= ':'.$this->getState('filter.search');
        
$id    .= ':'.$this->getState('filter.access');
        
$id    .= ':'.$this->getState('filter.state');
        
$id    .= ':'.$this->getState('filter.position');
        
$id    .= ':'.$this->getState('filter.module');
        
$id    .= ':'.$this->getState('filter.client_id');
        
$id    .= ':'.$this->getState('filter.language');

        return 
parent::getStoreId($id);
    }
    
/**
     * Returns an object list
     *
     * @param    string The query
     * @param    int Offset
     * @param    int The number of records
     * @return    array
     */
    
protected function _getList($query$limitstart=0$limit=0)
    {
        
$ordering $this->getState('list.ordering''ordering');
        if (
in_array($ordering, array('pages''name'))) {
            
$this->_db->setQuery($query);
            
$result $this->_db->loadObjectList();
            
$this->translate($result);
            
$lang JFactory::getLanguage();
            
JArrayHelper::sortObjects($result$ordering$this->getState('list.direction') == 'desc' ? -1true$lang->getLocale());
            
$total count($result);
            
$this->cache[$this->getStoreId('getTotal')] = $total;
            if (
$total $limitstart) {
                
$limitstart 0;
                
$this->setState('list.start'0);
            }
            return 
array_slice($result$limitstart$limit $limit null);
        }
        else {
            if (
$ordering == 'ordering') {
                
$query->order('a.position ASC');
                
$ordering 'a.ordering';
            }
            if (
$ordering == 'language_title') {
                
$ordering 'l.title';
            }
            
$query->order($this->_db->quoteName($ordering) . ' ' $this->getState('list.direction'));
            if (
$ordering == 'position') {
                
$query->order('a.ordering ASC');
            }
            
$result parent::_getList($query$limitstart$limit);
            
$this->translate($result);
            return 
$result;
        }
    }

    
/**
     * Translate a list of objects
     *
     * @param    array The array of objects
     * @return    array The array of translated objects
     */
    
protected function translate(&$items)
    {
        
$lang JFactory::getLanguage();
        
$client $this->getState('filter.client_id') ? 'administrator' 'site';
        foreach(
$items as $item) {
            
$extension $item->module;
            
$source constant('JPATH_' strtoupper($client)) . "/modules/$extension";
                
$lang->load("$extension.sys"constant('JPATH_' strtoupper($client)), nullfalsefalse)
            ||    
$lang->load("$extension.sys"$sourcenullfalsefalse)
            ||    
$lang->load("$extension.sys"constant('JPATH_' strtoupper($client)), $lang->getDefault(), falsefalse)
            ||    
$lang->load("$extension.sys"$source$lang->getDefault(), falsefalse);
            
$item->name JText::_($item->name);
            if (
is_null($item->pages)) {
                
$item->pages JText::_('JNONE');
            } elseif (
$item->pages 0) {
                
$item->pages JText::_('COM_MODULES_ASSIGNED_VARIES_EXCEPT');
            } elseif (
$item->pages 0) {
                
$item->pages JText::_('COM_MODULES_ASSIGNED_VARIES_ONLY');
            } else {
                
$item->pages JText::_('JALL');
            }
        }
    }

    
/**
     * Build an SQL query to load the list data.
     *
     * @return    JDatabaseQuery
     */
    
protected function getListQuery()
    {
        
// Create a new query object.
        
$db        $this->getDbo();
        
$query    $db->getQuery(true);

        
// Select the required fields from the table.
        
$query->select(
            
$this->getState(
                
'list.select',
                
'a.id, a.title, a.note, a.position, a.module, a.language,' .
                
'a.checked_out, a.checked_out_time, a.published+2*(e.enabled-1) as published, a.access, a.ordering, a.publish_up, a.publish_down'
            
)
        );
        
$query->from($db->quoteName('#__modules').' AS a');

        
// Join over the language
        
$query->select('l.title AS language_title');
        
$query->join('LEFT'$db->quoteName('#__languages').' AS l ON l.lang_code = a.language');

        
// Join over the users for the checked out user.
        
$query->select('uc.name AS editor');
        
$query->join('LEFT''#__users AS uc ON uc.id=a.checked_out');

        
// Join over the asset groups.
        
$query->select('ag.title AS access_level');
        
$query->join('LEFT''#__viewlevels AS ag ON ag.id = a.access');

        
// Join over the module menus
        
$query->select('MIN(mm.menuid) AS pages');
        
$query->join('LEFT''#__modules_menu AS mm ON mm.moduleid = a.id');

        
// Join over the extensions
        
$query->select('e.name AS name');
        
$query->join('LEFT''#__extensions AS e ON e.element = a.module');
        
$query->group('a.id, a.title, a.note, a.position, a.module, a.language,a.checked_out,'.
                        
'a.checked_out_time, a.published, a.access, a.ordering,l.title, uc.name, ag.title, e.name,'.
                        
'l.lang_code, uc.id, ag.id, mm.moduleid, e.element, a.publish_up, a.publish_down,e.enabled');

        
// Filter by access level.
        
if ($access $this->getState('filter.access')) {
            
$query->where('a.access = '.(int) $access);
        }

        
// Filter by published state
        
$state $this->getState('filter.state');
        if (
is_numeric($state)) {
            
$query->where('a.published = '.(int) $state);
        }
        elseif (
$state === '') {
            
$query->where('(a.published IN (0, 1))');
        }

        
// Filter by position
        
$position $this->getState('filter.position');
        if (
$position && $position != 'none') {
            
$query->where('a.position = '.$db->Quote($position));
        }

        elseif (
$position == 'none') {
            
$query->where('a.position = '.$db->Quote(''));
        }

        
// Filter by module
        
$module $this->getState('filter.module');
        if (
$module) {
            
$query->where('a.module = '.$db->Quote($module));
        }

        
// Filter by client.
        
$clientId $this->getState('filter.client_id');
        if (
is_numeric($clientId)) {
            
$query->where('a.client_id = ' . (int) $clientId ' AND e.client_id ='. (int) $clientId);
        }

        
// Filter by search in title
        
$search $this->getState('filter.search');
        if (!empty(
$search))
        {
            if (
stripos($search'id:') === 0) {
                
$query->where('a.id = '.(int) substr($search3));
            }
            else
            {
                
$search $db->Quote('%'.$db->escape($searchtrue).'%');
                
$query->where('('.'a.title LIKE '.$search.' OR a.note LIKE '.$search.')');
            }
        }

        
// Filter on the language.
        
if ($language $this->getState('filter.language')) {
            
$query->where('a.language = ' $db->quote($language));
        }

        
//echo nl2br(str_replace('#__','jos_',$query));
        
return $query;
    }
}
Command:
Quick Commands:
Upload:
[OK] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [OK]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.2143 seconds