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

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Подскажите кто сталкивался!
Как стандартный модуль mod_jshopping_categories дописать так что бы на странице категории отображались только ссылки на подкатегории?
Сейчас mod_jshopping_categories работает так >>
К примеру структура:

Категория 1
- Подкатегория 1
-- Подкатегория 1.1
-- Подкатегория 1.2
Категория 2


Когда заходим на страницу "Подкатегория 1" меню будет отображаться развернуто как в примере структуры, а как сделать что бы отображались только ссылки на подкатегории открытой категории, то есть что бы отображалось только:

-- Подкатегория 1.1
-- Подкатегория 1.2

*

effrit

  • Легенда
  • 9019
  • 986 / 9
  • effrit.com
Re: mod_jshopping_categories только подкатегории
« Ответ #1 : 11.10.2017, 22:43:08 »
хм. так тогда у вас меню перестанет работать, по сути.
типа человек зашел в подкатегорию а выйти уже не сможет ? какой смысл?
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #2 : 11.10.2017, 23:11:11 »
Вернуться можно по хлебным крошкам, либо через другое меню, так что в возврате проблем нету.
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #4 : 11.10.2017, 23:31:00 »
https://goo.gl/2Voro6
Слева модуль "Коллекции" и на той странице какой он отображается нужно выводить только ссылки с классом "jshop_menu_level_2".
mod_jshopping_categories - абсолютно дефолтный ( https://www.webdesigner-profi.de/joomla-webdesign/shop/modules/module-category.html?lang=ru )
Через CSS то можно назначать, но для всех категорий каждого уровня по ходу свой шаблон нужно прописывать что бы класс для страницы задавать, а это как-то не очень то корректно, автоматически выводить только подкатегории проще наверное будет, модуль только подправить нужно!
*

effrit

  • Легенда
  • 9019
  • 986 / 9
  • effrit.com
Re: mod_jshopping_categories только подкатегории
« Ответ #5 : 12.10.2017, 08:48:33 »
У вас уровни разные. Типа для ковров есть доп уровень, а для дорожек - 1 всего.
так попробуйте. типа на первом прогоне узнаем уровень, на котором активная категория находится, а на втором - выводим

Код
<?php
$lvl=-1;
  foreach($categories_arr as $curr){
      if ($categories_id[$curr->level]==$curr->category_id) {
  $lvl=$curr->level;
  // echo $lvl." ".$curr->name;
  }     
  }

foreach($categories_arr as $curr){
if($lvl == $curr->level){
      $class = "jshop_menu_level_".$curr->level;
      if ($categories_id[$curr->level]==$curr->category_id) $class = $class."_a";     
      ?>
      <div class = "<?php print $class?>">
            <a href = "<?php print $curr->category_link?>"><?php print $curr->name?>
                <?php if ($show_image && $curr->category_image){?>
                    <img align = "absmiddle" src = "<?php print $jshopConfig->image_category_live_path."/".$curr->category_image?>" alt = "<?php print $curr->name?>" />
                <?php } ?>
            </a>
      </div>
  <?php
  }

?>
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #6 : 12.10.2017, 09:19:34 »
Немного не то выводит, получается что выводит только ссылки с классом "jshop_menu_level_1" а это:

- Подкатегория 1
- Подкатегория 2
...

====
По сути модуль должен выводить ссылки подкатегорий которые отображаются справа в списке подкатегорий.
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #8 : 12.10.2017, 09:41:32 »
При замене условия "if($lvl == $curr->level){" на "if($curr->level >= $lvl){" не выводит категории верхнего уровня "Категория 1 ..."  получаем:

- Подкатегория 1
-- Подкатегория 1.1
-- Подкатегория 1.2
- Подкатегория 2
...
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #9 : 12.10.2017, 10:10:56 »
А нужно "лапшой" все подкатегории всех категорий или выводить "лапшой" подкатегории только той категории, в которой мы находимся?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #10 : 12.10.2017, 10:15:14 »
Да, "подкатегории только той категории, в которой мы находимся".
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #11 : 12.10.2017, 10:17:22 »
Да, "подкатегории только той категории, в которой мы находимся".


Вот я делал себе модуль (демка http://test.joomlanet.ru/joomshopping/cat1)
Правда там кубиками мне надо было.

Вот на Гите: https://github.com/JoomlaNet/mod_joomshopping_childscat

Модуль выводит только подкатегории нужной категории с описанием.
Описание удалите и уберите кубики.Будут просто ссылки.Ну и вертикально их (я делал в горизонт).
Больше вроде ничего не прикручивал ещё, ну и вывод картинок+ноуимидж (хотя вам картинки не нужны).
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #12 : 12.10.2017, 10:21:30 »
Цитировать
Вот я делал себе модуль (демка http://test.joomlanet.ru/joomshopping/cat1)
Что-то я не вижу чтобы в модуле "Категории" у вас при заходе в категорию отображались только подкатегории.
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #13 : 12.10.2017, 10:26:02 »
 ^-^
Я же подсказку дал:кубиками!
Сбоку то иной модуль.

P.S. Уточню, модуль "Вывод дочерних категорий Joomshopping" выводит только "дочек" 1-го уровня, мне далее не надо было. По желанию можно и остальные добавить. Время будет-сделаю настройки в модуле с чекбоксами, какие уровни показывать.
« Последнее редактирование: 12.10.2017, 10:34:13 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #14 : 12.10.2017, 10:37:59 »
Цитировать
Я же подсказку дал:кубиками!
Да, модуль делает то что нужно. По хелперу вижу делаете выборку прямо из базы. Получается мне только сортировку по предустановленной нужно настроить и картинки убрать которые можно настраивать в стандартном mod_jshopping_categories, а так все то что нужно - СПАСИБО  ;D .
Да возможно к стандартному найдется решение, буду признателен, там проблема только в условии вывода получается!
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #15 : 12.10.2017, 10:41:22 »
там проблема только в условии вывода получается

Так выдерните моё условие из модуля и туда прикрутите.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #16 : 12.10.2017, 11:02:10 »
Цитировать
Так выдерните моё условие из модуля и туда прикрутите.
А условие то как достать если ваш модуль построен на прямом запросе в базу по активной категории, а mod_jshopping_categories по другому:
mod_jshopping_categories (helper.php):
Код
<?php
class jShopCategoriesHelper{
   
  public static function getTreeCats($order, $ordering, $category_id, $categories_id, &$categories, $level=0){
        if ($category_id){
            if (isset($categories_id[$level])){
                $cat = JTable::getInstance('category', 'jshop');       
                $cat->load($categories_id[$level]);

                $cats = $cat->getSisterCategories($order, $ordering);
                foreach ($cats as $key=>$value){
                    $value->level = $level;
                    if (in_array($value->category_id, $categories_id)){
                        $categories[] = $value;
                        // get Children cats
                        if ($value->category_id == $category_id){
                            $cat = JTable::getInstance('category', 'jshop');       
                            $cat->load($categories_id[$level]);
                            $cat->category_id = $category_id;
                            $childs = $cat->getChildCategories($order, $ordering);
                            foreach ($childs as $key2=>$value2){
                                $value2->level = $level + 1;
                                $categories[] = $value2;
                            }
                        }
                        jShopCategoriesHelper::getTreeCats($order, $ordering, $category_id,$categories_id, $categories, ++$level);
                        $level--;
                    } else {
                        $categories[] = $value;   
                    }
                }
            }
        } else {
            $cat = JTable::getInstance('category', 'jshop');
            $cat->category_parent_id = 0;
            $cats = $cat->getSisterCategories($order, $ordering);
            foreach($cats as $key=>$value){
                $cats[$key]->level = 0;
            }
            $categories = $cats;   
        }

    }
   
  public static function getCatsArray($order, $ordering, $category_id, $categories_id = array()){
       $res_arr = array();
       jShopCategoriesHelper::getTreeCats($order, $ordering, $category_id, $categories_id, $res_arr, 0);
       return $res_arr;
    }
   
}
?>

И ваш mod_joomshopping_childscat-master (helper.php):
Код
<?php
defined('_JEXEC') or die;

class modJoomshoppingChildscatHelper
{
public static function getParentcategory(&$params)
{

$cid   = JRequest::getInt('category_id');
$lang  = JSFactory::getLang();
$db    = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('`category_id` AS id, `' . $lang->get('name'). '` AS name,`short_description_ru-RU` AS descript');
$query->select('`category_image` AS image');
$query->from('#__jshopping_categories');
$query->where('category_parent_id > 0');
$query->where('category_publish = 1');
$query->where('category_parent_id =' . $cid);
$query->order('ordering DESC');
$db->setQuery($query);

$categories = $db->loadObjectList();

return $categories;
}

}
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #17 : 12.10.2017, 11:07:54 »
Так я не понимаю немного, а что вам мешает в стилях убрать кубики и там же изменить display на вертикальное?

Там же всего 1 стиль:
Спойлер
[свернуть]

Если мешает запрос в БД картинок и описание, удалите (желательно конечно для запросов удалить):
`short_description_ru-RU` AS descript' и $query->select('`category_image` AS image');

в самом дефолте это удалите
Спойлер
[свернуть]

И в php корня модуля это удалить:
$image_category_path = "/components/com_jshopping/files/img_categories";
$noimage = "noimage.gif";
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #18 : 12.10.2017, 11:19:17 »
Сократив ваш код получаю то что нужно:
Код
<?php
defined('_JEXEC') or die;
foreach ($categories as $category)
{
$link = SEFLink('index.php?option=com_jshopping&controller=category&task=view&category_id=' . $category->id, 1);
echo
'<div class="js_childscat"><a class="js_childscat_a" href="' . $link . '">' . $category->name . '</a></div>';
}
?>

Вопрос в том как вообще не выводить модуль и его заголовок если нету значений, к примеру в категории где нету подкатегорий?
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #19 : 12.10.2017, 11:29:49 »
Поиском на форуме найдите тему Условия вывода модулей в JS, там точно есть ответ.
ELLE вроде автор.

[FAQ] Условия вывода модулей в JoomShopping
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #20 : 12.10.2017, 11:43:11 »
Вопрос немного другого характера: можно ли через условие пустого массива не выводить модуль вообще:
Код
<?php
defined('_JEXEC') or die;
if (isset($categories) && is_array($categories) && count($categories) > 0) {
foreach ($categories as $category)
{
$link = SEFLink('index.php?option=com_jshopping&controller=category&task=view&category_id=' . $category->id, 1);
echo
'<div class="js_childscat"><a class="js_childscat_a" href="' . $link . '">' . $category->name . '</a></div>';
}} else {echo '0';}
?>
Если в место "echo '0';" прописать "die();" получается пустая страница, а можно что бы только модуль не выводился?
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #21 : 12.10.2017, 12:10:26 »
<?php if($this->getBuffer('modules','позиция модуля')):?>
<div id="позиция модуля">
<jdoc:include type="modules" name="позиция модуля" style="xhtml" />
</div>
<?php endif; ?>

Итого: если тут / позиция модуля / ничего нет, а точнее между
<div id="позиция модуля"> и </div>, то модуль не покажется вместе с названием.
P.S. Это условие сработает ко всем модулям.
P.P.S. Вот тут решения есть разные: [Решение] Скрываем блок если в теле модуля пусто
« Последнее редактирование: 12.10.2017, 12:15:35 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #22 : 12.10.2017, 12:26:26 »
Странно, код "if($this->getBuffer('modules','позиция модуля'))" в шаблоне работает, но затирает заголовки модулей!
*

vipiusss

  • Гуру
  • 5748
  • 343 / 10
  • Скайп: renor_
Re: mod_jshopping_categories только подкатегории
« Ответ #23 : 12.10.2017, 12:28:02 »
но затирает заголовки модулей

На это обратите внимание: style="xhtml". Это ваши заголовки.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

rudoy24

  • Захожу иногда
  • 51
  • 1 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #24 : 12.10.2017, 12:43:09 »
Да, так все работает "if($this->getBuffer('modules','left', array('style'=>'xhtml')))" - СПАСИБО  ^-^
*

trushin2005

  • Захожу иногда
  • 58
  • 0 / 0
Re: mod_jshopping_categories только подкатегории
« Ответ #25 : 29.01.2018, 18:57:48 »
Здравствуйте!
 А есть ли модуль вывода  подкатегорий, только одной категории? Мне надо чтобы в товарах подкатегории, выводились все подкатегории данной категории!
Может кто сталкивался?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться