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

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

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

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

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

    DLEPlugins Кодер

    Сообщения:
    1.601
    Симпатии:
    1.076
    Лучших ответов:
    8
    Как сделать вид ссылок подобно кинопоиску я написал тут. В этой теме поделюсь с вами хаком, который использую на своих сайтах. Он делает ссылку на полную новость такой:
    то есть к примеру будет
    Правки аналогичны выше указанному хаку, отличается лишь заменяемой частью.

    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 Забанен

    Сообщения:
    6.946
    Симпатии:
    1.815
    Лучших ответов:
    6
    @DomiTori, привет! подскажи пожалуйста, сейчас новый сайт ставлю на движке 11.1 какую лучше базу выбрать http://take.ms/Z7UHB
     
  3. TopicStarter Overlay
    DLEPlugins

    DLEPlugins Кодер

    Сообщения:
    1.601
    Симпатии:
    1.076
    Лучших ответов:
    8
    Пользуюсь inodb, меня устраивает. Какая разница между ними, я хз:D
     
  4. Romantv

    Romantv Забанен

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

    DLEPlugins Кодер

    Сообщения:
    1.601
    Симпатии:
    1.076
    Лучших ответов:
    8
    Судя по словам разработчика значит нам всем inodb подходит. Myisam для сайта визитки или одностраничника какогото, нах оно вообще нада
     
  6. there

    there Посетитель

    Сообщения:
    61
    Симпатии:
    7
    Лучших ответов:
    0
    У меня работает вроде. Или я чего-то не замечаю?
     
  7. TopicStarter Overlay
    DLEPlugins

    DLEPlugins Кодер

    Сообщения:
    1.601
    Симпатии:
    1.076
    Лучших ответов:
    8
    не должно по идеи. по крайней мере у меня при включенной опции редиректит на стандартную ссылку, по которой новость не найдена. хз даже
     
    • Нравится Нравится x 1
  8. Keiskar

    Keiskar Забанен

    Сообщения:
    855
    Симпатии:
    386
    Лучших ответов:
    0
    Не забывайте одно, чтоб использовать innodb нужна спец настройка из коробки конфигурашка не очень, вангую на частые падения базы :)
     
  9. TopicStarter Overlay
    DLEPlugins

    DLEPlugins Кодер

    Сообщения:
    1.601
    Симпатии:
    1.076
    Лучших ответов:
    8
    для тех кто использует модуль 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 Бывалый

    Сообщения:
    613
    Симпатии:
    102
    Лучших ответов:
    2
    а статические страницы все равно останутся с html на конце да?
     
  11. Ботяра

    Ботяра Забанен

    Сообщения:
    0
    Симпатии:
    0
    Лучших ответов:
    54
    да! Хак меняет ссылки только на новости.
     
  12. europa1988

    europa1988 Бывалый

    Сообщения:
    613
    Симпатии:
    102
    Лучших ответов:
    2
    а интересно статические вообще можно так же сделать без html?
     
  13. Ботяра

    Ботяра Забанен

    Сообщения:
    0
    Симпатии:
    0
    Лучших ответов:
    54
    почему и нет? конечно можно сделать!
     
  14. TopicStarter Overlay
    DLEPlugins

    DLEPlugins Кодер

    Сообщения:
    1.601
    Симпатии:
    1.076
    Лучших ответов:
    8
    Их и делать не нужно. Rewrite в htaces впиши просто
     
    • Нравится Нравится x 1
  15. europa1988

    europa1988 Бывалый

    Сообщения:
    613
    Симпатии:
    102
    Лучших ответов:
    2
    покажи пожалуйста как прописать!
    И еще вопрос как сделать чтобы слэша на конце ссылки не было?!