%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/lightco1/luminero.com.au/plugins/jsnpagebuilder/defaultelements/imageshow/
Upload File :
Create Path :
Current File : /home/lightco1/luminero.com.au/plugins/jsnpagebuilder/defaultelements/imageshow/imageshow.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 'helpers/helper.php';

/**
 * JSN Image Show shortcode element
 *
 * @package  JSN_PageBuilder
 * @since    1.0.0
 */
class JSNPBShortcodeImageShow extends IG_Pb_Element {

    /**
     * Constructor
     *
     */
    public function __construct() {
        if (JSNPagebuilderHelpersPagebuilder::checkComponentEnabled("com_imageshow")) {
            require_once JPATH_ADMINISTRATOR .'/components/com_imageshow/classes/jsn_is_factory.php';
        }
        parent::__construct();
    }

    /**
     * Include admin scripts
     *
     * @return mixed
     */
    public function backend_element_assets() {
    }

    /**
     * DEFINE configuration information of shortcode
     *
     * @return mixed
     */
    function element_config() {
        $this->config['shortcode'] = 'pb_imageshow';
        $this->config['name'] = JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW');
        $this->config['cat'] = JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_EXTRA');
        $this->config['icon'] = "icon-pb-imageshow";
        $this->config['description'] = JText::_("JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_DES");

        $this->config['exception'] = array(
            'default_content' => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW'),
			'data-modal-title' => JText::_('JSN_PAGEBUILDER_ELEMENT_MODAL_TITLE_PB_IMAGESHOW'),
        );
    }

    /**
     * DEFINE setting options of shortcode in backend
     */
    public function backend_element_items()
    {
        $allShowList = JSNPbImageShowHelper::getAllShowList();
        $allShowCase = JSNPbImageShowHelper::getAllShowCase();
        $this->items = array(
            'content' => array(
                array(
                    "name"    => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_ELEMENT_TITLE"),
                    "id"      => "el_title",
                    "type"    => "text_field",
                    "class"   => "jsn-input-xlarge-fluid",
                    "std"     => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_ELEMENT_TITLE_STD'),
                    "role"    => "title",
                    "tooltip" => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_ELEMENT_TITLE_DES"),
                ),
                array(
                    'name'    => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_SHOWLIST'),
                    'id'      => 'imageshow_showlist',
                    'type'    => 'select',
                    "class"   => "jsn-input-large-fluid",
                    'std'     => JSNPagebuilderHelpersType::getFirstOption($allShowList),
                    'options' => $allShowList,
                ),
                array(
                    'name'    => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_SHOWCASE'),
                    'id'      => 'imageshow_showcase',
                    'type'    => 'select',
                    "class"   => "jsn-input-large-fluid",
                    'std'     => JSNPagebuilderHelpersType::getFirstOption($allShowCase),
                    'options' => $allShowCase,
                ),
            ),
            'styling' => array(
                array(
                    'type' => 'preview',
                ),
                array(
                    'name'            => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_OVERALL_WIDTH'),
                    'type'            => array(
                        array(
                            'id'           => 'width_value',
                            'type'         => 'text_number',
                            'std'          => '100',
                            'class'        => 'input-mini',
                            'validate'     => 'number',
                            'parent_class' => 'combo-item merge-data',
                        ),
                        array(
                            'id'           => 'width_unit',
                            'type'         => 'select',
                            'options'      => array('%' => '%', 'px' => 'px'),
                            'std'          => '%',
                            'class'        => 'input-mini',
                            'parent_class' => 'combo-item merge-data',
                        ),
                    ),
                    'container_class' => 'combo-group',
                    'tooltip'         => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_OVERALL_WIDTH_DES'),
                ),
                array(
                    'name'     => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_OVERALL_HEIGHT'),
                    'id'       => 'height',
                    'type'     => 'text_number',
                    'std'      => '450',
                    'class'    => 'input-mini',
                    'validate' => 'number',
                ),
            ),
        );
    }

    /**
     * DEFINE setting options of shortcode in frontend
     */
    public function frontend_element_items()
    {
        $this->items = array(
            'content' => array(
                array(
                    "name"    => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_ELEMENT_TITLE"),
                    "id"      => "el_title",
                    "type"    => "text_field",
                    "class"   => "jsn-input-xlarge-fluid",
                    "std"     => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_ELEMENT_TITLE_STD'),
                    "role"    => "title",
                    "tooltip" => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_ELEMENT_TITLE_DES"),
                ),
                array(
                    'name'    => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_SHOWLIST'),
                    'id'      => 'imageshow_showlist',
                    'type'    => 'select',
                    "class"   => "jsn-input-large-fluid",
                ),
                array(
                    'name'    => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_SHOWCASE'),
                    'id'      => 'imageshow_showcase',
                    'type'    => 'select',
                    "class"   => "jsn-input-large-fluid",
                ),
            ),
            'styling' => array(
                array(
                    'type' => 'preview',
                ),
                array(
                    'name'            => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_OVERALL_WIDTH'),
                    'type'            => array(
                        array(
                            'id'           => 'width_value',
                            'type'         => 'text_number',
                            'std'          => '100',
                            'class'        => 'input-mini',
                            'validate'     => 'number',
                            'parent_class' => 'combo-item merge-data',
                        ),
                        array(
                            'id'           => 'width_unit',
                            'type'         => 'select',
                            'options'      => array('%' => '%', 'px' => 'px'),
                            'std'          => '%',
                            'class'        => 'input-mini',
                            'parent_class' => 'combo-item merge-data',
                        ),
                    ),
                    'container_class' => 'combo-group',
                    'tooltip'         => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_OVERALL_WIDTH_DES'),
                ),
                array(
                    'name'     => JText::_('JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_OVERALL_HEIGHT'),
                    'id'       => 'height',
                    'type'     => 'text_number',
                    'std'      => '450',
                    'class'    => 'input-mini',
                    'validate' => 'number',
                ),
            ),
        );
    }

    /**
     * DEFINE shortcode content
     *
     * @param null $attributes
     * @param mixed $content
     * @return string
     */
    function element_shortcode($attributes = null, $content = null) {
        $arr_params = JSNPagebuilderHelpersShortcode::shortcodeAtts($this->config['params'], $attributes);
        extract($arr_params);

        if (!JSNPagebuilderHelpersPagebuilder::checkComponentEnabled("com_imageshow")) {
	        $html_element = "<p class='jsn-bglabel'>" . JText::_( 'JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_MSG_INSTALL_IMAGESHOW_AND_ENABLE' ) . '</p>';
            return $this->element_wrapper($html_element, $arr_params);
        }

        /** @var JSNISUtils $objUtils */
        $objUtils = JSNISFactory::getObj('classes.jsn_is_utils');
        /** @var JSNISShow $objJSNShow */
        $objJSNShow = JSNISFactory::getObj('classes.jsn_is_show');
        /** @var JSNISShowcase $objJSNShowcase */
        $objJSNShowcase = JSNISFactory::getObj('classes.jsn_is_showcase');
        /** @var JSNISShowlist $objJSNShowlist */
        $objJSNShowlist = JSNISFactory::getObj('classes.jsn_is_showlist');
        /** @var JSNISImages $objJSNImages */
        $objJSNImages = JSNISFactory::getObj('classes.jsn_is_images');

        $language = '';
        $shortEdition = $objUtils->getShortEdition();


        if ($objUtils->checkSupportLang()) {
            $objLanguage = JFactory::getLanguage();
            $language = $objLanguage->getTag();
        }

        $html = '';

        $width = !isset($attributes['width_value']) ? '' : $attributes['width_value'] . $attributes['width_unit'];
        $height = !isset($attributes['height']) ? '' : $attributes['height'];
        $showListID = isset($attributes['imageshow_showlist']) ? (int) $attributes['imageshow_showlist'] : 0;
        $showCaseID = isset($attributes['imageshow_showcase']) ? (int) $attributes['imageshow_showcase'] : 0;

        if($showListID == 0)
        {
            $html_element = "<p class='jsn-bglabel'>" .  JText::_("JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_MSG_CREATE_SHOWLIST") . '</p>';
            return $this->element_wrapper($html_element, $arr_params);
        }
	    if($showCaseID == 0)
	    {
		    $html_element = "<p class='jsn-bglabel'>" . JText::_( 'JSN_PAGEBUILDER_ELEMENT_IMAGESHOW_MSG_CREATE_SHOWCASE' ) . '</p>';
		    return $this->element_wrapper($html_element, $arr_params);
	    }

        $showlistInfo = $objJSNShowlist->getShowListByID($showListID);

        if (is_null($showlistInfo)) {
            $missingDataBox = $objUtils->displayShowlistMissingMessage();
        }

        $showcaseInfo = $objJSNShowcase->getShowCaseByID($showCaseID);

        if (is_null($showcaseInfo)) {
            $missingDataBox = $objUtils->displayShowcaseMissingMessage();
        }

        $themeProfile = false;

        if ($showcaseInfo) {
            /** @var JSNISShowcaseTheme $objJSNTheme */
            $objJSNTheme = JSNISFactory::getObj('classes.jsn_is_showcasetheme');
            $themeProfile = $objJSNTheme->getThemeProfile($showcaseInfo->showcase_id);
        }

        if (!$themeProfile) {
            $missingDataBox = $objUtils->displayThemeMissingMessage();
        }

        if (!is_null($showcaseInfo) && !is_null($showlistInfo) && $themeProfile) {
            $width = $width != '' ? $width : @$showcaseInfo->general_overall_width;
            $width = $width != '' ? $width : '100%';
            $height = $height != '' ? $height : @$showcaseInfo->general_overall_height;
            $height = $height != '' ? $height : '450';

            $imagesData = $objJSNImages->getImagesByShowlistID($showlistInfo['showlist_id']);

            $posPercentageWidth = strpos($width, '%');

            if ($posPercentageWidth) {
                $width = substr($width, 0, $posPercentageWidth + 1);
            }
            else {
                $width = (int) $width;
            }

            $height = (int) $height;
            $object = new stdClass();
            $object->width = $width;
            $object->height = $height;
            $object->showlist_id = $showListID;
            $object->showcase_id = $showCaseID;
            $object->item_id = 0;
            $object->random_number = $objUtils->randSTR(8);
            $object->language = $language;
            $object->edition = $shortEdition;
            $object->images = $imagesData;
            $object->showlist = $showlistInfo;
            $object->showcase = $showcaseInfo;
            $object->theme_id = $themeProfile->theme_id;
            $object->theme_name = $themeProfile->theme_name;
            $object->plugin = true;

            $html .= '<div class="jsn-container">';
            $html .= '<div class="jsn-gallery">';

            $result = $objJSNTheme->displayTheme($object);
            if (JFactory::$application->isAdmin()) {
                $result = str_replace(JUri::root() . "administrator/", JUri::root(), $result);
            }

            if ($result !== false) {
                $html .= $result;
            }

            $html .= '</div>';
            $html .= '</div>';
            $html_element = $html;
        } else {
            $html_element = $missingDataBox;
        }

        return $this->element_wrapper($html_element, $arr_params);
    }
}

Zerion Mini Shell 1.0