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

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Для любой версии DLE хак Доп. поля по категориям
Представляем для любой версии DLE хак Дополнительные поля по категориям. Что же делает этот хак для дле, лучше посмотреть на примере ниже, чтобы понять задумку. dle9.com
Описание:
Сделать хаки для любой версии 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

Да, реально нужный хак! У меня реализовано подобное..
  • 80
Рубрика: DLE хаки
Ранее » Убрать пробел внизу сайта DLE шаблонов 9.8-10.2« Далее Отдельные страницы Входа и регистрации для ДЛЕ
Добавление комментарияОставить комментарий
  • № :3
  • 28 декабря 2014 09:34
Всё разобрался wink
  • № :2
  • 28 декабря 2014 09:26
ой не то у меня нет полей для вода типо год, жанр
  • № :1
  • 28 декабря 2014 09:06
Блин всё сделал по инструкции проверять начел ошибка
MySQL Error!
MySQL error in file: \engine\inc\addnews.php at line 793
Error Number: 1054
The Error returned was:
Unknown column 'allow_rate' in 'field list'
SQL query:

INSERT INTO dle_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, votes, access, symbol, flag, tags, metatitle, year, quality, director, actors) values ('2014-12-28 06:05:11', 'admin', 'Проверка', 'Проверка', '', 'Проверка', 'ПроверкаПроверка', 'ПроверкаПроверка', '1', 'proverka', '1', '1', '1', '0', '1', '1', '0', '', '', '1', '', '', 'Проверка', 'Проверка', 'Проверка', 'Проверка')


Что делать тестировал на 10.1
А запрос в базе данных MySQL надо делать?