18.09.14, 19:31
0 комментарий
  DLE Хаки

Отображение русских символов в доп.полях вида - перекрёстные гиперссылки

Хак исправляет неправильное отображение русских символов в дополнительных полях вида перекрёстные гиперссылки, выводимые в краткой и полной новости.

Установка:
1. В файле enginemodules/show.full.php найти:

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>";


2. В файле enginemodules/show.short.php найти:

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>";


Готово!

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

urldecode( $value2 )


Добавить:

rawurldecode( $value2 )


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

Версия DLE: 9.x-10.xшаблоны для dle 11.2

Напишите своё мнение