Андрей

Андрей

С нами с 28 февраля 2013; Место в рейтинге пользователей: #133
Андрей
10 сентября 2020, 15:45
0
В настройках pdoTools можно в параметре pdotools_fenom_options указать {«strip»:true}
Андрей
31 января 2020, 14:23
0
Не нашел такого параметра в исходниках. Сделал через where.

'where' => [
  'sfUrls.id:IN' => ['2', '3', '4']
] | toJSON
Андрей
31 января 2020, 13:43
0
Не пойму как работает параметр urls в сниппете sfMenu, что бы я там не указывал, ничего не меняется.

{'sfMenu' | snippet : [
	'rules' => '2',
	'parents' => $_modx->resource.id,
	'urls' => '2,3,4'
]}

Выводится не 3 ссылки, а все ссылки из правила
Андрей
19 июля 2019, 09:53
0
Кто-нибудь знает как в PhpStorm подключить Emmet для Pug файлов? В VSCode это из коробки работает, в PhpStorm не хочет никак, приходится все атрибуты руками писать.
Андрей
25 июня 2019, 13:33
0
Можно ли как-то указать срок действия скидки? С одной даты до другой например.
Андрей
14 июня 2019, 12:16
+1
Все верно, в $products_of_the_day массив и должен быть, он содержит в себе ID товаров, где ключ массива это день, который получается из $day = date('N') (возвращает число от 1 до 7). Значение массива это ID товара.

Пример
$products_of_the_day = [22, 33, 44, 55, 66, 77, 88] // id товаров
// $day допустим вернул 5 - это пятница
// $products_of_the_day[$day - 1] вернет id товара 66

Если у вас всего 3 товара, то можете указать условие для $day, что бы заменять его значение

// не проверял на работоспособность
$day = date('N');

$products_of_the_day = explode('||', $products_of_the_day->get('value'));

if (count($products_of_the_day) < 7) {
    $day = $day - count($products_of_the_day)
}
Андрей
04 июня 2019, 17:21
1
+3
Была такая задача, правда товар выбирался не по чекбоксам, а указывался в TV с множественным выбором

Создаем TV product_of_the_day с типом ввода Список (множественный выбор), в возможных значениях там указываем

@SELECT `pagetitle` AS `name`,`id` FROM `[[+PREFIX]]site_content` WHERE `published` = 1 AND `deleted` = 0 AND (`template` = 16) // Тут вместо 16 ваш id шаблона с товаром

Дальше плагин на событие OnLoadWebDocument
Суть такова — товар выбирается по номеру дня недели, т.е. в списке первый товар будет на понедельник, второй на вторник и т.д.
<?

// Плагин на событие OnLoadWebDocument

$products_of_the_day = $modx->getObject('modTemplateVarResource', [
	'contentid' => 4, // id ресурса к которому привязан TV
	'tmplvarid' => 80 // id TV
]);

unset($_SESSION['product_of_the_day']);

if ($products_of_the_day) {
	
	$day = date('N');
	
	$products_of_the_day = explode('||', $products_of_the_day->get('value'));
	
	if (!empty($products_of_the_day) && isset($products_of_the_day[$day - 1])) {
		$_SESSION['product_of_the_day'] = $products_of_the_day[$day - 1];
	}
	
}

В шаблоне получаем ID товара дня, можем делать с ним что угодно, в вашем случае подставить в вызов сниппета
{set $product_of_the_day_id = $.session.product_of_the_day}
Андрей
29 мая 2019, 19:48
+1
Там у TV добавляется префикс tv. его можно убрать параметром tvPrefix => '' тогда должно работать так {$item.tplImage}
Андрей
29 мая 2019, 18:36
+1
в foreach можно указывать дополнительные параметры

{foreach $results as $item index=$index first=$first last=$last}
    {if $first}
        <div>{$item.content}</div>
    {/if}
{/foreach}

// или так
{foreach $results as $item}
    {if $item@first}
        <div>{$item.content}</div>
    {/if}
{/foreach}

Подробнее можно почитать тут
Андрей
29 мая 2019, 11:00
+1
Если используется fenom на страницах, можно воспользоваться параметром &return=`json` и просто вывести 2 foreach на странице, один с pagetitle, другой с content

{set $results = 'pdoResources' | snippet: [
	'parents' => 5,
	'limit' => 3,
	'return' => 'json'
] | fromJSON}

<div class="num">
	<div class="1">
		{foreach $results as $item}
			<div>{$item.pagetitle}</div>
		{/foreach}	
	</div>
	<div class="2">
		{foreach $results as $item}
			<div>{$item.content}</div>
		{/foreach}	
	</div>
</div>
Андрей
29 мая 2019, 09:13
0
Из выпадающего списка надо скрыть? Ну с помощью css скройте например по какому-нибудь уникальному параметру, либо в чанке где список выводится условие поставить — если значение новогодний, то не выводить. Можно класс расширить и там свою логику указать для отображения значений в списке.
Андрей
24 мая 2019, 11:27
0
Зайдите на страницу Каталог и уберите галочку Использовать псевдоним в пути псевдонимов
Андрей
22 мая 2019, 11:05
0
Можно так, например, перед созданием ресурсов вставить.
// TEMPLATES

$_templates = [
	[
		'templatename' => 'Название шаблона',
		'content' => '<h1>Привет!</h1>'
	],
	[
		'templatename' => 'Еще название шаблона',
		'content' => '<h1>Привет еще раз!</h1>'
	]
];

foreach ($_templates as $properties) {
	$template = $modx->runProcessor('element/template/create', $properties);

	if ($template->isError()) {
		$modx->log(1, 'Failed to create Resource. Message: '.$template->getMessage());
	}
}

print "TEMPLATES: Done!\n";

Все поля для шаблона можно посмотреть тут в поле fields
Андрей
22 мая 2019, 10:47
0
Возможно вы не указали реквизиты для админки тут

$_user = [
	'username' => 'ваш_логи',
	'password' => 'ваш_пароль',
	'rememberme' => true,
	'login_context' => 'mgr'
];
Андрей
22 мая 2019, 10:44
0
Все работает, только что проверил на modhost

Андрей
22 мая 2019, 10:28
0
Ресурсы стандартным процессором создаются, там нет ничего необычного. Версия модх какая? На 2.7 работает точно, на других не проверял.
Андрей
22 мая 2019, 10:07
0
Видимо Источник файлов не создался по какой-то причине, попробуйте закомментировать этот шаг и эту строку в $_options

'default_media_source' => $default_media_source,