Для разработчиков
[modExtra] Update таблиц своего компонента
Добрый день!
Все мы знаем, что MODX прекрасен мощью решений с помощью компонентов. Я, например, всегда отдаю заказчику сайт в виде компонента, содержащего нужные элементы, зависимости от других компонентов, инициализацию нужных опций и т.д. В этом мне всегда помогал modExtra.
Но вот в один прекрасный момент я задумался, как сделать пользовательские таблицы в своём компоненте таким образом, чтобы при апдейте компонента они были способны расширяться, да и вообще поддерживаться в актуальном состоянии.
Итак задача:
Все мы знаем, что MODX прекрасен мощью решений с помощью компонентов. Я, например, всегда отдаю заказчику сайт в виде компонента, содержащего нужные элементы, зависимости от других компонентов, инициализацию нужных опций и т.д. В этом мне всегда помогал modExtra.
Но вот в один прекрасный момент я задумался, как сделать пользовательские таблицы в своём компоненте таким образом, чтобы при апдейте компонента они были способны расширяться, да и вообще поддерживаться в актуальном состоянии.
Итак задача:
- У нас есть файл схемы mycomponent.mysql.schema.xml, который поставляется вместе с компонентом (или его новой версией) и содержит актуальную информацию о структуре пользовательских таблиц.
- У нас есть БД в которой может не быть наших таблиц (установка с нуля), а могут быть (как правильной, так и неправильной структуры).
Особенности метода xPDOObject::save() + транзакции
В продолжение вот этой темы опубликовал новую статью на хабре habrahabr.ru/post/265485/
Крайне настоятельно рекомендую к прочтению экспертам.
Крайне настоятельно рекомендую к прочтению экспертам.
Вызов окна MODx.Window на ExtJs
Как не надо расширять MODX-процессоры
В MODX-2.4.0 появился новый процессор updatefromelement.class.php by Argnist, пришедший на замену обычному процессору updatefromelement.php. Заменять non-classed процессоры конечно дело хорошее, но делать надо это крайне осторожно и обдуманно.
Сразу уточню, что этот процессор используется для обновления параметров элементов (типа шаблонов, сниппетов и т.п.)
Сразу уточню, что этот процессор используется для обновления параметров элементов (типа шаблонов, сниппетов и т.п.)
Не ставятся некоторые modx-пакеты (Ubuntu 14.04+)
В очередной раз после обновления modx наступил на грабли при установке msearch2 (иногда бывает и у других пакетов), возможно кому-то будет полезно:
Итак, имеем ubuntu 14.04+ и modx revo
при установке msearch2 процесс останавливается на Trying to download russian dictionary…
Суть проблемы в файле: /your_site/core/packages/msearch2-x.y.z-pl/modCategory/%hash%.resolve.dictionaries.resolver (стр. 62)
После создания нового объекта PclZip нет проверки его на null, а стоило бы, потому как в некоторых сборках PHP на ubuntu функция gzopen называется gzopen64, и в /core/xpdo/compression/pclzip.lib.php PHP радостно падает, так как о gzopen64 ему ничего не известно.
Итак, имеем ubuntu 14.04+ и modx revo
при установке msearch2 процесс останавливается на Trying to download russian dictionary…
Суть проблемы в файле: /your_site/core/packages/msearch2-x.y.z-pl/modCategory/%hash%.resolve.dictionaries.resolver (стр. 62)
После создания нового объекта PclZip нет проверки его на null, а стоило бы, потому как в некоторых сборках PHP на ubuntu функция gzopen называется gzopen64, и в /core/xpdo/compression/pclzip.lib.php PHP радостно падает, так как о gzopen64 ему ничего не известно.
Изменение размера шрифта панелей и меню в PhpStorm
Изменить свойства шрифта окна редактора проблем не составляет.
А вот как в ubuntu-подобных можно изменить, например, размер шрифта меню, вкладок и панелей.
1. Создать такой файл, дать ему любое имя и сохранить, например, в домашней директории
А вот как в ubuntu-подобных можно изменить, например, размер шрифта меню, вкладок и панелей.
1. Создать такой файл, дать ему любое имя и сохранить, например, в домашней директории
style "user-font"
{
font_name="Verdana 12"
}
widget_class "*" style "user-font"
2. Запустить PhpStorm GTK2_RC_FILES=путь/к/сохраненному/файлу путь/к/phpstorm.sh
Вот что получилось.Симпатичный вывод массивов
Может пригодится кому. В сниппетах при разработке часто по быстрому приходится просмотреть массив и использовать print_r. И сложно его разобрать.
Гораздо симпатичнее будет вывод, если обернуть его в пару строк:
echo "";
Гораздо симпатичнее будет вывод, если обернуть его в пару строк:
echo "<div style='font-size:9pt; color:#000; background:#fff; border:1px dashed #000;'>";
echo "<pre style='padding:10px;'>";
print_r($array);
echo "
";echo "";
Шаблон Uikit для Tickets
Набросал шаблон для Tickets на фреймворке Uikit.
Желание появилось по 2м причинам:
Желание появилось по 2м причинам:
- Uikit использую всё чаще
- Используются префиксы в классах во-избежании конфликтов с шаблонами
Увеличить размер имени шаблона.
Возникал необходимость задать длинное название шаблона превышающего ограничение в 50 символов. Можно ли это решить и как? Подскажите пожалуйста.
UiCMPGenerator дополнение для создания пакетов
Hi, написал тут свое дополнение для создания пакетов UiCMPGenerator. За основу взято дополнение CMPGenerator, но в моем прикручен графический интерфейс для создания зависимостей типа Композиционная (Composite) и Агрегирующая (Aggregate), а также можно расширять родные таблицы Modx-a.
Для работы требуется MODX Revolution 2.3.х
Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4
Для работы требуется MODX Revolution 2.3.х
Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4