Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

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

Тема в разделе "Хаки DLE", создана пользователем PunPun, 20 ноя 2015.

20.11.15 в 19:48
06.07.17 в 13:45
9
1.773
4
  1. TopicStarter Overlay
    PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    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
     
    #1 PunPun, 20 ноя 2015
    Последнее редактирование: 29 янв 2016
    • Нравится Нравится x 4
  2. Romantv

    Забанен

    Регистрация:
    17 июл 2015
    Сообщения:
    6.992
    Лучших ответов:
    6
    Рейтинги:
    +2.000 / 141 / -0
    решение нашлось. на какой урл больше трафа придет,
    этот? url - boevik. или этот? /film/boevik под категории это все лишнее,они не нужны
     
  3. TopicStarter Overlay
    PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    Расскажите мне еще на ночь сказочек :3
     
    • Нравится Нравится x 2
  4. TopicStarter Overlay
    PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
  5. Ost1n

    Ost1n Зелёный

    Регистрация:
    15 фев 2016
    Сообщения:
    1
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Спасибо, все проблемы решаю с твоей подачи.
     
  6. MaHarder

    MaHarder Местный

    Регистрация:
    9 июн 2015
    Сообщения:
    1.054
    Лучших ответов:
    0
    Рейтинги:
    +333 / 0 / -0
    добавь к себе на сайт, раз ссылаешь туда
     
  7. Lancelot

    Lancelot Зелёный

    Регистрация:
    12 дек 2016
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    остался у кого-то обновлённый код?
    Сделал 2 категории /111/mods и /222/mods
    Контент отображает один и тот же в одной из категории. Причём он зависит от того, куда я в первый раз зайду.
    Тайтлы и т.д. разные, а контент дублируется из другой категории и наоборот.
     
  8. TopicStarter Overlay
    PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    Решение не рабочее, не ставьте его.
     
  9. Lancelot

    Lancelot Зелёный

    Регистрация:
    12 дек 2016
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Жаль. Спасибо за ответ.
     
  10. Frosty

    Забанен

    Регистрация:
    31 мар 2017
    Сообщения:
    941
    Лучших ответов:
    1
    Рейтинги:
    +188 / 18 / -0
    А будет ли решение?
     
    #10 Frosty, 6 июл 2017
    Последнее редактирование: 17 дек 2017
Яндекс.Метрика