90 lines
2.5 KiB
PHP
90 lines
2.5 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* @version $Id: k2plugin.php 1964 2013-04-29 13:14:09Z lefteris.kavadas $
|
||
|
* @package K2
|
||
|
* @author JoomlaWorks http://www.joomlaworks.net
|
||
|
* @copyright Copyright (c) 2006 - 2013 JoomlaWorks Ltd. All rights reserved.
|
||
|
* @license GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
|
||
|
*/
|
||
|
|
||
|
// no direct access
|
||
|
defined('_JEXEC') or die ;
|
||
|
|
||
|
jimport('joomla.plugin.plugin');
|
||
|
|
||
|
JLoader::register('K2Parameter', JPATH_ADMINISTRATOR.DS.'components'.DS.'com_k2'.DS.'lib'.DS.'k2parameter.php');
|
||
|
|
||
|
class K2Plugin extends JPlugin
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* Below we list all available BACKEND events, to trigger K2 plugins and generate additional fields in the item, category and user forms.
|
||
|
*/
|
||
|
|
||
|
/* ------------ Functions to render plugin parameters in the backend - no need to change anything ------------ */
|
||
|
function onRenderAdminForm(&$item, $type, $tab = '')
|
||
|
{
|
||
|
|
||
|
$mainframe = JFactory::getApplication();
|
||
|
$manifest = (K2_JVERSION == '15') ? JPATH_SITE.DS.'plugins'.DS.'k2'.DS.$this->pluginName.'.xml' : JPATH_SITE.DS.'plugins'.DS.'k2'.DS.$this->pluginName.DS.$this->pluginName.'.xml';
|
||
|
if (!empty($tab))
|
||
|
{
|
||
|
$path = $type.'-'.$tab;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$path = $type;
|
||
|
}
|
||
|
if (!isset($item->plugins))
|
||
|
{
|
||
|
$item->plugins = NULL;
|
||
|
}
|
||
|
|
||
|
if (K2_JVERSION == '15')
|
||
|
{
|
||
|
|
||
|
$form = new K2Parameter($item->plugins, $manifest, $this->pluginName);
|
||
|
$fields = $form->render('plugins', $path);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
jimport('joomla.form.form');
|
||
|
$form = JForm::getInstance('plg_k2_'.$this->pluginName.'_'.$path, $manifest, array(), true, 'fields[@group="'.$path.'"]');
|
||
|
$values = array();
|
||
|
if ($item->plugins)
|
||
|
{
|
||
|
foreach (json_decode($item->plugins) as $name => $value)
|
||
|
{
|
||
|
$count = 1;
|
||
|
$values[str_replace($this->pluginName, '', $name, $count)] = $value;
|
||
|
}
|
||
|
$form->bind($values);
|
||
|
}
|
||
|
$fields = '';
|
||
|
foreach ($form->getFieldset() as $field)
|
||
|
{
|
||
|
$search = 'name="'.$field->name.'"';
|
||
|
$replace = 'name="plugins['.$this->pluginName.$field->name.']"';
|
||
|
$input = JString::str_ireplace($search, $replace, $field->__get('input'));
|
||
|
$fields .= $field->__get('label').' '.$input;
|
||
|
}
|
||
|
|
||
|
// Legacy code to maintain compatibillity with existing plugins that use params instead of JForm
|
||
|
if (empty($fields) && K2_JVERSION == '25')
|
||
|
{
|
||
|
$form = new K2Parameter($item->plugins, $manifest, $this->pluginName);
|
||
|
$fields = $form->render('plugins', $path);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
if ($fields)
|
||
|
{
|
||
|
$plugin = new stdClass;
|
||
|
$plugin->name = $this->pluginNameHumanReadable;
|
||
|
$plugin->fields = $fields;
|
||
|
return $plugin;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|