Pathologic
ну там не то что ошибки, хотя есть и ошибки, там просто плохой код, в котором сложно разобраться
Aliaksandr
там за 6 лет тысячи багов отловили, еще столько же не нашли и функционала накинули в десять раз больше, чем было изначально. вряд ли кто-то вот так с нуля возьмет и сразу напишет что-то лучше, особенно в рамках бюджетов на эво-сайты )
Aliaksandr
да, это должно сильно припечь, чтобы писать с нуля
особенно когда "и так вроде работает" )))
Pathologic
но и предлагать людям без опыта получать данные через элоквент это тоже не дело
Aliaksandr
Хотелось бы для начала понять как же все-таки выводить правильно трехуровневое меню в шапке сайта "по канонам" )
Aliaksandr
а потом уже можно и про элоквент )
Anonymous
Хотелось бы для начала понять как же все-таки выводить правильно трехуровневое меню в шапке сайта "по канонам" )
Мне конечно льстит когда мой говнокод называют "каноном", но я сам не стал бы так называть. Я даже скажу больше. Я не говорил что моё решение единственное верное
Ilya
Хотелось бы для начала понять как же все-таки выводить правильно трехуровневое меню в шапке сайта "по канонам" )
[[Wayfinder? &startId=10 &level=3]] (для адептов [[DLMenu? &startId=10 &level=3]] наверно как-то так) - гениально и просто =) Но можно и дальше гвозди микроскопом забивать =) Я так и не понял будет в новом эво что-то подобное или нет ?
Ilya
Что-то готовое для меню, для списков ?
Ilya
Спорите, но не понятно вообще, куда все движется, в говнокод прямо в шаблоне или в четкое разделение по обязаннастям ?
Pathologic
Хотелось бы для начала понять как же все-таки выводить правильно трехуровневое меню в шапке сайта "по канонам" )
по канонам это создать контроллер главный, в нем задать общие элементы, тпиа там меню на всех страницах
Pathologic
а остальные его расширяют и добавляют свои данные при надобности
Aliaksandr
Мне конечно льстит когда мой говнокод называют "каноном", но я сам не стал бы так называть. Я даже скажу больше. Я не говорил что моё решение единственное верное
я в отличие от тебя не называю твой код ни говнокодом ни каноном, я просто спрашиваю как при таком подходе к сайту видится процесс создания меню в шапке в несколько уровней. А ты почему-то начинаешь истерить и лезть в бутылку ))
Pathologic
а с меню уже разобрались, что или простыня в шаблоне или по старинке
Aliaksandr
ну меню это частный случай, кроме меню много других каких-то общих элементов, которые в том числе надо стилизовать на уровне верстки
Pathologic
жалко я прогнал артура плугина, уж он бы научил как правильно и со сжатием через пнг
Ilya
/top@Axenia_Bot
Ilya
/my_stats@Axenia_Bot
Андрей
/my_stats@Axenia_Bot
Андрей
/my_stats@Axenia_Bot
Dmytro
📊 Место в рейтинге: 437679 - это че столько дофига мемеберов в евоцмс или это рейтинг в телеге?
Pathologic
/my_stats@Axenia_Bot
Азамат
Всем привет. Подскажите, пожалуйста, как сделать в ресурсе тв типа массив
Азамат
Чтобы можно было добавлять элементы списка
Dmytro
multiTV
Азамат
Типа migx в рево
Dmytro
assets/tvs/multitv/configs - там описываешь свой тв массив
Азамат
Спасибо. Попробую разобраться
Ilya
/gitdoc@EVO_CMS_bot
Ilya
/help@Axenia_Bot
Ilya
/blacklist@EVO_CMS_bot
Yaroslav
/blacklist@EVO_CMS_bot
Dmytro
тут у меня вообще какая мысля - фактически что делает сниппет: составляет запрос, обрабатывает данные, парсит данные для вывода, делает пагинацию в теории упрощенно типа так $params = $paramsController->parse($snippetParams); $sqlObject = $queryController->makeSQL($params['query']); $dataObject = $dataController->makeQuery($sqlObject,$params['data']); $paginationObject = $paginationController->makePagination($sqlObject,$params['pagination']); $output = $outputController->parseData($dataObject,$paginationObject,$params['output']); return $output; то есть, для ядра надо добавить 5 контроллеров, каждый из которых будет заниматься своим делом. И фактически, тогда можно будет написать любой сниппет в таком формате. а практически менять надо будет только $dataController на свой $paramsController->parse - просто сортирует данные, которые прилетают в сниппете по своим группам $queryController->makeSQL - составляет объект из выборки, откуда, условие, сортировка, лимиты, то есть select/from/where/sortby/limit из любых таблиц $paginationController->makePagination - если нужна пагинация, заполняет массив/обект с данными пагинации и парсит их с помощью $outputController->parseData $dataController->makeQuery - тупо выборка ресурсов с лимитом или без/ возможность обрабатывать данные каждой записи / дополнительная фильтрация с правкой $sqlObject для корректирования пагинации $outputController->parseData - грубо говоря parseChunk
Anonymous
/blacklist@EVO_CMS_bot
Думал что тебя туда добавили 😁
Ilya
тут у меня вообще какая мысля - фактически что делает сниппет: составляет запрос, обрабатывает данные, парсит данные для вывода, делает пагинацию в теории упрощенно типа так $params = $paramsController->parse($snippetParams); $sqlObject = $queryController->makeSQL($params['query']); $dataObject = $dataController->makeQuery($sqlObject,$params['data']); $paginationObject = $paginationController->makePagination($sqlObject,$params['pagination']); $output = $outputController->parseData($dataObject,$paginationObject,$params['output']); return $output; то есть, для ядра надо добавить 5 контроллеров, каждый из которых будет заниматься своим делом. И фактически, тогда можно будет написать любой сниппет в таком формате. а практически менять надо будет только $dataController на свой $paramsController->parse - просто сортирует данные, которые прилетают в сниппете по своим группам $queryController->makeSQL - составляет объект из выборки, откуда, условие, сортировка, лимиты, то есть select/from/where/sortby/limit из любых таблиц $paginationController->makePagination - если нужна пагинация, заполняет массив/обект с данными пагинации и парсит их с помощью $outputController->parseData $dataController->makeQuery - тупо выборка ресурсов с лимитом или без/ возможность обрабатывать данные каждой записи / дополнительная фильтрация с правкой $sqlObject для корректирования пагинации $outputController->parseData - грубо говоря parseChunk
Попей водички, брат, побольше, оно долго не держит +)
Dmytro
это я еще пока трезвый)) ща пивка рубану, еще и забанят)))
Anonymous
Anonymous
тут у меня вообще какая мысля - фактически что делает сниппет: составляет запрос, обрабатывает данные, парсит данные для вывода, делает пагинацию в теории упрощенно типа так $params = $paramsController->parse($snippetParams); $sqlObject = $queryController->makeSQL($params['query']); $dataObject = $dataController->makeQuery($sqlObject,$params['data']); $paginationObject = $paginationController->makePagination($sqlObject,$params['pagination']); $output = $outputController->parseData($dataObject,$paginationObject,$params['output']); return $output; то есть, для ядра надо добавить 5 контроллеров, каждый из которых будет заниматься своим делом. И фактически, тогда можно будет написать любой сниппет в таком формате. а практически менять надо будет только $dataController на свой $paramsController->parse - просто сортирует данные, которые прилетают в сниппете по своим группам $queryController->makeSQL - составляет объект из выборки, откуда, условие, сортировка, лимиты, то есть select/from/where/sortby/limit из любых таблиц $paginationController->makePagination - если нужна пагинация, заполняет массив/обект с данными пагинации и парсит их с помощью $outputController->parseData $dataController->makeQuery - тупо выборка ресурсов с лимитом или без/ возможность обрабатывать данные каждой записи / дополнительная фильтрация с правкой $sqlObject для корректирования пагинации $outputController->parseData - грубо говоря parseChunk
А теперь внимание на скрин от Сергея
Dmytro
ну кака, а че?
Anonymous
ну кака, а че?
Не кака. А та же логика с выборками и пагинациями
Ilya
это отличный пример индивидуального решения
Ilya
под какой-либо проект
Dmytro
ага)
Dmytro
а так кака - хтмл код вшит внутри
Ilya
но не для общака
Anonymous
С тем же успехом эти объекты можно отправить во вьюху
Anonymous
И там обработать
Anonymous
И не надо чанки парсить
Ilya
Сейчас Tyler Otwell тебе дал леща =)
Dmytro
я просто предложил свой вариант общего видения
Dmytro
пат, говорит, доклистер переписать надо
Anonymous
Тут скорее был пример что можно получить через eloqument и пагинации вхерачить
Ilya
Taylor простите +)
Anonymous
В том числе и твшки получить
Ilya
Если кодим во вьюхах, тогда это уже не MVC =)
Dmytro
суть заключается в том, что каждый контроллер должен уметь работать самостоятельно, на передаваемых ему данных
Ilya
Брат, ты водички попил ?
Dmytro
уже пивас открыл, нфик мне водичка))
Ilya
хахаха =) ну понеслась, да +)
Anonymous
Почему вы так любите из шаблона слать данные на левый обработчик который занимается получением дополнительных данных и их отдельным парсингом?
Anonymous
Это же лишний шаг
Dmytro
ну я думаю, что это путь к универсальности
Dmytro
каждый занимается только своим
Ilya
дороги к универсальности ведут в АДъ
Dmytro
для нашего случая - нет)
Dmytro
должна быть базовая основа
Dmytro
хоть какаято
Yaroslav
Это же лишний шаг
Издалека твоя ава похожа на оральный секс 😂😂😂😂
Dmytro
например в рево - это pdoTools
Ilya
Вся бизнес логика закладывается в модель, правило просто жирные модели, худые контроллеры
Ilya
В контроллере по факту вообще ничего не должно делаться, он данные принял, отправил массив с результатом обработанных во вьюху - это все =)
Dmytro
я же говорю, это обобщенно, грубо говоря - это строки кода $modx->runSnippet
Dmytro
и как я написал, каждый из этапов отправляет свой массив с результатом
Dmytro
нужны)))