Василий Наумкин

Василий Наумкин

Был в сети 10 июня 2026, 17:44
Заказы не принимаю
Ничего не нужно, всё уже сделано.

Юзер должен обратиться к странице создания тикета с параметром ?tid=idтикета, а менеджер редактирует из админки.

Ссылку для редактирования можно показывать вот так — увидит её только автор:
[[+modx.user.id:is=`[[*createdby]]`:then=`
	<a href="[[~15]]?tid=[[*id]]">Изменить тикет</a>
`:else=``]]
Отправляй что угодно, и лови плагином по событию OnDocFormSave.

Создай шаблон, назначь его в системных настройках дефолтным для новых тикетов, затем прикрути к нему нужные ТВ.

Ну а дальше всё просто — в плагине делай
$resource->setTVValue('key', $modx->stripTags($_POST['key']));
Конечно, интегрирован и доступен как метод Tickets::dateFormat();

Но не засунут прям в класс Ticket, то есть, через getResources такого поля не будет. Можно сделать даже так, но я посчитал это лишней нагрузкой.

Выводи тикеты через getTickets и добавь там обработку дат — будет быстрее, чем вызов сниппета в чанке. Надо будет так сделать из коробки, кстати.
Естественно, что работающие процессы отьедают себе память — зачем ей пустой простаивать?

Когда память на сервере заканчивается, он что — падает, глючит, виснет? Или работает как надо, просто показывая, что вся память занята?

Если второе — волноваться не о чем, если первое — попробуй добавить памяти на сервер (если можно) или перезапускать процесс раз в сутки.

У меня на linode 768 ОЗУ, только 200 из них обычно свободно.
Во первых: при оформлении вопросов нужно использовать тег code, чтобы мне не пришлось потом исправлять.

Во-вторых: зачем вызов getPage? Нужно в две колонки и с постраничной навигацией? Если да, то так не выйдет. нужно разбивать на колонки через CSS или Javascript.

Если постраничная навигация не нужна — можно просто сделать 2 вызова getResources.

Ну или самый сложный вариант — написать свой сниппет, выбирающий ресурсы и раскладывающий их в 2 плейсхолдера, которые уже указывать в колонках.
Да, Firefox как-то странно себя ведёт. Отправляет ajax запрос и следом переходит на скрипт работы с комментарием, несмотря на false, который возвращает форма.

Скрипт, конечно, выдаёт запрет доступа, ибо его вызывают без нужных параметров.

Добавил return false прямо на кнопки формы — заработало. Сейчас пишу из Firefox, прошу протестировать у себя.

P.S. Introtext появляется, если использовать тег cut, о чем написано справа при создании новой заметки. Только никто не читает и не использует. Сравни, как выглядят мои заметки в ридере, и большинство остальных.

В ридере всё выглядит точно так-же, как и на главной сайта.
По умолчанию выбирается все записи из таблицы, значит их нужно ограничить.

Нам подойдёт ограничение по классу, автору и статусу:
$where = array(
    'Ticket.class_key' => 'Ticket'
    ,'Ticket.published' => 1
    ,'Ticket.deleted' => 0
);
if (!empty($_REQUEST['uid'])) {
    $where['Ticket.createdby'] = intval($_REQUEST['uid']);
}

Вот и всё.
Также можно приджойнить TicketsSection, чтобы выбирать названия и урлы на разделы.
Вот мой чанк из настроек профиля — там просто добавляется класс disabled, если выставлен плейсхолдер с провайдером…

<div class="alert alert-block ">
    <div class="row">
        <div class="span4">Пожалуйста, привяжите эти сервисы к своей учетной записи при помощи <b>HybridAuth</b>.</div>
        <div class="span3">
            <a href="[[+login_url]]&provider=Yandex" class="srv yandex [[+yandex.provider:isnot=``:then=`disabled`:else=``]]" title='Яндекс'></a>
             
            <a href="[[+login_url]]&provider=Google" class="srv google [[+google.provider:isnot=``:then=`disabled`:else=``]]" title='Google'></a>
             
            <a href="[[+login_url]]&provider=Twitter" class="srv twitter [[+twitter.provider:isnot=``:then=`disabled`:else=``]]" title='Twitter'></a>
             
            <a href="[[+login_url]]&provider=Facebook" class="srv facebook [[+facebook.provider:isnot=``:then=`disabled`:else=``]]" title="Facebook"></a>
             
            <a href="[[+login_url]]&provider=Vkontakte" class="srv vkontakte [[+vkontakte.provider:isnot=``:then=`disabled`:else=``]]" title="Вконтакте"></a>
        </div>
    </div>
</div>