Quote from: AKots at Sep 06, 2008, 09:27 PM
По теме – я не знаю, как это сделать, и вызывает определенное сомнение целесообразность такого подхода. Не слишком логично вообще использовать вложенные документы, если родительский не опубликован.
Знаешь, сам как раз задумался о такой возможности. Думаю, это было бы правильно вообще. Для чего посетителю вникать во внутреннюю структуру системы управления. Сниппет Breadcrumbs, к примеру, позволяет обходить все неопубликованные документы, однако MODx все равно генерирует вложенные URL с учетом неопубликованных документов. На мой взгляд, это упущение со стороны разработчиков.
К вопросу о целесообразности, представь себе такую структуру (как раз работаю над подобным сайтом):
SITE_ROOT
|- English (1)
|-- Folder (4, pub)
|--- Folder (13, pub)
|--- Document (14, pub)
|-- Folder (5, pub)
|-- Folder (6, pub)
|-- Document (7, pub)
|-- Document (8, pub)
|-- Folder (9, unpub)
|--- Folder (10, pub)
|--- Folder (11, pub)
|--- Document (12, pub)
...
|- Russian (2, pub)
...
|- Latvian (3, pub)
...
где первый параметр в скобке обозначает ID документа, а второй - опубликован (pub) или скрыт (unpub) документ на сайте.
Т.е. в данном случае у нас 3-ех язычный сайт, в каждом языке пусть одинаковое количество элементов.
Дизайнер нарисовал мне ДВА меню. Одно - верхнее, второе - слева.
Меню слева - основное, в нем хранятся все важные документы сайта. Возьмем в моем примере английский язык, тогда меню у меня будет создаваться из документов с ID c 4-го по 8-ое, а также из всех вложенных в них документов соответственно, т.е. как-то так:
|-- Folder (4, pub)
|--- Folder (13, pub)
|--- Document (14, pub)
|-- Folder (5, pub)
|-- Folder (6, pub)
|-- Document (7, pub)
|-- Document (8, pub)
...
НО у меня есть еще верхнее меню! Пусть в нем будут находиться какие-то второстепенные документы, которые не относятся логически к разделам левого меню. Имеет смысл их выделить в некоторую отдельную папку, в моем примере это папка с ID=9. Я делаю эту папку невидимой, она фактически не несет никакой информации, но создает логику разделения данных в дереве MODx - просто для удобства работы с сайтом.
Тогда верхнее меню мне будет предоставлять следующие документы:
|--- Folder (10, pub)
|--- Folder (11, pub)
|--- Document (12, pub)
...
Теперь при создании сниппета (или использовании уже готовых Ditto или Wayfinder) для вывода левого меню в английском языке я легко определяю, что мне нужно вывести дочерние документы папки с ID = 1, но не выводя неопубликованные документы и папки в этом меню. то же самое с верхним меню - я вывожу все дочерние документы папки с ID = 9.
Вуаля - все довольны. Однако нет

. Когда выводятся документы верхнего меню, я вижу в URL что-то типа такого:
site.com/1/9/10/
site.com/1/9/11/
Вопрос - для чего мы выводим в URL адрес неопубликованной страницы? Я не хочу показывать это посетителю сайта. Более-менее продвинутый юзер легко может набрать адрес site.com/1/9/, чтобы посмотреть - что-ж там такое есть. А нету там ничего. В лучшем случае, редиректом его отправят на главную страницу или на специальную страницу 404 Not Found. В худшем - посыпятся какие-то системные сообщения об ошибках. Кроме того, нарушается логика разделения информации. В моем примере нет никакой вложенности, т.е. ее не должно быть для пользователя, он должен понимать, что верхнее меню начинается с корня сайта и только оттуда, т.е. он должен видеть такие адреса:
site.com/1/10/
site.com/1/11/
Вот собственно чего хочется и о чем ведет речь топикстартер.
И сразу же быстрый ответ для него же - к сожалению, пока MODx не предоставляет такой возможности. Хотя.. если порыться в исходниках, думаю, можно что-то придумать, но это уже будет хакинг кода, который не будет работать в новых версиях.