Александр Туниеков
С нами с 19 декабря 2015; Место в рейтинге пользователей: #11excelConvertRule - Конвертация полей базы для импорта-экспорта с Excel
По работе приходиться с Excel подключаться к сайту на MODX и выгружать с него или загружать в него данные. Постепенно наработался лучший путь. В excelConvertRule редактируются правила конвертации колонки excel в колонку базы MODX. В модуле vba modx_main подготовлены функции LoadToBase для загрузки с excel в MODX и LoadToExcel обратно. В файле core/components/excelconvertrule/users_editor.xlsm, для примера, сделан редактор пользователей MODX. Используя этот пакет можно быстро сформировать нужную выгрузку(загрузку) из любых таблиц MODX.
[getTables] Компонент редактируемых таблиц на основе bootstrap и pdoTools
При написании компонентов для MODX много времени уходит на программирование редактируемых таблиц через extJs. У меня на это уходит каждый раз до 4 часов. Причем на совершенно однотипные таблицы. В конце концов мне это надоело и я решился написать свой компонент редактируемых таблиц на основе bootstrap и pdoTools— getTables! Сложность задачи я сильно недооценил и компонент сейчас выглядит и исполнен ужастно, но время на программирование таблиц с ним сократилось до 5 минут на простую и до часа на более сложную. Это сильно помогает и getTables я постоянно использую и потихоньку допиливаю. Сейчас на его основе сделано несколько компонентов, которые я хочу выложить в общий доступ. Ну и приходиться выкладывать и getTables, несмотря на не самую лучшую его реализацию.
Есть, конечно, замечательный компонент MIGX, но чтобы его использовать на фронте нужно вытаскивать на фронт extJs ради пары табличек. А bootstrap у меня везде используется.
Для примера вот реализация админки компонента вопросов-ответов gtsReview на getTables.

Есть, конечно, замечательный компонент MIGX, но чтобы его использовать на фронте нужно вытаскивать на фронт extJs ради пары табличек. А bootstrap у меня везде используется.
Для примера вот реализация админки компонента вопросов-ответов gtsReview на getTables.

Ограничиваем доступ в pdoMenu и Tickets через группы ресурсов
Через группы ресурсов MODX у меня сделано ограничение к разделам сайта. Но так как pdoMenu, по умолчанию, не смотрит в эти группы, то на сайте в меню были видны все разделы. Только в них зайти нельзя было. Наконец-то добрался это поправить. pdoMenu поддерживает добавление своих параметров запросов в SQL. После нескольких попыток, получилось убрать лишнее добавив в вызов pdoMenu:
Upd 21.03.2020 как оказалось в pdoMenu команда &checkPermissions=`list` выполняет нужные функции:
Под катом ограничение для TicketLatest и небольшой пример добавления редактирования групп ресурсов тикета в TicketForm.
Upd 21.03.2020 как оказалось в pdoMenu команда &checkPermissions=`list` выполняет нужные функции:
{'!pdoMenu' | snippet : [
'checkPermissions'='list',
]}
Так же она работает для getTickets. Из нужного такой команды нет только для TicketLatest.Под катом ограничение для TicketLatest и небольшой пример добавления редактирования групп ресурсов тикета в TicketForm.
tEvent. Компонент регистрации на мероприятия. С редактором полей.
Добрый день, всем!
На каждый сайт, где мне приходилось ставить этот компонент, нужны были свои поля формы регистрации. Приходилось каждый раз править компонент по 2-3 часа. Это меня достало :-) и в новой версии я решил добавить редактор полей базы (таблицы и формы).
Код компонента далеко не оптимален и гуру просьба сильно не ругать :-).
Для желающих могу могу подготовить описание как и что сделано.
Описание компонента под катом.
На каждый сайт, где мне приходилось ставить этот компонент, нужны были свои поля формы регистрации. Приходилось каждый раз править компонент по 2-3 часа. Это меня достало :-) и в новой версии я решил добавить редактор полей базы (таблицы и формы).
Код компонента далеко не оптимален и гуру просьба сильно не ругать :-).
Для желающих могу могу подготовить описание как и что сделано.
Описание компонента под катом.
Подзапросы для pdoTools
Добрый день всем! Мне понадобилось сделать сложные запросы в mysql и, так как уже привык к pdoTools, решил доработать его, чтоб с ним делать подзапросы. Извиняюсь, загружен работой и не хватило времени оттестировать все и расписать.
Вкратце под катом.
Вкратце под катом.
Использование Gitify для синхронизации тестового и рабочего сайта на Windows и с Openserver
У меня такая задача. На модкс частично перенесена система управления производством (Первоначально сделанная на Excel директором. Но excel тупит на больших объемах данных и синхронизация разных книг еще тот геморой). Регулярно на сайте что-то меняется. Сейчас, чтобы не мешать рабочему процессу фирмы, сделали тестовую копию сайта. Теперь желательно сделать так чтобы ее можно было быстро синхронизировать с рабочим сайтом.
Нужно чтоб с тестового сайта переносились изменения всех ресурсов, копировались все измененные файлы компонентов и переносилась структура таблиц компонентов без изменения данных. Еще таблицы с настройками желательно настроить чтоб копировались, но это можно и ручками.
Решил использовать Gitify. И заодно написать пример его использования. Начинаю установку прямо сейчас.
Нужно чтоб с тестового сайта переносились изменения всех ресурсов, копировались все измененные файлы компонентов и переносилась структура таблиц компонентов без изменения данных. Еще таблицы с настройками желательно настроить чтоб копировались, но это можно и ручками.
Решил использовать Gitify. И заодно написать пример его использования. Начинаю установку прямо сейчас.
getCacheSensitive обработчик кеша на основе getCache от Jason Coward
На сайте, который мне нужно оптимизировать, используется tagManager 2. Генерация страницы бренда на нем занимает от 3 до 6 секунд. Самый тяжелый элемент это фильтр товаров tmFilters от tagManager. Выполняется 4.5387252 секунды.
Напрашивается его закешировать. Для этого взял сниппет getCache от Jason Coward и его доработал, чтоб он перехватывал и кешировал js, стили, $_GET, $_POST от tmFilters.
Получился сниппет getCacheSensitive
Напрашивается его закешировать. Для этого взял сниппет getCache от Jason Coward и его доработал, чтоб он перехватывал и кешировал js, стили, $_GET, $_POST от tmFilters.
Получился сниппет getCacheSensitive
MODX 2.7.1-pl не открывает xml файлы компонентов.
Часто при разработке нужно по быстрому взглянуть какие названия у объектов компонентов. В MODX версии 2.7.1-pl файлы типа teaching.mysql.schema.xml перестали открываться в админке. Как поправить?
Почему не срабатывает select на modResource?
В консоле пишу код
<?php
$c = $modx->newQuery('modResource');
$c->select('`modResource`.`id`,`modResource`.`pagetitle`');
$c->prepare(); echo $c->toSQL();
$data = $modx->getCollection('modResource',$c);
foreach($data as $v){
echo "<pre>".print_r($v->toArray(),1)."</pre>";
}
Получаю выводSELECT `modResource`.`id`, `modResource`.`pagetitle` FROM `modx_site_content` AS `modResource`
Array
(
[id] => 1
[type] => 0
[contentType] => text/html
[pagetitle] => Главная
[longtitle] => Поздравляем!
[description] =>
[alias] => index
[alias_visible] => 1
[link_attributes] =>
[published] => 1
[pub_date] => 0
...
В запросе написано получать только id и pagetitle. В SQL только id и pagetitle. Откуда в результатах все поля modResource? [UserTest] - новая версия. Добавлено событие OnTestCalculate.
Если не устраивает стандартная логика расчета (по сумме баллов), то теперь в UserTest можно реализовать свою логику расчета. Для этого добавлено событие OnTestCalculate. На него можно создать свой плагин.
Под катом пример плагина UserTestCalculate.
Под катом пример плагина UserTestCalculate.