Навигация
Главная
Бесплатные шаблоны dle
Платные шаблоны dle
Бесплатные модули dle
Хаки dle
Скачать DataLife Engine
Заработок для Web мастеров
Контакты
Rss
Вход на сайт
  Логин
  Пароль
Популярные новости
Реклама

Правильное отображение русскоязычных значений в доп полях вида перекрёстные гиперссылки

Правильное отображение русскоязычных значений в доп полях вида перекрёстные гиперссылки


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

Автор: DomiTori
Версия 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>";


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

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

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

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

16 сентября 2014 добавил DomiTori
     просмотров 4108   комментариев (0)

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














Rambler's Top100

Яндекс цитирования