Быстро включаем Fenom на страницаx.

Приветствую, довольно часто приходят клиенты с просьбой внести какие-то правки на сайте, и бывает так, что fenom на страницах не используется, а я привык, он удобные. Иду тогда в настройки и включаю. После этого сайт перестает отображаться, вместо страниц белый экран. Надо включать сохранение ошибок и искать, где есть открывающая фигурная скобка и ставить после неё пробел. Хорошо, если это только код метрики в шапке, но бывают запущенные случаи, тогда проще написать небольшой скрипт. Собственно его и выкладываю. Он простой, но скопировать готовое всегда проще)))

<?php
 /**
  * @param string $className
  * @param string $field
  * @return string
  */
function replaceCurlyBrace($className, $field, $where = array()){
    global $modx;
    $objects = $modx->getIterator($className, $where);
    $c = 0;
    if($objects){
        foreach($objects as $object){
            $value = $object->get($field);
            $new_value = str_replace('{', '{ ', $value);  
            $new_value =  preg_replace('/\{\s(foreach|\/|if|var|set|switch|case|default|\$|\'|include|else)/', '{\1', $str);
         
           $object->set($field, $new_value);
           $object->save();
           $c++;          
        }
    }
    return $c . '
';
}
// передаем имя класса и поле, в котором нужно сделать замены
echo replaceCurlyBrace('modTemplate', 'content');
echo replaceCurlyBrace('modChunk', 'snippet');
!!! ВАЖНО!!! Перед запуском сделайте резервную копию.

!!! ВАЖНО!!! Если хотите обработать только чанки из определенных категорий, передайте третьим параметром массив вида
array('category:IN' => [0,32]) // так будут получены чанки без категории и из категории с id 32
ID категории надо смотреть в списке категорий, а не на вкладке чанки или какой-то ещё.
Артур Шевченко
25 марта 2022, 23:03
modx.pro
5
996
+2
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0