форум vBSupport.ru > vBulletin > vBulletin 3.8.x > Вопросы по vBulletin 3.8
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Nevil
Знаток
 
Nevil's Avatar
Default DBTech vBShout Pro 6.0.7
0

Отличный чат с большим функционалом. Скачать можно тут - http://vbsupport.ru/forum/showthread.php?t=37553 .

Но есть проблема. У меня форум в кодировке cp1251. Чат в кодировке utf-8. Сообщения выводит в кракозябрах. Поколдовав немного я нашёл место, где можно перекодировать эти сообщения.
dbtech\vbshout\includes\class_core.php
ищём:
PHP Code:
$tmp utf8_encode(serialize(array($shouts_r['message']))); 
менем на:
PHP Code:
$tmp iconv('windows-1251''utf-8'serialize(array($shouts_r['message']))); 
ищем:
PHP Code:
$shouts_r['message'] = utf8_encode($shouts_r['message']);
$shouts_r['message_raw'] = utf8_encode($shouts_r['message_raw']); 
меняем на:
PHP Code:
$shouts_r['message'] = iconv('windows-1251''utf-8'$shouts_r['message']);
$shouts_r['message_raw'] = iconv('windows-1251''utf-8'$shouts_r['message_raw']); 
ищем:
PHP Code:
        if (self::$vbulletin->options['allowedbbcodes'] & 64)
        {
            
// We can use the URL BBCode, so convert links
            
$sticky convert_url_to_bbcode($sticky);
        } 
после добавляем:
PHP Code:
$sticky iconv('windows-1251''utf-8'$sticky); 
Теперь сообщения и sticky выводятся как надо. Однако в тело чата выводится ещё куча фраз и всякие там уведомления, они то же требуют перекодировки. Может кто справился уже с этой задачей? Поделитесь опытом.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
hoo
Гуру
 
hoo's Avatar
Default
0

Я лично оставил версию 6.0.3, только вручную исправил фиксы, которые они указывали на своём форуме.
 
 
Nevil
Знаток
 
Nevil's Avatar
Default
0

Quote:
Originally Posted by hoo View Post
Я лично оставил версию 6.0.3
В этой версии нету проблемы с кодировкой?
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by NevilRO View Post
В этой версии нету проблемы с кодировкой?
я уже как то писал, что проблемы с кодировкой есть во всех буржуйских хаках, которые используют AJAX для передачи строковых данных и отображения их на странице
буржуям глубоко похрену "наши" проблемы, они не заморачиваются с перекодировкой текста, а многие даже не подозревают о таких проблемах, т.к всегда использовали только ISO-xxx или UTF-8
==
нормально оттестировать подобные скрипты кодер может, только имея 2 (или больше) установленных форума с различными кодировками БД, один из которых должен быть в windows-1251 и соответствующими данными в БД именно в этой кодировке, на русском языке (кириллице)
 
 
Nevil
Знаток
 
Nevil's Avatar
Default
0

Так чо делать то?
Керк, есть смысл перекодировать все скрипты в cp1251? В том числе и js. Поможет ли? Скриптов там уйма -_-
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by NevilRO View Post
есть смысл перекодировать все скрипты в cp1251? В том числе и js
нет конечно
проблема не в самих скриптах и в какой кодировке эти файлы, там то никаких данных на кириллице нет (чаще всего)
проблема в обмене строковыми данными сервер-клиент
скрипт должен определять, в какой кодировке эти данные хранятся в БД (или текстовом файле, если не используется БД) и передавать их клиенту в браузер
ты же в первом посте сам показал примеры, но они годятся только для форума в кодировке win-1251
если же БД в UTF-8 (как саппорт к примеру), то при таком раскладе, в браузер будут переданы краказяблы, т.к. перекодировка будет происходить дважды
нужно обязательно делать такую проверку + проверку на существование на сервере функции iconv() (сталкивался иногда с таким)
PHP Code:
if(strtoupper($stylevar['charset']) != 'UTF-8' AND function_exists('iconv'))
{
      
$string iconv($stylevar['charset'], 'UTF-8//IGNORE'$string);

и такие проверки делать везде, где есть передача строковых данных через аякс

описание функции, которая используется в данном хаке, (откуда и куда конвертятся данные)



 
 
hoo
Гуру
 
hoo's Avatar
Default
0

NevilRO, подобные проблемы начались с версии 6.0.0
В 6.0.3 стало отображаться корректно на тройке, но на четвёрке в 1251 по-прежнему были кракозябры. Дальнейшие версии на четвёрке не проверял.
По этому оставил 6.0.3
 
 
Nevil
Знаток
 
Nevil's Avatar
Default
0

Quote:
Originally Posted by kerk View Post
скрипт должен определять, в какой кодировке эти данные хранятся в БД (или текстовом файле, если не используется БД) и передавать их клиенту в браузер
ты же в первом посте сам показал примеры, но они годятся только для форума в кодировке win-1251
Ага понял. Поэтому некоторые данные он отображает вообще в латинской кодировке. Потому что там нету такой проверки.

Quote:
Originally Posted by kerk View Post
if(strtoupper($stylevar['charset']) != 'UTF-8' AND function_exists('iconv'))
{
$string = iconv($stylevar['charset'], 'UTF-8//IGNORE', $string);
}
Вот кусок кода от туда
PHP Code:
            if ($lower_charset != 'utf-8')
            {
                
$tmp utf8_encode(serialize(array($shouts_r['message'])));
                if (!
is_array(@unserialize($tmp)))
                {
                    
// Unserialize failed, possibly utf8 characters stored here
                    
if (is_array(@unserialize(utf8_decode($tmp))))
                    {
                        
// Decode UTF-8 characters
                        
$shouts_r['message'] = utf8_encode($shouts_r['message']);
                        
$shouts_r['message_raw'] = utf8_encode($shouts_r['message_raw']);
                    }
                }
            } 
Получается такую проверку надо будет делать в каждом месте, где хак лезет в БД за данными в кириллице?

NevilRO добавил 09.05.2012 в 19:07
hoo, а ты не мог бы поделиться этой версией тут? или в личку мне?

Last edited by Nevil : 05-09-2012 at 08:07 PM. Reason: Добавлено сообщение
 
 
hoo
Гуру
 
hoo's Avatar
Default
0

NevilRO, к FintMax'у http://vbsupport.ru/forum/showthread.php?t=40013
Статус "знаток" - доступ можно получить бесплатно.
 
 
Жахангир Инамов
Простоузер
Default
0

А как сделать чтоб новые сообщения снизу отображались, сверху как не привычно
 


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 10:16 AM.


Powered by vBulletin® Version Random
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.