uawdijnntqw1x1x1
IP : 216.73.216.219
Hostname : webm009.cluster128.gra.hosting.ovh.net
Kernel : Linux webm009.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
chauffn
/
vuzelia
/
2023
/
cf455
/
..
/
includes
/
..
/
cc5e2
/
maximenuck.zip
/
/
PK�H#]wtW�k2/elements/index.htmlnu�[���<html><body></body></html>PK�H#]�|����k2/elements/ckk2category.phpnu�[���<?php /** * @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870 * http://www.joomlack.fr * Module Maximenu CK * @license GNU/GPL * */ defined('JPATH_BASE') or die; jimport('joomla.filesystem.file'); jimport('joomla.form.formfield'); JFormHelper::loadFieldClass('list'); class JFormFieldCkk2category extends JFormFieldList { protected $type = 'ckk2category'; protected function getOptions() { // if the component is not installed if (!JFolder::exists(JPATH_ROOT . '/administrator/components/com_k2')) { // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_K2_NOTFOUND'); $option->value = '0'; $options[] = $option; // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } // get the categories form the helper $params = new JRegistry(); require_once JPATH_ROOT . '/plugins/maximenuck/k2/helper/helper_k2.php'; $cats = MaximenuckHelpersourceK2::getItems($params); // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_K2_ROOTNODE'); $option->value = '0'; $options[] = $option; foreach ($cats as $cat) { $option = new stdClass(); $option->text = str_repeat(" - ", $cat->level - 1) . $cat->name; $option->value = $cat->id; $options[] = $option; } // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } } PK�H#]�#o,,k2/helper/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]���k2/helper/helper_k2.phpnu�[���<?php /** * @name Maximenu CK * @copyright Copyright (C) 2020. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; /** * Helper Class. */ class MaximenuckHelpersourceK2 { private static $params; /* * Get the items from the source */ public static function getItems($params) { if (empty(self::$params)) { self:$params = $params; } $app = JFactory::getApplication(); $input = $app->input; $usek2suffix = $params->get('usek2suffix', '0'); $k2imagesuffix = $params->get('k2imagesuffix', '_mini'); $usek2images = $params->get('usek2images', '0'); $categoryroot = $params->get('k2categoryroot', '0'); $categorydepth = $params->get('k2categorydepth', '0'); // $start = $params->get('startLevel', '1'); // $end = $params->get('endLevel', '10'); // $dependantitems = $params->get('dependantitems', '0'); $k2showall = $params->get('k2showall', '1'); $active_path = array(); // get the list of categories $items = array(); $activeCategories = array(); $active_category_id = $input->get('id', '0', 'int'); self::getCategoryParentRecurse($active_category_id, $activeCategories); self::recurseCategories($categoryroot, 0, $items, $categorydepth, $active_category_id); require_once JPATH_SITE . '/components/com_k2/helpers/route.php'; foreach ($items as $i => &$item) { $item->params = new JRegistry(); // $item->flink = JRoute::_('index.php?option=com_k2&view=itemlist&layout=category&task=category&id=' . $item->id ); $item->flink = JRoute::_(' index.php?option=com_k2&test=3&view=itemlist&layout=category&task=category&id=' . $item->id ); $item->deeper = false; $item->shallower = false; $item->level_diff = 0; // $item->level = $item->level - $categoryrootitem->level; if (isset($items[$i-1])) { $items[$i-1]->deeper = ($item->level > $items[$i-1]->level); $items[$i-1]->shallower = ($item->level < $items[$i-1]->level); $items[$i-1]->level_diff = ($items[$i-1]->level - $item->level); if ($items[$i-1]->deeper AND $params->get('layout', 'default') != '_:flatlist') $items[$i-1]->classe .= " parent"; } // test if it is the last item $item->is_end = !isset($items[$i + 1]); // add some classes $item->classe = " item" . $item->id; if (in_array($item->id, $activeCategories)) { $item->classe .= " active"; } if ($active_category_id && $active_category_id == $item->id) { $item->classe .= " current"; } // search for parameters $patterns = "#{maximenu}(.*){/maximenu}#Uis"; $result = preg_match($patterns, stripslashes($item->description), $results); $item->desc = ''; $item->colwidth = ''; $item->tagcoltitle = 'none'; $item->tagclass = ''; $item->leftmargin = ''; $item->topmargin = ''; $item->submenuwidth = ''; if (isset($results[1])) { $k2params = explode('|', $results[1]); // $parmsnumb = count($k2params); for ($j = 0; $j < count($k2params); $j++) { $item->desc = stristr($k2params[$j], "desc=") ? str_replace('desc=', '', $k2params[$j]) : $item->desc; $item->colwidth = stristr($k2params[$j], "col=") ? str_replace('col=', '', $k2params[$j]) : $item->colwidth; $item->tagcoltitle = stristr($k2params[$j], "taghtml=") ? str_replace('taghtml=', '', $k2params[$j]) : $item->tagcoltitle; $item->tagclass = stristr($k2params[$j], "tagclass=") ? ' '.str_replace('tagclass=', '', $k2params[$j]) : $item->tagclass; $item->leftmargin = stristr($k2params[$j], "leftmargin=") ? str_replace('leftmargin=', '', $k2params[$j]) : $item->leftmargin; $item->topmargin = stristr($k2params[$j], "topmargin=") ? str_replace('topmargin=', '', $k2params[$j]) : $item->topmargin; $item->submenucontainerwidth = stristr($k2params[$j], "submenuwidth=") ? str_replace('submenuwidth=', '', $k2params[$j]) : $item->submenuwidth; $item->createnewrow = stristr($k2params[$j], "newrow") ? 1 : 0; } } $item->classe .= $item->tagclass; // variables definition $item->ftitle = stripslashes(htmlspecialchars($item->name)); $item->content = ""; $item->rel = ""; // manage images if (!$usek2suffix) $k2imagesuffix = ''; $item->menu_image = ''; if ($usek2images) { $imageurl = $item->image ? explode(".",$item->image): ''; $imagename = isset($imageurl[0]) ? $imageurl[0] : ''; $imageext = isset($imageurl[1]) ? $imageurl[1] : ''; if (JFile::exists(JPATH_ROOT . '/media/k2/categories/' . $imagename . $k2imagesuffix . '.' . $imageext)) { $item->menu_image = 'media/k2/categories/' . $imagename . $k2imagesuffix . '.' . $imageext; } } // manage columns if ($item->colwidth) { $item->colonne = true; $parentItem = self::getParentItem($item->parent, $items); if (isset($parentItem->submenuswidth)) { $parentItem->submenuswidth = strval($parentItem->submenuswidth) + strval($item->colwidth); } else { $parentItem->submenuswidth = strval($item->colwidth); } if (isset($items[$i-1]) AND $items[$i-1]->deeper) { $items[$i-1]->nextcolumnwidth = $item->colwidth; } $item->columnwidth = $item->colwidth; } if (isset($parentItem->submenucontainerwidth) AND $parentItem->submenucontainerwidth) $parentItem->submenuswidth = $parentItem->submenucontainerwidth; $item->name = $item->ftitle; // pour compat avec default.php $item->anchor_css = ''; $item->anchor_title = ''; $item->type = ''; // get plugin parameters that are used directly in the layout $item->liclass = $item->params->get('maximenu_liclass', ''); $item->colbgcolor = $item->params->get('maximenu_colbgcolor', ''); } // give the correct deep infos for the last item if (isset($items[$i])) { $items[$i]->level_diff = ($items[$i]->level - 1); } return $items; } function getParentItem($id, $items) { foreach ($items as $item) { if ($item->id == $id) return $item; } } static function getChidrenItems($parent_id) { $db = JFactory::getDBO(); $query = "SELECT *," ." 1 as level" ." FROM #__k2_categories" ." WHERE published = 1" ." AND parent = " . (int) $parent_id ." ORDER BY ordering ASC"; $db->setQuery($query); if ($db->execute()) { $rows = $db->loadObjectList('id'); return $rows; } else { echo '<p style="color:red;font-weight:bold;">Error loading SQL data : loading the k2 categories in Maximenu CK</p>'; return false; } } static function recurseCategories($category_id, $level, &$sortedCats, $depth, $active_category_id) { $level++; // if (self::hasChildren($category_id)) { $childCats = self::getChidrenItems($category_id); if(!empty($childCats)){ foreach ($childCats as $childCat) { $childCat->level = $level; $sortedCats[] = $childCat; if ( ($depth > 0 && $childCat->level < $depth) || $depth == 0) { self::recurseCategories($childCat->id,$level, $sortedCats, $depth, $active_category_id); } } } // } } static function getCategoryParentRecurse($category_id, &$activeCategories) { $activeCategories[] = $category_id; $db = JFactory::getDBO(); $query = "SELECT parent" ." FROM #__k2_categories" ." WHERE published = 1" ." AND id = " . (int) $category_id; $db->setQuery($query); if ($db->execute()) { $parent_category_id = (int)$db->loadResult(); } else { $parent_category_id = null; } if($parent_category_id){ self::getCategoryParentRecurse($parent_category_id, $activeCategories); } } } PK�H#]��L��k2/params/k2_params.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <fieldset name="editionfieldset" label="" addfieldpath="/plugins/maximenuck/k2/elements"> <field name="k2spacer" type="maximenuckspacer" label="MAXIMENUCK_K2_LABEL" style="title" showon="source:k2" /> <field name="usek2images" type="maximenuckradio" default="0" label="MOD_MAXIMENUCK_USEK2IMAGES_LABEL" description="MOD_MAXIMENUCK_USEK2IMAGES_DESC" icon="images.png" showon="source:k2" class="btn-group"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="usek2suffix" type="maximenuckradio" default="0" label="MOD_MAXIMENUCK_USEK2SUFFIX_LABEL" description="MOD_MAXIMENUCK_USEK2SUFFIX_DESC" showon="source:k2" class="btn-group"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="k2imagesuffix" type="maximenucktext" default="_mini" label="MOD_MAXIMENUCK_K2IMAGESUFFIX_LABEL" description="MOD_MAXIMENUCK_K2IMAGESUFFIX_DESC" showon="source:k2" icon="image.png" /> <field name="k2categoryroot" type="ckk2category" label="MOD_MAXIMENUCK_K2CATEGORYROOT_LABEL" default="0" description="MOD_MAXIMENUCK_K2CATEGORYROOT_DESC" showon="source:k2" /> <field name="k2categorydepth" type="maximenucklist" label="MOD_MAXIMENUCK_K2CATEGORYDEPTH_LABEL" default="0" description="MOD_MAXIMENUCK_K2CATEGORYDEPTH_DESC" showon="source:k2" > <option value="0">JALL</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </field> <field name="k2showall" type="maximenuckradio" label="MOD_MAXIMENUCK_K2SHOWALL_LABEL" default="1" description="MOD_MAXIMENUCK_K2SHOWALL_DESC" class="btn-group" showon="source:k2" > <option value="0">JNO</option> <option value="1">JYES</option> </field> </fieldset> </fields> </form>PK�H#]�#o,,k2/params/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]�nEE-k2/language/en-GB/en-GB.plg_maximenuck_k2.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_K2="K2" MAXIMENUCK_K2_DESC ="Maximenu CK - K2. The plugin allows you to load the K2 into Maximenu CK" PK�H#]�V�k2/language/en-GB/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]��1K1k2/language/en-GB/en-GB.plg_maximenuck_k2.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_K2_DESC ="Maximenu CK - K2. The plugin allows you to load the K2 products into Maximenu CK"PK�H#]eOگ==1k2/language/fr-FR/fr-FR.plg_maximenuck_k2.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_K2_DESC ="Maximenu CK - K2. Le plugin permet d'afficher les produits K2 dans le module Maximenu CK"PK�H#]�I��VV-k2/language/fr-FR/fr-FR.plg_maximenuck_k2.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_K2="K2" MAXIMENUCK_K2_DESC ="Maximenu CK - K2. Le plugin permet d'afficher les produits K2 dans le module Maximenu CK" PK�H#]�V�k2/language/fr-FR/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�V�k2/language/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�+*�ee k2/k2.phpnu�[���<?php /** * @copyright Copyright (C) 2020 Cédric KEIFLIN alias ced1870 * https://www.template-creator.com * https://www.joomlack.fr * @license GNU/GPL * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.event.plugin'); class plgMaximenuckK2 extends JPlugin { private $type = 'k2'; private $shallLoad = true; function __construct(&$subject, $params) { // does not load if the component is not installed $this->shallLoad = file_exists(JPATH_ROOT . '/administrator/components/com_k2'); if (! $this->shallLoad) return; parent::__construct($subject, $params); } /* * Initiate the lugin load * * Return mixed */ function registerListeners() { if ($this->shallLoad === true) { parent::registerListeners(); } else { return false; } } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetSourceName() { $this->loadLanguage(); return $this->type; } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetTypeName() { $this->loadLanguage(); return $this->type; } /* * Display the html code for the item to be used into the frontend page * @param string the item object from simple_html_dom * * Return String the html code */ public function onMaximenuckRenderItemK2($item) { require_once(__DIR__ . '/helper/helper_' . $this->type . '.php'); $k2 = MaximenuckHelpersourceK2::getItems($item->params); $html = '<ul class="maximenuck2">'; foreach ($k2 as $item) { $item->level = $item->level; $item->type = 'k2'; $html .= Maximenuck\Helperfront::getHtmlItem($item); } $html .= '</ul>'; return $html; } }PK�H#]��}Z k2/k2.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <extension version="3" type="plugin" group="maximenuck" method="upgrade"> <name>Maximenu CK - K2</name> <creationDate>January 2020</creationDate> <copyright>Copyright (C) 2020. All rights reserved.</copyright> <license>GNU General Public License version 2 or later</license> <author>Cedric Keiflin</author> <authorEmail>ced1870@gmail.com</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>9.1.21</version> <description>Loader of K2 items for Maximenu CK</description> <files> <filename plugin="k2">k2.php</filename> <folder>elements</folder> <folder>helper</folder> <folder>language</folder> <folder>params</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_k2.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_k2.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_k2.sys.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_k2.ini</language> </languages> </extension>PK�H#]V���**Avirtuemart/language/en-GB/en-GB.plg_maximenuck_virtuemart.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_VIRTUEMART_DESC ="Maximenu CK - Virtuemart. The plugin allows you to load the Virtuemart products into Maximenu CK"PK�H#]��E���=virtuemart/language/en-GB/en-GB.plg_maximenuck_virtuemart.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_VIRTUEMART="Virtuemart" MAXIMENUCK_VIRTUEMART_DESC ="Maximenu CK - Virtuemart. The plugin allows you to load the Virtuemart into Maximenu CK" MAXIMENUCK_VIRTUEMART_TYPE ="Virtuemart list from a category" MAXIMENUCK_VIRTUEMART_TYPE_SHORT ="Virtuemart list" MAXIMENUCK_VIRTUEMART_LABEL="Virtuemart" MOD_MAXIMENUCK_VIRTUEMART="Virtuemart" MOD_MAXIMENUCK_VIRTUEMART_NOTFOUND="Virtuemart not found" MOD_MAXIMENUCK_VIRTUEMART_ROOTNODE="Virtuemart root" MOD_MAXIMENUCK_SPACER_VIRTUEMART="Virtuemart Options" MOD_MAXIMENUCK_USEVIRTUEMARTIMAGES_LABEL = "Use images" MOD_MAXIMENUCK_USEVIRTUEMARTIMAGES_DESC = "Displays images aside the links. Uses thumbnails of the category with the suffix" MOD_MAXIMENUCK_USEVIRTUEMARTSUFFIX_LABEL = "Use a suffix" MOD_MAXIMENUCK_USEVIRTUEMARTSUFFIX_DESC = "Add a suffix to categories thumbnails to add icons in the menu" MOD_MAXIMENUCK_VIRTUEMARTIMAGESUFFIX_LABEL = "Images suffix" MOD_MAXIMENUCK_VIRTUEMARTIMAGESUFFIX_DESC = "Define a suffix to use with the thumbnail of the category" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYROOT_LABEL = "Root category" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYROOT_DESC = "The menu will only render the categories under the selected root" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYDEPTH_LABEL = "Depth of categories" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYDEPTH_DESC = "Select how many levels of categories you want to show" ;added 9.1.19 MOD_MAXIMENUCK_VIRTUEMARTSORTING_LABEL="Sort order" MOD_MAXIMENUCK_VIRTUEMART_ALPHABETICAL="Alphabetical"PK�H#]�V�$virtuemart/language/en-GB/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]7���UUAvirtuemart/language/fr-FR/fr-FR.plg_maximenuck_virtuemart.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_VIRTUEMART_DESC ="Maximenu CK - Virtuemart. Le plugin permet d'afficher les produits Virtuemart dans le module Maximenu CK"PK�H#]mL�qq=virtuemart/language/fr-FR/fr-FR.plg_maximenuck_virtuemart.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_VIRTUEMART="Virtuemart" MAXIMENUCK_VIRTUEMART_DESC ="Maximenu CK - Virtuemart. Le plugin permet d'afficher les produits Virtuemart dans le module Maximenu CK" MAXIMENUCK_VIRTUEMART_TYPE ="Liste d'virtuemart d'une catégorie" MAXIMENUCK_VIRTUEMART_TYPE_SHORT ="Liste d'virtuemart" MAXIMENUCK_VIRTUEMART_LABEL="Virtuemart" MOD_MAXIMENUCK_VIRTUEMART="Virtuemart" MOD_MAXIMENUCK_VIRTUEMART_NOTFOUND = "Virtuemart non trouvé" MOD_MAXIMENUCK_VIRTUEMART_ROOTNODE = "Racine de Virtuemart" MOD_MAXIMENUCK_SPACER_VIRTUEMART = "Compatibilité Virtuemart" MOD_MAXIMENUCK_USEVIRTUEMARTIMAGES_LABEL = "Utiliser les images" MOD_MAXIMENUCK_USEVIRTUEMARTIMAGES_DESC = "Affiche des images à gauche des liens dans le menu. Utilise la miniature de la catégorie et le suffixe" MOD_MAXIMENUCK_USEVIRTUEMARTSUFFIX_LABEL = "Utiliser un suffixe" MOD_MAXIMENUCK_USEVIRTUEMARTSUFFIX_DESC = "Ajoute un suffixe aux miniatures des catégories pour insérer les icônes dans le menu" MOD_MAXIMENUCK_VIRTUEMARTIMAGESUFFIX_LABEL = "Suffixe des images" MOD_MAXIMENUCK_VIRTUEMARTIMAGESUFFIX_DESC = "On peut définir un suffixe à ajouter à l'image miniature de la catégorie, ça permet d'utiliser une autre icône pour le menu" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYROOT_LABEL = "Catégorie parente" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYROOT_DESC = "Le menu n'affichera que les catégories en dessous de celle-ci" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYDEPTH_LABEL = "Profondeur de catégories" MOD_MAXIMENUCK_VIRTUEMARTCATEGORYDEPTH_DESC = "Choisir le nombre de niveaux de catégories à afficher" ;added 9.1.19 MOD_MAXIMENUCK_VIRTUEMARTSORTING_LABEL="Ordre d'affichage" MOD_MAXIMENUCK_VIRTUEMART_ALPHABETICAL="Alphabétique"PK�H#]�V�$virtuemart/language/fr-FR/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�V�virtuemart/language/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]F[��UUvirtuemart/virtuemart.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <extension version="3" type="plugin" group="maximenuck" method="upgrade"> <name>Maximenu CK - Virtuemart</name> <creationDate>January 2020</creationDate> <copyright>Copyright (C) 2020. All rights reserved.</copyright> <license>GNU General Public License version 2 or later</license> <author>Cedric Keiflin</author> <authorEmail>ced1870@gmail.com</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>9.1.21</version> <description>Loader of Virtuemart items for Maximenu CK</description> <files> <filename plugin="virtuemart">virtuemart.php</filename> <folder>elements</folder> <folder>helper</folder> <folder>language</folder> <folder>params</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_virtuemart.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_virtuemart.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_virtuemart.sys.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_virtuemart.ini</language> </languages> </extension>PK�H#]���֮�virtuemart/virtuemart.phpnu�[���<?php /** * @copyright Copyright (C) 2020 Cédric KEIFLIN alias ced1870 * https://www.template-creator.com * https://www.joomlack.fr * @license GNU/GPL * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.event.plugin'); class plgMaximenuckVirtuemart extends JPlugin { private $type = 'virtuemart'; private $shallLoad = true; function __construct(&$subject, $params) { // does not load if the component is not installed $this->shallLoad = file_exists(JPATH_SITE . '/administrator/components/com_virtuemart'); if (! $this->shallLoad) return; parent::__construct($subject, $params); } /* * Initiate the lugin load * * Return mixed */ function registerListeners() { if ($this->shallLoad === true) { parent::registerListeners(); } else { return false; } } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetSourceName() { $this->loadLanguage(); return $this->type; } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetTypeName() { $this->loadLanguage(); return $this->type; } /* * Display the html code for the item to be used into the frontend page * @param string the item object from simple_html_dom * * Return String the html code */ public function onMaximenuckRenderItemVirtuemart($item) { require_once(__DIR__ . '/helper/helper_' . $this->type . '.php'); $virtuemart = MaximenuckHelpersourceVirtuemart::getItems($item->params); $html = '<ul class="maximenuck2">'; foreach ($virtuemart as $article) { $article->level = $item->level; $article->type = 'article'; $html .= Maximenuck\Helperfront::getHtmlItem($article); } $html .= '</ul>'; return $html; } }PK�H#]�e� � 'virtuemart/params/virtuemart_params.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <fieldset name="editionfieldset" label="" addfieldpath="/plugins/maximenuck/virtuemart/elements"> <field name="virtuemartspacer" type="maximenuckspacer" label="MAXIMENUCK_VIRTUEMART_LABEL" style="title" showon="source:virtuemart" /> <field name="usevirtuemartimages" type="maximenuckradio" class="btn-group" default="0" label="MOD_MAXIMENUCK_USEVIRTUEMARTIMAGES_LABEL" description="MOD_MAXIMENUCK_USEVIRTUEMARTIMAGES_DESC" showon="source:virtuemart" icon="images.png"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="usevirtuemartsuffix" type="maximenuckradio" class="btn-group" default="0" label="MOD_MAXIMENUCK_USEVIRTUEMARTSUFFIX_LABEL" description="MOD_MAXIMENUCK_USEVIRTUEMARTSUFFIX_DESC" showon="source:virtuemart" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="virtuemartimagesuffix" type="maximenucktext" default="_mini" label="MOD_MAXIMENUCK_VIRTUEMARTIMAGESUFFIX_LABEL" description="MOD_MAXIMENUCK_VIRTUEMARTIMAGESUFFIX_DESC" showon="source:virtuemart" icon="image.png" /> <field name="virtuemartcategoryroot" type="ckvmcategory" label="MOD_MAXIMENUCK_VIRTUEMARTCATEGORYROOT_LABEL" default="0" description="MOD_MAXIMENUCK_VIRTUEMARTCATEGORYROOT_DESC" showon="source:virtuemart" /> <field name="virtuemartcategorydepth" type="maximenucklist" label="MOD_MAXIMENUCK_VIRTUEMARTCATEGORYDEPTH_LABEL" default="0" description="MOD_MAXIMENUCK_VIRTUEMARTCATEGORYDEPTH_DESC" showon="source:virtuemart" > <option value="0">JALL</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </field> <field name="virtuemartsorting" type="maximenucklist" class="btn-group" default="default" label="MOD_MAXIMENUCK_VIRTUEMARTSORTING_LABEL" showon="source:virtuemart" > <option value="default">JDEFAULT</option> <option value="alphabetical">MOD_MAXIMENUCK_VIRTUEMART_ALPHABETICAL</option> </field> </fieldset> </fields> </form>PK�H#]�#o,,virtuemart/params/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#][H�2G G $virtuemart/elements/ckvmcategory.phpnu�[���<?php /** * @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870 * http://www.joomlack.fr * Module Maximenu CK * @license GNU/GPL * */ defined('JPATH_BASE') or die; jimport('joomla.filesystem.file'); if (file_exists(JPATH_ROOT . '/administrator/components/com_virtuemart')) { if (!class_exists('VmConfig')) { if (file_exists(JPATH_ROOT . '/administrator/components/com_virtuemart/helpers/config.php')) require(JPATH_ROOT . '/administrator/components/com_virtuemart/helpers/config.php'); } if (!class_exists('ShopFunctions')) { if (file_exists(JPATH_ROOT . '/administrator/components/com_virtuemart/helpers/shopfunctions.php')) require(JPATH_ROOT . '/administrator/components/com_virtuemart/helpers/shopfunctions.php'); } // if (!class_exists('TableCategories')) { // if (file_exists(JPATH_ROOT . '/administrator/components/com_virtuemart/tables/categories.php')) // require(JPATH_ROOT . '/administrator/components/com_virtuemart/tables/categories.php'); // } } jimport('joomla.form.formfield'); JFormHelper::loadFieldClass('list'); class JFormFieldCkvmcategory extends JFormFieldList { protected $type = 'Ckvmcategory'; protected function getOptions() { // if VM is not installed if (!JFolder::exists(JPATH_ROOT . '/administrator/components/com_virtuemart') OR !class_exists('ShopFunctions')) { // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_VIRTUEMART_NOTFOUND'); $option->value = '0'; $options[] = $option; // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } VmConfig::loadConfig(); $categorylist = ShopFunctions::categoryListTree(); $categorylist = trim($categorylist, '</option>'); $categorylist = explode("</option><option", $categorylist); // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_VIRTUEMART_ROOTNODE'); $option->value = '0'; $options[] = $option; foreach ($categorylist as $cat) { $option = new stdClass(); $text = explode(">", $cat); $option->text = trim($text[1]); $option->value = strval(trim(trim(trim($text[0]), '"'), 'value="')); $options[] = $option; } // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } } PK�H#]wtW�virtuemart/elements/index.htmlnu�[���<html><body></body></html>PK�H#]�Y�..'virtuemart/helper/helper_virtuemart.phpnu�[���<?php /** * @name Maximenu CK * @copyright Copyright (C) 2020. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; /** * Helper Class. */ class MaximenuckHelpersourceVirtuemart { private static $params; static function getChidrenItems($parent_id) { $db = JFactory::getDBO(); $query_children = "SELECT *, #__virtuemart_categories.virtuemart_category_id as id, #__virtuemart_category_categories.category_parent_id as parent, #__virtuemart_categories.ordering as ordering, 2 as level" ." FROM (((#__virtuemart_categories" ." INNER JOIN #__virtuemart_category_categories" ." ON #__virtuemart_categories.virtuemart_category_id = #__virtuemart_category_categories.category_child_id)" ." INNER JOIN #__virtuemart_categories_".VMLANG ." ON #__virtuemart_categories.virtuemart_category_id = #__virtuemart_categories_".VMLANG.".virtuemart_category_id)" ." LEFT OUTER JOIN #__virtuemart_category_medias" ." ON #__virtuemart_categories.virtuemart_category_id = #__virtuemart_category_medias.virtuemart_category_id)" ." LEFT OUTER JOIN #__virtuemart_medias" ." ON #__virtuemart_category_medias.virtuemart_media_id = #__virtuemart_medias.virtuemart_media_id" ." WHERE #__virtuemart_category_categories.category_parent_id = " . (int) $parent_id . " AND #__virtuemart_categories.published = 1"; if (self::$params->get('virtuemartsorting', 'default') == 'default') { $query_children .= " ORDER BY #__virtuemart_categories.ordering ASC, #__virtuemart_categories.virtuemart_category_id ASC"; } else { $query_children .= " ORDER BY #__virtuemart_categories_".VMLANG.".category_name ASC, #__virtuemart_categories.virtuemart_category_id ASC"; } $db->setQuery($query_children); if ($db->execute()) { $rows_children = $db->loadObjectList('id'); return $rows_children; } else { echo '<p style="color:red;font-weight:bold;">Error loading SQL data : loading the Virtuemart categories in Maximenu CK</p>'; return false; } } static function recurseCategories($category_id, $level, &$sortedCats, $depth) { $level++; if (self::hasChildren($category_id)) { $childCats = self::getChidrenItems($category_id); if(!empty($childCats)){ foreach ($childCats as $childCat) { $childCat->level = $level; $sortedCats[] = $childCat; if ( ($depth > 0 && $childCat->level < $depth) || $depth == 0) { self::recurseCategories($childCat->id,$level, $sortedCats, $depth); } } } } } /** * Checks for children of the category $virtuemart_category_id * * @param int $virtuemart_category_id the category ID to check * @return boolean true when the category has childs, false when not */ static function hasChildren($virtuemart_category_id) { $db = JFactory::getDBO(); $q = "SELECT `category_child_id` FROM `#__virtuemart_category_categories` WHERE `category_parent_id` = ".(int)$virtuemart_category_id; $db->setQuery($q); $db->execute(); if ($db->getAffectedRows() > 0){ return true; } else { return false; } } /** * Get a list of the menu items. * * @param JRegistry $params The module options. * * @return array */ static function getItems(&$params, $all = false, $level = 1, $parent_id = 0) { self::$params = $params; if (! defined('DS') ) { define('DS', '/'); } jimport('joomla.application.module.helper'); if (!class_exists( 'VmConfig' )) require_once(JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/config.php'); $config= VmConfig::loadConfig(); if(!class_exists('VmModel'))require(JPATH_ADMINISTRATOR.'/components/com_virtuemart/helpers/vmmodel.php'); // for joomla 2.5 /* $usevmsuffix = $params->get('usevmsuffix', '0'); $vmimagesuffix = $params->get('vmimagesuffix', '_mini'); $usevmimages = $params->get('usevmimages', '0'); $vmcategoryroot = $params->get('vmcategoryroot', '0'); $vmcategorydepth = $params->get('vmcategorydepth', '0'); */ // for joomla 3 $usevmsuffix = $params->get('usevirtuemartsuffix', '0'); $vmimagesuffix = $params->get('virtuemartimagesuffix', '_mini'); $usevmimages = $params->get('usevirtuemartimages', '0'); $vmcategoryroot = $params->get('virtuemartcategoryroot', '0'); $vmcategorydepth = $params->get('virtuemartcategorydepth', '0'); // $active_path = array(); // $db = JFactory::getDBO(); $active_category_id = JRequest::getInt('virtuemart_category_id', '0'); // get the active tree $categoryModel = VmModel::getModel('Category'); $parentCategories = $categoryModel->getCategoryRecurse($active_category_id,0); // $level = 0; $items = array(); $i = 0; $vmcategoryrootitem = new stdClass(); $vmcategoryrootitem->level = 0; $vmcategoryrootitem->enfants = ''; // get the list of categories self::recurseCategories($vmcategoryroot, 0, $items, $vmcategorydepth); $j = 0; $lastitem = 0; foreach ($items as $i => &$item) { $newItem = self::initItem(); foreach ($newItem as $prop => $val) { if (! isset($item->$prop)) $item->$prop = $val; } $item->flink = $item->link = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id=' . $item->id); $item->level = $item->level + $level - 1; if ($item->level == $level) { $item->parent_id = $parent_id; } if (isset($items[$i-1])) { $items[$i-1]->deeper = ($item->level > $items[$i-1]->level); $items[$i-1]->shallower = ($item->level < $items[$i-1]->level); $items[$i-1]->level_diff = ($items[$i-1]->level - $item->level); if ($items[$i-1]->deeper AND $params->get('layout', 'default') != '_:flatlist') $items[$i-1]->classe .= " parent"; } // if ($item->deeper) $item->classe .= " parent"; // test if it is the last item $item->is_end = !isset($items[$i + 1]); // add some classes $item->classe .= " item" . $item->id; if (in_array($item->id, $parentCategories)) { $item->classe .= " active"; } if ($active_category_id && $active_category_id == $item->id) { $item->classe .= " current"; } // search for parameters $patterns = "#{maximenu}(.*){/maximenu}#Uis"; $result = preg_match($patterns, stripslashes($item->category_description), $results); $imageonly = ''; if (isset($results[1])) { $vmparams = explode('|', $results[1]); // $parmsnumb = count($vmparams); for ($j = 0; $j < count($vmparams); $j++) { $item->desc = stristr($vmparams[$j], "desc=") ? str_replace('desc=', '', $vmparams[$j]) : $item->desc; $item->colwidth = stristr($vmparams[$j], "col=") ? str_replace('col=', '', $vmparams[$j]) : $item->colwidth; $item->tagcoltitle = stristr($vmparams[$j], "taghtml=") ? str_replace('taghtml=', '', $vmparams[$j]) : $item->tagcoltitle; $item->tagclass = stristr($vmparams[$j], "tagclass=") ? ' '.str_replace('tagclass=', '', $vmparams[$j]) : $item->tagclass; $item->leftmargin = stristr($vmparams[$j], "leftmargin=") ? str_replace('leftmargin=', '', $vmparams[$j]) : $item->leftmargin; $item->topmargin = stristr($vmparams[$j], "topmargin=") ? str_replace('topmargin=', '', $vmparams[$j]) : $item->topmargin; $item->submenucontainerwidth = stristr($vmparams[$j], "submenuwidth=") ? str_replace('submenuwidth=', '', $vmparams[$j]) : $item->submenuwidth; $item->createnewrow = stristr($vmparams[$j], "newrow") ? 1 : 0; $item->type = stristr($vmparams[$j], "separator") ? 'separator' : $item->type; $imageonly = stristr($vmparams[$j], "notext") ? 1 : $imageonly; } } if ($imageonly) { $item->params->set('menu_text', 0); } $item->classe .= $item->tagclass; // manage tag encapsulation // $item->tagcoltitle = $item->params->set('maximenu_tagcoltitle', $item->taghtml); // variables definition $item->ftitle = stripslashes(htmlspecialchars($item->category_name)); $item->content = ""; $item->rel = ""; // manage images if (!$usevmsuffix) $vmimagesuffix = ''; $item->menu_image = ''; if ($usevmimages) { $imageurl = $item->file_url ? explode(".",$item->file_url): ''; $imagelocation = isset($imageurl[0]) ? $imageurl[0] : ''; $imageext = isset($imageurl[1]) ? $imageurl[1] : ''; if (JFile::exists(JPATH_ROOT . '/'. $imagelocation . $vmimagesuffix . '.' . $imageext)) { $item->menu_image = $imagelocation . $vmimagesuffix . '.' . $imageext; } } // manage columns if ($item->colwidth) { $item->colonne = true; $parentItem = self::getParentItem($item->parent, $items); if (isset($parentItem->submenuswidth)) { $parentItem->submenuswidth = strval($parentItem->submenuswidth) + strval($item->colwidth); } else { if (is_object($parentItem)) $parentItem->submenuswidth = strval($item->colwidth); } if (isset($items[$i-1]) AND $items[$i-1]->deeper) { $items[$i-1]->nextcolumnwidth = $item->colwidth; } $item->columnwidth = $item->colwidth; } if (isset($parentItem->submenucontainerwidth) AND $parentItem->submenucontainerwidth) $parentItem->submenuswidth = $parentItem->submenucontainerwidth; $item->name = $item->ftitle; // get plugin parameters that are used directly in the layout // $item->leftmargin = $item->params->get('maximenu_leftmargin', ''); // $item->topmargin = $item->params->get('maximenu_topmargin', ''); $item->liclass = $item->params->get('maximenu_liclass', ''); $item->colbgcolor = $item->params->get('maximenu_colbgcolor', ''); // $lastitem = $i; } // give the correct deep infos for the last item if (isset($items[$i])) { // $items[$i]->deeper = (($start?$start:1) > $items[$i]->level); // $items[$i]->shallower = (($start?$start:1) < $items[$i]->level); $items[$i]->level_diff = ($items[$i]->level - 1 - $vmcategoryrootitem->level); } return $items; } static function getParentItem($id, $items) { foreach ($items as $item) { if ($item->id == $id) return $item; } } public static function initItem() { $item = new stdClass(); $item->params = new JRegistry(); $item->deeper = false; $item->shallower = false; $item->level_diff = 0; $item->isthirdparty = false; $item->is_end = false; $item->classe = ''; $item->desc = ''; $item->colwidth = ''; $item->tagcoltitle = 'none'; $item->tagclass = ''; $item->leftmargin = ''; $item->topmargin = ''; $item->submenuwidth = ''; $item->liclass = ''; $item->anchor_css = ''; $item->anchor_title = ''; $item->colbgcolor = ''; $item->menu_image = ''; $item->type = ''; $item->content = ''; $item->rel = ''; $item->link = ''; $item->title = ''; $item->parent_id = ''; $item->id = ''; // special for the thirdparty plugins $item->isthirdparty = true; $item->type = 'thirdparty'; return $item; } } PK�H#]�#o,,virtuemart/helper/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]�V� joomshopping/language/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]����00Ejoomshopping/language/en-GB/en-GB.plg_maximenuck_joomshopping.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_JOOMSHOPPING_DESC ="Maximenu CK - Joomshopping. The plugin allows you to load the Joomshopping products into Maximenu CK"PK�H#]5�͛Ajoomshopping/language/en-GB/en-GB.plg_maximenuck_joomshopping.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_JOOMSHOPPING="Joomshopping" MAXIMENUCK_JOOMSHOPPING_DESC ="Maximenu CK - Joomshopping. The plugin allows you to load the Joomshopping into Maximenu CK" MAXIMENUCK_JOOMSHOPPING_TYPE ="Joomshopping list from a category" MAXIMENUCK_JOOMSHOPPING_TYPE_SHORT ="Joomshopping list" MAXIMENUCK_JOOMSHOPPING_LABEL="Joomshopping" PK�H#]�V�&joomshopping/language/en-GB/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�V�&joomshopping/language/fr-FR/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�`�66Ajoomshopping/language/fr-FR/fr-FR.plg_maximenuck_joomshopping.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_JOOMSHOPPING="Joomshopping" MAXIMENUCK_JOOMSHOPPING_DESC ="Maximenu CK - Joomshopping. Le plugin permet d'afficher les produits Joomshopping dans le module Maximenu CK" MAXIMENUCK_JOOMSHOPPING_TYPE ="Liste d'joomshopping d'une catégorie" MAXIMENUCK_JOOMSHOPPING_TYPE_SHORT ="Liste d'joomshopping" MAXIMENUCK_JOOMSHOPPING_LABEL="Joomshopping" PK�H#]d�Dg[[Ejoomshopping/language/fr-FR/fr-FR.plg_maximenuck_joomshopping.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_JOOMSHOPPING_DESC ="Maximenu CK - Joomshopping. Le plugin permet d'afficher les produits Joomshopping dans le module Maximenu CK"PK�H#]��:0joomshopping/elements/ckjoomshoppingcategory.phpnu�[���<?php /** * @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870 * http://www.joomlack.fr * Module Maximenu CK * @license GNU/GPL * */ defined('JPATH_BASE') or die; jimport('joomla.filesystem.file'); jimport('joomla.form.formfield'); JFormHelper::loadFieldClass('list'); class JFormFieldCkjoomshoppingcategory extends JFormFieldList { protected $type = 'ckjoomshoppingcategory'; protected function getOptions() { // if the component is not installed if (!JFolder::exists(JPATH_ROOT . '/administrator/components/com_jshopping')) { // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_JOOMSHOPPING_NOTFOUND'); $option->value = '0'; $options[] = $option; // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } // get the categories form the helper $params = new JRegistry(); require_once JPATH_ROOT . '/plugins/maximenuck/joomshopping/helper/helper_joomshopping.php'; $cats = MaximenuckHelpersourceJoomshopping::getItems($params, true); // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_JOOMSHOPPING_ROOTNODE'); $option->value = '0'; $options[] = $option; foreach ($cats as $cat) { $option = new stdClass(); $option->text = str_repeat(" - ", $cat->level - 1) . $cat->name; $option->value = $cat->category_id; $options[] = $option; } // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } } PK�H#]wtW� joomshopping/elements/index.htmlnu�[���<html><body></body></html>PK�H#]��/7��joomshopping/joomshopping.phpnu�[���<?php /** * @copyright Copyright (C) 2020 Cédric KEIFLIN alias ced1870 * https://www.template-creator.com * https://www.joomlack.fr * @license GNU/GPL * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.event.plugin'); class plgMaximenuckJoomshopping extends JPlugin { private $type = 'joomshopping'; private $shallLoad = true; function __construct(&$subject, $params) { // does not load if the component is not installed $this->shallLoad = file_exists(JPATH_SITE . '/administrator/components/com_joomshopping'); if (! $this->shallLoad) return; parent::__construct($subject, $params); } /* * Initiate the lugin load * * Return mixed */ function registerListeners() { if ($this->shallLoad === true) { parent::registerListeners(); } else { return false; } } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetSourceName() { $this->loadLanguage(); return $this->type; } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetTypeName() { $this->loadLanguage(); return $this->type; } /* * Display the html code for the item to be used into the frontend page * @param string the item object from simple_html_dom * * Return String the html code */ public function onMaximenuckRenderItemJoomshopping($item) { require_once(__DIR__ . '/helper/helper_' . $this->type . '.php'); $joomshopping = MaximenuckHelpersourceJoomshopping::getItems($item->params); $html = '<ul class="maximenuck2">'; foreach ($joomshopping as $article) { $article->level = $item->level; $article->type = 'article'; $html .= Maximenuck\Helperfront::getHtmlItem($article); } $html .= '</ul>'; return $html; } }PK�H#]�.TOeejoomshopping/joomshopping.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <extension version="3" type="plugin" group="maximenuck" method="upgrade"> <name>Maximenu CK - Joomshopping</name> <creationDate>January 2020</creationDate> <copyright>Copyright (C) 2020. All rights reserved.</copyright> <license>GNU General Public License version 2 or later</license> <author>Cedric Keiflin</author> <authorEmail>ced1870@gmail.com</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>9.1.21</version> <description>Loader of Joomshopping items for Maximenu CK</description> <files> <filename plugin="joomshopping">joomshopping.php</filename> <folder>elements</folder> <folder>helper</folder> <folder>language</folder> <folder>params</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_joomshopping.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_joomshopping.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_joomshopping.sys.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_joomshopping.ini</language> </languages> </extension>PK�H#]�#o,,joomshopping/params/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]�a�x x +joomshopping/params/joomshopping_params.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <fieldset name="editionfieldset" label="" addfieldpath="/plugins/maximenuck/joomshopping/elements"> <field name="joomshoppingspacer" type="maximenuckspacer" label="MAXIMENUCK_JOOMSHOPPING_LABEL" style="title" showon="source:joomshopping" /> <field name="joomshoppingitemid" type="maximenucktext" label="MOD_MAXIMENUCK_JOOMSHOPPINGITEMID_LABEL" default="0" description="MOD_MAXIMENUCK_JOOMSHOPPINGITEMID_DESC" showon="source:joomshopping" /> <field name="usejoomshoppingimages" type="maximenuckradio" default="0" label="MOD_MAXIMENUCK_USEJOOMSHOPPINGIMAGES_LABEL" description="MOD_MAXIMENUCK_USEJOOMSHOPPINGIMAGES_DESC" class="btn-group" showon="source:joomshopping" icon="images.png"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="usejoomshoppingsuffix" type="maximenuckradio" default="0" label="MOD_MAXIMENUCK_USEJOOMSHOPPINGSUFFIX_LABEL" description="MOD_MAXIMENUCK_USEJOOMSHOPPINGSUFFIX_DESC" showon="source:joomshopping" class="btn-group"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="joomshoppingimagesuffix" type="maximenucktext" default="_mini" label="MOD_MAXIMENUCK_JOOMSHOPPINGIMAGESUFFIX_LABEL" description="MOD_MAXIMENUCK_JOOMSHOPPINGIMAGESUFFIX_DESC" showon="source:joomshopping" icon="image.png" /> <field name="joomshoppingcategoryroot" type="ckjoomshoppingcategory" label="MOD_MAXIMENUCK_JOOMSHOPPINGCATEGORYROOT_LABEL" default="0" description="MOD_MAXIMENUCK_JOOMSHOPPINGCATEGORYROOT_DESC" showon="source:joomshopping" /> <field name="joomshoppingcategorydepth" type="maximenucklist" label="MOD_MAXIMENUCK_JOOMSHOPPINGCATEGORYDEPTH_LABEL" default="0" description="MOD_MAXIMENUCK_JOOMSHOPPINGCATEGORYDEPTH_DESC" showon="source:joomshopping" > <option value="0">JALL</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </field> </fieldset> </fields> </form>PK�H#]�Uc�"�"+joomshopping/helper/helper_joomshopping.phpnu�[���<?php /** * @name Maximenu CK * @copyright Copyright (C) 2020. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; /** * Helper Class. */ class MaximenuckHelpersourceJoomshopping { static $_activeitem; /** * Get a list of the menu items. * * @param JRegistry $params The module options. * * @return array */ static function getItems(&$params, $all) { jimport('joomla.application.module.helper'); $input = new JInput(); $usesuffix = $params->get('usejoomshoppingsuffix', '0'); $imagesuffix = $params->get('joomshoppingimagesuffix', '_mini'); $useimages = $params->get('usejoomshoppingimages', '0'); $categoryroot = $params->get('joomshoppingcategoryroot', '0'); $categorydepth = $params->get('joomshoppingcategorydepth', '0'); $itemid = $params->get('joomshoppingitemid', ''); require_once (JPATH_SITE.'/components/com_jshopping/lib/factory.php'); require_once (JPATH_SITE.'/components/com_jshopping/lib/jtableauto.php'); require_once (JPATH_SITE.'/components/com_jshopping/tables/config.php'); require_once (JPATH_SITE.'/components/com_jshopping/lib/functions.php'); require_once (JPATH_SITE.'/components/com_jshopping/lib/multilangfield.php'); require_once (JPATH_ADMINISTRATOR.'/components/com_jshopping/models/categories.php'); JTable::addIncludePath(JPATH_SITE.'/components/com_jshopping/tables'); // get the active path $category_id = $input->get('category_id', 0, 'int'); $category = JTable::getInstance('category', 'jshop'); $category->load($category_id); $activepath = $category->getTreeParentCategories(); $model = JModelLegacy::getInstance('Categories', 'JshoppingModel'); if ( ($categoryroot && !$all) || $categorydepth) { $items = self::getTreeSubCategories($categoryroot, 0, $categorydepth); } else { $items = $model->getTreeAllCategories(); } $active_category_id = $input->get('category_id', '0', 'int'); if ($active_category_id) self::$_activeitem = $items[$active_category_id]; $lastitem = 0; foreach ($items as $i => &$item) { $item->params = new JRegistry(); $itemid = $itemid ? '&Itemid=' . $itemid : ''; $item->flink = JRoute::_('index.php?option=com_jshopping&controller=category&task=view&category_id=' . $item->category_id . $itemid); $item->deeper = false; $item->shallower = false; $item->level_diff = 0; $item->level = $item->level + 1; if (isset($items[$i - 1])) { $items[$i - 1]->deeper = ($item->level > $items[$i - 1]->level); $items[$i - 1]->shallower = ($item->level < $items[$i - 1]->level); $items[$i - 1]->level_diff = ($items[$i - 1]->level - $item->level); if ($items[$i - 1]->deeper AND $params->get('layout', 'default') != '_:flatlist') $items[$i - 1]->classe .= " parent"; } // test if it is the last item $item->is_end = !isset($items[$i + 1]); // manage item class $item->classe = ' item'.$item->category_id; if (isset($active_category_id) && $active_category_id == $item->category_id) { $item->classe .= ' current'; } if (in_array($item->category_id, $activepath)) { $item->classe .= ' active'; $item->isactive = true; } // search for parameters $patterns = "#{maximenu}(.*){/maximenu}#Uis"; $result = preg_match($patterns, stripslashes($item->description), $results); $item->desc = ''; $item->colwidth = ''; $item->tagcoltitle = 'none'; $item->tagclass = ''; $item->leftmargin = ''; $item->topmargin = ''; $item->submenuwidth = ''; if (isset($results[1])) { $cat_params = explode('|', $results[1]); for ($j = 0; $j < count($cat_params); $j++) { $item->desc = stristr($cat_params[$j], "desc=") ? str_replace('desc=', '', $cat_params[$j]) : $item->desc; $item->colwidth = stristr($cat_params[$j], "col=") ? str_replace('col=', '', $cat_params[$j]) : $item->colwidth; $item->tagcoltitle = stristr($cat_params[$j], "taghtml=") ? str_replace('taghtml=', '', $cat_params[$j]) : $item->tagcoltitle; $item->tagclass = stristr($cat_params[$j], "tagclass=") ? ' ' . str_replace('tagclass=', '', $cat_params[$j]) : $item->tagclass; $item->leftmargin = stristr($cat_params[$j], "leftmargin=") ? str_replace('leftmargin=', '', $cat_params[$j]) : $item->leftmargin; $item->topmargin = stristr($cat_params[$j], "topmargin=") ? str_replace('topmargin=', '', $cat_params[$j]) : $item->topmargin; $item->submenucontainerwidth = stristr($cat_params[$j], "submenuwidth=") ? str_replace('submenuwidth=', '', $cat_params[$j]) : $item->submenuwidth; } } $item->classe .= $item->tagclass; // variables definition $item->ftitle = stripslashes(htmlspecialchars($item->name)); $item->content = ""; $item->rel = ""; // manage images if (!$usesuffix) $imagesuffix = ''; $item->menu_image = ''; if ($useimages) { $imageurl = explode('.', $item->category_image); $imagename = isset($imageurl[0]) ? $imageurl[0] : ''; $imageext = isset($imageurl[1]) ? $imageurl[1] : ''; if (JFile::exists(JPATH_ROOT . '/components/com_jshopping/files/img_categories/' . $imagename . $imagesuffix . '.' . $imageext)) { $item->menu_image = 'components/com_jshopping/files/img_categories/' . $imagename . $imagesuffix . '.' . $imageext; } } // manage columns if ($item->colwidth) { $item->colonne = true; $parentItem = self::getParentItem($item->parent, $items); if (isset($parentItem->submenuswidth)) { $parentItem->submenuswidth = strval($parentItem->submenuswidth) + strval($item->colwidth); } else if( $parentItem ) { $parentItem->submenuswidth = strval($item->colwidth); } if (isset($items[$i - 1]) AND $items[$i - 1]->deeper) { $items[$i - 1]->columnwidth = $item->colwidth; } else { $item->columnwidth = $item->colwidth; } } if (isset($parentItem->submenucontainerwidth) AND $parentItem->submenucontainerwidth) $parentItem->submenuswidth = $parentItem->submenucontainerwidth; $item->name = $item->ftitle; // pour compat avec default.php $item->anchor_css = ''; $item->anchor_title = ''; $item->type = ''; // get plugin parameters that are used directly in the layout $item->liclass = $item->params->get('maximenu_liclass', ''); $item->colbgcolor = $item->params->get('maximenu_colbgcolor', ''); } // give the correct deep infos for the last item if (isset($items[$i])) { $items[$i]->level_diff = ($items[$i]->level - 1); } return $items; } static function getParentItem($id, $items) { foreach ($items as $item) { if ($item->category_id == $id) return $item; } } static public function getTreeSubCategories($categoryroot, $level, $categorydepth) { $category = JTable::getInstance('category', 'jshop'); $category->load($category_id); $model = JModelLegacy::getInstance('Categories', 'JshoppingModel'); $subcatsCount = $model->getAllCatCountSubCat(); $cats = $category->getSubCategories($categoryroot, 'ordering'); $items = Array(); foreach ($cats as $cat) { $cat->level = $level; $items[] = $cat; if ($subcatsCount[$cat->category_id] && ($categorydepth == 0 || $categorydepth > ($level+1)) ) { $subcats = self::getTreeSubCategories($cat->category_id, $cat->level + 1, $categorydepth); foreach ($subcats as $subcat) { $items[] = $subcat; } } } return $items; } } PK�H#]�#o,,joomshopping/helper/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]w�y���!articlesbydate/articlesbydate.phpnu�[���<?php /** * @copyright Copyright (C) 2018 Cédric KEIFLIN alias ced1870 * https://www.template-creator.com * https://www.joomlack.fr * @license GNU/GPL * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.event.plugin'); class plgMaximenuckArticlesbydate extends JPlugin { private $type = 'articlesbydate'; function __construct(&$subject, $params) { parent::__construct($subject, $params); } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetSourceName() { $this->loadLanguage(); return $this->type; } }PK�H#]Ds�vv!articlesbydate/articlesbydate.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <extension version="3" type="plugin" group="maximenuck" method="upgrade"> <name>Maximenu CK - Articles by date</name> <creationDate>June 2020</creationDate> <copyright>Copyright (C) 2018. All rights reserved.</copyright> <license>GNU General Public License version 2 or later</license> <author>Cedric Keiflin</author> <authorEmail>ced1870@gmail.com</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>9.1.25</version> <description>Loader of Articles by date items for Maximenu CK</description> <files> <filename plugin="articlesbydate">articlesbydate.php</filename> <folder>elements</folder> <folder>helper</folder> <folder>language</folder> <folder>params</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_articlesbydate.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_articlesbydate.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_articlesbydate.sys.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_articlesbydate.ini</language> </languages> </extension>PK�H#]wtW�"articlesbydate/elements/index.htmlnu�[���<html><body></body></html>PK�H#]�<���4�4/articlesbydate/helper/helper_articlesbydate.phpnu�[���<?php /** * @name Maximenu CK * @copyright Copyright (C) 2018. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Router\Route; use Joomla\Component\Content\Administrator\Extension\ContentComponent; use Joomla\Component\Content\Site\Helper\RouteHelper; use Joomla\Component\Content\Site\Helper\AssciationHelper; /** * Helper Class. */ class MaximenuckHelpersourceArticlesbydate { private static $params; /* * Get the items from the source */ public static function getItems($params, $all = false, $level = 1, $parent_id = 0) { if (empty(self::$params)) { self::$params = $params; } // Get an instance of the generic articles model $articles = self::getArticlesModel(); // Set application parameters in model $app = JFactory::getApplication(); $appParams = $app->getParams(); $articles->setState('params', $appParams); $articles->setState('filter.published', 1); // Access filter $access = !JComponentHelper::getParams('com_content')->get('show_noauth'); $authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id')); $articles->setState('filter.access', $access); // Prep for Normal or Dynamic Modes $mode = $params->get('mode', 'normal'); $option = $app->input->get('option', '', 'cmd'); $view = $app->input->get('view', '', 'cmd'); switch ($mode) { case 'dynamic': if ($option === 'com_content') { switch($view) { case 'category': $catids = array($app->input->get('id', 0, 'int')); break; case 'categories': $catids = array($app->input->get('id', 0, 'int')); break; case 'article': if ($params->get('articlesbydate_show_on_article_page', 1)) { $article_id = $app->input->get('id', 0, 'int'); $catid = $app->input->get('catid', 0, 'int'); if (!$catid) { // Get an instance of the generic article model $article = JModelLegacy::getInstance('Article', 'ContentModel', array('ignore_request' => true)); $article->setState('params', $appParams); $article->setState('filter.published', 1); $article->setState('article.id', (int) $article_id); $item = $article->getItem(); $catids = array($item->catid); } else { $catids = array($catid); } } else { // Return right away if show_on_article_page option is off return; } break; case 'featured': default: // Return right away if not on the category or article views return; } } else { // Return right away if not on a com_content page return; } break; case 'normal': default: $catids = $params->get('articlesbydate_catid'); $articles->setState('filter.category_id.include', (bool) $params->get('articlesbydate_category_filtering_type', 1)); break; } // Category filter if ($catids && !empty($catids) && isset($catids[0]) && $catids[0] !== '') { if ($params->get('articlesbydate_show_child_category_articles', 0) && (int) $params->get('articlesbydate_levels', 0) > 0) { // Get an instance of the generic categories model $categories = JModelLegacy::getInstance('Categories', 'ContentModel', array('ignore_request' => true)); $categories->setState('params', $appParams); $levels = $params->get('articlesbydate_levels', 1) ? $params->get('articlesbydate_levels', 1) : 9999; $categories->setState('filter.get_children', $levels); $categories->setState('filter.published', 1); $categories->setState('filter.access', $access); $additional_catids = array(); foreach($catids as $catid) { $categories->setState('filter.parentId', $catid); $recursive = true; $items = $categories->getItems($recursive); if ($items) { foreach($items as $category) { $condition = (($category->level - $categories->getParent()->level) <= $levels); if ($condition) { $additional_catids[] = $category->id; } } } } $catids = array_unique(array_merge($catids, $additional_catids)); } $articles->setState('filter.category_id', $catids); } // Ordering $articles->setState('list.ordering', 'a.created'); $articles->setState('list.direction', $params->get('articlesbydate_article_ordering_direction', 'DESC')); // New Parameters $articles->setState('filter.featured', $params->get('articlesbydate_show_front', 'show')); // $articles->setState('filter.author_id', $params->get('created_by', "")); // $articles->setState('filter.author_id.include', $params->get('author_filtering_type', 1)); // $articles->setState('filter.author_alias', $params->get('created_by_alias', "")); // $articles->setState('filter.author_alias.include', $params->get('author_alias_filtering_type', 1)); $excluded_articles = $params->get('articlesbydate_excluded_articles', ''); if ($excluded_articles) { $excluded_articles = explode("\r\n", $excluded_articles); $articles->setState('filter.article_id', $excluded_articles); $articles->setState('filter.article_id.include', false); // Exclude } $date_filtering = $params->get('articlesbydate_date_filtering', 'off'); if ($date_filtering !== 'off') { $articles->setState('filter.date_filtering', $date_filtering); $articles->setState('filter.date_field', $params->get('articlesbydate_date_field', 'a.created')); $articles->setState('filter.start_date_range', $params->get('articlesbydate_start_date_range', '1000-01-01 00:00:00')); $articles->setState('filter.end_date_range', $params->get('articlesbydate_end_date_range', '9999-12-31 23:59:59')); $articles->setState('filter.relative_date', $params->get('articlesbydate_relative_date', 30)); } // Filter by language $articles->setState('filter.language', $app->getLanguageFilter()); $items = $articles->getItems(); // Prepare data for display using display options $menuItems = Array(); $years = Array(); $months = Array(); $i = 0; $lastitem = 0; $lastyear = 0; $lastmonth = 0; $countitems = 0; $countitemsmonth = 0; foreach ($items as &$item) { $item->slug = $item->id.':'.$item->alias; $item->catslug = $item->catid ? $item->catid .':'.$item->category_alias : $item->catid; if ($access || in_array($item->access, $authorised)) { // We know that user has the privilege to view the article $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug)); } else { // Angie Fixed Routing $app = JFactory::getApplication(); $menu = $app->getMenu(); $menuitems = $menu->getItems('link', 'index.php?option=com_users&view=login'); if(isset($menuitems[0])) { $Itemid = $menuitems[0]->id; } elseif ($app->input->get('Itemid', 0, 'int') > 0) { //use Itemid from requesting page only if there is no existing menu $Itemid = $app->input->get('Itemid', 0, 'int'); } $item->link = JRoute::_('index.php?option=com_users&view=login&Itemid='.$Itemid); } // add the article to the slide $registry = new JRegistry; $registry->loadString($item->images); $item->images = $registry->toArray(); $article_image = null; $menuItem = self::initItem(); $menuItem->path = $params->get('articlesbydate_articleimgsource', 'introimage') != 'text' ? $article_image : null; $menuItem->flink = $menuItem->link = $item->link; $menuItem->ftitle = $item->title; // $menuItem->article->text = JHTML::_('content.prepare', $menuItem_article_text); // $menuItem->desc = $menuItem_article_text; $menuItem->id = $item->id; $menuItem->level = 3 + ($level - 1); // get active state $fulllink = str_replace(JUri::root(true), trim(JUri::root(), '/'), $item->link); $menuItem->isactive = $menuItem->active = trim(JUri::root(), '/') . '/' . trim($fulllink, '/') == JUri::current(); if ($menuItem->isactive) { $menuItem->classe = ' current active'; $menuItem->anchor_css .= ' isactive'; } $year = $item->created; $year = new DateTime($year); $year = $year->format('Y'); if (! in_array($year, $years)) { $years[] = $year; $yearItem = self::initItem(); $yearItem->ftitle = $year; $yearItem->type = 'separator'; $yearItem->level = 1 + ($level - 1); if ($yearItem->level == $level) { $yearItem->parent_id = $parent_id; } if (isset($menuItems[$lastitem])) { $menuItems[$lastyear]->countitems = $countitemsyear; $menuItems[$lastitem]->deeper = ($yearItem->level > $menuItems[$lastitem]->level); $menuItems[$lastitem]->shallower = ($yearItem->level < $menuItems[$lastitem]->level); $menuItems[$lastitem]->level_diff = ($menuItems[$lastitem]->level - $yearItem->level); if ($menuItems[$lastitem]->deeper AND $params->get('layout', 'default') != '_:flatlist') $menuItems[$lastitem]->classe .= " parent"; } $menuItems[$i] = $yearItem; $countitemsyear = 0; $lastitem = $i; $lastyear = $i; $i++; } $month = $item->created; $month = new DateTime($month); $month = $month->format('F'); if (! in_array($year.$month, $months)) { $months[] = $year.$month; $monthItem = self::initItem(); $monthItem->ftitle = JText::_(strtoupper($month)); $monthItem->type = 'separator'; $monthItem->level = 2 + ($level - 1); if (isset($menuItems[$lastitem])) { $menuItems[$lastmonth]->countitems = $countitemsmonth; $menuItems[$lastitem]->deeper = ($monthItem->level > $menuItems[$lastitem]->level); $menuItems[$lastitem]->shallower = ($monthItem->level < $menuItems[$lastitem]->level); $menuItems[$lastitem]->level_diff = ($menuItems[$lastitem]->level - $monthItem->level); if ($menuItems[$lastitem]->deeper AND $params->get('layout', 'default') != '_:flatlist') $menuItems[$lastitem]->classe .= " parent"; } $menuItems[$i] = $monthItem; $countitemsmonth = 0; $lastitem = $i; $lastmonth = $i; $i++; } if ($menuItem->isactive) { $menuItems[$lastyear]->classe = ' current active'; $menuItems[$lastyear]->anchor_css .= ' isactive'; $menuItems[$lastmonth]->classe = ' current active'; $menuItems[$lastmonth]->anchor_css .= ' isactive'; } // test if it is the last item $menuItem->is_end = !isset($menuItems[$i + 1]); $menuItems[$i] = $menuItem; $countitemsyear++; $countitemsmonth++; if (isset($menuItems[$lastitem])) { $menuItems[$lastyear]->countitems = $countitemsyear; $menuItems[$lastmonth]->countitems = $countitemsmonth; $menuItems[$lastitem]->deeper = ($menuItem->level > $menuItems[$lastitem]->level); $menuItems[$lastitem]->shallower = ($menuItem->level < $menuItems[$lastitem]->level); $menuItems[$lastitem]->level_diff = ($menuItems[$lastitem]->level - $menuItem->level); if ($menuItems[$lastitem]->deeper AND $params->get('layout', 'default') != '_:flatlist') $menuItems[$lastitem]->classe .= " parent"; } $lastitem = $i; $i++; } // give the correct deep infos for the last item if (isset($menuItems[$lastitem])) { $menuItems[$lastitem]->level_diff = ($menuItems[$lastitem]->level - 1 + ((int)$level-1)); } return $menuItems; } public static function initItem() { $item = new stdClass(); $item->params = new JRegistry(); $item->deeper = false; $item->shallower = false; $item->level_diff = 0; $item->isthirdparty = false; $item->is_end = false; $item->classe = ''; $item->desc = ''; $item->colwidth = ''; $item->tagcoltitle = 'none'; $item->tagclass = ''; $item->leftmargin = ''; $item->topmargin = ''; $item->submenuwidth = ''; $item->liclass = ''; $item->anchor_css = ''; $item->anchor_title = ''; $item->colbgcolor = ''; $item->menu_image = ''; $item->type = ''; $item->content = ''; $item->rel = ''; $item->link = ''; $item->title = ''; $item->parent_id = ''; $item->id = ''; // special for the thirdparty plugins $item->isthirdparty = true; $item->type = 'thirdparty'; return $item; } private static function getArticlesModel() { $app = Factory::getApplication(); if (version_compare(JVERSION, '4') >= 0) { $factory = $app->bootComponent('com_content')->getMVCFactory(); // Get an instance of the generic articles model $articles = $factory->createModel('Articles', 'Site', ['ignore_request' => true]); } else { // load the content articles file $com_path = JPATH_SITE . '/components/com_content/'; include_once $com_path . 'router.php'; include_once $com_path . 'helpers/route.php'; JModelLegacy::addIncludePath($com_path . '/models', 'ContentModel'); // Get an instance of the generic articles model $articles = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true)); } return $articles; } } PK�H#]�#o,, articlesbydate/helper/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]�o+�/articlesbydate/params/articlesbydate_params.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <fieldset name="editionfieldset" label=""> <field name="articlesbydatespacer" type="maximenuckspacer" label="PLG_MAXIMENUCK_ARTICLES_LABEL" style="title" showon="source:articlesbydate" /> <field name="articlesbydate_show_front" type="maximenuckradio" default="show" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_DESC" class="btn-group" icon="star.png" showon="source:articlesbydate" > <option value="show">JSHOW </option> <option value="hide">JHIDE </option> <option value="only">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ONLYFEATURED_VALUE </option> </field> <field name="articlesbydate_category_filtering_type" type="maximenuckradio" default="1" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_DESC" class="btn-group" icon="folder_wrench.png" showon="source:articlesbydate" > <option value="1">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_INCLUSIVE_VALUE </option> <option value="0">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_EXCLUSIVE_VALUE </option> </field> <field name="articlesbydate_catid" type="category" extension="com_content" multiple="true" size="5" label="JCATEGORY" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATEGORY_DESC" icon="folder_explore.png" showon="source:articlesbydate" > <option value="">JOPTION_ALL_CATEGORIES</option> </field> <field name="articlesbydate_show_child_category_articlesbydate" type="maximenuckradio" default="0" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_DESC" class="btn-group" icon="folder_table.png" showon="source:articlesbydate" > <option value="1">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_INCLUDE_VALUE </option> <option value="0">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_EXCLUDE_VALUE </option> </field> <field name="articlesbydate_levels" type="maximenucktext" default="1" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATDEPTH_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATDEPTH_DESC" icon="application_side_tree.png" showon="source:articlesbydate" /> <field name="articlesbydate_excluded_articlesbydate" type="textarea" cols="10" rows="3" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_EXCLUDEDARTICLES_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_EXCLUDEDARTICLES_DESC" icon="key_delete.png" showon="source:articlesbydate" /> <field name="articlesbydate_filteringspacer6" type="spacer" hr="true" showon="source:articlesbydate" /> <field name="articlesbydate_date_filtering" type="maximenuckradio" default="off" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATEFILTERING_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATEFILTERING_DESC" class="btn-group" icon="date.png" showon="source:articlesbydate" > <option value="off">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_OFF_VALUE </option> <option value="range">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DATERANGE_VALUE </option> <option value="relative">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_RELATIVEDAY_VALUE </option> </field> <field name="articlesbydate_date_field" type="maximenucklist" default="a.created" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATERANGEFIELD_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATERANGEFIELD_DESC" icon="date_next.png" showon="source:articlesbydate" > <option value="a.created">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_CREATED_VALUE </option> <option value="a.modified">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_MODIFIED_VALUE </option> <option value="a.publish_up">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_STARTPUBLISHING_VALUE </option> </field> <field name="articlesbydate_start_date_range" type="calendar" format="%Y-%m-%d %H:%M:%S" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_STARTDATE_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_STARTDATE_DESC" size="22" filter="user_utc" showon="source:articlesbydate" /> <field name="articlesbydate_end_date_range" type="calendar" format="%Y-%m-%d %H:%M:%S" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ENDDATE_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ENDDATE_DESC" size="22" filter="user_utc" showon="source:articlesbydate" /> <field name="articlesbydate_relative_date" type="maximenucktext" default="30" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_RELATIVEDATE_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_RELATIVEDATE_DESC" icon="date_go.png" showon="source:articlesbydate" /> <field name="articlesbydate_article_ordering_direction" type="maximenucklist" default="ASC" label="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERINGDIR_LABEL" description="MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERINGDIR_DESC" icon="arrow_direction.png" showon="source:articlesbydate" > <option value="DESC">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DESCENDING_VALUE </option> <option value="ASC">MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ASCENDING_VALUE </option> </field> </fieldset> </fields> </form>PK�H#]�#o,, articlesbydate/params/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]�V�"articlesbydate/language/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]p�.<<Iarticlesbydate/language/en-GB/en-GB.plg_maximenuck_articlesbydate.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_ARTICLESBYDATE_DESC ="<p>System - Maximenu CK Articles</p><p>The plugin allows you to load the articles by date into Maximenu CK</p>"PK�H#]T�M7��Earticlesbydate/language/en-GB/en-GB.plg_maximenuck_articlesbydate.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_ARTICLESBYDATE="Articles by date" MAXIMENUCK_ARTICLESBYDATE_DESC ="Maximenu CK Articles. The plugin allows you to load the articles by date into Maximenu CK</p>" MAXIMENUCK_ARTICLESBYDATE_SPACER_MAXIMENUCKARTICLES_PATCH_INSTALLED="Plugin Maximenu CK Articles installed and activated." PLG_MAXIMENUCK_ARTICLES_LABEL="Articles" MAXIMENUCK_ARTICLESBYDATE_AUTOLOADARTICLECATEGORY="Autoload from a category of articles" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_DESC="Select to Show, Hide, or Only display Featured Articles." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_LABEL="Featured Articles" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_COUNT_DESC="The number of items to display. The default value of 0 will display all articles." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_COUNT_LABEL="Count" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_DESC="Select to Show, Hide, or Only display Featured Articles." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_LABEL="Featured Articles" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ONLYFEATURED_VALUE="Only" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_DESC="Select Inclusive to Include the Selected Categories, Exclusive to Exclude the Selected Categories." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_LABEL="Category Filtering Type" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_INCLUSIVE_VALUE="Inclusive" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_EXCLUSIVE_VALUE="Exclusive" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATEGORY_DESC="Please select one or more categories." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_DESC="Include or Exclude Articles from Child Categories." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_LABEL="Child Category Articles" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_INCLUDE_VALUE="Include" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_EXCLUDE_VALUE="Exclude" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATDEPTH_DESC="The number of child category levels to return." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATDEPTH_LABEL="Category Depth" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_EXCLUDEDARTICLES_DESC="Please enter each Article ID on a new line." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_EXCLUDEDARTICLES_LABEL="Article IDs to Exclude" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATEFILTERING_DESC="Select Date Filtering Type." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATEFILTERING_LABEL="Date Filtering" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_OFF_VALUE="Off" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DATERANGE_VALUE="Date Range" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_RELATIVEDAY_VALUE="Relative Date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_STARTPUBLISHING_VALUE="Start Publishing Date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_FINISHPUBLISHING_VALUE="Finish Publishing Date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_CREATED_VALUE="Created Date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATERANGEFIELD_DESC="Select which date field you want the date range to be applied to." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATERANGEFIELD_LABEL="Date Range Field" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_MODIFIED_VALUE="Modified Date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_STARTDATE_DESC="If Date Range is selected above, please enter a Starting Date." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_STARTDATE_LABEL="Start Date Range" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ENDDATE_DESC="If Date Range is selected above, please enter an End Date." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ENDDATE_LABEL="To Date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_RELATIVEDATE_DESC="If Relative Date is selected above, please enter in a numeric day value. Results will be retrieved relative to the current date and the value you enter." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_RELATIVEDATE_LABEL="Relative Date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERING_DESC="Select which field you would like Articles to be ordered by. Featured Ordering should only be used when Filtering Option for Featured Articles is set to 'Only'." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERING_LABEL="Article Field to Order By" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ORDERING_VALUE="Article Manager Order" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ORDERINGFEATURED_VALUE="Featured Articles Order" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_HITS_VALUE="Hits" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ID_VALUE="ID" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERINGDIR_DESC="Select the direction you would like Articles to be ordered by." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERINGDIR_LABEL="Ordering Direction" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ASCENDING_VALUE="Ascending" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DESCENDING_VALUE="Descending" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_MODE_DESC="Please select the mode you would like to use. If Normal Mode is chosen, then simply configure the module and it will display a static list of Articles on the menu items you assign the module to. If Dynamic Mode is chosen, then you can still configure the module normally, however now the Category option will no longer be used. Instead, the module will dynamically detect whether or not you are on a Category view and will display the list of articles within that Category accordingly. When Dynamic Mode is chosen, it is best to leave the module set to display on all pages, as it will decide whether or not to display anything dynamically." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_MODE_LABEL="Mode" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_NORMAL_VALUE="Normal" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DYNAMIC_VALUE="Dynamic" MAXIMENUCK_ARTICLESBYDATE_ARTICLEIMAGESOURCE_LABEL="Load articles based on" MAXIMENUCK_ARTICLESBYDATE_ARTICLEIMAGESOURCE_DESC="This filter allows you to select if you want to load all the articles from the filter belows and take the first image in the content, or use the 'intro image' option for each article (if no into image is set the article is not added)" MAXIMENUCK_ARTICLESBYDATE_ARTICLEFROMINTROIMAGE_OPTION="Intro image article option" MAXIMENUCK_ARTICLESBYDATE_ARTICLEFROMFIRSTIMAGE_OPTION="First image in the content" MAXIMENUCK_ARTICLESBYDATE_ARTICLEFROMTEXT_OPTION="Only text" PK�H#]�V�(articlesbydate/language/en-GB/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�V�(articlesbydate/language/fr-FR/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]��� Earticlesbydate/language/fr-FR/fr-FR.plg_maximenuck_articlesbydate.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_ARTICLESBYDATE="Articles par date" MAXIMENUCK_ARTICLESBYDATE_DESC ="<p>Maximenu CK Articles</p><p>Le plugin permet d'afficher les articles par date dans le module Maximenu CK</p>" PLG_MAXIMENUCK_ARTICLES_LABEL="Articles" MAXIMENUCK_ARTICLESBYDATE_SPACER_MAXIMENUCKARTICLES_PATCH_INSTALLED="Plugin Maximenu CK Articles installé et activé." MAXIMENUCK_ARTICLESBYDATE_AUTOLOADARTICLECATEGORY="Charger automatiquement depuis une catégorie d'articles" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_DESC="Afficher, masquer, ou afficher uniquement les articles 'en vedette'." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWFEATURED_LABEL="Articles 'en vedette'" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_COUNT_DESC="Nombre d'articles à afficher.<br />La valeur '0' affiche tous les articles." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_COUNT_LABEL="Nombre" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_DESC="Le mode 'Inclure' inclut uniquement les catégories sélectionnées<br />Le mode 'Exclure' exclut toutes les catégories sélectionnées." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_LABEL="Filtre de catégorie" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ONLYFEATURED_VALUE="Uniquement" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_DESC="Le mode 'Inclure' inclut uniquement les catégories sélectionnées<br />Le mode 'Exclure' exclut toutes les catégories sélectionnées." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATFILTERINGTYPE_LABEL="Filtre de catégorie" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_INCLUSIVE_VALUE="Inclure" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_EXCLUSIVE_VALUE="Exclure" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATEGORY_DESC="Veuillez sélectionner une ou plusieurs catégories." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_DESC="Inclure ou exclure les articles des catégories enfants." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_LABEL="Catégories enfants" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_INCLUDE_VALUE="Inclure" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_EXCLUDE_VALUE="Exclure" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATDEPTH_DESC="Nombre de niveaux de catégories enfants à afficher." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_CATDEPTH_LABEL="Niveaux de catégorie" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_EXCLUDEDARTICLES_DESC="Veuillez saisir chaque ID d'article à exclure sur une nouvelle ligne." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_EXCLUDEDARTICLES_LABEL="ID des articles à exclure" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATEFILTERING_DESC="Le mode 'Plage' définit les articles à afficher selon une date de départ et de fin.<br />Le mode 'Relative' définit les articles à afficher selon une date relative basée sur les X derniers jours spécifiés." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATEFILTERING_LABEL="Filtre de date" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_OFF_VALUE="Désactivé" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DATERANGE_VALUE="Plage" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_RELATIVEDAY_VALUE="Relative" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_STARTPUBLISHING_VALUE="Date de début de publication" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_FINISHPUBLISHING_VALUE="Date de fin de publication" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_CREATED_VALUE="Date de création" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATERANGEFIELD_DESC="Sélectionnez le champ date auquel appliquer la plage de dates." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_DATERANGEFIELD_LABEL="Plage de dates" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_MODIFIED_VALUE="Date de modification" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_STARTDATE_DESC="Si le mode 'Plage' est sélectionné, saisissez une date de début." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_STARTDATE_LABEL="Début de la plage" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ENDDATE_DESC="Si le mode 'Plage' est sélectionné, saisissez une date de fin." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ENDDATE_LABEL="Fin de la plage" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_RELATIVEDATE_DESC="Si le mode 'Relative' est est sélectionné, saisissez une valeur numérique correspondant au nombre de jours à tenir compte à partir de la date du jour consulté." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_RELATIVEDATE_LABEL="Date relative" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERING_DESC="Sélectionnez le champ par lequel les articles sont triés." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERING_LABEL="Champ de tri" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ORDERING_VALUE="Ordre de Joomla!" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ORDERINGFEATURED_VALUE="Articles en vedette" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_HITS_VALUE="Clics" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ID_VALUE="ID" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERINGDIR_DESC="Sélectionnez le sens de tri des articles. Tri par Articles en vedette ne doit être utilisé que lorsque l'option de tri pour les Articles en vedette est paramètré sur 'Uniquement'." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_ARTICLEORDERINGDIR_LABEL="Sens du tri" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_ASCENDING_VALUE="Ascendant" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DESCENDING_VALUE="Descendant" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_MODE_DESC="Veuillez sélectionner le mode souhaité.<br />Le mode 'Normal' affiche une liste statique d'articles selon les paramètres du module.<br />Le mode 'Dynamique' affiche une liste d'articles selon les paramètres du module mais également selon la page sur laquelle il est affiché (les paramètres sur les catégories ne sont pas pris en compte) ; le module détecte si vous êtes sur un affichage de type 'Catégorie' et adapte la liste avec des articles de cette catégorie." MAXIMENUCK_ARTICLESBYDATE_CATEGORY_FIELD_MODE_LABEL="Mode" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_NORMAL_VALUE="Normal" MAXIMENUCK_ARTICLESBYDATE_CATEGORY_OPTION_DYNAMIC_VALUE="Dynamique" MAXIMENUCK_ARTICLESBYDATE_ARTICLEIMAGESOURCE_LABEL="Charge les articles en se basant sur" MAXIMENUCK_ARTICLESBYDATE_ARTICLEIMAGESOURCE_DESC="Ce filtre vous permet de choisir si vous voulez que les images soient chargées en cherchant la première image contenue dans l'article, ou alors en se basant sur l'option 'image d'intro' de l'article (si l'article n'a aucune image d'intro il ne sera alors pas chargé dans le slideshow)" MAXIMENUCK_ARTICLESBYDATE_ARTICLEFROMINTROIMAGE_OPTION="Image d'intro de l'article" MAXIMENUCK_ARTICLESBYDATE_ARTICLEFROMFIRSTIMAGE_OPTION="Première image contenu dans l'article" MAXIMENUCK_ARTICLESBYDATE_ARTICLEFROMTEXT_OPTION="Seulement le texte"PK�H#]�K/PjjIarticlesbydate/language/fr-FR/fr-FR.plg_maximenuck_articlesbydate.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_ARTICLESBYDATE_DESC ="<p>Système - Maximenu CK Articles par date</p><p>Le plugin permet d'afficher les articles dans le module Maximenu CK</p>"PK�H#],N� � )hikashop/elements/ckhikashopcategory2.phpnu�[���<?php /** * @copyright Copyright (C) 2016 Cedric KEIFLIN alias ced1870 * http://www.joomlack.fr * @license GNU/GPL * */ defined('JPATH_BASE') or die; jimport('joomla.filesystem.file'); jimport('joomla.form.formfield'); JFormHelper::loadFieldClass('list'); class JFormFieldCkhikashopcategory2 extends JFormFieldList { protected $type = 'ckhikashopcategory2'; protected function getOptions() { // if the component is not installed if (!JFolder::exists(JPATH_ROOT . '/administrator/components/com_hikashop')) { // add the root item $option = new stdClass(); $option->text = JText::_('PLG_MAXIMENUCK_HIKASHOP_NOTFOUND'); $option->value = '0'; $options[] = $option; // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } // get the categories // $cats = $this->getCategories(); require_once JPATH_ROOT . '/plugins/maximenuck/hikashop/helper/helper_hikashop.php'; $className = 'MaximenuckHelpersourceHikashop'; $params = new JRegistry(); $cats = $className::getItems($params, $all = false); // add the root item $option = new stdClass(); $option->text = JText::_('PLG_MAXIMENUCK_HIKASHOP_PRODUCT_CATEGORY'); $option->value = '2'; $options[] = $option; foreach ($cats as $cat) { $option = new stdClass(); $option->text = str_repeat(" - ", $cat->level) . $cat->name; $option->value = $cat->id; $options[] = $option; } // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } protected function getCategories() { $db = JFactory::getDBO(); $query = "SELECT category_name as name," . " #__hikashop_category.category_id as id," . " #__hikashop_category.category_depth-1 as level," . " #__hikashop_category.category_parent_id as parent," . " #__hikashop_category.category_ordering as ordering" . " FROM #__hikashop_category" . " WHERE #__hikashop_category.category_type = 'product'" . " AND #__hikashop_category.category_published = 1" . " AND #__hikashop_category.category_depth > 1" . " ORDER BY parent DESC, ordering ASC"; $db->setQuery($query); if ($db->execute()) { $rows = $db->loadObjectList('id'); } else { echo '<p style="color:red;font-weight:bold;">Error loading SQL data : loading the hikashop categories in Maximenu CK</p>'; return false; } $level = 0; $items = array(); $i = 0; foreach ($rows as $k => &$item) { // saves childs into parents items if ($item->level > 1) { $rows[$item->parent]->haschild = 'yes'; if (isset($item->haschild)) { $rows[$item->parent]->enfants.=$item->id . '|' . $item->enfants; } else { if (isset($rows[$item->parent]->enfants)) { $rows[$item->parent]->enfants.=$item->id . '|'; } else { $rows[$item->parent]->enfants=$item->id . '|'; } } } // create childs after respective parent if ($item->level == 1) { //gestion des droits des parents niveau 0 $items[$i] = $item; if (isset($active_category_id) && $active_category_id == $item->id) { // $active_path[] = $item->id; } $item->path = array(); $item->path[] = $item->id; if (isset($item->haschild)) { $childs = explode("|", $item->enfants); foreach ($childs as $c) { if ($c) { $i++; $item->path[] = $rows[$c]->id; $rows[$c]->path = $item->path; $items[$i] = $rows[$c]; } } } } else { $i--; } $i++; } return $items; } } PK�H#]��\ 55%hikashop/elements/ckhikashopcheck.phpnu�[���<?php /** * @copyright Copyright (C) 2020 Cedric KEIFLIN alias ced1870 * https://www.joomlack.fr * @license GNU/GPL * */ defined('JPATH_BASE') or die; jimport('joomla.form.formfield'); class JFormFieldCkhikashopcheck extends JFormField { protected $type = 'ckhikashopcheck'; protected function getLabel() { return ''; } protected function getInput() { $html = ''; if (! file_exists(JPATH_ROOT . '/administrator/components/com_maximenuckhikashop/maximenuckhikashop.php')) { $html .= '<div class="ckinfo"><i class="fas fa-exclamation-triangle" style="color:red;"></i><a href="https://www.joomlack.fr/telecharger-extensions-joomla/view_document/76-patch-maximenu-ck-hikashop-joomla-3-x" target="_blank">' . JText::_('MAXIMENUCK_HIKASHOP_COMPONENT_MISSING') . '</a></div>'; } return $html; } } PK�H#]=.;%BB(hikashop/elements/ckhikashopcategory.phpnu�[���<?php /** * @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870 * http://www.joomlack.fr * Module Maximenu CK * @license GNU/GPL * */ defined('JPATH_BASE') or die; jimport('joomla.filesystem.file'); jimport('joomla.form.formfield'); JFormHelper::loadFieldClass('list'); class JFormFieldCkhikashopcategory extends JFormFieldList { protected $type = 'ckhikashopcategory'; protected function getOptions() { // if the component is not installed if (!JFolder::exists(JPATH_ROOT . '/administrator/components/com_hikashop') OR !JFile::exists(JPATH_ROOT . '/modules/mod_maximenuck/helper_hikashop.php')) { // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_HIKASHOP_NOTFOUND'); $option->value = '0'; $options[] = $option; // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } // get the categories form the helper $params = new JRegistry(); require_once JPATH_ROOT . '/modules/mod_maximenuck/helper_hikashop.php'; $cats = modMaximenuckhikashopHelper::getItems($params); // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_HIKASHOP_ROOTNODE'); $option->value = '0'; $options[] = $option; foreach ($cats as $cat) { $option = new stdClass(); $option->text = str_repeat(" - ", $cat->level - 1) . $cat->name; $option->value = $cat->id; $options[] = $option; } // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } } PK�H#]wtW�hikashop/elements/index.htmlnu�[���<html><body></body></html>PK�H#]�#o,,hikashop/helper/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]]���@�@#hikashop/helper/helper_hikashop.phpnu�[���<?php /** * @name Maximenu CK * @copyright Copyright (C) 2020. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; /** * Helper Class. */ class MaximenuckHelpersourceHikashop { private static $params; private static $categorydepth; private static $root; private static $level; /* * Get the items from the source */ public static function getItems($params, $all = false, $level = 1, $parent_id = 0) { if (empty(self::$params)) { self:$params = $params; } // load the hikashop config class if(!include_once(JPATH_ADMINISTRATOR.'/components/com_hikashop/helpers/helper.php')){ echo 'This module can not work without the Hikashop Component'; return; } $app = JFactory::getApplication(); $input = $app->input; self::$level = $level; self::$params = $params; $usehikashopsuffix = $params->get('usehikashopsuffix', '0'); $hikashopimagesuffix = $params->get('hikashopimagesuffix', '_mini'); $usehikashopimages = $params->get('usehikashopimages', '0'); $categoryroot = $params->get('hikashopcategoryroot', '2'); $categorydepth = self::$categorydepth = $params->get('hikashopcategorydepth', '0'); $hikashopshowall = $params->get('hikashopshowall', '1'); $hikashopitemid = $params->get('hikashopitemid', ''); $active_category_id = ($input->get('ctrl', 'category') == 'category') ? $input->get('cid', '0', 'int') : self::getActiveCategory($input->get('cid', '0', 'int')); $categoryClass = hikashop_get('class.category'); // replace the root category with the active category if we want to show only the cats from the active path if (! $hikashopshowall && $active_category_id != 0) { $categoryroot = $active_category_id; } $db = JFactory::getDBO(); $query = "SELECT category_left, category_right, category_depth" . " FROM #__hikashop_category" . " WHERE category_id = " . (int) $categoryroot ; $db->setQuery($query); if ($db->execute()) { $root = self::$root = $db->loadObject(); } else { echo '<p style="color:red;font-weight:bold;">Error loading SQL data : loading the hikashop root category in Maximenu CK</p>'; return false; } // get the list of categories $rows = array(); $activeCategories = array(); self::getCategoryParentRecurse($active_category_id, $activeCategories); self::recurseCategories($categoryroot, 0, $rows, $categorydepth, $active_category_id); $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedGroups()); // reset the array index $items = array(); $i = 0; foreach ($rows as $row) { $element = $categoryClass->get($row->category_id); if(!empty($element->category_id)) { $translationHelper = hikashop_get('helper.translation'); $translationHelper->getTranslations($element); $row->category_name = $element->category_name; $row->category_description = $element->category_description; } // check the access level if (isset($rows[$row->parent]) && $rows[$row->parent]->category_access != 'all' && $row->category_access == 'all') $row->category_access = $rows[$row->parent]->category_access; if ($row->category_access != 'all') { if (!count(array_intersect(explode(',',$groups), explode(',',$row->category_access)))) { unset($rows[$row->category_parent_id]); continue; } } // check if there are some products if ($params->get('hikashopshowemptycats', '1') == '0') { $childProducts = self::getChidrenProducts($row->id); if ((int)$row->category_right - (int)$row->category_left == 1 && $childProducts == 0) { unset($rows[$row->category_id]); continue; } } // check if the parent item is published if ($row->category_parent_id != $categoryroot && ! isset($rows[$row->category_parent_id])) {; unset($rows[$row->category_id]); continue; } $items[$i] = $row; $i++; } $configClass = hikashop_get('class.config'); $uploadfoler = $configClass->get('uploadfolder', 'media/com_hikashop/upload/'); foreach ($items as $i => &$item) { $item->params = new JRegistry(); $itemid = $hikashopitemid ? '&Itemid=' . $hikashopitemid : ''; if(empty($element->category_alias)){ $item->alias = $item->category_name; }else{ $item->alias = $item->category_alias; } if(method_exists($app,'stringURLSafe')){ $itemalias = $app->stringURLSafe(strip_tags($item->alias)); }else{ $itemalias = JFilterOutput::stringURLSafe(strip_tags($item->alias)); } // $item->flink = $item->link = JRoute::_('index.php?option=com_hikashop&ctrl=category&task=listing&cid=' . $item->id . '&name=' . $itemalias . $itemid); $item->flink = $item->link = hikashop_contentLink('category&task=listing&cid='.$item->id.'&name='.$itemalias.$itemid,$item); $item->deeper = false; $item->shallower = false; $item->level_diff = 0; $item->isthirdparty = true; if (isset($items[$i - 1])) { $items[$i - 1]->deeper = ($item->level > $items[$i - 1]->level); $items[$i - 1]->shallower = ($item->level < $items[$i - 1]->level); $items[$i - 1]->level_diff = ($items[$i - 1]->level - $item->level); if ($items[$i - 1]->deeper AND $params->get('layout', 'default') != '_:flatlist') $items[$i - 1]->classe .= " parent"; } // test if it is the last item $item->is_end = !isset($items[$i + 1]); // add some classes $item->classe = " item" . $item->id; if (in_array($item->id, $activeCategories)) { $item->classe .= " active"; } if (isset($active_category_id) && $active_category_id == $item->id) { $item->classe .= " current"; } // search for parameters $patterns = "#{maximenu}(.*){/maximenu}#Uis"; $result = preg_match($patterns, stripslashes($item->category_description), $results); $item->desc = ''; $item->colwidth = ''; $item->tagcoltitle = 'none'; $item->tagclass = ''; $item->leftmargin = ''; $item->topmargin = ''; $item->submenuwidth = ''; // old method - kept for backward compatibility if (isset($results[1])) { $hikashopparams = explode('|', $results[1]); for ($j = 0; $j < count($hikashopparams); $j++) { $item->desc = stristr($hikashopparams[$j], "desc=") ? str_replace('desc=', '', $hikashopparams[$j]) : $item->desc; $item->colwidth = stristr($hikashopparams[$j], "col=") ? str_replace('col=', '', $hikashopparams[$j]) : $item->colwidth; $item->tagcoltitle = stristr($hikashopparams[$j], "taghtml=") ? str_replace('taghtml=', '', $hikashopparams[$j]) : $item->tagcoltitle; $item->tagclass = stristr($hikashopparams[$j], "tagclass=") ? ' ' . str_replace('tagclass=', '', $hikashopparams[$j]) : $item->tagclass; $item->leftmargin = stristr($hikashopparams[$j], "leftmargin=") ? str_replace('leftmargin=', '', $hikashopparams[$j]) : $item->leftmargin; $item->topmargin = stristr($hikashopparams[$j], "topmargin=") ? str_replace('topmargin=', '', $hikashopparams[$j]) : $item->topmargin; $item->submenucontainerwidth = stristr($hikashopparams[$j], "submenuwidth=") ? str_replace('submenuwidth=', '', $hikashopparams[$j]) : $item->submenuwidth; $item->createnewrow = stristr($hikashopparams[$j], "newrow") ? 1 : 0; } } // new method to get the settings $item->ckparams = isset($item->ckparams) ? $item->ckparams : ''; $item->maximenuckparams = new JRegistry($item->ckparams); // $item->maximenuckparams = new JRegistry($item->maximenuckparams->get('maximenu', '')); $item->desc = $item->maximenuckparams->get('maximenu_desc', ''); $item->createcolumn = $item->maximenuckparams->get('maximenu_createcolumn', ''); $item->colwidth = $item->maximenuckparams->get('maximenu_colwidth', '180'); $item->tagcoltitle = $item->maximenuckparams->get('maximenu_tagcoltitle', 'none'); $item->tagclass = $item->maximenuckparams->get('maximenu_tagclass', ''); $item->leftmargin = $item->maximenuckparams->get('maximenu_leftmargin', ''); $item->topmargin = $item->maximenuckparams->get('maximenu_topmargin', ''); $item->submenucontainerwidth = $item->maximenuckparams->get('maximenu_submenucontainerwidth', ''); $item->submenucontainerheight = $item->maximenuckparams->get('maximenu_submenucontainerheight', ''); $item->createnewrow = $item->maximenuckparams->get('maximenu_createnewrow', ''); $item->type = $item->maximenuckparams->get('maximenu_type', ''); $item->params->set('maximenu_icon', $item->maximenuckparams->get('maximenu_icon', '')); $item->liclass = $item->maximenuckparams->get('maximenu_liclass', ''); $item->params = $item->maximenuckparams; $item->classe .= $item->tagclass; // variables definition $item->ftitle = $item->title = stripslashes(htmlspecialchars($item->category_name)); $item->type = 'thirdparty'; $item->content = ""; $item->rel = ""; if ($item->level == $level) { $item->parent_id = $parent_id; } // manage the class to show the item on desktop and mobile if ($item->maximenuckparams->get('maximenu_disablemobile') == '1') { $item->classe .= ' nomobileck'; } if ($item->maximenuckparams->get('maximenu_disabledesktop') == '1') { $item->classe .= ' nodesktopck'; } // manage images if (!$usehikashopsuffix) $hikashopimagesuffix = ''; $item->menu_image = ''; if ($usehikashopimages) { $imageurl = $item->file_path ? explode(".", $item->file_path) : ''; $imagename = isset($imageurl[0]) ? $imageurl[0] : ''; $imageext = isset($imageurl[1]) ? $imageurl[1] : ''; if (JFile::exists(JPATH_ROOT . '/' . trim($uploadfoler, '/') . '/' . $imagename . $hikashopimagesuffix . '.' . $imageext)) { $item->menu_image = JUri::root(true) . '/' . trim($uploadfoler, '/') . '/' . $imagename . $hikashopimagesuffix . '.' . $imageext; } } $parentItem = isset($rows[$item->category_parent_id]) ? $rows[$item->category_parent_id] : null; // manage columns // if (! $parent_id) { if ( (isset($item->createcolumn) && $item->createcolumn && $item->colwidth) || (!isset($item->createcolumn) && $item->colwidth) ) { $item->colonne = true; // $parentItem = self::getParentItem($item->parent, $items); if (isset($parentItem->submenuswidth)) { if (! stristr($item->colwidth, '%') && ! stristr($item->colwidth, 'auto')) $parentItem->submenuswidth = strval($parentItem->submenuswidth) + strval($item->colwidth); } else if (isset($parentItem) && $parentItem) { if (! stristr($item->colwidth, '%') && ! stristr($item->colwidth, 'auto')) $parentItem->submenuswidth = strval($item->colwidth); } if (isset($items[$i - 1]) AND $items[$i - 1]->deeper) { $items[$i - 1]->nextcolumnwidth = $item->colwidth; } $item->columnwidth = $item->colwidth; } if (isset($parentItem->submenucontainerwidth) AND $parentItem->submenucontainerwidth) $parentItem->submenuswidth = $parentItem->submenucontainerwidth; // } $item->name = $item->ftitle; // needed for the layouts $item->anchor_css = ''; $item->anchor_title = ''; // $item->type = ''; // get plugin parameters that are used directly in the layout $item->colbgcolor = ''; } // give the correct deep infos for the last item if (isset($items[$i])) { $items[$i]->level_diff = ($items[$i]->level - 1 + ((int)$level-1)); } return $items; } static function getChidrenItems($parent_id) { $db = JFactory::getDBO(); // $query = "SELECT *," // ." 1 as level" // ." FROM #__hikashop_categories" // ." WHERE published = 1" // ." AND parent = " . (int) $parent_id // ." ORDER BY ordering ASC"; $ordering = self::$params->get('hikashoporderby', 'ordering'); // var_dump(self::$params); switch ($ordering) { case 'name' : $orderby = " ORDER BY #__hikashop_category.category_name ASC"; break; case 'order' : default : $orderby = " ORDER BY ordering ASC"; break; } $query = "SELECT *," . " #__hikashop_category.category_id as id," . " #__hikashop_category.category_depth-".self::$root->category_depth."+".((int)self::$level-1)." as level," . " #__hikashop_category.category_parent_id as parent," . " #__hikashop_category.category_ordering as ordering" . " FROM #__hikashop_category" . " LEFT OUTER JOIN #__hikashop_file" . " ON #__hikashop_file.file_ref_id = #__hikashop_category.category_id" . " AND #__hikashop_file.file_type = 'category'" . " WHERE #__hikashop_category.category_type = 'product'" . " AND #__hikashop_category.category_parent_id = " . (int) $parent_id . " AND #__hikashop_category.category_published = 1" . " AND #__hikashop_category.category_depth > 1" . (self::$categorydepth ? " AND #__hikashop_category.category_depth <= " . ((int)self::$categorydepth + (int)self::$root->category_depth) : "") . " AND #__hikashop_category.category_left > " . self::$root->category_left . " AND #__hikashop_category.category_right <" . self::$root->category_right . $orderby; $db->setQuery($query); if ($db->execute()) { $rows = $db->loadObjectList('id'); return $rows; } else { echo '<p style="color:red;font-weight:bold;">Error loading SQL data : loading the hikashop categories in Maximenu CK</p>'; return false; } } static function getChidrenProducts($parent_id) { $db = JFactory::getDBO(); $query = "SELECT count(#__hikashop_product.product_id)" . " FROM #__hikashop_product_category" . " LEFT JOIN #__hikashop_product" . " ON #__hikashop_product_category.product_id = #__hikashop_product.product_id" . " WHERE #__hikashop_product_category.category_id = " . (int) $parent_id . " AND #__hikashop_product.product_published = '1'" ; $db->setQuery($query); if ($db->execute()) { $rows = $db->loadResult(); return $rows; } else { echo '<p style="color:red;font-weight:bold;">Error loading SQL data : loading the hikashop categories in Maximenu CK</p>'; return false; } } static function recurseCategories($category_id, $level, &$sortedCats, $depth, $active_category_id) { $level++; // if (self::hasChildren($category_id)) { $childCats = self::getChidrenItems($category_id); if(!empty($childCats)){ foreach ($childCats as $childCat) { // $childCat->level = $level; $sortedCats[$childCat->id] = $childCat; if ( ($depth > 0 && $level < $depth) || $depth == 0) { self::recurseCategories($childCat->id, $level, $sortedCats, $depth, $active_category_id); } } } // } } static function getCategoryParentRecurse($category_id, &$activeCategories) { $activeCategories[] = $category_id; $db = JFactory::getDBO(); $query = "SELECT #__hikashop_category.category_parent_id as parent" ." FROM #__hikashop_category" ." WHERE #__hikashop_category.category_published = 1" ." AND #__hikashop_category.category_id = " . (int) $category_id; $db->setQuery($query); if ($db->execute()) { $parent_category_id = (int)$db->loadResult(); } else { $parent_category_id = null; } if($parent_category_id){ self::getCategoryParentRecurse($parent_category_id, $activeCategories); } } static function getParentItem($id, $items) { foreach ($items as $item) { if ($item->id == $id) return $item; } return false; } static function getActiveCategory($productid) { $query = "SELECT category_id" . " FROM #__hikashop_product_category" . " WHERE product_id = " . $productid . ";"; $db = JFactory::getDBO(); $db->setQuery($query); if ($db->execute()) { $categoryid = $db->loadResult(); } else { echo '<p style="color:red;font-weight:bold;">Error loading SQL data : loading the active hikashop category in Maximenu CK</p>'; return false; } return $categoryid; } } PK�H#]�w2��hikashop/hikashop.phpnu�[���<?php /** * @copyright Copyright (C) 2020 Cédric KEIFLIN alias ced1870 * https://www.template-creator.com * https://www.joomlack.fr * @license GNU/GPL * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.event.plugin'); class plgMaximenuckHikashop extends JPlugin { private $type = 'hikashop'; private $shallLoad = true; function __construct(&$subject, $params) { // does not load if the component is not installed $this->shallLoad = file_exists(JPATH_SITE . '/administrator/components/com_hikashop'); if (! $this->shallLoad) return; parent::__construct($subject, $params); } /* * Initiate the lugin load * * Return mixed */ function registerListeners() { if ($this->shallLoad === true) { parent::registerListeners(); } else { return false; } } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetSourceName() { $this->loadLanguage(); return $this->type; } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetTypeName() { $this->loadLanguage(); return $this->type; } /* * Display the html code for the item to be used into the frontend page * @param string the item object from simple_html_dom * * Return String the html code */ public function onMaximenuckRenderItemHikashop($item) { require_once(__DIR__ . '/helper/helper_' . $this->type . '.php'); $hikashop = MaximenuckHelpersourceHikashop::getItems($item->params); $html = '<ul class="maximenuck2">'; foreach ($hikashop as $article) { $article->level = $item->level; $article->type = 'article'; $html .= Maximenuck\Helperfront::getHtmlItem($article); } $html .= '</ul>'; return $html; } }PK�H#] J^EEhikashop/hikashop.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <extension version="3" type="plugin" group="maximenuck" method="upgrade"> <name>Maximenu CK - Hikashop</name> <creationDate>January 2020</creationDate> <copyright>Copyright (C) 2020. All rights reserved.</copyright> <license>GNU General Public License version 2 or later</license> <author>Cedric Keiflin</author> <authorEmail>ced1870@gmail.com</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>9.1.25</version> <description>Loader of Hikashop items for Maximenu CK</description> <files> <filename plugin="hikashop">hikashop.php</filename> <folder>elements</folder> <folder>helper</folder> <folder>language</folder> <folder>params</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_hikashop.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_hikashop.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_hikashop.sys.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_hikashop.ini</language> </languages> </extension>PK�H#]�#o,,hikashop/params/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#] EE<<#hikashop/params/hikashop_params.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <fieldset name="editionfieldset" label="" addfieldpath="/plugins/maximenuck/hikashop/elements"> <field name="hikashopspacer" type="maximenuckspacer" label="MAXIMENUCK_HIKASHOP_LABEL" style="title" showon="source:hikashop" /> <field name="hikashopcheck" type="ckhikashopcheck" label="MAXIMENUCK_HIKASHOP_LABEL" style="title" showon="source:hikashop" /> <field name="hikashopdocumentation" type="ckdocumentation" url="https://www.joomlack.fr/en/documentation/maximenu-ck" showon="source:hikashop" /> <field name="hikashopitemid" type="sql" default="0" label="PLG_MAXIMENUCK_HIKASHOP_ITEMID_LABEL" description="PLG_MAXIMENUCK_HIKASHOP_ITEMID_DESC" query="SELECT id AS value, title AS hikashopitemid FROM #__menu WHERE link='index.php?option=com_hikashop&view=category&layout=listing' AND published=1 ORDER BY title ASC" icon="application_form_magnify.png" showon="source:hikashop" /> <field name="usehikashopimages" type="maximenuckradio" class="btn-group" default="0" label="PLG_MAXIMENUCK_HIKASHOP_USE_IMAGES_LABEL" description="PLG_MAXIMENUCK_HIKASHOP_USE_IMAGES_DESC" showon="source:hikashop" icon="images.png"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="usehikashopsuffix" type="maximenuckradio" class="btn-group" default="0" label="PLG_MAXIMENUCK_HIKASHOP_USE_SUFFIX_LABEL" description="PLG_MAXIMENUCK_HIKASHOP_USE_SUFFIX_DESC" showon="source:hikashop" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="hikashopimagesuffix" type="maximenucktext" default="_mini" label="PLG_MAXIMENUCK_HIKASHOP_IMAGESUFFIX_LABEL" description="PLG_MAXIMENUCK_HIKASHOP_IMAGESUFFIX_DESC" showon="source:hikashop" icon="image.png" /> <field name="hikashopcategoryroot" type="ckhikashopcategory2" label="PLG_MAXIMENUCK_HIKASHOP_CATEGORYROOT_LABEL" default="0" description="PLG_MAXIMENUCK_HIKASHOP_CATEGORYROOT_DESC" showon="source:hikashop" /> <field name="hikashopcategorydepth" type="maximenucklist" label="PLG_MAXIMENUCK_HIKASHOP_CATEGORYDEPTH_LABEL" default="0" description="PLG_MAXIMENUCK_HIKASHOP_CATEGORYDEPTH_DESC" showon="source:hikashop" > <option value="0">JALL</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </field> <field name="hikashopshowall" type="maximenuckradio" class="btn-group" label="PLG_MAXIMENUCK_HIKASHOP_SHOWALL_LABEL" default="1" description="PLG_MAXIMENUCK_HIKASHOP_SHOWALL_DESC" showon="source:hikashop" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="hikashopshowemptycats" type="maximenuckradio" class="btn-group" label="PLG_MAXIMENUCK_HIKASHOP_SHOW_EMPTY_CATS_LABEL" default="1" description="PLG_MAXIMENUCK_HIKASHOP_SHOW_EMPTY_CATS_DESC" showon="source:hikashop" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="hikashoporderby" type="maximenucklist" label="PLG_MAXIMENUCK_HIKASHOP_ORDERBY_LABEL" default="0" description="PLG_MAXIMENUCK_HIKASHOP_ORDERBY_DESC" showon="source:hikashop" > <option value="ordering">PLG_MAXIMENUCK_HIKASHOP_ORDER</option> <option value="name">PLG_MAXIMENUCK_HIKASHOP_NAME</option> </field> </fieldset> </fields> </form>PK�H#]�V�hikashop/language/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�Y�OO=hikashop/language/fr-FR/fr-FR.plg_maximenuck_hikashop.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_HIKASHOP_DESC ="Maximenu CK - Hikashop. Le plugin permet d'afficher les produits Hikashop dans le module Maximenu CK"PK�H#]�V�"hikashop/language/fr-FR/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]L�Yff9hikashop/language/fr-FR/fr-FR.plg_maximenuck_hikashop.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_HIKASHOP="Hikashop" MAXIMENUCK_HIKASHOP_DESC ="Maximenu CK - Hikashop. Le plugin permet d'afficher les produits Hikashop dans le module Maximenu CK" MAXIMENUCK_HIKASHOP_TYPE ="Liste d'hikashop d'une catégorie" MAXIMENUCK_HIKASHOP_TYPE_SHORT ="Liste d'hikashop" MAXIMENUCK_HIKASHOP_LABEL="Hikashop" MAXIMENUCK_HIKASHOP_SPACER_MAXIMENUCK_HIKASHOP_PATCH_INSTALLED="Plugin Maximenu CK Hikashop installé et activé." PLG_MAXIMENUCK_HIKASHOP_SPACER_MAXIMENUCKHIKASHOP_PATCH_INSTALLED="Plugin Maximenu CK Hikashop installé et activé." PLG_MAXIMENUCK_HIKASHOP_PRODUCT_CATEGORY="Catégorie produits - racine" PLG_MAXIMENUCK_HIKASHOP_HIKASHOP_NOTFOUND="Hikashop non trouvé" PLG_MAXIMENUCK_HIKASHOP_CATEGORYROOT_LABEL = "Catégorie parente" PLG_MAXIMENUCK_HIKASHOP_CATEGORYROOT_DESC = "Le menu n'affichera que les catégories en dessous de celle-ci" PLG_MAXIMENUCK_HIKASHOP_CATEGORYDEPTH_LABEL = "Profondeur de catégories" PLG_MAXIMENUCK_HIKASHOP_CATEGORYDEPTH_DESC = "Choisir le nombre de niveaux de catégories à afficher" PLG_MAXIMENUCK_HIKASHOP_NOTFOUND = "Hikashop non trouvé" PLG_MAXIMENUCK_HIKASHOP_ROOTNODE = "Racine de Hikashop" PLG_MAXIMENUCK_HIKASHOP_SHOWALL_LABEL = "Montrer tous les sous-menus" PLG_MAXIMENUCK_HIKASHOP_SHOWALL_DESC = "Affiche tous les sous-menus, ou seulement ceux sous l'item actif" PLG_MAXIMENUCK_HIKASHOP_ITEMID_LABEL = "Itemid de menu" PLG_MAXIMENUCK_HIKASHOP_ITEMID_DESC = "Inscrire l'Itemid du lien de menu qui pointe vers un module de contenu hikashop pour les paramètres d'affichage" PLG_MAXIMENUCK_HIKASHOP_USE_IMAGES_LABEL = "Utiliser des images" PLG_MAXIMENUCK_HIKASHOP_USE_IMAGES_DESC = "Affiche des images à gauche des liens dans le menu. Utilise la miniature de la catégorie et le suffixe" PLG_MAXIMENUCK_HIKASHOP_USE_SUFFIX_LABEL = "Utiliser un suffixe" PLG_MAXIMENUCK_HIKASHOP_USE_SUFFIX_DESC = "Ajoute un suffixe aux miniatures des catégories pour insérer les icônes dans le menu" PLG_MAXIMENUCK_HIKASHOP_IMAGESUFFIX_LABEL = "Suffixe des images" PLG_MAXIMENUCK_HIKASHOP_IMAGESUFFIX_DESC = "On peut définir un suffixe à ajouter à l'image miniature de la catégorie, ça permet d'utiliser une autre icône pour le menu" PLG_MAXIMENUCK_HIKASHOP_LABEL="Compatibilité Hikashop" PLG_MAXIMENUCK_HIKASHOP_ITEM_HEADING="Options du lien" PLG_MAXIMENUCK_HIKASHOP_ITEM_DESCRIPTION="Description" PLG_MAXIMENUCK_HIKASHOP_ICON="Classe CSS de l'icône" PLG_MAXIMENUCK_HIKASHOP_SELECT="Selectionner" PLG_MAXIMENUCK_HIKASHOP_TYPE="Type de lien" PLG_MAXIMENUCK_HIKASHOP_LINK="Lien" PLG_MAXIMENUCK_HIKASHOP_NO_LINK="Aucun lien (separator)" PLG_MAXIMENUCK_HIKASHOP_HEADING="En-tête" PLG_MAXIMENUCK_HIKASHOP_LI_CLASS="Classe CSS du lien LI" PLG_MAXIMENUCK_HIKASHOP_COLUMN_HEADING="Options de colonne" PLG_MAXIMENUCK_HIKASHOP_COLUMN_WIDTH="Largeur de colonne" PLG_MAXIMENUCK_HIKASHOP_SUBMENU_HEADING="Options de sous menu" PLG_MAXIMENUCK_HIKASHOP_SUBMENU_CONTAINER_WIDTH="Largeur du sous menu" PLG_MAXIMENUCK_HIKASHOP_LEFT_MARGIN="Marge gauche du sous menu" PLG_MAXIMENUCK_HIKASHOP_TOP_MARGIN="Marge haute du sous menu" PLG_MAXIMENUCK_HIKASHOP_NEW_ROW="Créer une nouvelle rangée" PLG_MAXIMENUCK_HIKASHOP_BUTTON_DESC="Utilisez ce bouton pour charger l'interface de Maximenu CK afin de paramétrer les catégories pour l'affichage dans le menu" PLG_MAXIMENUCK_HIKASHOP_NEW_COLUMN="Créer une nouvelle colonne" PLG_MAXIMENUCK_HIKASHOP_DISABLE_MOBILE="Désactiver pour mobile" PLG_MAXIMENUCK_HIKASHOP_DISABLE_DESKTOP="Désactiver pour ordinateur" PLG_MAXIMENUCK_HIKASHOP_HTMLTAG_LABEL="Tag Html" ;added 2.0.2 PLG_MAXIMENUCK_HIKASHOP_ORDERBY_LABEL="Trier par" PLG_MAXIMENUCK_HIKASHOP_ORDERBY_DESC="Sélectionner le critère à utiliser pour trier les catégories" PLG_MAXIMENUCK_HIKASHOP_ORDER="Ordre" PLG_MAXIMENUCK_HIKASHOP_NAME="Nom" ;added 2.0.5 PLG_MAXIMENUCK_HIKASHOP_SHOW_EMPTY_CATS_LABEL="Montrer les catégories vides" PLG_MAXIMENUCK_HIKASHOP_SHOW_EMPTY_CATS_DESC="Ne charge pas les catégories qui n'ont ni produit ni sous catégorie"PK�H#]�`��$$=hikashop/language/en-GB/en-GB.plg_maximenuck_hikashop.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_HIKASHOP_DESC ="Maximenu CK - Hikashop. The plugin allows you to load the Hikashop products into Maximenu CK"PK�H#]O�q 9hikashop/language/en-GB/en-GB.plg_maximenuck_hikashop.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_HIKASHOP="Hikashop" MAXIMENUCK_HIKASHOP_DESC ="Maximenu CK - Hikashop. The plugin allows you to load the Hikashop into Maximenu CK" MAXIMENUCK_HIKASHOP_TYPE ="Hikashop list from a category" MAXIMENUCK_HIKASHOP_TYPE_SHORT ="Hikashop list" MAXIMENUCK_HIKASHOP_SPACER_MAXIMENUCK_HIKASHOP_PATCH_INSTALLED="Plugin Maximenu CK Hikashop installed and activated." MAXIMENUCK_HIKASHOP_LABEL="Hikashop" PLG_MAXIMENUCK_HIKASHOP_SPACER_MAXIMENUCKHIKASHOP_PATCH_INSTALLED="Plugin Maximenu CK Hikashop installed and activated." PLG_MAXIMENUCK_HIKASHOP_PRODUCT_CATEGORY="Products Root category" PLG_MAXIMENUCK_HIKASHOP_HIKASHOP_NOTFOUND="Hikashop not found" PLG_MAXIMENUCK_HIKASHOP_CATEGORYROOT_LABEL = "Root category" PLG_MAXIMENUCK_HIKASHOP_CATEGORYROOT_DESC = "The menu will only render the categories under the selected root" PLG_MAXIMENUCK_HIKASHOP_CATEGORYDEPTH_LABEL = "Depth of categories" PLG_MAXIMENUCK_HIKASHOP_CATEGORYDEPTH_DESC = "Select how many levels of categories you want to show" PLG_MAXIMENUCK_HIKASHOP_NOTFOUND = "Hikashop not found" PLG_MAXIMENUCK_HIKASHOP_ROOTNODE = "Root of Hikashop" PLG_MAXIMENUCK_HIKASHOP_SHOWALL_LABEL = "Show all submenus" PLG_MAXIMENUCK_HIKASHOP_SHOWALL_DESC = "Display all submenus, or only the ones under the active item" PLG_MAXIMENUCK_HIKASHOP_ITEMID_LABEL = "Menu Itemid" PLG_MAXIMENUCK_HIKASHOP_ITEMID_DESC = "Menu Itemid related to a hikashop content module to retrieve the display parameters" PLG_MAXIMENUCK_HIKASHOP_USE_IMAGES_LABEL = "Use images" PLG_MAXIMENUCK_HIKASHOP_USE_IMAGES_DESC = "Displays images aside the links. Uses thumbnails of the category with the suffix" PLG_MAXIMENUCK_HIKASHOP_USE_SUFFIX_LABEL = "Use a suffix" PLG_MAXIMENUCK_HIKASHOP_USE_SUFFIX_DESC = "Add a suffix to categories thumbnails to add icons in the menu" PLG_MAXIMENUCK_HIKASHOP_IMAGESUFFIX_LABEL = "Images suffix" PLG_MAXIMENUCK_HIKASHOP_IMAGESUFFIX_DESC = "Define a suffix to use with the thumbnail of the category" PLG_MAXIMENUCK_HIKASHOP_LABEL="Hikashop compatibility" PLG_MAXIMENUCK_HIKASHOP_ITEM_HEADING="Menu item Options" PLG_MAXIMENUCK_HIKASHOP_ITEM_DESCRIPTION="Item description" PLG_MAXIMENUCK_HIKASHOP_ICON="Icon css class" PLG_MAXIMENUCK_HIKASHOP_SELECT="Select" PLG_MAXIMENUCK_HIKASHOP_TYPE="Type of item" PLG_MAXIMENUCK_HIKASHOP_LINK="Link" PLG_MAXIMENUCK_HIKASHOP_NO_LINK="No link (separator)" PLG_MAXIMENUCK_HIKASHOP_HEADING="Heading" PLG_MAXIMENUCK_HIKASHOP_LI_CLASS="Li tag css class" PLG_MAXIMENUCK_HIKASHOP_COLUMN_HEADING="Column Options" PLG_MAXIMENUCK_HIKASHOP_COLUMN_WIDTH="Column width" PLG_MAXIMENUCK_HIKASHOP_SUBMENU_HEADING="Submenu Options" PLG_MAXIMENUCK_HIKASHOP_SUBMENU_CONTAINER_WIDTH="Submenu width" PLG_MAXIMENUCK_HIKASHOP_LEFT_MARGIN="Submenu left margin" PLG_MAXIMENUCK_HIKASHOP_TOP_MARGIN="Submenu top margin" PLG_MAXIMENUCK_HIKASHOP_NEW_ROW="Create new row" PLG_MAXIMENUCK_HIKASHOP_BUTTON_DESC="Use this button to load the Maximenu CK interface to manage the menu layout when using the autoload from Hikashop" PLG_MAXIMENUCK_HIKASHOP_NEW_COLUMN="Create new column" PLG_MAXIMENUCK_HIKASHOP_DISABLE_MOBILE="Hide for mobile" PLG_MAXIMENUCK_HIKASHOP_DISABLE_DESKTOP="Hide for desktop" PLG_MAXIMENUCK_HIKASHOP_HTMLTAG_LABEL="Html tag" ;added 2.0.2 PLG_MAXIMENUCK_HIKASHOP_ORDERBY_LABEL="Order by" PLG_MAXIMENUCK_HIKASHOP_ORDERBY_DESC="Select on which criteria the categories shall be ordered" PLG_MAXIMENUCK_HIKASHOP_ORDER="Order" PLG_MAXIMENUCK_HIKASHOP_NAME="Name" ;added 2.0.5 PLG_MAXIMENUCK_HIKASHOP_SHOW_EMPTY_CATS_LABEL="Show empty categories" PLG_MAXIMENUCK_HIKASHOP_SHOW_EMPTY_CATS_DESC="Does not show the categories that have no products and no subcategory"PK�H#]�V�"hikashop/language/en-GB/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�#o,,adsmanager/helper/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]�`�]]'adsmanager/helper/helper_adsmanager.phpnu�[���<?php /** * @name Maximenu CK * @copyright Copyright (C) 2020. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; /** * Helper Class. */ class MaximenuckHelpersourceAdsmanager { /** * Get a list of the menu items. * * @param JRegistry $params The module options. * * @return array */ static function getItems(&$params, $all) { jimport('joomla.application.module.helper'); $input = new JInput(); $usesuffix = $params->get('useadsmanagersuffix', '0'); $imagesuffix = $params->get('adsmanagerimagesuffix', '_mini'); $useimages = $params->get('useadsmanagerimages', '0'); $categoryroot = $params->get('adsmanagercategoryroot', '0'); $categorydepth = $params->get('adsmanagercategorydepth', '0'); $shownumberproducts = (bool) $params->get('adsmanagershownumberproducts', '0'); // $itemid = $params->get('adsmanageritemid', ''); require_once(JPATH_SITE . '/components/com_adsmanager/lib/core.php'); require_once (JPATH_ADMINISTRATOR . '/components/com_adsmanager/models/category.php'); // get the model instance from the component $model = JModelLegacy::getInstance('Category', 'AdsmanagerModel'); // get the active path $active_id = $input->get('catid', 0, 'int'); $activepath = self::getActiveTree($active_id); // get the list of items if (($categoryroot && !$all)) { $tree = $model->getCatTree(true, $shownumberproducts); $model->parseTree($categoryroot, $tree, $items, 0); } else { $items = $model->getFlatTree(true, $shownumberproducts); } $lastitem = 0; foreach ($items as $i => &$item) { // check the tree depth if ($categorydepth AND ( ($item->level + 1) > $categorydepth)) { unset($items[$i]); continue; } $item->params = new JRegistry(); $item->flink = TRoute::_("index.php?option=com_adsmanager&view=list&catid=" . $item->id); $item->deeper = false; $item->shallower = false; $item->level_diff = 0; $item->level = $item->level + 1; if (isset($items[$i - 1])) { $items[$i - 1]->deeper = ($item->level > $items[$i - 1]->level); $items[$i - 1]->shallower = ($item->level < $items[$i - 1]->level); $items[$i - 1]->level_diff = ($items[$i - 1]->level - $item->level); if ($items[$i - 1]->deeper AND $params->get('layout', 'default') != '_:flatlist') $items[$i - 1]->classe .= " parent"; } // test if it is the last item $item->is_end = !isset($items[$i + 1]); // manage item class $item->classe = ' item' . $item->id; if (isset($active_id) && $active_id == $item->id) { $item->classe .= ' current'; } if (in_array($item->id, $activepath)) { $item->classe .= ' active'; $item->isactive = true; } // search for parameters $patterns = "#{maximenu}(.*){/maximenu}#Uis"; $result = preg_match($patterns, stripslashes($item->description), $results); $item->desc = ''; $item->colwidth = ''; $item->tagcoltitle = 'none'; $item->tagclass = ''; $item->leftmargin = ''; $item->topmargin = ''; $item->submenuwidth = ''; if (isset($results[1])) { $cat_params = explode('|', $results[1]); for ($j = 0; $j < count($cat_params); $j++) { $item->desc = stristr($cat_params[$j], "desc=") ? str_replace('desc=', '', $cat_params[$j]) : $item->desc; $item->colwidth = stristr($cat_params[$j], "col=") ? str_replace('col=', '', $cat_params[$j]) : $item->colwidth; $item->tagcoltitle = stristr($cat_params[$j], "taghtml=") ? str_replace('taghtml=', '', $cat_params[$j]) : $item->tagcoltitle; $item->tagclass = stristr($cat_params[$j], "tagclass=") ? ' ' . str_replace('tagclass=', '', $cat_params[$j]) : $item->tagclass; $item->leftmargin = stristr($cat_params[$j], "leftmargin=") ? str_replace('leftmargin=', '', $cat_params[$j]) : $item->leftmargin; $item->topmargin = stristr($cat_params[$j], "topmargin=") ? str_replace('topmargin=', '', $cat_params[$j]) : $item->topmargin; $item->submenucontainerwidth = stristr($cat_params[$j], "submenuwidth=") ? str_replace('submenuwidth=', '', $cat_params[$j]) : $item->submenuwidth; } } $item->classe .= $item->tagclass; // variables definition $item->ftitle = stripslashes(htmlspecialchars($item->name, ENT_COMPAT, 'UTF-8', false)); $item->content = ""; $item->rel = ""; // add number of products to the title if ($shownumberproducts ) { $item->ftitle .= '<span class="maximenuck_nbproducts badge" data-number="' . $item->num_ads . '">' . $item->num_ads . '</span>'; } // manage images if (!$usesuffix) { $imagesuffix = ''; } $item->menu_image = ''; if ($useimages) { $item->menu_image = self::getCatImageUrl($item->id, true, $imagesuffix); } // manage columns if ($item->colwidth) { $item->colonne = true; $parentItem = self::getParentItem($item->parent, $items); if (isset($parentItem->submenuswidth)) { $parentItem->submenuswidth = strval($parentItem->submenuswidth) + strval($item->colwidth); } else if ($parentItem) { $parentItem->submenuswidth = strval($item->colwidth); } if (isset($items[$i - 1]) AND $items[$i - 1]->deeper) { $items[$i - 1]->columnwidth = $item->colwidth; } else { $item->columnwidth = $item->colwidth; } } if (isset($parentItem->submenucontainerwidth) AND $parentItem->submenucontainerwidth) $parentItem->submenuswidth = $parentItem->submenucontainerwidth; $item->name = $item->ftitle; // pour compat avec default.php $item->anchor_css = ''; $item->anchor_title = ''; $item->type = ''; $item->liclass = ''; $item->colbgcolor = ''; } // give the correct deep infos for the last item if (isset($items[$i])) { $items[$i]->level_diff = ($items[$i]->level - 1); } return $items; } /** * Get the parent category * * @param int $id The current category. * @param array $items The list of categories object. * * @return object */ static function getParentItem($id, $items) { foreach ($items as $item) { if ($item->id == $id) return $item; } } /** * Get the tree of the current category * * @param int $catid The current category. * * @return array */ static function getActiveTree($catid, $mode='admin') { $model = JModelLegacy::getInstance('Category', 'AdsmanagerModel'); $cats = $model->getCategories(true, $mode); $orderlist = array(); $active_path = array(); if(isset($cats)) { foreach ($cats as $c ) { $orderlist[$c->id] = $c; } if (($catid != -1)&&($catid != 0)) { $active_path[] = (string) $catid; $i=0; $i++; $current = $catid; while($orderlist[$current]->parent != 0) { $current = $orderlist[$current]->parent; $active_path[] = $orderlist[$current]->id; $i++; } } } return $active_path; } /** * Get the image of the current category * * @param int $catid The current category. * * @return mixed */ static function getCatImageUrl($catid, $thumb=false, $imagesuffix='') { $extensions = array("jpg","png","gif"); $image_name = ($thumb == true) ? "cat_t":"cat"; foreach($extensions as $ext) { if (file_exists(JPATH_ROOT."/images/com_adsmanager/categories/".$catid."$image_name.$ext")) return JURI::root(true)."/images/com_adsmanager/categories/".$catid."$image_name$imagesuffix.$ext"; } return false; } } PK�H#]z@b2� � 'adsmanager/params/adsmanager_params.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <fieldset name="editionfieldset" label="" addfieldpath="/plugins/maximenuck/adsmanager/elements"> <field name="adsmanagerspacer" type="maximenuckspacer" label="MAXIMENUCK_ADSMANAGER_LABEL" style="title" showon="source:adsmanager" /> <field name="useadsmanagerimages" type="maximenuckradio" class="btn-group" default="0" label="MOD_MAXIMENUCK_USEADSMANAGERIMAGES_LABEL" description="MOD_MAXIMENUCK_USEADSMANAGERIMAGES_DESC" showon="source:adsmanager" icon="images.png"> <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="useadsmanagersuffix" type="maximenuckradio" class="btn-group" default="0" label="MOD_MAXIMENUCK_USEADSMANAGERSUFFIX_LABEL" description="MOD_MAXIMENUCK_USEADSMANAGERSUFFIX_DESC" showon="source:adsmanager" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="adsmanagerimagesuffix" type="maximenucktext" default="_mini" label="MOD_MAXIMENUCK_ADSMANAGERIMAGESUFFIX_LABEL" description="MOD_MAXIMENUCK_ADSMANAGERIMAGESUFFIX_DESC" showon="source:adsmanager" icon="image.png" /> <field name="adsmanagercategoryroot" type="ckadsmanagercategory" label="MOD_MAXIMENUCK_ADSMANAGERCATEGORYROOT_LABEL" default="0" description="MOD_MAXIMENUCK_ADSMANAGERCATEGORYROOT_DESC" showon="source:adsmanager" /> <field name="adsmanagercategorydepth" type="maximenucklist" label="MOD_MAXIMENUCK_ADSMANAGERCATEGORYDEPTH_LABEL" default="0" description="MOD_MAXIMENUCK_ADSMANAGERCATEGORYDEPTH_DESC" showon="source:adsmanager" > <option value="0">JALL</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> </field> <field name="adsmanagershownumberproducts" type="radio" label="MOD_MAXIMENUCK_ADSMANAGERSHOWNUMBERPRODUCTS_LABEL" default="0" description="MOD_MAXIMENUCK_ADSMANAGERSHOWNUMBERPRODUCTS_DESC" showon="source:adsmanager" class="btn-group" > <option value="1">JYES</option> <option value="0">JNO</option> </field> </fieldset> </fields> </form>PK�H#]�#o,,adsmanager/params/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]��+Rdd=adsmanager/language/en-GB/en-GB.plg_maximenuck_adsmanager.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_ADSMANAGER="Adsmanager" MAXIMENUCK_ADSMANAGER_DESC ="Maximenu CK - Adsmanager. The plugin allows you to load the Adsmanager into Maximenu CK" MAXIMENUCK_ADSMANAGER_TYPE ="Adsmanager list from a category" MAXIMENUCK_ADSMANAGER_TYPE_SHORT ="Adsmanager list" MAXIMENUCK_ADSMANAGER_SPACER_MAXIMENUCK_ADSMANAGER_PATCH_INSTALLED="Plugin Maximenu CK Adsmanager installed and activated." MAXIMENUCK_ADSMANAGER_LABEL="Adsmanager" MOD_MAXIMENUCK_ADSMANAGER="AdsManager" MOD_MAXIMENUCK_ADSMANAGER_NOTFOUND="AdsManager not found" MOD_MAXIMENUCK_ADSMANAGER_ROOTNODE="AdsManager root" MOD_MAXIMENUCK_SPACER_ADSMANAGER="AdsManager Options" MOD_MAXIMENUCK_USEADSMANAGERIMAGES_LABEL = "Use images" MOD_MAXIMENUCK_USEADSMANAGERIMAGES_DESC = "Displays images aside the links. Uses thumbnails of the category with the suffix" MOD_MAXIMENUCK_USEADSMANAGERSUFFIX_LABEL = "Use a suffix" MOD_MAXIMENUCK_USEADSMANAGERSUFFIX_DESC = "Add a suffix to categories thumbnails to add icons in the menu" MOD_MAXIMENUCK_ADSMANAGERIMAGESUFFIX_LABEL = "Images suffix" MOD_MAXIMENUCK_ADSMANAGERIMAGESUFFIX_DESC = "Define a suffix to use with the thumbnail of the category" MOD_MAXIMENUCK_ADSMANAGERCATEGORYROOT_LABEL = "Root category" MOD_MAXIMENUCK_ADSMANAGERCATEGORYROOT_DESC = "The menu will only render the categories under the selected root" MOD_MAXIMENUCK_ADSMANAGERCATEGORYDEPTH_LABEL = "Depth of categories" MOD_MAXIMENUCK_ADSMANAGERCATEGORYDEPTH_DESC = "Select how many levels of categories you want to show" MOD_MAXIMENUCK_ADSMANAGERSHOWNUMBERPRODUCTS_LABEL="Show the number of Ads" MOD_MAXIMENUCK_ADSMANAGERSHOWNUMBERPRODUCTS_DESC="Adds the number of products in each category and subcategories"PK�H#]�V�$adsmanager/language/en-GB/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�81�**Aadsmanager/language/en-GB/en-GB.plg_maximenuck_adsmanager.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_ADSMANAGER_DESC ="Maximenu CK - Adsmanager. The plugin allows you to load the Adsmanager products into Maximenu CK"PK�H#]P̈́i88=adsmanager/language/fr-FR/fr-FR.plg_maximenuck_adsmanager.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_ADSMANAGER="Adsmanager" MAXIMENUCK_ADSMANAGER_DESC ="Maximenu CK - Adsmanager. Le plugin permet d'afficher les produits Adsmanager dans le module Maximenu CK" MAXIMENUCK_ADSMANAGER_TYPE ="Liste d'adsmanager d'une catégorie" MAXIMENUCK_ADSMANAGER_TYPE_SHORT ="Liste d'adsmanager" MAXIMENUCK_ADSMANAGER_LABEL="Adsmanager" MAXIMENUCK_ADSMANAGER_SPACER_MAXIMENUCK_ADSMANAGER_PATCH_INSTALLED="Plugin Maximenu CK Adsmanager installé et activé." MOD_MAXIMENUCK_ADSMANAGER="AdsManager" MOD_MAXIMENUCK_ADSMANAGER_NOTFOUND = "AdsManager non trouvé" MOD_MAXIMENUCK_ADSMANAGER_ROOTNODE = "Racine de AdsManager" MOD_MAXIMENUCK_SPACER_ADSMANAGER = "Compatibilité AdsManager" MOD_MAXIMENUCK_USEADSMANAGERIMAGES_LABEL = "Utiliser les images" MOD_MAXIMENUCK_USEADSMANAGERIMAGES_DESC = "Affiche des images à gauche des liens dans le menu. Utilise la miniature de la catégorie et le suffixe" MOD_MAXIMENUCK_USEADSMANAGERSUFFIX_LABEL = "Utiliser un suffixe" MOD_MAXIMENUCK_USEADSMANAGERSUFFIX_DESC = "Ajoute un suffixe aux miniatures des catégories pour insérer les icônes dans le menu" MOD_MAXIMENUCK_ADSMANAGERIMAGESUFFIX_LABEL = "Suffixe des images" MOD_MAXIMENUCK_ADSMANAGERIMAGESUFFIX_DESC = "On peut définir un suffixe à ajouter à l'image miniature de la catégorie, ça permet d'utiliser une autre icône pour le menu" MOD_MAXIMENUCK_ADSMANAGERCATEGORYROOT_LABEL = "Catégorie parente" MOD_MAXIMENUCK_ADSMANAGERCATEGORYROOT_DESC = "Le menu n'affichera que les catégories en dessous de celle-ci" MOD_MAXIMENUCK_ADSMANAGERCATEGORYDEPTH_LABEL = "Profondeur de catégories" MOD_MAXIMENUCK_ADSMANAGERCATEGORYDEPTH_DESC = "Choisir le nombre de niveaux de catégories à afficher" MOD_MAXIMENUCK_ADSMANAGERSHOWNUMBERPRODUCTS_LABEL="Montrer le nombre de produits" MOD_MAXIMENUCK_ADSMANAGERSHOWNUMBERPRODUCTS_DESC="Ajoute le nombre de chaque catégorie et sous catégories après le titre"PK�H#]�V�$adsmanager/language/fr-FR/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]��8UUAadsmanager/language/fr-FR/fr-FR.plg_maximenuck_adsmanager.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_ADSMANAGER_DESC ="Maximenu CK - Adsmanager. Le plugin permet d'afficher les produits Adsmanager dans le module Maximenu CK"PK�H#]�V�adsmanager/language/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]��v��adsmanager/adsmanager.phpnu�[���<?php /** * @copyright Copyright (C) 2020 Cédric KEIFLIN alias ced1870 * https://www.template-creator.com * https://www.joomlack.fr * @license GNU/GPL * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.event.plugin'); class plgMaximenuckAdsmanager extends JPlugin { private $type = 'adsmanager'; private $shallLoad = true; function __construct(&$subject, $params) { // does not load if the component is not installed $this->shallLoad = file_exists(JPATH_SITE . '/administrator/components/com_adsmanager'); if (! $this->shallLoad) return; parent::__construct($subject, $params); } /* * Initiate the lugin load * * Return mixed */ function registerListeners() { if ($this->shallLoad === true) { parent::registerListeners(); } else { return false; } } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetSourceName() { $this->loadLanguage(); return $this->type; } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetTypeName() { $this->loadLanguage(); return $this->type; } /* * Display the html code for the item to be used into the frontend page * @param string the item object from simple_html_dom * * Return String the html code */ public function onMaximenuckRenderItemAdsmanager($item) { require_once(__DIR__ . '/helper/helper_' . $this->type . '.php'); $adsmanager = MaximenuckHelpersourceAdsmanager::getItems($item->params); $html = '<ul class="maximenuck2">'; foreach ($adsmanager as $article) { $article->level = $item->level; $article->type = 'article'; $html .= Maximenuck\Helperfront::getHtmlItem($article); } $html .= '</ul>'; return $html; } }PK�H#]Q;�UUadsmanager/adsmanager.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <extension version="3" type="plugin" group="maximenuck" method="upgrade"> <name>Maximenu CK - Adsmanager</name> <creationDate>January 2020</creationDate> <copyright>Copyright (C) 2020. All rights reserved.</copyright> <license>GNU General Public License version 2 or later</license> <author>Cedric Keiflin</author> <authorEmail>ced1870@gmail.com</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>9.1.21</version> <description>Loader of Adsmanager items for Maximenu CK</description> <files> <filename plugin="adsmanager">adsmanager.php</filename> <folder>elements</folder> <folder>helper</folder> <folder>language</folder> <folder>params</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_adsmanager.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_adsmanager.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_adsmanager.sys.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_adsmanager.ini</language> </languages> </extension>PK�H#]wtW�adsmanager/elements/index.htmlnu�[���<html><body></body></html>PK�H#]@��,adsmanager/elements/ckadsmanagercategory.phpnu�[���<?php /** * @copyright Copyright (C) 2014 Cedric KEIFLIN alias ced1870 * http://www.joomlack.fr * @license GNU/GPL * */ defined('JPATH_BASE') or die; jimport('joomla.filesystem.file'); jimport('joomla.form.formfield'); JFormHelper::loadFieldClass('list'); class JFormFieldCkadsmanagercategory extends JFormFieldList { protected $type = 'ckadsmanagercategory'; protected function getOptions() { // if the component is not installed if (!JFolder::exists(JPATH_ROOT . '/administrator/components/com_adsmanager')) { // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_ADSMANAGER_NOTFOUND'); $option->value = '0'; $options[] = $option; // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } // get the categories form the helper $params = new JRegistry(); require_once(JPATH_SITE . '/components/com_adsmanager/lib/core.php'); require_once (JPATH_ADMINISTRATOR . '/components/com_adsmanager/models/category.php'); // get the model instance from the component $model = JModelLegacy::getInstance('Category', 'AdsmanagerModel'); // get the list of items $cats = $model->getFlatTree(); // add the root item $option = new stdClass(); $option->text = JText::_('MOD_MAXIMENUCK_ADSMANAGER_ROOTNODE'); $option->value = '0'; $options[] = $option; foreach ($cats as $cat) { $option = new stdClass(); $option->text = str_repeat(" - ", $cat->level + 1) . $cat->name; $option->value = $cat->id; $options[] = $option; } // Merge any additional options in the XML definition. $options = array_merge(parent::getOptions(), $options); return $options; } } PK�H#]wtW�categories/elements/index.htmlnu�[���<html><body></body></html>PK�H#]��99'categories/params/categories_params.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <form> <fields name="params"> <fieldset name="editionfieldset" label=""> <field name="categoriesspacer" type="maximenuckspacer" label="PLG_MAXIMENUCK_CATEGORIES_LABEL" style="title" showon="source:categories" /> <field name="categories_catid" type="category" extension="com_content" multiple="false" size="5" label="JCATEGORY" description="MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATEGORY_DESC" icon="folder_explore.png" showon="source:categories" > <option value="">JOPTION_ALL_CATEGORIES</option> </field> <field name="categories_show_articles" type="maximenuckradio" default="1" label="MAXIMENUCK_CATEGORIES_SHOWARTICLES_LABEL" description="MAXIMENUCK_CATEGORIES_SHOWARTICLES_DESC" class="btn-group" icon="folder_table.png" showon="source:categories" > <option value="1">JYES </option> <option value="0">JNO </option> </field> <field name="categories_levels" type="maximenucktext" default="0" label="MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATDEPTH_LABEL" description="MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATDEPTH_DESC" icon="application_side_tree.png" showon="source:categories" /> </fieldset> </fields> </form>PK�H#]�#o,,categories/params/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]�#o,,categories/helper/index.htmlnu�[���<html><body bgcolor="#FFFFFF"></body></html>PK�H#]���&&'categories/helper/helper_categories.phpnu�[���<?php /** * @name Maximenu CK * @copyright Copyright (C) 2018. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr */ // No direct access defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Router\Route; use Joomla\Component\Content\Administrator\Extension\ContentComponent; use Joomla\Component\Content\Site\Helper\RouteHelper; use Joomla\Component\Content\Site\Helper\AssciationHelper; /** * Helper Class. */ class MaximenuckHelpersourceCategories { private static $params; private static $flexi_exists; /* * Get the items from the source */ public static function getItems($params, $all = false, $level = 1, $parent_id = 0) { if (empty(self::$params)) { self::$params = $params; } $input = JFactory::getApplication()->input; $options = array(); $options['countItems'] = $params->get('numitems', 0); $categories = JCategories::getInstance('Content', $options); $category = $categories->get($params->get('categories_catid', 'root')); $categories_items = $category->getChildren(true); // if no categories found, only list the articles if (empty($categories_items)) { $i = 1; $menuItem = self::initItem(); $menuItems = self::getArticles($category->id, $level-1, $i); } else { // load the main helper include_once JPATH_ROOT . '/modules/mod_maximenuck/helper.php'; // load Flexicontent if exists $flexi_path = JPATH_SITE . '/components/com_flexicontent/'; self::$flexi_exists = file_exists($flexi_path); if (self::$flexi_exists) { require_once(JPATH_ADMINISTRATOR . '/components/com_flexicontent/defineconstants.php'); require_once($flexi_path . 'helpers/route.php'); } // List the active items $activeCategories = array(); $isArticle = $input->get('view', 'article') == 'article'; if ($isArticle) { $active_category_id = $input->get('catid', '0', 'int'); } else { $active_category_id = $input->get('id', '0', 'int'); } self::getCategoryParentRecurse($active_category_id, $activeCategories); // Prepare data for display using display options $menuItems = Array(); $i = 0; $lastitem = 0; $countitems = 0; $diff_level = 1 - $categories_items[0]->level; foreach ($categories_items as &$item) { if (self::$flexi_exists) { $item->link = JRoute::_(FlexicontentHelperRoute::getCategoryRoute($item->id)); } else { $item->link = JRoute::_(ContentHelperRoute::getCategoryRoute($item->id)); } $article_image = null; $menuItem = self::initItem(); $menuItem->path = null; $menuItem->flink = $menuItem->link = $item->link; $menuItem->ftitle = $item->title; // $menuItem->article->text = JHTML::_('content.prepare', $menuItem_article_text); // $menuItem->desc = $menuItem_article_text; $menuItem->id = $item->id; $menuItem->level = $item->level + $diff_level + ($level - 1); if ($menuItem->level == $level) { $menuItem->parent_id = $parent_id; } if ($params->get('categories_levels', 0) > 0 && $params->get('categories_levels', 0) < $menuItem->level) continue; // get active state $fulllink = str_replace(JUri::root(true), trim(JUri::root(), '/'), $item->link); $menuItem->isactive = $menuItem->active = $fulllink == JUri::current(); if (in_array($item->id, $activeCategories)) { $menuItem->isactive = true; } if ($menuItem->isactive) { $menuItem->classe = ' current active'; $menuItem->anchor_css .= ' isactive'; } $nbarticles = 0; if ($params->get('categories_show_articles', 1) == 1) { $menuItem->articles = self::getArticles($menuItem->id, $menuItem->level, $i); $nbarticles = count($menuItem->articles); } if ($nbarticles > 0) $menuItem->classe .= " parent"; $menuItems[$i] = $menuItem; if (isset($menuItems[$lastitem])) { $menuItems[$lastitem]->deeper = ($menuItem->level > $menuItems[$lastitem]->level); $menuItems[$lastitem]->shallower = ($menuItem->level < $menuItems[$lastitem]->level); $menuItems[$lastitem]->level_diff = ($menuItems[$lastitem]->level - $menuItem->level); if ($menuItems[$lastitem]->deeper AND $params->get('layout', 'default') != '_:flatlist') { $menuItems[$lastitem]->classe .= " parent"; } } if ($params->get('categories_show_articles', 1) == 1 && $nbarticles > 0) { $menuItems = array_merge($menuItems, $menuItem->articles); $menuItems[$i]->deeper = true; $menuItems[$i]->level_diff = -1; $i += $nbarticles; } else { $nbarticles = 0; } $lastitem = $i; $i++; } if (isset($menuItems[$lastitem])) { $menuItems[$lastitem]->deeper = ($menuItem->level > $menuItems[$lastitem]->level); $menuItems[$lastitem]->shallower = ($menuItem->level < $menuItems[$lastitem]->level); $menuItems[$lastitem]->level_diff = ($menuItems[$lastitem]->level - $menuItem->level); } } return $menuItems; } private static function getArticles($catid, $level, &$i) { $params = self::$params; $articles = self::getArticlesModel(); // Set application parameters in model $app = JFactory::getApplication(); $appParams = $app->getParams(); $articles->setState('params', $appParams); $articles->setState('filter.published', 1); // Access filter $access = !JComponentHelper::getParams('com_content')->get('show_noauth'); $authorised = JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id')); $articles->setState('filter.access', $access); // Ordering $articles->setState('list.ordering', $params->get('categories_ordering', 'a.ordering')); $articles->setState('list.direction', $params->get('categories_ordering_direction', 'ASC')); // Filter by language $articles->setState('filter.language', $app->getLanguageFilter()); $articles->setState('filter.category_id', $catid); $items = $articles->getItems(); $menuItems = Array(); $j = 1; foreach ($items as &$item) { if ($item->catid != $catid) continue; $item->slug = $item->id.':'.$item->alias; $item->catslug = $item->catid ? $item->catid .':'.$item->category_alias : $item->catid; if (self::$flexi_exists) { $item->link = JRoute::_(FlexicontentHelperRoute::getItemRoute($item->slug, $item->catslug)); } else { $item->link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug)); } $menuItem = self::initItem(); $menuItem->path = null; $menuItem->flink = $menuItem->link = $item->link; $menuItem->ftitle = $item->title; // $menuItem->article->text = JHTML::_('content.prepare', $menuItem_article_text); // $menuItem->desc = $menuItem_article_text; $menuItem->id = $item->id; $menuItem->level = $level + 1; $menuItem->isthirdparty = true; $menuItem->type = 'thirdparty'; // get active state $fulllink = trim(JUri::root(), '/') . str_replace(JUri::root(true), '', $item->link); $menuItem->isactive = $menuItem->active = $fulllink == JUri::current(); if ($menuItem->isactive) { $menuItem->classe = ' current active'; $menuItem->anchor_css .= ' isactive'; } $menuItems[$i + $j] = $menuItem; $j++; } return $menuItems; } static function getCategoryParentRecurse($category_id, &$activeCategories) { $activeCategories[] = $category_id; $db = JFactory::getDBO(); $query = "SELECT parent_id" ." FROM #__categories" ." WHERE published = 1" ." AND id = " . (int) $category_id; $db->setQuery($query); if ($db->execute()) { $parent_category_id = (int)$db->loadResult(); } else { $parent_category_id = null; } if($parent_category_id){ self::getCategoryParentRecurse($parent_category_id, $activeCategories); } } public static function initItem() { $item = new stdClass(); $item->params = new JRegistry(); $item->deeper = false; $item->shallower = false; $item->level_diff = 0; $item->isthirdparty = false; $item->is_end = false; $item->classe = ''; $item->desc = ''; $item->colwidth = ''; $item->tagcoltitle = 'none'; $item->tagclass = ''; $item->leftmargin = ''; $item->topmargin = ''; $item->submenuwidth = ''; $item->liclass = ''; $item->anchor_css = ''; $item->anchor_title = ''; $item->colbgcolor = ''; $item->menu_image = ''; $item->type = ''; $item->content = ''; $item->rel = ''; $item->link = ''; $item->title = ''; $item->parent_id = ''; // special for the thirdparty plugins $item->isthirdparty = true; $item->type = 'thirdparty'; return $item; } private static function getArticlesModel() { $app = Factory::getApplication(); if (version_compare(JVERSION, '4') >= 0) { $factory = $app->bootComponent('com_content')->getMVCFactory(); // Get an instance of the generic articles model $articles = $factory->createModel('Articles', 'Site', ['ignore_request' => true]); } else { // load the content articles file $com_path = JPATH_SITE . '/components/com_content/'; include_once $com_path . 'router.php'; include_once $com_path . 'helpers/route.php'; JModelLegacy::addIncludePath($com_path . '/models', 'ContentModel'); // Get an instance of the generic articles model $articles = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true)); } return $articles; } } PK�H#]�£!RRcategories/categories.xmlnu�[���<?xml version="1.0" encoding="utf-8"?> <extension version="3" type="plugin" group="maximenuck" method="upgrade"> <name>Maximenu CK - Categories</name> <creationDate>June 2020</creationDate> <copyright>Copyright (C) 2020. All rights reserved.</copyright> <license>GNU General Public License version 2 or later</license> <author>Cedric Keiflin</author> <authorEmail>ced1870@gmail.com</authorEmail> <authorUrl>https://www.joomlack.fr</authorUrl> <version>9.1.25</version> <description>Loader of Categories items for Maximenu CK</description> <files> <filename plugin="categories">categories.php</filename> <folder>elements</folder> <folder>helper</folder> <folder>language</folder> <folder>params</folder> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_categories.sys.ini</language> <language tag="en-GB">en-GB/en-GB.plg_maximenuck_categories.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_categories.sys.ini</language> <language tag="fr-FR">fr-FR/fr-FR.plg_maximenuck_categories.ini</language> </languages> </extension>PK�H#]�V�categories/language/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]�V�$categories/language/en-GB/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]���88Acategories/language/en-GB/en-GB.plg_maximenuck_categories.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_CATEGORIES_DESC ="<p>System - Maximenu CK Articles</p><p>The plugin allows you to load the articles by date into Maximenu CK</p>"PK�H#]G[*44=categories/language/en-GB/en-GB.plg_maximenuck_categories.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_CATEGORIES="Categories" MAXIMENUCK_CATEGORIES_DESC ="Maximenu CK Articles. The plugin allows you to load the articles by category into Maximenu CK</p>" MAXIMENUCK_CATEGORIES_SPACER_MAXIMENUCKARTICLES_PATCH_INSTALLED="Plugin Maximenu CK catégories installed and activated." MAXIMENUCK_CATEGORIES_AUTOLOADARTICLECATEGORY="Autoload from a category of articles" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWFEATURED_DESC="Select to Show, Hide, or Only display Featured Articles." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWFEATURED_LABEL="Featured Articles" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_COUNT_DESC="The number of items to display. The default value of 0 will display all articles." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_COUNT_LABEL="Count" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWFEATURED_DESC="Select to Show, Hide, or Only display Featured Articles." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWFEATURED_LABEL="Featured Articles" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ONLYFEATURED_VALUE="Only" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATFILTERINGTYPE_DESC="Select Inclusive to Include the Selected Categories, Exclusive to Exclude the Selected Categories." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATFILTERINGTYPE_LABEL="Category Filtering Type" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_INCLUSIVE_VALUE="Inclusive" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_EXCLUSIVE_VALUE="Exclusive" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATEGORY_DESC="Please select one or more categories." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_DESC="Include or Exclude Articles from Child Categories." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_LABEL="Child Category Articles" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_INCLUDE_VALUE="Include" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_EXCLUDE_VALUE="Exclude" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATDEPTH_DESC="The number of child category levels to return." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATDEPTH_LABEL="Category Depth" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_EXCLUDEDARTICLES_DESC="Please enter each Article ID on a new line." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_EXCLUDEDARTICLES_LABEL="Article IDs to Exclude" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATEFILTERING_DESC="Select Date Filtering Type." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATEFILTERING_LABEL="Date Filtering" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_OFF_VALUE="Off" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_DATERANGE_VALUE="Date Range" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_RELATIVEDAY_VALUE="Relative Date" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_STARTPUBLISHING_VALUE="Start Publishing Date" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_FINISHPUBLISHING_VALUE="Finish Publishing Date" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_CREATED_VALUE="Created Date" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATERANGEFIELD_DESC="Select which date field you want the date range to be applied to." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATERANGEFIELD_LABEL="Date Range Field" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_MODIFIED_VALUE="Modified Date" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_STARTDATE_DESC="If Date Range is selected above, please enter a Starting Date." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_STARTDATE_LABEL="Start Date Range" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ENDDATE_DESC="If Date Range is selected above, please enter an End Date." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ENDDATE_LABEL="To Date" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_RELATIVEDATE_DESC="If Relative Date is selected above, please enter in a numeric day value. Results will be retrieved relative to the current date and the value you enter." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_RELATIVEDATE_LABEL="Relative Date" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERING_DESC="Select which field you would like Articles to be ordered by. Featured Ordering should only be used when Filtering Option for Featured Articles is set to 'Only'." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERING_LABEL="Article Field to Order By" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ORDERING_VALUE="Article Manager Order" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ORDERINGFEATURED_VALUE="Featured Articles Order" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_HITS_VALUE="Hits" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ID_VALUE="ID" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERINGDIR_DESC="Select the direction you would like Articles to be ordered by." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERINGDIR_LABEL="Ordering Direction" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ASCENDING_VALUE="Ascending" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_DESCENDING_VALUE="Descending" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_MODE_DESC="Please select the mode you would like to use. If Normal Mode is chosen, then simply configure the module and it will display a static list of Articles on the menu items you assign the module to. If Dynamic Mode is chosen, then you can still configure the module normally, however now the Category option will no longer be used. Instead, the module will dynamically detect whether or not you are on a Category view and will display the list of articles within that Category accordingly. When Dynamic Mode is chosen, it is best to leave the module set to display on all pages, as it will decide whether or not to display anything dynamically." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_MODE_LABEL="Mode" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_NORMAL_VALUE="Normal" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_DYNAMIC_VALUE="Dynamic" MAXIMENUCK_CATEGORIES_ARTICLEIMAGESOURCE_LABEL="Load articles based on" MAXIMENUCK_CATEGORIES_ARTICLEIMAGESOURCE_DESC="This filter allows you to select if you want to load all the articles from the filter belows and take the first image in the content, or use the 'intro image' option for each article (if no into image is set the article is not added)" MAXIMENUCK_CATEGORIES_ARTICLEFROMINTROIMAGE_OPTION="Intro image article option" MAXIMENUCK_CATEGORIES_ARTICLEFROMFIRSTIMAGE_OPTION="First image in the content" MAXIMENUCK_CATEGORIES_ARTICLEFROMTEXT_OPTION="Only text" PLG_MAXIMENUCK_CATEGORIES_LABEL="Categories" MAXIMENUCK_CATEGORIES_SHOWARTICLES_LABEL="Show articles" MAXIMENUCK_CATEGORIES_SHOWARTICLES_DESC="Show articles in each subcategory, or only the subcategory" PK�H#]iGi�ffAcategories/language/fr-FR/fr-FR.plg_maximenuck_categories.sys.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_CATEGORIES_DESC ="<p>Système - Maximenu CK Articles par date</p><p>Le plugin permet d'afficher les articles dans le module Maximenu CK</p>"PK�H#].h����=categories/language/fr-FR/fr-FR.plg_maximenuck_categories.ininu�[���; @copyright Copyright (C) 2017 Cédric KEIFLIN alias ced1870 ; https://www.template-creator.com ; https://www.joomlack.fr ; @license GNU/GPL ; Double quotes in the values have to be formatted as "_QQ_" MAXIMENUCK_SOURCE_CATEGORIES="Catégories" MAXIMENUCK_CATEGORIES_DESC ="<p>Maximenu CK Articles</p><p>Le plugin permet d'afficher les articles par catégorie dans le module Maximenu CK</p>" MAXIMENUCK_CATEGORIES_SPACER_MAXIMENUCKARTICLES_PATCH_INSTALLED="Plugin Maximenu CK catégories installé et activé." MAXIMENUCK_CATEGORIES_AUTOLOADARTICLECATEGORY="Charger automatiquement depuis une catégorie d'articles" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWFEATURED_DESC="Afficher, masquer, ou afficher uniquement les articles 'en vedette'." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWFEATURED_LABEL="Articles 'en vedette'" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_COUNT_DESC="Nombre d'articles à afficher.<br />La valeur '0' affiche tous les articles." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_COUNT_LABEL="Nombre" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATFILTERINGTYPE_DESC="Le mode 'Inclure' inclut uniquement les catégories sélectionnées<br />Le mode 'Exclure' exclut toutes les catégories sélectionnées." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATFILTERINGTYPE_LABEL="Filtre de catégorie" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ONLYFEATURED_VALUE="Uniquement" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATFILTERINGTYPE_DESC="Le mode 'Inclure' inclut uniquement les catégories sélectionnées<br />Le mode 'Exclure' exclut toutes les catégories sélectionnées." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATFILTERINGTYPE_LABEL="Filtre de catégorie" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_INCLUSIVE_VALUE="Inclure" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_EXCLUSIVE_VALUE="Exclure" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATEGORY_DESC="Veuillez sélectionner une ou plusieurs catégories." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_DESC="Inclure ou exclure les articles des catégories enfants." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_SHOWCHILDCATEGORYARTICLES_LABEL="Catégories enfants" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_INCLUDE_VALUE="Inclure" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_EXCLUDE_VALUE="Exclure" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATDEPTH_DESC="Nombre de niveaux de catégories enfants à afficher." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_CATDEPTH_LABEL="Niveaux de catégorie" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_EXCLUDEDARTICLES_DESC="Veuillez saisir chaque ID d'article à exclure sur une nouvelle ligne." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_EXCLUDEDARTICLES_LABEL="ID des articles à exclure" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATEFILTERING_DESC="Le mode 'Plage' définit les articles à afficher selon une date de départ et de fin.<br />Le mode 'Relative' définit les articles à afficher selon une date relative basée sur les X derniers jours spécifiés." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATEFILTERING_LABEL="Filtre de date" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_OFF_VALUE="Désactivé" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_DATERANGE_VALUE="Plage" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_RELATIVEDAY_VALUE="Relative" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_STARTPUBLISHING_VALUE="Date de début de publication" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_FINISHPUBLISHING_VALUE="Date de fin de publication" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_CREATED_VALUE="Date de création" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATERANGEFIELD_DESC="Sélectionnez le champ date auquel appliquer la plage de dates." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_DATERANGEFIELD_LABEL="Plage de dates" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_MODIFIED_VALUE="Date de modification" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_STARTDATE_DESC="Si le mode 'Plage' est sélectionné, saisissez une date de début." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_STARTDATE_LABEL="Début de la plage" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ENDDATE_DESC="Si le mode 'Plage' est sélectionné, saisissez une date de fin." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ENDDATE_LABEL="Fin de la plage" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_RELATIVEDATE_DESC="Si le mode 'Relative' est est sélectionné, saisissez une valeur numérique correspondant au nombre de jours à tenir compte à partir de la date du jour consulté." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_RELATIVEDATE_LABEL="Date relative" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERING_DESC="Sélectionnez le champ par lequel les articles sont triés." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERING_LABEL="Champ de tri" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ORDERING_VALUE="Ordre de Joomla!" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ORDERINGFEATURED_VALUE="Articles en vedette" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_HITS_VALUE="Clics" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ID_VALUE="ID" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERINGDIR_DESC="Sélectionnez le sens de tri des articles. Tri par Articles en vedette ne doit être utilisé que lorsque l'option de tri pour les Articles en vedette est paramètré sur 'Uniquement'." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_ARTICLEORDERINGDIR_LABEL="Sens du tri" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_ASCENDING_VALUE="Ascendant" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_DESCENDING_VALUE="Descendant" MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_MODE_DESC="Veuillez sélectionner le mode souhaité.<br />Le mode 'Normal' affiche une liste statique d'articles selon les paramètres du module.<br />Le mode 'Dynamique' affiche une liste d'articles selon les paramètres du module mais également selon la page sur laquelle il est affiché (les paramètres sur les catégories ne sont pas pris en compte) ; le module détecte si vous êtes sur un affichage de type 'Catégorie' et adapte la liste avec des articles de cette catégorie." MAXIMENUCK_CATEGORIES_CATEGORY_FIELD_MODE_LABEL="Mode" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_NORMAL_VALUE="Normal" MAXIMENUCK_CATEGORIES_CATEGORY_OPTION_DYNAMIC_VALUE="Dynamique" MAXIMENUCK_CATEGORIES_ARTICLEIMAGESOURCE_LABEL="Charge les articles en se basant sur" MAXIMENUCK_CATEGORIES_ARTICLEIMAGESOURCE_DESC="Ce filtre vous permet de choisir si vous voulez que les images soient chargées en cherchant la première image contenue dans l'article, ou alors en se basant sur l'option 'image d'intro' de l'article (si l'article n'a aucune image d'intro il ne sera alors pas chargé dans le slideshow)" MAXIMENUCK_CATEGORIES_ARTICLEFROMINTROIMAGE_OPTION="Image d'intro de l'article" MAXIMENUCK_CATEGORIES_ARTICLEFROMFIRSTIMAGE_OPTION="Première image contenu dans l'article" MAXIMENUCK_CATEGORIES_ARTICLEFROMTEXT_OPTION="Seulement le texte" PLG_MAXIMENUCK_CATEGORIES_LABEL="Catégories" MAXIMENUCK_CATEGORIES_SHOWARTICLES_LABEL="Montrer les articles" MAXIMENUCK_CATEGORIES_SHOWARTICLES_DESC="Montrer les articles dans chaque sous-catégorie, ou uniquement les sous-catégories"PK�H#]�V�$categories/language/fr-FR/index.htmlnu�[���<!DOCTYPE html><title></title> PK�H#]������categories/categories.phpnu�[���<?php /** * @copyright Copyright (C) 2018 Cédric KEIFLIN alias ced1870 * https://www.template-creator.com * https://www.joomlack.fr * @license GNU/GPL * */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.event.plugin'); class plgMaximenuckCategories extends JPlugin { private $type = 'categories'; function __construct(&$subject, $params) { parent::__construct($subject, $params); } /* * Send the infos in the source list to add the type in the plugin options * * Return string the source type */ public function onMaximenuckGetSourceName() { $this->loadLanguage(); return $this->type; } }PK�H#]wtW�k2/elements/index.htmlnu�[���PK�H#]�|����`k2/elements/ckk2category.phpnu�[���PK�H#]�#o,,ok2/helper/index.htmlnu�[���PK�H#]����k2/helper/helper_k2.phpnu�[���PK�H#]��L��-'k2/params/k2_params.xmlnu�[���PK�H#]�#o,,80k2/params/index.htmlnu�[���PK�H#]�nEE-�0k2/language/en-GB/en-GB.plg_maximenuck_k2.ininu�[���PK�H#]�V�J2k2/language/en-GB/index.htmlnu�[���PK�H#]��1K1�2k2/language/en-GB/en-GB.plg_maximenuck_k2.sys.ininu�[���PK�H#]eOگ==1(4k2/language/fr-FR/fr-FR.plg_maximenuck_k2.sys.ininu�[���PK�H#]�I��VV-�5k2/language/fr-FR/fr-FR.plg_maximenuck_k2.ininu�[���PK�H#]�V�y7k2/language/fr-FR/index.htmlnu�[���PK�H#]�V��7k2/language/index.htmlnu�[���PK�H#]�+*�ee I8k2/k2.phpnu�[���PK�H#]��}Z �?k2/k2.xmlnu�[���PK�H#]V���**A5Dvirtuemart/language/en-GB/en-GB.plg_maximenuck_virtuemart.sys.ininu�[���PK�H#]��E���=�Evirtuemart/language/en-GB/en-GB.plg_maximenuck_virtuemart.ininu�[���PK�H#]�V�$�Lvirtuemart/language/en-GB/index.htmlnu�[���PK�H#]7���UUATMvirtuemart/language/fr-FR/fr-FR.plg_maximenuck_virtuemart.sys.ininu�[���PK�H#]mL�qq=Ovirtuemart/language/fr-FR/fr-FR.plg_maximenuck_virtuemart.ininu�[���PK�H#]�V�$�Vvirtuemart/language/fr-FR/index.htmlnu�[���PK�H#]�V�kWvirtuemart/language/index.htmlnu�[���PK�H#]F[��UU�Wvirtuemart/virtuemart.xmlnu�[���PK�H#]���֮�v\virtuemart/virtuemart.phpnu�[���PK�H#]�e� � 'mdvirtuemart/params/virtuemart_params.xmlnu�[���PK�H#]�#o,,onvirtuemart/params/index.htmlnu�[���PK�H#][H�2G G $�nvirtuemart/elements/ckvmcategory.phpnu�[���PK�H#]wtW��yvirtuemart/elements/index.htmlnu�[���PK�H#]�Y�..'�yvirtuemart/helper/helper_virtuemart.phpnu�[���PK�H#]�#o,,W�virtuemart/helper/index.htmlnu�[���PK�H#]�V� Ϩjoomshopping/language/index.htmlnu�[���PK�H#]����00E>�joomshopping/language/en-GB/en-GB.plg_maximenuck_joomshopping.sys.ininu�[���PK�H#]5�͛A�joomshopping/language/en-GB/en-GB.plg_maximenuck_joomshopping.ininu�[���PK�H#]�V�&r�joomshopping/language/en-GB/index.htmlnu�[���PK�H#]�V�&�joomshopping/language/fr-FR/index.htmlnu�[���PK�H#]�`�66A\�joomshopping/language/fr-FR/fr-FR.plg_maximenuck_joomshopping.ininu�[���PK�H#]d�Dg[[E�joomshopping/language/fr-FR/fr-FR.plg_maximenuck_joomshopping.sys.ininu�[���PK�H#]��:0Ӳjoomshopping/elements/ckjoomshoppingcategory.phpnu�[���PK�H#]wtW� R�joomshopping/elements/index.htmlnu�[���PK�H#]��/7����joomshopping/joomshopping.phpnu�[���PK�H#]�.TOee��joomshopping/joomshopping.xmlnu�[���PK�H#]�#o,,w�joomshopping/params/index.htmlnu�[���PK�H#]�a�x x +��joomshopping/params/joomshopping_params.xmlnu�[���PK�H#]�Uc�"�"+��joomshopping/helper/helper_joomshopping.phpnu�[���PK�H#]�#o,,��joomshopping/helper/index.htmlnu�[���PK�H#]w�y���!m�articlesbydate/articlesbydate.phpnu�[���PK�H#]Ds�vv!`�articlesbydate/articlesbydate.xmlnu�[���PK�H#]wtW�"'�articlesbydate/elements/index.htmlnu�[���PK�H#]�<���4�4/��articlesbydate/helper/helper_articlesbydate.phpnu�[���PK�H#]�#o,, ~2articlesbydate/helper/index.htmlnu�[���PK�H#]�o+�/�2articlesbydate/params/articlesbydate_params.xmlnu�[���PK�H#]�#o,, mJarticlesbydate/params/index.htmlnu�[���PK�H#]�V�"�Jarticlesbydate/language/index.htmlnu�[���PK�H#]p�.<<IZKarticlesbydate/language/en-GB/en-GB.plg_maximenuck_articlesbydate.sys.ininu�[���PK�H#]T�M7��EMarticlesbydate/language/en-GB/en-GB.plg_maximenuck_articlesbydate.ininu�[���PK�H#]�V�(garticlesbydate/language/en-GB/index.htmlnu�[���PK�H#]�V�({garticlesbydate/language/fr-FR/index.htmlnu�[���PK�H#]��� E�garticlesbydate/language/fr-FR/fr-FR.plg_maximenuck_articlesbydate.ininu�[���PK�H#]�K/PjjIt�articlesbydate/language/fr-FR/fr-FR.plg_maximenuck_articlesbydate.sys.ininu�[���PK�H#],N� � )W�hikashop/elements/ckhikashopcategory2.phpnu�[���PK�H#]��\ 55%��hikashop/elements/ckhikashopcheck.phpnu�[���PK�H#]=.;%BB(8�hikashop/elements/ckhikashopcategory.phpnu�[���PK�H#]wtW�Ҟhikashop/elements/index.htmlnu�[���PK�H#]�#o,,8�hikashop/helper/index.htmlnu�[���PK�H#]]���@�@#��hikashop/helper/helper_hikashop.phpnu�[���PK�H#]�w2����hikashop/hikashop.phpnu�[���PK�H#] J^EE��hikashop/hikashop.xmlnu�[���PK�H#]�#o,,Y�hikashop/params/index.htmlnu�[���PK�H#] EE<<#��hikashop/params/hikashop_params.xmlnu�[���PK�H#]�V�^�hikashop/language/index.htmlnu�[���PK�H#]�Y�OO=�hikashop/language/fr-FR/fr-FR.plg_maximenuck_hikashop.sys.ininu�[���PK�H#]�V�"��hikashop/language/fr-FR/index.htmlnu�[���PK�H#]L�Yff9��hikashop/language/fr-FR/fr-FR.plg_maximenuck_hikashop.ininu�[���PK�H#]�`��$$=�hikashop/language/en-GB/en-GB.plg_maximenuck_hikashop.sys.ininu�[���PK�H#]O�q 9Vhikashop/language/en-GB/en-GB.plg_maximenuck_hikashop.ininu�[���PK�H#]�V�"�!hikashop/language/en-GB/index.htmlnu�[���PK�H#]�#o,,9"adsmanager/helper/index.htmlnu�[���PK�H#]�`�]]'�"adsmanager/helper/helper_adsmanager.phpnu�[���PK�H#]z@b2� � 'eAadsmanager/params/adsmanager_params.xmlnu�[���PK�H#]�#o,,�Kadsmanager/params/index.htmlnu�[���PK�H#]��+Rdd=�Kadsmanager/language/en-GB/en-GB.plg_maximenuck_adsmanager.ininu�[���PK�H#]�V�$�Sadsmanager/language/en-GB/index.htmlnu�[���PK�H#]�81�**A<Tadsmanager/language/en-GB/en-GB.plg_maximenuck_adsmanager.sys.ininu�[���PK�H#]P̈́i88=�Uadsmanager/language/fr-FR/fr-FR.plg_maximenuck_adsmanager.ininu�[���PK�H#]�V�$|^adsmanager/language/fr-FR/index.htmlnu�[���PK�H#]��8UUA�^adsmanager/language/fr-FR/fr-FR.plg_maximenuck_adsmanager.sys.ininu�[���PK�H#]�V��`adsmanager/language/index.htmlnu�[���PK�H#]��v��"aadsmanager/adsmanager.phpnu�[���PK�H#]Q;�UUiadsmanager/adsmanager.xmlnu�[���PK�H#]wtW��madsmanager/elements/index.htmlnu�[���PK�H#]@��,nadsmanager/elements/ckadsmanagercategory.phpnu�[���PK�H#]wtW�vcategories/elements/index.htmlnu�[���PK�H#]��99'�vcategories/params/categories_params.xmlnu�[���PK�H#]�#o,,|categories/params/index.htmlnu�[���PK�H#]�#o,,�|categories/helper/index.htmlnu�[���PK�H#]���&&'}categories/helper/helper_categories.phpnu�[���PK�H#]�£!RRe�categories/categories.xmlnu�[���PK�H#]�V��categories/language/index.htmlnu�[���PK�H#]�V�$m�categories/language/en-GB/index.htmlnu�[���PK�H#]���88A�categories/language/en-GB/en-GB.plg_maximenuck_categories.sys.ininu�[���PK�H#]G[*44=��categories/language/en-GB/en-GB.plg_maximenuck_categories.ininu�[���PK�H#]iGi�ffA*�categories/language/fr-FR/fr-FR.plg_maximenuck_categories.sys.ininu�[���PK�H#].h����=�categories/language/fr-FR/fr-FR.plg_maximenuck_categories.ininu�[���PK�H#]�V�$R�categories/language/fr-FR/index.htmlnu�[���PK�H#]��������categories/categories.phpnu�[���PKii�*��
/home/chauffn/vuzelia/2023/cf455/../includes/../cc5e2/maximenuck.zip