Перебор и изменение значений из modResource
Здравствуйте. Подскажите пожалуйста. Есть множество карточек товаров modResource, в полях introtext у них вписаны краткие характеристики и разделены они по ";". Сейчас есть необходимость взять каждую характеристику в теги
UPD.
Вроде получил необходимые ресурсы
<li></li>. Возможно напрямую обратится к базе данных, прогнать код через скрипт и записать обратно? Я новичке в php, а тем более в api modx. Не подскажите как правильно получить значения из базы, по полю template, пройтись по выборке циклом и записать обратно? Возможно кто-нибудь поделится наводящими ссылкамиUPD.
Вроде получил необходимые ресурсы
$q = $modx->newQuery('modResource');
$res = $q->where(array('template' => "3"));Теперь задача получить и изменить поля «introtext» Комментарии: 3
$q = $modx->newQuery('modResource');
$q->where(array('template' => "3"));
$products = $modx->getIterator('modResource', $q);
foreach($products as $product){
$product->get('introtext');
}
Спасибо
Реализовал так, на своем примере:
<?
if(!$docs = $modx->getCollection('modResource', array(
'template' => 3
))){return;}
foreach($docs as $doc){
$introtext = $doc->get('introtext');
$introtext = str_replace("; ", ";</li><li>", $introtext);
$introtext = "<li>" . $introtext . "</li>";
$doc->set('introtext',$introtext);
$doc->save();
}А для ТВ, чуть по другому:<?
if(!$docs = $modx->getCollection('modResource', array(
'template' => 3
))){return;}
foreach($docs as $doc){
$ch = $doc->getTVValue('characteristics');
$ch = preg_replace('/<tr([^>]*)>/', '<tr class="table__row">', $ch); //мои манипуляции с полем
$ch = preg_replace('/<td([^>]*)>/', '<td class="table__cell">', $ch); //мои манипуляции с полем
//echo $ch;
$doc->setTVValue('characteristics', $ch);
$doc->save();
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.