%PDF- %PDF-
| Direktori : /home/lightco1/luminero.com.au/plugins/jsnpagebuilder/defaultelements/articlelist/ |
| Current File : /home/lightco1/luminero.com.au/plugins/jsnpagebuilder/defaultelements/articlelist/articlelist.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 . '/components/com_content/helpers/route.php';
include_once 'helpers/helper.php';
/**
* Market shortcode element
*
* @package JSN_PageBuilder
* @since 1.0.0
*/
class JSNPBShortcodeArticleList extends IG_Pb_Element
{
/**
* Constructor
*
*/
public function __construct()
{
parent::__construct();
}
/**
* Include admin scripts
*
* @return mixed
*/
public function backend_element_assets()
{
JSNPagebuilderHelpersFunctions::print_asset_tag(JURI::root(true) . '/media/system/js/calendar.js', 'js');
JSNPagebuilderHelpersFunctions::print_asset_tag(JURI::root(true) . '/media/system/js/calendar-setup.js', 'js');
JSNPagebuilderHelpersFunctions::print_asset_tag(JSNPB_ELEMENT_URL . '/articlelist/assets/css/articlelist.css', 'css');
JSNPagebuilderHelpersFunctions::print_asset_tag(JSNPB_ELEMENT_URL . '/articlelist/assets/js/articlelist.js', 'js');
}
/**
* DEFINE configuration information of shortcode
*
* @return mixed
*/
function element_config()
{
$this->config['shortcode'] = 'pb_articlelist';
$this->config['name'] = JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST');
$this->config['cat'] = JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_EXTRA');
$this->config['icon'] = "icon-article-list";
$this->config['description'] = JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DESCRIPTION");
$this->config['exception'] = array(
'default_content' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST'),
'data-modal-title' => JText::_('JSN_PAGEBUILDER_ELEMENT_MODAL_TITLE_PB_ARTICLELIST'),
);
}
/**
* DEFINE setting options of shortcode
*
* @return mixed
*/
function backend_element_items()
{
$articleListSource = JSNPbArticleListHelper::getArticleListSource();
$articleListCategories = JSNPbArticleListHelper::getArticleListCategories();
$articleListK2Categories = JSNPbArticleListHelper::getArticleListK2Categories();
$articleListEasyCategories = JSNPbArticleListHelper::getArticleListEasyCategories();
$articleListAuthors = JSNPbArticleListHelper::getArticleListAuthors();
$articleListK2Authors = JSNPbArticleListHelper::getArticleListK2Authors();
$articleListEasyAuthors = JSNPbArticleListHelper::getArticleListEasyAuthors();
$this->items = array(
"content" => array(
array(
"name" => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_ELEMENT_TITLE"),
"id" => "el_title",
"type" => "text_field",
"class" => "jsn-input-large-fluid",
"std" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ELEMENT_TITLE_STD'),
"role" => "title",
"tooltip" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_TOOLTIP")
),
array(
"name" => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_TITLE"),
"id" => "articlelist_title",
"type" => "text_field",
"class" => "jsn-input-large-fluid",
"std" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_TITLE_STD'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_SHOW_TITLE"),
"id" => "articlelist_show_title",
"type" => "radio",
"std" => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
"options" => JSNPagebuilderHelpersType::getYesNoQuestion(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_CONTENT_SOURCE"),
"id" => "articlelist_source",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption($articleListSource),
"options" => $articleListSource,
"has_depend" => "1",
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_CATEGORY"),
"id" => "articlelist_filter_categories",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => JSNPagebuilderHelpersType::getFirstOption($articleListCategories),
"options" => $articleListCategories,
'dependency' => array('articlelist_source', '=', 'joomla_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_CATEGORY"),
"id" => "articlelist_filter_k2_categories",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => JSNPagebuilderHelpersType::getFirstOption($articleListK2Categories),
"options" => $articleListK2Categories,
'dependency' => array('articlelist_source', '=', 'k2_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_CATEGORY"),
"id" => "articlelist_filter_easy_categories",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => JSNPagebuilderHelpersType::getFirstOption($articleListEasyCategories),
"options" => $articleListEasyCategories,
'dependency' => array('articlelist_source', '=', 'easy_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_AUTHOR"),
"id" => "articlelist_filter_authors",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => '',
"options" => $articleListAuthors,
'dependency' => array('articlelist_source', '=', 'joomla_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_AUTHOR"),
"id" => "articlelist_filter_k2_authors",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => '',
"options" => $articleListK2Authors,
'dependency' => array('articlelist_source', '=', 'k2_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_AUTHOR"),
"id" => "articlelist_filter_easy_authors",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => '',
"options" => $articleListEasyAuthors,
'dependency' => array('articlelist_source', '=', 'easy_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_NUMBER_OF_DISPLAY_ITEMS"),
"id" => "articlelist_amount",
"type" => "text_number",
"std" => 5,
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ARTICLE_FIELD_TO_ORDER_BY"),
"id" => "articlelist_sort_by",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListSortBy()),
"options" => JSNPbArticleListHelper::getArticleListSortBy(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ORDERING_DIRECTION"),
"id" => "articlelist_sort_order",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListSortOrder()),
"options" => JSNPbArticleListHelper::getArticleListSortOrder(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DATE_FILTERING"),
"id" => "articlelist_filter_date",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getDateFilterType()),
"options" => JSNPbArticleListHelper::getDateFilterType(),
"has_depend" => "1",
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DATE_FIELD"),
"id" => "articlelist_date_field",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getDateFieldType()),
"options" => JSNPbArticleListHelper::getDateFieldType(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_START_DATE_RANGE"),
"id" => "articlelist_range_date_start",
"type" => "text_field",
"dependency" => array('articlelist_filter_date', '=', 'range'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_TO_DATE"),
"id" => "articlelist_range_date_end",
"type" => "text_field",
"dependency" => array('articlelist_filter_date', '=', 'range'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_RELATOVE_DATE"),
"id" => "articlelist_relative_date",
"type" => "text_number",
"std" => 30,
"dependency" => array('articlelist_filter_date', '=', 'relative'),
),
),
'styling' => array(
array(
'type' => 'preview',
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_CHOOSE_LAYOUT'),
"id" => 'articlelist_layout',
"type" => 'radio',
"label_type" => 'image',
"dimension" => array(40, 40),
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListLayout()),
"options" => JSNPbArticleListHelper::getArticleListLayout(),
"has_depend" => '1'
),
// First item
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_FIRST_ITEM'),
"container_class" => "articlelist-style-label",
"type" => "field_set_label",
"dependency" => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_DESCRIPTION'),
'id' => 'articlelist_show_first_description',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
"dependency" => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DESCRIPTION_WORD_LIMITS'),
'id' => 'articlelist_first_description_limit',
'type' => 'text_number',
'std' => 300,
"dependency" => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_THUMBNAIL'),
'id' => 'articlelist_show_first_thumbnail',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_TYPE'),
'id' => 'articlelist_first_thumbnail_type',
'type' => 'select',
"std" => 'custom',
"options" => array(
'custom' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_CUSTOM'),
'original' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_ORIGINAL'),
),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_DIMENSION'),
'id' => 'articlelist_first_thumbnail_dimension',
'container_class' => 'combo-group',
'type' => 'dimension',
'extended_ids' => array('articlelist_first_thumbnail_dimension_width', 'articlelist_first_thumbnail_dimension_height'),
'articlelist_first_thumbnail_dimension_width' => array('std' => '320'),
'articlelist_first_thumbnail_dimension_height' => array('std' => '180'),
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_META_DATA'),
"id" => 'articlelist_show_first_meta_data',
"type" => "checkbox",
"class" => "checkbox inline",
'std' => JSNPbArticleListHelper::getArticleDefaultMetaDataType(),
'options' => JSNPbArticleListHelper::getArticleMetaDataType(),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_READMORE"),
'id' => 'articlelist_show_read_more_first',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
// List item
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ITEM_LIST'),
"container_class" => "articlelist-style-label",
"type" => "field_set_label",
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_LIST_STYLE'),
"id" => "articlelist_list_style",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListStyle()),
"options" => JSNPbArticleListHelper::getArticleListStyle(),
"has_depend" => '1',
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_TYPE'),
'id' => 'articlelist_thumbnail_type',
'type' => 'select',
"std" => 'custom',
"options" => array(
'custom' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_CUSTOM'),
'original' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_ORIGINAL'),
),
'dependency' => array('articlelist_list_style', '=', JSNPbArticleListHelper::PB_ARTICLE_LIST_STYLE_THUMBNAIL),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_DIMENSION'),
'id' => 'articlelist_thumbnail_dimension',
'container_class' => 'combo-group',
'type' => 'dimension',
'extended_ids' => array('articlelist_thumbnail_dimension_width', 'articlelist_thumbnail_dimension_height'),
'articlelist_thumbnail_dimension_width' => array('std' => '120'),
'articlelist_thumbnail_dimension_height' => array('std' => '90'),
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_UPLOAD_IMAGE'),
"id" => "articlelist_list_image",
"type" => "select_media",
'std' => '',
'class' => 'jsn-input-large-fluid',
"dependency" => array('articlelist_list_style', '=', JSNPbArticleListHelper::PB_ARTICLE_LIST_STYLE_IMAGE),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_DESCRIPTION'),
'id' => 'articlelist_show_description',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
"has_depend" => '1'
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DESCRIPTION_WORD_LIMITS'),
'id' => 'articlelist_description_limit',
'type' => 'text_number',
'std' => 100,
"dependency" => array('articlelist_show_description', '=', JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES),
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_META_DATA'),
"id" => 'articlelist_show_meta_data',
"type" => "checkbox",
'std' => JSNPbArticleListHelper::getArticleDefaultMetaDataType(),
'options' => JSNPbArticleListHelper::getArticleMetaDataType(),
"class" => "checkbox inline",
),
array(
'name' => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_READMORE"),
'id' => 'articlelist_show_read_more',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
),
),
);
}
/**
* DEFINE setting options of shortcode
*
* @return mixed
*/
function frontend_element_items()
{
$articleListSource = JSNPbArticleListHelper::getArticleListSource();
$this->items = array(
"content" => array(
array(
"name" => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_ELEMENT_TITLE"),
"id" => "el_title",
"type" => "text_field",
"class" => "jsn-input-large-fluid",
"std" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ELEMENT_TITLE_STD'),
"role" => "title",
"tooltip" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ELEMENT_TITLE_TOOLTIP")
),
array(
"name" => JText::_("JSN_PAGEBUILDER_DEFAULT_ELEMENT_TITLE"),
"id" => "articlelist_title",
"type" => "text_field",
"class" => "jsn-input-large-fluid",
"std" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_TITLE_TOOLTIP'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_TITLE"),
"id" => "articlelist_show_title",
"type" => "radio",
"std" => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
"options" => JSNPagebuilderHelpersType::getYesNoQuestion(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_CONTENT_SOURCE"),
"id" => "articlelist_source",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption($articleListSource),
"options" => $articleListSource,
"has_depend" => "1",
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_CATEGORY"),
"id" => "articlelist_filter_categories",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
// "std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListCategories()),
// "options" => JSNPbArticleListHelper::getArticleListCategories(),
'dependency' => array('articlelist_source', '=', 'joomla_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_CATEGORY"),
"id" => "articlelist_filter_k2_categories",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
// "std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListK2Categories()),
// "options" => JSNPbArticleListHelper::getArticleListK2Categories(),
'dependency' => array('articlelist_source', '=', 'k2_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_CATEGORY"),
"id" => "articlelist_filter_easy_categories",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
// "std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListEasyCategories()),
// "options" => JSNPbArticleListHelper::getArticleListEasyCategories(),
'dependency' => array('articlelist_source', '=', 'easy_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_AUTHOR"),
"id" => "articlelist_filter_authors",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => '',
// "options" => JSNPbArticleListHelper::getArticleListAuthors(),
'dependency' => array('articlelist_source', '=', 'joomla_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_AUTHOR"),
"id" => "articlelist_filter_k2_authors",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => '',
// "options" => JSNPbArticleListHelper::getArticleListK2Authors(),
'dependency' => array('articlelist_source', '=', 'k2_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SELECT_AUTHOR"),
"id" => "articlelist_filter_easy_authors",
"type" => "select",
"class" => "jsn-input-large-fluid jsn-articlelist-multiple-select",
"multiple" => "multiple",
"std" => '',
// "options" => JSNPbArticleListHelper::getArticleListEasyAuthors(),
'dependency' => array('articlelist_source', '=', 'easy_article'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_NUMBER_OF_DISPLAY_ITEMS"),
"id" => "articlelist_amount",
"type" => "text_number",
"std" => 5,
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ARTICLE_FIELD_TO_ORDER_BY"),
"id" => "articlelist_sort_by",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListSortBy()),
"options" => JSNPbArticleListHelper::getArticleListSortBy(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ORDERING_DIRECTION"),
"id" => "articlelist_sort_order",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListSortOrder()),
"options" => JSNPbArticleListHelper::getArticleListSortOrder(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DATE_FILTERING"),
"id" => "articlelist_filter_date",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getDateFilterType()),
"options" => JSNPbArticleListHelper::getDateFilterType(),
"has_depend" => "1",
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DATE_FIELD"),
"id" => "articlelist_date_field",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getDateFieldType()),
"options" => JSNPbArticleListHelper::getDateFieldType(),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_START_DATE_RANGE"),
"id" => "articlelist_range_date_start",
"type" => "text_field",
"dependency" => array('articlelist_filter_date', '=', 'range'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_TO_DATE"),
"id" => "articlelist_range_date_end",
"type" => "text_field",
"dependency" => array('articlelist_filter_date', '=', 'range'),
),
array(
"name" => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_RELATOVE_DATE"),
"id" => "articlelist_relative_date",
"type" => "text_number",
"std" => 30,
"dependency" => array('articlelist_filter_date', '=', 'relative'),
),
),
'styling' => array(
array(
'type' => 'preview',
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_CHOOSE_LAYOUT'),
"id" => 'articlelist_layout',
"type" => 'radio',
"label_type" => 'image',
"dimension" => array(40, 40),
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListLayout()),
"options" => JSNPbArticleListHelper::getArticleListLayout(),
"has_depend" => '1'
),
// First item
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_FIRST_ITEM'),
"container_class" => "articlelist-style-label",
"type" => "field_set_label",
"dependency" => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_DESCRIPTION'),
'id' => 'articlelist_show_first_description',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
"dependency" => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DESCRIPTION_WORD_LIMITS'),
'id' => 'articlelist_first_description_limit',
'type' => 'text_number',
'std' => 300,
"dependency" => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_THUMBNAIL'),
'id' => 'articlelist_show_first_thumbnail',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_TYPE'),
'id' => 'articlelist_first_thumbnail_type',
'type' => 'select',
"std" => 'custom',
"options" => array(
'custom' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_CUSTOM'),
'original' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_ORIGINAL'),
),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_DIMENSION'),
'id' => 'articlelist_first_thumbnail_dimension',
'container_class' => 'combo-group',
'type' => 'dimension',
'extended_ids' => array('articlelist_first_thumbnail_dimension_width', 'articlelist_first_thumbnail_dimension_height'),
'articlelist_first_thumbnail_dimension_width' => array('std' => '320'),
'articlelist_first_thumbnail_dimension_height' => array('std' => '180'),
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_META_DATA'),
"id" => 'articlelist_show_first_meta_data',
"type" => "checkbox",
"class" => "checkbox inline",
'std' => JSNPbArticleListHelper::getArticleDefaultMetaDataType(),
'options' => JSNPbArticleListHelper::getArticleMetaDataType(),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
array(
'name' => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_READMORE"),
'id' => 'articlelist_show_read_more_first',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
'dependency' => array('articlelist_layout', '!=', JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT),
),
// List item
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_ITEM_LIST'),
"container_class" => "articlelist-style-label",
"type" => "field_set_label",
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_LIST_STYLE'),
"id" => "articlelist_list_style",
"type" => "select",
"std" => JSNPagebuilderHelpersType::getFirstOption(JSNPbArticleListHelper::getArticleListStyle()),
"options" => JSNPbArticleListHelper::getArticleListStyle(),
"has_depend" => '1',
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_TYPE'),
'id' => 'articlelist_thumbnail_type',
'type' => 'select',
"std" => 'custom',
"options" => array(
'custom' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_CUSTOM'),
'original' => JText::_('JSN_PAGEBUILDER_DEFAULT_ELEMENT_ORIGINAL'),
),
'dependency' => array('articlelist_list_style', '=', JSNPbArticleListHelper::PB_ARTICLE_LIST_STYLE_THUMBNAIL),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_THUMBNAIL_DIMENSION'),
'id' => 'articlelist_thumbnail_dimension',
'container_class' => 'combo-group',
'type' => 'dimension',
'extended_ids' => array('articlelist_thumbnail_dimension_width', 'articlelist_thumbnail_dimension_height'),
'articlelist_thumbnail_dimension_width' => array('std' => '120'),
'articlelist_thumbnail_dimension_height' => array('std' => '90'),
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_UPLOAD_IMAGE'),
"id" => "articlelist_list_image",
"type" => "select_media",
'std' => '',
'class' => 'jsn-input-large-fluid',
"dependency" => array('articlelist_list_style', '=', JSNPbArticleListHelper::PB_ARTICLE_LIST_STYLE_IMAGE),
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_DESCRIPTION'),
'id' => 'articlelist_show_description',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
"has_depend" => '1'
),
array(
'name' => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_DESCRIPTION_WORD_LIMITS'),
'id' => 'articlelist_description_limit',
'type' => 'text_number',
'std' => 100,
"dependency" => array('articlelist_show_description', '=', JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES),
),
array(
"name" => JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_META_DATA'),
"id" => 'articlelist_show_meta_data',
"type" => "checkbox",
'std' => JSNPbArticleListHelper::getArticleDefaultMetaDataType(),
'options' => JSNPbArticleListHelper::getArticleMetaDataType(),
"class" => "checkbox inline",
),
array(
'name' => JText::_("JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_SHOW_READMORE"),
'id' => 'articlelist_show_read_more',
'type' => 'radio',
'std' => JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES,
'options' => JSNPagebuilderHelpersType::getYesNoQuestion(),
),
),
);
}
/**
* DEFINE shortcode content
*
* @param array $attributes
* @param mixed $content
*
* @return string
*/
function element_shortcode($attributes = null, $content = null)
{
$document = JFactory::getDocument();
$app = JFactory::getApplication();
if ($app->isAdmin()) {
$this->load_assets_frontend();
}
$arr_params = JSNPagebuilderHelpersShortcode::shortcodeAtts($this->config['params'], $attributes);
extract($arr_params);
$html_element = '';
$articles = JSNPbArticleListHelper::getArticles($attributes);
if (count($articles) == 0) {
$html_element = "<div class='alert alert-warning' style='width: 100%;'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_FILTER_HAS_NO_RESULT') . "</div>";
return $this->element_wrapper($html_element, $arr_params);
}
$app = JFactory::getApplication();
$isAdmin = $app->isAdmin() ? true : false;
$adminPreviewClass = $isAdmin ? "in-admin" : "";
$url_pattern = '/^(http|https)/';
$html_element .= "<div class='pb-articlelist-wrapper " . str_replace('_', '-', $arr_params['articlelist_layout']) . " " . $adminPreviewClass . "'>";
if ($arr_params['articlelist_show_title'] == JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES)
{
$html_element .= "<div class='pb-articlelist-title'><h3 class='pb-articlelist-head'>{$arr_params['articlelist_title']}</h3></div>";
}
$html_element .= "<div class='row'>";
if ($arr_params['articlelist_layout'] != JSNPbArticleListHelper::PB_ARTICLE_LIST_LAYOUT) {
if ($arr_params['articlelist_layout'] == JSNPbArticleListHelper::PB_ARTICLE_HORIZONTAL_LAYOUT) {
$html_element .= "<div class='col-md-6 col-sm-6 col-xs-6 pb-articlelist-first'>";
} else if ($arr_params['articlelist_layout'] == JSNPbArticleListHelper::PB_ARTICLE_VERTICAL_LAYOUT) {
$html_element .= "<div class='col-md-12 col-sm-12 col-xs-12 pb-articlelist-first'>";
} else {
$html_element .= "<div class='pb-articlelist-first'>";
}
// Display with first item
$articleFirst = array_shift($articles);
// Default thumbnail dimension
$thumbnailFirstWidth = ($arr_params['articlelist_first_thumbnail_type'] == 'custom') ? ('width: ' . (int) $arr_params['articlelist_first_thumbnail_dimension_width'] . 'px;') : 'width: 100%; max-width: 100%;';
$thumbnailFirstHeight = ($arr_params['articlelist_first_thumbnail_type'] == 'custom') ? ('height: ' . (int) $arr_params['articlelist_first_thumbnail_dimension_height'] . 'px;') : 'height: 100%; max-height: 100%;';
$firstMetaData = explode("__#__", $arr_params['articlelist_show_first_meta_data']);
$firstUrl = $isAdmin ? "#" : $articleFirst['direct_url'];
if ($arr_params['articlelist_show_first_thumbnail'] == JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES) {
$imageFirstUrl = '';
$imageFirstAlt = "No image";
if (isset($articleFirst['images'])) {
$articleFirstImages = json_decode($articleFirst['images'], true);
if (isset($articleFirstImages['image_intro']) && $articleFirstImages['image_intro'] != "") {
$imageFirstUrl = $articleFirstImages['image_intro'];
$imageFirstAlt = $articleFirstImages['image_intro_alt'];
} else if (isset($articleFirstImages['image_fulltext']) && $articleFirstImages['image_fulltext'] != "") {
$imageFirstUrl = $articleFirstImages['image_fulltext'];
$imageFirstAlt = $articleFirstImages['image_fulltext_alt'];
}
}
if ($imageFirstUrl != '')
{
$imageFirstUrl = preg_match($url_pattern, $imageFirstUrl) !== 0 ? $imageFirstUrl : JUri::root() . $imageFirstUrl;
$html_element .= "<div class='first-thumbnail'>";
$html_element .= "<a href='{$firstUrl}'><img src='{$imageFirstUrl}' alt='{$imageFirstAlt}' style='{$thumbnailFirstHeight} {$thumbnailFirstWidth}' /></a>";
$html_element .= "</div>";
}
}
$html_element .= "<div class='title'><a class='title' href='{$firstUrl}'>{$articleFirst['title']}</a></div>";
if (count($firstMetaData) > 1) {
$html_element .= "<div class='meta-data-wrapper muted'>";
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_AUTHOR, $firstMetaData)) {
$html_element .= "<div class='created-by'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_WRITTEN_BY') . ": <span>{$articleFirst['author']}</span></div>";
}
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_DATE_PUBLISHED, $firstMetaData)) {
$_publishData = new DateTime($articleFirst['publish_up']);
$html_element .= "<div class='published'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_PUBLISHED') . ": " . $_publishData->format('d M Y') . "</div>";
}
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_CATEGORY, $firstMetaData)) {
$urlCat = $isAdmin ? "#" : $articleFirst['category_direct_url'];
$html_element .= "<div class='category'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_CATEGORY') . ": <a href='{$urlCat}'>{$articleFirst['category_title']}</a></div>";
}
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_HITS, $firstMetaData)) {
$html_element .= "<div class='hits'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_HITS') . ": {$articleFirst['hits']}</div>";
}
$html_element .= "</div>";
}
if ($attributes['articlelist_show_first_description'] == JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES) {
preg_match_all(JSNPbArticleListHelper::PB_SHORTCODE_SYNTAX, $articleFirst['introtext'], $out);
if (!count($out[0])) {
$_firstIntroText = $articleFirst['introtext'];
} else {
$shortCodeRegex = JSNPagebuilderHelpersShortcode::getShortcodeRegex();
$_firstIntroText = JSNPbArticleListHelper::removeShortCode($articleFirst['introtext'], $shortCodeRegex);
}
$html_element .= "<div class='articlelist-first-thumbnail'><p>" . JSNPbArticleListHelper::wordLimiter($_firstIntroText, (int) $attributes['articlelist_first_description_limit']) . "</p></div>";
}
if ($arr_params['articlelist_show_read_more_first'] == JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES) {
$html_element .= "<div class='articlelist-item-read-more'><a href='{$firstUrl}'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_READMORE') . "</a></div>";
}
$html_element .= "</div>";
}
if ($arr_params['articlelist_layout'] == JSNPbArticleListHelper::PB_ARTICLE_HORIZONTAL_LAYOUT) {
$html_element .= "<div class='col-md-6 col-sm-6 col-xs-6 pb-articlelist-list'>";
} else {
$html_element .= "<div class='col-md-12 col-sm-12 col-xs-12 pb-articlelist-list'>";
}
// Display list
if ($isOrderList = in_array($arr_params['articlelist_list_style'], JSNPbArticleListHelper::getArticleOlListStyle())) {
$html_element .= "<ol type='{$arr_params['articlelist_list_style']}'>";
} else {
switch ($arr_params['articlelist_list_style']) {
case JSNPbArticleListHelper::PB_ARTICLE_LIST_STYLE_IMAGE :
if (getimagesize(JUri::root() . $attributes['articlelist_list_image']) !== false) {
$styleUl = "list-style-image: url(\"" . JUri::root() . $attributes['articlelist_list_image'] . "\")";
} else {
$styleUl = "list-style-image: url(\"" . JUri::root() . "plugins/jsnpagebuilder/defaultelements/articlelist/assets/img/10x10.png" . "\")";
}
break;
case JSNPbArticleListHelper::PB_ARTICLE_LIST_STYLE_THUMBNAIL :
$styleUl = "list-style-type: none";
break;
default :
$styleUl = "list-style-type:{$arr_params['articlelist_list_style']}";
break;
}
$html_element .= "<ul class='list-style-type-{$arr_params['articlelist_list_style']}' style='{$styleUl}'>";
}
// Default thumbnail dimension
$thumbnailWidth = ($arr_params['articlelist_thumbnail_type'] == 'custom') ? ('width: ' . (int) $arr_params['articlelist_thumbnail_dimension_width'] . 'px;') : 'width: 100%; max-width: 100%;';
$thumbnailHeight = ($arr_params['articlelist_thumbnail_type'] == 'custom') ? ('height: ' . (int) $arr_params['articlelist_thumbnail_dimension_height'] . 'px;') : 'height: 100%; max-height: 100%;';
$metaData = explode("__#__", $arr_params['articlelist_show_meta_data']);
foreach ($articles as $_article) {
$url = $isAdmin ? "#" : $_article['direct_url'];
$html_element .= "<li class='articlelist-item'>";
if ($arr_params['articlelist_list_style'] == JSNPbArticleListHelper::PB_ARTICLE_LIST_STYLE_THUMBNAIL) {
$bgImageItemUrl = "";
if (isset($_article['images'])) {
$articleImages = json_decode($_article['images'], true);
$alt_text = '';
if (isset($articleImages['image_intro']) && $articleImages['image_intro'] != "") {
$bgImageItemUrl = $articleImages['image_intro'];
$alt_text = $articleImages['image_intro_alt'];
} else if (isset($articleImages['image_fulltext']) && $articleImages['image_fulltext'] != "") {
$bgImageItemUrl = $articleImages['image_fulltext'];
$alt_text = $articleImages['image_fulltext_alt'];
}
}
if ($bgImageItemUrl != '')
{
$alt_text = $alt_text ? $alt_text : $_article['title'];
$bgImageItemUrl = preg_match($url_pattern, $bgImageItemUrl) !== 0 ? $bgImageItemUrl : JUri::root() . $bgImageItemUrl;
$html_element .= "<div class='articlelist-item-thumbnail'><a href='{$url}'><img src='{$bgImageItemUrl}' alt='{$alt_text}' style='{$thumbnailHeight} {$thumbnailWidth}'></a></div>";
}
}
$html_element .= "<div class='articlelist-item-content'>";
$html_element .= "<div class='title'><a class='title' href='{$url}'>{$_article['title']}</a></div>";
if (count($metaData) > 1) {
$html_element .= "<div class='meta-data-wrapper muted'>";
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_AUTHOR, $metaData)) {
$html_element .= "<div class='created-by'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_WRITTEN_BY') . ": <span>{$_article['author']}</span></div>";
}
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_DATE_PUBLISHED, $metaData)) {
$_publishData = new DateTime($_article['publish_up']);
$html_element .= "<div class='published'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_PUBLISHED') . ": " . $_publishData->format('d M Y') . "</div>";
}
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_CATEGORY, $metaData)) {
$urlCat = $isAdmin ? "#" : $_article['category_direct_url'];
$html_element .= "<div class='category'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_CATEGORY') . ": <a href='{$urlCat}'>{$_article['category_title']}</a></div>";
}
if (in_array(JSNPbArticleListHelper::PB_ARTICLE_META_DATA_HITS, $metaData)) {
$html_element .= "<div class='hits'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_HITS') . ": {$_article['hits']}</div>";
}
$html_element .= "</div>";
}
if ($attributes['articlelist_show_description'] == JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES) {
preg_match_all(JSNPbArticleListHelper::PB_SHORTCODE_SYNTAX, $_article['introtext'], $out);
if (!count($out[0])) {
$_introText = $_article['introtext'];
} else {
$shortCodeRegex = JSNPagebuilderHelpersShortcode::getShortcodeRegex();
$_introText = JSNPbArticleListHelper::removeShortCode($_article['introtext'], $shortCodeRegex);
}
$html_element .= "<div class='articlelist-item-description'><p>" . JSNPbArticleListHelper::wordLimiter($_introText, (int) $attributes['articlelist_description_limit']) . "</p></div>";
}
if ($arr_params['articlelist_show_read_more'] == JSNPagebuilderHelpersType::PB_HELPER_ANSWER_YES) {
$html_element .= "<div class='articlelist-item-read-more'><a href='{$url}'>" . JText::_('JSN_PAGEBUILDER_ELEMENT_ARTICLELIST_READMORE') . "</a></div>";
}
$html_element .= "</div></li>";
}
$html_element .= $isOrderList ? "</ol>" : "</ul>";
$html_element .= "</div></div>";
$html_element .= "</div>";
return $this->element_wrapper($html_element, $arr_params);
}
public function load_assets_frontend() {
$document = JFactory::getDocument();
$document->addStyleSheet(JSNPB_ELEMENT_URL . '/articlelist/assets/css/articlelist.css', 'text/css');
}
}