Anonymous
в проекте то у нас они есть (не modx), но поломанные поправить - еще можно, а вот новые писать, чет совсем лениво
Anonymous
только когда совсем прижмет или ревьювер в позу станет
Василий
да и времени на эти тесты уйдёт примерно так же, как на весь проект
Anonymous
тогда пишешь
Anonymous
иногда больше 🙂
Yaroslav
у меня нечто есть, но гордиться там вряд ли есть чем. примеров особо не было, поэтому как есть. на самом деле когда изменил модель и не поправил тест покраснела
Василий
короче, я честно признаю, что работаю без тестов
Василий
а PR в MODX сами тестируются на Github - лафа!
Yaroslav
как называются тесты когда юнит-тестировать особо нечего? в примерах модкс — это какой тип тестов? интеграционные?
Yaroslav
в примерах=в исходниках
Anonymous
это как раз таки юнит тесты
Anonymous
хотя смотря где в исходниках
Anonymous
но то, что Василиц говорит, что на github сами тестируются, это юнит-тесты
Anonymous
они через travis запускаются
Anonymous
но там процент покрытия печальный вообще
Yaroslav
это как раз таки юнит тесты
юнит тесты, если правильно понимаю не должны цеплять никакую фикстуру, работающую с реальной бд на себя, делаются моки для таких вещей, классы изолируются по сути и тогда это именно юнит-тест
Василий
ну там xPDO покрыто более-менее, и ядро. самые грубые косяки можно отловить
Василий
лучше чем ничего
Yaroslav
это точно, какой-то добрый человек написал для меня getFixture() ))
Anonymous
юнит тесты, если правильно понимаю не должны цеплять никакую фикстуру, работающую с реальной бд на себя, делаются моки для таких вещей, классы изолируются по сути и тогда это именно юнит-тест
ну там особенность xpdo что это либа для работы с БД, поэтому есть нюансы, но да, это не совсем юнит тесты, хотя они могут так выглядеть
Anonymous
но такое часто встречается в старых проетах
Anonymous
у нас в старом такая же беда, куча тестов, которым нужна БД, установка проекта и прочее
Anonymous
к сожалению с таким оегаси приходится жить
Yaroslav
если тестируемые классы не занимаются ничем больше, как бизнес-логикой со сложными структурами данных типа xPDOObject, довольно сложно представить как для них делать работоспособные заглушки-моки для полноценного тестирования
Roma
кто нибуть знает как сделать чтобы в допопле дата можно было выбрать только год?
Yaroslav
вот я под пивом
Roma
ты под чем?
бросил пить два дня назад
Yaroslav
бросил пить два дня назад
1) краткое содержание проблемы 2) что мне нужно 3) что я для этого сделал 4) что я хочу получить 5) что я получил
Roma
1) краткое содержание проблемы 2) что мне нужно 3) что я для этого сделал 4) что я хочу получить 5) что я получил
нужно чтобы допопле типа Дата позволяло выбрать только год, я смог отключить выбор времени.
Василий
Попробуй использовать xtype = datefield
Sergey
подключить, только не через includeTVs, а через leftJoin
если интересно, то мне удалось решить проблему
Sergey
Если вдруг кому интересно: Утром мной задавался вопрос, как подружить tagger и pdoresources , подключая несколько TV
Sergey
Вот рабочее решение:
Sergey
[[!pdoResources? &parents = 7 &limit=6 &loadModels=tagger &class=TaggerTagResource &leftJoin=`{ "NameTag": { "class": "TaggerTag", "on": "TaggerTagResource.tag = NameTag.id" }, "Posts": { "class": "modResource", "on": "TaggerTagResource.resource = Posts.id" }, "reviews_img": { "class": "modTemplateVarResource", "on": "TaggerTagResource.resource = reviews_img.contentid AND reviews_img.tmplvarid = 15" }, "video_img": { "class": "modTemplateVarResource", "on": "TaggerTagResource.resource = video_img.contentid AND video_img.tmplvarid = 19" }, "preview_portfolio": { "class": "modTemplateVarResource", "on": "TaggerTagResource.resource = preview_portfolio.contentid AND preview_portfolio.tmplvarid = 10" } }` &select=`{ "TaggerTagResource": "*", "NameTag": "NameTag.tag, NameTag.alias", "Posts": "Posts.id, Posts.pagetitle, Posts.description", "reviews_img": "reviews_img.value as reviews_img_tv", "video_img": "video_img.value as video_img_tv", "preview_portfolio": "preview_portfolio.value as preview_portfolio_tv" }` &where=`{ "NameTag.id": "[[*tags_tv]]" }` &sortby=TaggerTagResource.resource &sortdir=ASC &processTVs=1 &tvPrefix=`` &tpl=@FILE chunks/foundation/foundation_portfolio_row.tpl ]]
Sergey
prepareTVs правда тут не работает
Sergey
поэтому пришлось в чанке вот так:
Sergey
<div class="col-md-3 col-sm-4 col-xs-6 col-xxs-12"> <div class="photo"> {if $preview_portfolio_tv?} {var $preview_portfolio_tv = "/uploads/" ~ $preview_portfolio_tv} <img src="{$preview_portfolio_tv | phpthumbon:'w=225&h=185&zc=1'}"> {elseif $video_img_tv?} {$video_img_tv} <img src="{$video_img_tv | phpthumbon:'w=225&h=185&zc=1'}"> {else} {var $reviews_img_tv = "/uploads/" ~ $reviews_img_tv} <img src="{$reviews_img_tv | phpthumbon:'w=225&h=185&zc=1'}"> {/if} <div class="photo_caption text-center"> <p class="photo_text">{$pagetitle}</p> <a href="[[~[[+id]]]]" class="btn btn-default">Подробнее</a> </div> </div> </div>
Миша
а если в pdoResource класс запихать, то он только оттуда вытащит значения
Миша
верно понимаю
Василий
pdoResources - просто обёртка, для выполнения запросов в MySQL с помощью xPDO. Туда можно просто офигеть сколько всего запихать и получить в ответ
Миша
ага, значит я профукал)
Yaroslav
Попробуй использовать xtype = datefield
оффтоп: можно ли реализовать все сниппеты pdoTools через получение pdoTools как сервис-синглтон? (pr are welcome, но хотел сначала уточнить возможно ли это и будет ли init создавать нужные и правильные конфиги для каждого вызова сниппета?)
Василий
Но, на мой взгляд, лучше делать loadClass и new pdoTools()
Василий
Все сниппеты pdoTools как раз стараются инициализировать новый инстанс, потому что, пока до них там через парсер дойдёт очередь, может быть дофига параметров намешано
Василий
Рекурсивный парсер MODX - это с одной стороны очень круто, а с другой - источник постоянных непонятных косяков
Yaroslav
сложна
Василий
да просто - не парься про синглтоны и юзай новые инстансы каждый раз, и никаих проблем
Василий
в 2018 память экономить не нужно
Василий
ну, в разумных предалах =)
Yaroslav
в общем было задание профилировать сайт, результаты ресёрча показали что ттфб значительно увеличивается когда инстанцируются несколько экземпляров класса при использовании с тикетами (добываются ТВ)
Миша
А где можно схемупроверить, http://schemaviewer.dev.kenters.com не открывается((
Василий
ну так проблема в ТВ, как обычно
Yaroslav
то есть если на странице несколько вызовов сниппетов и каждый из них добывал твшки для тикетов в конструкторе
Миша
да я хочу со связями разбраться, что бы при удалении ресурса у меня чистилось
Василий
так-то, сайт сломался и Миша не понимает нифига
Yaroslav
еще jevix долго парсил мегабайт инлайн скриптов, но это индивидуальная проблема скорее всего)
Миша
аах)) не не так все норм)
Миша
не все просто еще разобрал
Василий
то есть если на странице несколько вызовов сниппетов и каждый из них добывал твшки для тикетов в конструкторе
Fenom очень быстро обрабатывает шаблоны, и при наличии прямых рук Revolution с ним просто летает. Это всё, что я могу сказать про отладку сегодня
Василий
dev.modx.pro еще могу предложить заценить - он еще далёк от завершения, но работает довольно быстро
Roma
Попробуй использовать xtype = datefield
я ламер( туповат вообщем
Евгений
подскажите скрипт альтернативу для ui Slider пжалста
Евгений
не могу вспомнить как он назывался, там еще контролы красные были
Евгений
вспомнил http://ionden.com/a/plugins/ion.rangeSlider/en.html
Roma
[[pdoResources? &tpl=year.tpl &includeTVs=year,marka &tvFilters = year=2017 ]] - чому з tvFilters може непрацювати?
Roma
ха) почему может неработать с tvFilters?)
Roma
все нашел) спасибо)
Миша
Я так понимаю, что оба варианта должны отрабатывать одинаково верно. но почему то с getOption не выводит по умолчанию
Anonymous
Yani
Мужики) С праздником!)))
Artem
Мужики) С праздником!)))
А как же военнообязанные дамы?
Ильхом
Ильхом
сенкс)
Dmytro
Yani
Мне повестка приходила )