| Server IP : 180.180.241.3 / Your IP : 216.73.216.216 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/AppServ/www/news/administrator/components/com_installer/models/ |
Upload File : |
<?php
/**
* @version $Id: components.php 14401 2010-01-26 14:10:00Z louis $
* @package Joomla
* @subpackage Menus
* @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' );
// Import library dependencies
require_once(dirname(__FILE__).DS.'extension.php');
/**
* Installer Components Model
*
* @package Joomla
* @subpackage Installer
* @since 1.5
*/
class InstallerModelComponents extends InstallerModel
{
/**
* Extension Type
* @var string
*/
var $_type = 'component';
/**
* Enable a component
*
* @static
* @return boolean True on success
* @since 1.0
*/
function enable($eid=array())
{
// Initialize variables
$result = false;
/*
* Ensure eid is an array of extension ids
* TODO: If it isn't an array do we want to set an error and fail?
*/
if (!is_array($eid)) {
$eid = array ($eid);
}
// Get a database connector
$db =& JFactory::getDBO();
// Get a table object for the extension type
$table = & JTable::getInstance($this->_type);
// Enable the extension in the table and store it in the database
foreach ($eid as $id)
{
$table->load($id);
$table->enabled = '1';
$result |= $table->store();
}
return $result;
}
/**
* Disable a component
*
* @return boolean True on success
* @since 1.5
*/
function disable($eid=array())
{
// Initialize variables
$result = false;
/*
* Ensure eid is an array of extension ids
* TODO: If it isn't an array do we want to set an error and fail?
*/
if (!is_array($eid)) {
$eid = array ($eid);
}
// Get a database connector
$db =& JFactory::getDBO();
// Get a table object for the extension type
$table = & JTable::getInstance($this->_type);
// Disable the extension in the table and store it in the database
foreach ($eid as $id)
{
$table->load($id);
$table->enabled = '0';
$result |= $table->store();
}
return $result;
}
function _loadItems()
{
global $mainframe, $option;
jimport('joomla.filesystem.folder');
/* Get a database connector */
$db =& JFactory::getDBO();
$query = 'SELECT *' .
' FROM #__components' .
' WHERE parent = 0' .
' ORDER BY iscore, name';
$db->setQuery($query);
$rows = $db->loadObjectList();
/* Get the component base directory */
$adminDir = JPATH_ADMINISTRATOR .DS. 'components';
$siteDir = JPATH_SITE .DS. 'components';
$numRows = count($rows);
for($i=0;$i < $numRows; $i++)
{
$row =& $rows[$i];
/* Get the component folder and list of xml files in folder */
$folder = $adminDir.DS.$row->option;
if (JFolder::exists($folder)) {
$xmlFilesInDir = JFolder::files($folder, '.xml$');
} else {
$folder = $siteDir.DS.$row->option;
if (JFolder::exists($folder)) {
$xmlFilesInDir = JFolder::files($folder, '.xml$');
} else {
$xmlFilesInDir = null;
}
}
if (count($xmlFilesInDir))
{
foreach ($xmlFilesInDir as $xmlfile)
{
if ($data = JApplicationHelper::parseXMLInstallFile($folder.DS.$xmlfile)) {
foreach($data as $key => $value) {
$row->$key = $value;
}
}
$row->jname = JString::strtolower(str_replace(" ", "_", $row->name));
}
}
}
$this->setState('pagination.total', $numRows);
// if the offset is greater than the total, then can the offset
if($this->_state->get('pagination.offset') > $this->_state->get('pagination.total')) {
$this->setState('pagination.offset',0);
}
if($this->_state->get('pagination.limit') > 0) {
$this->_items = array_slice( $rows, $this->_state->get('pagination.offset'), $this->_state->get('pagination.limit') );
} else {
$this->_items = $rows;
}
}
}