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

balancer

  • Осваиваюсь на форуме
  • 34
  • 0
Всем доброго дня,

на сайте имеется глобальная родительская категория первого уровня, в ней лежат дочерние категории с брендами и прочими категориями. При выводе модуля меню отображается так Глобальная категория > выпадающий список с дочерними категориями. Вопрос, нельзя ли сразу вывести все дочерние категории, в обход родительской?

более наглядно, можно ли сделать так, чтобы подкатегории BenQ и DTECH были на месте Компьютерных комплектующих?
« Последнее редактирование: 18.02.2014, 15:12:18 от balancer »
*

skyrec

  • Давно я тут
  • 383
  • 10
  • Люблю я детей !!!
Re: Вывод дочерних категорий в меню
« Ответ #1 : 18.02.2014, 15:15:44 »
Я думаю можно, надо поковырять условия вывода категорий в шаблоне модуля.
*

balancer

  • Осваиваюсь на форуме
  • 34
  • 0
Re: Вывод дочерних категорий в меню
« Ответ #2 : 18.02.2014, 15:28:57 »
Установлен модель JSE Megamenu, шаблон выглядит так
Код
<?php
/**
 * @version $Id$
 * @author Joomseller
 * @package Joomla.Site
 * @subpackage mod_jse_jp_megamenu
 * @copyright Copyright (C) 2008 - 2013 Joomseller. All rights reserved.
 * @license License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
 */

// no direct access
defined('_JEXEC') or die('Restricted access');
print_r($menu);
?>

<div id="jsejp_mm_<?php echo $module->id ?>" class="jsejp-megamenu <?php echo $menuStyle?> ">
<button class="button-bar" type="button">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="javascript:void(0)"><?php echo JText::_('JSE_jp_MEGAMENU_MENU')?></a>
<?php
if (!file_exists(JPATH_SITE.'/components/com_jshopping')){
echo  '<div style="float: left;color:red">This module can not work without the JoomShopping Component</div>';
}else{
$megamenu = new JPMegamenu();
list($menu,$order) = $megamenu->render($params,true);
echo $menu;
}

?>
</div>

попробую сделать как вы посоветовали. спасибо.

Может кто-нибудь еще с этим сталкивался?
*

lesh1j

  • Давно я тут
  • 221
  • 30
Re: Вывод дочерних категорий в меню
« Ответ #3 : 18.02.2014, 20:46:02 »
Вот простейший модуль, который выведет только дочерние категории, если нужны дополнительные функции, пиши, доделаю
не нашел, как прикрепить файл поэтому, выложу код, там всего 5 файлов
Структура:
language/ru-RU/ru-RU.mod_parentcat.ini
tmpl/default.php
mod_parentcat.php
mod_parentcat.xml
helper.php

файл language/ru-RU/ru-RU.mod_parentcat.ini
Код
MOD_PARENTCAT="дочерние категории joomshoping"
MOD_PARENTCAT_XML_DESCRIPTION="Описание модуля дочерние категории joomshoping"

файл tmpl/default.php
Код
<?php
// No direct access.
defined('_JEXEC') or die('(@)|(@)');
?>
<ul class="pc_list">
<?php
foreach ($categories as $category) {
$link = SEFLink('index.php?option=com_jshopping&controller=category&task=view&category_id='.$category->id, 1);
echo '<li class="pc_item_list"><a href="'.$link.'">'.$category->name.'</a></li>';
}
?>
</ul>

файл mod_parentcat.php
Код
<?php
// No direct access.
defined('_JEXEC') or die('(@)|(@)');

require_once dirname(__FILE__).'/helper.php';
$categories = modParentcatHelper::getParentcategory($params);

require JModuleHelper::getLayoutPath('mod_parentcat', $params->get('layout', 'default'));

файл mod_parentcat.xml
Код
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" method="upgrade">
<name>mod_parentcat</name>
<creationDate>February 2014</creationDate>
<author>BelNet</author>
<authorEmail>info@belnet.by</authorEmail>
<authorUrl>http://www.belnet.by</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
        <version>1.0.0</version>
        <description>MOD_PARENTCAT_XML_DESCRIPTION</description>
        <files>
                <filename module="mod_parentcat">mod_parentcat.php</filename>
                <filename>mod_parentcat.xml</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<folder>tmpl</folder>
        </files>
<languages folder="language">
<language tag="ru-RU">ru-RU/ru-RU.mod_parentcat.ini</language>
</languages>
</extension>

файл helper.php
Код
<?php
// No direct access.
defined('_JEXEC') or die('(@)|(@)');

class modParentcatHelper
{
public static function getParentcategory(&$params)
{
$lang = JSFactory::getLang();

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('`category_id` AS id, `'.$lang->get('name').'` AS name');
$query->from('#__jshopping_categories');
$query->where('category_parent_id > 0');
$query->where('category_publish = 1');
$query->order('ordering DESC');
$db->setQuery($query);

$categories = $db->loadObjectList();

return $categories;
}

}

всё это в архив и уставить как обычный модуль, ну и в каждую папку пустой index.html для защиты от доступа к списку файлов
*

balancer

  • Осваиваюсь на форуме
  • 34
  • 0
Re: Вывод дочерних категорий в меню
« Ответ #4 : 19.02.2014, 09:34:48 »
lesh1j,
спасибо большое, все работает.

Извиняюсь за наглость, если у Вас найдется лишний, не могли бы вы подсказать как реализовать эту чтобы раскрытыми были только категории у которых category_parent_id=0, и применительно к модулю, используемому мной, то есть сейчас выглядит это дело вот так

а можно бы было чтобы остались только 2 категории, Dtech и BenQ, а их дочерние категории из них вываливались. Используемый модуль категории - http://rghost.ru/download/52521913/069bf1191bab564587b3d71c2dbe1090fdce959c/megamenu_1.0.0_JoomShopping_j25j3x.zip

если слишком нагло, то может есть какое-то другое меню, с такими функциями.

В любом случае, большое спасибо
*

zemelea

  • Осваиваюсь на форуме
  • 48
  • 0
Re: Вывод дочерних категорий в меню
« Ответ #5 : 27.09.2014, 14:45:20 »
Вот простейший модуль......
Спасибо за решение! У меня задача немного другая. Нужно получить список всех дочерних подкатегорий текущей категории. Немного подправил helper.php
Код
<?php
// No direct access.
defined('_JEXEC') or die('(@)|(@)');

class modParentcatHelper
{
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');
$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;
}

}

Но вот никак не могу понять как удобнее получить не только список подкатегорий на 1 уровень ниже родителя, а все подкатегории. Посмотрел БД, там только 2 колонки за это отвечают: category_id и category_parent_id. Неужели всех детей можно получить только циклом?
*

dmitry_stas

  • Профи
  • 10060
  • 955
Re: Вывод дочерних категорий в меню
« Ответ #6 : 27.09.2014, 15:20:18 »
если быть точнее, то не циклом, а с помощью рекурсии. а почему "неужели только"? что смущает?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

zemelea

  • Осваиваюсь на форуме
  • 48
  • 0
Re: Вывод дочерних категорий в меню
« Ответ #7 : 27.09.2014, 16:07:32 »
Смущает то, что я не знаю как это реализовать, чтобы не делать 50 запросов в бд)
*

dmitry_stas

  • Профи
  • 10060
  • 955
Re: Вывод дочерних категорий в меню
« Ответ #8 : 27.09.2014, 18:41:07 »
так сделайте 1 запрос на все категории вместе, а проход уже сделайте на php :) посмотрите, как строится дерево категорий в админке в списке товаров (селект выбора категорий)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

katjuha6

  • Осваиваюсь на форуме
  • 153
  • 0
Re: Вывод дочерних категорий в меню
« Ответ #9 : 28.02.2017, 20:48:47 »
здравствуйте!
я понимаю, что тема уже давно затихла, то вдруг мне повезет =)
встала такая же задача
Цитировать
Спасибо за решение! У меня задача немного другая. Нужно получить список всех дочерних подкатегорий текущей категории. Немного подправил helper.php
скажите, пожалуйста, а можно ли добавить в этот модуль вывод еще и изображений категории?

заранее спасибо за ответ!
*

dmitry_stas

  • Профи
  • 10060
  • 955
Re: Вывод дочерних категорий в меню
« Ответ #10 : 28.02.2017, 20:52:03 »
category_image добавьте в select
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

katjuha6

  • Осваиваюсь на форуме
  • 153
  • 0
Re: Вывод дочерних категорий в меню
« Ответ #11 : 28.02.2017, 21:02:17 »
в helper под строку
Код
$query->select('`category_id` AS id, `'.$lang->get('name').'` AS name');
добавила
Код
$query->select('`category_image` AS image');

работает.
только вопрос: правильно так? либо же можно это как-то в одну строку собрать?
*

dmitry_stas

  • Профи
  • 10060
  • 955
Re: Вывод дочерних категорий в меню
« Ответ #12 : 28.02.2017, 21:35:21 »
можно и в одну строку, через запятую. но нет разницы по сути
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль категорий ice_jshopping_categories + аккордеон

Автор Efanych

Ответов: 219
Просмотров: 37993
Последний ответ 19.07.2017, 16:53:06
от Biss
Модуль категорий + товары + аккордеон

Автор Efanych

Ответов: 103
Просмотров: 11928
Последний ответ 25.01.2017, 01:19:49
от amigor
Где находится файл, отвечающий за вывод меток?

Автор omilen

Ответов: 2
Просмотров: 273
Последний ответ 01.12.2016, 19:29:13
от Biss
Модуль вывода "нужного" товара и категорий

Автор Kyrsor

Ответов: 11
Просмотров: 381
Последний ответ 04.07.2016, 13:35:28
от Brooksus
Не могу найти аддон для меню

Автор wen

Ответов: 4
Просмотров: 415
Последний ответ 14.03.2016, 15:46:33
от dmitry_stas