Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Как декодировать кириллический домен?

Здравствуйте!

 

У меня кириллический домен. Используй в разных частях шаблона вот такой код:\

 

{$comment->item()->url()}

 

Проблема в том, что в итоге на сайте часть URL декодирована и читабельна для человека, а основная часть домена (до первого /) в кодировке punycode.

 

Вопрос, как модифицировать этот код, чтобы URL был читабельным целиком?

Рекомендованные сообщения

{{$c_url = str_replace( $_SERVER['HTTP_HOST'], idn_to_utf8($_SERVER['HTTP_HOST']), $comment->item()->url() );}}
{$c_url}

  • Автор

Страницы рендерится с ошибкой:

 

Error: Call to undefined function IPS\Theme\idn_to_utf8() (0)

Нужно подключить расширение php-intl. Как именно, зависит от операционной системы и версии PHP. В линуксах обычно достаточно добавить в php.ini строку:

extension=intl.so

Либо установить пакет расширения из репозитория. После любого из вариантов изменения конфигурации PHP необходимо перезапустить вебсервер.

Зачем его декодировать? В исходном коде ссылке правильно должен быть punycode.

 

Способ из серий топор:

{str_replace( $_SERVER['HTTP_HOST'], 'домен', $comment->item()->url() )}

{str_replace( $_SERVER['HTTP_HOST'], 'домен', $comment->item()->url()}
Закрывающей круглой скобки не хватает.

Исправил. Писал код с телефона.

  • Автор

Спасибо за попытки помочь, но с этим кодом:

 

{str_replace( $_SERVER['HTTP_HOST'], 'domen.ru', $comment->item()->url())}

 

Шаблон даже не сохраняется, говорит ошибка в коде. А если бы изначальный код:

 

{$comment->item()->url()}

 

Работал корректно, то я бы и не пытался решить проблему. Пробовал в conf_global.php править домен на кириллический, но тогда вообще ничего не работает.

{str_replace( $_SERVER['HTTP_HOST'], 'domen.ru', $comment->item()->url())}

{expression="str_replace( $_SERVER['HTTP_HOST'], 'domen.ru', $comment->item()->url())"}

  • Автор

Спасибо, это работает!

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.