%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 14.207.165.8 / Your IP : 216.73.216.26 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/var/www/html/old/administrator/components/com_jckman/event/ |
Upload File : |
<?php
/*------------------------------------------------------------------------
# Copyright (C) 2005-2012 WebxSolution Ltd. All Rights Reserved.
# @license - GPLv2.0
# Author: WebxSolution Ltd
# Websites: http://www.webxsolution.com
# Terms of Use: An extension that is derived from the JoomlaCK editor will only be allowed under the following conditions: http://joomlackeditor.com/terms-of-use
# ------------------------------------------------------------------------*/
defined( '_JEXEC' ) or die;
defined('JPATH_BASE') or die();
jimport( 'joomla.event.event' );
class JCKListControllerListener extends JEvent
{
protected $canDo = false;
protected $app = false;
function __construct( &$subject )
{
parent::__construct( $subject );
$this->canDo = JCKHelper::getActions();
$this->app = JFactory::getApplication();
}
/**
* A JParameter object holding the parameters for the plugin
*
* @var A JParameter object
* @access public
* @since 1.5
*/
function onSave($plugin,$pluginToolbarnames)
{
if( !$this->canDo->get('core.edit') )
{
$this->app->redirect( JRoute::_( 'index.php?option=com_jckman&view=list', false ), JText::_( 'COM_JCKMAN_PLUGIN_PERM_NO_SAVE' ), 'error' );
return false;
}
require_once(CKEDITOR_LIBRARY.DS . 'toolbar.php');
$CKfolder = CKEDITOR_LIBRARY.DS . 'toolbar';
jckimport('helper');
$toolbarnames = JCKHelper::getEditorToolbars();
if(!empty( $toolbarnames))
{
foreach($toolbarnames as $toolbarname)
{
$tmpfilename = $CKfolder.DS.$toolbarname.'.php';
require($tmpfilename);
$classname = 'JCK'. ucfirst($toolbarname);
$toolbar = new $classname();
if(!$plugin->title)
{
//publish or unpblish plugin
$this->onPublish(array($plugin->id),$plugin->published);
return;
}
$pluginTitle = str_replace(' ','',$plugin->title);
$pluginTitle = $pluginTitle;
//fix toolbar values or they will get wiped out
foreach (get_object_vars( $toolbar ) as $k => $v)
{
if(is_null($v))
{
$toolbar->$k = '';
}
if($k[0] == '_')
$toolbar->$k = NULL;
}
$toolbar->$pluginTitle = NULL;
if(!empty($pluginToolbarnames) && in_array($toolbarname,$pluginToolbarnames))
$toolbar->$pluginTitle = '';
$toolbarConfig = new JRegistry('toolbar');
$toolbarConfig->loadObject($toolbar);
// Get the config registry in PHP class format and write it to file
if (!JFile::write($tmpfilename, $toolbarConfig->toString('PHP', array('class' => $classname . ' extends JCKToolbar')))) {
JCKHelper::error(JText::sprintf('COM_JCK_PLUGIN_LIST_FAILED_TO_MODIFY_TOOLBAR',$pname,$classname));
}
}
//layout stuff
$cids = array(0);
$db = JFactory::getDBO();
if(!empty($pluginToolbarnames))
{
$values = array();
foreach($pluginToolbarnames as $plugintoolbarname)
{
$query = 'SELECT id'
. ' FROM #__jcktoolbars'
. ' WHERE name = "'. $plugintoolbarname .'"';
$db->setQuery( $query );
$toolbarid = $db->loadResult();
if($toolbarid)
{
$rowDetail = JCKHelper::getNextLayoutRow($toolbarid);
$values[] = '('.$toolbarid.','. $plugin->id.','.$rowDetail->rowid.','.$rowDetail->rowordering.',1)';
$cids[] = $toolbarid;
}
}
}
//First remove plugin from every layout that has not been selected
$query = 'DELETE FROM #__jcktoolbarplugins'
. ' WHERE pluginid ='. $plugin->id
. ' AND toolbarid NOT IN (' . implode(',',$cids).')';
$db->setQuery( $query );
if (!$db->query()) {
JCKHelper::error( $db->getErrorMsg() );
}
//Now add plugin to selected layouts
if(!empty($values))
{
$query = 'INSERT INTO #__jcktoolbarplugins(toolbarid,pluginid,row,ordering,state) VALUES ' . implode(',',$values)
.' ON DUPLICATE KEY UPDATE toolbarid = VALUES(toolbarid),pluginid = VALUES(pluginid)';
$db->setQuery( $query );
if(!$db->query())
{
JCKHelper::error( $db->getErrorMsg() );
}
}
}
//publish or unpblish plugin
$this->onPublish(array($plugin->id),$plugin->published);
}
function onPublish($cid,$value)
{
if( !$this->canDo->get('core.edit.state') )
{
$this->app->redirect( JRoute::_( 'index.php?option=com_jckman&view=list', false ), JText::_( 'COM_JCKMAN_PLUGIN_PERM_NO_PUB' ), 'error' );
return false;
}
$db = JFactory::getDBO();
$user = JFactory::getUser();
$cids = implode( ',', $cid );
$query = 'SELECT name FROM #__jckplugins'
. ' WHERE id IN ( '.$cids.' )'
. ' AND ( checked_out = 0 OR ( checked_out = '.(int) $user->get('id').' ))'
;
$db->setQuery( $query );
$pluginnames = $db->loadColumn();
if (!$pluginnames) {
JCKHelper::error( $db->getErrorMsg() );
}
jckimport('helper');
$config = JCKHelper::getEditorPluginConfig();
foreach($pluginnames as $pname)
$config->set($pname,$value);
$cfgFile = CKEDITOR_LIBRARY.DS . 'plugins' . DS . 'toolbarplugins.php';
// Get the toolbar registry in PHP class format and write it to file
$buffer = $config->toString('PHP', array('class' => 'JCKToolbarPlugins extends JCKPlugins'));
if (!JFile::write($cfgFile,$buffer)) {
$modify = ($value ? 'publish ' : 'unpublish ');
JCKHelper::error(JText::sprintf('COM_JCK_PLUGIN_LIST_FAILED_TO_PUBLISH_UNPUBLISH_PLUGINS',$modify));
}
}
function onApply($plugin,$pluginToolbarnames)
{
if( !$this->canDo->get('core.edit') )
{
$this->app->redirect( JRoute::_( 'index.php?option=com_jckman&view=list', false ), JText::_( 'COM_JCKMAN_PLUGIN_PERM_NO_SAVE' ), 'error' );
return false;
}
$this->onSave($plugin,$pluginToolbarnames);
}
function onUnpublish($cid,$value)
{
if( !$this->canDo->get('core.edit.state') )
{
$this->app->redirect( JRoute::_( 'index.php?option=com_jckman&view=list', false ), JText::_( 'COM_JCKMAN_PLUGIN_PERM_NO_UNPUB' ), 'error' );
return false;
}
$this->onPublish($cid,$value);
}
}