Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Дополнительные поля по категориям [любая версия DLE].
Скачать бесплатно Дополнительные поля по категориям [любая версия DLE].
Название: Дополнительные поля по категориям [DLE ALL]
Автор: каждый кто додумался
Автор этого метода: DomiTori
CMS: любая версия DLE
Описание:
На днях пришла в голову такая идея. Сделать хак, позволяющий разделить в ссылках дополнительные поля вида гиперссылки на категории. Поколдовав пол ночи мне удалось вдохнуть жизнь в этот хак. Он будет полезен как кино-порталам, варезникам, кулинарным сайтам так и прочим.
Что же делает этот хак.
На тестовом сайте для экспериментов я создал два дополнительных поля
genre|Жанр произведения||text||1|1|0|0
year|Год выпуска||text||1|1|0|0
Изначально cms DLE позволяет сортировать по этим дополнительным полям по общей ссылке
сайт.ру/xfsearch/боевик
сайт.ру/xfsearch/2014
В хаке Меняем в адресе надоедливый xfsearch на более логичное слово я описал как изменить xfsearch на любое другое слово, которое вам по душе.
Теперь же идея вот в чём:
Подменить xfsearch на латинское название дополнительного поля, разделив их таким образом на категории.
Теперь наглядно.
Выше я описал данные из xfields.txt. Как видите у меня два дополнительных поля, назвал я их genre и year. Сейчас покажу как подменить ссылку сайт.ру/xfsearch/ на сайт.ру/genre/ и сайт.ру/year/.
Приступим к установке.
1. Ищем в файлах engine/modules/show.short.php, engine/modules/show.custom.php и два раза engine/modules/show.full.php
$value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
Заменяем на
$value3[] = "<a href=\"" . $config['http_home_url'] . "".$preg_safe_name."/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
Это заменит xfsearch на латинское название дополнительного поля.
2. В файле .htaccess ищем
RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
Вставляем ниже
RewriteRule ^genre/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^genre/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
RewriteRule ^year/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^year/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
Этим мы делаем редирект.
Понятное дело что у вас отличаются дополнительные поля от моих, у когото их больше. Вам нужно в .htaccess на каждое дополнительное поле отдельно вставлять
RewriteRule ^латинское название доп поля/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^латинское название доп поля/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
Вот и всё. Правдо легко и просто?)
Предлогаю посмотреть демо работы хака