VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Не работает хак Auto-entry in membergroup by field in profile
0
Есть слегка изменённый plugin - Auto-entry in membergroup by field in profile
Его задача. У пользователя в опциях есть поле с тремя вариантами ответа: Yes, Probably, No. Если выбран 1 из первых двух, то он должен включаться в определённую группу (11), а если третий вариант, то не должен, даже если когда-то был в ней. Plugin включён в profile_updateoptions.
PHP Code:
// Add or remove user from secondary usergroup
// according to Pwd value in user's profile
global $vbulletin;
// Enter values for your forum in the 3 strings below
$org_mg = '11'; // target membergroup # as string
$org_pwfield = 'field7'; // custom field# in profile as string
// You don't need to touch anything below here
$org_userid = ($vbulletin->userinfo['userid']); // userid of user
$org_mglist = (''.$vbulletin->userinfo['membergroupids']); // current membergroups string
$org_mgarr = explode(',' , $org_mglist); // convert membergroups to array
$org_inmg = (in_array($org_mg, $org_mgarr)); // user in target membergroup (true/false)
$org_haspwd = ($vbulletin->userinfo[$org_pwfield] == 'Yes' or $vbulletin->userinfo[$org_pwfield] == 'Probably'); // User has correct password in profile (T/F)
$org_doupdate = false;
if ($org_haspwd && !$org_ingrp) // Has password, not in membergroup
{
if ($org_mglist != '') // if mglist already populated
{
$org_comma = ','; // we'll need a comma
}
$org_newmg = ($org_mglist . $org_comma . $org_mg); // add group to string
$org_mglist = $org_newmg;
$org_doupdate = true; // set toggle to update database
}
else
{
if (!$org_haspwd && $org_ingrp) // No password, but is in membergroup
{
foreach ($org_arr as $value) // go thru array
{
if ($value == $org_mg) // find target membergroup
{
$org_arr[$iii] = ''; // set to null
}
$iii++;
}
$org_newmg = implode(',' , $arr); // convert array to string
$org_mglist = str_replace(',,' , ',', $org_newmg); // remove double comma
$org_doupdate = true; // set toggle to update database
}
}
if ($org_doupdate)
{
$updatefields = $vbulletin->db->query("
UPDATE vb_user
SET membergroupids='$org_mglist'
WHERE userid=$org_userid ");
}
Так вот он не работает, во-первых, включает в группу только при первом варианте ответа Yes, во-вторых, со второго раза сохранения опций, в-третьих, не убирает пользователя из группы при смене на третий вариант! Кто-нибудь может найти ошибку в коде?