%PDF- %PDF-
| Direktori : /home1/lightco1/www/plugins/system/jsnframework/libraries/joomlashine/positions/ |
| Current File : //home1/lightco1/www/plugins/system/jsnframework/libraries/joomlashine/positions/model.php |
<?php
/**
* @version $Id$
* @package JSN_Framework
* @author JoomlaShine Team <support@joomlashine.com>
* @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* Websites: http://www.joomlashine.com
* Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* Model class of JSN Positions library.
*
* @package JSN_Framework
* @since 1.0.3
*/
class JSNPositionsModel extends JSNBaseModel
{
/** private variable **/
private $_template = '';
/** private variable **/
private $_document = '';
/**
* Constructor
*/
public function __construct()
{
$this->_template = JSNTemplateHelper::getInstance();
$this->_document = JFactory::getDocument();
}
/**
* Return global JSNTemplate object.
*
* @return object
*/
public static function _getInstance()
{
static $instances;
if ( ! isset($instances))
{
$instances = array();
}
if (empty($instances['JSNPositionsModel']))
{
$instance = new JSNPositionsModel;
$instances['JSNPositionsModel'] = $instance;
}
return $instances['JSNPositionsModel'];
}
/**
* Change format of HTML when render modules using base in joomla
*
* @return void
*/
public function renderModules()
{
$renderer = $this->_document->loadRenderer('module');
$positions = $this->_template->getTemplatePositions();
if ($positions != null)
{
/** if template using joomla modules load **/
foreach ($positions AS $position)
{
if ($this->_document->countModules($position->name))
{
$buffer = JSNHtmlHelper::openTag('div', array('class' => "jsn-element-container_inner"));
$buffer .= JSNHtmlHelper::openTag('div', array('class' => "jsn-position", 'id' => $position->name . '-jsnposition'));
foreach (JModuleHelper::getModules($position->name) AS $mod)
{
$buffer .= JSNHtmlHelper::openTag('div', array('class' => "poweradmin-module-item", 'id' => $mod->id . '-jsnposition-published', 'title' => $mod->title, 'showtitle' => $mod->showtitle))
. JSNHtmlHelper::openTag('div', array('id' => $mod->id . '-content', 'class' => 'jsnpw-module-content'))
. $renderer->render($mod, $position->params)
. JSNHtmlHelper::closeTag('div')
. JSNHtmlHelper::closeTag('div');
}
$buffer .= JSNHtmlHelper::closeTag('div');
$buffer .= JSNHtmlHelper::closeTag('div');
$this->_document->setBuffer($buffer, 'modules', $position->name);
}
}
}
else
{
/** if template not set load positions in index.php file **/
$positions = $this->_template->loadXMLPositions();
foreach ($positions AS $position)
{
if ($this->_document->countModules($position->name))
{
$buffer = JSNHtmlHelper::openTag('div', array('class' => "jsn-element-container_inner"));
$buffer .= JSNHtmlHelper::openTag('div', array('class' => "jsn-position", 'id' => $position->name . '-jsnposition'));
foreach (JModuleHelper::getModules($position) as $mod)
{
$buffer .= JSNHtmlHelper::openTag('div', array('class' => "poweradmin-module-item", 'id' => $mod->id . '-jsnposition-published', 'title' => $mod->title, 'showtitle' => $mod->showtitle))
. JSNHtmlHelper::openTag('div', array('id' => "moduleid-' . $mod->id . '-content"))
. $renderer->render($mod, $position->params)
. JSNHtmlHelper::closeTag('div')
. JSNHtmlHelper::closeTag('div');
}
$buffer .= JSNHtmlHelper::closeTag('div');
$buffer .= JSNHtmlHelper::closeTag('div');
$this->_document->setBuffer($buffer, 'modules', $position->name);
}
}
}
}
/**
* Only render positions and set data to joomla document.
*
* @return void
*/
public function renderEmptyModule()
{
$positions = $this->_template->getTemplatePositions();
if ($positions == null)
{
/** if template not set load positions in index.php file **/
@$positions = $this->_template->loadXMLPositions();
}
if (count($positions))
{
foreach ($positions AS $position)
{
if ($this->_document->countModules($position->name))
{
$buffer = JSNHtmlHelper::openTag('div', array('class' => "jsn-element-container_inner"));
$buffer .= JSNHtmlHelper::openTag('div', array('class' => "jsn-position", 'id' => $position->name . '-jsnposition'));
$buffer .= JSNHtmlHelper::openTag('p') . $position->name . JSNHtmlHelper::closeTag('p');
$buffer .= JSNHtmlHelper::closeTag('div');
$buffer .= JSNHtmlHelper::closeTag('div');
$this->_document->setBuffer($buffer, 'modules', $position->name);
}
}
}
}
/**
*
* Only render empty component
*/
public function renderEmptyComponent()
{
$component = $this->_document->getBuffer( 'component' );
$component_buffer = JSNHtmlHelper::openTag('div', array('class'=>"jsn-component-container", 'id'=>"jsnrender-component"))
.JSNHtmlHelper::openTag('p').$this->_document->getTitle().JSNHtmlHelper::closeTag('p')
.JSNHtmlHelper::closeTag('div');
$this->_document->setBuffer($component_buffer, 'component');
}
}