• Автор:

    Flesha
  • Добавлено:

    ноя 22, 2015
  • Комментариев:

    1
  • Просмотров:

    1 184

Хак Фикс для подкатегорий с одинаковым URL

Хак Фикс для подкатегорий с одинаковым URL

Данный хак решает проблему для категорий у которых должен быть с одинаковым URL но сами они находятся как подкатегории в основных категориях.

Для тех кто не понимает, объясняю примером. К примеру есть две категории основные :
- Фильмы
- Сериалы

У категории Фильмы есть подкатегория Боевик, который имеет url - boevik. На сайте это видно как /film/boevik. Теперь хотим создать ту же категорию только для основной категории Сериалы. На что получим ошибку Что данная категория уже есть. Но это не так, для сериалов ее нет только для фильмов.

Этот хак, решит эту проблему.

Открываем /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;
}


Далее открываем /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.x - 10.x
Автор: Gameer.name dle
Вернуться

Комментарии:


  1. Pegucka → 29 ноября 2015 12:06
    Спасибо, Gameer! Пригодилось!
    Только вот бы еще оно в speedbar отображалось!
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.