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

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

С нами с 03 марта 2014; Место в рейтинге пользователей: #70
Павел Романов
08 декабря 2015, 14:12
0
Согласен с mekirile. Проверьте без условия, только sortdir уберите (он не нужен, поскольку уже прописан в sortby):
[[getResources?
        &limit=`15`
        &parents=`1`
        &sortby=`{"createdon":"DESC"}`
	&tpl=`@INLINE [[+pagetitle]]`
]]
Если так что-то выведет, то поставьте условие:
[[getResources?
        &limit=`15`
        &parents=`1`
        &sortby=`{"createdon":"DESC"}`
        &where=`{"pagetitle:REGEXP":"[[*pagetitle]]"}`
	&tpl=`@INLINE [[+pagetitle]]`
]]
Если результатов не будет замените параметр where на такой:
&where=`{"pagetitle:LIKE":"%[[*pagetitle]]%"}`
и естественно, пропишите свой &tpl.
Павел Романов
08 декабря 2015, 13:51
0
У Вас стоит сниппет msProducts? Нет. Значит и не надо его писать ).

Если у Вас установлен pdoTools, то в &element вообще ничего писать не нужно — по умолчанию используется сниппет pdoResources.

Если pdoTools не установлен, а есть getPage с getResources, то так:
[[!getPage?
        &element=`getResources`
        &limit=`15`
        &parents=`1`
        &sortby=`{"createdon":"DESC"}`
        &where=`{"pagetitle:REGEXP":"[[*pagetitle]]"}`
        &sortdir=`DESC`
        ]]
Павел Романов
08 декабря 2015, 12:41
+1
Также, только упростить немного ))):
[[!pdoPage?
.........
    &where=`{"pagetitle:REGEXP":"[[*pagetitle]]"}`
]]
Павел Романов
07 декабря 2015, 12:29
0
Через плюс ставится только в чанке-шаблоне вывода у сниппетов типа getResources и т. д. На самой странице, естественно, через [[*...

Можно и встроенными модификаторами, но Вам же нужно получить курс, т. е. значение TV у другого ресурса. Я не знаю установлен у Вас getResourceField или pdoTools, поэтому проще сделать вышеописанный сниппет.
А так-то да (если pdoTools стоит и включен новый парсер):
[[*cena_proekta_doma:div=`[[#****.cena_rur_auto]]`]]
Павел Романов
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 ).
Тогда вот это или это: