Поменять определенное значение TV у всех ресурсов
        Допустим, у ресурсов есть tvparam=1, как пройтись по всем ресурсам и поменять tvparam=1 на tvparam=0 через Console?    
    
    
                                                                                
            Комментарии: 9
$resources = $modx->getCollection('modResource', array('parent' => 1));
foreach ($resources as $resource) {
  if ($resource->getTVValue('tvparam') == 1) {
    $resource->setTVValue('tvparam',0);
    $resource->save();
  }
}            
                Так и знал, что ты ответишь)) Спасибо. Илья, поясни пожалуйста первую строчку.            
                    
                В первой строчке мы получаем в массиве нужные нам ресурсы.            
                    
                Что значит:
Извини за банальные вопросы.
                    array('parent' => 1)Изменения коснуться только дочерних ресурсов родителя с id=1? Извини за банальные вопросы.
                Ага            
                    
                А как пройтись по всем ресурсам? Контейнеров много…            
                    
                Или как задать глубину поиска, чтобы можно было изменить все из parent=0?            
                    
                Попробуй использовать 
                    $modx->getChildIds($parent,$depth,array('context' => 'web')); возвращает массив ID$resources = $modx->getChildIds($parent,$depth,array('context' => 'web'));
$resources = $modx->getCollection('modResource', array('id:IN' => $resources));
foreach ($resources as $resource) {
  if ($resource->getTVValue('tvparam') == 1) {
    $resource->setTVValue('tvparam',0);
  }
}Если нужны только ресурсы, причем все, то$resources = $modx->getCollection('modResource', array('isfolder' => 0));            
                Спасибо большое. Работает.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.