git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
171 lines
4.1 KiB
PHP
171 lines
4.1 KiB
PHP
<?php
|
|
/**
|
|
* @version $Id: module.php 14401 2010-01-26 14:10:00Z louis $
|
|
* @package Joomla
|
|
* @subpackage Modules
|
|
* @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.model' );
|
|
|
|
/**
|
|
* @package Joomla
|
|
* @subpackage Modules
|
|
*/
|
|
class ModulesModelModule extends JModel
|
|
{
|
|
var $_xml;
|
|
|
|
function &getModule()
|
|
{
|
|
static $instance;
|
|
|
|
if (!$instance)
|
|
{
|
|
$instance = $this->getTable( 'Module', 'JTable' );
|
|
if ($id = $this->getState( 'id' )) {
|
|
$instance->load( (int) $id );
|
|
}
|
|
}
|
|
return $instance;
|
|
}
|
|
|
|
function &_getXML()
|
|
{
|
|
if (!$this->_xml)
|
|
{
|
|
$clientId = $this->getState( 'clientId', 0 );
|
|
$path = ($clientId == 1) ? 'mod1_xml' : 'mod0_xml';
|
|
$module = &$this->getModule();
|
|
|
|
if ($module->module == 'custom') {
|
|
$xmlpath = JApplicationHelper::getPath( $path, 'mod_custom' );
|
|
} else {
|
|
$xmlpath = JApplicationHelper::getPath( $path, $module->module );
|
|
}
|
|
|
|
if (file_exists($xmlpath))
|
|
{
|
|
$xml =& JFactory::getXMLParser('Simple');
|
|
if ($xml->loadFile($xmlpath)) {
|
|
$this->_xml = &$xml;
|
|
}
|
|
}
|
|
}
|
|
return $this->_xml;
|
|
}
|
|
|
|
function &getParams()
|
|
{
|
|
// Get the state parameters
|
|
$module =& $this->getModule();
|
|
$params = new JParameter($module->params);
|
|
|
|
if ($xml =& $this->_getXML())
|
|
{
|
|
if ($ps = & $xml->document->params) {
|
|
foreach ($ps as $p)
|
|
{
|
|
$params->setXML( $p );
|
|
}
|
|
}
|
|
}
|
|
return $params;
|
|
}
|
|
|
|
function getPositions()
|
|
{
|
|
jimport('joomla.filesystem.folder');
|
|
|
|
$client =& JApplicationHelper::getClientInfo($this->getState('clientId'));
|
|
if ($client === false) {
|
|
return false;
|
|
}
|
|
|
|
//Get the database object
|
|
$db =& JFactory::getDBO();
|
|
|
|
// template assignment filter
|
|
$query = 'SELECT DISTINCT(template) AS text, template AS value'.
|
|
' FROM #__templates_menu' .
|
|
' WHERE client_id = '.(int) $client->id;
|
|
$db->setQuery( $query );
|
|
$templates = $db->loadObjectList();
|
|
|
|
// Get a list of all module positions as set in the database
|
|
$query = 'SELECT DISTINCT(position)'.
|
|
' FROM #__modules' .
|
|
' WHERE client_id = '.(int) $client->id;
|
|
$db->setQuery( $query );
|
|
$positions = $db->loadResultArray();
|
|
$positions = (is_array($positions)) ? $positions : array();
|
|
|
|
// Get a list of all template xml files for a given application
|
|
|
|
// Get the xml parser first
|
|
for ($i = 0, $n = count($templates); $i < $n; $i++ )
|
|
{
|
|
$path = $client->path.DS.'templates'.DS.$templates[$i]->value;
|
|
|
|
$xml =& JFactory::getXMLParser('Simple');
|
|
if ($xml->loadFile($path.DS.'templateDetails.xml'))
|
|
{
|
|
$p =& $xml->document->getElementByPath('positions');
|
|
if (is_a($p, 'JSimpleXMLElement') && count($p->children()))
|
|
{
|
|
foreach ($p->children() as $child)
|
|
{
|
|
if (!in_array($child->data(), $positions)) {
|
|
$positions[] = $child->data();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(defined('_JLEGACY') && _JLEGACY == '1.0')
|
|
{
|
|
$positions[] = 'left';
|
|
$positions[] = 'right';
|
|
$positions[] = 'top';
|
|
$positions[] = 'bottom';
|
|
$positions[] = 'inset';
|
|
$positions[] = 'banner';
|
|
$positions[] = 'header';
|
|
$positions[] = 'footer';
|
|
$positions[] = 'newsflash';
|
|
$positions[] = 'legals';
|
|
$positions[] = 'pathway';
|
|
$positions[] = 'breadcrumb';
|
|
$positions[] = 'user1';
|
|
$positions[] = 'user2';
|
|
$positions[] = 'user3';
|
|
$positions[] = 'user4';
|
|
$positions[] = 'user5';
|
|
$positions[] = 'user6';
|
|
$positions[] = 'user7';
|
|
$positions[] = 'user8';
|
|
$positions[] = 'user9';
|
|
$positions[] = 'advert1';
|
|
$positions[] = 'advert2';
|
|
$positions[] = 'advert3';
|
|
$positions[] = 'debug';
|
|
$positions[] = 'syndicate';
|
|
}
|
|
|
|
$positions = array_unique($positions);
|
|
sort($positions);
|
|
|
|
return $positions;
|
|
}
|
|
}
|