?
Path : /home/admin/public_html/old/board/administrator/components/com_installer/models/ |
Current File : /home/admin/public_html/old/board/administrator/components/com_installer/models/components.php |
<?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; } } }