Все для DataLife Engine / DLE хаки / Хак для DLE / Хак DLE добавление подкатегорий с одинаковым URL

Хак 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]

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

Скачать хаки для dle, как хак дле добавление подкатегорий с одинаковым URL по следующей ссылке

Fiks-dlya-podkategoriy-s-odinakovym-URL-DLE-9.x-10.x.rar [71,43 Kb] (cкачиваний: 80)
  • 100

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

dle9.com от 4 июля 2016 18:01
Цитата: unclesam
Gameer! Подскажи пожалуйста, после установки хака все пошло на ура, а теперь опять пишет "такая категория существует"?
Никаких изменений не проводилось!

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

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent