Anonymous
Ну и не нравится. Не пользуйся. Я сразу сказал
Aliaksandr
еще ни разу не смог по-существу говорить, каждый раз понос открывается))
Pathologic
https://modzone.ru/blog/2018/05/13/build-pdomenu-on-fenom/
Aliaksandr
я бы попользовался, но только тем, что сам автор хотя бы в состоянии объяснить))
Pathologic
если верстальщик сможет сделать такое, то я не знаю, а почему он до сих пор верстальщик ((:
Aliaksandr
а так какую-то кучу навалил посреди дороги - а потом обижается, что все нос воротят))
Pathologic
да ладно, может и пригодится как-нибудь, но уже видно, что без сниппетов много геморроя
Aliaksandr
ты же сделал как сам говоришь уже кучу сайтов - так кинь пару скринов как там меню выводится и все. казалось бы, что тут сложного для человека, который всех учит кодить)))
Aliaksandr
да ладно, может и пригодится как-нибудь, но уже видно, что без сниппетов много геморроя
никто ж не говорит что это все чушь - но согласись вопросов пока больше чем ответов )
Anonymous
Anonymous
Как бы не очень удобно ковырять и искать
Pathologic
{set $ar = $_modx->getPlaceholder('activeResources')} {if $ar[$item['id']]!} {set $classes = $item['id'] == $_modx->resource.id ? 'here' : 'active'} {else} {set $classes = ''} {/if} {if $item['children']?} <li class="tplParentRow {$classes}"> <a href="{$item['id'] | url}">{$item['pagetitle']}</a> <ul class="tplInner"> {foreach $item['children'] as $child} {set $child['level'] = $item['level'] + 1} {$_modx->getChunk('Menu', ['item'=>$child])} {/foreach} </ul> </li> {else} <li class="{$item['level'] > 1 ? 'tplInnerRow' : 'tpl'} {$classes}"> <a href="{$item['id'] | url}">{$item['pagetitle']}</a> </li> {/if}
Dmytro
ай))) удали это нафик))
Anonymous
И на этом решении нет сайтов. Т.к. необходимые правки в ядро приняли буквально сегодня утром.
Pathologic
отличное же меню (:
Aliaksandr
ну вот да, примерно такое я себе и преставляю
Pathologic
если верстальщик такое не может, так пусть идет улицу мести
Ilya
будешь его копировать потом из шаблона в шаблон из проекта в проект +)
Aliaksandr
если верстальщик такое не может, так пусть идет улицу мести
ты забыл проверить классы для первого последнего четного нечетного элемента и разные шаблоны для второго и третьего уровня меню
Pathologic
ну да
Aliaksandr
вот тогда будет как раз эталонное решение для "небольших сайтов на эво" ))
Pathologic
и для родителей поставить класс
Pathologic
на самом деле я видел где-то меню на блейде
Pathologic
полноценное типа
Pathologic
так оно было побольше в разы чем этот пример для фенома
Aliaksandr
И на этом решении нет сайтов. Т.к. необходимые правки в ядро приняли буквально сегодня утром.
ну так ты бы просто не начинал сразу волосы на попе рвать а попробовал хотя бы прислушаться к тому, какие проблемы видятся со стороны )
Aliaksandr
а то чуть что и сразу "все, я обиделся, пойду найду на гите какую-нибудь какашку и у вас"))
Ilya
в блейде все тож самое
Ilya
синтаксис чуть другой @if @foreach
Pathologic
ну, если кому-то удобно так выводить меню, то пусть выводит
Dmytro
так оно было побольше в разы чем этот пример для фенома
ну этот пример - это скорее всего, просто показать, как можно писать на феноме. Там основная проблема - это сниппет getImageList из migx. Каждый раз приходилось писать новый парсер через феном
Pathologic
писать-то можно хоть на чем, вопрос в том удобно ли это
Dmytro
согласен, для migx - это вынужденое решение
Dmytro
Вот это: {set $ar = $_modx->getPlaceholder('activeResources')} печально ибо верстальщик не должен вникать откуда брать данные он в трейси просто видит уже масив ar а дальше правильно тогда адекватный и правильный патерн будет
Pathologic
ты смотришь не туда
Pathologic
не важно set там или эта переменная уже будет
Dmytro
писать свое меню вместо dlmenu - разве что потренироваться, так как другого смысла не вижу просто
Aliaksandr
на битрикс примерно также все - берется массив $arResults/$arItems и делается форич
Pathologic
почему-то каждый раз когда что-то делаешь сложное, то начинается "я ж не программист"
Pathologic
ну то есть рекурсивный вывод оказывается и не программисты могут делать легко
Aliaksandr
ну то есть рекурсивный вывод оказывается и не программисты могут делать легко
ну потому что он у тебя не ресурсивный нифига - просто связка иф=>форич нового уровня )
Pathologic
где
Aliaksandr
захочешь добавить еще один уровень - придется опять руками фигачить
Pathologic
там в середине getChunk для этого же чанка
Ilya
нормальный верстальщик не будет делать рекурсии, он потребует готовый UI обработчик и просто воткнет его в шаблон, указывая только партиалы для всяких элементов меню дополнительно
Aliaksandr
как где
Aliaksandr
{if $item['children']?} <li class="tplParentRow {$classes}"> <a href="{$item['id'] | url}">{$item['pagetitle']}</a> <ul class="tplInner"> {foreach $item['children'] as $child} {set $child['level'] = $item['level'] + 1} {$_modx->getChunk('Menu', ['item'=>$child])} {/foreach} </ul> </li> {else}
Pathologic
этот чанк называется Menu
Aliaksandr
"если есть дети - берем форич этих детей"
Pathologic
да, а в детях этот чанк сам себя вызывает
Aliaksandr
ааа, ну тогда это все еще загадочнее )))
Pathologic
ну это мы меню опять же обсуждаем
Pathologic
а еще есть формы
Pathologic
и там долбить "if ошибка то сообщение об ошибке" тоже так себе
Aliaksandr
ну возможно когда-нибудь мы дождемся от сириуса статьи "как я избавился от говнокода в ефильтр и наконец написал свой на блейде" )
Ilya
Итог: генератора меню не будет да ?
Aliaksandr
я знаю зачем он это все делает - чтобы его бот постоянно не глючил он просто хочет на любой вопрос давать одну и ту же ссылку "читай документацию" - потому так яростно и борется со сниппетами даже находясь " в телефоне на море" )))
Anonymous
Бот глючит из-за тупой весты.
Pathologic
ну да
Anonymous
Доклистер в виде вывода списка ресурсов не сильно то и нужнон
Aliaksandr
вот кстати, вместо вывода доклистера отдавать только данные, хорошее дело
самый интерес там не в выводе результатов, а в автоматическом формировании формы с подсчетом количества результатов по каждому значению в разрезе каждого тв :)
Pathologic
ну если вывести список от одного родителя, то да
Anonymous
Для контнета есть SiteContent для пагинации pagination. @Serg_64j вчера скидывал пример
Pathologic
этот пример для частного случая
Pathologic
и то, без Жени так никто толком и не осилил получать тв ((:
Dmytro
вот кстати, вместо вывода доклистера отдавать только данные, хорошее дело
так добавь параметр типа &outputType=json, а по дефолту пусть отдает спарсеный хтмл)
Pathologic
доклистер на самом деле говно и для 2.0 его нужно переписывать
Aliaksandr
а фильтровать и сортировать по тв или по количеству комментариев jotx там как?
Pathologic
ну джойнишь таблицы и сортируешь
Ilya
к мультитв заджойни
Pathologic
а что там не так, если подробно?
многое там не так, если нужно использовать больше чем одну таблицу, куча костылей
Pathologic
просто посмотри как там формируются запросы
Dmytro
ну это надо мне сильно залезть в сам код и хорошо изучить сначала, чтобы понимать о чем речь)
Dmytro
если ты сам вдишь ошибки, тебе проще их сформулировать
Aliaksandr
просто посмотри как там формируются запросы
можно конечно сказать что доклистер говно, но заменять его каким-то самописом, который даже сам автор боится выставить на показ, не то что объяснить - это еще больший нонсенс ))