gasdadadsd 19 декабря 2014 1 10
Доброе время суток, уважаемые гуру. Изучаю потихоньку modx и все больше и больше он мне нравится. На днях столкнулся с проблемой.
Есть примерное такое дерево:

Категория 1
Подкатегория 1
Подкатегория 2 и т.д.
Категория 2
Подкатегория 1
Подкатегория 2 и т.д.
Категория 3
Подкатегория 1
Подкатегория 2 и т.д.

В каждой подкатегории находится статья. При входе в Категорию, показываются все материалы из всех подкатегорий данной Категории. Вот, собственно проблема, нужно вывести в каждом анонсе статьи, к какой подкатегории она относится.
Использую магазин shokeeper + tagmanager2. (использую фильтрацию, поэтому пришлось использовать такую связку) Фильтрацию использую по JS.
Нарыл в инете два кода
1.
return $modx->resource->Parent->pagetitle;
— показывает только название основной Категории, но ни как ни подкатегории.
2.
[[!pdoCrumbs? &limit=`2` &showCurrent=`0` &to=`[[+id]]` &tplWrapper=`@INLINE [[+output]]` &tplMax=`@INLINE `]]
— работает замечательно, НО… при фильтрации (то есть выбора одного из пункта в фильтре), из конструкции вида Категория -> Подкатегория, остается только &tplMax=`@INLINE `.
Куда копать уже не знаю. Буду премного благодарен хотя бы за подсказку, куда копать или в сторону какого расширения.

Заранее благодарю за ответ.

P.S. Пытался сделать фильтрацию без скриптов, но у меня почему то при нажатии кнопки подобрать, выкидывает на главную.
10 комментариев
Fi1osof1
Fi1osof 20 декабря 2014г в 15:17 #
return $modx->resource->Parent->pagetitle;
$modx->resource — это всегда только текущий документ. Следовательно, $modx->resource->Parent — это только родитель текущего документа.
[[!pdoCrumbs? &limit=`2` &showCurrent=`0` &to=`[[+id]]` &tplWrapper=`@INLINE [[+output]]` &tplMax=`@INLINE `]]
Это уже на модх.про вопросы задавать, мы не используем pdoTools и т.п.

В вашем случае скорее всего есть только один вариант — создать сниппет, который будет вызываться в шаблоне и возвращать заголовок родителя, что-то типа такого:
$q = $modx->newQuery('modResource', $id);
$q->innerJoin('modResource', "Parent");
$q->select(array(
    "Parent.pagetitle",
));
return $modx->getValue($q->prepare());
g
gasdadadsd 20 декабря 2014г в 19:42 #
Спасибо, конечно же за ответ, но конструкция
$q = $modx->newQuery('modResource', $id);
$q->innerJoin('modResource', "Parent");
$q->select(array(
    "Parent.pagetitle",
));
return $modx->getValue($q->prepare());


выдает название Категории, но ни как подкатегории. Неужели нет какого-либо решения?
Fi1osof1
Fi1osof 20 декабря 2014г в 19:49 #
Так вы вызывайте так, чтобы передаваемый id был id документа нужного уровня. Если у вас этот скрипт возвращает Категорию (что по логике должно быть родителем для подкатегории), соответственно в сниппете надо возвращать pagetitle не родителя, а самого документа, модифицируйте скрипт, включайте мозги.
$q = $modx->newQuery('modResource', $id);
$q->select(array(
    "modResource.pagetitle",
));
return $modx->getValue($q->prepare());
Fi1osof1
Fi1osof 20 декабря 2014г в 19:51 #
А то ни листинга нормально не выложили, ни указали параметры какие передаются и все такое, и хотите чтобы мы тут телепатию врубали, безошибочно выдавая вам точное решение.
g
gasdadadsd 21 декабря 2014г в 08:15 #
1. А какой листинг вам нужен? Всех чанков, снипетов и плагинов в системе? Я считаю, что я достаточно описал проблему и привел листинга. Почему-то на других форумах мою проблему поняли, а вы к сожалению нет.
2. Если вы выучили 2,5 функции данной системы, не нужно считать себя королем мира. Особенно ваше выражение «включайте мозги» говорит, что вам мешает корона. Я изучаю modx всего месяц и считаю, что изучение идет успешно.
3. Люди приходят сюда, что бы чему-то научиться и спросить совета, не потому, что у них мозги не включены. Им просто не хватает опыта. Я на 200% уверен, что когда вы начали изучать modx вы так же обращались за советом к другим людям, которые вам помогали.
4. Может вы беситесь от того, что люди больше идут к Наумкину? В отличие от вас, ОН действительно помогает людям и я искренне, всей душой надеюсь, что люди будут идти к Наумкину все больше и больше.

Успехов вам. Ведь в таком не благодарном деле, как ношение короны, оно вам точно понадобиться!!!
g
gasdadadsd 21 декабря 2014г в 08:16 #
P.S. Забыл спросить, как удалить свою учетку с данного ресурса?
Fi1osof1
Fi1osof 21 декабря 2014г в 10:39 #
Вернусь через часа три, удалю ваш профиль.
Fi1osof1
Fi1osof 21 декабря 2014г в 10:38 #
Я на 200% уверен, что когда вы начали изучать modx вы так же обращались за советом к другим людям, которые вам помогали.
Прочтиите 1500 моих комментов на коммунити, начиная с последних: community.modx-cms.ru/profile/Fi1osof/created/comments/page79/
И мои топики и комменты на хабре, и найдите там, где я что спрашивал. Я всегда предпочитал и предпочитаю сам разбираться, хотя и консультируюсь иногда по непрофильным технологиям, когда надо.
Остальное без комментариев, думайте что хотите, фиолетово.
Fi1osof1
Fi1osof 21 декабря 2014г в 10:44 #
Это ваша студия? digger-style.ru/about
У вас MODX знают на 64%?
Кто? Дайте ссылку на вашего лучшего специалиста. Или это вы знаете MODX на 64%? Или вас 10 человек и каждый знает его на 6.4% и вы просто умножили на 10? Вот я тест проходил: smarterer.com/scores/ac422a4465a535581cf757e375a3625a
Результаты были бы выше, если бы не на англ., а на русском было. Пройдите и вы тест, похвастайтесь результатами, особенно перед Наумкиным. А может вы еще что-то приличное напишите, за что он вам выразит благодарность, как мне здесь: habrahabr.ru/post/126635/
Вперед!:)
Fi1osof1
Fi1osof 21 декабря 2014г в 10:49 #
Ой, а в разделе интернет-магазины у вас там только одна ссылочка, на наш же ShopModxBox в поддомене. Что теперь делать будете? Ведь уже и не нравится он вам. Ставьте минишоп в пример и фигачьте на нем. Вообще не ясно чтож сразу минишоп не поставили.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.