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

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Долго думал куда отпостить... решил сюда - формально подходит.

Если мне память не изменяет, то производители раньше присутствовали в главном меню ЖШ. Потом по каким то причинам их засунули в опции и возвращать обратно не желают. Гора не идёт к магомету - выходим навстречу! Собственно добавить производителей в основное меню - не вопрос: добавляем в administrator/components/com_jshoppinf/functions.php в функцию addSubmenu($vName) строчку
Код
 $menu['manufacturers'] = array(_JSHOP_MENU_MANUFACTURERS, 'index.php?option=com_jshopping&controller=manufacturers', $vName == 'manufacturers', 1);
- появляется пункт "Производители". Но, вместе с таблицей производителей появляется и субменю "Опций". Долго рыл код, но так и не нашёл, как от него избавиться. Подскажите, как показать производителей из основного меню без субменю опцый?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Удалить displaySubmenuOptions(); из файла /administrator/components/com_jshopping/views/manufacturer/tmpl/list.php
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Спасибо, заработало! )
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
А почему при переходе в производители по прежнему подсвечиваются "Опции"? Как сделать, чтобы новый пункт "Производители" в основном меню подсвечивался?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
В контроллере производителя, в функции __construct есть что-то типа addSubMenu("other")
Замените other на manufacturers
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Благодарю! Теперь совсем хорошо стало. )
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Несмотря на то, что стало совсем хорошо, душа продолжает просить улучшений... ) Можно в производителях, как и в категориях вывести кол-во товаров относящихся к данному производителю?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Конечно можно. Если не ошибаюсь надо вызвать функцию $JTableProduct->getAllProducts(array('manufacturer_id' => $id)); для каждого производителя в списке.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
А технически возможно всё это оформить в виде аддона/плагина, чтобы не править заново после каждого обновления?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Почти...
Вывести меню не проблема.
А вот сделать чтобы выделялся именно "Производители" и количество товаров для каждого - Нельзя.
По крайней мере не в виде плагина.
Можно создать свой дочерний контроллер и вывести в меню именно его. А в нем уже подправить всё что нужно... При этом так как он будет являться дочерним, то весь остальной функционал будет меняться, если в версии что-то изменится
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
А вот сделать чтобы выделялся именно "Производители" и количество товаров для каждого - Нельзя.
По крайней мере не в виде плагина.

Плагином группы jshoppingmenu - можно модифицировать меню и субменю.
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
« Последнее редактирование: 11.04.2013, 14:20:50 от jorevo »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Плагином группы jshoppingmenu - можно модифицировать меню и субменю.
Ну как я и сказал

Почти...
Вывести меню не проблема.
А вот выделение этого пункта и запрос всех производителей прописаны в контроллере, и там нет ни одного триггера.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Код
function addSubmenu($vName){
...
$dispatcher->trigger( 'onBeforeAdminMenuDisplay', array(&$menu, &$vName) );
...

Здесь можно назначить дополнительную проверку условий и модификацию как самого меню, так и активного пункта в зависимости от условий.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
SDKiller, вижу мы друг друга не понимаем.
Я говорю - Меню вывести не проблема. Вы только что показали где и как это можно сделать. Тут мы солидарны.
Но сделать его активным - невозможно без правки контроллера производителей.
Итак допустим мы вывели меню "Производители" в плагине.
Код
function onBeforeAdminMenuDisplay(&$menu, &$vName){
    $menu['manufacturers'] = array(_JSHOP_MENU_MANUFACTURERS, 'index.php?option=com_jshopping&controller=manufacturers', $vName == 'manufacturers', 1);
}
Открываем этот пункт меню. У нас загружается контроллер JshoppingControllerManufacturers
У него в конструкторе прописано следующее:
Код
function __construct( $config = array() ){
    ...
    addSubmenu("other");
}
Это значит что выделен будет пункт меню "Опции"
И никаким плагином это не изменить...
Есть триггер конечно в display(), но если там прописать addSubmenu("manufacturers");, то просто добавится еще меню с выделенным пунктом "Производители"
Вывод: Плагином сделать выделение добавленного пункта меню - невозможно.
Можно добавить свой дочерний контроллер и добавить пункт меню именно на него и в нем переписать только конструкцию. И тогда обновления компонента не страшны.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
SDKiller, вижу мы друг друга не понимаем.

Да уж, определённо не понимаем

Код
    public function onBeforeAdminMenuDisplay(&$menu, &$vName)
    {
        $menu['manufacturers'] = array(_JSHOP_MANUFACTURERS,
            'index.php?option=com_jshopping&controller=manufacturers', $vName == 'manufacturers', 1);

        if ($vName == 'other') {
            $controller = JFactory::getApplication()->input->get('controller');
            if ($controller == 'manufacturers') {
                $menu['other'][2] = false;
                $menu['manufacturers'][2] = true;
                $vName = 'manufacturers';
            }
        }
    }

« Последнее редактирование: 13.04.2013, 16:15:49 от SDKiller »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Признаю́. Не сообразил. Надо организовать себе отпуск.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

Наталья32

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
А как сделать "производители" не списком, а что бы можно было выбрать нажав на стрелку
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Код
    public function onBeforeAdminMenuDisplay(&$menu, &$vName)
    {
        $menu['manufacturers'] = array(_JSHOP_MANUFACTURERS,
            'index.php?option=com_jshopping&controller=manufacturers', $vName == 'manufacturers', 1);

        if ($vName == 'other') {
            $controller = JFactory::getApplication()->input->get('controller');
            if ($controller == 'manufacturers') {
                $menu['other'][2] = false;
                $menu['manufacturers'][2] = true;
                $vName = 'manufacturers';
            }
        }
    }

Это, я так понимаю, практически готовый код для плагина? А не будет сильно большой наглостью попросить оформить его до конца, в качестве, так сказать наглядного примера? И уж совсем было бы замечательно понять, как добавить пункт "Производители" не в конец меню, а между Категориями и Товарами.

ЗЫ. А тем же плагином убрать Производителей из Опций можно?
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
А не будет сильно большой наглостью попросить оформить его до конца, в качестве, так сказать наглядного примера?

В качестве готового примера вы можете посмотреть у себя мой плагин

plugins\jshoppingmenu\xtjaddons

Цитировать
ЗЫ. А тем же плагином убрать Производителей из Опций можно?

Можно - это же массив, можно unset какого-либо элемента сделать.
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Ага, спасибо!

ЗЫ. А как Производителей воткнуть не в конец меню, а куда нужно?
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Пересортировать массив
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Меню в мобильной версии

Автор Rebarun

Ответов: 1
Просмотров: 1444
Последний ответ 07.07.2021, 07:47:08
от nevigen
Мобильное меню

Автор Rebarun

Ответов: 0
Просмотров: 951
Последний ответ 16.08.2020, 21:25:35
от Rebarun
Открытие меню

Автор Rebarun

Ответов: 9
Просмотров: 2744
Последний ответ 02.08.2020, 21:43:44
от sivers
JS4.18.4/Joomla3.9.19 меню Список товаров не видит product.php в шаблоне

Автор tigra-uki

Ответов: 11
Просмотров: 832
Последний ответ 13.06.2020, 19:44:10
от draff
Вертикальное меню товаров для мобильной версии сворачивающийся в трей

Автор bakyt

Ответов: 17
Просмотров: 690
Последний ответ 20.12.2019, 15:56:31
от nevigen