Correct subcat : фикс для подкатегорий с одинаковым URL
К примеру, есть две основные категории Фильмы и Сериалы. У категории Фильмы есть подкатегория Боевик, которая имеет url - /boevik и на сайте видна как /film/boevik. Теперь создаем тоже подкатегорию Боевик, которая имеет url - /boevik, но для основной категории Сериалы. Мы получим ошибку, что данная категория уже есть. Но это не так, она есть только для категории Фильмы. Этот хак поможет решить проблему для категорий у которых должен быть одинаковый URL, но сами они находятся в основных категориях.
Установка:
1. Открыть engine/modules/functions.php и найти:
function get_ID($cat_info, $category) {
foreach ( $cat_info as $cats ) {
if( $cats['alt_name'] == $category ) return $cats['id'];
}
return false;
}
Заменить на:
function get_ID($cat_info, $category) {
$arr_cat = array();
foreach ( $cat_info as $cats ) {
if( $cats['alt_name'] == $category ) $arr_cat[] = $cats['id'];
}
if(count($arr_cat) > 1)
{
if($_GET['category'])
{
$name_first_cat = explode('/', $_GET['category']); $name_first_cat = $name_first_cat[0];
foreach($arr_cat as $first_cat)
{
if($cat_info[$cat_info[$first_cat]['parentid']]['alt_name'] == $name_first_cat) return $first_cat;
}
}
}
else
return $arr_cat[0];
return false;
}
2. Открыть engine/inc/categories.php, найти и удалить:
$row = $db->super_query( "SELECT alt_name FROM " . PREFIX . "_category WHERE alt_name ='{$alt_cat_name}'" );
if( $row['alt_name'] ) {
msg( "error", $lang['cat_error'], $lang['cat_eradd'], "?mod=categories" );
}
Готово!
Важно: указывать в ссылке необходимо только полный путь /film/boevik и /serial/boevik. Если просто перейти на /boevik, то выведена первая категория которая ближе в массиве.
• Автор: Gameer
• Источник
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.
Комментариев 2