День добрый. Есть одна задача которую приходится решать и не в первый раз сталкиваюсь с этой мазолью в Joomle.
Решил что мои мучения могут быть кому-то полезными.
Описание задачи:
Планируется медийный портал. В новостной его части есть подобная логическая структура (разделение на сущности):
Текстовый материал:
- Рублики:
--рублика1
--рублика2
--рублика3
- тип содержания:
--новости
--статьи
--аналитика
предполагается что каждый материал при создании должен быть отражен в обеих "сущностях" (т.е. должна быть выбрана и "рублика" и "тип")
Конечная цель в том чтобы выводить на сайте материал как по рубликам, так и по типу содержания.
В общем это должно смотреться так:
вид1: блог "рублика1" - материалы всех "типов" со ссылками на "тип" в каждой записи
вид2: блог "аналитика" - материалы из всех "рублик" со ссылками на "рублику" в каждой записи
и пр.
Одно из условий, материал должен остаться в com_content (т.е. сторонние cck отпадают) т.к. во первых под него написано очень много функционала который планируется использовать (особенно что касается seo) а во вторых нет времени на разбор и создание структуры в другом cck.
Очевидный вариант (для увязывания нескольких сущностей) использовать "очеловеченые" теги - не очень подходит т.к. сущность "рублика" и "тип содержимого" равны с т.з. логического "веса" и вывода на сайте
т.е. ещё раз подробно:
Например юзер выбирает "рублику1" и ему показывается "блог" статей по "рублике1" всех "типов" (т.е. и новости и статьи и аналитика), далее он может выбрать какой либо из "типов" т.е. он может захотеть смотреть только "рублика1" - "аналитика" а потом переключиться например на "статьи" в "рублике1" а потом может захотеть посмотреть "статьи" из всех рублик!
аналогично возможна обратная ситуация: юзер выбирает "аналитику" и ему показывается "блог" статей по "аналитике" из всех "рублик", далее он может выбрать какую либо из "рублик" т.е. "аналитику" из "рублики1" а потом переключиться например на "аналитику" в "рублике2" а потом может захотеть посмотреть все из "рублики2".
Поиск решения:
Первое что приходит на ум это сделать структуру типа:
рублика1 (раздел)
-новости (категория)
-статьи (категория)
-аналитика (категория)
рублика2 (раздел)
-новости (категория)
-статьи (категория)
-аналитика (категория)
рублика3 (раздел)
-новости (категория)
-статьи (категория)
-аналитика (категория)
В принципе уже не плохо. Не так изящно как хотелось бы но работать будет.
Мы сможем легко "идентифицировать" материал в обоих сущностях (рублика[раздел]-тип[категория]) и легко вывести разные типы материалов (новости аналитика и пр) в рамках одной рублики.
Сторонними Модулями (позволяющими выбрать категории вывода) можем так-же организовать вывод например аналитики из всех разделов(рублик)
Главный минус. Если сущности будет не две а три, то мы впираемся т.к. структура Joomla только двухуровневая.
Так же нужно учесть что выводить данные разных типов внутри 1 рублики мы будем простым видом "блог", а выводить данные из разных разделов (рублик) одного типа (напр. аналитика по всем рубликам) придется поизгаляться (напр. создавать страницу с модулем вывода новостей) отсюда могут пойти глюки например в построении карты сайта, индексации и пр. к тому же придется приводить эти два вида вывода к единому внешнему виду.
И ещё важный минус. Если у вас будет настроен вывод блога "аналитика по всем рубликам" через сторонний модуль с ручным указанием категорий то при создании новой рублики вам нужно будет лезть во все подобные модули (общая аналитика, все статьи, все новости, аналитика за такой-то период и пр.) и вручную добавлять новую рублику, что не есть гуд.
и еще минус. список рублик получается ну совсем плоский. да конечно нужную вложенность мы настроим в меню, но все равно в админке будет жутко неудобно если рублик будет больше 15
Рассмотрим что нам предлагают сторонние расширения (ищем принципиально бесплатное):
com_multicategories_v1.0.9
http://extensions.joomla.org/extensions/structure-a-navigation/multi-categorization/12374Неплохая штука, русифицированная.
Позволяет создать ПОМИМО родной структуры категорий, свою с бесконечной вложенностью, где каждая виртуальная категория может отражать как одну так и несколько реальных категорий
Другими словами компонент позволяет вывести на сайте "всевдокатегорию" в которой будут статьи из нескольких реальных категорий.
По факту в админке по прежнему статья прикрепляется только к одной реальной категории.
т.е. если возьмем вариант описанный абзацем выше, то:
внутри 1 рублики мы будем выводить данные простым блогом, а выводить данные разных рублик одного типа (напр. аналитика по всем рубликам) будем созданной виртульаной мультикатегорией.
Плюс тут только в том что вывод данных организуется не через страницу с модулем а через такой же блог мультикатегории (экономим время на причесывании к одному виду).
Минус в том что сторонние модули не видят "виртуальных" категорий. а значит вы не выведите например 10 последних заголовков из мультикатегории "аналитика из всех рублик". Если только эти модули не натравливать вручную на нужные реальные категории, но тогда появляется куча лишней работы и путаницы.
Итог:
вид1:(напр. блог "рублика1" - материалы всех типов со ссылками на тип в каждой записи)
ссылку на "тип" атоматом сделать не получится
вид2:(напр. блог "аналитика" - материалы из всех рублик со ссылками на рублику в каждой записи)
ссылка на рублику в каждой записи - атоматом.
----------------
customproperties_1.98.3.3_build55
http://extensions.joomla.org/extensions/search-a-indexing/tags-a-clouds/4240Создает "метки" если точнее то дополнительные поля и их значения
Применительно к нашей задаче.
можем в Joomla сделать обычную структуру:
рублика1(раздел)
-подрублика11(категория)
-подрублика12(категория)
рублика2(раздел)
-подрублика21(категория)
а тип содержимого оформить как доп.поле "тип" со значениями "аналитика", "новость" и пр.
Привязывать материал к доп.полям и значениям можно как по одному (в момент создания) так и групповой обработкой (в компоненте) - это удобно.
Есть механизм поиска и облака тегов с учетом "доп.полей" (т.е. можно уже вывести "аналитика из всех рублик" подставив ссылку с "результатами поиска", немного внешне их переделав)
Плюс. сущностей (тегов) может быть много и они могу пересекаться. Внутри доп. поля(тега) материал может принадлежать к нескольким "значениям".
Минус. все таки это вариант с тегами где с точки зрения сущности "тип содержимого" функциональные возможности довольно ограничены (особенно со стороны сторонних расширений).
Русик нашел только от версии 1.90.3
Итог:
вид1:(напр. блог "рублика1" - материалы всех типов со ссылками на тип в каждой записи)
ссылка на тип в записи хаписи - атоматом. (в виде тега)
вид2:(напр. блог "аналитика" - материалы из всех рублик со ссылками на рублику в каждой записи)
ссылка на рублику в каждой записи - атоматом.
------------------
com_fjrelated_1.0.13.zip
http://extensions.joomla.org/extensions/structure-a-navigation/multi-categorization/6926Вариация предыдущего расширения только вместо навороченных доп. полей, штатное поле кейвордов.
т.е. также можем в Joomla сделать обычную структуру:
рублика1(раздел)
-подрублика11(категория)
-подрублика12(категория)
рублика2(раздел)
-подрублика21(категория)
а тип содержимого в каждой статье писать ручками в поле кейвордвы. После этого можно создать пункт меню типа блог категории но на основе нужных тегов.
Плюсы. сущностей (тегов) может быть много и они могу пересекаться, но без вариантов их значений.
Просто, легко сделать идентичные варианты вывода для всех сущностей.
Минус. все таки это вариант с тегами где с точки зрения сущности "тип содержимого" функциональные возможности довольно ограничены.
Русика не нашел
Итог:
вид1:(напр. блог "рублика1" - материалы всех типов со ссылками на тип в каждой записи)
ссылку на "тип" атоматом сделать не получится
вид2:(напр. блог "аналитика" - материалы из всех рублик со ссылками на рублику в каждой записи)
ссылка на рублику в каждой записи - атоматом.
--------------
redARTICLEFINDER
http://extensions.joomla.org/extensions/structure-a-navigation/multi-categorization/7877по функционалу - упрощенная копия
custom properties, только без модулей поиска, без кнопки в редакторе для присвоения тегов в статьях, без группового назначения, в общем так себе...
---------------
Zaragoza Content
http://extensions.joomla.org/extensions/structure-a-navigation/multi-categorization/9766Все что делает компонент - позволяет в меню создать пункт типа "Блог" в кортором будут статьи по выбранным тегам (теги берутся как я понял из стандартного поля статьи метакейворды) и из выбранный категорий. Все очень просто, работает, но не к нашей задаче.
===============
Общие выводы. Полноценного решения так и не найдено. Единственный вариант (при сохранении com content) это Custom Properties т.е. "вариант с тегами", хоть и навороченными и требующими допиливания.
Хотя если вы знаете еще варианты то буду признателен, если поделитесь
P.S.
Конечно, кажется идеален был бы вариант
http://www.usjoomlapros.com/Extensions/Multi-Categories-For-Articles/flypage.tpl.htmlно надо посмотреть что там внутри, а 50 $ лишних ну совсем нет, если кто поделится этим компонентом, буду очень признателен sergey@bukin.org