Все для DataLife Engine / DLE хаки / Хак для DLE / ЧПУ в доп полях перекрёстные гиперссылки

ЧПУ в доп полях перекрёстные гиперссылки


Данный хак для дле позволяет сделать красивое отображение русскоязычных значений в доп полях вида перекрёстные гиперссылки, исправляет ЧПУ (человека понятный урл) в доп полях перекрёстных гиперссылок, т.е. неправильное отображение русских слов в дополнительных полях выводимые в краткой и полной новости.

Для этого достаточно всего лишь определил откуда скрипт берет ссылку в дополнительном поле и поменял кодировку вывода ссылки в новость.

Установка хака ЧПУ в доп полях перекрёстные гиперссылки делается в несколько движениях:
Ищем в файле \engine\modules/show.full.php (в DLE 10.3 это 1336-1337 строки)
if( $config['allow_alt_url'] ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&amp;xf=" . urlencode( $value2 ) . "\">" . $value2 . "</a>";


В разных версиях DLE содержание строки может быть разным, нас же интересует данный код
urlencode( $value2 )


Меняем два раза значение на
urldecode( $value2 )


И получаем следующее
if( $config['allow_alt_url'] ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urldecode( $value2 ) . "/\">" . $value2 . "</a>";
else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&amp;xf=" . urldecode( $value2 ) . "\">" . $value2 . "</a>";


Далее ищем в файле \engine\modules/show.short.php (в DLE 10.3 это 480-481 строки)
if( $config['allow_alt_url'] ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&amp;xf=" . urlencode( $value2 ) . "\">" . $value2 . "</a>";


Опять же разных версиях DLE содержание строки может быть разным, нас же интересует данный код
urlencode( $value2 )


Меняем два раза значение на
urldecode( $value2 )


И получаем следующее
if( $config['allow_alt_url'] ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urldecode( $value2 ) . "/\">" . $value2 . "</a>";
else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&amp;xf=" . urldecode( $value2 ) . "\">" . $value2 . "</a>";


Вот и всё. Кому интересно немного информации

Автор: DomiTori
Версия DataLife Engine: любая например на недавно вышедшей DLE 10.3

urlencode — URL-кодирование строки. Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL, также это удобный способ для передачи переменных другим страницам.
urldecode — Декодирование URL-кодированной строки. Декодирует любые %## кодированные последовательности в данной строке. Символ "плюс" ('+') декодируется в символ пробела.


Кстати можно сделать немножко по-другому, вместо
urldecode( $value2 )


вставить
rawurldecode( $value2 )

Другие модули для dle скачать у нас.
Эффект будет таким же, и хоть заменив код таким образом символ "+" не должен меняться на "%20" (пробел), он всё равно меняется. В общем кому как больше нравится ^_^

ChPU-ponyatnyy-url-v-dop-polyah-perekrestnye-giperssylki.rar [10,37 Kb] (cкачиваний: 44)
  • 40

Комментарии 1

vennik от 1 марта 2017 23:41
подскажите как это сделать на версии 11.2? потому чо на ней не работает :(
Добавить комментарий

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

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent