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

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

Делаем ссылку на полную новость как на кинопоиске [хак]

Тема в разделе "Хаки DLE", создана пользователем DLEPlugins, 2 авг 2016.

02.08.16 в 07:32
14.01.18 в 20:16
38
3.995
2
  1. TopicStarter Overlay
    DLEPlugins

    Команда форума Модератор Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    Еще один извечный вопрос, который периодически всплывает на поверхность словно плавающий кусок .... О чем это я? Ах да, делюсь способом убрать из ссылки все кроме категории и id. Вот что вы получите в итоге - было
    станет
    1. Открываем все перечисленные ниже файлы
    \engine\ajax\adminfunction.php,\engine\ajax\comments.php,\engine\ajax\editcomments.php,\engine\ajax\search.php,\engine\classes\google.class.php,\engine\inc\cmoderation.php,\engine\inc\editnews.php,\engine\modules\addcomments.php,\engine\modules\show.custom.php,\engine\modules\show.full.php,\engine\modules\show.short.php и \engine\modules\topnews.php
    ищем во всех этих файлах код
    PHP:
    $row['id'] . "-" $row['alt_name'] . ".html";
    заменить на код
    PHP:
    $row['id'] . "/";
    2. Далее открываем следующие файлы \engine\classes\comments.class.php,\engine\inc\cmoderation.php,\engine\inc\comments.php и \engine\inc\complaint.php
    найти в них весь стречающийся код код
    PHP:
    $row['post_id'] . "-" $row['alt_name'] . ".html";
    заменить на
    PHP:
    $row['post_id'] . "/";
    3. ( напомнил @Rockem ) Открываем два файла - \engine\ajax\find_relates.php и \engine\modules\show.full.php и ищем весь повторяющийся код в них
    PHP:
    $related['id'] . "-" $related['alt_name'] . ".html";
    меняем на код
    PHP:
    $related['id'] . "/";
    4. Наконец открываем файл .htaccess
    ищем код
    PHP:
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).htmlindex.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$[L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).htmlindex.php?newsid=$3&news_page=$2&seourl=$4&seocat=$[L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).htmlengine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$[L]
    RewriteRule ^([^.]+)/([0-9]+)-(.*).htmlindex.php?newsid=$2&seourl=$3&seocat=$[L]

    RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).htmlindex.php?newsid=$3&news_page=$1&cstart=$2&seourl=$[L]
    RewriteRule ^page,([0-9]+),([0-9]+)-(.*).htmlindex.php?newsid=$2&news_page=$1&seourl=$[L]
    RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).htmlengine/print.php?news_page=$1&newsid=$2&seourl=$[L]
    RewriteRule ^([0-9]+)-(.*).htmlindex.php?newsid=$1&seourl=$[L]
    меняем на
    PHP:

    RewriteRule 
    ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)/$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$[L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)/$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$[L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)/$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$[L]
    RewriteRule ^([^.]+)/([0-9]+)/$ index.php?newsid=$2&seourl=$3&seocat=$[L]

    RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)/$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$[L]
    RewriteRule ^page,([0-9]+),([0-9]+)/$ index.php?newsid=$2&news_page=$1&seourl=$[L]
    RewriteRule ^print:page,([0-9]+),([0-9]+)/$ engine/print.php?news_page=$1&newsid=$2&seourl=$[L]
    RewriteRule ^([0-9]+)/$ index.php?newsid=$1&seourl=$[L]

    Под конец очистить кеш в админке

    для тех кто использует модуль HTML SiteMap от Alaev
    Открываем /engine/modules/sitemap.php
    ищем в нем участок кода
    PHP:
    if(intval($post['category']) && $this->dle_api->dle_config['seo_type'] == 2)
                        {
                            
    $url $this->dle_api->dle_config['http_home_url'].get_url(intval($post['category'])).'/'.$post['id'].'-'.$post['alt_name'].'.html';
                        }
                        else
                        {
                            
    $url $this->dle_api->dle_config['http_home_url'].$post['id'].'-'.$post['alt_name'].'.html';
                        }
    Заменяем на код
    PHP:
    if(intval($post['category']) && $this->dle_api->dle_config['seo_type'] == 2)
                        {
                            
    $url $this->dle_api->dle_config['http_home_url'].get_url(intval($post['category'])).'/'.$post['id'].'/';
                        }
                        else
                        {
                            
    $url $this->dle_api->dle_config['http_home_url'].$post['id'].'/';
                        }
     
    #1 DLEPlugins, 2 авг 2016
    Последнее редактирование модератором: 22 апр 2017
    • Нравится Нравится x 2
  2. TopicStarter Overlay
    DLEPlugins

    Команда форума Модератор Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    если что вспомню допишу. Хай идут лесом всякие Гамиры со своими 5 копейками. Этот хак я успешно использую на своих сайтах
     
    • Нравится Нравится x 3
  3. Rockem

    Rockem Бывалый

    Регистрация:
    30 янв 2016
    Сообщения:
    278
    Лучших ответов:
    0
    Рейтинги:
    +202 / 0 / -0
    @DomiTori, забыл вот эту строчку:

    Код:
    $rel_full_link = $config['http_home_url'] . get_url( $related['category'] ) . "/" . $related['id'] . "-" . $related['alt_name'] . ".html";
    
     
    • Нравится Нравится x 2
  4. TopicStarter Overlay
    DLEPlugins

    Команда форума Модератор Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    точно, про related забыл :) спс, добавил в инструкцию
     
  5. yuris

    yuris Местный

    Регистрация:
    21 сен 2015
    Сообщения:
    1.724
    Лучших ответов:
    1
    Рейтинги:
    +710 / 13 / -7
    Хм, а для чего это надо? Какой-то неинформационный урл получается, кастрированный быстрей. В урле можно зашить ключевики, а здесь получается огрызок! o_O
     
    • Нравится Нравится x 2
  6. aeneas

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

    Регистрация:
    12 мар 2016
    Сообщения:
    11.778
    Лучших ответов:
    6
    Рейтинги:
    +4.187 / 166 / -41
    да, кастрация ненужная, в урл должен быть ключ, так как подсветка есть и бла бла бла, это факт
     
  7. there

    there Посетитель

    Регистрация:
    4 авг 2016
    Сообщения:
    61
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    Ничто не мешает поменять на сайт.ру/категория/IDновости/заголовокНовости

    1 замена
    PHP:
    $row['id'] . "/"$row['alt_name'];
    2 замена
    PHP:
    $row['post_id'] . "/"$row['alt_name'];
    3 замена
    PHP:
    $related['id'] . "/"$related['alt_name'];
    .htaccess
    PHP:
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$[L]
    RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$[L]
    RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)/(.*)$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$[L]
    RewriteRule ^([^.]+)/([0-9]+)/(.*)$ index.php?newsid=$2&seourl=$3&seocat=$[L]

    RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$[L]
    RewriteRule ^page,([0-9]+),([0-9]+)/(.*)$ index.php?newsid=$2&news_page=$1&seourl=$[L]
    RewriteRule ^print:page,([0-9]+),([0-9]+)/(.*)$ engine/print.php?news_page=$1&newsid=$2&seourl=$[L]
    RewriteRule ^([0-9]+)/(.*)$ index.php?newsid=$1&seourl=$[L]
     
  8. there

    there Посетитель

    Регистрация:
    4 авг 2016
    Сообщения:
    61
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    @DomiTori, спасибо, не пришлось искать все эти файлы самому.
    Кстати, а почему низзя ID из урла убрать к хренам?
     
    #8 there, 8 авг 2016
    Последнее редактирование: 8 авг 2016
  9. aeneas

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

    Регистрация:
    12 мар 2016
    Сообщения:
    11.778
    Лучших ответов:
    6
    Рейтинги:
    +4.187 / 166 / -41
    действительно - почему ?
    нельзя сделать чтобы ИД был но был не виден в урл?
    и чтобы обрезался до скольки то слов
     
  10. stickman

    stickman Новичок

    Регистрация:
    12 июл 2016
    Сообщения:
    38
    Лучших ответов:
    0
    Рейтинги:
    +16 / 0 / -0
    Чтобы наверняка не было дублей страниц. Например фильмы бывают с одинаковыми названиями и если к примеру ты не добавляешь год в урл, то будет дубль. Раньше помнится для некоторых CMS хаки делали, чтобы добавить к урлу аналог ID
     
  11. there

    there Посетитель

    Регистрация:
    4 авг 2016
    Сообщения:
    61
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    эмм...я тут немного не поспал.. ДЛЕ че, не может в уникальность урлов самостоятельно?
     
  12. aeneas

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

    Регистрация:
    12 мар 2016
    Сообщения:
    11.778
    Лучших ответов:
    6
    Рейтинги:
    +4.187 / 166 / -41
    это все понятно, но ИД то будет )) я хз можт и чепуху несу конечно, но типа он есть ИД, а в урл его нету ))
    вообще номер новостей требует помоему только рамблер новости если туда подключаться, ДЛЕ изначально система под новостные сайты, наверное из за этого и сделан вывод нумерации
     
  13. PunPun

    PunPun Гуру

    Регистрация:
    11 июн 2015
    Сообщения:
    7.398
    Лучших ответов:
    22
    Рейтинги:
    +3.934 / 47 / -85
    Не возможно скрыть id с чпу. Никак. Никогда. Разве что если будет dle сделан на MVC.
     
    • Нравится Нравится x 1
  14. aeneas

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

    Регистрация:
    12 мар 2016
    Сообщения:
    11.778
    Лучших ответов:
    6
    Рейтинги:
    +4.187 / 166 / -41
    ну гуд, нет так нет, тебе то уж верить можно ибо програмер )
     
  15. PunPun

    PunPun Гуру

    Регистрация:
    11 июн 2015
    Сообщения:
    7.398
    Лучших ответов:
    22
    Рейтинги:
    +3.934 / 47 / -85
    Вру, можно. Но это по ебинастическому будет.
    Делаем ссылку как <form> и передаем id новости через POST. В общем это возможно. Только как пс будут переходить по ссылкам - не ебу. Ибо это будет форма и прямой ссылки не будет.
     
  16. there

    there Посетитель

    Регистрация:
    4 авг 2016
    Сообщения:
    61
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    Мсье знает толк в извращениях
     
  17. byroot

    Команда форума Администратор VIP Кинотрафик v2

    Регистрация:
    10 окт 2015
    Сообщения:
    10.516
    Лучших ответов:
    38
    Рейтинги:
    +4.308 / 36 / -39
    А зачем на этом форуме в ссылке присутствует ID темы? :eek: неужто просто так?:rolleyes:
     
    • Нравится Нравится x 1
  18. there

    there Посетитель

    Регистрация:
    4 авг 2016
    Сообщения:
    61
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    Перестала работать пагинация в категориях.
    .htaccess
    PHP:
    ### не работает пагинация, работают ссылки на страницы новостей
    RewriteRule ^([^.]+)/([0-9]+)/(.*)$ index.php?newsid=$2&seourl=$3&seocat=$[L]

    ### работает пагинация, не работают ссылки на страницы новостей
    RewriteRule ^([^.]+)/([0-9]+)-(.*).htmlindex.php?newsid=$2&seourl=$3&seocat=$[L]
    Вроде как надо вывод пагинации править где-то в районе show.short.php...
     
    #18 there, 29 авг 2016
    Последнее редактирование: 29 авг 2016
  19. TopicStarter Overlay
    DLEPlugins

    Команда форума Модератор Кодер

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    Я проверю. У меня все работало, перепроверю сам себя
     
  20. there

    there Посетитель

    Регистрация:
    4 авг 2016
    Сообщения:
    61
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    Насколько я понял, ссылка, формируемая в show.short.php (next-link) , должна совпадать с той, что указана в .htaccess.

    Или за пагинацию в категориях другой файл отвечает?
     
    #20 there, 29 авг 2016
    Последнее редактирование: 29 авг 2016
Яндекс.Метрика