Работа форума с доменом рф

Автор MirDj, 25 сентября 2017, 11:42:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

MirDj

Всем привет. У меня установлен форум smf на домене рф. Все работае, все нормально, НО... При указании в админке пути boardurl на кириллице, он автоматически переводится в xn----7sbbhi1aunjb0at9c4ck.xn--p1ai. И казалось бы все ничего, форум работает да и ладно, но вот когда приходят уведомления на почту, то адрес домена с ссылками в письме выглядит именно так xn----7sbbhi1aunjb0at9c4ck.xn--p1ai и это не очень хорошо и может сбивать с толку посетителей.
Я пробовал прямо в файле settings прописать значение boardurl на кириллице, но при таком раскладе, перестают работать сессии... Можно ли как-то решить данный вопрос?

Может где-то в функции перед отправкой письма, менять все значения xn----7sbbhi1aunjb0at9c4ck.xn--p1ai на кириллицу?

kak2z

попробуйте в файле Settings.php
в переменную $boardurl = 'http://сады-новоталицы.рф'; вписать свой адрес на кирилице))
я не знаю какой будет результат - но Вы нам расскажете думаю)
только предыдущее значение сохраните)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

GeorG

Цитата: kak2z от 25 сентября 2017, 17:43:44в переменную $boardurl = 'http://сады-новоталицы.рф'; вписать свой адрес на кирилице))
Ничего хорошего из этого не выйдет.

Цитата: MirDj от 25 сентября 2017, 11:42:13Можно ли как-то решить данный вопрос?
Можно, если завести нормальный домен на латинице, а не на кириллице который может работать только в паникоде.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

kak2z

Цитата: GeorG от 25 сентября 2017, 19:43:25Ничего хорошего из этого не выйдет.
ну попробовать можно было))
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

MirDj

Цитата: kak2z от 25 сентября 2017, 17:43:44в переменную $boardurl = 'http://сады-новоталицы.рф'; вписать свой адрес на кирилице))
Я писал об этом в первом посте своем
ЦитироватьЯ пробовал прямо в файле settings прописать значение boardurl на кириллице, но при таком раскладе, перестают работать сессии

MirDj

Цитата: GeorG от 25 сентября 2017, 19:43:25Можно, если завести нормальный домен на латинице
Ну данный вариант не подходит. Сайт узкоспециализированный и большинство народа там не дружит с интернетом, а если и дружит, то им проще адрес так запомнить, чем объяснять как его вводить на латинице.

Может все-таки можно делать подмену в адресах ссылок при отправке сообщений?
Думаю что это вообще труда не составит. Нужно только знать где эта отправка происходит. А дальше регуляркой на php менять перед отправкой.

MirDj

Кстати, ждал уведомления по электронке, о новых ответах. Так и не пришло ничего. Думал никто не отвечает, решил зайти и вижу ответы. Странно. В спаме тоже писем нет. уведомления включены.

GeorG

Можете попробовать, вот для удобства поставьте мод для правки шаблонов с извещениями форума - Email Template Editor.

Цитата: MirDj от 28 сентября 2017, 11:59:23Кстати, ждал уведомления по электронке, о новых ответах.
Такая же фигня, и RSS уведомления об ответах на форуме тоже перестали приходить. Но оповещения о ЛС на почту идут, только в спам чаще всего :)
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

MirDj

А что насчет правки адреса перед отправкой почты? Кто-то знает где это править? Наверняка отправка почты реализована отдельным методом в каком-то классе? Где искать не подскажете?

GeorG

Вот в отсылаемых шаблонах и попробуйте исправить, а так адрес берется из глобальных переменных, которые используются по всему коду форума, и если что-то менять, то это уже на конкретном последнем этапе пересылки.

Это не отдельный класс, шаблоны формируются в разных файлах.
Например, уведомление на получения личного сообщения, в конце даётся URL форума - Ответить на это личное сообщение здесь: {здесь URL для переходя к ЛС}
Адрес формируется в файле ../Sources/Subs-Post.php и заносится в переменную $mailmessage, строка:
$mailmessage .= "\n\n" . $txt['instant_reply'] . ' ' . $scripturl . '?action=pm;sa=send;f=inbox;pmsg=' . $id_pm . ';quote;u=' . $from['id'];
Тут участвует глобальная переменная $scripturl, в неё адрес вашего форума в таком виде http://сады-новоталицы.рф/index.php, т.е, вым надо будет изменить эту строку примерно так:
$mailmessage .= "\n\n" . $txt['instant_reply'] . ' ' . 'http://сады-новоталицы.рф/index.php' . '?action=pm;sa=send;f=inbox;pmsg=' . $id_pm . ';quote;u=' . $from['id'];И так везде, для каждого отсылаемого шаблона.
Схема такая, ищите строку отсылаемую в оповещениях на почту в ланг файлах, там смотрите формирующую переменную адреса, потом находите её файлах движка, и изменяете как я показал выше, и так пока все не измените, в итоге я ещё не знаю как это будет работать в конце, в общем, проще адрес сменить, и вбить его в головы вашим пользователям на уровне безумного тика, - чтоб они его средь ночи внезапно проснувшись, могли сразу в темноте на стене написать.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

MirDj

Цитата: GeorG от 29 сентября 2017, 09:19:14Тут участвует глобальная переменная $scripturl
Спасибо за ответ. Думаю тогда лично в моем случае, можно создать в конфиге еще одну переменную и уже в редакторе задать глобальный поиск по файлам скрипта по строке $mailmessage .= и он выдаст все файлы где это упоминается, а дальше просто подменить $scripturl на свою переменную...

GeorG

#11
Неправильно вы думаете, дядьки которые писали движок всё уже придумали до вас, и вам только остаётся следовать примерно тому алгоритму что я написал выше. А вот глобальную переменную, да, можно создать, и там указать нужный вам адрес...

Например, уведомление на подписную тему, там адрес даётся, и перед ним такие строки:
Прочитать ответ:Ищем эти строки в ланг файлах, и находим его в файле ..\Themes\default\languages\EmailTemplates.russian-utf8.php:
Прочитать ответ: {TOPICLINK}Тут получается TOPICLINK заменяется адресом на тут тему в которой появлялся новый ответ, значит идем далее в папку Sources и там по всем файлам включаем поиск слова TOPICLINK, у меня найдено 2 совпадения в Post.php и 5 в файле Subs-Post.php. Для массива $replacements эти строчка выглядит так:
'TOPICLINK' => $scripturl . '?topic=' . $topic . '.0',В этой строчке надо будет заменить адрес так же как я говорил выше (или на вашу глобальную переменную).

И таких замен с разными переменными и в разных местах, может быть весьма много, хотя попробуйте, но я бы лучше адрес просто основной сменил, оставив на редиректе тот что есть на кириллице, тогда бы и пользователям ничего объяснять не пришлось, пусть пишут его на русском, их бы автоматически редиректило на нужный (да и ошибок так многих можно избежать).

p.s. Кстати, не всё надо бездумно заменять, нужно понимать где заменить, а где оставить старую переменную $scripturl (т.е., нужно разобраться для чего она и где потом отработает).
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

digger®

Цитата: GeorG от 29 сентября 2017, 13:01:56И таких замен с разными переменными и в разных местах, может быть весьма много, хотя попробуйте
Тогда уж проще в Subs-Post.php в sendmail() один раз делать замену в теле всех исходящих сообщений.

GeorG

Адрес же не отдельной переменой в функцию входит, а целой месагой, внутри неё адрес, можно конечно регуляркой попробовать.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

digger®

Цитата: GeorG от 29 сентября 2017, 13:18:30Адрес же не отдельной переменой в функцию входит, а целой месагой, внутри неё адрес, можно конечно регуляркой попробовать.
Обычным str_replace заменять xn----7sbbhi1aunjb0at9c4ck.xn--p1ai на нужное, тут и без регулярки можно обойтись.

GeorG

Ну да, что-то типа такого в функцию:
$message = str_replace($scripturl, 'http://сады-новоталицы.рф/index.php', $message);
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

MirDj

Цитата: GeorG от 29 сентября 2017, 13:44:00Ну да, что-то типа такого в функцию:
Вот изначально я об этом и говорил, что должна быть функция единая для отправки сообщения и там можно делать str_replace

Skipper

Цитата: MirDj от 28 сентября 2017, 11:56:24Сайт узкоспециализированный и большинство народа там не дружит с интернетом, а если и дружит, то им проще адрес так запомнить, чем объяснять как его вводить на латинице.
делаем дубль домена на латинцие... на него сажаем форум
с кирилического домена редирект на латинский
мы можем выпить чего угодно, мы можем сделать чего попало... ©

MirDj

Спасибо всем кто откликнулся. Особенно digger®. Сделал по его совету в файле Subs-Post.php замену
$message = str_replace('xn----7sbbhi1aunjb0at9c4ck.xn--p1ai', 'сады-новоталицы.рф', $message);И теперь все сообщения приходят как надо, с корректной ссылкой.

Yarik

На самом деле у кириллических доменов гораздо капканов,просто о большинстве Вы ещё не в курсе.
Буквально на днях не удалось получить бесплатный SSL сертификат от Let's Encrypt.И судя по переписке с саппортом как говорится не судьба.В будущем может быть,хотя уверенности в этом нет.Ошибка на стадии генерации сертификата - Error: LetsEncrypt challenge request 400
Только что пришел совет кириллический домен в панель забивать в кодировке punycode.Одни извраты с этими доменами.

MirDj

Цитата: S.T.A.L.K.E.R. от 04 октября 2017, 13:49:45Ошибка на стадии генерации сертификата
У меня сертификат для домена есть. как раз LetsEncrypt. Домен везде на сервере прописан как punycode и проблем в этом не вижу. сертификат получил без проблем

Yarik

Ну да,потанцевали немного с бубном,а так без проблем.