Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
27 июля 2017, 11:38
0
Исправил. Проверил на своих сайтах, всё работает.
Спасибо за багтестинг!
Сергей Шлоков
27 июля 2017, 11:21
0
Проверим. Пока отключил обновление. На тестовом сайте всё гуд (см. картинку в топике).
Сергей Шлоков
27 июля 2017, 08:24
+1
Тогда неплохо было бы примечание повесить — мол возможны проблемы при деинсталяции и удалении выделенных пакетов.
Сергей Шлоков
27 июля 2017, 07:06
0
Одно лечат, другое колечат.

Походу никто не пользуется деинсталяцией пакетов. В том числе тестировщики. Видимо анахронизм. В MODX 2.5.7 деинсталлировать пакет не получится (по крайней мере на MODHOST.PRO) —
Консоль запущена...
Поиск пакета с подписью: ace-1.6.5-pl
Пакет найден. Подготовка к деинсталляции.
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Problem instantiating object from vehicle
Recoverable error: Object of class xPDOObjectVehicle could not be converted to string
Ошибка при деинсталляции пакета с подписью: Object
Сергей Шлоков
26 июля 2017, 20:36
+1
Это уже есть. Для каждой кнопки можно свою месагу прописать или для всех одну общую.
Сергей Шлоков
26 июля 2017, 20:31
+1
Уже сделал, там делов-то. На каждую кнопку (Установить, Деинсталлировать, Переустановить, Обновить, Проверить, Удалить, Детали) теперь можно повесить запрет.
Пока в простом варианте. А там, будет время, может и UI присабачу. Щас погоняю и выложу.
Сергей Шлоков
26 июля 2017, 20:23
+1
Хорошая идея. Заберу себе для AdminTools, если ты не против. :)
Сергей Шлоков
26 июля 2017, 09:59
+1
Проще самому настроить уведомлялку. Рецепт: взять системный процессор, чуть взболтать и залить в cron. По желанию можно добавить немного modHelpers для вкуса.
<?php
$response = processor('workspace/packages/getlist', ['limit' => 0]);
$result = json_decode($response->response, true);
if ($result['success']) {
    $packages = $result['results'];
    $updateable = array();
    foreach ($packages as $package) {
        if (!empty($package['updateable'])) {
            $updateable[] = $package['signature'];
        }
    }
    if ($updateable) {
        $content= "<p>Для следующих пакетов доступны обновления:<p>";
        $content.= '<ul><li>' . implode('</li><li>',$updateable) . '<ul>';
        // Уведомляем администратора (через библиотеку modHelpers)
        email_user('admin', 'Доступны обновления', $content);
    }
}
Сергей Шлоков
25 июля 2017, 20:39
+2
Нужно получить API ключ Гугл календаря. Как это сделать указано в ссылке в ошибке — «Specify a googleCalendarApiKey. See fullcalendar.io/docs/google_calendar/».
Сергей Шлоков
25 июля 2017, 07:17
+1
Сессии здесь совершенно не причем. Читайте мой комментарий выше.
Сергей Шлоков
25 июля 2017, 07:16
+1
Вы сами пишете код или откуда-то просто копируете? Вы понимаете, что эта конструкция значит?
require dirname(dirname(__FILE__)).'/index.php';
Она значит — подняться на одну директорию выше текущего файла и там найти файл index.php. PHP ищет этот файл в директории elements и не находит. Об этом и сообщается в ошибке. Файл index.php находится в корне. Поэтому, чтобы его подключить, нужно ещё 4 раза вызвать функцию dirname().
Сергей Шлоков
25 июля 2017, 06:57
+1
Чтобы вызвать Гугл календарь, его нужно сначала настроить. Об этом и сообщается в ошибке. Проверить можно на демосайте.
Сергей Шлоков
24 июля 2017, 10:14
+2
Делается это с помощью системной настройки log_level
log_level = 3 // info level
После этого в журнал ошибок будет записан контент, в котором возникла ошибка. Единственное неудобство — так как уровень логирования изменился, то в журнал попадут все ошибки, ворнинги и информационные сообщения. Поэтому может получиться большое полотенце.

Я сделал PR, чтобы проблемный контент с ошибкой писался в лог на диске. Думаю, это значительно упростит отладку. Теперь остается ждать — примет ли его Василий и когда.
Сергей Шлоков
23 июля 2017, 10:59
0
ХЗ.Щас проверить не могу, идем с детьми в зоопарк. Ещё попробуй вместо children() вызвать так
$.php.children();
Может Василий добавил модификатор Fenom с таким же именем и он перебивает php функцию.
Сергей Шлоков
23 июля 2017, 10:39
0
Странно. Я бы даже сказал, быть такого не может. Что-то у тебя глючит.
Попробуй вывести ресурсы конкретной категории
{print_str(children($id))} // Подставь вместо $id айди категории, например, главной
Сергей Шлоков
23 июля 2017, 09:55
+2
Пример с использованием библиотеки modHelpers
// Дочерние элементы текущего ресурса
{var $children = children($_modx->resource.id)}
{if $children && resource_exists(['id:IN' => $children, 'isfolder' => 1])}
    Есть категории
{else}
    Нет категорий
{/if}
Сергей Шлоков
20 июля 2017, 21:28
0
event.preventDefault() отменяет стандартное действие, т.е. в твоем обработчике отменится сабмит формы. Но если на событие навешано несколько обработчиков, то они все сработают. Т.е. в другом обработчике события submit форма засобмитится. Чтобы отменить остальные обработчики, нужно добавить event.stopImmediatePropagation().

Но в данном случае, я бы подебажил, чтобы разобраться, почему не работает стандартный функционал ajaxForm — в файле default.js проверил бы глобальную переменную afValidated.
Сергей Шлоков
20 июля 2017, 16:41
0
Предположу, что скрипт с кодом валидации подключается после скрипта ajaxForm.