| Current Path : /home/sunflowe/www2/j15/components/com_jce/editor/libraries/classes/extensions/ |
| Current File : /home/sunflowe/www2/j15/components/com_jce/editor/libraries/classes/extensions/aggregator.php |
<?php
/**
* @package JCE
* @copyright Copyright © 2009-2011 Ryan Demmer. All rights reserved.
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* JCE 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.
*/
defined('_JEXEC') or die('RESTRICTED');
class WFAggregatorExtension extends WFExtension {
/*
* @var varchar
*/
private $extensions = array();
/**
* Constructor activating the default information of the class
*
* @access protected
*/
public function __construct($config = array())
{
parent::__construct($config);
}
/**
* Returns a reference to a plugin object
*
* This method must be invoked as:
* <pre> $advlink =AdvLink::getInstance();</pre>
*
* @access public
* @return JCE The editor object.
* @since 1.5
*/
public function & getInstance($config = array())
{
static $instance;
if(!is_object($instance)) {
$instance = new WFAggregatorExtension($config);
}
return $instance;
}
public function getName()
{
return $this->get('name');
}
public function getTitle()
{
return $this->get('title');
}
public function display()
{
parent::display();
$document =WFDocument::getInstance();
// Load javascript
$document->addScript( array('extensions/aggregator'), 'libraries');
$aggregators =$this->getAggregators();
foreach($aggregators as $aggregator) {
$aggregator->display();
$params = $aggregator->getParams();
if(!empty($params)) {
$document->addScriptDeclaration('WFExtensions.Aggregator.setParams("' . $aggregator->getName() . '",' . json_encode($params) . ');');
}
}
}
public function & getAggregators()
{
static $aggregators;
if(!isset($aggregators)) {
$aggregators = array();
}
// get the aggregator format for this instance
$format = $this->get('format');
if(empty($aggregators[$format])) {
jimport('joomla.filesystem.folder');
// get a plugin instance
$plugin = WFEditorPlugin::getInstance();
$aggregators[$format] = array();
$path = WF_EDITOR_EXTENSIONS . DS . 'aggregator';
$files = JFolder::files($path, '\.php$', false, true);
foreach($files as $file) {
require_once ($file);
$name = basename($file, '.php');
$classname = 'WFAggregatorExtension_' . ucfirst($name);
// only load if enabled
if(class_exists($classname)) {
$aggregator = new $classname();
// check if enabled
if ($aggregator->isEnabled()) {
if($aggregator->get('format') == $format) {
$aggregator->set('name', $name);
$aggregator->set('title', 'WF_AGGREGATOR_' . strtoupper($name) . '_TITLE');
$aggregators[$format][] = $aggregator;
}
}
}
}
}
return $aggregators[$format];
}
/**
*
* @param object $player
* @return
*/
public function loadTemplate($name, $tpl ='')
{
$path = WF_EDITOR_EXTENSIONS . DS . 'aggregator' . DS . $name;
$output = '';
$file = 'default.php';
if($tpl) {
$file = 'default_' . $tpl . '.php';
}
if(file_exists($path . DS . 'tmpl' . DS . $file)) {
ob_start();
include $path . DS . 'tmpl' . DS . $file;
$output .= ob_get_contents();
ob_end_clean();
}
return $output;
}
}