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

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

С нами с 03 марта 2014; Место в рейтинге пользователей: #36
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
03 мая 2015, 13:33
0
Можно так:
<input type="email" name ="email" value="[[!+fi.email:default=`[[!+modx.user.id:userinfo=`email`]]`:ne=`0`:show]]" />
Тут полный список: docs.modx.pro/system/the-basics/filters-input-and-output#Модификатор-UserInfo
02 мая 2015, 08:53
+1
Все верно.
У меня запятая стоит прямо в шаблоне после [[+id]]:
......'tpl'=>'@INLINE [[+pagetitle]]==[[+id]],'......
Но можно и в параметрах вывода.
01 мая 2015, 19:41
1
+1
Если Вы хотите на какой-то (целевой) странице выводить какие-то другие, то есть два варианта.

1. Сделать у целевой страницы TV, где указывать через запятую просто ID нужных страниц. Ну а дальше просто через &resources их и выводить.
Для удобства TV можно сделать типа «Множественный выбор» с возможными значениями, задаваемыми, к примеру, через EVAL:
@EVAL return $modx->runSnippet('pdoResources',array('parents'=>8,'depth'=>0,'limit'=>0,'sortby'=>'{"pagetitle":"ASC"}','tpl'=>'@INLINE [[+pagetitle]]==[[+id]],','outputSeparator'=>'||'));

2. У выводимых страниц сделать TV c указанием на каких целевых их выводить. В этом случае через EVAL будет то же самое, только шаблон другой:
@EVAL return $modx->runSnippet('pdoResources',array('parents'=>ID_родителя,'depth'=>0,'limit'=>0,'sortby'=>'{"pagetitle":"ASC"}','tpl'=>'@INLINE [[+pagetitle]]==[[+pagetitle]]','outputSeparator'=>'||'));
Тогда, как я и написал в предыдущем комменте, нужно на целевой странице вызывать их через:
&tvFilters=`view_page==%[[*pagetitle]]%`
01 мая 2015, 18:10
+1
&tvFilters=`view_page==%[[*pagetitle]]%`
24 апреля 2015, 08:40
0
Можете прямо в вызове Formit указать:
&emailFrom=`support@domain.ru`
Ну и тему сделайте какую-нибудь типа:
&emailSubject=`Сообщение с сайта [[++site_url]]`
20 апреля 2015, 15:00
+1
1. В приложениях выбираете MIGX.
2. На вкладке MIGX (вторая) жмете «Добавить элемент».
3. Указываете в поле Name любое название конфигурации. Например, icons.
4. На вкладке Formtabs (тут настраиваются поля окна редактора) жмете «Добавить элемент».
— Снова жмете «Добавить элемент», и вбиваете: Fieldname — icon, Caption — Иконка, InputTVType — image.
На вкладке Mediasources также — «Добавить элемент» и ставите контекст и ID того источника файлов, который нужен. Сохраняете.
— Снова жмете «Добавить элемент», и вбиваете: Fieldname — text, Caption — Название. Сохраняете.
5. Жмете 2 раза «Выполнено». Это получилось окно добавления элементов.
6. Теперь настраиваете вывод в админке. На вкладке «Columns» также добавляете элементы icon и text. В первом случае Header — Иконка, Field — icon, Renderer — this.render.Image. Во втором: Header — Название, Field — text и можете поставить Cell Editor this.text.editor, чтобы можно было прямо в таблице редактировать название, не открывая окна редактора.
7. Все сохраняете, нажав «Выполнено».
8. А теперь просто у TV «comfortably-n-why» ставите в поле «Конфигурации» — icons и все. Никаких JSON во «Вкладках формы» и «Разметке колонок» не нужно.