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

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

С нами с 03 марта 2014; Место в рейтинге пользователей: #43
Павел Романов
01 декабря 2020, 11:14
+1
Вот это не нужно: &class=`pdoResources`.
Класса pdoResources не существует, а если нужно работать с обычными ресурсами (modResource) то это он делает по умолчанию.
Так выводит?
[[!mFilter2?
&limit=`5`
&element=`pdoResources`
&parents=`81`
&filters=`tv|price:number`
&suggestions=`0`
]]
Павел Романов
01 декабря 2020, 01:17
0
Если вызываете не в ресурсе с ID = 81, то не выводит из-за &parent=`81`.
Должно быть &parents=`81`
Павел Романов
21 ноября 2020, 13:56
0
В чанке указывайте docid, limit и вынесите tpl в чанк:
[[getImageList?
    &docid=`[[+id]]`
    &tvname=`slider-card`
    &tpl=`image_tpl`
    &limit=`1`
]]

Чанк image_tpl, соответственно, такой:
<div class="item">
    <img src="[[+image]]" alt="product image">
</div>

В pdoPage это не нужно:
&includeTVs=`1`
Павел Романов
19 ноября 2020, 23:32
+1
А так?
'resources' => $_modx->resource.brandID,
Павел Романов
17 ноября 2020, 13:33
0
Проверьте, что выводит [[+tv.image-tur]] — там скорее всего в пути будет en/, es/ и т. д., которых нет в реальном путь к картинке.
Просто удаляйте их и все:
[+tv.image-tur:replace=`en/==`:replace=`es/==`:phpthumbon=`w=690&h=436&zc=1`]]
Павел Романов
08 ноября 2020, 17:58
+1
Т. Е. Надо и по каждому ресурсу пройти?
Нет, откройте само приложение в админке — там есть форма для пакетного поиска и замены.

А могут ли быть ещё какие-то проблемы при включении fenom, кробе фигурных скобок?
99,9% ошибок из-за них. В любом случае смотрите лог — там все будет.
Павел Романов
08 ноября 2020, 11:41
0
Поставьте modDevTools и пройдитесь по чанкам, шаблонам и ресурсам на предмет замены открывающей фигурной скобки на нее же с последующим пробелом.
Павел Романов
22 октября 2020, 15:08
0
Попробуйте добавить в вызов FormIt параметр emailFrom с любым адресом домена сайта (неважно существующим или нет), например:
&emailFrom=`info@домен_сайта.ru`

Что касается ошибки, отключите системную настройку log_deprecated.
Павел Романов
22 октября 2020, 14:47
0
Ошибки в логе есть?
Данные администратора стоят, пока Вы залогинены в админке. Подобными конструкциями подставляются данные активного пользователя:
[[!+fi.fullname:default=`[[+modx.user.id:userinfo=`fullname`]]`:ne=`0`:show]]
Павел Романов
04 октября 2020, 10:04
+2
modDevTools позволяет не лезть в базу, а искать такие вещи из админки, если открыть само приложение:

Павел Романов
02 октября 2020, 18:25
+1
Можете поставить компонент modDevTools и найти вызов в чанках/шаблонах/ресурсах, либо просто отключите системную настройку log_snippet_not_found
Павел Романов
29 сентября 2020, 11:04
+1
Не совсем понятно для чего два плейсхолдера. Оба вызова берут ресурсы из одного источника (&parents=`10`), без каких-либо условий, а отличаются только лимитом и шаблонами.
В этой ситуации у обоих total будет одинаковый (просто кол-во ресурсов у 10-го родителя) и не нужно ничего складывать — выводите один плейсхолдер.
Павел Романов
16 сентября 2020, 11:14
1
+2
Создайте плагин на событие OnManagerPageInit:
<?php
$modx->regClientCSS('..'.$modx->getOption('manager_url').'admin.css');

В директории manager создайте файл admin.css, где можете прописывать стили для админки.
Блок TV-шки, как правило находится в контейнере с id=«tv15-tr», где 15 — ID самой TV.
Соответственно, прописываете что-то типа:

#tv15-tr { padding:0 0 15px 0!important; margin:0 0 15px 0!important; border-bottom: 2px solid #ccc; }
Павел Романов
06 сентября 2020, 18:13
+1
А так?
$sortdir == 'ASC' ? $order = SORT_ASC : $order = SORT_DESC;
array_multisort($sort_array, $order, $arry_all);
Павел Романов
06 сентября 2020, 16:48
+1
Ну вот как пример:
<?php
$array = array(
    'item1' => array('name' => 'Борис', 'lastname' => 'Гришин', 'age' => 1980),
    'item2' => array('name' => 'Василий', 'lastname' => 'Васильев', 'age' => 1982),
    'item3' => array('name' => 'Геогрий', 'lastname' => 'Демидов', 'age' => 1981),
    'item4' => array('name' => 'Дмитрий', 'lastname' => 'Александров', 'age' => 1983),
    'item5' => array('name' => 'Алексей', 'lastname' => 'Белов', 'age' => 1984),
);

$totalVar=$modx->getOption('totalVar', $scriptProperties, 'total');
$modx->setPlaceholder($totalVar, count($array));
$limit = $modx->getOption('limit', $scriptProperties, 10);
$offset = $modx->getOption('offset', $scriptProperties, 0);

function sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

usort($array, sorter($sortby)); // сортировка
$sortdir == 'DESC' ? krsort($array) :  ksort($array); // направление
$array = array_slice($array, $offset, $limit); //обрезаем, сдвигаем
foreach($array as $item){
    $out .= $item['name'].' '.$item['lastname'].' '.$item['age'].'<br />'; // выводим
}
return $out;
Вызов:
[[!pdoPage?
&element=`SnippetName`
&sortby=`lastname`
&sortdir=`ASC`
&limit=`3`
]]
[[!+page.nav]]
Павел Романов
06 сентября 2020, 14:01
+1
У Вас в сниппете youtubeTest что именно перебирается? Если это объект, о котором MODX знает, то используйте просто getCollection. Там можно сразу все задать:
//...
$items= $modx->getCollection('Ваш_объект', array(
    'limit'=>$limit, 
    'offset' => $offset, 
    'sortby'=> $sortby,
    'sortdir'=> $sortdir,
));
foreach($items as $item){
    $output .= $modx->getChunk($tpl, array());
}
//....
Павел Романов
05 сентября 2020, 11:16
+1
А как в сниппете youtubeTest (результат работы которого Вы пытаетесь разбить на страницы) обрабатываются переменные sort и limit, которые Вы ему передаете?
pdoPage — это просто обертка. Сниппет, для вызова которого он используется, должен сам лимитировать вывод на основе входных параметров и иметь возможность сдвига (offset) для реализации пагинации.
Павел Романов
01 сентября 2020, 14:13
0
Переменная $profile должна быть объектом.
Недавно же обсуждали.
Павел Романов
31 августа 2020, 11:25
0
При клике по кнопке посредством JS подставляйте в поле recipient ID юзера.
Павел Романов
30 августа 2020, 15:34
+1
Это поле extended с массивом значений.
Можно вывести, например, таким сниппетом:
<?php
if($profile = $modx->user->getOne('Profile')) $out = $profile->get('extended')[$field];
return $out;

Ну и вызов:
[[!SnippetName? &field=`usertype`]]