Запись устарела, для релиза 1.8 неактуально!
Навеяно вот этим постом и проблемами с лишними ссылками в глубиномере на своем сайте.В общем суть в том, что при проверке ссылки на то, что она уже есть в глубиномере, зачем-то дополнительно кроме link проверяется еще и title. В результате, если название раздела отличается от названия соответствующего пункта меню, в глубиномере появляется 2 ссылки на 1 и тот же адрес. Дополнительно добавил проверку, чтобы в глубиномер не добавлялись ссылки на промежуточные пункты меню с адресом "#".
Правим все тот же файлик /core/classes/page.class.php, функцию public function addPathway($title, $link='') приводим к следующему виду:
public function addPathway($title, $link=''){ //Если ссылка не указана, берем текущий URI //Проверяем, есть ли уже в глубиномере такое звено $already = false; foreach($this->pathway as $key => $val){ if ($this->pathway[$key]['link'] == $link){ $already = true; } } //Если такого звена еще нет, добавляем его if(!$already){ } return true; }
public function addMenuPathway($menuid){ $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); //Получаем путь к пункту меню $rs_item = $inDB->query("SELECT * FROM cms_menu WHERE id = $menuid"); if ($inDB->num_rows($rs_item)){ $current_item = $inDB->fetch_assoc($rs_item); $left_key = $current_item['NSLeft']; $right_key = $current_item['NSRight']; $sql = "SELECT id, title, link, linktype FROM cms_menu WHERE NSLeft <= $left_key AND NSRight >= $right_key AND parent_id > 0 ORDER BY NSLeft"; $rs_rows = $inDB->query($sql); while($item=$inDB->fetch_assoc($rs_rows)){ if ($item['id']>1 && $item['link'] !=='#'){ $this->addPathway($item['title'], $inCore->menuSeoLink($item['link'], $item['linktype'], $item['id'])); } } } return true; }
Ах, да чуть не забыл: не гарантируется 100% работоспособность данного кода на Ваших рабочих проектах, проверялось на полупустом сайте!, перед применением обязательно делаем бекап!
Реклама #
lokanaft 13 лет назад #
http://www.touinf.ru/azija/obedinennye-arabskie-emiraty
googlebot 13 лет назад #
googlebot 13 лет назад #
Soviet-Girl 13 лет назад #