Хотелось бы создать одинаковые категории для фильмов и сериалов.
К примеру фильм/фэнтези и сериал/фэнтези. Как реализовано на 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 то выдаст первую категорию которая ближе в массиве.