Редактор темы

Решение проблемы для подкатегорий с одинаковым url

  • Автор темы Автор темы PunPun
  • Дата начала Дата начала

PunPun

VIP Кинотрафик v2
Регистрация
11 Июн 2015
Сообщения
7.448
Рейтинг реакций
3.194
Баллы
113
1/3
Автор темы
corcat.jpg
Для своего проекта делаю категории на сайте. И тут из-за движка встала проблема у меня. Так как нельзя использовать одинаковые урлы даже если они будут в подкатегориях.

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

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

Открываем /engine/modules/functions.php находим там код :
PHP:
function get_ID($cat_info, $category) {
    foreach ( $cat_info as $cats ) {
        if( $cats['alt_name'] == $category ) return $cats['id'];
    }
    return false;
}
Меняем на :
PHP:
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 находим и удаляем код :
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" );
}
Далее ищем и удаляем :
PHP:
$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 то выдаст первую категорию которая ближе в массиве.

Автор жи есть : Gameer
 
Последнее редактирование:
решение нашлось. на какой урл больше трафа придет,
этот? url - boevik. или этот? /film/boevik под категории это все лишнее,они не нужны
 
Автор темы
решение нашлось. на какой урл больше трафа придет,
этот? url - boevik. или этот? /film/boevik под категории это все лишнее,они не нужны
Расскажите мне еще на ночь сказочек :3
 
добавь к себе на сайт, раз ссылаешь туда
 
остался у кого-то обновлённый код?
Сделал 2 категории /111/mods и /222/mods
Контент отображает один и тот же в одной из категории. Причём он зависит от того, куда я в первый раз зайду.
Тайтлы и т.д. разные, а контент дублируется из другой категории и наоборот.
 
Автор темы
остался у кого-то обновлённый код?
Сделал 2 категории /111/mods и /222/mods
Контент отображает один и тот же в одной из категории. Причём он зависит от того, куда я в первый раз зайду.
Тайтлы и т.д. разные, а контент дублируется из другой категории и наоборот.
Решение не рабочее, не ставьте его.
 
А будет ли решение?
 
Последнее редактирование:

Похожие темы Последние темы Популярные темы

Назад
Сверху