Как создать одноименную категорию в DLE?

verbatum

Новичок
Регистрация
6 Июл 2017
Сообщения
51
Реакции
3
Баллы
8
Хотелось бы создать одинаковые категории для фильмов и сериалов.
К примеру фильм/фэнтези и сериал/фэнтези. Как реализовано на hdrezka.
Но при добавлении выскакивает "Категория с таким именем уже существует!"
Как это можно реализовать?
 

protti

Новичок
Регистрация
2 Апр 2017
Сообщения
196
Реакции
61
Баллы
28
Создай основные категории (фильмы, сериалы, мультфильмы), а уже потом в них добавляй жанры. Не уверен, но по идее должно получиться.
 

Seopirat

Модератор
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
21 Фев 2017
Сообщения
2.177
Реакции
1.562
Баллы
113
@protti, уровень вложенности правда при этом увеличится
 

rofl

Приватовец
Приватовец
Регистрация
22 Фев 2017
Сообщения
555
Реакции
146
Баллы
43

Морган

Приватовец
Приватовец
VIP
Регистрация
15 Июн 2017
Сообщения
474
Реакции
155
Баллы
43
А если финт ушами)
Для фильмов: Боевики, Вестерны .. и т.п.
Для сериалов: Боевик, Вестерн, ...
Т.е. разница в окончании, в единственном и множественном числе.
 

rofl

Приватовец
Приватовец
Регистрация
22 Фев 2017
Сообщения
555
Реакции
146
Баллы
43
Я так делаю serialy-boeviki
filmy-boeviki
 

protti

Новичок
Регистрация
2 Апр 2017
Сообщения
196
Реакции
61
Баллы
28
А ну если из-за альтернативного имени конфликт, тогда да, чпу в ручную заполнять и все
 

Romantv

Новичок
Регистрация
27 Фев 2017
Сообщения
983
Реакции
366
Баллы
63
так не получтся
upload_2017-8-15_17-21-14.png
 

MadPitbull

Приватовец
Приватовец
VIP
Регистрация
6 Апр 2017
Сообщения
104
Реакции
15
Баллы
18
Хотелось бы создать одинаковые категории для фильмов и сериалов.
К примеру фильм/фэнтези и сериал/фэнтези. Как реализовано на hdrezka.
Но при добавлении выскакивает "Категория с таким именем уже существует!"
Как это можно реализовать?
К примеру есть две категории основные :
* Фильмы
* Сериалы
У категории Фильмы есть подкатегория Боевик, который имеет 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" );
}
Далее в этом же файле ищем и удаляем :
Код:
$row = $db->super_query( "SELECT id, alt_name FROM " . PREFIX . "_category WHERE alt_name = '$alt_cat_name'" );
if( $row['id'] and $row['id'] != $catid ) {
    msg( "error", $lang['cat_error'], $lang['cat_eradd'], "javascript:history.go(-1)" );
}
Указывать ссылки только по полным путям /film/boevik и /serial/boevik. Если же перейти просто на /boevik то выдаст первую категорию которая ближе в массиве.
 
Сверху Снизу