Новости Joomla

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

Google Summer of Code (GSoC) - программа компании Google, которая позволяет участникам программы под руководством опытных наставников писать код для организаций, занимающейся открытым исходным кодом. Joomla принимает участие в этой программе не в первый раз и в 2026 году снова включена в список GSoC. Для программы утверждается список "идей", воплотить которые должны участники под руководством наставников.

Проекты Joomla в рамках программы GSoC 2026.

Проект I: Ajax-бэкенд.
- Действия в административной панели без необходимости обновлять страницу.
- Автоматическое сохранение содержимого во время редактирования.
- Расширенный фильтр - поиск и фильтрация по пользовательским полям.

Проект II: Автоматизация рабочих процессов (workflow + task scheduler).
Joomla имеет функцию процессов и планировщика задач. Теперь эти две функции следует объединить, чтобы пользователь мог настраивать назначенные рабочие процессы таким образом, чтобы переходы выполнялись автоматически, с возможностью точного определения времени. Должна быть возможность создавать циклы или прямые запланированные рабочие процессы. Предполагается, что интерфейс должен учитывать хороший пользовательский опыт, удобство использования и современные стандарты доступности. Ожидается, что будет добавлен интерфейс для управления процессами и их расписанием на страницах категорий и материалов. Так же ожидается, что сторонние компоненты также смогут воспользоваться этим функционалом.

Проект III: Мультикатегории.
В настоящее время Joomla! не позволяет назначать один элемент нескольким категориям. Хотя система тегов часто используется в качестве замены, существует острая потребность в нативной поддержке нескольких категорий, чтобы привести Joomla! в соответствие с другими современными системами управления контентом.

Проект IV: Обучение с подкреплением на основе отзывов переводчиков.
Joomla собирается использовать автоматический перевод документации. В каждом языке есть свои специфические слова, характерные для Joomla. Предполагается обучать языковые модели, используя обратную связь от переводчиков, чтобы постоянно улучшать качество переводов и учитывать специфические языковые особенности Joomla.

Принять участие GSoC 2026
Подробнее о проектах Joomla GSoC 2026
Чат GSoC в Mattermost (международное сообщество Joomla)

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 2358 Просмотров
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Добрый день.
Перестал работать lightbox - фото открывается в новом окне.
/components/com_jshopping/files/img_products/full_IM_1_2018_tipogr_oll_str1_isp.png

Зашел проверить в Настройки/ Другие параметры
Включен ли lightbox, включен по выдает ошибку

Цитировать
Error load file: components/com_jshopping/js/jquery/jquery-.min.js

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Не работает lightbox магазина JoomShopping
« Ответ #1 : 20.06.2018, 17:32:48 »
в настройках JoomShopping задайте номер версии jquery, какая у вас установлена (файл components/com_jshopping/js/jquery/jquery-???.min.js)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #2 : 20.06.2018, 18:06:46 »
в настройках JoomShopping задайте номер версии jquery, какая у вас установлена (файл components/com_jshopping/js/jquery/jquery-???.min.js)

Версия -jquery-1.6.2.min.js
Версия JoomShopping -Version 3.20.2


Где в настройках указать версию?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Не работает lightbox магазина JoomShopping
« Ответ #3 : 20.06.2018, 18:15:10 »
в настройках JoomShopping
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #4 : 20.06.2018, 18:22:13 »
jquery
Может я ослеп, но тут нет, где указать версию.


http://prntscr.com/jx80gb
http://prntscr.com/jx8182
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Не работает lightbox магазина JoomShopping
« Ответ #5 : 20.06.2018, 18:53:58 »
забыл уже как это было в 2.5 Joomla :) вот в этом файле указывается \components\com_jshopping\lib\default_config.php
Код
$config->load_jquery_version = '1.6.2';
только вопрос в том, а кто у вас в нем лазил и зачем?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #6 : 20.06.2018, 18:56:19 »
забыл уже как это было в 2.5 Joomla :) вот в этом файле указывается \components\com_jshopping\lib\default_config.php
Код
$config->load_jquery_version = '1.6.2';
только вопрос в том, а кто у вас в нем лазил и зачем?

Странно все стоит http://prntscr.com/jx8g7b.
https://nogti.ua/vspomogatelnye-materialy/zhurnal-iskusstvo-manikyura.html Товар - при нажатие открывается в новом окне.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Не работает lightbox магазина JoomShopping
« Ответ #7 : 20.06.2018, 18:56:50 »
а файл \components\com_jshopping\lib\user_config.php есть?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #8 : 20.06.2018, 19:01:56 »
а файл \components\com_jshopping\lib\user_config.php есть?
Такого файла нету, http://prntscr.com/jx8iqa
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Не работает lightbox магазина JoomShopping
« Ответ #9 : 20.06.2018, 19:04:24 »
покажите как у вас выглядит в файле \components\com_jshopping\lib\factory.php function loadJsFiles
Спойлер
[свернуть]
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Не работает lightbox магазина JoomShopping
« Ответ #10 : 20.06.2018, 19:08:29 »
Ошибку устраните яваскрипта
Код
SyntaxError: missing ) after argument list
https://nogti.ua/plugins/system/helix/js/jquery.js
Line 11
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #11 : 20.06.2018, 19:08:30 »
покажите как у вас выглядит в файле \components\com_jshopping\lib\factory.php function loadJsFiles
Спойлер
[свернуть]


Цитировать
Код
<?php
error_reporting(error_reporting() & ~E_NOTICE);
JTable::addIncludePath(JPATH_ROOT.'/components/com_jshopping/tables');
include_once(JPATH_ROOT."/components/com_jshopping/lib/jtableauto.php");
include_once(JPATH_ROOT."/components/com_jshopping/lib/multilangfield.php");
include_once(JPATH_ROOT."/components/com_jshopping/tables/config.php");
require_once(JPATH_ROOT."/components/com_jshopping/lib/functions.php");
class JSFactory{
    public static function getConfig(){
    static $config;
        if (!is_object($config)){
            JPluginHelper::importPlugin('jshopping');
            $dispatcher = JDispatcher::getInstance();
            $db = JFactory::getDBO();
            $config = new jshopConfig($db);           
            include(dirname(__FILE__)."/default_config.php");
            if (file_exists(dirname(__FILE__)."/user_config.php")) include(dirname(__FILE__)."/user_config.php");
            $dispatcher->trigger('onBeforeLoadJshopConfig', array($config));
            $config->load($config->load_id);
            $config->loadOtherConfig();
            $config->loadCurrencyValue();
            $config->loadFrontLand();
            $config->loadLang();

            list($config->pdf_header_width, $config->pdf_header_height, $config->pdf_footer_width, $config->pdf_footer_height) = explode(":", $config->pdf_parameters);

            if (!$config->allow_reviews_prod){
                unset($config->sorting_products_field_select[5]);
                unset($config->sorting_products_name_select[5]);
                unset($config->sorting_products_field_s_select[5]);
                unset($config->sorting_products_name_s_select[5]);
            }

            if ($config->product_count_related_in_row<1) $config->product_count_related_in_row = 1;

            if ($config->user_as_catalog){
                $config->show_buy_in_category = 0;
            }
            if (!$config->stock){
                $config->hide_product_not_avaible_stock = 0;
                $config->hide_buy_not_avaible_stock = 0;
                $config->hide_text_product_not_available = 1;
                $config->product_list_show_qty_stock = 0;
                $config->product_show_qty_stock = 0;
            }

            if ($config->hide_product_not_avaible_stock || $config->hide_buy_not_avaible_stock){
                $config->controler_buy_qty = 1;
            }else{
                $config->controler_buy_qty = 0;
            }

            $config->display_price_front_current = $config->getDisplayPriceFront();// 0 - Brutto, 1 - Netto

            if ($config->template==""){
                $config->template = "default";
            }

            if ($config->show_product_code || $config->show_product_code_in_cart){
                $config->show_product_code_in_order = 1;
            }else{
                $config->show_product_code_in_order = 0;
            }

            if ($config->admin_show_vendors==0){
                $config->vendor_order_message_type = 0; //0 - none, 1 - mesage, 2 - order if not multivendor
                $config->admin_not_send_email_order_vendor_order = 0;
                $config->product_show_vendor = 0;
                $config->product_show_vendor_detail = 0;
            }
            $config->copyrightText = '';
            if ($config->image_resize_type==0){
                $config->image_cut = 1;
                $config->image_fill = 2;
            }elseif ($config->image_resize_type==1){
                $config->image_cut = 0;
                $config->image_fill = 2;
            }else{
                $config->image_cut = 0;
                $config->image_fill = 0;
            }
            if (!$config->tax){
                $config->show_tax_in_product = 0;
                $config->show_tax_product_in_cart = 0;
                $config->hide_tax = 1;
            }
            if (!$config->admin_show_delivery_time){
                $config->show_delivery_time = 0;
                $config->show_delivery_time_checkout = 0;
                $config->show_delivery_time_step5 = 0;
                $config->display_delivery_time_for_product_in_order_mail = 0;
                $config->show_delivery_date = 0;
            }
            if (!$config->admin_show_product_basic_price){
                $config->cart_basic_price_show = 0;
            }
$config->use_ssl = intval($config->use_ssl);

            $dispatcher->trigger('onLoadJshopConfig', array(&$config));
        }
    return $config;
    }
    public static function getUserShop(){
    static $usershop;
        if (!is_object($usershop)){
            $user = JFactory::getUser();
            $db = JFactory::getDBO();
            require_once(JPATH_ROOT."/components/com_jshopping/tables/usershop.php");
            $usershop = new jshopUserShop($db);
            if ($user->id){
                if (!$usershop->isUserInShop($user->id)){
                    $usershop->addUserToTableShop($user);
                }
                $usershop->load($user->id);
                $usershop->percent_discount = $usershop->getDiscount();
            }else{
                $usershop->percent_discount = 0;
            }
            JDispatcher::getInstance()->trigger('onAfterGetUserShopJSFactory', array(&$usershop));
        }
    return $usershop;
    }

    public static function getUserShopGuest(){
    static $userguest;
        if (!is_object($userguest)){
            require_once(JPATH_ROOT."/components/com_jshopping/models/userguest.php");
            $userguest = new jshopUserGust();
            $userguest->load();
            $userguest->percent_discount = 0;
            JDispatcher::getInstance()->trigger('onAfterGetUserShopGuestJSFactory', array(&$userguest));
        }
    return $userguest;
    }
     public static function getUser(){
        $user = JFactory::getUser();
        if ($user->id){
            $adv_user = JSFactory::getUserShop();
        }else{
            $adv_user = JSFactory::getUserShopGuest();   
        }
    return $adv_user;
    }

    public static function loadCssFiles(){
    static $load;
        $jshopConfig = JSFactory::getConfig();
        if (!$jshopConfig->load_css) return 0;
        if (!$load){
            $document = JFactory::getDocument();
            $jshopConfig = JSFactory::getConfig();
            $document->addStyleSheet(JURI::root().'components/com_jshopping/css/'.$jshopConfig->template.'.css');           
            if (file_exists(JPATH_ROOT.'/components/com_jshopping/css/'.$jshopConfig->template.'.custom.css')){
                $document->addStyleSheet(JURI::root().'components/com_jshopping/css/'.$jshopConfig->template.'.custom.css');
            }
            $load = 1;
        }
    }

    public static function loadJsFiles(){
    static $load;
        if (!$load){
            $jshopConfig = JSFactory::getConfig();
            $document = JFactory::getDocument();
            if ($jshopConfig->load_jquery){
                $document->addScript(JURI::root().'components/com_jshopping/js/jquery/jquery-'.$jshopConfig->load_jquery_version.'.min.js');
$document->addScript(JURI::root().'components/com_jshopping/js/jquery/jquery-noconflict.js');
            }
            if ($jshopConfig->load_javascript){
                $document->addScript(JURI::root().'components/com_jshopping/js/jquery/jquery.media.js');
                $document->addScript(JURI::root().'components/com_jshopping/js/functions.js');
                $document->addScript(JURI::root().'components/com_jshopping/js/validateForm.js');
            }
            $load = 1;
        }
    }

    public static function loadJsFilesRating(){
    static $load;
        if (!$load){
            $jshopConfig = JSFactory::getConfig();
            if ($jshopConfig->load_javascript){
                $document = JFactory::getDocument();
                $document->addScript(JURI::root().'components/com_jshopping/js/jquery/jquery.MetaData.js');
                $document->addScript(JURI::root().'components/com_jshopping/js/jquery/jquery.rating.pack.js');
                $document->addStyleSheet(JURI::root().'components/com_jshopping/css/jquery.rating.css');
            }
            $load = 1;
        }
    }

    public static function loadJsFilesLightBox(){
    static $load;
        $jshopConfig = JSFactory::getConfig();
        if (!$jshopConfig->load_jquery_lightbox) return 0;
        if (!$load){
            $document = JFactory::getDocument();
            $document->addScript(JURI::root().'components/com_jshopping/js/jquery/jquery.lightbox-0.5.pack.js');
            $document->addStyleSheet(JURI::root().'components/com_jshopping/css/jquery.lightbox-0.5.css');
            $document->addScriptDeclaration('function initJSlightBox(){
                jQuery("a.lightbox").lightBox({
                    imageLoading: "'.JURI::root().'components/com_jshopping/images/loading.gif",
                    imageBtnClose: "'.JURI::root().'components/com_jshopping/images/close.gif",
                    imageBtnPrev: "'.JURI::root().'components/com_jshopping/images/prev.gif",
                    imageBtnNext: "'.JURI::root().'components/com_jshopping/images/next.gif",
                    imageBlank: "'.JURI::root().'components/com_jshopping/images/blank.gif",
                    txtImage: "'._JSHOP_IMAGE.'",
                    txtOf: "'._JSHOP_OF.'"
                });
            }
            jQuery(function() { initJSlightBox(); });');
            $load = 1;
        }
    }

public static function reloadConfigFieldTLF(){
$jshopConfig = JSFactory::getConfig();
$reload = array('user_field_client_type','user_field_title','sorting_products_name_select','sorting_products_name_s_select','count_product_select');
foreach($reload as $field){
$tmp = $jshopConfig->$field;
foreach($tmp as $k=>$v){
if (defined($v)) $tmp[$k] = constant($v);
}
$jshopConfig->$field = $tmp;
}
}

    public static function loadLanguageFile($langtag = ""){
        $lang = JFactory::getLanguage();
        if ($langtag==""){
            $langtag = $lang->getTag();
        }
        $langpatch = JPATH_ROOT.'/components/com_jshopping/lang/';       
        if (file_exists($langpatch.'override/'.$langtag.'.php'))
            require_once($langpatch.'override/'.$langtag.'.php');
        if (file_exists($langpatch.$langtag.'.php'))
            require_once($langpatch.$langtag.'.php');
        else
            require_once($langpatch.'en-GB.php');
JSFactory::reloadConfigFieldTLF();
    }

    public static function loadExtLanguageFile($extname, $langtag = ""){
        $lang = JFactory::getLanguage();
        if ($langtag==""){
            $langtag = $lang->getTag();
        }       
        if(file_exists(JPATH_ROOT.'/components/com_jshopping/lang/'.$extname.'/'.$langtag.'.php'))
            require_once(JPATH_ROOT.'/components/com_jshopping/lang/'.$extname.'/'.$langtag.'.php');
        else
            require_once(JPATH_ROOT.'/components/com_jshopping/lang/'.$extname.'/en-GB.php');
    }

    public static function loadAdminLanguageFile($langtag = ""){
        $lang = JFactory::getLanguage();
        if ($langtag==""){
            $langtag = $lang->getTag();
        }
        $langpatch = JPATH_ROOT.'/administrator/components/com_jshopping/lang/';       
        if (file_exists($langpatch.'override/'.$langtag.'.php'))
            require_once($langpatch.'override/'.$langtag.'.php');
        if (file_exists($langpatch.$langtag.'.php'))
            require_once($langpatch.$langtag.'.php');
        else
            require_once($langpatch.'en-GB.php');
JSFactory::reloadConfigFieldTLF();
    }

    public static function loadExtAdminLanguageFile($extname, $langtag = ""){
        $lang = JFactory::getLanguage();
        if ($langtag==""){
            $langtag = $lang->getTag();
        }
        if(file_exists(JPATH_ROOT.'/administrator/components/com_jshopping/lang/'.$extname.'/'.$langtag.'.php'))
            require_once(JPATH_ROOT.'/administrator/components/com_jshopping/lang/'.$extname.'/'.$langtag.'.php');
        else
            require_once(JPATH_ROOT.'/administrator/components/com_jshopping/lang/'.$extname.'/en-GB.php');
    }

    public static function getLang($langtag = ""){
    static $ml;
        if (!is_object($ml) || $langtag!=""){
            $jshopConfig = JSFactory::getConfig();
            $ml = new multiLangField();
            if ($langtag==""){
                $langtag = $jshopConfig->getLang();
            }
            $ml->setLang($langtag);
            JDispatcher::getInstance()->trigger('onAfterGetLangJSFactory', array(&$ml, &$langtag));
        }
    return $ml;
    }

    public static function getReservedFirstAlias(){
    static $alias;
        if (!is_array($alias)){
            jimport('joomla.filesystem.folder');
            $files = JFolder::files(JPATH_ROOT."/components/com_jshopping/controllers");
            $alias = array();
            foreach($files as $file){
                $alias[] = str_replace(".php","", $file);
            }
        }
    return $alias;
    }

    public static function getAliasCategory(){
    static $alias;
        if (!is_array($alias)){
            $db = JFactory::getDBO();
            $lang = JSFactory::getLang();
            $dbquery = "select category_id as id, `".$lang->get('alias')."` as alias from #__jshopping_categories where `".$lang->get('alias')."`!=''";
            $db->setQuery($dbquery);
            $rows = $db->loadObjectList();
            $alias = array();
            foreach($rows as $row){
                $alias[$row->id] = $row->alias;
            }
            unset($rows);
        }
    return $alias;
    }

    public static function getAliasManufacturer(){
    static $alias;
        if (!is_array($alias)){
            $db = JFactory::getDBO();
            $lang = JSFactory::getLang();
            $dbquery = "select manufacturer_id as id, `".$lang->get('alias')."` as alias from #__jshopping_manufacturers where `".$lang->get('alias')."`!=''";
            $db->setQuery($dbquery);
            $rows = $db->loadObjectList();
            $alias = array();
            foreach($rows as $row){
                $alias[$row->id] = $row->alias;
            }
            unset($rows);
        }
    return $alias;
    }

    public static function getAliasProduct(){
    static $alias;
        if (!is_array($alias)){
            $db = JFactory::getDBO();
            $lang = JSFactory::getLang();
            $dbquery = "select product_id as id, `".$lang->get('alias')."` as alias from #__jshopping_products where `".$lang->get('alias')."`!=''";
            $db->setQuery($dbquery);
            $rows = $db->loadObjectList();
            $alias = array();
            foreach($rows as $k=>$row){
                $alias[$row->id] = $row->alias;
                unset($rows[$k]);
            }
            unset($rows);
        }
    return $alias;
    }

    public static function getAllAttributes($resformat = 0){
    static $attributes;
        if (!is_array($attributes)){
            $_attrib = JSFactory::getTable("attribut","jshop");
            $attributes = $_attrib->getAllAttributes();
        }
        if ($resformat==0){
            return $attributes;
        }
        if ($resformat==1){
            $attributes_format1 = array();
            foreach($attributes as $v){
                $attributes_format1[$v->attr_id] = $v;
            }
            return $attributes_format1;
        }
        if ($resformat==2){
            $attributes_format2 = array();
            $attributes_format2['independent']= array();
            $attributes_format2['dependent']= array();
            foreach($attributes as $v){
                if ($v->independent) $key_dependent = "independent"; else $key_dependent = "dependent";
                $attributes_format2[$key_dependent][$v->attr_id] = $v;
            }
            return $attributes_format2;
        }
    }

    public static function getAllUnits(){
    static $rows;
        if (!is_array($rows)){
            $_unit = JSFactory::getTable("unit","jshop");
            $rows = $_unit->getAllUnits();
        }
    return $rows;
    }
   
    public static function getAllTaxesOriginal(){
    static $rows;
        if (!is_array($rows)){
            $_tax = JSFactory::getTable('tax', 'jshop');
            $_rows = $_tax->getAllTaxes();
            $rows = array();
            foreach($_rows as $row){
                $rows[$row->tax_id] = $row->tax_value;
            }
        }
    return $rows;
    }

    public static function getAllTaxes(){
    static $rows;
        if (!is_array($rows)){
            $jshopConfig = JSFactory::getConfig();
            $dispatcher = JDispatcher::getInstance();           
            $_tax = JSFactory::getTable('tax', 'jshop');           
            $rows = JSFactory::getAllTaxesOriginal();
            if ($jshopConfig->use_extend_tax_rule){
                $country_id = 0;
                $adv_user = JSFactory::getUserShop();
                $country_id = $adv_user->country;
                if ($jshopConfig->tax_on_delivery_address && $adv_user->delivery_adress && $adv_user->d_country){
                    $country_id = $adv_user->d_country;
                }
                $client_type = $adv_user->client_type;
                $enter_tax_id = $adv_user->tax_number!="";
                if (!$country_id){
                    $adv_user = JSFactory::getUserShopGuest();
                    $country_id = $adv_user->country;
                    if ($jshopConfig->tax_on_delivery_address && $adv_user->delivery_adress && $adv_user->d_country){
                        $country_id = $adv_user->d_country;
                    }
                    $client_type = $adv_user->client_type;
                    $enter_tax_id = $adv_user->tax_number!="";
                }
                if ($country_id){
                    $_rowsext = $_tax->getExtTaxes();
                    $dispatcher->trigger('beforeGetAllTaxesRowsext', array(&$_rowsext, &$country_id, &$adv_user, &$rows) );
                    foreach($_rowsext as $v){
                        if (in_array($country_id, $v->countries)){
                            if ($jshopConfig->ext_tax_rule_for==1){
                                if ($enter_tax_id){
                                    $rows[$v->tax_id] = $v->firma_tax;
                                }else{
                                    $rows[$v->tax_id] = $v->tax;
                                }   
                            }else{
                                if ($client_type==2){
                                    $rows[$v->tax_id] = $v->firma_tax;
                                }else{
                                    $rows[$v->tax_id] = $v->tax;
                                }
                            }
                        }
                    }
                    $dispatcher->trigger('afterGetAllTaxesRowsext', array(&$_rowsext, &$country_id, &$adv_user, &$rows) );
                    unset($_rowsext);
                }
            }
        $dispatcher->trigger('afterGetAllTaxes', array(&$rows) );
        }
    return $rows;
    }

    public static function getAllManufacturer(){
    static $rows;
        if (!is_array($rows)){
            $db = JFactory::getDBO();
            $lang = JSFactory::getLang();
            $dispatcher = JDispatcher::getInstance();
            $adv_result = "manufacturer_id as id, `".$lang->get('name')."` as name, manufacturer_logo, manufacturer_url";
            $dispatcher->trigger('onBeforeQueryGetAllManufacturer', array(&$adv_result));
            $query = "select ".$adv_result." from #__jshopping_manufacturers where manufacturer_publish='1'";
            $db->setQuery($query);
            $_rows = $db->loadObjectList();
            $rows = array();
            foreach($_rows as $row){
                $rows[$row->id] = $row;
            }
            unset($_rows);
        }
    return $rows;
    }

    public static function getMainVendor(){
    static $row;
        if (!isset($row)){
            $row = JSFactory::getTable('vendor', 'jshop');
            $row->loadMain();
        }
    return $row;
    }

    public static function getAllVendor(){
    static $rows;
        if (!is_array($rows)){
            $db = JFactory::getDBO();
            $query = "select id, shop_name, l_name, f_name from #__jshopping_vendors";
            $db->setQuery($query);
            $_rows = $db->loadObjectList();
            $rows = array();
            $mainvendor = JSFactory::getMainVendor();
            $rows[0] = $mainvendor;
            foreach($_rows as $row){
                $rows[$row->id] = $row;
            }
            unset($_rows);
        }
    return $rows;
    }

    public static function getAllDeliveryTime(){
    static $rows;
        if (!is_array($rows)){
            $db = JFactory::getDBO();
            $lang = JSFactory::getLang();
            $query = "select id, `".$lang->get('name')."` as name from #__jshopping_delivery_times";
            $db->setQuery($query);
            $_rows = $db->loadObjectList();
            $rows = array();
            foreach($_rows as $row){
                $rows[$row->id] = $row->name;
            }
            unset($_rows);
        }
    return $rows;
    }

    public static function getAllDeliveryTimeDays(){
    static $rows;
        if (!is_array($rows)){
            $db = JFactory::getDBO();
            $lang = JSFactory::getLang();
            $query = "select id, days from #__jshopping_delivery_times";
            $db->setQuery($query);
            $_rows = $db->loadObjectList();
            $rows = array();
            foreach($_rows as $row){
                $rows[$row->id] = $row->days;
            }
            unset($_rows);
        }
    return $rows;
    }

    public static function getAllProductExtraField(){
    static $list;
        if (!is_array($list)){
            $productfield = JSFactory::getTable('productfield', 'jshop');
            $list = $productfield->getList();
        }
    return $list;
    }

    public static function getAllProductExtraFieldValue(){
    static $list;
        if (!is_array($list)){
            $productfieldvalue = JSFactory::getTable('productfieldvalue', 'jshop');
            $list = $productfieldvalue->getAllList(1);
        }
    return $list;
    }

    public static function getAllProductExtraFieldValueDetail(){
    static $list;
        if (!is_array($list)){
            $productfieldvalue = JSFactory::getTable('productfieldvalue', 'jshop');
            $list = $productfieldvalue->getAllList(2);
        }
    return $list;
    }

    public static function getDisplayListProductExtraFieldForCategory($cat_id){
    static $listforcat;
        if (!isset($listforcat[$cat_id])){
            $fields = array();
            $list = JSFactory::getAllProductExtraField();
            foreach($list as $val){
                if ($val->allcats){
                    $fields[] = $val->id;
                }else{
                    if (in_array($cat_id, $val->cats)) $fields[] = $val->id;
                }
            }

            $jshopConfig = JSFactory::getConfig();
            $config_list = $jshopConfig->getProductListDisplayExtraFields();
            foreach($fields as $k=>$val){
                if (!in_array($val, $config_list)) unset($fields[$k]);
            }
            $listforcat[$cat_id] = $fields;
        }
    return $listforcat[$cat_id];
    }

    public static function getDisplayFilterExtraFieldForCategory($cat_id){
    static $listforcat;
        if (!isset($listforcat[$cat_id])){
            $fields = array();
            $list = JSFactory::getAllProductExtraField();
            foreach($list as $val){
                if ($val->allcats){
                    $fields[] = $val->id;
                }else{
                    if (in_array($cat_id, $val->cats)) $fields[] = $val->id;
                }
            }
           
            $jshopConfig = JSFactory::getConfig();
            $config_list = $jshopConfig->getFilterDisplayExtraFields();
            foreach($fields as $k=>$val){
                if (!in_array($val, $config_list)) unset($fields[$k]);
            }
            $listforcat[$cat_id] = $fields;
        }
    return $listforcat[$cat_id];
    }

    public static function getAllCurrency(){
    static $list;
        if (!is_array($list)){
            $currency =JSFactory::getTable('currency', 'jshop');
            $_list = $currency->getAllCurrencies();
            $list = array();
            foreach($_list as $row){
                $list[$row->currency_id] = $row;
            }
        }
    return $list;
    }

    public static function getShippingExtList($for_shipping = 0){
    static $list;
        if (!is_array($list)){
            $jshopConfig = JSFactory::getConfig();
            $path = $jshopConfig->path."shippings";
            $shippingext = JSFactory::getTable('shippingext', 'jshop');
            $_list = $shippingext->getList(1);
            $list = array();
            foreach($_list as $row){
                $extname = $row->alias;
                $filepatch = $path."/".$extname."/".$extname.".php";
                if (file_exists($filepatch)){
                    include_once($filepatch);
                    $row->exec = new $extname();
                    $list[$row->id] = $row;
                }else{
                    JError::raiseWarning("",'Load ShippingExt "'.$extname.'" error.');
                }
            }
        }
        if ($for_shipping==0){
            return $list;
        }
        $returnlist = array();
        foreach($list as $row){
            if ($row->shipping_method!=""){
                $sm = unserialize($row->shipping_method);
            }else{
                $sm = array();
            }
            if ($sm[$for_shipping]!=="0"){
                $returnlist[] = $row;
            }
        }
    return $returnlist;
    }
   
    public static function getTable($type, $prefix = 'jshop', $config = array()){
        JDispatcher::getInstance()->trigger('onJSFactoryGetTable', array(&$type, &$prefix, &$config));
        $table = JTable::getInstance($type, $prefix, $config);
        JDispatcher::getInstance()->trigger('onAfterJSFactoryGetTable', array(&$table, &$type, &$prefix, &$config));
        return $table;
    }
   
    public static function getModel($type, $prefix = 'JshoppingModel', $config = array()){
        JDispatcher::getInstance()->trigger('onJSFactoryGetModel', array(&$type, &$prefix, &$config));
        $model = JModel::getInstance($type, $prefix, $config);
        JDispatcher::getInstance()->trigger('onAfterJSFactoryGetModel', array(&$model, &$type, &$prefix, &$config));
        return $model;
    }
   
}
?>

У меня есть, 2 шаблона для товаров - http://prntscr.com/jx8lhd

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Не работает lightbox магазина JoomShopping
« Ответ #12 : 20.06.2018, 19:16:13 »
в файле все правильно. вероятно значит какие то изменения в ядре JoomShopping у вас. есть что-то, что обнуляет версию. можете в этом файле жестко прописать, вы все равно не обновляетесь.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #13 : 20.06.2018, 19:18:53 »
в файле все правильно. вероятно значит какие то изменения в ядре JoomShopping у вас. есть что-то, что обнуляет версию. можете в этом файле жестко прописать, вы все равно не обновляетесь.

Если обновить сам JoomShopping , все все товары останутся?
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #14 : 20.06.2018, 19:21:29 »
Ошибку устраните яваскрипта
Код
SyntaxError: missing ) after argument list
https://nogti.ua/plugins/system/helix/js/jquery.js
Line 11

Проверил, ошибки нету.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Не работает lightbox магазина JoomShopping
« Ответ #15 : 20.06.2018, 19:44:20 »
ну так у вас нет ошибки
Цитировать
Error load file: components/com_jshopping/js/jquery/jquery-.min.js
где вы ее увидели?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #16 : 20.06.2018, 19:49:28 »
ну так у вас нет ошибкигде вы ее увидели?
Делаю сохранение  и выдает https://prnt.sc/jx8182
*

Hannibal

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Не работает lightbox магазина JoomShopping
« Ответ #17 : 20.06.2018, 20:03:28 »
Помогла эта фигня JB Library Plugin v2.1.4
Фото открывать в lightbox

Но ошибка, как и показывается дальше
Цитировать
Error load file: components/com_jshopping/js/jquery/jquery-.min.js
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Не работает lightbox магазина JoomShopping
« Ответ #18 : 20.06.2018, 23:06:47 »
вам бы стили поправить для атрибутов а то обложки все смотрятся в куче потеряно
возможно ка кто так http://prntscr.com/jxbl4w

п.с.хотя конечно уж лучше обновлятся... потом править все.
2.5 раритет.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин уведомлений о заказах в телеграмм для JoomShopping

Автор thevaca

Ответов: 0
Просмотров: 2541
Последний ответ 10.11.2025, 14:11:40
от thevaca
WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 26
Просмотров: 38878
Последний ответ 14.10.2025, 12:54:56
от sergeytolkachyov
Не работает lightbox в JoomShopping

Автор d13v555

Ответов: 6
Просмотров: 3810
Последний ответ 08.10.2025, 15:34:46
от kit2m2
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 3443
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 3917
Последний ответ 22.07.2025, 12:40:12
от heartlink