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

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

[хак] делаем ссылку на полную новость вида сайт.ру/категория/id/чпу-новости/

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

30.08.16 в 08:57
19.05.17 в 21:10
14
1.623
2
  1. TopicStarter Overlay
    DLEPlugins

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

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    Как сделать вид ссылок подобно кинопоиску я написал тут. В этой теме поделюсь с вами хаком, который использую на своих сайтах. Он делает ссылку на полную новость такой:
    то есть к примеру будет
    Правки аналогичны выше указанному хаку, отличается лишь заменяемой частью.

    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'] . "/" $row['alt_name'] . "/";
    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'] . "/" $row['alt_name'] . "/";
    3. Открываем два файла - \engine\ajax\find_relates.php и \engine\modules\show.full.php и ищем весь повторяющийся код в них
    PHP:
    $related['id'] . "-" $related['alt_name'] . ".html";
    меняем на код
    PHP:
    $related['id'] . "/" $related['alt_name'] . "/";
    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]

    Под конец очистить кеш в админке. Этот хак не будет работать, если у вас включена "обработка неверных ссылок чпу", ее побороть у меня пока что не получилось.
     
    • Нравится Нравится x 2
  2. Romantv

    Romantv Гуру

    Регистрация:
    17 июл 2015
    Сообщения:
    7.327
    Лучших ответов:
    3
    Рейтинги:
    +2.085 / 115 / -31
    @DomiTori, привет! подскажи пожалуйста, сейчас новый сайт ставлю на движке 11.1 какую лучше базу выбрать http://take.ms/Z7UHB
     
  3. TopicStarter Overlay
    DLEPlugins

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

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    Пользуюсь inodb, меня устраивает. Какая разница между ними, я хз:D
     
  4. Romantv

    Romantv Гуру

    Регистрация:
    17 июл 2015
    Сообщения:
    7.327
    Лучших ответов:
    3
    Рейтинги:
    +2.085 / 115 / -31
    вот разница.какой выбрать не знаю
    2. Добавлена поддержка движка InnoDB для базы данных MySQL. При установке скрипта вы можете выбрать, какой тип хранения использовать. Для выбора доступно использование либо InnoDB либо MyISAM. При выборе движка мы рекомендуем руководствоваться следующими критериями. Если ваш сайт будет редко обновляться новым контентом (регистрация большого количества пользователей, активное добавление новых комментариев и т.д.) т.е. сайт "справочник", то рекомендуется использовать MyISAM тип, он быстрее при выборке из базы данных. Если на сайте планируется активное обсуждение чего-либо большим количеством пользователей, то рекомендуется использовать InnoDB тип. Для большинства сайтов оптимальным выбором будет именно InnoDB, т.к. в будущем он более легко масштабируется. Выбор движка базы данных доступен только если на вашем сервере установлена версия MySQL не ниже чем 5.6.4. Если версия MySQL сервера ниже, то доступно использование только MyISAM.
     
    • Нравится Нравится x 1
  5. TopicStarter Overlay
    DLEPlugins

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

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

    there Посетитель

    Регистрация:
    4 авг 2016
    Сообщения:
    61
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    У меня работает вроде. Или я чего-то не замечаю?
     
  7. TopicStarter Overlay
    DLEPlugins

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

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

    Забанен

    Регистрация:
    2 июл 2015
    Сообщения:
    893
    Лучших ответов:
    0
    Рейтинги:
    +403 / 0 / -0
    Не забывайте одно, чтоб использовать innodb нужна спец настройка из коробки конфигурашка не очень, вангую на частые падения базы :)
     
  9. TopicStarter Overlay
    DLEPlugins

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

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    для тех кто использует модуль 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'].'/'.$post['alt_name'].'/';
                        }
                        else
                        {
                            
    $url $this->dle_api->dle_config['http_home_url'].$post['id'].'/'.$post['alt_name'].'/';
                        }
    Просьба модераторов добавить правку в первый пост
     
  10. europa1988

    europa1988 Бывалый

    Регистрация:
    24 фев 2016
    Сообщения:
    595
    Лучших ответов:
    2
    Рейтинги:
    +112 / 12 / -6
    а статические страницы все равно останутся с html на конце да?
     
  11. byroot

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

    Регистрация:
    10 окт 2015
    Сообщения:
    10.516
    Лучших ответов:
    38
    Рейтинги:
    +4.307 / 36 / -39
    да! Хак меняет ссылки только на новости.
     
  12. europa1988

    europa1988 Бывалый

    Регистрация:
    24 фев 2016
    Сообщения:
    595
    Лучших ответов:
    2
    Рейтинги:
    +112 / 12 / -6
    а интересно статические вообще можно так же сделать без html?
     
  13. byroot

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

    Регистрация:
    10 окт 2015
    Сообщения:
    10.516
    Лучших ответов:
    38
    Рейтинги:
    +4.307 / 36 / -39
    почему и нет? конечно можно сделать!
     
  14. TopicStarter Overlay
    DLEPlugins

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

    Регистрация:
    29 ноя 2015
    Сообщения:
    1.719
    Лучших ответов:
    6
    Рейтинги:
    +1.254 / 9 / -18
    Их и делать не нужно. Rewrite в htaces впиши просто
     
    • Нравится Нравится x 1
  15. europa1988

    europa1988 Бывалый

    Регистрация:
    24 фев 2016
    Сообщения:
    595
    Лучших ответов:
    2
    Рейтинги:
    +112 / 12 / -6
    покажи пожалуйста как прописать!
    И еще вопрос как сделать чтобы слэша на конце ссылки не было?!
     
Яндекс.Метрика