форум vBSupport.ru > vBulletin > vBulletin 3.8.x > Внешний вид 3.8
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
WEBCAT
Простоузер
Default Короткая ссылка на URL с кириллическими символами
0

Эта статья для тех у кого на сайте в адресе страницы
  • ЧПУ на кириллических символах
  • кто собирается устанавливать ЧПУ на кириллических символах
  • у кого в темах метки на кириллице
URL, это общепринятая аббревиатура указателя на адрес ресурса в интернете (англ. Uniform Resource Locator, URL). В URL используются ограниченный набор ASCII‐символов.
Например, в интернет адресе вы не встретите символ пробела, а в самом ASCII присутствуют только латинские буквы, которые сохраняются в памяти машины, как есть, в виде символов. Если использовать в URL символы кириллицы, то в память машины они записываются в виде кода на UTF-8.
Quote:
Originally Posted by Catlord Meow
когда на том форуме, где я админ, включил ЧПУ, я их быстро выключил из-за жалоб пользователей.
http://sovserv.su/showthread.php?t=198&page=4
В приведённом выше примере URL содержал кириллические символы
HTML Code:
http://sovserv.su/threads/198-Обсуждение-изменений
поэтому отображался в адресной строке браузера в таком виде
HTML Code:
http://sovserv.su /threads/198-%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9
У многих современных браузеров аналогично работает буфер обмена при копировании URL из адресной строки. Отдельные браузеры могут копировать в свой буфер адрес на кириллице, но делают это кто, как хочет;
  • через плагин (Хром),
  • опции в настройках (Лиса)
  • по умолчанию (браузер от Яндекса).
Из адресной строки браузера URL в кириллических символах можно скопировать как есть, не закодированным в UTF-8, если копировать адрес без http: [https:].

Таким образом, проблема копирования URL с кириллическими символами решаема, однако, у всех приведённых выше вариантов есть один общий недостаток, их необходимо знать. Если пользователей сайта теоретически можно научить таким способам копирования URL, то для гостей сайта это не приемлемо.

Далее о том, как помочь пользователям и гостям сайта скопировать короткий адрес странички, состоящий из кириллических символов (без кода UTF-8).

Вначале декодируем UTF-8 из адреса страницы в кириллические символы.
Адрес странички в переменных будет выглядеть так
HTML Code:
https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]
где,
  • $_SERVER[HTTP_HOST] – доменное имя сайта,
  • $_SERVER[REQUEST_URI] – url странички сайта
Создадим модуль
Положим, что кириллические символы находятся только в переменной $_SERVER[REQUEST_URI]

Место положение модуля: global_start
Порядок выполнения: 5
Код PHP модуля:
PHP Code:
eval('$shortlink_url = "' 'https://' $_SERVER['HTTP_HOST'] . rawurldecode($_SERVER['REQUEST_URI']) . '";'); 
Модуль включен: Да

Таким образом получен адрес странички сайта состоящий только из символов и он находится в переменной $shortlink_url

Далее, разместим на странице переменную $shortlink_url, например, вначале страницы. Для этого открываем шаблон header и копируем переменную $shortlink_url в начало шаблона. Но предварительно поместим $shortlink_url в блок с бордером и белым фоном.
HTML Code:
<div style="font-size:10pt;color:#000080;padding:3px 8px;background-color:#FFF;border:1px solid #000080;">$shortlink_url</div>
Придадим блоку с коротким адресом юзабельности, добавив кнопку для копирования URL. Отмечу, что полное автоматическое копирование возможно только в браузере IE остальные браузеры не умеют этого делать.
HTML Code:
<if condition="is_browser('ie')">
<script type='text/javascript'>
function copy_clip(whattext)
{ 
if (window.clipboardData)
{
window.clipboardData.setData("Text", whattext);
}
alert("Адрес страницы сохранён в буфере обмена :\n\n" + whattext);
return false;}
</script>
</if>
<div style="font-size:10pt;color:#000080;padding:3px 8px;background-color:#FFF;border:1px solid #000080;overflow:hidden;">
<a href="#" style="float:right;font-weight:bold;font-style:italic;cursor:pointer;" 
<if condition="is_browser('ie')">
onClick="copy_clip('$shortlink_url')"
<else />
onClick="prompt('скопируйте адрес','$shortlink_url')"</if> title="Копировать URL">URL</a>
$shortlink_url
</div>
Сохраняем шаблон header.

Last edited by WEBCAT : 03-13-2017 at 08:50 AM. Reason: заменил скобки у [https:]
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 

Tags
кириллица в url, короткие ссылки, короткий адрес


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 03:06 AM.


Powered by vBulletin® Version 3.0.14
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...