Для любой версии DLE хак Доп. поля по категориям


Представляем для любой версии DLE хак Дополнительные поля по категориям. Что же делает этот хак для дле, лучше посмотреть на примере ниже, чтобы понять задумку.
Описание:
Сделать хаки для любой версии 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]

Вот и всё. Правда легко и просто?)

Название: Дополнительные поля по категориям [DLE ALL]
Автор: каждый кто додумался
Автор этого метода: DomiTori
CMS: любая версия DLE

Да, реально нужный хак! У меня реализовано подобное..

Dopolnitelnye-polya-po-kategoriyam-lyubaya-versiya-DLE.rar [20,78 Kb] (cкачиваний: 124)
{rating-num}0

Комментарии (0)

Оставить комментарий

Кликните на изображение чтобы обновить код, если он неразборчив