
Чтобы установить продукт на форум, его необходимо скачать, а дальше выполнить следующие действия:
- Распаковать архив c продуктом
- Содержимое папки upload1 загрузить в папку с файлами форума (напрмер, по ftp)
- Выполнить стандартную инсталляцию продукта
- Содержимое папки upload2 загрузить в папку с файлами форума (заменив файлы обычного vbcredits)
- Создать новый столбец в таблице `usergroup` mysql базы данных форума. Название: `credit_r_bonus`, тип: double, по-умолчанию: 0.
Например, так:ALTER TABLE `usergroup` ADD COLUMN `credit_r_bonus` double DEFAULT 0 - Создать фразу credit_r_bonus, например, следующего содержания:
Процент от прибыли реферала <br /> <p> Когда реферал пользователя этой группы получает выплату, этот процент от неё пойдёт пользователю </p> - Если необходимо показывать пользователям список рефералов, реферальную ссылку и тд. нужно стандартным образом создать плагин (например, на hook'е global_start) с таким кодом:
А затем вставить переменную в нужный шаблон.ob_start(); include('plugins/display_refs_mod.php'); $displayrefs = ob_get_contents(); ob_end_clean(); - Если нужно использовать продукт "Спасибо" и перечислять кредиты за действия пользователей со "Спасибо" - стандартным образом установите продукты thanx и vbcredits thanx.
Затем нужно заменить код плагинов vbcredits thanx на следующий:
Код модуля Add Credits for Giving and Receiving Thanks
$postuser = fetch_userinfo($postinfo['userid']); // give money to user $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $vbulletin->usergroupcache[$vbulletin->userinfo['usergroupid']]['credit_thanks_give'] . " WHERE userid = " . $vbulletin->userinfo['userid']); // search for user referrer $refid = $vbulletin->db->query_first("SELECT referrerid FROM " . TABLE_PREFIX . "user WHERE userid = " . $vbulletin->userinfo['userid']); if ($refid['referrerid'] != 0) { $refgroupid = $vbulletin->db->query_first("SELECT usergroupid FROM " . TABLE_PREFIX . "user WHERE userid = " . $refid['referrerid']); // search for to_referrer bonus $bonus = $vbulletin->db->query_first("SELECT credit_r_bonus FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . intval($refgroupid['usergroupid'])); // give money to user referrer $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $bonus['credit_r_bonus']*$vbulletin->usergroupcache[$vbulletin->userinfo['usergroupid']]['credit_thanks_give'] . " WHERE userid = " . $refid['referrerid']); } // give money to poster $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $vbulletin->usergroupcache[$postuser['usergroupid']]['credit_thanks_gain'] . " WHERE userid = " . $postuser['userid']); // search for poster referrer $refid = $vbulletin->db->query_first("SELECT referrerid FROM " . TABLE_PREFIX . "user WHERE userid = " . $postuser['userid']); if ($refid['referrerid'] != 0) { $refgroupid = $vbulletin->db->query_first("SELECT usergroupid FROM " . TABLE_PREFIX . "user WHERE userid = " . $refid['referrerid']); // search fot to_referrer bonus $bonus = $vbulletin->db->query_first("SELECT credit_r_bonus FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . intval($refgroupid['usergroupid'])); // give money to poster referrer $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $bonus['credit_r_bonus']*$vbulletin->usergroupcache[$postuser['usergroupid']]['credit_thanks_gain'] . " WHERE userid = " . $refid['referrerid']); }Код модуля Add Credits for Taking and Losing All Thanks
if ($nb != 0) { $postuser = fetch_userinfo($postinfo['userid']); $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . ($vbulletin->usergroupcache[$postuser['usergroupid']]['credit_thanks_lose'] * $nb) . " WHERE userid = " . $postuser['userid']); // (new) search for his referrer id, group and r_bonus $refid = $vbulletin->db->query_first("SELECT referrerid FROM " . TABLE_PREFIX . "user WHERE userid = " . $postuser['userid']); if ($refid['referrerid'] != 0) { $refgroupid = $vbulletin->db->query_first("SELECT usergroupid FROM " . TABLE_PREFIX . "user WHERE userid = " . $refid['referrerid']); $bonus = $vbulletin->db->query_first("SELECT credit_r_bonus FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . $refgroupid['usergroupid']); // (new) update referrer's money $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $bonus['credit_r_bonus']*($vbulletin->usergroupcache[$postuser['usergroupid']]['credit_thanks_lose'] * $nb) . " WHERE userid = " . $refid['referrerid']); } // (old) $ugids = $vbulletin->db->query_read("SELECT usergroupid, userid FROM " . TABLE_PREFIX . "user WHERE userid IN (" . implode(', ', $thank_userids) . ")"); $ugids = $vbulletin->db->query_read("SELECT usergroupid, userid, referrerid FROM " . TABLE_PREFIX . "user WHERE userid IN (" . implode(', ', $thank_userids) . ")"); while ($ugid = $vbulletin->db->fetch_array($ugids)) { $uginfo[$ugid['userid']] = $ugid['usergroupid']; // (new) search for his refferer $refids[$ugid['userid']] = $ugid['referrerid']; } $vbulletin->db->free_result($ugids); // (new) search for refferer's bonus $norefs = true; foreach ($refids as $userid=>$refid) { if ($refid != 0) { $bonus = $vbulletin->db->query_first("SELECT credit_r_bonus FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = (SELECT usergroupid FROM " . TABLE_PREFIX . "user WHERE userid = $refid)"); $refcase .= " WHEN userid = $refid THEN " . $bonus['credit_r_bonus']*$vbulletin->usergroupcache[$uginfo[$userid]]['credit_thanks_take'] . "\n"; $norefs = false; } } foreach ($thank_userids AS $userid) { $credsql .= " WHEN userid = $userid THEN " . $vbulletin->usergroupcache[$uginfo[$userid]]['credit_thanks_take'] . "\n"; } $vbulletin->db->query_write(" UPDATE " . TABLE_PREFIX ."user SET credits = credits + CASE $credsql ELSE 0 END WHERE userid IN (" . implode(', ', $thank_userids) . ") "); // (new) update referrers money if (!$norefs) {$vbulletin->db->query_write(" UPDATE " . TABLE_PREFIX ."user SET credits = credits + CASE $credsql ELSE 0 END WHERE userid IN (" . implode(', ', $refids) . ") "); } }Код модуля Add Credits for Taking and Losing Thanks
$postuser = fetch_userinfo($postinfo['userid']); $thisuser = ( $vbulletin->userinfo['userid'] != $userid ? fetch_userinfo($userid) : $vbulletin->userinfo ); // give money to user $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $vbulletin->usergroupcache[$thisuser['usergroupid']]['credit_thanks_take'] . " WHERE userid = " . $thisuser['userid']); // search for user referrer $refid = $vbulletin->db->query_first("SELECT referrerid FROM " . TABLE_PREFIX . "user WHERE userid = " . $thisuser['userid']); if ($refid['referrerid'] != 0) { $refgroupid = $vbulletin->db->query_first("SELECT usergroupid FROM " . TABLE_PREFIX . "user WHERE userid = " . $refid['referrerid']); // search for to_referrer bonus $bonus = $vbulletin->db->query_first("SELECT credit_r_bonus FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . intval($refgroupid['usergroupid'])); // give money to user referrer $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $bonus['credit_r_bonus']*$vbulletin->usergroupcache[$thisuser['usergroupid']]['credit_thanks_take'] . " WHERE userid = " . $refid['referrerid']); } // give money to poster $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $vbulletin->usergroupcache[$postuser['usergroupid']]['credit_thanks_lose'] . " WHERE userid = " . $postuser['userid']); // search for poster referrer $refid = $vbulletin->db->query_first("SELECT referrerid FROM " . TABLE_PREFIX . "user WHERE userid = " . $postuser['userid']); if ($refid['referrerid'] != 0) { $refgroupid = $vbulletin->db->query_first("SELECT usergroupid FROM " . TABLE_PREFIX . "user WHERE userid = " . $refid['referrerid']); // search fot to_referrer bonus $bonus = $vbulletin->db->query_first("SELECT credit_r_bonus FROM " . TABLE_PREFIX . "usergroup WHERE usergroupid = " . intval($refgroupid['usergroupid'])); // give money to poster referrer $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET credits = credits + " . $bonus['credit_r_bonus']*$vbulletin->usergroupcache[$postuser['usergroupid']]['credit_thanks_lose'] . " WHERE userid = " . $refid['referrerid']);
