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

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

С нами с 03 марта 2014; Место в рейтинге пользователей: #70
Павел Романов
27 мая 2015, 14:50
+1
Абсолютно согласен. Сейчас очень востребовано именно почасовое (и даже меньше) бронирование. Лично готов больше 1 500 платить )).
Павел Романов
21 мая 2015, 16:34
0
Любым: getResources, pdoResources, getProducts.
В чанке указываете (естественно, не забыв &includeContent=`1`):
[[+content:ellipsis=`1000`]]
где 1000 — кол-во выводимых символов. Дальше добавится "..."
Или
[[+content:limit=`1000`]]
то же самое, только "..." не добавляется.

Ну и при любом выводе поля из другого документа:
[[pdoField:limit=`1000`? &id=`123` &filed=`content`]]
или
[[#123.content:limit=`1000`]]
Только в случае с контентом лучше еще :notags добавлять.
Павел Романов
19 мая 2015, 18:26
0
Да, только "=" после return долой, естессно ))):
<?php
if($n!=''){
return $n%10==1&&$n%100!=11?$w1:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$w2:$w3);
}
Павел Романов
19 мая 2015, 17:47
7
+3
На одном форуме народ соревновался в самом «компактном» решении этой задачи ))
Победило такое решение:
<?php
if($n!=''){
return= $n%10==1&&$n%100!=11?$w1:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$w2:$w3);
}
Ну и вызываем:
[[Snippet? &n=`123` &w1=`год` &w2=`года` &w3=`лет` ]]
Павел Романов
18 мая 2015, 19:29
0
У категорий в miniShop? насколько я знаю штатных картинок нет.
У Вас скорее всего картинка просто через TV реализована.
Наведите на ее заголовок (изображение, фото, или что там у Вас) курсор и в подсказке посмотрите как называется TV. Будет что-то типа:
[[*image]]

Ну и выводите его в pdoResources:
[[+tv.image]]
Только не забудьте указать его в:
&includeTVs=`image`
Павел Романов
18 мая 2015, 19:22
0
У Вас просто js-файл и Вам нужно, чтобы в нем работали теги MODX?
Просто сделайте ресурс в корне дерева с типом содержимого javascript и отключенным текстовым редактором. Присвойте дайте псевдоним (к примеру, «slider»), заморозьте на всякий случай у него URI и подключайте как обычно в HEAD:
<script type="text/javascript" src="slider.js"></script>
Ну а внутри него можете как угодно, и что угодно вызывать. И TV и плейсхолдеры и сниппеты и любые теги MODX.
Павел Романов
12 мая 2015, 10:21
+1
Настройки системы — > Файловая система, параметр «Разрешенные к загрузке файлы».
Добавьте нужные расширения.
Павел Романов
08 мая 2015, 16:26
0
Есть setTVValue:
$resource = $modx->getObject(‘modResource’, ID страницы);
$resource->setTVValue(‘ID нужного TV’, ‘значение, которое нужно вписать’);
$resource->save();
Павел Романов
08 мая 2015, 13:28
+1
Все работает. Вы просто услуги не опубликовали )).
Отписал в почту.
Павел Романов
08 мая 2015, 12:41
0
Тогда киньте в личку или на romanov_frilans.ru доступ к админке — гляну.
Павел Романов
08 мая 2015, 12:14
+1
pdoTools установлен?
Если да, то делаете сниппет «getServices»:
<?php
$array = explode(",", $services);
foreach ($array as $value) 
{
    $y = $modx->runSnippet('pdoResources',array(
    'parents'=>1,
    'limit'=>0,
    'includeTVs'=> 'tv-code',
    'tpl'=>'@INLINE [[+pagetitle]], ',
    'tvFilters'=>'tv-code==='.$value.''
));
    $out .= $y;
}
return mb_substr($out, 0, -1);

А на странице организации вызываете:

[[!getServices? &services=`[[*tv-code-list]]`]]

Но я бы вообще по-другому сделал.
В TV tv-code-list у организаций просто бы перечислял ID тех услуг, которые нужны. То есть не 100,101, а 2,3.
Тогда вообще ничего мудрить не придется — просто вызываете любой сниппет, который поддерживает параметр &resources и скармливаете ему этот TV:
[[pdoResources?
&parents=`1`
&tpl=`@INLINE [[+pagetitle]]`
&resources=`[[*tv-code-list]]`
&limit=`0`
&outputSeparator=`, `
]]
и т. д.
Павел Романов
07 мая 2015, 20:04
+1
Сам в PHP ноль, но по идее должен сработать такой костыль )):
<?php
$array = explode(",", $services);
foreach ($array as $value) 
{
    $y = $modx->runSnippet('pdoResources',array(
    'parents'=>100,
    'limit'=>0,
    'includeTVs'=> ''.$field.'',
    'tpl'=>'@INLINE [[+pagetitle]], ',
    'tvFilters'=>''.$field.'==='.$value.''
));
    $out .= $y;
}
return mb_substr($out, 0, -1);
100 тут — ID док-та «Услуги».
И, естественно, нужен pdoTools.

Ну и вызываете:
[[!Snippet?
&services=`[[*TV_у_компании]]`
&field=`TV_у_услуги`
]]
Павел Романов
04 мая 2015, 13:00
0
Как это не надо? Вы как определяете какой чанк-то выводить? У Вас сейчас, я так понимаю, они присутствуют в коде оба, и Вы средствами CSS скрываете тот, который не нужен, и выводите тот, который нужен, правильно?

Вот у Вас и получается в коде два вызова Shopkeeper — CSS-то влияет на визуальную составляющую, а физически из кода ничего не убирает.

Вам же нужно именно физически оставлять в коде страницы только один чанк с одним вызовом Shopkeeper. Это можно сделать с помощью вышеуказанного расширения.
Просто пишете в шаблоне страницы:
<standard>[[$header]]</standard>
<tablet>[[$header_mobile]]</tablet>
<mobile>[[$header_mobile]]</mobile>

Куда уж проще ))
Павел Романов
04 мая 2015, 12:33
0
Нет такого модификатора, который определяет устройство )).
Нужен либо сниппет, либо вышеописанное решение, что по сути, тот же сниппет.
Павел Романов
04 мая 2015, 11:36
0
Попробуйте вот это решение: modstore.pro/packages/utilities/mobiledetect
Тогда сможете просто обрамлять в разные теги разные корзины:

<standard>тут вызов Shopkeeper для десктопов</standard>
<tablet>тут вызов Shopkeeper для пленшетов</tablet>
<mobile>тут вызов Shopkeeper для мобильных</mobile>
Павел Романов
03 мая 2015, 16:33
0
Если «в лоб», то есть &totalVar, который выводит общее кол-во результатов.
Ну и проверяем его на четность.
Но лучше &tplLast используйте. Оно проще будет.

И, кстати, если будет один результат, то все получится и без &tplLast, поскольку он ни под &tpl_n2 ни под &tpl_n3 не попадает.
Павел Романов
03 мая 2015, 16:22
0
Можно проверку сделать.
Опять же, &tplLast никто не отменял ))
Павел Романов
03 мая 2015, 16:08
0
У pdoResources есть параметр &tpl_nN.
Тут указывается имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу (отсюда).
Павел Романов
03 мая 2015, 16:04
0
Свойства » Настройка форм.
Ваш_домен/manager/?a=security/forms