У Вас не удалена папка /install/?
Хакеры идут к Вам!!!

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа 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.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

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

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

 
 
Первый пост
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 9

47.
Баг: неверное имя экпортируемого поля XML.
Версия: 3.6.3, 3.6.4
Исправление:
В файле external.php на 394 строке найти:
PHP Code:
$xml->add_tag('data'vbdate($vbulletin->options['dateformat'], $thread['dateline'])); 
заменить на:
PHP Code:
$xml->add_tag('date'vbdate($vbulletin->options['dateformat'], $thread['dateline'])); 

48.
Баг: неверное изменение заголовка темы при объединении тем.
Версия: 3.6.3, 3.6.4
Исправление:
В файле inlinemod.php на 3338 строке найти:
PHP Code:
'icondid'      => $firstpost['iconid'], 
заменить на:
PHP Code:
'iconid'      => $firstpost['iconid'], 
В том же файле на 3833 строке найти:
PHP Code:
'icondid'      => $firstpost['iconid'], 
заменить на:
PHP Code:
'iconid'      => $firstpost['iconid'], 
В том же файле на 3650 строке найти:
PHP Code:
SELECT postidtitlepagetext 
заменить на:
PHP Code:
SELECT 
В том же файле на 3656 строке найти:
PHP Code:
delete_post_index($getfirstpost['postid'], $getfirstpost['title'], $getfirstpost['pagetext']); 
ВЫШЕ добавить:
PHP Code:
// make the first post have the title of the new split thread
$postdata =& datamanager_init('Post'$vbulletinERRTYPE_SILENT'threadpost');
$postdata->set_existing($getfirstpost);
$postdata->set('title'$destthreadinfo['title'], truefalse); // don't clean it -- already been cleaned
$postdata->set('iconid'$destthreadinfo['iconid'], truefalse);
$postdata->save(); 
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 6

49.
Баг: .
Версия: 3.6.3, 3.6.4
Исправление:
В файле admincp/attachment.php на 913 строке найти:
PHP Code:
$attachment $vbulletin->GPC['url']; 
заменить на:
PHP Code:
$attachment_input $vbulletin->GPC['url']; 

В том же файле на 917 строке найти:
PHP Code:
$attachment = array( 
заменить на:
PHP Code:
$attachment_input = array( 

В том же файле на 926 строке найти:
PHP Code:
if (!$upload->process_upload($attachment)) 
заменить на:
PHP Code:
if (!$upload->process_upload($attachment_input)) 
 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 10

50.
Баг: опечатка.
Версия: 3.6.3, 3.6.4
Исправление:
В файле online.php на 74 строке найти:
PHP Code:
'ajax'      => TYPE_BOOLEAN 
заменить на:
PHP Code:
'ajax'      => TYPE_BOOL 
 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 16

51.
Баг: критическая уязвимость, позволяет пользователю с правами модератора выполнить произвольный SQL запрос.
Версия: 3.6.3, 3.6.4
Исправление:
В файле inlinemod.php на 135 строке найти:
PHP Code:
foreach ($threadids AS $index => $threadid)
{
    if (
$threadids["$index"] != intval($threadid))
    {
        unset(
$threadids["$index"]);
    }

заменить на:
PHP Code:
foreach ($threadids AS $index => $threadid)
{
    if (
intval($threadid) == 0)
    {
        unset(
$threadids["$index"]);
    }
    else
    {
        
$threadids["$index"] = intval($threadid);
    }

В том же файле на 187 строке найти:
PHP Code:
foreach ($postids AS $index => $postid)
{
    if (
$postids["$index"] != intval($postid))
    {
        unset(
$postids["$index"]);
    }

заменить на:
PHP Code:
foreach ($postids AS $index => $postid)
{
    if (
intval($postid) == 0)
    {
        unset(
$postids["$index"]);
    }
    else
    {
        
$postids["$index"] = intval($postid);
    }


52.
Баг: лишний закрывающий тег в шаблоне.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В шаблоне modifyprofilepic найти:
Code:
<if condition="$show['profilepic_url']">$vbphrase[option_2_upload_image_from_computer]<else />$vbphrase[upload_image_from_computer]</if>
<div style="padding:$stylevar[formspacer]px">
	<input type="file" class="bginput" name="upload" size="50" />
	<input type="hidden" name="MAX_FILE_SIZE" value="$inimaxattach" />
</div>
</if>
Самый последний закрывающий тег </if> удалить.


53.
Баг: при поиске фраз при выборе нескольких типов фраз учитываются не все из них.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле admincp/phrase.php на 540 строке найти:
PHP Code:
case 10$sql fetch_field_like_sql($vbulletin->GPC['searchstring'], 'text'false$vbulletin->GPC['casesensitive']) . ' OR ' fetch_field_like_sql($vbulletin->GPC['searchstring'], 'varname'true$vbulletin->GPC['casesensitive']); break; 
заменить на:
PHP Code:
case 10$sql '(' fetch_field_like_sql($vbulletin->GPC['searchstring'], 'text'false$vbulletin->GPC['casesensitive']) . ' OR ' fetch_field_like_sql($vbulletin->GPC['searchstring'], 'varname'true$vbulletin->GPC['casesensitive']) . ')'; break; 

54.
Баг: перезагрузка подтверждающего изображения при регистрации не работает, если гостям запрещён доступ к форуму.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле global.php на 689 строке найти:
PHP Code:
$allowed_scripts = array(
    
'register',
    
'login',
    
'image',
    
'sendmessage',
    
'subscription'
); 
заменить на:
PHP Code:
$allowed_scripts = array(
    
'register',
    
'login',
    
'image',
    
'sendmessage',
    
'subscription',
    
'ajax'
); 
В том же файле на 710 строке найти:
PHP Code:
$_doArray = array('contactus''docontactus''register''signup''requestemail''emailcode''activate''login''logout''lostpw''emailpassword''addmember''coppaform''resetpassword''regcheck''checkdate''removesubscription'); 
заменить на:
PHP Code:
$_doArray = array('contactus''docontactus''register''signup''requestemail''emailcode''activate''login''logout''lostpw''emailpassword''addmember''coppaform''resetpassword''regcheck''checkdate''removesubscription''imagereg'); 
 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 15

55.
Баг: возвращение неверного значения фугкцией show_prompt в зависимости от обозревателя (кстати, не ставьте фикс, если не добавили новые файлы из архива 3.6.5, там их несколько новых есть).
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле clientscript/vbulletin_textedit.js на 1072 строке найти:
PHP Code:
this.show_prompt = function(dialogtxtdefaultval)
{
    return 
PHP.trim(new String(prompt(dialogtxtdefaultval)));
}; 
заменить на:
PHP Code:
this.show_prompt = function(dialogtxtdefaultval)
{
    if (
is_ie7)
    {
        var 
returnvalue window.showModalDialog("clientscript/ieprompt.html", { valuedefaultvallabeldialogtxtdirdocument.dirtitledocument.title }, "dialogWidth:320px; dialogHeight:150px; dialogTop:" + (parseInt(window.screenTop) + parseInt(window.event.clientY) + parseInt(document.body.scrollTop) - 100) + "px; dialogLeft:" + (parseInt(window.screenLeft) + parseInt(window.event.clientX) + parseInt(document.body.scrollLeft) - 160) + "px; resizable: No;");
    }
    else
    {
        var 
returnvalue prompt(dialogtxtdefaultval);
    }
    
    
// deal with unexpected return value
    
if (typeof(returnvalue) == "undefined")
    {
        return 
false;
    }
    else if (
returnvalue == false || returnvalue == null)
    {
        return 
returnvalue;
    }
    else
    {
        return 
PHP.trim(new String(returnvalue));
    }
}; 

56.
Баг: неверное сохранение ссылки при импорте RSS ленты.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле admincp/rssposter.php на 496 строке найти:
PHP Code:
"<div><a href=\"rssposter.php?" $vbulletin->session->vars['sessionurl'] . "do=edit&amp;rssfeedid=$feed[rssfeedid]\" title=\"$feed[url]\"><strong>$feed[title]</strong></a></div>
<div class=\"smallfont\"><a href=\"
$feed[url]\" target=\"feed\">$x[host]</a></div>"
заменить на:
PHP Code:
"<div><a href=\"rssposter.php?" $vbulletin->session->vars['sessionurl'] . "do=edit&amp;rssfeedid=$feed[rssfeedid]\" title=\"" htmlspecialchars_uni($feed['url']) . "\"><strong>$feed[title]</strong></a></div>
<div class=\"smallfont\"><a href=\"" 
htmlspecialchars_uni($feed['url']) . "\" target=\"feed\">$x[host]</a></div>"

57.
Баг: пустое условие в шаблоне.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В шаблоне CALENDAR найти:
Code:
<if condition="$show['popups'] == 0"></if>
удалить.


58.
Баг: неверное отображение кавычек в заголовке темы при выводе последнего сообщения на главной странице форума.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле includes/functions.php на 639 строке найти:
PHP Code:
$title substr($title0$chars); 
заменить на:
PHP Code:
$title vbchop($title$chars); 

59.
Баг: неверное расположение таблицы ошибок при регистрации.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В шаблоне register найти:
Code:
<table cellpadding="2" cellspacing="0" border="0" width="100%" align="center" ID="Table1">
	<tr>
		<td>
			dfhdzfhdfhzdfhz$vbphrase[until_receive_signed_form]
		</td>
	</tr>
	<tr>
		<td><strong>$vbphrase[errors_occurred_during_registration]:</strong>
			<ul>
				zdfhzdfhzdhfdz$errorlist
			</ul>
		</td>
	</tr>
</table>
заменить на:
Code:
<if condition="$show['coppa']">
	<div>$vbphrase[until_receive_signed_form]</div>
</if>
<if condition="$show['errors']">
	<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]"
		border="0" width="100%" align="center" ID="Table2">
		<tr>
			<td class="tcat">$vbphrase[errors_occurred_during_registration]</td>
		</tr>
		<tr>
			<td class="alt1"><ul>
					$errorlist</ul>
			</td>
		</tr>
	</table>
	<br />
</if>
60.
Баг: отправка жалобы модератору раздела по электронной почте работает только в том случает, если у модератора раздела основная группа - "Модераторы".
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле report.php на 329 строке найти:
PHP Code:
$moderators $db->query_read_slave("
    SELECT user.email, user.languageid, user.username, user.userid
    FROM " 
TABLE_PREFIX "user AS user
    INNER JOIN " 
TABLE_PREFIX "usergroup AS usergroup USING (usergroupid)
    WHERE usergroup.adminpermissions <> 0
    " 
. (!empty($mods) ? "AND userid NOT IN (" implode(','array_keys($mods)) . ")" "") . "
"
); 
заменить на:
PHP Code:
$moderators $db->query_read_slave("
    SELECT DISTINCT user.email, user.languageid, user.username, user.userid
    FROM " 
TABLE_PREFIX "usergroup AS usergroup
    INNER JOIN " 
TABLE_PREFIX "user AS user ON(user.usergroupid = usergroup.usergroupid OR FIND_IN_SET(usergroup.usergroupid, user.membergroupids))
    WHERE usergroup.adminpermissions <> 0
    " 
. (!empty($mods) ? "AND userid NOT IN (" implode(','array_keys($mods)) . ")" "") . "
"
); 

61.
Баг: выполнение произвольного SQL запроса при поиске вложений в панели управления администратора (это не критическая уязвимость, потому что чтобы выполнить SQL запрос, нужно быть администратором форума).
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле admincp/attachment.php на 650 строке найти:
PHP Code:
// error prevention
if (!isset($vbulletin->GPC['search']['visible']) OR $vbulletin->GPC['search']['visible'] < -OR $vbulletin->GPC['search']['visible'] > 1
выше добавить:
PHP Code:
$vbulletin->GPC['search']['downloadsmore'] = intval($vbulletin->GPC['search']['downloadsmore']);
$vbulletin->GPC['search']['downloadsless'] = intval($vbulletin->GPC['search']['downloadsless']);
$vbulletin->GPC['search']['sizemore'] = intval($vbulletin->GPC['search']['sizemore']);
$vbulletin->GPC['search']['sizeless'] = intval($vbulletin->GPC['search']['sizeless']);
$vbulletin->GPC['search']['visible'] = intval($vbulletin->GPC['search']['visible']);
$vbulletin->GPC['search']['orderby'] = in_array($vbulletin->GPC['search']['orderby'], array('user.username''counter''filename''filesize''post.dateline''attachment.visible')) ? $vbulletin->GPC['search']['orderby'] : 'filename';
$vbulletin->GPC['search']['ordering'] = in_array($vbulletin->GPC['search']['ordering'], array('ASC''DESC')) ? $vbulletin->GPC['search']['ordering'] : 'DESC';
$vbulletin->GPC['search']['results'] = intval($vbulletin->GPC['search']['results']); 
В том же файле на 728 строке найти:
PHP Code:
$query .= "AND (attachment.dateline BETWEEN UNIX_TIMESTAMP('" $vbulletin->GPC['search']['datelineafter'] . "') AND UNIX_TIMESTAMP('" $vbulletin->GPC['search']['datelinebefore'] . "')) "
заменить на:
PHP Code:
$query .= "AND (attachment.dateline BETWEEN UNIX_TIMESTAMP('" $db->escape_string($vbulletin->GPC['search']['datelineafter']) . "') AND UNIX_TIMESTAMP('" $db->escape_string($vbulletin->GPC['search']['datelinebefore']) . "')) "
В том же файле на 736 строке найти:
PHP Code:
$query .= "AND attachment.dateline > UNIX_TIMESTAMP('" $vbulletin->GPC['search']['datelineafter'] . "') "
заменить на:
PHP Code:
$query .= "AND attachment.dateline > UNIX_TIMESTAMP('" $db->escape_string($vbulletin->GPC['search']['datelineafter']) . "') "
 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 7

62.
Баг: опция "Минимальная длина индексируемых слов" для полнотекстового поиска не работает.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле includes/functions_search.php на 473 строке найти:
PHP Code:
static $badwords;

if (
strpos($word'*') !== false AND !preg_match('#^"([^"]+)"$#s'$word))
{
    if (
$vbulletin->options['allowwildcards'])
    {
        
#  try to remove some characters that mysql is going to silently convert to spaces on us
        # Can't get more specific without breaking other character sets
        
if (vbstrlen(preg_replace('#[\000-\031~!@\#$%^&*()=\[\]{}\\":;<>,.?/`]|\'{2,}#si'''$word)) < ($vbulletin->options['minsearchlength'] - 1))
        {
            
// word is too short
            
$word htmlspecialchars_uni($word);
            eval(
standard_error(fetch_error('searchinvalidterm'$word$vbulletin->options['minsearchlength'])));
        }
        else
        {
            return 
true;
        }
    }
    else
    {
        
// wildcards are not allowed - error
        
$word htmlspecialchars_uni($word);
        eval(
standard_error(fetch_error('searchinvalidterm'$word$vbulletin->options['minsearchlength'])));
    }

заменить на:
PHP Code:
static $badwords;

if (!
preg_match('#^"([^"]+)"$#s'$word))
{
    if (
strpos($word'*') !== false)
    {
        if (
$vbulletin->options['allowwildcards'])
        {
            
#  try to remove some characters that mysql is going to silently convert to spaces on us
            # Can't get more specific without breaking other character sets
            
if (vbstrlen(preg_replace('#[\000-\031~!@\#$%^&*()=\[\]{}\\":;<>,.?/`]|\'{2,}#si'''$word)) < ($vbulletin->options['minsearchlength'] - 1))
            {
                
// word is too short
                
$word htmlspecialchars_uni($word);
                eval(
standard_error(fetch_error('searchinvalidterm'$word$vbulletin->options['minsearchlength'])));
            }
            else
            {
                return 
true;
            }
        }
        else
        {
            
// wildcards are not allowed - error
            
$word htmlspecialchars_uni($word);
            eval(
standard_error(fetch_error('searchinvalidterm'$word$vbulletin->options['minsearchlength'])));
        }
    }
    else
    {
        
#  try to remove some characters that mysql is going to silently convert to spaces on us
        # Can't get more specific without breaking other character sets
        
if (vbstrlen(preg_replace('#[\000-\031~!@\#$%^&*()=\[\]{}\\":;<>,.?/`]|\'{2,}#si'''$word)) < $vbulletin->options['minsearchlength'])
        {
            
// word is too short
            
$word htmlspecialchars_uni($word);
            eval(
standard_error(fetch_error('searchinvalidterm'$word$vbulletin->options['minsearchlength'])));
        }
        else
        {
            return 
true;
        }
    }


63.
Баг: приветственное ЛС не отправляется пользователю, если у его группы нет прав на использование системы ЛС.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле includes/class_dm_user.php на 2374 строке найти:
PHP Code:
$pmdm =& datamanager_init('PM'$this->registryERRTYPE_SILENT); 
после этого добавить:
PHP Code:
$pmdm->overridequota true

64.
Баг: неверный способ ускорения работоспособности при отображении страницы руководства форума (showgroups.php).
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле showgroups.php на 101 строке найти:
PHP Code:
// get usergroups who should be displayed on showgroups
// Scans too many rows. Usergroup Rows * User Rows
$users $db->query_read_slave("
    SELECT user.*, usergroup.usergroupid, usergroup.title, user.options, usertextfield.*, userfield.*,
    IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
    FROM " 
TABLE_PREFIX "usergroup AS usergroup
    LEFT JOIN " 
TABLE_PREFIX "user AS user ON(user.usergroupid = usergroup.usergroupid OR FIND_IN_SET(usergroup.usergroupid, user.membergroupids))
    LEFT JOIN " 
TABLE_PREFIX "userfield AS userfield ON(userfield.userid = user.userid)
    LEFT JOIN " 
TABLE_PREFIX "usertextfield AS usertextfield ON(usertextfield.userid=user.userid)
    WHERE (usergroup.genericoptions & " 
$vbulletin->bf_ugp_genericoptions['showgroup'] . ")
"
); 
заменить на:
PHP Code:
// get usergroups who should be displayed on showgroups
// Scans too many rows. Usergroup Rows * User Rows
$users $db->query_read_slave("
    SELECT user.*, usergroup.usergroupid, usergroup.title, user.options, usertextfield.*, userfield.*,
    IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
    FROM " 
TABLE_PREFIX "user AS user
    LEFT JOIN " 
TABLE_PREFIX "usergroup AS usergroup ON(user.usergroupid = usergroup.usergroupid OR FIND_IN_SET(usergroup.usergroupid, user.membergroupids))
    LEFT JOIN " 
TABLE_PREFIX "userfield AS userfield ON(userfield.userid = user.userid)
    LEFT JOIN " 
TABLE_PREFIX "usertextfield AS usertextfield ON(usertextfield.userid=user.userid)
    WHERE (usergroup.genericoptions & " 
$vbulletin->bf_ugp_genericoptions['showgroup'] . ")
"
); 

65.
Баг: неверная обработка HTML при импортировании RSS и новостных лент.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле includes/class_rss_poster.php на 225 строке найти:
PHP Code:
if (strtoupper(substr($match[2], 09)) == '<![CDATA[')
{
    continue;
}
if (
strpos($match[2], '<') !== false)
{
    
$output $match[1] . '<![CDATA[' vB_XML_Builder::escape_cdata($match[2]) . ']]>' $match[3];
    
$xml_string str_replace($match[0], $output$xml_string);

заменить на:
PHP Code:
if (strpos(strtoupper($match[2]), '<![CDATA[') === false AND strpos($match[2], '<') !== false)
{
    
// no CDATA tag, but we have an HTML tag
    
$output $match[1] . '<![CDATA[' vB_XML_Builder::escape_cdata($match[2]) . ']]>' $match[3];
    
$xml_string str_replace($match[0], $output$xml_string);


66.
Баг: ошибка PHP при управлении вложениями.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле newattachment.php на 426 строке найти:
PHP Code:
if ($postid)
{
    
$userinfo fetch_userinfo($postinfo['userid']);
    
cache_permissions($userinfotrue);
    
$perms $user['forumpermissions'];
    
$attachlimit $user['permissions']['attachlimit'];

заменить на:
PHP Code:
if ($postid)
{
    
$userinfo fetch_userinfo($postinfo['userid']);
    
cache_permissions($userinfotrue);
    
$perms $userinfo['forumpermissions'];
    
$attachlimit $userinfo['permissions']['attachlimit'];


67.
Баг: не отображаются аватары, загруженные супер-модератором.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле modcp/user.php на 1007 строке найти:
PHP Code:
$userinfo fetch_userinfo($vbulletin->GPC['userid']);

if (
$useavatar)
{
    if (!
$vbulletin->GPC['avatarid'])
    {
        
// custom avatar
        
$vbulletin->input->clean_gpc('f''upload'TYPE_FILE);

        require_once(
DIR '/includes/class_upload.php');
        require_once(
DIR '/includes/class_image.php');

        
$upload = new vB_Upload_Userpic($vbulletin);

        
$upload->data =& datamanager_init('Userpic_Avatar'$vbulletinERRTYPE_CP'userpic');
        
$upload->image =& vB_Image::fetch_library($vbulletin);
        
$upload->userinfo =& $userinfo;

        
/*
        // Bypass size checking for now since if a usergroup has no permission to use avatars, it causes an issue since their
        // max settings will all be set to -1
        // Fix is to include the Width/Height/Size settings of usergroups with CANUSEAVATAR=NO in determining permissions
        if (!($userinfo['permissions']['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel']))
        {
            cache_permissions($userinfo, false);
            if ($userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar'])
            {
                $upload->maxwidth = $userinfo['permissions']['avatarmaxwidth'];
                $upload->maxheight = $userinfo['permissions']['avatarmaxheight'];
                $upload->maxuploadsize = $userinfo['permissions']['avatarmaxsize'];
                $upload->allowanimation = ($userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cananimateavatar']) ? true : false;
            }
        }
        */

        
if (!$upload->process_upload($vbulletin->GPC['avatarurl']))
        {
            
print_stop_message('there_were_errors_encountered_with_your_upload_x'$upload->fetch_error());
        }
    }
    else
    {
        
// predefined avatar
        
$userpic =& datamanager_init('Userpic_Avatar'$vbulletinERRTYPE_CP'userpic');
        
$userpic->condition "userid = " $userinfo['userid'];
        
$userpic->delete();
    }
}
else
{
    
// not using an avatar
    
$vbulletin->GPC['avatarid'] = 0;
    
$userpic =& datamanager_init('Userpic_Avatar'$vbulletinERRTYPE_CP'userpic');
    
$userpic->condition "userid = " $userinfo['userid'];
    
$userpic->delete();
}

// init user datamanager
$userdata =& datamanager_init('User'$vbulletinERRTYPE_CP);
$userdata->set_existing($userinfo);
$userdata->set('avatarid'$vbulletin->GPC['avatarid']);
$userdata->save(); 
заменить на:
PHP Code:
$userinfo fetch_userinfo($vbulletin->GPC['userid']);

// init user datamanager
$userdata =& datamanager_init('User'$vbulletinERRTYPE_CP);
$userdata->set_existing($userinfo);

if (
$useavatar)
{
    if (!
$vbulletin->GPC['avatarid'])
    {
        
// custom avatar
        
$vbulletin->input->clean_gpc('f''upload'TYPE_FILE);

        require_once(
DIR '/includes/class_upload.php');
        require_once(
DIR '/includes/class_image.php');

        
$upload = new vB_Upload_Userpic($vbulletin);

        
$upload->data =& datamanager_init('Userpic_Avatar'$vbulletinERRTYPE_CP'userpic');
        
$upload->image =& vB_Image::fetch_library($vbulletin);
        
$upload->userinfo =& $userinfo;

        
cache_permissions($userinfofalse);
        
// user's group doesn't have permission to use custom avatars so set override
        
if (!($userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar']))
        {
            
$userdata->set_bitfield('adminoptions''adminavatar'1);
        }

        if (!
$upload->process_upload($vbulletin->GPC['avatarurl']))
        {
            
print_stop_message('there_were_errors_encountered_with_your_upload_x'$upload->fetch_error());
        }
    }
    else
    {
        
// predefined avatar
        
$userpic =& datamanager_init('Userpic_Avatar'$vbulletinERRTYPE_CP'userpic');
        
$userpic->condition "userid = " $userinfo['userid'];
        
$userpic->delete();
    }
}
else
{
    
// not using an avatar
    
$vbulletin->GPC['avatarid'] = 0;
    
$userpic =& datamanager_init('Userpic_Avatar'$vbulletinERRTYPE_CP'userpic');
    
$userpic->condition "userid = " $userinfo['userid'];
    
$userpic->delete();
}

$userdata->set('avatarid'$vbulletin->GPC['avatarid']);
$userdata->save(); 
 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 10

68.
Баг: неверный статус пользователя после модерации.
Версия: 3.6.3, 3.6.4, 3.6.5
Исправление:
В файле admincp/user.php на 1596 строке найти:
PHP Code:
// init user data manager
$userdata =& datamanager_init('User'$vbulletinERRTYPE_CP);
$userdata->set_existing($user);
$userdata->set('usergroupid'2);
$userdata->set_usertitle(
    
$user['customtitle'] ? $user['usertitle'] : '',
    
false,
    
$vbulletin->usergroupcache[2],
    (
$vbulletin->usergroupcache[2]['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true false,
    
false
);
$userdata->save(); 
заменить на:
PHP Code:
// init user data manager
$displaygroupid = ($user['displaygroupid'] > AND $user['displaygroupid'] != $user['usergroupid']) ? $user['displaygroupid'] : 2;

$userdata =& datamanager_init('User'$vbulletinERRTYPE_CP);
$userdata->set_existing($user);
$userdata->set('usergroupid'2);
$userdata->set_usertitle(
    
$user['customtitle'] ? $user['usertitle'] : '',
    
false,
    
$vbulletin->usergroupcache["$displaygroupid"],
    (
$vbulletin->usergroupcache['2']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true false,
    
false
);
$userdata->save(); 
 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 9

69.
Баг: ошибка при подготовке отправки быстрого ответа.
Версия: 3.6.3, 3.6.4, 3.6.5, 3.6.6
Исправление:
В файле clientscript/vbulletin_quick_reply.js на 199 строке найти:
Code:
case 'select':
	submitstring += '&' + obj.name + '=' + PHP.urlencode(obj.options[obj.selectedIndex].value);
	break;
заменить на:
Code:
case 'select-one':
	submitstring += '&' + obj.name + '=' + PHP.urlencode(obj.options[obj.selectedIndex].value);
	break;
case 'select-multiple':
	for (var j = 0; j < obj.options.length; j++)
	{
		submitstring += (obj.options[j].selected ? '&' + obj.name + '=' + PHP.urlencode(obj.options[j].value) : '');
	}
	break;

70.
Баг: критическая ошибка после обновления до версии 3.6.6 в файле newthread.php при использовании версии PHP 5.0.5.
Версия: 3.6.3, 3.6.4, 3.6.5, 3.6.6
Исправление:
В файле editpost.php на 297 строке найти:
PHP Code:
$edit['emailupdate'] = array_pop(array_keys(fetch_emailchecked($threadinfo))); 
заменить на:
PHP Code:
$edit['emailupdate'] = array_pop($array array_keys(fetch_emailchecked($threadinfo))); 
В файле newthread.php на 183 строке найти:
PHP Code:
$newpost['emailupdate'] = array_pop(array_keys(fetch_emailchecked(array(), $vbulletin->userinfo))); 
заменить на:
PHP Code:
$newpost['emailupdate'] = array_pop($array array_keys(fetch_emailchecked(array(), $vbulletin->userinfo))); 

71.
Баг: отображение пустого статуса пользователя в шаблоне threadbit_announcement.
Версия: 3.6.3, 3.6.4, 3.6.5, 3.6.6
Исправление:
В шаблоне threadbit_announcement найти:
HTML Code:
($announcement[usertitle])
заменить на:
HTML Code:
<if condition="$announcement[usertitle] != ''">($announcement[usertitle])</if>

72.
Баг: ошибка в архиве.
Версия: 3.6.3, 3.6.4, 3.6.5, 3.6.6
Исправление:
В файле archive/global.php на 125 строке найти:
PHP Code:
if (is_array($vbulletin->iforumcache["$parentid"]))
{
    foreach(
$vbulletin->iforumcache["$parentid"] AS $x)
    {
        foreach(
$x AS $forumid => $forum)
        {
            (
$hook vBulletinHook::fetch_hook('archive_forum')) ? eval($hook) : false;

            if (!(
$vbulletin->userinfo['forumpermissions']["$forumid"] & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums'])))
            {
                continue;
            }
            else
            {
                if (
$forum['link'] !== '')
                {
                    
$output .= "$indent  <li><a href=\"$forum[link]\">$forum[title_clean]</a></li>\n";
                }
                else if (
$forum['cancontainthreads'])
                {
                    
$output .= "$indent  <li><a href=\"" . (!SLASH_METHOD 'index.php?' '') . "f-$forumid.html\">$forum[title_clean]</a></li>\n";
                }
                else
                {
                    
$output .= "$indent  <li><strong>$forum[title_clean]</strong></li>\n";
                }
                
$output .= print_archive_forum_list($forumid"$indent  ");
            }
        }
    }

    if (!empty(
$output))
    {
        if (
$parentid != -1)
        {
            
$output "$indent<li>\n$indent  <ul>\n$output$indent  </ul>\n$indent</li>\n";
        }
        else
        {
            
$output "$indent<ul>\n$output$indent</ul>\n";
        }
    }

заменить на:
PHP Code:
if (is_array($vbulletin->iforumcache["$parentid"]))
{
    
$output "\n$indent<ul>\n";

    foreach(
$vbulletin->iforumcache["$parentid"] AS $x)
    {
        foreach(
$x AS $forumid => $forum)
        {
            (
$hook vBulletinHook::fetch_hook('archive_forum')) ? eval($hook) : false;

            if (!(
$vbulletin->userinfo['forumpermissions']["$forumid"] & $vbulletin->bf_ugp_forumpermissions['canview']) AND ($vbulletin->forumcache["$forumid"]['showprivate'] == OR (!$vbulletin->forumcache["$forumid"]['showprivate'] AND !$vbulletin->options['showprivateforums'])))
            {
                continue;
            }
            else
            {
                if (
$forum['link'] !== '')
                {
                    
$forum_link "<a href=\"$forum[link]\">";
                }
                else if (
$forum['cancontainthreads'])
                {
                    
$forum_link "<a href=\"" . (!SLASH_METHOD 'index.php?' '') . "f-$forumid.html\">";
                }
                else
                {
                    
$forum_link "<a style=\"font-weight:bold\">";
                }
                
$output .= "$indent\t<li>$forum_link$forum[title_clean]</a>" print_archive_forum_list($forumid"\t$indent") . "</li>\n";
            }
        }
    }

    
$output .= "$indent</ul>\n$indent";

 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 5

73.
Баг: неверное подтверждение правильности адреса электронной почты у администраторов.
Версия: 3.6.3, 3.6.4, 3.6.5, 3.6.6
Исправление:
В файле includes/class_dm_user.php на 529 строке найти:
PHP Code:
function verify_useremail(&$email)
    {
        
// check for empty string
        
if ($email == '')
        {
            if (
$this->adminoverride)
            {
                return 
true;
            }

            
$this->error('fieldmissing_email');
            return 
false;
        }

        
// check valid email address
        
if (!$this->verify_email($email))
        {
            
$this->error('bademail');
            return 
false;
        }

        
$email_changed = (!isset($this->existing['email']) OR $email != $this->existing['email']);

        
// check banned email addresses
        
require_once(DIR '/includes/functions_user.php');
        if (
is_banned_email($email) AND !$this->adminoverride)
        {
            if (
$email_changed OR !$this->registry->options['allowkeepbannedemail'])
            {
                
// throw error if this is a new registration, or if updating users are not allowed to keep banned addresses
                
$this->error('banemail'$this->registry->options['contactuslink']);
                return 
false;
            }
        }

        
// check unique address
        
if ($this->registry->options['requireuniqueemail'] AND $email_changed)
        {
            if (
$user $this->dbobject->query_first("
                SELECT userid, username, email
                FROM " 
TABLE_PREFIX "user
                WHERE email = '" 
$this->dbobject->escape_string($email) . "'
                    " 
. ($this->condition !== null 'AND userid <> ' intval($this->existing['userid']) : '') . "
            "
))
            {
                if (
$this->error_handler == ERRTYPE_CP)
                {
                    
$this->error('emailtaken_edit_here'$this->registry->session->vars['sessionurl'], $user['userid']);
                }
                else
                {
                    
$this->error('emailtaken'$this->registry->session->vars['sessionurl']);
                }
                return 
false;
            }
        }

        return 
true;
    } 
заменить на:
PHP Code:
function verify_useremail(&$email)
    {
        
$email_changed = (!isset($this->existing['email']) OR $email != $this->existing['email']);

        
// check for empty string
        
if ($email == '')
        {
            if (
$this->adminoverride OR !$email_changed)
            {
                return 
true;
            }

            
$this->error('fieldmissing_email');
            return 
false;
        }

        
// check valid email address
        
if (!$this->verify_email($email))
        {
            
$this->error('bademail');
            return 
false;
        }

        
// check banned email addresses
        
require_once(DIR '/includes/functions_user.php');
        if (
is_banned_email($email) AND !$this->adminoverride)
        {
            if (
$email_changed OR !$this->registry->options['allowkeepbannedemail'])
            {
                
// throw error if this is a new registration, or if updating users are not allowed to keep banned addresses
                
$this->error('banemail'$this->registry->options['contactuslink']);
                return 
false;
            }
        }

        
// check unique address
        
if ($this->registry->options['requireuniqueemail'] AND $email_changed)
        {
            if (
$user $this->dbobject->query_first("
                SELECT userid, username, email
                FROM " 
TABLE_PREFIX "user
                WHERE email = '" 
$this->dbobject->escape_string($email) . "'
                    " 
. ($this->condition !== null 'AND userid <> ' intval($this->existing['userid']) : '') . "
            "
))
            {
                if (
$this->error_handler == ERRTYPE_CP)
                {
                    
$this->error('emailtaken_edit_here'$this->registry->session->vars['sessionurl'], $user['userid']);
                }
                else
                {
                    
$this->error('emailtaken'$this->registry->session->vars['sessionurl']);
                }
                return 
false;
            }
        }

        return 
true;
    } 
 
Old  
AnTekapb
Эксперт
interpreter
 
AnTekapb's Avatar
Exclamation 15

74.
Баг: в панели администратора запрос на поиск вложений не возвращает результатов.
Версия: 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.6.7
Исправление:
В файле admincp/attachment.php на 652 строке найти:
PHP Code:
$vbulletin->GPC['search']['visible'] = intval($vbulletin->GPC['search']['visible']); 
заменить на:
PHP Code:
$vbulletin->GPC['search']['visible'] = (isset($vbulletin->GPC['search']['visible']) ? intval($vbulletin->GPC['search']['visible']) : -1); 
75.
Баг: если Ваш форум тормозит на версии 3.6.7, юзайте этот фикс.
Версия: 3.6.7
Исправление:
В файле clientscript/vbulletin_global.js на 1847 строке найти:
Code:
this.find_elements(document.getElementsByTagName("body")[0]);
заменить на:
Code:
//this.find_elements(document.getElementsByTagName("body")[0]);
 
 

Thread Tools

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 02:02 PM.


Powered by vBulletin® Version 3.0.18
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.