Correct subcat : фикс для подкатегорий с одинаковым URL

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, то выведена первая категория которая ближе в массиве.
 
Версия DLE: 9.х-10.х
Автор: Gameer
Источник:
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Рейтинг@Mail.ru
  • Яндекс.Метрика