Александр

Александр

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

Ограничиваем доступ в 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
223
0

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

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

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

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

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

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

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

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

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

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

[UserTest] - новая версия

Компонент UserTest потихоньку совершенствуется. В новой версии добавлены функции
  1. Сделаны отдельные таблицы вопросов и результатов теста. Их теперь можно прикреплять к нескольким тестам одновременно. Теперь не нужно делать кучу дубликатов вопросов и результатов.
  2. Управление порядком ответов и вывод ответов в случайном порядке.
  3. Валидация ответов на вопрос. Если стоит галочка «ответ обязателен», пользователь должен будет ответить на вопрос прежде чем перейти к следующим вопросам.
  4. Очистка приглашений.
  5. Крон оповещения о непройденном тесте для приглашенного пользователя.
  6. При переходе на новую страницу теста скрол в начало страницы.
Более подробно в инструкции Инструкция UserTest 4.0.3.docx
Александр
31 марта 2019, 14:10
modx.pro
1
449
+3

Как зашифровать компонент на основе modExtra?

Мне инструкцию прислали

Инструкция:
1 В пакет нужно добавить этот ресолвер gist.github.com/bezumkin/52b4627783e22775b969aa479c281121
2 В корень директории core компонента этот класс gist.github.com/bezumkin/7eb7b508e033f04ea6ab5769c1e74c52
3 И поменять скрипт сборки в 2х местах gist.github.com/bezumkin/9d17b0bf9e3271987816c32906ed357c
4 Первый кусок до // — в начале, сразу после registerNamespace, а второй кусок в конце, перед pack()

По пункту 2 уточнить в UserTest\core\ или в UserTest\core\components\usertest?
Особо не понятные пункты 3, 4. Не понятно что и куда пихать в build.transport.php.
Александр
31 марта 2019, 08:36
modx.pro
3
322
0