Мы в твиттере Мы в телеграме!

Провеббер » DataLife Engine » DLE хаки » Дополнительные поля по категориям [любая версия DLE]

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

Дополнительные поля по категориям [любая версия DLE]

Данный материал предоставлен сайтом 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]


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

Предлогаю посмотреть демо работы хака


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


+8
Просмотры: 5 650 :: Комментарии (14) :: :: Нужна помощь? Задайте вопрос на форуме ::
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1hyper7

  • 10 ноября 2014 18:17
  • Регистрация: 21.05.2014
  • Был(а) онлайн: 7.12.2015
  • Комментариев: 1
  • 0
Нужная вещь, спасибо! bomb

#2DomiTori

  • 11 ноября 2014 04:34
  • Регистрация: 8.12.2012
  • Был(а) онлайн: 4.10.2017
  • Комментариев: 17
  • 0
Цитата: hyper7
онятное дело что у вас отличаются дополнительные поля от моих, у когото их больше. Вам нужно в .htaccess на каждо

Не за что, в отличие от кодерлабы тут люди хоть благодарить умеют)

#3Sibiriak

  • 11 ноября 2014 04:53
  • Регистрация: 6.05.2012
  • Был(а) онлайн: 10.01.2021
  • Комментариев: 163
  • 0
Да, реально нужный хак! У меня реализовано подобное..

Но есть вопрос:
Вот переходим мы на страницу, к примеру - http://site.com/genre/Русские_Комедии/ и видим там все фильмы, относящиеся к этому жанру....
А вот как мне на сделать мини описание этой страницы???
точнее мини описания всех своих доп полей??? для seo...

--------------------

#4DomiTori

  • 11 ноября 2014 16:18
  • Регистрация: 8.12.2012
  • Был(а) онлайн: 4.10.2017
  • Комментариев: 17
  • +1
Sibiriak,
увы дополнительные поля не имеют своего айди в бд как например категории. делать скрипт перебирающий все доп поля, дабы вывести им описания бессмысленно, ибо нагрузка не к чему. подумав над твоим вопросом попробую колосально переделать один модуль под эти нужды. если выйдет поделюсь им. мне для моего киношного сайта тоже ведь пригодиться

#5Sibiriak

  • 13 ноября 2014 13:19
  • Регистрация: 6.05.2012
  • Был(а) онлайн: 10.01.2021
  • Комментариев: 163
  • 0
DomiTori,
Ок, было бы отлично!
А то я не нашел решения....

--------------------

#6DomiTori

  • 13 ноября 2014 15:14
  • Регистрация: 8.12.2012
  • Был(а) онлайн: 4.10.2017
  • Комментариев: 17
  • 0
Sibiriak,
Увы с модулем не вышло. Доп поля так хаотически записываются в БД... Буду думать. На написание модуля с нуля пока не способен

#7Sibiriak

  • 14 ноября 2014 17:35
  • Регистрация: 6.05.2012
  • Был(а) онлайн: 10.01.2021
  • Комментариев: 163
  • 0
DomiTori,
Не вышло - да и хрен с ним!
А то я вату словлю все свои жанры описывать))

--------------------

#8XyuAdmin

  • 16 ноября 2014 19:08
  • Регистрация: 16.11.2014
  • Был(а) онлайн: 5.04.2024
  • Комментариев: 30
  • 0
Не влияют на поисковых роботов?

#9Sibiriak

  • 19 ноября 2014 01:33
  • Регистрация: 6.05.2012
  • Был(а) онлайн: 10.01.2021
  • Комментариев: 163
  • 0
XyuAdmin, влияют, если все грамотно сделать

--------------------

#10aluminoter

  • 16 декабря 2014 13:27
  • Регистрация: 10.04.2013
  • Был(а) онлайн: 15.07.2023
  • Комментариев: 16
  • 0
Вот только при пагинации не работает!!! все равно выдает xfsearch

#11aluminoter

  • 16 декабря 2014 16:02
  • Регистрация: 10.04.2013
  • Был(а) онлайн: 15.07.2023
  • Комментариев: 16
  • 0
Наверное надо что то поменять в файле engine.php но вот что???

#12aluminoter

  • 16 декабря 2014 17:08
  • Регистрация: 10.04.2013
  • Был(а) онлайн: 15.07.2023
  • Комментариев: 16
  • 0
Вообщем Sander мне ответил в dle-qaq.ru

В engine.php ищем:
$url_page = $config['http_home_url'] . "xfsearch/" . urlencode ( str_replace("'", "'", $xf) );

Заменить на:
$url_page = $config['http_home_url'] . urlencode($_GET['xn']) . "/" . urlencode ( str_replace("'", "'", $xf) );



И в .htaccess писать так
RewriteRule ^(genre)/([^/]*)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2 [L]
RewriteRule ^(genre)/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2&cstart=$3 [L]
RewriteRule ^(year)/([^/]*)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2 [L]
RewriteRule ^(year)/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2&cstart=$3 [L]

И в погинации все работает как часы.

#13canda

  • 22 декабря 2014 12:28
  • Регистрация: 29.01.2012
  • Был(а) онлайн: 6.12.2020
  • Комментариев: 11
  • 0
Спасибо автору! И конечно aluminoter!

Вот только было бы круто если бы в результате выскочили только те новость в которых есть название дополнительного поля. А то так он ищет по всей новость и выводит те новости которые не по теме(

#14Feniks000

  • 1 июля 2015 21:19
  • Регистрация: 21.09.2013
  • Был(а) онлайн: 11.04.2018
  • Комментариев: 14
  • 0
Почему автор игнорирует???? Пишу в личку, он читает и молчит!! mad

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Ноябрь 2024 (9)
Октябрь 2024 (169)
Сентябрь 2024 (13)
Август 2024 (60)
Июль 2024 (12)
Июнь 2024 (30)

Последние комментарии: