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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
15 января 2013, 04:59
0
Ничего не нужно, всё уже сделано.

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

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

Фильтровать можно по всякому, хоть через getResources, хоть своим сниппетом. Только учти, что в getResources обязательно нужен параметр &showHidden=`1`.
15 января 2013, 04:42
0
Tickets быстрее и лучше по нескольким причинам:

1. Не чистят весь кэш сайта при обновлении.
2. Не забивают дерево ресурсов — удобнее работать.
3. Контент тикета автоматически фильтруется и типографируется Jevix.
14 января 2013, 22:48
0
На первый взгляд, всё ок — надо проверять.

Это только с полем address, или с другими так же?
14 января 2013, 20:24
0
Заказал чистый сайт на modx-test.com, поставил Tickets, он при установке стянул еще Jevix.

Всё на месте, можешь заценить s2116.modx-test.com/manager/
Логин s2116
Пароль IkluW2B78OK3
14 января 2013, 20:09
0
Однозначно что-то не то у тебя.

На Linode у меня был тариф 512 — всё летало, никаких утечек. Ubuntu 10.04.4, все пакеты из репозитория.
14 января 2013, 17:44
0
А сколько памяти на сервере то, и где этот сервер?

У меня ни разу такого не было, чтобы аж ssh переставал работать.
14 января 2013, 14:27
0
Вполне.

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

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

Например, вот это тоже Tickets.
14 января 2013, 14:25
0
Отправляй что угодно, и лови плагином по событию OnDocFormSave.

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

Ну а дальше всё просто — в плагине делай
$resource->setTVValue('key', $modx->stripTags($_POST['key']));
14 января 2013, 14:21
0
Ну тогда делай сниппетом.

А обработка показана в getTickets, смотри код. Уже добавил это по-умолчанию, в следующей версии будет.

Да и версия будет, скорее всего, сегодня.
14 января 2013, 12:57
0
Конечно, интегрирован и доступен как метод Tickets::dateFormat();

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

Выводи тикеты через getTickets и добавь там обработку дат — будет быстрее, чем вызов сниппета в чанке. Надо будет так сделать из коробки, кстати.
14 января 2013, 12:27
0
Сниппетом
[[!dateAgo?input=`[[+createdon]]`]]

Напряжно прямо в объект это вписывать — лишний тормоз будет.
14 января 2013, 07:55
0
Естественно, что работающие процессы отьедают себе память — зачем ей пустой простаивать?

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

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

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

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

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

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

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

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

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

В ридере всё выглядит точно так-же, как и на главной сайта.
12 января 2013, 10:25
0
Насколько я знаю, связанных селектбоксов в админке MODX вообще нет. Только самому дописывать.

Ну а в карточке товаров miniShop по-прежнему нет сложных ТВ, и уже не будет.
11 января 2013, 17:05
0
По умолчанию выбирается все записи из таблицы, значит их нужно ограничить.

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

Вот и всё.
Также можно приджойнить TicketsSection, чтобы выбирать названия и урлы на разделы.
11 января 2013, 16:11
0
Вот мой чанк из настроек профиля — там просто добавляется класс 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>
11 января 2013, 15:24
0
Нужно добавить эти ссылки самостоятельно.