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

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

С нами с 03 марта 2014; Место в рейтинге пользователей: #70
Павел Романов
27 мая 2019, 14:02
+1
См. шестерёнка -> Настройка форм.
Павел Романов
30 апреля 2019, 10:02
0
Добавить какие-либо нецифровые символы в возможные значения TV, чтобы прописывалось, к примеру, так:
_120_
_112_

Ну и в вызове:
&tvFilters=`my_filter==%_[[+id]]_%`
Павел Романов
26 апреля 2019, 18:07
+1
Если у Вас robots как ресурсы, заморозьте им URI.
Павел Романов
25 апреля 2019, 09:56
1
+1
Сниппет ctxname:
<?php
if(!$ctx = $modx->getObject('modContext', array('key' => $input))) return $input;
return $ctx->get('name');

Использовать как модификатор:
[[*context_key:ctxname]]
или 
{$_modx->resource.context_key | ctxname}
Павел Романов
14 апреля 2019, 12:22
+1
Проверьте вывод [[*TovarRelated]] на странице статьи — там pagetitle товаров выводятся слитно, а не через разделитель ||, который Вы используете в getMyResources на пятой строке.
Укажите у этой TV тип вывода «Разделитель», поставьте в качестве него запятую и используйте ее в explode.

Но вообще все можно упростить. Сниппет getrel:
<?php
$titles = explode(',', $input);
$ids = array();
foreach($titles as $title){
    if(!$prod = $modx->getObject('modResource', array('pagetitle' => $title))) continue;
    $ids[] = $prod->get('id');
}
count($ids) > 0 ? $out = implode(',', $ids) : $out = 9999999;
return $out;

Вызов в шаблоне статьи:

[[msProducts?
&tpl=`gridProductTpl`
&limit=`4`
&parents=`10`
&resources=`[[*TovarRelated:getrel]]`
]]
Павел Романов
12 апреля 2019, 15:07
0
Сделайте копию чанка tpl.ms2Gallery и настройте его как нужно.
Новый чанк укажите в вызове в параметре &tpl.
Павел Романов
08 апреля 2019, 13:12
0
Если эти значения используются только для вывода на странице товара или в чанках, достаточно просто указать ID нужных ресурсов-цветов через || (если нет настроенного разделителя):
12||13||14||15
Если разделитель указан, то через него.

В случае фильтрации или каких-либо выводов ресурсов с учетом значения данного параметра, надо не указывать значения по умолчанию, а всё писать в базу. Для этого создайте плагин на событие onDocFormSave, где пишите нужные данные через ||:
<?php
if(!$template = $resource->get('template')) return; 
if($modx->event->name == 'onDocFormSave' && $mode == 'new' && $template  == 5) {  // Вместо 5 укажите ID шаблона товара
    $resource->setTVValue('colors', '12||13||14||15');
}
Павел Романов
07 апреля 2019, 19:15
+1
В чанке doc-section так parents должен быть таким:
&parents=`[[+id]]`
Павел Романов
02 апреля 2019, 20:28
1
+1
Создайте плагин, в котором получайте значение TV и удаляйте директорию.
Если на удаление ресурса, то повесьте плагин на событие OnDocFormDelete, если на очистку корзины, то на OnBeforeEmptyTrash.

В первом случае есть объект ресурса и значение его TV можно получить через:
$resource->getTVValue('tvname');

Во втором — есть массив ID удаляемых ресурсов, которые можно использовать для получения объектов и дальше как в первом варианте.
Павел Романов
22 марта 2019, 19:04
0
Если написано «плагин», значит надо создать именно плагин ).
Вот рабочий:
<?php
if($modx->event->name == 'xLikeOnVote'){
    $tvid = 5; //тут вместо 5 - ID TV "like" 
    $tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid, 'contentid' => $parent
    ));
    if($tvo){
        $tvo->set('value', $rating);
    }else{
        $tvo = $modx->newObject('modTemplateVarResource', array(
            'tmplvarid' => $tvid,
            'contentid' => $parent,
            'value' => $rating
        ));
    }
    $tvo->save();
}

Обратите внимание на комментарий на третьей строке — там нужно поставить ID Вашей TV.
Ну и на вкладке «Системные события» не забудьте отметить флажок xLikeOnVote
Павел Романов
22 марта 2019, 18:27
0
Можете xLike поставить — он тоже умеет в TV писать (в конце пример плагина).
Павел Романов
22 марта 2019, 18:05
0
Э… а Вы TV с шаблоном тикетов вообще связали?
Павел Романов
22 марта 2019, 17:41
0
Кликните по «Предложения».
Справа откроется редактор, внизу будет таблица с тикетами и там Правый клик » Изменить:


Там вкладка Дополнительные поля (TV), на которой будет like:


И почитайте документацию — там много интересного )).
Павел Романов
22 марта 2019, 17:30
0
Они никак не связаны. У Вас что в TV-шках? Проверили, значения там прописаны?

Я просто создал TV like и вбил туда 1 и 2, которые для теста вывожу рядом с заголовком:
Павел Романов
22 марта 2019, 17:17
0
А что там показывать — он такой как я выше написал:


Вывод, если направление ASC:


Вывод, если DESC:


В запросе сортировка есть:
Павел Романов
22 марта 2019, 16:59
0
Проверил у себя, все работает.
Если дадите доступ в админку (почта в профиле), гляну.
Павел Романов
22 марта 2019, 16:40
0
Это вообще не важно.