Помогите с формированим URL подкатегорий в DLE

M
На сайте с 12.09.2006
Offline
88
779

Здравствуйте, столкнулся с такой проблемой:

DLE 8.2, на него поставил хак "Автоматически генерируемое меню с подсветкой активной категории v0.2"

Но столклунся с проблемой дублирования контента, то есть, сам движок DLE выводит ссылку на подкатегорию как

http://site.ru/категория/подкатегория/

а этот хак как

http://site.ru/подкатегория/

То есть, короткие новости из каждой категории доступны по двум адресам (меню ссылается на один адрес, а, например, родной тег {link-category} на другой).

Вот php код, формирующий url подкатегории в меню:

/* autocat v0.2 start */


if ($config['speedbar'] AND !isset($view_template))
{
$c = get_vars('category');
$currentcat = get_url($category_id);
$parid = get_par($category_id); // эту функцию нужно создать в functions.php

/* сначала определим вывод "главной" кнопки. Если переменная категории пустая - значит, мы на главной, и делаем её активной */
if (empty($nam_e) and (empty($currentcat))) {$tpl->result['categories'] .= '<li><a class=active href="/" title="Главная"><span>Главная</span></a></li>';}
else {$tpl->result['categories'] .= '<li><a href="/" title="Главная"><span>Главная</span></a></li>';}

/* сортируем категории по уровням и подсветке */

foreach($c as $key => $value) {
// Категории 1 уровня:
if ($value['parentid'] == "0") { // если родительская категория = 0, то есть если категория верхнего уровня
if (($parid == $value['id']) or ($nam_e == $value['name'])) { // если номер категории совпадает с текущим родительским номером, или имя категории совпадает с текущим
$tpl->result['categories'] .= '<li><a class=active href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>'; /* вывести категорию с подсветкой */ }
else {
// или обычным списком
$tpl->result['categories'] .= '<li><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
// Категории 2 уровня:
}
else {
if ($category_id == $value['parentid']){
$tpl->result['sub_categories'] .= '<li><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
if ($parid == $value['parentid']) { // если родительские категории совпадают

if (($category_id == $value['id']) or ($nam_e == $value['name'])) { // и если совпадает текущее имя категории
// вывести категорию с подсветкой
$tpl->result['sub_categories'] .= '<li class=active><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
else {
// или обычным списком
$tpl->result['sub_categories'] .= '<li><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
}
}
}
}

Подскажите, пожалуйста, что и как мне тут изменить, что бы добавить между $config['http_home_url'] и $value['alt_name'] альтернативное имя родительской категории?

Вставка php как-то странно работает, приведу код без разметки:


/* autocat v0.2 start */

if ($config['speedbar'] AND !isset($view_template))
{
$c = get_vars('category');
$currentcat = get_url($category_id);
$parid = get_par($category_id); // эту функцию нужно создать в functions.php

/* сначала определим вывод "главной" кнопки. Если переменная категории пустая - значит, мы на главной, и делаем её активной */
if (empty($nam_e) and (empty($currentcat))) {$tpl->result['categories'] .= '<li><a class=active href="/" title="Главная"><span>Главная</span></a></li>';}
else {$tpl->result['categories'] .= '<li><a href="/" title="Главная"><span>Главная</span></a></li>';}

/* сортируем категории по уровням и подсветке */

foreach($c as $key => $value) {
// Категории 1 уровня:
if ($value['parentid'] == "0") { // если родительская категория = 0, то есть если категория верхнего уровня
if (($parid == $value['id']) or ($nam_e == $value['name'])) { // если номер категории совпадает с текущим родительским номером, или имя категории совпадает с текущим
$tpl->result['categories'] .= '<li><a class=active href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>'; /* вывести категорию с подсветкой */ }
else {
// или обычным списком
$tpl->result['categories'] .= '<li><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
// Категории 2 уровня:
}
else {
if ($category_id == $value['parentid']){
$tpl->result['sub_categories'] .= '<li><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
if ($parid == $value['parentid']) { // если родительские категории совпадают

if (($category_id == $value['id']) or ($nam_e == $value['name'])) { // и если совпадает текущее имя категории
// вывести категорию с подсветкой
$tpl->result['sub_categories'] .= '<li class=active><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
else {
// или обычным списком
$tpl->result['sub_categories'] .= '<li><a href="'.$config['http_home_url'].$value['alt_name'].'/" title="'.$value['name'].'"><span>'.$value['name'].'</span></a></li>';
}
}
}
}
}
LovelAss
На сайте с 05.06.2009
Offline
96
#1

Замените


$config['http_home_url'].$value['alt_name']

на


$config['http_home_url'].(!empty($c[$value['parentid']]['alt_name']) ? $c[$value['parentid']]['alt_name'].'/' : '').$value['alt_name']
M
На сайте с 12.09.2006
Offline
88
#2
LovelAss:
Замените

на

Отлично, спасибо, заработало!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий