%PDF- %PDF-
| Direktori : /home1/lightco1/www/ilfanale.com.au/plugins/jsnpoweradmin/pagebuilder/ |
| Current File : //home1/lightco1/www/ilfanale.com.au/plugins/jsnpoweradmin/pagebuilder/pagebuilder.php |
<?php
/**
* @author JoomlaShine.com Team
* @copyright JoomlaShine.com
* @link joomlashine.com
* @package JSN PowerAdmin support for com_content
* @version $Id$
* @license GNU/GPL v2 http://www.gnu.org/licenses/gpl-2.0.html
*/
defined('_JEXEC') or die('Restricted access');
jimport( 'joomla.plugin.plugin' );
include_once JPATH_ROOT . '/administrator/components/com_poweradmin/extensions/extensions.php';
class plgJsnpoweradminPageBuilder extends plgJsnpoweradminExtensions
{
public function onJSNPAPBReplaceContent($content)
{
//Check if the component is not installed.
$isInstalledComponent = $this->isInstalledComponent();
if ($isInstalledComponent != null && $isInstalledComponent == '1')
{
$apiPath = JPATH_ROOT . '/administrator/components/com_pagebuilder/libraries/joomlashine/api/api.php';
if (file_exists($apiPath))
{
include_once $apiPath;
$objJSNPageBuilderAPI = new JSNPageBuilderAPI;
$content = $objJSNPageBuilderAPI->process($content);
}
else
{
//Backward compatible for JSN PageBuilder < 1.0.5
preg_match_all('#\[(\[?)(pb_row)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?)#', $content, $out);
if (count($out[0]))
{
$elemenPath = JPATH_ROOT . '/administrator/components/com_pagebuilder/libraries/innotheme/shortcode/element.php';
$childPath = JPATH_ROOT . '/administrator/components/com_pagebuilder/libraries/innotheme/shortcode/child.php';
$parentPath = JPATH_ROOT . '/administrator/components/com_pagebuilder/libraries/innotheme/shortcode/parent.php';
if (file_exists($elemenPath) && file_exists($childPath))
{
include_once $elemenPath;
if (file_exists($parentPath))
{
include_once $parentPath;
}
include_once $childPath;
// Autoload all helper classes.
JSN_Loader::register(JPATH_ROOT . '/administrator/components/com_pagebuilder' , 'JSNPagebuilder');
// Autoload all shortcode
JSN_Loader::register(JPATH_ROOT . '/administrator/components/com_pagebuilder/helpers/shortcode' , 'JSNPBShortcode');
// Backward compatible for all JSN PageBuilder version =< 1.0.4
if (is_dir(JPATH_ROOT . '/administrator/components/com_pagebuilder/elements'))
{
JSN_Loader::register(JPATH_ROOT . '/administrator/components/com_pagebuilder/elements/' , 'JSNPBShortcode');
}
else
{
JSN_Loader::register(JPATH_ROOT . '/plugins/jsnpagebuilder/defaultelements/' , 'JSNPBShortcode');
}
global $JSNPbElements;
$pcontent = '';
$this->addScript();
$JSNPbElements = new JSNPagebuilderHelpersElements();
$objJSNPagebuilderHelpersBuilder = new JSNPagebuilderHelpersBuilder();
$objJSNPagebuilderHelpersShortcode = new JSNPagebuilderHelpersShortcode();
$content = $objJSNPagebuilderHelpersShortcode::removeAutop($content);
$pcontent .= $objJSNPagebuilderHelpersBuilder->generateShortCode($content);
$content = '<div id="jsnpa-pagebuilder-form-container" class="jsn-layout">' . $pcontent . '</div>';
}
}
}
}
return $content;
}
public function onJSNPAPBCheckLayout($componentName, $view, $layout)
{
$isInstalledComponent = $this->isInstalledComponent();
if ($isInstalledComponent != null && $isInstalledComponent == '1')
{
$layoutPath = JPATH_ROOT . '/plugins/jsnpoweradmin/pagebuilder/views/' . $componentName . '/views/' . $view . '/' . $layout . '.php';
if ( file_exists( $layoutPath ) )
{
return true;
}
}
return false;
}
protected function isInstalledComponent($component = 'com_pagebuilder')
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('enabled')
->from('#__extensions')
->where($db->quoteName('type') . ' = ' . $db->quote('component'))
->where($db->quoteName('element') . ' = ' . $db->quote($component));
$db->setQuery($query);
$isEnabled = $db->loadResult();
return $isEnabled;
}
//Backward compatible for JSN PageBuilder < 1.0.5
protected function addScript()
{
$jscode = $this->_javascript();
if ($jscode != '')
{
$document = JFactory::getDocument();
$document->addScriptDeclaration($jscode);
}
}
public function onJSNPAPBAddScript($content)
{
//Check if the component is not installed.
$isInstalledComponent = $this->isInstalledComponent();
if ($isInstalledComponent != null && $isInstalledComponent == '1')
{
$apiPath = JPATH_ROOT . '/administrator/components/com_pagebuilder/libraries/joomlashine/api/api.php';
if (file_exists($apiPath))
{
include_once $apiPath;
$objJSNPageBuilderAPI = new JSNPageBuilderAPI;
$pattern = $objJSNPageBuilderAPI->getShortcodeSyntax();
preg_match_all($pattern, $content, $out);
if (count($out[0]))
{
$jscode = $objJSNPageBuilderAPI->_javascript();
return $jscode;
}
}
else
{
//Backward compatible for JSN PageBuilder < 1.0.5
preg_match_all('#\[(\[?)(pb_row)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?)#', $content, $out);
if (count($out[0]))
{
$jscode = $this->_javascript();
return $jscode;
}
}
}
return '';
}
//Backward compatible for JSN PageBuilder < 1.0.5
private function _javascript()
{
$jscode = '(function($){
$.JSNPAPageBuilder = function(options) {
this.options = $.extend({}, options);
this.initialize = function ()
{
var self = this;
this.wrapper = $("#jsnpa-pagebuilder-form-container");
this.maxWidth = this.wrapper.width() ;
self.updateColumnWidth(self, this.wrapper, this.maxWidth);
};
this.updateColumnWidth = function(self, wapper, maxWidth)
{
wapper.find(".jsn-row-container").each(function() {
var countColumn = $(this).find(".jsn-column-container").length;
self.updateColumnSpanWidth(countColumn, maxWidth, $(this));
});
};
// Update span width of columns in each row
this.updateColumnSpanWidth = function(countColumn, totalWidth, parentForm) {
var seperateWidth = countColumn * 12;
var remainWidth = totalWidth - seperateWidth;
parentForm.find(".jsn-column-container").each(function () {
var selfSpan = $(this).find(".jsn-column-content").attr("data-column-class").replace("span","");
var columnWidth = parseInt(selfSpan)*remainWidth/12;
if(columnWidth >= totalWidth) columnWidth = totalWidth - 12;
$(this).find(".jsn-column").css("width", columnWidth + "px");
});
};
}
$(window).load(function ()
{
var JSNPAPageBuilder = new $.JSNPAPageBuilder();
JSNPAPageBuilder.initialize();
});
$(document).ready(function ()
{
var JSNPAPageBuilder = new $.JSNPAPageBuilder();
JSNPAPageBuilder.initialize();
});
})((typeof JoomlaShine != "undefined" && typeof JoomlaShine.jQuery != "undefined") ? JoomlaShine.jQuery : jQuery);';
return $jscode;
}
}