[pdoTools] 2.3.0 - Рефакторинг и стандарты
        Привет, друзья! Хочу представить вам новую версию pdoTools с важными изменениями.
Первым делом, весь код теперь соответствует стандарту PSR-2. Как бы я не любил табы, стандарт есть стандарт и пора уже его применять.
Вторым делом, по многочисленным просьбам заграничных товарищей, pdoTools больше не устанавливает дополнительные файлы в директорию core/model/modx/.
Я постарался сделать так, чтобы это ничего не сломало, и вы могли запускать класс как и раньше:
В Fenom добавлена пара модификаторов «по умолчанию». Ничего нового они не привносят, просто сокращают писанину.
Первый — это lexicon, который теперь можно использовать вот так:
Второй модификатор — url:
А раньше было так:
Следующие изменения касаются сниппетов.
В pdoSitemap изменён формат даты, теперь она выводится как ISO 8601.
А в pdoCrumbs, наконец-то, поменяны родные чанки, чтобы генерировать общепринятый список хлебных крошек в виде ul > li.
При установленном Bootstrap крошки теперь работают сразу из коробки.
Как видите, новая версия pdoTools старается лучше соответствовать стандартам и привносит изменения, которые нужно было сделать уже давно.
При обновлении не забудьте проверять работоспособность своих сайтов и если будут проблемы — пишите. Наше сообщество, понятно, уже работает на новой версии без проблем.
    
    
                                                                                
            Первым делом, весь код теперь соответствует стандарту PSR-2. Как бы я не любил табы, стандарт есть стандарт и пора уже его применять.
Вторым делом, по многочисленным просьбам заграничных товарищей, pdoTools больше не устанавливает дополнительные файлы в директорию core/model/modx/.
Я постарался сделать так, чтобы это ничего не сломало, и вы могли запускать класс как и раньше:
$pdo = $modx-getService('pdoTools');
$pdo->setConfig(array('param' => 'value'));
// или
$pdo = new pdoTools($modx, array('param' => 'value'));В Fenom добавлена пара модификаторов «по умолчанию». Ничего нового они не привносят, просто сокращают писанину.
Первый — это lexicon, который теперь можно использовать вот так:
{'string' | lexicon}
// или
{'string' | lexicon : ['key' => 'value'] : 'ru'}{$_modx->lexicon->load('en:core:default')}
{'action_err_nfs' | lexicon : ['id' => 25] : 'en'}Второй модификатор — url:
{10 | url}
// или
{10 | url : ['scheme' => 'full'] : ['param' => 'value']}http://test23.dev/container/document?param=value
А раньше было так:
{$_modx->lexicon('action_err_nfs', ['id' => 25], 'en')}
// и
{$_modx->makeUrl(10, ['scheme' => 'full'], ['param' => 'value'])}Следующие изменения касаются сниппетов.
В pdoSitemap изменён формат даты, теперь она выводится как ISO 8601.
А в pdoCrumbs, наконец-то, поменяны родные чанки, чтобы генерировать общепринятый список хлебных крошек в виде ul > li.
При установленном Bootstrap крошки теперь работают сразу из коробки.
Заключение
Как видите, новая версия pdoTools старается лучше соответствовать стандартам и привносит изменения, которые нужно было сделать уже давно.
При обновлении не забудьте проверять работоспособность своих сайтов и если будут проблемы — пишите. Наше сообщество, понятно, уже работает на новой версии без проблем.
Комментарии: 31
В Fenom добавлена пара модификаторов «по умолчанию». Ничего нового они не привносят, просто сокращают писанниу.Этого давно не хватало! Я безмерно рад этой, вроде бы, мелочи! Спасибо!
                Respect!
За
            
                    За
$row['date'] = date('c', $time);
                Заметка!
Проверьте пожалуйста дату хостинга или VDS/VPS
            
                    Проверьте пожалуйста дату хостинга или VDS/VPS
$row['date'] = date('c', $time);<lastmod>2016-01-02T23:36:21+05:00</lastmod>
                А как он должен выводить? Без таймзоны? Тогда это уже будет не ISO 8601… Вроде как…
ru.wikipedia.org/wiki/ISO_8601#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80.D1.8B
                    ru.wikipedia.org/wiki/ISO_8601#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80.D1.8B
                до 2.2.8 PdoTools Sitemap не выводил таймзон.
Заметка для пользователей а не PdoTools
                    Заметка для пользователей а не PdoTools
                Я бы сказал точнее… До pdoTools 2.3.0, pdoSitemap не выводил правильный формат даты для sitemap.xml.            
                    
                Не успел исправит уже ответ написали :D            
                    
                Активно работаю последние 2 дня с modx сайтами, включая fenom (в повседневной жизни пишу на матером PHP немного другие проекты) и вот чего мне не хватает, так это модификаторов в fenom, которые дублируют встроенные MODX фильтры (особенно когда старый код переносишь на fenom). Можно писать сниппеты и тд, конечно, но это накладно и лениво. Если не сильно противорчечит парадигме, плюсую за это улучшение (надеюсь руки дойдут портировать самостоятельно в видео pull request).
В остальном спасибо, работать сильно удобнее.
                    В остальном спасибо, работать сильно удобнее.
                Многое уже и так есть, только называется иначе. Если что, вот все модификаторы MODX, в которых добрая часть это if, else, then и прочее, что в Fenom называется тегами, а не модификаторами.
Единственное, что я вижу действительно нужного, это userinfo. И то, правильнее на мой взгляд, выбирать данные юзера сразу через join таблиц, а не отдельными запросами после.
Смотрите, чего не хватает, и шлите PR. В новой версии загрузка модификаторов не зря вынесена в отдельный метод.
            
                    Единственное, что я вижу действительно нужного, это userinfo. И то, правильнее на мой взгляд, выбирать данные юзера сразу через join таблиц, а не отдельными запросами после.
Смотрите, чего не хватает, и шлите PR. В новой версии загрузка модификаторов не зря вынесена в отдельный метод.
                Вот бы замену :ellipsis=`` которая киоиллицу понимает добавить…            
                    
                Truncate не подходит?            
                    
                Вот теперь сижу и думаю. КАК я мог его не заметить хотя 2 раза смотрел. Спасибо!            
                    
                Почему-то не работает. Другие, например upper/lower работают, truncate — нет(            
                    {'Привет, как дела?' | truncate : 10}Привет, ка...
Что именно не работает?
                Перепроверил — работает, но на других сайтах, на том где больше всего нужно — нет) Буду разбираться, спасибо!
В логах там
Может с этим связано.
                    В логах там
PHP warning: json_decode() expects parameter 1 to be string, array givenМожет с этим связано.
[[!officeAuth? &tplLogout=`@INLINE
    {{!ms2form?
        &tplCreate=`tpl.ms2form.create.journal`
        &tplUpdate=`tpl.ms2form.update.journal`
        &tplTagRow=`tpl.ms2form.tag.journal.row`
        &allowedFields=`parent,pagetitle,content,published,template,hidemenu,site,email,date_field,textarea0,textarea1,textarea2,textarea3,textfield0,textfield1,made_in`
        &requiredFields=`parent,pagetitle,content,published,template,site,email,textarea0,textarea1,textarea2,textarea3,textfield0,textfield1,made_in`
        &parent=`419`
        &tags=`0`
        &newTags=`0`
        &template=`20`
        &editor=`quill`
        &source=`6`
        &redirectPublished=`new`
    }}
    ` 
...
                Попроюуй не в INLINE вызывать снипет. А в отдельном чанке.            
                    
                Правильно подобное вообще не вызывать. Это какое-то злоупотребление @INLINE чанками.
Ну а так — Office тоже нужно обновить.
                    Ну а так — Office тоже нужно обновить.
                После обновления pdoTools до версии 2.3.0, стали выползать ошибки:
На сайте 2 источника файлов: «MS2Gallery Images» и «MS2 Images», с настройками по умолчанию.
Василий, с чем это может быть связано?
                    [2016-03-15 10:40:47] (ERROR @ /connectors/index.php) Unexpected token ':' in fcdd770d74671ddd20f42172bb6c1db3 line 1, near '{"w":' <- thereНа сайте 2 источника файлов: «MS2Gallery Images» и «MS2 Images», с настройками по умолчанию.
Василий, с чем это может быть связано?
                Поправил, обновись.            
                    
                Спасибо, все работает            
                    
                Вот блин, а я уже час ковыряюсь, думаю и где это я в компоненте косячу своем)))            
                    
                Спасибо за обновы, вопрос по pdoResources + migx. Вопрос вот какой:
Есть TV типа MigX. В БД modx_site_tmplvar_contentvalues.value данные хранятся в таком формате строки
Т.е. если делать обычную выборку
                    Есть TV типа MigX. В БД modx_site_tmplvar_contentvalues.value данные хранятся в таком формате строки
[{"MIGX_id":"1","number":"AAA"},{"MIGX_id":"2","number":"BBB"}]Т.е. если делать обычную выборку
[[!pdoResources?
	&parents=`9`
        &showHidden=`1`
	&includeTVList=`tvName`
	&showUnpublished=`1`
	&tpl=`pT`
	&processTVs=`1`
	&where=`{
	    "tvName:LIKE":"%\"number\":\"3\"%"
	}`
]]
                Лучше для такой выборки по возможности использовать не migx, а listbox-multiple (Список (множественный выбор).
А для фильтрации что то вроде
                    А для фильтрации что то вроде
&where=`{"tvName:RLIKE":"(\\|?)3(\\|?)"}`
                К сожалению, listbox-multiple не может полностью решить мою задачу и migx — вынужденная мера. Да и ваш where ничем не лучше моего. Чуть выше я указал структуру в качестве примера. На самом деле структура гораздо сложнее. Вопрос остается актуальным.            
                    
                Эм, ну pdoResources как бы не занимается фильтрацией результатов, он только формирует запрос к бд и оборачивает результаты выборки шаблоном. А в БД migx поля хранятся в виде JSON в одном поле, так что кроме LIKE и RLIKE фильтровать тут особо и нечем.
P.S.: Возможно, надо копать в сторону MIGXdb, там данные хранятся в отдельной таблице и вариантов фильтрации уже больше.
                    P.S.: Возможно, надо копать в сторону MIGXdb, там данные хранятся в отдельной таблице и вариантов фильтрации уже больше.
                Отличное обновление для фенома, еще бы можно было бы до $_modx->resource покороче достучаться, было бы просто супер)
Т.е. вместо {$_modx->resource.pagetitle} хочется иметь что-то вроде {$_pagetitle} или {$_res['pagetitle']}
                    Т.е. вместо {$_modx->resource.pagetitle} хочется иметь что-то вроде {$_pagetitle} или {$_res['pagetitle']}
                Стоит отметить, что при обновлении старой версии pdoTools может поломаться верстка хлебных крошек на сайте + документация по чанкам pdoCrumbs устарела.            
                    
                Стоит прочитать заметку:
Документацию ты можешь обновить самостоятельно — просто пришли исправления через GitHub.
                    А в pdoCrumbs, наконец-то, поменяны родные чанки, чтобы генерировать общепринятый список хлебных крошек в виде ul > li.
Документацию ты можешь обновить самостоятельно — просто пришли исправления через GitHub.
                К сожалению, с гитхабом пока на Вы — все руки не доходят.            
                    
                Доброго дня! Если я ни чего не путаю, то лексиконы вызываемые феномом отвалились не знаю после какого обновления pdoTools. Вот не пойму, в контексте отличным от web или независимо от этого. 
Вдруг у кого то есть такая же проблема?
                    Вдруг у кого то есть такая же проблема?
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    
            
 
             
                    
                    
                









