Всего 123 803 комментария

Артур Шевченко
27 сентября 2022, 16:21
0
Так на странице документа есть блок Использование и ссылка на используемую библиотеку.
Евгений
27 сентября 2022, 15:02
0
да
и на паблишед стоит и на сейв
как я понимаю неверно массив внутри написан :)
$words = array('xxx,yyy,zzz,etc..');
вот так сработало пасиб

только нюансик есть, остаются пустые абзацы
$words = array('xxx,<p>yyy</p>,zzz,ddd');
 $pattern = '/(?:' . join('|', $words) . ')/i';
все эти сочетания в документе в абзацах и все равно от всех остается пустой тег абзаца а точнее c nbsp;
<p> </p>
Роман
27 сентября 2022, 13:47
+1
Вы событие у плагина поставили: OnBeforeDocFormSave?
Евгений
27 сентября 2022, 13:37
0
тааак, с этого момента подробнее плиз
ну я тестирую обычно, добавил в поле контент эти сочетания букв
<p>xxx</p><p>yyy</p><p>zzz</p>
и сохраняю и удаления не происходит
Роман
27 сентября 2022, 12:32
+1
Откройте консоль, и протестируйте. Откуда я знаю, что вы там отправляете.
Евгений
27 сентября 2022, 12:10
0
не удаляет, показывается и в админке и на странице
Евгений
27 сентября 2022, 11:27
0
тут вобщем то на коменты стоит запускалка
case 'OnBeforeCommentSave':

        $comment = $modx->event->params['TicketComment']->get('text');

        $output = $matrous->filterText($comment);

        $modx->event->params['TicketComment']->set('text', $output);
        break;
ну и непонятно как им управлять :)
Артур Шевченко
27 сентября 2022, 11:16
0
Если переключишься на новые скрипты — да. Но как уже писали, обновлять старый сайт не надо.
Роман
27 сентября 2022, 10:27
+1
Тут ошибка:
if ($resource->get('template') == 24) {
        if (!$resource->content) {
                $resource->set('published', 0);
        }
        }
Можно просто переписать:
if ($resource->get('template') == 24 && !$resource->get('content')) $resource->set('published', 0);
save можно не ставить, он потом все равно будет сохранять:
$resource->save();
Проверил, работает, поправьте ошибки и снова проверьте. Может быть проблема в том еще, что она когда удаляет не нужное, но на странице это не показывается, тут наверно нужно как-то отдельно перегружать блок.
Евгений
27 сентября 2022, 09:50
0
почемуто все равно не цепляет :(
Роман
27 сентября 2022, 09:31
0
Я что-то это упустил это. Но тут уже сами перепишите, ничего сложного нет.
$words = array('xxx', 'yyy', 'zzz', 'etc..');
$pattern = '/<p>(?:' . join('|', $words) . ')<\/p>/i';
$content = preg_replace($pattern, '', $content);
Евгений
27 сентября 2022, 09:24
0
выглядит годно но не вырезает например такое
<p>xxx</p>
сам код такой
case ' OnBeforeDocFormSave':
        /** @var TYPE_NAME $resource */
        if ($resource->get('template') == 24) {
        if (!$resource->content) {
                $resource->set('published', 0);
        }
        }
        
        $content = $resource->get('content');
        $words = array('<p>xxx</p>', '<p>yyy</p>', '<p>zzz</p>', '<p>ddd</p>');
        $pattern = '/\b(?:' . join('|', $words) . ')\b/i';
        $content = preg_replace($pattern, '', $content);
        $resource->set('content', $content);
        $resource->save();
        break;
Роман
27 сентября 2022, 09:00
+1
Единственное могут быть проблемы со склонениями, тут или расширить список или еще как-то переписать.
Роман
27 сентября 2022, 08:58
+1
А в чем сложность? Сделайте плагин на событие OnBeforeDocFormSave
if ($modx->event->name != 'OnBeforeDocFormSave') {return false;}
$content     = $resource->get('content');
$words = array('xxx', 'yyy', 'zzz', 'etc..');
$pattern = '/\b(?:' . join('|', $words) . ')\b/i';
$content = preg_replace($pattern, '', $content);
$resource->set('content', $content);
Николай Савин
27 сентября 2022, 08:50
0
Не нужно обновлять старый сайт. Вы ничего не выигрываете от этого.
smomrok
27 сентября 2022, 08:36
0
Проблема решена! Перенастроить dns на серваке нужно было.
Евгений
27 сентября 2022, 00:18
+1
А если старый магаз обновить то фоторамка умрет?
Руслан
26 сентября 2022, 21:13
0
Файл находится /core/components/tickets/processors/web/file/upload.class.php
Александр Туниеков
26 сентября 2022, 20:48
0
resourceMap либо не генерируется либо его что-то прибивает. Не генерируется значит что то не так с модекс. Что-то прибивает вот здесь modx.pro/solutions/22267 рекомендуют плагин который прибивает
Костыль OnMODXInit ниже может послужить хорошим решением данной проблемы, и будет надёжным подспорьем довольно долгое время.

//  Resource map patch to reduce parse time
  if( ! empty( $modx->context->resourceMap ) ) {
      $options = [ xPDO::OPT_CACHE_KEY => 'context_settings/' . $modx->context->key ];
      if( $val = $modx->getCacheManager()->get( 'context', $options ) ) {
          $val[ 'resourceMap' ] = [];
          $modx->getCacheManager()->set( 'context', $val, 0, $options );
      }
  }
  //--//
Искушённый читатель предложит расширить стандартный класс менеджера кеширования и подменить его. На мой взгляд избавиться от плагина потом проще