For developers

Add entry

ExtJs для новичков. Админка загрузилась. ч.1

В прошлой статье мы попытались понять как формируется интерфейс админки на ExtJs. Теперь давайте попробуем разобраться, что можно сделать интерфейсом, который нам нарисовал ExtJs.
В ExtJs за каждым элементом интерфейса (панель, окно, таблица, кнопка, элемент формы) стоит специальный объект, называемый компонентом. Он отвечает за управление элементом интерфейса — создание, отображение, скрытие, удаление. В админке MODX все элементы «являются» компонентами ExtJs, за исключением верхнего меню. Разницу можно увидеть, если заглянуть в исходный код страницы — у меню простая и привычная HTML структура (ul > li > a), а если глянем на элемент, созданный ExtJs, то увидим, что он обернут дополнительными тегами. Например, вот код кнопки тулбара дерева ресурсов
<span unselectable="on" class="x-btn x-btn-small x-btn-icon-small-left tree-new-static-resource x-btn-noicon" id="ext-comp-1062" style="">
    <em class="">
         <button type="button" id="ext-gen139" class=" x-btn-text" style=""> </button>
    </em>
</span>
02 november 2015, 10:32    Сергей Шлоков
15    1282    11 +8

Принцип загрузки админки на ExtJs. Для новичков

В этой статье хочу немного развеять тучи над механизмом работы админки, логика которой основана на ExtJs. Для людей, далеких от php и javascript, это будет набором непонятных слов. А вот те, кого уже не пугают такие термины как ООП, наследование, конструкторы, поймут о чем я тут буду говорить. Это не курс. Я просто попытаюсь систематизировать информацию для понимания общего принципа работы админки.
В сети достаточно много различной информации об ExtJs. Есть отличный курс Василия, по которому многие из нас учились делать свои дополнения. В нем он разбирает тему создания различных ExtJs объектов. Я не буду повторять, то что у него уже разобрано, а постараюсь на простом языке сделать короткую выжимку. Начнем.
01 november 2015, 13:11    Сергей Шлоков
22    1190    20 +16

Синхронизация с 1с


Нужны добровольцы с разными версиями выгрузки из 1с в формате commerceML 2
20 october 2015, 13:04    Александр Рахимов
0    1264    20 +2

[modExtra] Update таблиц своего компонента

Добрый день!
Все мы знаем, что MODX прекрасен мощью решений с помощью компонентов. Я, например, всегда отдаю заказчику сайт в виде компонента, содержащего нужные элементы, зависимости от других компонентов, инициализацию нужных опций и т.д. В этом мне всегда помогал modExtra.
Но вот в один прекрасный момент я задумался, как сделать пользовательские таблицы в своём компоненте таким образом, чтобы при апдейте компонента они были способны расширяться, да и вообще поддерживаться в актуальном состоянии.
Итак задача:
  • У нас есть файл схемы mycomponent.mysql.schema.xml, который поставляется вместе с компонентом (или его новой версией) и содержит актуальную информацию о структуре пользовательских таблиц.
  • У нас есть БД в которой может не быть наших таблиц (установка с нуля), а могут быть (как правильной, так и неправильной структуры).
Цель: добиться идентичности схемы и реальных таблиц для нормальной работы компонента.
01 september 2015, 13:53    Михаил Малых
13    725    12 +13

Особенности метода xPDOObject::save() + транзакции

В продолжение вот этой темы опубликовал новую статью на хабре habrahabr.ru/post/265485/
Крайне настоятельно рекомендую к прочтению экспертам.
26 august 2015, 18:08    Николай Ланец
0    432    2 +8

Вызов окна MODx.Window на ExtJs

Решил разобраться, почему криво работает вызов окна MODx.Window при разработке в админке, используя modExtra. Проблема в следующем — при первом вызове окно открывается в нормальном виде

При последующих вызовах получаю такое окно

Честно говоря, я не понимаю, почему происходит такая фигня.
24 august 2015, 18:11    Сергей Шлоков
0    873    24 0

Как не надо расширять MODX-процессоры

В MODX-2.4.0 появился новый процессор updatefromelement.class.php by Argnist, пришедший на замену обычному процессору updatefromelement.php. Заменять non-classed процессоры конечно дело хорошее, но делать надо это крайне осторожно и обдуманно.

Сразу уточню, что этот процессор используется для обновления параметров элементов (типа шаблонов, сниппетов и т.п.)
22 august 2015, 17:18    Николай Ланец
7    2104    22 +10

Не ставятся некоторые 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 ему ничего не известно.
05 august 2015, 22:18    Кирилл
0    593    9 +2

Изменение размера шрифта панелей и меню в PhpStorm

Изменить свойства шрифта окна редактора проблем не составляет.
А вот как в ubuntu-подобных можно изменить, например, размер шрифта меню, вкладок и панелей.

1. Создать такой файл, дать ему любое имя и сохранить, например, в домашней директории

style "user-font" 
{
       font_name="Verdana 12" 
}
widget_class "*" style "user-font"
2. Запустить PhpStorm

GTK2_RC_FILES=путь/к/сохраненному/файлу путь/к/phpstorm.sh
Вот что получилось.

19 june 2015, 18:18    Андрей Иванов
0    3368    2 -1

Симпатичный вывод массивов

Может пригодится кому. В сниппетах при разработке часто по быстрому приходится просмотреть массив и использовать print_r. И сложно его разобрать.
Гораздо симпатичнее будет вывод, если обернуть его в пару строк:
echo "<div style='font-size:9pt; color:#000; background:#fff; border:1px dashed #000;'>";
echo "<pre style='padding:10px;'>";
print_r($array);
echo "
";
echo "";
01 may 2015, 02:19    Стас
0    348    0 0