Модуль вывода категорий / подкатегорий
- Dgikar
- Автор темы
- Не в сети
- Осваиваюсь на форуме
- Сообщений: 26
- Спасибо получено: 0
У Joomla, есть родной модуль, называется "Категории" (этот модуль отображает список категорий, входящих в одну общую родительскую категорию), но, для того, чтобы его использовать, нужно для каждой категории / подкатегории, наплодить кучу модулей, а хотелось бы, создать один модуль, в который автоматом подгружались категории / подкатегории...
P. P. S.
Модуль, может быть не обязательно такой как на картинке, главное, функционал чтобы выполнял:
- отображал подкатегории категории в которой нахожусь, и, отображал количество материалов в данной категории / подкатегории
Заранее благодарю за ответы
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
- Сообщений: 2868
- Спасибо получено: 659
1) Без использования Seblod.
Создаем для модуля отдельное меню. Для каждой категории материалов создаем пункт меню с таким же уровнем вложенности, как и у категории. Далее подключаем скрипт, который оформит все в нужном виде.
Этот способ классический, но мне он не нравится хотя бы потому, что требуется создавать каждый пункт меню вручную. Правда при этом мы получаем огромную гибкость, поскольку можем оформить каждый пункт меню так, как нам хочется. Например, сделать на одном пункте ссылку на блог категории, а на другом - на список материалов категории.
2) С использованием Seblod.
Создаем тип поиска которым получаем:
- список категорий
- количество материалов в каждой категории
- уровень вложенности категории.
Далее создаем вручную шаблон Seblod, который будет представлять полученные данные в том виде, который вы привели. Далее создаем модуль с результатами этого типа поиска.
Этот способ сложнее в реализации, поскольку нужно знать шаблоны SEBLOD и немного PHP, но он позволяет автоматически выводить меню именно той структуры, какую мы видим в категориях. А-ля меню Virtuemart.
Да, вот еще что. Хочу предостеречь от цифр с количеством материалов категорий. Как получить это количество? В базе в готовом виде его нет. Значит только сосчитать. Сосчитать легко - 1 SQL-запрос на категорию. НО! Если категорий будет много, запросов также будет много.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Dgikar
- Автор темы
- Не в сети
- Осваиваюсь на форуме
- Сообщений: 26
- Спасибо получено: 0
Меня, интересует способ с SEBLOD.Wedal пишет: Dgikar, вообще, есть 2 пути, по которым можно пойти решать эту задачку: ...
Что у меня уже есть на сайте:
- Категории / подкатегории
- Пункты меню, которые уже ссылаются на эти категории / подкатегории
- Около 40-50-ти модулей "Категории" Joomla
- Когда юзер, попадает на какую-то страничку (читай входит в такую-то категорию), над товарами / компаниями этой категории, должен отобразиться список всех подкатегорий, той категории, в которой сейчас находится юзер
Второй вариант - то, что нужно!
Но вот как его реализовать, при помощи каких полей, что в них прописать, как сделать уровень вложенности категории и пр. - хоть убей, но, не знаю...
По-сути, мне не важно как будет отображаться сами категории... Именно так, как показано на картинке из моего первого поста (т. е. с отступами слева, и картинками плюсиков), или тупо в "столбик" (но не через запятую в одну или несколько строк - одна категория / подкатегория - одна строка) - не суть важно. Важно, чтобы у меня в категории, были отображены подкатегории этой категории. В данный момент, у меня реализован вывод подкатегорий так (это родной модуль "Категории" Joomla немного модифицированный для вывода циферок):Wedal пишет: ... но он позволяет автоматически выводить меню именно той структуры, какую мы видим в категориях. А-ля меню Virtuemart ...
А как же тогда на большинстве сайтов это решается?Wedal пишет: ... Да, вот еще что. Хочу предостеречь от цифр ... Если категорий будет много, запросов также будет много.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
- Сообщений: 2868
- Спасибо получено: 659
Когда юзер, попадает на какую-то страничку (читай входит в такую-то категорию), над товарами / компаниями этой категории, должен отобразиться список всех подкатегорий, той категории, в которой сейчас находится юзер
а разве Joomla так не делает? Вроде умела.Важно, чтобы у меня в категории, были отображены подкатегории этой категории.
А никак. Мирятся с лишними запросами(более мощный сервер и.т.п), а многие просто не знают того, что подобное имеет место быть.А как же тогда на большинстве сайтов это решается?
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Dgikar
- Автор темы
- Не в сети
- Осваиваюсь на форуме
- Сообщений: 26
- Спасибо получено: 0
Wedal пишет: Dgikar,
Когда юзер, попадает на какую-то страничку (читай входит в такую-то категорию), над товарами / компаниями этой категории, должен отобразиться список всех подкатегорий, той категории, в которой сейчас находится юзер
а разве Joomla так не делает? Вроде умела.Важно, чтобы у меня в категории, были отображены подкатегории этой категории.
Ну, кроме как сделать вывод категорий / подкатегорий через Joomla модуль "Категории"... Иного способа, я не знаю... А если использовать модуль "Категории", и учитывать, что у меня будет порядка 40 000 категорий (это только на русском, а еще 7-мь языков), то, боюсь подсчитывать, сколько Joomla модулей "Категории" нужно будет сделать для каждой категории, у которой есть подкатегории...
Поэтому, думаю, что правильное решение будет использовать SEBLOD, для создания модуля, который будет выводить категории / подкатегории... Вопрос, только в том, как его делать? Какие поля нужны, что в них прописывать... Этого я не знаю... А Вы Wedal, знаете? Может наставить на путь истинный? Пожалуйста...
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
- Сообщений: 2868
- Спасибо получено: 659
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Dgikar
- Автор темы
- Не в сети
- Осваиваюсь на форуме
- Сообщений: 26
- Спасибо получено: 0
Не-а, не оно...Wedal пишет: Dgikar, ну вот это разве не оно? ...
Не оно, потому, что:
- снова таки, нужно будет плодить кучу модулей, только уже не модулей "Категории", а модулей "Меню"
- использовать меню, для вывода структуры категорий - не получится, т. к., при входе в паррент категорию, меню не покажет чилдрен категории в чистом виде, а покажет все вместе: и паррент и чилдрен... Можно конечно, в модуле "Меню" погемороится, и настроить уровень вывода категорий (пунктов меню), но, это куда геморнее, нежели использовать родной модуль Joomla "Категории"
У меня, сейчас, уже около 40-50 модулей "Категории", так на то, чтобы открыть любой модуль для создания/редактирования/сохранения, у меня уходит до 5-7-и минут на это действие + 1-2-е минуты, на "ковыряние" в самом модуле. В итоге, 7-9-ть минут, на один модуль - это по-моему не позволительная "роскошь", а с увеличением количества модулей (у меня, планируется около 360 000 категорий на 8-и языках), представьте, сколько времени будет открываться модуль для редактирования... как минимум сутки...
Решение:
- Сделать модуль на SEBLOD, который будет автоматом подгружать в себя, и выводить на страницу чилдрен категории, при входе юзера в парент категорию
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
- Сообщений: 2868
- Спасибо получено: 659
1) Создаем N категорий.
2) Создаем N пунктов меню типа "блог категории" и связываем каждый из них с соответствующей категорией. Уровни вложенности категорий и пунктов меню должны совпадать.
3) В глобальных настройках материалов указываем все настройки для блога категории.
Всё. Не нужно никаких модулей. Макет блога категории показывает на одной странице список подкатегорий выбранной категории, а ниже список материалов выбранной категории в виде блога. Потребуется только один модуль меню, который будет выводить все пункты меню всех уровней вложенности, а далее подключаем скрипт для красивого отображения подкатегорий и всё.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Dgikar
- Автор темы
- Не в сети
- Осваиваюсь на форуме
- Сообщений: 26
- Спасибо получено: 0
Блин..... Точно!!! ....Wedal пишет: ... Не нужно никаких модулей. Макет блога категории ...
Я изначально пошел не правильно... Нужно было по Вашему пути сделать, а я начал прикручивать модули "Категории"...
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- rydberg
- Не в сети
- Новый участник
- Сообщений: 5
- Спасибо получено: 0
Реализовал по сути тот же джумловский модуль "категории" с помощью Seblod. Так оказалось, что Seblod для вывода подобного модуля делает тучу SQL-запросов, например, на одной из страниц для вывода 18 таких модулей Seblod делал ~400 запросов к базе данных, а всего-то нужно было вывести по 10 ссылок на подкатегории каждой из 18 категорий.
Пришлось переделать подобные модули как mod_php и написать php код для вывода ссылок на подкатегории. Это сократило время генерации страницы вдвое.
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Dgikar
- Автор темы
- Не в сети
- Осваиваюсь на форуме
- Сообщений: 26
- Спасибо получено: 0
Сорри за нескромность... А Вы можете поделиться решением?rydberg пишет: Расскажу о своем опыте решения подобной задачи... Пришлось переделать подобные модули как mod_php и написать php код для вывода ссылок на подкатегории...
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- rydberg
- Не в сети
- Новый участник
- Сообщений: 5
- Спасибо получено: 0
Модуль не выводит количество материалов в каждой подкатегории.
$menuItemid мне было легче задать вручную, хотя можно получать текущий Itemid меню
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Amazing
- Не в сети
- Новый участник
- Сообщений: 2
- Спасибо получено: 0
Wedal пишет: ...
Да, вот еще что. Хочу предостеречь от цифр с количеством материалов категорий. Как получить это количество? В базе в готовом виде его нет. Значит только сосчитать. Сосчитать легко - 1 SQL-запрос на категорию. НО! Если категорий будет много, запросов также будет много.
А сложно ли добавить в БД таблицу, в которой будет храниться информация о кол-ве материалов в каждой категории. И таблица эта обновлялась бы автоматически, при добавлении каждого нового материала?
P.S. Возможно оффтоп, но думаю тема актуальная
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Wedal
- Не в сети
- Администратор
- Сообщений: 2868
- Спасибо получено: 659
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.
- Евгений
- Не в сети
- Новый участник
- Сообщений: 1
- Спасибо получено: 0
Как сделать тип поиска, которым получаем список категорий - вполне понятно.Wedal пишет: 2) С использованием Seblod.
Создаем тип поиска которым получаем:
- список категорий
- количество материалов в каждой категории
- уровень вложенности категории.
А вот как в том же типе поиска получить количество материалов в каждой категории и уровень вложенности категорий - для меня полная загадка. Нельзя ли объяснить подробнее?
Ну, вернее, понятно, что через оверрайд позиции и запрос к БД это дело извлекается без проблем, просто я подумал, может быть, у Вас есть более изящное решение?
Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.