Александр

Александр

С нами с 19 декабря 2015; Место в рейтинге пользователей: #19

excelConvertRule - Конвертация полей базы для импорта-экспорта с Excel

По работе приходиться с Excel подключаться к сайту на MODX и выгружать с него или загружать в него данные. Постепенно наработался лучший путь. В excelConvertRule редактируются правила конвертации колонки excel в колонку базы MODX. В модуле vba modx_main подготовлены функции LoadToBase для загрузки с excel в MODX и LoadToExcel обратно. В файле core/components/excelconvertrule/users_editor.xlsm, для примера, сделан редактор пользователей MODX. Используя этот пакет можно быстро сформировать нужную выгрузку(загрузку) из любых таблиц MODX.
Александр
16 октября 2020, 00:37
modx.pro
2
505
+5

[getTables] Компонент редактируемых таблиц на основе bootstrap и pdoTools

При написании компонентов для MODX много времени уходит на программирование редактируемых таблиц через extJs. У меня на это уходит каждый раз до 4 часов. Причем на совершенно однотипные таблицы. В конце концов мне это надоело и я решился написать свой компонент редактируемых таблиц на основе bootstrap и pdoTools— getTables! Сложность задачи я сильно недооценил и компонент сейчас выглядит и исполнен ужастно, но время на программирование таблиц с ним сократилось до 5 минут на простую и до часа на более сложную. Это сильно помогает и getTables я постоянно использую и потихоньку допиливаю. Сейчас на его основе сделано несколько компонентов, которые я хочу выложить в общий доступ. Ну и приходиться выкладывать и getTables, несмотря на не самую лучшую его реализацию.

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

Для примера вот реализация админки компонента вопросов-ответов gtsReview на getTables.

Александр
19 сентября 2020, 06:10
modx.pro
1
1 212
+14

Ограничиваем доступ в pdoMenu и Tickets через группы ресурсов

Через группы ресурсов MODX у меня сделано ограничение к разделам сайта. Но так как pdoMenu, по умолчанию, не смотрит в эти группы, то на сайте в меню были видны все разделы. Только в них зайти нельзя было. Наконец-то добрался это поправить. pdoMenu поддерживает добавление своих параметров запросов в SQL. После нескольких попыток, получилось убрать лишнее добавив в вызов pdoMenu:
Upd 21.03.2020 как оказалось в pdoMenu команда &checkPermissions=`list` выполняет нужные функции:
{'!pdoMenu' | snippet : [
    'checkPermissions'='list',
]}
Так же она работает для getTickets. Из нужного такой команды нет только для TicketLatest.
Под катом ограничение для TicketLatest и небольшой пример добавления редактирования групп ресурсов тикета в TicketForm.
Александр
21 марта 2020, 04:40
modx.pro
445
0

tEvent. Компонент регистрации на мероприятия. С редактором полей.

Добрый день, всем!
На каждый сайт, где мне приходилось ставить этот компонент, нужны были свои поля формы регистрации. Приходилось каждый раз править компонент по 2-3 часа. Это меня достало :-) и в новой версии я решил добавить редактор полей базы (таблицы и формы).
Код компонента далеко не оптимален и гуру просьба сильно не ругать :-).
Для желающих могу могу подготовить описание как и что сделано.
Описание компонента под катом.
Александр
08 марта 2020, 20:34
modx.pro
1
363
+14

Подзапросы для pdoTools

Добрый день всем! Мне понадобилось сделать сложные запросы в mysql и, так как уже привык к pdoTools, решил доработать его, чтоб с ним делать подзапросы. Извиняюсь, загружен работой и не хватило времени оттестировать все и расписать.
Вкратце под катом.
Александр
03 марта 2020, 20:02
modx.pro
2
733
-1

Использование Gitify для синхронизации тестового и рабочего сайта на Windows и с Openserver

У меня такая задача. На модкс частично перенесена система управления производством (Первоначально сделанная на Excel директором. Но excel тупит на больших объемах данных и синхронизация разных книг еще тот геморой). Регулярно на сайте что-то меняется. Сейчас, чтобы не мешать рабочему процессу фирмы, сделали тестовую копию сайта. Теперь желательно сделать так чтобы ее можно было быстро синхронизировать с рабочим сайтом.
Нужно чтоб с тестового сайта переносились изменения всех ресурсов, копировались все измененные файлы компонентов и переносилась структура таблиц компонентов без изменения данных. Еще таблицы с настройками желательно настроить чтоб копировались, но это можно и ручками.
Решил использовать Gitify. И заодно написать пример его использования. Начинаю установку прямо сейчас.
Александр
26 февраля 2020, 13:33
modx.pro
2
518
+3

getCacheSensitive обработчик кеша на основе getCache от Jason Coward

На сайте, который мне нужно оптимизировать, используется tagManager 2. Генерация страницы бренда на нем занимает от 3 до 6 секунд. Самый тяжелый элемент это фильтр товаров tmFilters от tagManager. Выполняется 4.5387252 секунды.
Напрашивается его закешировать. Для этого взял сниппет getCache от Jason Coward и его доработал, чтоб он перехватывал и кешировал js, стили, $_GET, $_POST от tmFilters.
Получился сниппет getCacheSensitive
Александр
08 декабря 2019, 19:38
modx.pro
442
+5

MODX 2.7.1-pl не открывает xml файлы компонентов.

Часто при разработке нужно по быстрому взглянуть какие названия у объектов компонентов. В MODX версии 2.7.1-pl файлы типа teaching.mysql.schema.xml перестали открываться в админке. Как поправить?
Александр
24 сентября 2019, 12:21
modx.pro
301
0

Почему не срабатывает 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?
Александр
19 сентября 2019, 23:27
modx.pro
274
0

[UserTest] - новая версия. Добавлено событие OnTestCalculate.

Если не устраивает стандартная логика расчета (по сумме баллов), то теперь в UserTest можно реализовать свою логику расчета. Для этого добавлено событие OnTestCalculate. На него можно создать свой плагин.
Под катом пример плагина UserTestCalculate.
Александр
09 апреля 2019, 17:36
modx.pro
2
539
+4