Евгений Webinmd

Евгений Webinmd

С нами с 07 января 2013; Место в рейтинге пользователей: #15
19 ноября 2019, 11:25
+1
ну ок, напишите свой сниппет, в котором будет вызов 1 ресурса с сортировкой по дате или по ID
16 ноября 2019, 18:22
0
Вопрос конечно сформулирован мастерски.
Что касается prepareSnippet — то он должен возвращать результат работы в следующем виде
return serialize($row);

Пример сниппета
<?php

if(!$row['publishedon']){
    return serialize($row);
}  


// тут лучше сразу написать обработку даты, но для простоты кода показываю со сторонним сниппетом
$row['dt'] = $modx->runSnippet('dateRu', array(
    'input' => $row['publishedon']
)); 

return serialize($row);

И в итоге в чанке товара уже используется плейсхолдер [[+dt]] {$dt}
12 ноября 2019, 16:37
+1
могли бы хоть вызов показать, а не просто ошибку
08 ноября 2019, 16:46
0
а если добавить?
$ctx->save();
30 октября 2019, 19:56
0
работает, пока не будет необходимости отредактировать данные.
MIGX_id формируется просто +1 к максимальному значению
30 октября 2019, 17:40
0
Пример добавления значения в поле migx через api modx

<?php
$input = $resource->getTVValue('myMigx');
$res = $modx->fromJSON($input);
$count = count($res);
 
$new = array(
    'MIGX_id'       => $count + 1,
    'name'          => $scriptProperties['fields']['name'],
    'message'       => $scriptProperties['fields']['message'],
    'email'         => $scriptProperties['fields']['email'],
    'date'          => $scriptProperties['fields']['date'],
);
$res[] = $new;
 
if (!$resource->setTVValue('myMigx', $modx->toJson($res))) {
  $modx->log(modX::LOG_LEVEL_ERROR,'There was a problem saving your data!');
  return false;
}
  
return true;
29 октября 2019, 11:21
0
Можно написать плагин, который на сохранение ресурса преобразует ВСЕ modx теги в html сущности.
Либо посмотреть как это сделано в Jevix — он входит в пакет Tickets и там можно запретить обрабатывать modx теги.
Пример замены в jevix
28 октября 2019, 10:22
0
это что-то самописное для доп опций, по умолчанию такого нет
16 октября 2019, 10:27
0
Создаете хук для formit
подключаете в хуке библиотеку PhpSpreadsheet и дальше уже по примерам из библиотеки.
В этом же хуке указываете ссылку на созданный файл и добавляете её как поле в письмо. Есть примеры в документации для хуков по добавлению своих данных в письма. Где-то видел и как прикрепить файл в письме из хука
16 октября 2019, 10:24
0
ну вот, в sortby вставляйте по какому полю нужна сортировка, потому что у производителей нет поля сортировки, как вариант одно из полей использовать для сортировки.
Например если не используете поле факс, то можно попробовать сортировать по нему
16 октября 2019, 10:12
0
НА какой странице выставить?
Приведите код, которым выводите производителей
16 октября 2019, 10:04
0
07 октября 2019, 12:49
0
Надо использовать toPlaceholders = my., toSeparatePlaceholders немного для другого.

Потом в коде просто вызывается либо {$my.results} либо {$_modx->getPlaceholder('my.results')}
26 сентября 2019, 22:35
+1
точку с запятой пропустил после массива $emails, исправил
26 сентября 2019, 22:27
+1
Код ниже не тестировал, но чисто в теории должно работать
Запускать в компоненте console или modalConsole

<?php

$Sendex = $modx->getService('sendex','Sendex',$modx->getOption('sendex_core_path',null,$modx->getOption('core_path').'components/sendex/').'model/sendex/');

if (!($Sendex instanceof Sendex)) return '';

// Указать ID рассылки
$idNewsletter = 1;

$emails = [
	'email@mail.ru',
	'email1@mail.ru',
	'email2@mail.ru',
	'email3@mail.ru',
	..... 
];

foreach ($emails as  $email) {	

	$duble = $modx->getObject('sxSubscriber', array('email' => $email));
 
	if ($duble) { continue; }

	$obj = $modx->newObject('sxSubscriber');    
       $data = array(
        'user_id' => 0,
        'email' => $email,
        'newsletter_id' => $idNewsletter,
    );

    $obj->fromArray($data);
    $obj->save(); 

}