11 января 2017, 12:01 Когда активен плагин — все отлично прописывается. Но как только я пытаюсь программно сменить статус на Закрыт, он все равно прописывает как было до этого. Для автора обращения вывожу кнопку «Закрыть обращение» при нажатии на которую происходит закрытие обращения, так вот статус меняется на 0-Закрыт но когда страница загружается стоит уже 1 — открыт, как было до этого. Код кнопки: //================================================= $ticket = $modx->resource; $ticketID = $ticket->get("id"); $status = $ticket->getTVValue('Status'); $user=$modx->getUser(); //Смотрим а обладает ли пользователь правами закрывать обращения (админы или сам создатель) if ($ticket->get("createdby")==$user->get("id")){$isRules=1;}else{$isRules=0;} if (isset($_POST["closeTicket"])){ if ($status==0){ echo "Обращение уже было закрыто!"; }else { //Смотрим а обладает ли пользователь правами закрывать обращения (админы или сам создатель) if ($isRules=1){ //Оставляем комментарий (для этого получаем ссылку на ветку) $thread = $modx->getObject('TicketThread', array('resource' => $ticketID)); $threadID = $thread->get('id'); $comment = $modx->newObject('TicketComment'); $comment->set('thread', $threadID); $comment->set('text', 'Пользователь '.$user->get('username').' закрыл данное обращение.'); $comment->set('raw', 'Пользователь '.$user->get('username').' закрыл данное обращение.'); $comment->set('name', 'Оповещение системы'); $comment->save(); $modx->resource->setTVValue('Status',0); $modx->resource->set('status', 0); echo $modx->resource->get('status'); $modx->resource->save(); $modx->resource->clearCache(); echo "<div class='alert alert-success' role='alert'>Данное обращение было закрыто пользователем ".$user->get('username')."!</div>"; } } } else{ //Если не нажимали на кнопку показываем форму (если пользователь - автор Обращения) if (($isRules=1) and ($status!=0)){ echo " <div class=\"panel panel-default\" id=\"closeTicketPanel\"> <div class=\"panel-body\"> <form method=\"post\" action=\"[[~[[*id]]]]\" name=\"closeTicketForm\"> <input type=\"hidden\" name=\"ticketId\" value=\"[[*id]]\" /> <input type=\"submit\" name=\"closeTicket\" id=\"closeTicket\" value=\"Закрыть обращение\" /> </form> </div> </div> "; } } Вопросы / Tickets и дополнительные поля site_content 2 0
11 января 2017, 11:58 Код плагина: <?php switch ($modx->event->name) { case 'OnMODXInit': // Загружаем наше поле в модель ресурса $modx->loadClass('modResource'); $modx->map['modResource']['fields']['status'] = '0'; $modx->map['modResource']['fieldMeta']['status'] = array( 'dbtype' => 'tinyint', 'precision' => 1, 'phptype' => 'integer', 'null' => false, 'default' => '0', ); $modx->map['modResource']['fields']['prior'] = '1'; $modx->map['modResource']['fieldMeta']['prior'] = array( 'dbtype' => 'tinyint', 'precision' => 1, 'phptype' => 'integer', 'null' => false, 'default' => '1', ); break; case 'OnDocFormSave': // Сохраняем ТВ в поле таблицы ресурса $status=$resource->getTVValue('Status'); $prior=$resource->getTVValue('prior'); if (isset($status)) {$resource->set('status',$status);} if (isset($prior)) {$resource->set('prior', $prior);} $resource->save(); break; } Вопросы / Tickets и дополнительные поля site_content 2 0
08 декабря 2016, 14:08 Может кому то будет полезным, решил задачу путем создания пустышки чанка формы оставления комментария и указании его если статус = 0 (закрыт) [[!*Status:is=`0`:then=`[[!TicketComments? &depth=`5` &tplCommentForm=`noTicketNewCommentForm`]]`:else=`[[!TicketComments? &depth=`5`]]`]] Вопросы / Запретить писать новые комментарии 9 +1 1
03 сентября 2015, 17:52 До этого пользовался Properties но с фильтром так и оставалась проблема. в сниппете обходил и сверял с нужным значением и если подходило под условие выводил… Данную статью bezumkin.ru/sections/tips_and_tricks/657/ читал но так и не пойму есть ли у кого уже нароботки по фильтрации тикетов по этим полям или нет Вопросы / Доска объявлений, Tickets или MigxDb.. как быть 4 0
13 июня 2015, 09:55 Проверки выложил в отдельный сниппет, так как стандартными средствами MODX при ветвлении условий более 3х уровней начинаются глюки. Код сниппета isSelectExecutor представлен ниже: <?php $user=$modx->getUser(); $order_user_id=(int) $modx->getOption('order_user', $scriptProperties, -1); $priceByIspolnitel=(int) $modx->getOption('priceByIspolnitel', $scriptProperties,0); $comment_user_id=(int) $modx->getOption('comment_user', $scriptProperties, -1); $user_price=(int) $modx->getOption('user_price', $scriptProperties, 0); $url= $modx->getOption('url', $scriptProperties,''); $vibor_link="<span class='vibor_ispolnitel'><a href='".$url."'>ВЫБРАТЬ ИСПОЛНИТЕЛЯ</a></span>"; if (($url<>'') and ($order_user_id<>-1) and ($comment_user_id<>-1) ){ if (($user->get('id')== $order_user_id) and ($user->get('id')!= $comment_user_id)){ if ($priceByIspolnitel==0){ echo $vibor_link; }else{ if ($user_price>0){echo $vibor_link; } } } } Вопросы / Помогите решить проблему с комментариями 1 0
11 июня 2015, 21:17 Кажется разобрался… дело было в том что сохранение и очистка кэша была после return. Поправил, все очистилось успешно! $ticket ->setTVValue('status', 'В исполнении'); $ticket->save(); $ticket->clearCache(); return " <h2>Исполнитель успешно привязан к заданию!</h2> Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
11 июня 2015, 20:45 Вопрос по getTickets. Я передаю в параметры снипета допустимые TV поля, и они почему то в этом документе не обновляются. Они что кэшируются? Как их сбросить я что то вообще не понимаю. На всех страницах поле дополнительное выводится, а вот на странице, которая обрабатывалась через getTicket поле пустое, как до изменения… Или как сделать тикеты по умолчанию не кэшируемыми… хотя из за одного поля это глупо. Это поле определяет Статус, по умолчанию оно пустое, а позже когда нажимаю Выбрать исполнителя статус присваивается «В исполнении». На всех страницах он отображается а на странице заказа нет… спасает полная очистка кэша. Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
09 июня 2015, 19:06 хм… впринципе я что то даже совсем не подумал об этом! вот только тогда кэш в браузере наплодится… а этого не хочется. если только попробовать делать при смене изображения еще и количество обновлений фона в профиль загонять. и выводить изображение с этой цифрой. тогда не будет постоянно картинка в кэше плодится. но дополнительную информацию хранить придется. Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
09 июня 2015, 18:44 а сброс кэша страницы сбрасывает только закэшированную структуру страницы, или еще и все кэши использованных на данной странице изображений удаляются? Может каким то образом нужно очишать кэш именно рисунка… но вообще не представляю как. Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
09 июня 2015, 18:42 Попробовал вывести все что в сессии хранится, кроме идентификатора пользователя, политик и групп ничего по профилю пользователя не встретил Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
09 июня 2015, 18:39 Чистить ключ сессии… а как его обновить затем. или перетереть путем к изображению сразу же. Просто стал замечать что если другие пользователи тоже сменили свой фон и к ним зайти в профиль то тоже может не сразу показать, а это уже не в сессиях хранится. Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
09 июня 2015, 18:37 Аналогичная ситуация. до ручной перезагрузки страницы не изменяется. <?php $resource=$modx->getObject('modResource',2); $resource->clearCache(); $resource->_contextKey = $resource->context_key; $cache = $modx->cacheManager->getCacheProvider($modx->getOption('cache_resource_key', null, 'resource')); $key = $resource->getCacheKey(); $cache->delete($key, array('deleteTop' => true)); $cache->delete($key);Может ли это быть связано с редиректом используя Javascript или нет. setTimeout('document.location.href="[[~2]]"', 2000);Может стоит через makeurl и Redirect modx попробовать… Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
09 июня 2015, 18:29 А информация профилей юзеров не кэшируется в modx или ее тоже нужно очищать?.. а то может поле extended тоже берется из кэша… Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
09 июня 2015, 18:28 Так же хочу добавить, что структура хранения изображений пользователей определена как вложенность uploads/[[#ID пользователя]]/bg.jpg. Меняются только ID пользователей, а для одного профиля новый фон так и остается с таким же именем файла. сделано это чтобы фоновые изображения не переполняли диск, да и нет смысла в названии файла подругому. Единственное что может быть изменно в имени это расширение файла. Может эта информация будет важна. Имя файла остается неизменным. Никаких phpthumbof не использую. программно произвожу обрезку изображение через php сценарий в момент орбаботки загружаемого файла. Вопросы / Прошу помочь с очисткой кэша определенной страницы 14 0
21 февраля 2014, 13:32 Разобрался. Может кому пригодится. Делается так 1) указывается input-TV-type listbox 2) в Input Option Values заносим @SELECT CONCAT_WS (' --> ', `from`, `to`) as `route`,`id` FROM `modx_taxi_routes` с указанием своих полей из своей таблицы p.s CONCAT_WS я просто использовал для объединения полей откуда и куда. Вопросы / Выбор данных из другой таблицы в CMP 2 0
15 февраля 2014, 11:13 У меня тоже на интернет магазине база сделана изначально была на migx. потом все переделал на migxdb чтобы доработать импортер. он у меня все характеристики товаров загружал параллельно с загрузкой товаров. Тоже товаров прилично и не тормозило. но опять же тут запрос происходит с фильтрацией по товару. тоесть если отталкиватся от одного товара то там и не так уж много характеристик, и опять же не столько содержит информации как статьи и новости. На новостном же портале может находится десятки тысяч новостей с достаточно объемным содержимым. Ну думаю там тоже благодаря getPage и других результаты будут отсекатся. так что дуамю сильной нагрузки наверно не возникнит. Если конечно же взять для этих целей нормальный хостинг. Кстати по поводу хостинга. Сайт будет выводится как главный сайт города а следовательно со временем посетителей будет прилично. Какой производительности хостинга для этих целей будет достаточно… Обычно я обходился самым дешевым хостингом от beget. Вопросы / Производительность MIGXDB 12 0
14 февраля 2014, 08:39 А MIGXDB участвует в выводе элементов? вывод же поидее не через процессоры а через pdo или xPDO будет осуществлятся… я вот просто думаю что migxdb наложет свой отпечаток в админке, а на самом сайте не знаю. вот и спрашиваю. Компоненты сам писать пока так и не получилось. Проблема встала именно с разработкой CMP. не все понятно. Migxdb делает это за нас. я так понял смысл там такой же то что он генерирует и схему и классы Вопросы / Производительность MIGXDB 12 0
03 февраля 2014, 17:45 Клево! Спасибо! Так то xPDO и не так то страшен) особенно когда начинаешь работать с самой базой данных Вопросы / Составной уникальный индекс на xPDO 5 0
03 февраля 2014, 17:38 Спасибо! то что нужно. А можно одновременно использовать и id с первичным ключем автогенерируемый, и потом прописать двойной индекс. Просто если сделать без id, то в таблице заказа такси предется тоже предусмотреть 2 поля откуда и куда. Что приведет к переизбыточности информации. Вопросы / Составной уникальный индекс на xPDO 5 0
03 февраля 2014, 16:31 Разверни в дереве элементов сниппеты, там будет в категории Minishop все снипеты которые можно использовать. Также и с Чанками. Я на своем сайте немножко изменил сниппет оформления заказа. разбил на 2 плейсхолдера, и сделал чтоб форма заказа показывалась в отдельном окне через colorbox. Вот можешь тут взглянуть. могу подсказать че как если не разберешься Вопросы / Нет кнопки Оформить на странице корзины 4 0
[Theme.Bootstrap] Новая версия с Bootstrap 4 Новая обновленная версия уже в магазине modstore.pro/packages/sites-themes/theme.bootstrap 4.1.0 (15.07.2026) — Added chunks for quick site setup: Scripts, Meta, Menu.*, Crumb...
Редизайн сообщества Спасибо, руки не дошли пока. Много всего другого делаю. Завтра поправлю все замечания.
Reactions — современная система реакций для MODX 3 [1.0.1-pl] — 2026-07-15 Added ReactionsCount: live-обновление рядом с виджетом (span.reactions-count + reactions:updated) без F5
Как ограничить вебмастеру доступ к заказам? Допустим вы закроете доступ к заказам и пользователям через админку, но для полноценной работы с сайтом нужен доступ в БД, а там вся эта информация есть и спрятать её невозможно, т...
Возможно ли реализовать возможность предоплаты за доставку на сайте? Отлично, значит можно не создавать заказ пока оплата не пройдёт успешно, а поскольку класс-обработчик оплаты будет кастомный сможет сами решать какую стоимость пробрасывать. Ещё на...
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Выпустил новую версию [1.0.3-beta1] — 2026-07-13 Fixed — Inject сохраняет ``, `` и `` на полном HTML-документе (больше не оборачивает страни...
Для автора обращения вывожу кнопку «Закрыть обращение» при нажатии на которую происходит закрытие обращения, так вот статус меняется на 0-Закрыт но когда страница загружается стоит уже 1 — открыт, как было до этого.
Код кнопки:
Данную статью bezumkin.ru/sections/tips_and_tricks/657/ читал но так и не пойму есть ли у кого уже нароботки по фильтрации тикетов по этим полям или нет
Код сниппета isSelectExecutor представлен ниже:
Или как сделать тикеты по умолчанию не кэшируемыми… хотя из за одного поля это глупо. Это поле определяет Статус, по умолчанию оно пустое, а позже когда нажимаю Выбрать исполнителя статус присваивается «В исполнении». На всех страницах он отображается а на странице заказа нет… спасает полная очистка кэша.
Может ли это быть связано с редиректом используя Javascript или нет.
Может стоит через makeurl и Redirect modx попробовать…
uploads/[[#ID пользователя]]/bg.jpg. Меняются только ID пользователей, а для одного профиля новый фон так и остается с таким же именем файла. сделано это чтобы фоновые изображения не переполняли диск, да и нет смысла в названии файла подругому. Единственное что может быть изменно в имени это расширение файла.
Может эта информация будет важна. Имя файла остается неизменным.
Никаких phpthumbof не использую. программно произвожу обрезку изображение через php сценарий в момент орбаботки загружаемого файла.
1) указывается input-TV-type listbox
2) в Input Option Values заносим с указанием своих полей из своей таблицы
p.s CONCAT_WS я просто использовал для объединения полей откуда и куда.
Ну думаю там тоже благодаря getPage и других результаты будут отсекатся. так что дуамю сильной нагрузки наверно не возникнит. Если конечно же взять для этих целей нормальный хостинг.
Кстати по поводу хостинга. Сайт будет выводится как главный сайт города а следовательно со временем посетителей будет прилично. Какой производительности хостинга для этих целей будет достаточно… Обычно я обходился самым дешевым хостингом от beget.
Компоненты сам писать пока так и не получилось. Проблема встала именно с разработкой CMP. не все понятно. Migxdb делает это за нас. я так понял смысл там такой же то что он генерирует и схему и классы
Я на своем сайте немножко изменил сниппет оформления заказа. разбил на 2 плейсхолдера, и сделал чтоб форма заказа показывалась в отдельном окне через colorbox.
Вот можешь тут взглянуть. могу подсказать че как если не разберешься