Новости Joomla

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

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Всем привет!
Подскажите пжлс как вывести на странице категории список производителей, чьи товары есть в данной категории.
За ранее спасибо!
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Ну для начала нужно понять куда Вы хотите вывести !!
Если прямо туда где товары - то тогда нужно найти в шаблоне  макет - где выводятся товары !!
И перед перебором товаров нужно их крутануть к примеру forech  и получить информацию о производителях....
а потом подумать как вывести ! - но это уже не так сложно !
*

nevigen

  • Moderator
  • 10438
  • 863 / 25
  • http://n*****n.com
Всем привет!
Подскажите пжлс как вывести на странице категории список производителей, чьи товары есть в данной категории.
За ранее спасибо!
достаточно вывести фильтры в категории (настройки ЖШ)
http://prntscr.com/u7a8d3
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Ну для начала нужно понять куда Вы хотите вывести !!
Если прямо туда где товары - то тогда нужно найти в шаблоне  макет - где выводятся товары !!
И перед перебором товаров нужно их крутануть к примеру forech  и получить информацию о производителях....
а потом подумать как вывести ! - но это уже не так сложно !

Ув. gartes, вы правильно поняли, того как и где нужно вывести http://prntscr.com/u7q0kv
В двух словах опишу скрин, есть категория Пряжа и в ней товары двух производителей. Вот этих двух производителей нужно вывести на странице категории(список товаров категории) над фильтрами, сортировкой, товарами.

Примерно так себе и представлял, что нужно, перебрать товары на производителей, только как правильно это сделать - знаний не хватает((

Буду очень благодарен за любую помощь!
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
доброго времени
сори что поздно и в личку)
не поможете по этой задаче?
Ну - Ок ! Давайте постепенно решать ! (так как многое зависит от самого вашего шаблона ! )
Для Вас задача номер один !
1. создайте в том месте разметку - и просто руками (словами) напишите Manufacture 1 и Manufacture 2
Как вы это сделаете - пишите !!

не всегда могу смотреть почту - можете в скайп ссылки кидать на Ваши сообщения !
Skype : agroparknew (За вопросы по скайпу забаню !! :)  )

*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Ну - Ок ! Давайте постепенно решать ! (так как многое зависит от самого вашего шаблона ! )
Для Вас задача номер один !
1. создайте в том месте разметку - и просто руками (словами) напишите Manufacture 1 и Manufacture 2
Как вы это сделаете - пишите !!

не всегда могу смотреть почту - можете в скайп ссылки кидать на Ваши сообщения !
Skype : agroparknew (За вопросы по скайпу забаню !! :)  )



Спасибо, готово, отписался в лс
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Ок  - Вы молодец !! ))
относительный Путь какой к файлу где правили ?
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Ок  - Вы молодец !! ))
относительный Путь какой к файлу где правили ?

/templates/mytemplate/html/com_jshopping/category/category_default.php
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Не мое дело конечно - но так на заметку
немного некорректно работает поиск !
в URL результатов поиска отсутствует само поисковое слово !
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Не мое дело конечно - но так на заметку
немного некорректно работает поиск !
в URL результатов поиска отсутствует само поисковое слово !

Спасибо, потом будем смотреть)
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Код
$manufacturer = \JTable::getInstance('manufacturer', 'jshop');
foreach ( $this->rows as $i => $row )
{
    $manufacturer->load( $row->manufacturer->id  );
    $href = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id=' . $row->manufacturer->id);

    # Наверное так путь к картинке но тут я не уверен !
    //    $manufacturer->manufacturer_logo

    ?>
    <h3>
        <a href="<?= $href ?>">
            <?= $manufacturer->getName()?>
        </a>
    </h3>
    <?php
}#END FOREACH
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Код
$manufacturer = \JTable::getInstance('manufacturer', 'jshop');
foreach ( $this->rows as $i => $row )
{
    $manufacturer->load( $row->manufacturer->id  );
    $href = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id=' . $row->manufacturer->id);

    # Наверное так путь к картинке но тут я не уверен !
    //    $manufacturer->manufacturer_logo

    ?>
    <h3>
        <a href="<?= $href ?>">
            <?= $manufacturer->getName()?>
        </a>
    </h3>
    <?php
}#END FOREACH

Спасибо большое, в целом получилось!
Только теперь дублируются производители, думаю всех товаров на странице. http://prntscr.com/u8jr42
Так как на каждой страницы пагинации разное количество http://prntscr.com/u8jrpl

*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Только теперь дублируются производители,
Код

$manufacturer = \JTable::getInstance('manufacturer', 'jshop');
$manufacturerHistoty = [] ;
foreach ( $this->rows as $i => $row )
{
    if ( in_array( $row->manufacturer->id , $manufacturerHistoty )) continue ; #END IF
    $manufacturerHistoty[] = $row->manufacturer->id
    $manufacturer->load( $row->manufacturer->id  );
    $href = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id=' . $row->manufacturer->id);

    # Наверное так путь к картинке но тут я не уверен !
    //    $manufacturer->manufacturer_logo

    ?>
    <h3>
        <a href="<?= $href ?>">
            <?= $manufacturer->getName()?>
        </a>
    </h3>
    <?php
}#END FOREACH
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Код

$manufacturer = \JTable::getInstance('manufacturer', 'jshop');
$manufacturerHistoty = [] ;
foreach ( $this->rows as $i => $row )
{
    if ( in_array( $row->manufacturer->id , $manufacturerHistoty )) continue ; #END IF
    $manufacturerHistoty[] = $row->manufacturer->id
    $manufacturer->load( $row->manufacturer->id  );
    $href = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id=' . $row->manufacturer->id);

    # Наверное так путь к картинке но тут я не уверен !
    //    $manufacturer->manufacturer_logo

    ?>
    <h3>
        <a href="<?= $href ?>">
            <?= $manufacturer->getName()?>
        </a>
    </h3>
    <?php
}#END FOREACH

Почти супер)
Только если на странице товары одного производителя, то не выводятся остальные производители.
Первая страница пагинации http://prntscr.com/u8jxo1
Вторая страница пагинации http://prntscr.com/u8jxw9
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Почти супер)
А так ? )
Код

    $app = \Joomla\CMS\Factory::getApplication();
    $db = \Joomla\CMS\Factory::getDbo();
    $lang =   JSFactory::getLang();
    $category_id = $app->input->get('category_id' , false , 'INT') ;

    $Query = $db->getQuery(true);
    $select = [
//        $db->quoteName( 'm.'.$lang->get('name'))
        $db->quoteName( 'cat_map.product_id'),
        $db->quoteName( 'p.product_manufacturer_id'),
        $db->quoteName( 'm.manufacturer_id'),
        $db->quoteName( 'm.manufacturer_logo'),
        'm.' . $db->quoteName( $lang->get('name') ),

    ] ;
    $Query->select($select);
    $Query->from($db->quoteName( '#__jshopping_products_to_categories' , 'cat_map' ));
    $Query->leftJoin( $db->quoteName( '#__jshopping_products' , 'p' ). ' ON ' . $db->quoteName( 'cat_map.product_id').'='. $db->quoteName( 'p.product_id') );
    $Query->leftJoin( $db->quoteName( '#__jshopping_manufacturers' , 'm' ). ' ON ' . $db->quoteName( 'p.product_manufacturer_id').'='. $db->quoteName( 'm.manufacturer_id') );
    $whereArr = [
        $db->quoteName('category_id'). '='. $category_id ,
    ];
    $Query->where($whereArr);
    $Query->group( $db->quoteName( 'm.manufacturer_id') ) ;
    $db->setQuery($Query);
    $res = $db->loadObjectList();

    foreach ( $res as $i => $row )
    {

        $href = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id=' . $row->product_manufacturer_id  );

        # Наверное так путь к картинке но тут я не уверен !
        //    $manufacturer->manufacturer_logo

        ?>
        <h3>
            <a href="<?= $href ?>">
                <?= $row->{ $lang->get('name') } ?>
            </a>
        </h3>
        <?php
    }#END FOREACH
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
А так ? )
Код

    $app = \Joomla\CMS\Factory::getApplication();
    $db = \Joomla\CMS\Factory::getDbo();
    $lang =   JSFactory::getLang();
    $category_id = $app->input->get('category_id' , false , 'INT') ;

    $Query = $db->getQuery(true);
    $select = [
//        $db->quoteName( 'm.'.$lang->get('name'))
        $db->quoteName( 'cat_map.product_id'),
        $db->quoteName( 'p.product_manufacturer_id'),
        $db->quoteName( 'm.manufacturer_id'),
        $db->quoteName( 'm.manufacturer_logo'),
        'm.' . $db->quoteName( $lang->get('name') ),

    ] ;
    $Query->select($select);
    $Query->from($db->quoteName( '#__jshopping_products_to_categories' , 'cat_map' ));
    $Query->leftJoin( $db->quoteName( '#__jshopping_products' , 'p' ). ' ON ' . $db->quoteName( 'cat_map.product_id').'='. $db->quoteName( 'p.product_id') );
    $Query->leftJoin( $db->quoteName( '#__jshopping_manufacturers' , 'm' ). ' ON ' . $db->quoteName( 'p.product_manufacturer_id').'='. $db->quoteName( 'm.manufacturer_id') );
    $whereArr = [
        $db->quoteName('category_id'). '='. $category_id ,
    ];
    $Query->where($whereArr);
    $Query->group( $db->quoteName( 'm.manufacturer_id') ) ;
    $db->setQuery($Query);
    $res = $db->loadObjectList();

    foreach ( $res as $i => $row )
    {

        $href = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id=' . $row->product_manufacturer_id  );

        # Наверное так путь к картинке но тут я не уверен !
        //    $manufacturer->manufacturer_logo

        ?>
        <h3>
            <a href="<?= $href ?>">
                <?= $row->{ $lang->get('name') } ?>
            </a>
        </h3>
        <?php
    }#END FOREACH

Теперь все хорошо, только лого производителя пропало http://prntscr.com/u8kj56
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
В обще в цикле там такой объект
Код
[0] => stdClass Object
        (
            [product_id] => 33463
            [product_manufacturer_id] =>
            [manufacturer_id] =>
            [manufacturer_logo] =>
            [name_ru-RU] =>
        )
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
$row->manufacturer_logo

Теперь все супер http://prntscr.com/u8knri
Огромнейшее спасибо!
Плюсую в карму!
*

sanek2281

  • Захожу иногда
  • 85
  • 7 / 0
Возможно кому-то пригодится, готовое решение!
Спасибо gartes

В файл /templates/mytemplate/html/com_jshopping/category/category_default.php в нужном месте вставляем код ниже(разметку\стили делаем свои):
Код

<div class="cat-manufacture">
<?php
    $app = \Joomla\CMS\Factory::getApplication();
    $db = \Joomla\CMS\Factory::getDbo();
    $lang =   JSFactory::getLang();
    $category_id = $app->input->get('category_id' , false , 'INT') ;

    $Query = $db->getQuery(true);
    $select = [
        $db->quoteName( 'cat_map.product_id'),
        $db->quoteName( 'p.product_manufacturer_id'),
        $db->quoteName( 'm.manufacturer_id'),
        $db->quoteName( 'm.manufacturer_logo'),
        'm.' . $db->quoteName( $lang->get('name') ),
    ] ;
    $Query->select($select);
    $Query->from($db->quoteName( '#__jshopping_products_to_categories' , 'cat_map' ));
    $Query->leftJoin( $db->quoteName( '#__jshopping_products' , 'p' ). ' ON ' . $db->quoteName( 'cat_map.product_id').'='. $db->quoteName( 'p.product_id') );
    $Query->leftJoin( $db->quoteName( '#__jshopping_manufacturers' , 'm' ). ' ON ' . $db->quoteName( 'p.product_manufacturer_id').'='. $db->quoteName( 'm.manufacturer_id') );
    $whereArr = [
        $db->quoteName('category_id'). '='. $category_id ,
    ];
    $Query->where($whereArr);
    $Query->group( $db->quoteName( 'm.manufacturer_id') ) ;
    $db->setQuery($Query);
    $res = $db->loadObjectList();

    foreach ( $res as $i => $row ) {
    $href = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id=' . $row->product_manufacturer_id  ); ?>
<div class="cat-manufacture-item">
<a href="<?= $href ?>">
<img src="/components/com_jshopping/files/img_manufs/<?= $row->manufacturer_logo?>" alt="<?= $row->{ $lang->get('name') } ?> фото">
</a>
<p><?= $row->{ $lang->get('name') } ?></p>
</div>
    <?php } ?>

</div>
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
закомандовал сделать такое же на странице производителя, не подскажете как поправить этот код!?
))) Всем хорошего Дня !!
А в чем трабла ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 13
Просмотров: 2228
Последний ответ 03.04.2024, 14:24:38
от sergeytolkachyov
Вывести название категории в списке товаров

Автор ataman

Ответов: 9
Просмотров: 3596
Последний ответ 15.09.2023, 20:31:11
от Alex_gs
Отображения описании категории только на первой странице

Автор graf

Ответов: 5
Просмотров: 1210
Последний ответ 04.05.2023, 18:52:08
от kit2m2
Несколько категорий на одной странице

Автор geral

Ответов: 4
Просмотров: 588
Последний ответ 21.04.2023, 16:15:49
от geral
JoomShopping - категории и товары

Автор Adm1nspb

Ответов: 48
Просмотров: 13269
Последний ответ 24.03.2023, 12:12:32
от kibervolk