Исчезновение ссылки для редактирования через время - Tickets

Всем добра! Как то давно делал знакомым страницу вопроса — ответов на Tickets, а на днях спросили где в настройках задается время жизни для кнопки редактировать, чтобы пользователь через время уже не мог исправить или удалить написанное. Пересмотрел весь компонент Tickets, такая функция есть только для комментариев. Ссылка на редактирование в данный момент выводится так:
[[!+modx.user.id:is=`[[*createdby]]`:then=`<a href="/vopros-otvet.html?tid=[[+id]]">Редактировать вопрос</a>`]]
Есть одна идея но пока смутно представляю как лучше реализовать это.
Возможно кто нибудь уже делал такое — чтобы кнопка/ссылка была недоступна через заданное время, ну или в какую сторону копать? Хотелось бы конечно сильно не затрагивать сам Tickets, в идеале вообще не трогать.
UPD: Вариант
Nik
Nik
23 февраля 2021, 16:02
modx.pro
148
0

[СДЕЛАЙ САМ] DaData. Определение города по ip

Сниппет называется detectRegion. Для работы необходимо зарегистрироваться на сайте DaData и создать системную настройку для ключа api с названием dadata_api_key
<?php
$url = 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/iplocate/address';
$siteIsAvaliable = $modx->runSnippet('isSiteAvailible', array('url' => $url));
if($siteIsAvaliable){
    $token = $modx->getOption('dadata_api_key');
    $ip = $_SERVER['REMOTE_ADDR'];
    $headers = array(
    	'Accept: application/json',
    	'Authorization: Token ' . $token
    );
    $ch = curl_init($url.'?ip='.$ip);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
    $result = json_decode(curl_exec($ch),1);
    curl_close($ch);
    $region = $result['location']['data']['city'];
    return  $region;
}else{
    $modx->log(1, 'detectRegion: Не возможно определить регион. Сервис DaData недоступен');
    return false;
}
P.S. isSiteAvailible
Артур
09 апреля 2021, 23:28
modx.pro
1
146
+3

Вывод номера итерации в сниппете

Как получить номер итерации снипета. Интересует в сниппете getPageAssets компонента Asset Manager. [[+idx]] там не работает. Каким образом можно получить номер итерации в tpl?
КА
26 февраля 2021, 18:16
modx.pro
145
0

вычислить количество товара для заказа при зафиксированной минимальной сумме

привет, буду благодарен совету, не знаю как решить такую задачу.

делаю xml фид, в котором нужно для каждого товара minishop определить минимальное количество товара(вес) для заказа. У каждого товара заполнен вес. Есть товары, которые продаются по цене за 1кг и есть, которые упаковками (вес может быть как меньше 1кг, так и больше). Минимальная сумма заказа товара — 1500р.

соорудил такую конструкцию на fenom, но не знаю как высчитать значение (Минимальный заказ3), чтобы чтобы было кратно весу(упаковки) и стоимости заказа больше 1500р
Виталий
05 марта 2021, 15:28
modx.pro
145
0

как залочить snippet и chunk от чтения ?

всем привет

возник вопрос такого рода

Посоветуйте пожалуйста как это сделать

Я думаю всем очень пригодиться

Допустим у вас есть свой шоп вы перегорели желанием им заниматься или по каким либо другим причинам, неважно, решили продать свой проект

Продали незнакомому человеку, а то что для себя делали какие либо наработки, кастомные решения или собирали покрупицам, разные решения, с проектом отдавать нехотите

например chunk сортировка по цене

простые наработки для своего личного кабинета не extras решения в виде сниппетов

Так вот собственно вопрос «как залочить определённые snippets и chunks от чтения
на своём интернет магазине

Было бы очень суперово если разработчики modx revo сделали в новой версии такую фичу как

System settings / web developer password

задавался пароль на snippets и chunks

в elements chunks или snippets детектились со значком locked и вызывался например как некэшированный только с двумя!!! например [[!!lockedsnippet]] [[!!$lockedchunk]]
Кирилл
16 марта 2021, 18:38
modx.pro
138
-7

Вывод TV-поля у товаров minishop2

Всем привет!
Вывожу список товаров miniShop2 в виде таблицы. К некоторым товарам необходимо добавить изображение в виде ссылки, для этого я создала TV-поле типа «Текстовый редактор». Теперь я не могу сообразить как это все корректно вывести.
Valeria
16 февраля 2021, 20:10
modx.pro
137
0

Отложенная отправка писем из minishop2 клиенту

Стояла задача ускорить формирование заказа. Слабым звеном на сайте оказалась отправка почты. Было решено ее отправлять после формирования заказа.

Для этого возникла идея сделать следующее:
1. Отключаем оповещение у новых заказов
2. Создаем новый статус заказа Оповещение с идентичными чанками.
3. Пишем сниппет и вызываем его из CronManager:
<?php
// смотрим последний заказ
$c = $modx->newQuery('msOrder');
$c->where(array('type' => 0));
$c->limit(1);
$c->sortby('id', DESC);

$miniShop2 = $modx->getService('miniShop2');
$results = $modx->getIterator('msOrder', $c);

foreach ($results as $result) {
         $order_id = $result->get('id');
         $status = $result->get('status');\
		 // если статус заказа Новый
         if ($status == '1') {
             $miniShop2->changeOrderStatus($order_id, 25);
             $output = $order_id.' - '.$status;
         }
     }

//Пишем результат в лог по адресу: core/cache/logs/order.new.log
$modx->log(modX::LOG_LEVEL_ERROR,$order_id, array(
    'target' => 'FILE',
    'options' => array(
        'filename' => 'order.new.log'
    )
));

return $output;
Вроде все работает.

Вопрос: все ли сделано верно и есть ли более правильное решение?
Валентина Павлова
17 февраля 2021, 18:32
modx.pro
1
135
+1

Доработка сайта

10 10 000
Необходимо довести до конца выполнение синхронизации между сайтом (MODX revolution) и базой 1С (облачная). Уже сделаны все необходимые работы со стороны 1С, данные(карточки товаров) выгружаются на сайт (админка) по расписанию, 2 раза в день. Со стороны сайта так же проделаны работы, по система работает нестабильно. По неизвестной причине товары не отображаются на самом сайте. Куплен модуль в modstore синхронизации с 1с. Ищу опытного программиста, распологающего свободным временем для решения задачи.
P.s. программисты 1с находятся на связи и готовы подключиться к вашей работе для совместного тестирования выгрузки.
Телефон для связи 89067678715
Сергей
21 февраля 2021, 10:08
modx.pro
135
0

MODX REVO как через API обновить tv поле у всех ресурсов одним запросом?

Приветствую, прямо скажу даже не знаю с какого бока подойти.
Есть 1000 ресурсов, у них есть content и я хочу первый абзац контента, записать в tv с именем title.

Первый абзац до точки, получить не проблема, $tvtitle = explode( ".", $content);
но как записать в tv и главное обновить все ресурсы махом, не понимаю :(

Куда копать? Я так понимаю в цикле нужно через сниппет? Или какой то SQL запрос через phpMyadmin это делать?
Роман
16 февраля 2021, 14:20
modx.pro
132
0