Массовое редактирование TV поля у родителя с 2 вложенностью
Всем привет, пытаюсь поменять значение TV у ресурсов с родителем 211, который имеет еще подпапки: prnt.sc/-BKzwGVUvUxG
Необходимо заменить значение поля seotitle, сделать его как pagetitle
Пытаюсь в консоли выполнить такой скрипт, однако изменений не происходит. Подскажите пожалуйста, как сделать?
<?php
$resources = $modx->getCollection('modResource',array('parent' => 211));
foreach ($resources as $res) {
$res->set('seotitle', $res->get('pagetitle'));
$res->set('isfolder', 1);
$res->save();
}
Необходимо заменить значение поля seotitle, сделать его как pagetitle
Пытаюсь в консоли выполнить такой скрипт, однако изменений не происходит. Подскажите пожалуйста, как сделать?
<?php
$resources = $modx->getCollection('modResource',array('parent' => 211));
foreach ($resources as $res) {
$res->set('seotitle', $res->get('pagetitle'));
$res->set('isfolder', 1);
$res->save();
}
Комментарии: 11
$res->setTVValue('seotitle', $res->get('pagetitle'));
<?php
/** @var modX $modx */
/** @var modResource $resources */
$resources = $modx->getCollection('modResource',array('parent' => 211));
foreach ($resources as $res) {
$res->setTVValue('seotitle',$res->get('pagetitle'));
$res->set('isfolder', 1);
$res->save();
}
Спасибо, сработало, но только для 1 уровня вложенности. А есть возможность на все подпапки распространить действие скрипта? prnt.sc/xnhfQGV-tKee
<?php
/** @var modX $modx */
/** @var modResource $resources */
$resources = $modx->getChildIds(211,6,array('context' => 'web'));
foreach ($resources as $res) {
$res->setTVValue('seodescription',$res->get('pagetitle'));
$res->set('isfolder', 1);
$res->save();
}
Попробую так, ошибкиFatal error: Uncaught Error: Call to a member function setTVValue() on int in
<?php
/* @var modX $modx*/
$getChildIds= $modx->getChildIds(211,6,array('context' => 'web'));
foreach ($getChildIds as $chId){
/** @var modResource $res */
$res = $modx->getObject('modResource',$chId);
$res->setTVValue('seotitle',$res->get('pagetitle'));
$res->set('isfolder', 1);
$res->save();
}
Спасибо большое, сработало. Е есть ли возможность в seotitle не только pagetitle поместить но и добавить содержимое, как то так get('pagetitle+content')?
<?php
/* @var modX $modx*/
$getChildIds= $modx->getChildIds(211,6,array('context' => 'web'));
foreach ($getChildIds as $chId){
/** @var modResource $res */
$res = $modx->getObject('modResource',$chId);
$res->setTVValue('seotitle',$res->get('pagetitle')." - ".$res->get('description'));
$res->set('isfolder', 1);
$res->save();
}
Спасибо большое!
А можно ли добавить свой текст в конструкцию? Наподобие:
<?php
/* @var modX $modx*/
$getChildIds= $modx->getChildIds(211,6,array('context' => 'web'));
foreach ($getChildIds as $chId){
/** @var modResource $res */
$res = $modx->getObject('modResource',$chId);
$res->setTVValue('seotitle',$res->get('pagetitle')." - ".$res->get('description')." - ". - 'Медцентр СИМФОНИЯ');
$res->set('isfolder', 1);
$res->save();
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.