Ответов: 3 Просмотров: 59
|
Сделал на пыхе через рекурсию, т.к на языке запросов еще рука не набита. Есть замечания? $list_categories массив объектов всех категорий.
PHP:
скопировать код в буфер обмена
function getParentId($id) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('parent_id'); $query->from($db->quoteName('#__categories')); $query->where($db->quoteName('id') . ' = ' . $id); $db->setQuery($query); $result = $db->loadResult(); if (!(int)$result) { $query->clear(); return $id; } return getParentId($result); } foreach ($list_categories as $key => $value) { if ((int)$value->parent_id) { $par_id = getParentId($value->id); $query = $db->getQuery(true); $query->update($db->quoteName('#__categories')) ->set($db->quoteName('closest_id') . ' = ' . $par_id) ->where($db->quoteName('id') . ' = ' . $value->id); $db->setQuery($query); $db->query(); $query->clear(); } }
|