вопрос
Проблема в том, что хочется привести структуру сайта к одному виду:
dle-faq.ru/cat1/drama/
dle-faq.ru/cat2/drama/
Но DLE не дает создать категории с одинаковыми url.
Можно ли это как-нибудь осуществить на свежей DLE 12.1?
dle-faq.ru/cat1/drama/
dle-faq.ru/cat2/drama/
Но DLE не дает создать категории с одинаковыми url.
Можно ли это как-нибудь осуществить на свежей DLE 12.1?
Нет.
Существующая схема организации категорий не позволяет реализовать подобное.
При работе движок берет строку:
Убирает слеши по бокам и разбивает строку по тем же слешам, получаем массив
Не важно какого уровня вложенности категория, берется только последний элемент массива
Остальные данные строки игнорируются.
UPD. Автор вопроса нашел хак для решения задачи.
В принципе вроде как работает, но полноценно не тестировал.
Хотя функцию из той инструкции я бы иначе написал:
Существующая схема организации категорий не позволяет реализовать подобное.
При работе движок берет строку:
/cat2/drama/
Убирает слеши по бокам и разбивает строку по тем же слешам, получаем массив
['cat', 'drama']
Не важно какого уровня вложенности категория, берется только последний элемент массива
drama
Остальные данные строки игнорируются.
UPD. Автор вопроса нашел хак для решения задачи.
В принципе вроде как работает, но полноценно не тестировал.
Хотя функцию из той инструкции я бы иначе написал:
function get_ID($cat_info, $category, $parent = 0, $level = 0) {
$category = explode('/', trim($_GET['category'], '/'));
foreach ($cat_info as $v) {
if ($v['parentid'] == $parent && $v['alt_name'] == $category[$level]) {
if ($id = get_ID($cat_info, '', $v['id'], $level+1)) {
return $id;
} else {
return $v['id'];
}
}
}
return false;
}