Как убрать приоритет с sitemap.xml в UMI.CMS
Для того, чтобы убрать приоритет в sitemap.xml UMI.CMS, нужно открыть файл umiHierarchyElement.php, который расположен в папке /classes/system/subsystems/models/hierarchy и найти функцию updateSiteMap и заменить код функции на:
public function updateSiteMap($ignoreChilds = false) {
$hierarchy = umiHierarchy::getInstance();
if(!$ignoreChilds) {
$childs = $hierarchy->getChilds($this->id, true, true, 1);
if (is_array($childs)){
foreach ($childs as $childId => $value) {
$child = $hierarchy->getElement($childId)->updateSiteMap($ignoreChilds);
}
}
}
$oldForce = $hierarchy->forceAbsolutePath();
$link = $hierarchy->getPathById($this->id, false, false, true);
$update_time = date('c', $this->update_time);
$sql = "SELECT level FROM cms3_hierarchy_relations WHERE (rel_id = '' or rel_id is null) and child_id={$this->id}";
$result = l_mysql_query($sql);
$dirName = CURRENT_WORKING_DIR . "/sys-temp/sitemap/{$this->domain_id}/";
if (!is_dir($dirName)) mkdir($dirName, 0777, true);
$xml = $dirName . "{$this->id}.xml";
if(file_exists($xml)) unlink($xml);
if ($this->is_active && !$this->robots_deny && !$this->is_deleted) {
$dom = new DOMDocument();
$url = $dom->createElement('url');
$loc = $dom->createElement('loc', $link);
$lastmod = $dom->createElement('lastmod', $update_time);
$dom->appendChild($url);
$url->appendChild($loc);
$url->appendChild($lastmod);
file_put_contents($xml, $dom->saveXML($url));
}
$hierarchy->forceAbsolutePath($oldForce);
}
После того, как это сделано, нужно перейти в папку /sys-temp/sitemap и удалить папку с id вашего домена.
Далее зайти в модуль «Конфигурация», вкладка «Домены» (/admin/config/domains/) и нажать на кнопку «Обновить» в колонке «Обновить sitemap.xml».
На этом все 🙂 Удачи в проектах.
P.S. После обновления система затрет данные изменения и нужно будет повторно вносить изменения.
