Всего 123 791 комментарий

perfkirill
17 октября 2023, 08:30
0
Ребят, а почему бы не написать нормальную доку, а то первую версию ты не скачаешь, а дока написана только первой версии…
Евгений
16 октября 2023, 23:14
0
Не знаю…
Сделал вот так
$modx->addPackage('ms2gallery', MODX_CORE_PATH . 'components/ms2gallery/model/');
foreach($_POST['ids'] as $item){
    if($gallery = $modx->getObject('msResourceFile', ['id'=>$item])){
        //print_r($gallery->toArray());
        $gallery->remove();
    }
}
Удаляет
Евгений
16 октября 2023, 23:09
0
не меняется ничего…
Dan
Dan
16 октября 2023, 22:10
0
object_err_nfs, если посмотреть класс modprocessor и конкретно абстрактный класс modObjectRemoveProcessor, появляется если Modx не может получить объект указанного класса по ключу. Может стоит в своем коде подключить его, т.е.:
$modx->addPackage('ms2Gallery', $modx->getOption('core_path').'components/ms2gallery/model/ms2gallery/');
Евгений
16 октября 2023, 22:00
0
Но повторюсь, это не minishop это ms2galleru купленный.
minisho2 как раз таки проблем нет
Евгений
16 октября 2023, 21:59
0
Я уже и просто json пробовал {41092,41095}
Dan
Dan
16 октября 2023, 21:50
0
Покажите как приходят ID-шники в POST-запросе? Точно в верном формате?
Евгений
16 октября 2023, 21:37
0
При такой конструкции получаю object_err_nfs. Правда у меня ms2gallery (купленный)
Вопрос был здесь
Дмитрий
16 октября 2023, 17:04
+2
Дополню пост. Возникла проблема при выводе даты на странице категории товаров. При использовании mFilter после фильтрации товаров дата «слетает». Сниппет переписан следующим образом:

<?php
$id = $modx->getOption('id', $scriptProperties, $modx->resource->id);
$field = $modx->getOption('field', $scriptProperties);
$tpl = $modx->getOption('tpl', $scriptProperties, 'msTimeStampTpl');
if ($modx->getObject('msProduct', $id )->get($field) == null) {
    return false;  
}

$tablePrefix = $modx->getOption('table_prefix');
$table = $tablePrefix.'mstimestamp_product';
$sql = "SELECT * FROM $table WHERE product_id = $id AND field = '$field'";
$statement = $modx->query($sql);
$date = $statement->fetch(PDO::FETCH_ASSOC);
if(!empty($date)){
    return $modx->getChunk($tpl, ['date' => $date['valid_until']]);
}
return false;

Также, вместо отображения даты, может быть удобнее вывести оставшееся количество дней. Я сделал это прямо в шаблоне на fenom:

{if $favorite}
{set $favoriteDate = '!msTimeStampDate' | snippet: ['id' => $id, 'field' => 'favorite']}

{if $favoriteDate != ''}
{set $nowDate = $date | date_format:"%s"}
{set $daysLeft = (($favoriteDate - $nowDate)/60/60/24) | number : 0 : '' : ''}

{if $daysLeft > 0}Ещё {$daysLeft | declension : 'день|дня|дней' : true}{else}Успейте сегодня!{/if}

{/if}
{/if}

Спасибо @Артур Шевченко за помощь и @Денис Усманов за данное полезное дополнение.

Критика и комментарии приветствуются.
Виноградов Тимур
16 октября 2023, 15:33
0
А я вывожу так:
[[!xLike?]]
А на выходе на странице вижу вот чего:
{*@formatter:off*} {var $pathes} {/var}
{$rating | number_format : 2 : '.' : ''}%<{$can ? 'a' : 'span'} class="xlike__link {$value > 0 ? 'xlike__link_active' : ''} [ {$can ? 'js-xlike-button' : ''} ]" {$can ? 'data-xlike-value="1" href="javascript:undefined;"' : ''} >  {$likes | number_format : 0 : '' : ' '} <{$can ? 'a' : 'span'} class="xlike__link {$value < 0 ? 'xlike__link_active' : ''} [ {$can ? 'js-xlike-button' : ''} ]" {$can ? 'data-xlike-value="-1" href="javascript:undefined;"' : ''} >  {$dislikes | number_format : 0 : '' : ' '}
Руслан Алеев
16 октября 2023, 11:02
0
У меня тоже такая проблема была, так и не смог решить. Т.е. во внешнем скрипте удаление не работало, причем и класс miniShop2 был подключен. Но, возможно, действительно скрипт видел анонимного пользователя у которого прав нету на удаление и, видимо, как-то прописывать админ-юзера нужно в скрипте.
Артур Шевченко
16 октября 2023, 10:12
0
Может пользователю от имени которого происходит удаление прав не хватает?
Евгений
15 октября 2023, 16:18
0
РЕШЕНО!
Работает если вставлять массив.
$data = [
    'pagetitle' => $_GET['id'],
    'parent' => 130,
    'template' => 21,
    'properties' =>['ms2gallery'=>['media_source' => $modx->getOption('ms2gallery_source_default')]]
 ];
Евгений
15 октября 2023, 14:23
0
Пробовал массив передавать
$properties = ['ms2gallery'=>['media_source' => $modx->getOption('ms2gallery_source_default')]];
Игорь
15 октября 2023, 13:59
0
Вывел в логи срабатывание плагинов:
[2023-10-15 13:50:33] Сработал msBonus: OnMODXInit
[2023-10-15 13:50:33] Сработал msBonus: msOnBeforeSaveOrder
[2023-10-15 13:50:33] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:33] Сработал msBonus: msOnCreateOrder
[2023-10-15 13:50:33] Сработал msTelegram
[2023-10-15 13:50:34] Сработал msBonus: msOnEmptyCart
[2023-10-15 13:50:34] Сработал msBonus: msOnBeforeChangeOrderStatus
[2023-10-15 13:50:34] Сработал msBonus: msOnBeforeSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnBeforeSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:34] Сработал msBonus: msOnSaveOrder
[2023-10-15 13:50:35] Сработал msBonus: OnMODXInit
[2023-10-15 13:50:43] Сработал msBonus: OnMODXInit
В событии msOnCreateOrder порядок верный сейчас (сначала msBonus, потом msTelegram).
т.е. отправку телеграм нужно вешать на какое-то другое событие? Но ведь тогда будут лишние сообщения приходить при каждом сохранении заказа? А нужно только о новых заказах писать в телеграм?
Что-то я совсем запутался — на почту ведь нормальное письмо приходит, со всеми бонусами (и на странице «Заказ получен» тоже всё хорошо)
Сергей Карпович
15 октября 2023, 12:59
0
Этот код не выполняется. Что поправить нужно?
Скрин: disk.yandex.ru/d/BT__LqKkBIfg9g
Игорь
15 октября 2023, 11:50
0
Такое ощущение, что эти бонусы «долго списываются» и msTelegram раньше начинает свою работу, даже если по порядку он включается позже… Такое может быть?
Может быть моно настроить какую-нибудь задержку по времени выполнения?
Игорь
15 октября 2023, 11:24
0
msTelrgram:
$message = "
Новый заказ #{$msOrder->num}
на сумму {$msOrder->cost} р.
Оплата: {$msOrder->Payment->name}
Доставка: {$msOrder->Delivery->name}
...
"
Павел Романов
15 октября 2023, 10:36
0
Попробуйте так:
[[getImageList?
    &docid=`123` 
    &where=`{ "part-name:LIKE":" %***% " }` 
    &tpl=`tpl.part`
]]
123 — ID ресурса с TV migxTable
*** — критерий для отбора в поле Название

Чанк tpl.part
<div class="part-data">
  <h2>[[+part-name]]</h2>
  <p>Изображение заведения: <img src="[[+part-image]]"></p>
  <p>Адрес заведения: [[+part-adress]]</p>
</div>