| Server IP : 46.105.57.169 / Your IP : 216.73.216.144 Web Server : Apache System : Linux webd003.cluster120.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : maitricfuz ( 93378) PHP Version : 8.4.10 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/maitricfuz/www/saint-martin-lg/plugins/slideshowck/hikashop/elements/ |
Upload File : |
<?php
/**
* @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870
* https://www.joomlack.fr
* @license GNU/GPL
* */
defined('JPATH_BASE') or die;
jimport('joomla.filesystem.file');
jimport('joomla.form.formfield');
\Joomla\CMS\Form\FormHelper::loadFieldClass('cklist');
class JFormFieldCkhikashopcategory extends \Joomla\CMS\Form\Field\ListField {
protected $type = 'ckhikashopcategory';
protected function getOptions() {
// if the component is not installed
if (!is_dir(JPATH_ROOT . '/administrator/components/com_hikashop')) {
// add the root item
$option = new stdClass();
$option->text = Slideshowck\CKText::_('SLIDESHOWCK_HIKASHOP_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();
// add the root item
$option = new stdClass();
$option->text = Slideshowck\CKText::_('SLIDESHOWCK_HIKASHOP_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 = \Joomla\CMS\Factory::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;
}
}