Евгений

Евгений

С нами с 07 февраля 2013; Место в рейтинге пользователей: #343
Евгений
10 сентября 2023, 12:54
0
а как это можно записат ьв чанке?
номер выводится как
[[+idx]]
Евгений
09 сентября 2023, 23:20
0
[[pdoResources? &tpl=`books` &parents=`4` &includeTVs=`rtp,image` &sortby = `{"rtp":"DESC"}` &tvFilters=`volatility==%low%`]]
например такое, порядковые номера не прокатят никак так как списки не фиксированы
Евгений
28 мая 2023, 14:23
0
подскажите как сделать чтобы брало не только из одного TV а из двух или трех?
точнее не как брать а как в коде плагина прописать так чтобы исключало сразу слова из 2 или 3 TV?

сейчас это
$words = json_decode($res->getTVValue('words'), true);         
$pattern = '/(?:' . join('|', $words) . ')/i';
как я понимаю можно
1 сделать переменную words2
а в строке pattern добавить его в исключение (не знаю только как )

2 добавить сразу данные из TV поля words2 в переменную words
Евгений
28 мая 2023, 10:17
0
у него есть какой то глюк или ограничение на слова и они просто обнуляются
Евгений
25 мая 2023, 14:16
0
вывод через разделитель или по умолчанию?
Евгений
25 мая 2023, 12:47
0
рабочий плагин строка в нем выглядит так если слова руками вписывать
$words = array('word1,word2`)
Евгений
25 мая 2023, 11:36
0
<?php
switch ($modx->event->name) {
        case 'OnDocPublished':
        case 'OnBeforeDocFormSave':
        case 'OnDocFormSave':
            if ($resource->get('template') == 27 && !$resource->get('content')) $resource->set('published', 0);
$res = $modx->getObject('modResource', 11);
$words = $res->getTVValue('words');
$modx->log(1, print_r($words,1));
           
            $content = $resource->get('content');
            $pattern = '/(?:' . join('|', $words) . ')/i';
            $content = preg_replace($pattern, '', $content);
            
            $resource->set('content', $content);
            $resource->save();
        break;
              
}
вот так выводит, надо по и дее без ковычек и в ...
["testx","testy"]

ну и само собой слова не чистятся
на coloricker плагин ругался я его отключил

[2023-05-25 11:39:37] (ERROR @ /var/www/www-root/data/www/.ru/core/cache/includes/elements/modplugin/59.include.cache.php: 9) [«testx»,«testy»]
[2023-05-25 11:39:37] (ERROR @ /var/www/www-root/data/www/.ru/core/cache/includes/elements/modplugin/59.include.cache.php: 12) PHP warning: join(): Invalid arguments passed

12 строка — $pattern = '/(?:'. join('|', $words). ')/i';
Евгений
25 мая 2023, 09:48
0
ошибка выбивается сразу как я добавляю строку
$words = json_decode($res->getTVValue('words'), true);

а при такой $words = $res->getTVValue('words');
ее нет

в серверных логах ошибок нет
Евгений
25 мая 2023, 09:38
0
да, при сохранении выскакивает ошибка, но зависания нет, просто продолжаешь работать а сохранить не можешь :)

при этом для всех шаблонов хотя там в условиях указан конкретный
лог ошибок пуст
старый код плагина где я слова перечислял через запятую не вызывает проблем
Евгений
25 мая 2023, 09:25
0
<?php
switch ($modx->event->name) {
        case 'OnDocPublished':
        case 'OnBeforeDocFormSave':
        case 'OnDocFormSave':
            if ($resource->get('template') == 24 && !$resource->get('content')) $resource->set('published', 0);
$res = $modx->getObject('modResource', 11);
$words = json_decode($res->getTVValue('words'), true);
           
            $content = $resource->get('content');
            $pattern = '/(?:' . join('|', $words) . ')/i';
            $content = preg_replace($pattern, '', $content);
            
            $resource->set('content', $content);
            $resource->save();
        break;
              
}
когда делаю так получаю ошибку при сохранении… которую выше писал но на снипет colorpicker
Евгений
24 мая 2023, 22:09
0
tvsuperselect
и такой код
<?php
switch ($modx->event->name) {
        case 'OnDocPublished':
        case 'OnBeforeDocFormSave':
        case 'OnDocFormSave':
            if ($resource->get('template') == 24 && !$resource->get('content')) $resource->set('published', 0);
            $res = $modx->getObject('modResource', 11);
            $words = $res->getTVValue('words'); // тут получить слова, распарсить строку, смотря что там вернет.
           
            $content = $resource->get('content');
            $pattern = '/(?:' . join('|', $words) . ')/i';
            $content = preg_replace($pattern, '', $content);
            
            $resource->set('content', $content);
            $resource->save();
        break;
              
}
не удаляет слова указанные в tv words
Евгений
24 мая 2023, 21:40
0
а как сделать так чтобы он удалял именно конструкцию word1 а не просто word?
Евгений
24 мая 2023, 19:14
0
с tvsuperselct вид тв поля какой нужен
Евгений
24 мая 2023, 19:10
0
тоже не понял но там и на другие снипеты орал
Евгений
24 мая 2023, 16:42
0
/core/components/gallery/elements/tv/output/ выдает такую ошибку при сохранении с этой строкой
Евгений
24 мая 2023, 15:37
0
создал тв поле migx добавил слова testx testy в tv и в поле контент

<?php
switch ($modx->event->name) {
        case 'OnDocPublished':
        case 'OnBeforeDocFormSave':
        case 'OnDocFormSave':
            if ($resource->get('template') == 24 && !$resource->get('content')) $resource->set('published', 0);
            $res = $modx->getObject('modResource', 11);
            $words = $res->getTVValue('words'); // тут получить слова, распарсить строку, смотря что там вернет.
           
            $content = $resource->get('content');
            $pattern = '/(?:' . join('|', $words) . ')/i';
            $content = preg_replace($pattern, '', $content);
            
            $resource->set('content', $content);
            $resource->save();
        break;
              
}
но увы не подчищает
может разделитель в параметрах вывода TV или чтото в коде не так? как найти причину непонятно
Евгений
24 мая 2023, 11:29
0
а как обратиться к TV определенного ресурса ))))
например у него id=11 и TV со словами будет в нем