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

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Хак DLE добавление подкатегорий с одинаковым URL
Представляем хак DLE добавление подкатегорий с одинаковым URL, хак решает проблему с добавлением категорий с одинаковым URL, когда система не дает это сделать. Фикс для подкатегорий с одинаковым URL [DLE 9.x - 10.x] решает проблему для категорий, если вы хотите сделать одинаковый URL но сами они находятся, как подкатегории в основных категориях.

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

Фильмы
Сериалы


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

Хак DLE добавление подкатегорий с одинаковым URL решит эту проблему.

Открываем /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 то выдаст первую категорию которая ближе в массиве.
Фикс для подкатегорий с одинаковым URL [DLE 9.x - 10.x]
<a href="http://www.dle9.com/">дле</a>

Автор: Gameer (igameer ru)
CMS: DLE 9.x - 10.x и на актуальной версии дле 10.6

Скачать хаки для dle, как хак дле добавление подкатегорий с одинаковым URL по следующей ссылке
  • 100
Рубрика: DLE хаки » Хак для DLE
Ранее » Скачка из модального окна DLE 10.5, DLE 10.6 и выше« Далее DLE Hide by Day
Добавление комментарияОставить комментарий
  • № :2
  • 4 июля 2016 18:01
Цитата: unclesam
Gameer! Подскажи пожалуйста, после установки хака все пошло на ура, а теперь опять пишет "такая категория существует"?
Никаких изменений не проводилось!

(gameer name) посмотрите здесь вероятней всего вы используете дле 11.0 вы этом может быть проблема
  • № :1
  • 3 июля 2016 22:58
Gameer! Подскажи пожалуйста, после установки хака все пошло на ура, а теперь опять пишет "такая категория существует"?
Никаких изменений не проводилось!