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

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

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

Тема в разделе "Хаки DLE", создана пользователем hent4iboys, 4 окт 2018.

04.10.18 в 03:54
20.10.19 в 06:01
16
1.683
1
  1. TopicStarter Overlay
    hent4iboys

    Забанен

    Регистрация:
    31 авг 2018
    Сообщения:
    695
    Лучших ответов:
    2
    Рейтинги:
    +139 / 27 / -0
    Идем в /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) {
        
    $catsarray = array();
        foreach (
    $cat_info as $cats) {
            if(
    $cats['alt_name'] == $category) {
                
    $catsarray[] = $cats['id'];
            }
        }
        if(
    count($catsarray) > 1) {
            if(
    $_GET['category']) {
                
    $catname explode('/'$_GET['category']);
                
    $catname $catname[count($catname)-2];
                foreach(
    $catsarray as $cat) {
                    if(
    $cat_info[$cat_info[$cat]['parentid']]['alt_name'] == $catname) {
                        return 
    $cat;
                    }
                }
            }
        } else {
            return 
    $catsarray[0];
        }
        return 
    false;
    }
    Как можно заметить, код очень прост. Мы вместо того, чтобы возвращать сразу ID категории, сначала собираем массив, находим в нем категорию родителя и возвращаем скорректированный ответ. Если будет интересно - могу дописать построчно комментарии :)

    Далее идем в /engine/inc/categories.php и комментируем 2 кода, которые отвечают за проверку:
    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)" );
    }
    Почему два? Один проверяет совпадение по базе в момент добавления категории, а второй при редактировании. Казалось бы на этом всё. Но стоит лишь на сайте активировать кеширование и наблюдаем, что на всех совпадающих названиях из кеша достается последняя закешированная категория!

    Давайте поправим добавив в логику кеширования ID категории. Идем в /engine/engine.php и ищем:
    PHP:
    $active dle_cache"news"$cache_id $cache_prefixtrue );
    И добавляем $category_id. В итоге:
    PHP:
    $active dle_cache"news"$category_id $cache_id $cache_prefixtrue );
    Пару десятков строк ниже находим:
    PHP:
    create_cache "news"$tpl->result['content'], $cache_id $cache_prefixtrue );
    И повторяем трюк с категорией:
    PHP:
    create_cache "news"$tpl->result['content'], $category_id $cache_id $cache_prefixtrue );
    взято с одного форума..
    Screenshot_1.png
     
    #1 hent4iboys, 4 окт 2018
    Последнее редактирование: 4 окт 2018
    • Нравится Нравится x 1
  2. PunPun

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

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    p.s автор я. спасибо за указание автора
     
  3. TopicStarter Overlay
    hent4iboys

    Забанен

    Регистрация:
    31 авг 2018
    Сообщения:
    695
    Лучших ответов:
    2
    Рейтинги:
    +139 / 27 / -0
    соре,на том форуме не было написано то что автор ты
    upd : вставил тебя
     
    • Нравится Нравится x 1
  4. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.297
    Лучших ответов:
    54
    Рейтинги:
    +5.204 / 74 / -0
  5. PunPun

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

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

    PRO Users

    Регистрация:
    9 ноя 2015
    Сообщения:
    272
    Лучших ответов:
    1
    Рейтинги:
    +177 / 34 / -0
    Плагин
     

    Вложения:

    • Нравится Нравится x 1
  7. Red Flame

    Red Flame Зелёный

    Регистрация:
    10 авг 2018
    Сообщения:
    7
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    SPASIBO
     
  8. PunPun

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

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

    Red Flame Зелёный

    Регистрация:
    10 авг 2018
    Сообщения:
    7
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    a u menea rabotaet ... dle 13.3
     
  10. PunPun

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

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    Я автор, мне лучше знать как бы.
     
  11. Red Flame

    Red Flame Зелёный

    Регистрация:
    10 авг 2018
    Сообщения:
    7
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    da ya znaiu.... no hocu skazati sto u menea on rabotaet.... skaceal plugin ot sunx ustanavil i rabotaet..... tam 3 categorii potestiroval s tot je nazvaniem i rabotaet,,,, a v ceom mojet biti problemi?
     
  12. PunPun

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

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    Для XML карты оно работать не будет, минус Sitemap карта.
    Редирект для не верных ссылок работать не будет верно.
     
  13. Red Flame

    Red Flame Зелёный

    Регистрация:
    10 авг 2018
    Сообщения:
    7
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    a mojno ispraviti plugin? stob vseo bilo norm... skinu na cipisi
     
  14. PunPun

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

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

    Red Flame Зелёный

    Регистрация:
    10 авг 2018
    Сообщения:
    7
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    stoit udaliti plugin...da?
     
  16. PunPun

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

    Регистрация:
    11 июн 2015
    Сообщения:
    7.292
    Лучших ответов:
    31
    Рейтинги:
    +3.892 / 96 / -0
    Да. Одинаковые url категорий ни на что не влияет.
     
  17. Red Flame

    Red Flame Зелёный

    Регистрация:
    10 авг 2018
    Сообщения:
    7
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    u menea esti k tebe vopros....napisu v telegram
     
Яндекс.Метрика