%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home1/lightco1/luminero.com.au/plugins/editors-xtd/pagebuilder/
Upload File :
Create Path :
Current File : //home1/lightco1/luminero.com.au/plugins/editors-xtd/pagebuilder/pagebuilder.php

<?php
/**
 * @version    $Id$
 * @package    JSN_PageBuilder
 * @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') || die('Restricted access');

include_once(JPATH_ROOT . '/administrator/components/com_pagebuilder/defines.pagebuilder.php');
include_once(JSNPB_ADMIN_PATH . 'helpers/shortcode.php');
include_once(JPATH_ROOT . '/administrator/components/com_pagebuilder/helpers/extensions.php');
include_once(JPATH_ROOT . '/administrator/components/com_pagebuilder/helpers/pagebuilder.php');
global $id, $option, $conf, $framework, $supported_list, $params, $random_id, $contentStatus;
array(
	$id = JRequest::getVar('id'),
	$option = JRequest::getVar('option'),
	$db = JFactory::getDbo(),
	$framework = JTable::getInstance('Extension'),
	$conf = JFactory::getConfig(),
	$supported_list = array('com_content', 'com_modules', 'com_k2'),
	$params = JSNConfigHelper::get('com_pagebuilder'),
	$random_id = JSNPagebuilderHelpersShortcode::generateRandomString()
);


/**
 * Plugin button for JSN Pagebuilder
 *
 * @package  JSN_PageBuilder
 * @since    1.0.0
 */
class plgButtonPageBuilder extends JPlugin
{
	/**
	 * Constructor
	 *
	 * @access      protected
	 *
	 * @param       object $subject The object to observe
	 * @param       array  $config  An array that holds the plugin configuration
	 *
	 * @since       1.5
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);
		$this->loadLanguage();
	}

	/**
	 * Display the button
	 *
	 * @return
	 */
	function onDisplay($name)
	{
		$app       = JFactory::getApplication();
		if ($app->isSite())
		{
			return;
		}
		
		include_once(JPATH_ROOT . '/administrator/components/com_pagebuilder/helpers/articles.php');
		$listId  = JSNPagebuilderHelpersArticles::getListArticleUedPagebuilderFromPlugin();
		$pbTotal = JSNPagebuilderHelpersArticles::getCountArticleUsedPageBuilderFromPlugin();
		JSNPagebuilderHelpersArticles::updateArticleUsedPageBuilderToPlugin();
		//Check if JoomlaShine extension framework is enabled?
		global $id, $option, $framework, $conf, $supported_list, $params, $random_id;
		// Check if JoomlaShine extension framework is enabled?
		
		$framework = JTable::getInstance('Extension');
		$framework->load(
			array(
				'element' => 'jsnframework',
				'type'    => 'plugin',
				'folder'  => 'system'
			)
		);
		$isInstalledPbExtension = false;
		$option                 = JRequest::getVar('option');

		$com_advancedmodules = JSNPagebuilderHelpersPagebuilder::checkComponentEnabled('com_advancedmodules') ? array('com_advancedmodules') : '';
		$flexiContent = JSNPagebuilderHelpersPagebuilder::checkComponentEnabled('com_flexicontent') ? array('com_flexicontent') : '';

		$supported_list = array('com_content', 'com_modules');
		if ($com_advancedmodules != '')
		{
			$supported_list = array_merge($supported_list, $com_advancedmodules );
		}
		if ( $flexiContent != '')
		{
			$supported_list = array_merge( $supported_list, $flexiContent);
		}

		if (isset($params))
		{
			if ($params->extension_support != '')
			{
				$supported_list = json_decode($params->extension_support);
//				$supported_list = array_merge(array_unique($supported_list), $supported_list_in_params);
			}
		}

		$installedPbExtensions = JSNPagebuilderHelpersExtensions::getPbExtensions();

		if (count($installedPbExtensions))
		{
			foreach ($installedPbExtensions as $installedPbExtension)
			{
				if ($option == "com_" . $installedPbExtension->element)
				{
					if (!$installedPbExtension->enabled)
					{
						$app->enqueueMessage(sprintf('Please enable the %s plugin before using. How to enable it, click <a href="%s" target="_blank">here</a>', 'JSN PageBuilder ' . strtoupper($installedPbExtension->element) . ' element', 'index.php?option=com_pagebuilder&view=configuration&s=maintainence&g=extensions'), 'warning');

						return;
					}
					else
					{
						$isInstalledPbExtension = true;
					}

					break;
				}
			}
		}

		if ($isInstalledPbExtension)
		{
			if (!in_array($option, $supported_list))
			{
				$app->enqueueMessage(sprintf('Please enable the JSN PageBuilder %s Extention Support before using. How to enable it, click <a href="%s" target="_blank">here</a>', strtoupper($installedPbExtension->element), 'index.php?option=com_pagebuilder&view=configuration&s=configuration&g=msgs'), 'warning');

				return;
			}
		}


		if ($framework->extension_id && in_array($option, $supported_list))
		{
			// Get PageBuilder configuration

			if (!in_array($option, $supported_list))
			{
				$isInstalled = JSNPagebuilderHelpersExtensions::checkInstalledPlugin(str_replace('com_', '', $option));
				if (!$isInstalled['isInstalled'])
				{
					return;
				}
			}
			// Check if it's enabled or not
			$isEnabled = $params->get('enable_pagebuilder', 1);
			if ($isEnabled)
			{
				$conf   = JFactory::getConfig();
				$editor = $conf->get('editor');
				
				JSNHtmlAsset::addInlineScript("
					var token = '".JSession::getFormToken()."';
					var save_button_title = '".JText::_('JSN_PAGEBUILDER_SAVE_BUTTON_TITLE')."';
					var cancel_button_title = '".JText::_('JSN_PAGEBUILDER_CANCEL_BUTTON_TITLE')."';
					var close_button_title = '".JText::_('JSN_PAGEBUILDER_CLOSE_BUTTON_TITLE')."';
				");
				
				// Inlcude the entry js file.
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/js/joomlashine.noconflict.js');
				JSNHtmlAsset::addScript(JSNPB_PLG_SYSTEM_ASSETS_URL . '3rd-party/jquery-ui/js/jquery-ui-1.10.3.custom.js');
				JSNHtmlAsset::addScript(JSNPB_PLG_SYSTEM_ASSETS_URL . '3rd-party/jquery-livequery/jquery.livequery.min.js');
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/js/builder-layout.js');
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/joomlashine/js/jsn-modal.js');
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/js/elements-lang.js');
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/js/jquery.alphanumeric/jquery.alphanumeric.js');
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/js/shortcodesetting/settings-handler.js');
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/js/handle.js');

				// Include supoported editor script
				switch ($editor)
				{
					case 'codemirror':
						JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/codemirror.js');
						break;
					case 'tinymce':
						JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/tiny-mce.js');
						break;
					case 'jce':
						JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/jce.js');
						break;
					case 'jckeditor':
						JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/jckeditor.js');
						break;
					case 'ckeditor':
						JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/ckeditor.js');
						break;
					case 'artofeditor':
						JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/artofeditor.js');
						break;
                    case 'arkeditor':
                        JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/arkeditor.js');
                        break;
					default:
						JSNHtmlAsset::addScript(JURI::root(true) . '/plugins/editors-xtd/pagebuilder/assets/js/supported-editor/default.js');
						break;
				}

				// fix tinymce J35
				$JVersion 	= new JVersion;
				$JVersion 	= $JVersion->getShortVersion();
				
				if (version_compare($JVersion, '3.5', '>='))
				{
					// fix tinymce J35
					if ($name == 'tinymce')
					{
						if ($option == 'com_modules' || $option == 'com_advancedmodules' )
						{
							$name = 'jform_content';
						}
						elseif ($option == 'com_content')
						{
							$name = 'jform_articletext';
						}
						elseif ($option == 'com_flexicontent')
						{
							$name = 'jform_text';
						}						
						elseif ($option == 'com_k2')
						{
							$name = 'text';
						}
					}
				}
				// Generate random string to assign to switcher button
				$random_id = JSNPagebuilderHelpersShortcode::generateRandomString();
				JSNHtmlAsset::addScript(JSNPB_ADMIN_URL . '/assets/js/entry.js');
				$js = "
					var token = '".JSession::getFormToken()."';
					var Pb_Ajax	= {};

					var JSNPbParams = {pbstrings:{}};
					JSNPbParams.rootUrl = '" . JUri::root() . "';
					JSNPbParams.pbstrings.COPY = '" . JText::_('copy') . "';
					JSNPbParams.pbstrings.EMPTY = '" . JText::_('(Untitled)') . "';
					JSNPbParams.pbstrings.ALERT_DELETE_ROW = '" . JText::_('Are you sure you want to delete the whole row including all elements it contains?') . "';
					JSNPbParams.pbstrings.ALERT_DELETE_COLUMN = '" . JText::_('Are you sure you want to delete the whole column including all elements it contains?') . "';
					JSNPbParams.pbstrings.ALERT_DELETE_ELEMENT = '" . JText::_('Are you sure you want to delete the element?') . "';
					var pb;
					var pbContentStatus_$random_id	= 'normal';

					// Set global pagebuilder instance
					var jsnpb_$random_id;

					// Method to switch between Joomla editor and PageBuilder
					function switchPagebuilder(id, status){
						(function ($){
							if (status == 'on') {
								jsnpb_$random_id	= new $.JSNPageBuilder(id);
								pbContentStatus_$random_id  = 'pb';
							}else{
								jsnpb_$random_id.transformToSource();
								pbContentStatus_$random_id  = 'normal';
							}
						})(JoomlaShine.jQuery);
					}

					// Entry button group structure which will be appended to the aditor
					var pbEntryButtons	= '<div class=\"jsn-form-bar pb-switcher-group\">'
							+ '<div id=\"pb-editor-switcher\" class=\"btn-group\">'
							+	'<button type=\"button\" class=\"switchmode-button pb-off btn active btn-success\" id=\"pagebuilder-off-$random_id\" >Default Editor</button>'
							+	'<button type=\"button\" class=\"switchmode-button pb-on btn\" id=\"pagebuilder-on-$random_id\" >PageBuilder</button>'
							+'</div>'
							+	'<input type=\"hidden\" id=\"jform_pb_total\" name=\"jform_pb_total\" value=\"$pbTotal\">'
							+	'<input type=\"hidden\" id=\"jform_content_id\" name=\"jform_content_id\" value=\"$id\">'
							+	'<input type=\"hidden\" id=\"jform_list_id\" name=\"jform_list_id\" value=\"$listId\">'
							+'<div class=\"pull-right\" id=\"top-btn-actions\">'
                                +'<!--<button class=\"btn btn-default page-custom-css\" onclick=\"return false;\">Custom CSS</button>-->'
                                +   '<input type=\"hidden\" id=\"pb_content_id\" name=\"pb_content_id\" value=\"$id\">'
                            +'</div>'
						+'</div>';

					(function ($){
						$(window).load(function (){
						$('body').find('ul#myTabTabs li:first').on('click', function(){
							$('.switchmode-button.pb-off').click();
						});
						if ($('#jform_module').length)
						   		{
									if ($('#jform_module').val() != 'mod_custom')
									{
									 	return false;
									}
							   }
							var editorHelper_$random_id	= new $.JSNPbEditorHelper();
							var buttonGroups	= editorHelper_$random_id.initEntryButtons('" . $name . "', pbEntryButtons);

							//Auto switch to PageBuilder if shortcode structure detected
							var _content	= $('#" . $name . "').val();
							if (_content.indexOf('[pb_row') >= 0) {
								//setTimeout(function (){
									$('.switchmode-button.pb-on', buttonGroups).click();
								//}, 500);
							}
						});
					})(JoomlaShine.jQuery);
				";


				JSNHtmlAsset::addInlineScript($js);
				JSNHtmlAsset::addStyle(JSNPB_FRAMEWORK_ASSETS . '/3rd-party/jquery-ui/css/ui-bootstrap/jquery-ui-1.9.0.custom.css');
				JSNHtmlAsset::addStyle(JSNPB_FRAMEWORK_ASSETS . '/joomlashine/css/jsn-gui.css');
				JSNHtmlAsset::addStyle(JSNPB_PLG_SYSTEM_ASSETS_URL . 'css/pagebuilder.css');
				JSNHtmlAsset::addStyle(JSNPB_ADMIN_URL . '/assets/css/jsn-element-font.css');
				JSNHtmlAsset::addStyle(JSNPB_FRAMEWORK_ASSETS . '/joomlashine/css/jsn-advanced-parameters.css'); // for text,
				JSNHtmlAsset::addStyle(JSNPB_ADMIN_URL . '/assets/css/settings.css');
			}
		}
	}

}

Zerion Mini Shell 1.0