Павел Романов

Павел Романов

С нами с 03 марта 2014; Место в рейтинге пользователей: #43
Павел Романов
07 декабря 2015, 12:03
0
А если так?
[[!getprice? &input=`[[+tv.cena_proekta_doma]]`]]
Павел Романов
07 декабря 2015, 11:51
0
Если нужен просто вывод пересчитанной цены, почему нет?
Это самое простое решение в данном случае и возможно, оно удовлетворит Алексея.
Павел Романов
07 декабря 2015, 11:40
0
Сделайте сниппет «getprice»:
$resource = $modx->getObject('modResource', ****);
$price_r = $resource->getTVValue('cena_rur_auto');
return $input / $price_r;

Вместо **** в первой строке поставьте ID корневого ресурса каталога, у которого прописан курс и используйте как модификатор.

В чанках:
[[+tv.cena_proekta_doma:getprice]]
В шаблоне:
[[*cena_proekta_doma:getprice]]
Павел Романов
06 декабря 2015, 18:54
1
+2
Да, верное. Если Вы используете formit2resource отсюда, то у Вас все эти компании в ресурсах.
Соответственно, Вы можете проверять существование созданного пользователем ресурса хоть через getResources:
[[getResources?
....
&where=`{"ctreatedby":"[[!+modx.user.id]]"}`
&toPlaceholder=`list`
&totalVar=`count`
&showUnpublished=`1`
]]
[[+count:gt=`0`:then=`вывод формы`:else=`Текст про невозможность создания`]]
Павел Романов
06 декабря 2015, 18:09
+2
Проверять поле createdby у ресурса — туда пишется ID создателя.
Соответственно, пробежаться по созданным ресурсам, получить их ID, если будет созданный текущим юзером, то форму не выводить.
То же и с товарами. Если их больше 5, вывести сообщение вместо формы.
Павел Романов
03 декабря 2015, 00:47
0
Есть же CatalogFill — он и XML, вроде, понимает.
Павел Романов
24 ноября 2015, 19:36
+1
Параметр &tvFilters работает только с TV, что и следует из его названия, в то время как &where понимает стандартные поля, коим и является menuindex ).
Павел Романов
24 ноября 2015, 19:27
+4
А если так:
&where=`{"menuindex:<":[[*menuindex]]}`
?

Павел Романов
19 ноября 2015, 17:27
5
+4
Делаете два сниппета.

Первый sortLink:
<?php
if($_GET['sort'] == $field and $_GET['dir'] == 'ASC') {$arr='&_uarr;';}
if($_GET['sort'] == $field and $_GET['dir'] == 'DESC') {$arr='&_darr;';}
if(!$_GET[$field]){
	if($_GET['dir'] == 'ASC'){
		$output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=DESC#prod">'.$name.''.$arr.'</a>';
	} else {
		$output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.''.$arr.'</a>';
	}
} else {
	$output = '<a href="'.$url.'?'.$q.'sort='.$field.'&dir=ASC#prod">'.$name.'</a>';
}
return $output;
(во второй и третьей строке только уберите нижнее подчеркивание в &_uarr; и &_darr;)

Второй Sort:
<?php
$sort = $_GET['sort'];
if($sort == '') {
    $output='&sortby=`{"menuindex":"ASC"}`';
} else {
    $output = '&sortby=`{"'.$sort.'":"'.$_GET['dir'].'"}`';
}
return $output;

Используете так:
<div class="sort">
Сортировать: 
[[!sortLink? &url=`[[*uri]]` &field=`pagetitle` &name=`по названию`]]  
[[!sortLink? &url=`[[*uri]]` &field=`price` &name=`по цене`]]  
</div>
<div class="results">
[[!pdoResources?
&parents=`...`
&tpl=`...`
.........
[[!Sort]]
]]
</div>
Павел Романов
29 октября 2015, 11:51
0
Не совсем понятно, что Вам требуется.
Конструкция
[[UltimateParent? &id=`[[+wf.docid]]`]]
выдает просто ID текущего ресурса.
Как я понимаю, логика такая: «если ID открытого ресурса такой же как у пункта меню, то вывести topLevel, иначе subLevel»?
Если так, то вообще не надо огород городить:
[[+id:is=`[[*id]]`:then=`topLevel`:else=`subLevel`]]
Или я не понял задачу?
Павел Романов
06 октября 2015, 19:55
+1
Делаете новый источник файлов и назначаете его этому TV.
Чтобы при добавлении картинки в текстовый редактор (TinyMCE, к примеру) тоже открывался он, делаете его «умолчальным» в настройках системы (раздел «Панель управления»).
Павел Романов
28 сентября 2015, 18:44
+1
Если у Вас у товара свой шаблон, то добавьте параметр:
&templates=`ID_шаблона_товара`

Если нет, то можно добавить так:
&where=`{"isfolder:!=":1}`
Павел Романов
28 сентября 2015, 13:59
0
Параметрами:

[[!Snippet? 
&id=`[[+id]]` 
&tv=`[[+tv.tvname]]`
]]

В самом сниппете это будут переменные $id и $tv.
Павел Романов
25 сентября 2015, 20:53
0
Если это первый набор параметров (в колонке «id» в таблице mdpr_property_set в базе стоит единица), то попробуйте его скопировать с тем же именем, а старый переименуйте (но не удаляйте).
Павел Романов
24 сентября 2015, 18:44
+1
Делаете TV «view» с типом ввода «Список (одиночный выбор)», в возможных значениях прописываете:

Большие плитки==big||Маленькие плитки==small

А в значениях по умолчанию:

small


и назначаете этот TV шаблону всех этих категорий, в котором делаете вызов:

<ul class="item-grid [[*view]]">
[[pdoResources?
&tpl=`catalog-item`
&depth=`0`
&limit=`0`
&sortby=`{"menuindex":"ASC"}`
&includeTVs=`image`
]]
</ul>
(естественно, если TV картинки у бренда и категории у Вас называется «image»)

Чанк «catalog-item»:

<li class="catalog-item">
	<a href="[[+uri]]">
		<img src="[[+tv.image]]" alt="[[+pagetitle]]" title="">
		<h3>[[+pagetitle]]</h3>
	</a>
</li>

Ну и через CSS уже настраиваете оформление:

.big .catalog-item {..........}
.small .catalog-item {..........}
Таким образом в админке будет возможность выбирать как выводить дочерние ресурсы в данной категории.
Павел Романов
18 сентября 2015, 12:49
0
Точно, упустил, что EVO ).
Тогда вот это или это:
Павел Романов
18 сентября 2015, 11:58
0
И не будет меняться, Вы же указываете publishedon страницы «Отчетность» (ставите [[*----]]).
Нужно в чанке вывода (getResources или pdoResources) выводить так:

Опубликовано [[+publishedon:strtotime:date=`%R %e.%m.%Y`]]
Павел Романов
18 сентября 2015, 11:53
0
mSearch2. Там есть mFilter2, который Вам поможет ).

Если позиций не очень много и/или нет бюджета на покупку mSearch2, то tagManager2.
Павел Романов
18 сентября 2015, 09:29
1
+3
Сами теги через TV с типом «Авто-метка», их вывод через tagLister.

Вывод документов по тегу либо через getResourcesTag, либо (если стоит pdoTools с новым парсером) через pdoResources с параметром:
&tvFilters=`tags==%[[!#GET.tag]]%`
где tags — имя TV с тегами, а tag — переменная в GET-запросе.

Если новый парсер не включен, то делаете сниппет getTag:
<?php
return $_GET['tag'];
и тогда так:
&tvFilters=`tags==%[[!getTag]]%`
Павел Романов
16 сентября 2015, 17:50
0
Все-таки, я не один такой )

Причем на одном и том же аккаунте висят два идентичных магазина, так в одном всё нормально, а в другом бренды не работают.

В тот раз так ничего и не придумал. В итоге производителей сделал просто через TV.