private function paidSubs() { // This mirrors the check done in payments.php that shows the 'nosubscriptions' error message for no paid subs global $vbulletin; if (!$vbulletin->options['subscriptionmethods']) { return false; } require_once DIR . '/includes/class_paid_subscription.php'; $subobj = new vB_PaidSubscription($vbulletin); $subobj->cache_user_subscriptions(); if (empty($subobj->subscriptioncache)) { return false; } if (!$vbulletin->db->query_first("\n\t\t\tSELECT *\n\t\t\tFROM " . TABLE_PREFIX . "paymentapi\n\t\t\tWHERE active = 1\n\t\t")) { return false; } return true; }
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || || #################################################################### || \*======================================================================*/ // ######################## SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE & ~8192); if (!is_object($vbulletin->db)) { exit; } // ########################## REQUIRE BACK-END ############################ require_once DIR . '/includes/class_paid_subscription.php'; // ######################################################################## // ######################### START MAIN SCRIPT ############################ // ######################################################################## $api = $vbulletin->db->query_first("SELECT * FROM " . TABLE_PREFIX . "paymentapi WHERE classname = 'ccbill'"); $subobj = new vB_PaidSubscription($vbulletin); $settings = $subobj->construct_payment_settings($api['settings']); if (!$api['active'] or !$settings['clientAccnum'] or !$settings['clientAccnum'] or !$settings['username'] or !$settings['password']) { exit; } $args = array('startTime' => date('YmdHis', TIMENOW - 86400), 'endTime' => date('YmdHis', TIMENOW), 'transactionTypes' => 'REFUND,VOID,CHARGEBACK', 'clientAccnum' => $settings['clientAccnum'], 'clientSubacc' => $settings['clientSubacc'], 'username' => $settings['username'], 'password' => $settings['password']); $params = ''; $result = ''; if (function_exists('curl_init') and $ch = curl_init()) { $params = ''; foreach ($args as $key => $value) { $params .= "{$key}={$value}&"; } curl_setopt($ch, CURLOPT_URL, 'https://datalink.ccbill.com/data/main.cgi'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$actiontemplates = array('none' => array('subscription', 'subscription_activebit', 'subscription_availablebit'), 'order' => array('subscription_payment', 'subscription_paymentbit', 'subscription_payment_2checkout', 'subscription_payment_paypal', 'subscription_payment_nochex', 'subscription_payment_worldpay', 'subscription_payment_authorizenet')); // ######################### REQUIRE BACK-END ############################ require_once './global.php'; require_once DIR . '/includes/class_paid_subscription.php'; // ####################################################################### // ######################## START MAIN SCRIPT ############################ // ####################################################################### if ($vbulletin->userinfo['userid'] == 0) { print_no_permission(); } // start the navbar $navbits = array('usercp.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['user_control_panel']); if (empty($_REQUEST['do'])) { $_REQUEST['do'] = 'list'; } $subobj = new vB_PaidSubscription($vbulletin); $subscribed = array(); // fetch all active subscriptions the user is subscribed too $susers = $db->query_read_slave("\n\tSELECT *\n\tFROM " . TABLE_PREFIX . "subscriptionlog\n\tWHERE status = 1\n\tAND userid = " . $vbulletin->userinfo['userid']); while ($suser = $db->fetch_array($susers)) { $subscribed["{$suser['subscriptionid']}"] = $suser; } // cache all the subscriptions $subobj->cache_user_subscriptions(); $apicache = array(); $paymentapi = array(); // get the settings for all the API stuff $paymentapis = $db->query_read_slave("\n\tSELECT *\n\tFROM " . TABLE_PREFIX . "paymentapi\n\tWHERE active = 1\n"); while ($paymentapi = $db->fetch_array($paymentapis)) { $apicache["{$paymentapi['classname']}"] = $paymentapi; }
$user = array_merge($user, convert_bits_to_array($user['adminoptions'], $vbulletin->bf_misc_adminoptions)); if ($user['coppauser'] == 1) { echo "<p align=\"center\"><b>{$vbphrase['this_is_a_coppa_user_do_not_change_to_registered']}</b></p>\n"; } if ($user['usergroupid'] == 3) { print_form_header('../register', 'emailcode', 0, 0); construct_hidden_code('email', $user['email']); print_submit_row($vbphrase['email_activation_codes'], 0); } // make array for quick links menu $quicklinks = array("user.php?" . $vbulletin->session->vars['sessionurl'] . "do=editaccess&u=" . $vbulletin->GPC['userid'] => $vbphrase['edit_forum_permissions_access_masks'], "resources.php?" . $vbulletin->session->vars['sessionurl'] . "do=viewuser&u=" . $vbulletin->GPC['userid'] => $vbphrase['view_forum_permissions'], "mailto:{$user['email']}" => $vbphrase['send_email_to_user']); if ($user['usergroupid'] == 3) { $quicklinks["../register.php?" . $vbulletin->session->vars['sessionurl'] . "do=requestemail&email=" . urlencode(unhtmlspecialchars($user['email'])) . '&url=' . urlencode($vbulletin->options['bburl'] . '/' . $vbulletin->config['Misc']['admincpdir'] . '/user.php?do=edit&u=' . $vbulletin->GPC['userid'])] = $vbphrase['email_activation_codes']; } require_once DIR . '/includes/class_paid_subscription.php'; $subobj = new vB_PaidSubscription($vbulletin); $subobj->cache_user_subscriptions(); if (!empty($subobj->subscriptioncache)) { $quicklinks["subscriptions.php?" . $vbulletin->session->vars['sessionurl'] . "do=adjust&userid=" . $vbulletin->GPC['userid']] = $vbphrase['add_paid_subscription']; } $quicklinks = array_merge($quicklinks, array("user.php?" . $vbulletin->session->vars['sessionurl'] . "do=emailpassword&u=" . $vbulletin->GPC['userid'] . "&email=" . urlencode(unhtmlspecialchars($user['email'])) => $vbphrase['email_password_reminder_to_user'], "../private.php?" . $vbulletin->session->vars['sessionurl'] . "do=newpm&u=" . $vbulletin->GPC['userid'] => $vbphrase['send_private_message_to_user'], "usertools.php?" . $vbulletin->session->vars['sessionurl'] . "do=pmfolderstats&u=" . $vbulletin->GPC['userid'] => $vbphrase['private_message_statistics'], "usertools.php?" . $vbulletin->session->vars['sessionurl'] . "do=removepms&u=" . $vbulletin->GPC['userid'] => $vbphrase['delete_all_users_private_messages'], "usertools.php?" . $vbulletin->session->vars['sessionurl'] . "do=removesentpms&u=" . $vbulletin->GPC['userid'] => $vbphrase['delete_private_messages_sent_by_user'], "usertools.php?" . $vbulletin->session->vars['sessionurl'] . "do=removesubs&u=" . $vbulletin->GPC['userid'] => $vbphrase['delete_subscriptions'], "usertools.php?" . $vbulletin->session->vars['sessionurl'] . "do=doips&u=" . $vbulletin->GPC['userid'] . "&hash=" . CP_SESSIONHASH => $vbphrase['view_ip_addresses'], "../member.php?" . $vbulletin->session->vars['sessionurl'] . "do=getinfo&u=" . $vbulletin->GPC['userid'] => $vbphrase['view_profile'], "../search.php?" . $vbulletin->session->vars['sessionurl'] . "do=finduser&u=" . $vbulletin->GPC['userid'] => $vbphrase['find_posts_by_user'], "admininfraction.php?" . $vbulletin->session->vars['sessionurl'] . "do=dolist&startstamp=1&endstamp= " . TIMENOW . "&infractionlevelid=-1&u= " . $vbulletin->GPC['userid'] => $vbphrase['view_infractions'], '../' . $vbulletin->config['Misc']['modcpdir'] . '/banning.php?' . $vbulletin->session->vars['sessionurl'] . "do=banuser&u=" . $vbulletin->GPC['userid'] => $vbphrase['ban_user'], "user.php?" . $vbulletin->session->vars['sessionurl'] . "do=remove&u=" . $vbulletin->GPC['userid'] => $vbphrase['delete_user'], "socialgroups.php?" . $vbulletin->session->vars['sessionurl'] . "do=groupsby&u=" . $vbulletin->GPC['userid'] => $vbphrase['view_social_groups_created_by_user'])); if (intval($user['adminpermissions']) & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel'] and in_array($vbulletin->userinfo['userid'], preg_split('#\\s*,\\s*#s', $vbulletin->config['SpecialUsers']['superadministrators'], -1, PREG_SPLIT_NO_EMPTY))) { $quicklinks["adminpermissions.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&u=" . $vbulletin->GPC['userid']] = $vbphrase['edit_administrator_permissions']; } $userfield = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "userfield WHERE userid =" . $vbulletin->GPC['userid']); } else { $regoption = array(); if ($vbulletin->bf_misc_regoptions['subscribe_none'] & $vbulletin->options['defaultregoptions']) { $regoption['autosubscribe'] = -1; } else { if ($vbulletin->bf_misc_regoptions['subscribe_nonotify'] & $vbulletin->options['defaultregoptions']) {
|| # This file may not be redistributed in whole or significant part. # || || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # || || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # || || #################################################################### || \*======================================================================*/ // ######################## SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); if (!is_object($vbulletin->db)) { exit; } // ########################## REQUIRE BACK-END ############################ require_once DIR . '/includes/class_paid_subscription.php'; // ######################################################################## // ######################### START MAIN SCRIPT ############################ // ######################################################################## $subobj = new vB_PaidSubscription($vbulletin); $subobj->cache_user_subscriptions(); if (is_array($subobj->subscriptioncache)) { foreach ($subobj->subscriptioncache as $key => $subscription) { // disable people :) $subscribers = $vbulletin->db->query_read("\n\t\t\tSELECT userid\n\t\t\tFROM " . TABLE_PREFIX . "subscriptionlog\n\t\t\tWHERE subscriptionid = {$subscription['subscriptionid']}\n\t\t\t\tAND expirydate <= " . TIMENOW . "\n\t\t\t\tAND status = 1\n\t\t"); while ($subscriber = $vbulletin->db->fetch_array($subscribers)) { $subobj->delete_user_subscription($subscription['subscriptionid'], $subscriber['userid'], -1, true); } } // time for the reminders $subscriptions_reminders = $vbulletin->db->query_read("\n\t\tSELECT subscriptionlog.subscriptionid, subscriptionlog.userid, subscriptionlog.expirydate, user.username, user.email, user.languageid\n\t\tFROM " . TABLE_PREFIX . "subscriptionlog AS subscriptionlog\n\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = subscriptionlog.userid)\n\t\tWHERE subscriptionlog.expirydate >= " . (TIMENOW + 86400 * 2) . "\n\t\t\tAND subscriptionlog.expirydate <= " . (TIMENOW + 86400 * 3) . "\n\t\t\tAND status = 1\n\t"); vbmail_start(); while ($subscriptions_reminder = $vbulletin->db->fetch_array($subscriptions_reminders)) { require_once DIR . '/includes/functions_misc.php'; $subscription_title = fetch_phrase('sub' . $subscriptions_reminder['subscriptionid'] . '_title', 'subscription', '', true, true, $subscriptions_reminder['languageid']);
/** * Quick Method of building the CPNav Template * * @param string The selected item in the CPNav */ function construct_usercp_nav($selectedcell = 'usercp') { global $navclass, $cpnav, $gobutton, $stylevar, $vbphrase; global $messagecounters, $subscribecounters, $vbulletin; global $show, $subscriptioncache, $template_hook; $cells = array('usercp', 'signature', 'profile', 'options', 'password', 'avatar', 'profilepic', 'album', 'pm_messagelist', 'pm_newpm', 'pm_trackpm', 'pm_editfolders', 'substhreads_listthreads', 'substhreads_editfolders', 'deletedthreads', 'deletedposts', 'moderatedthreads', 'moderatedposts', 'moderatedvms', 'deletedvms', 'moderatedgms', 'deletedgms', 'moderatedpcs', 'deletedpcs', 'moderatedpics', 'event_reminders', 'paid_subscriptions', 'usergroups', 'buddylist', 'ignorelist', 'attachments', 'customize'); ($hook = vBulletinHook::fetch_hook('usercp_nav_start')) ? eval($hook) : false; // Get forums that allow canview access $canget = $canpost = ''; foreach ($vbulletin->userinfo['forumpermissions'] as $forumid => $perm) { if ($perm & $vbulletin->bf_ugp_forumpermissions['canview'] and $perm & $vbulletin->bf_ugp_forumpermissions['canviewthreads'] and $perm & $vbulletin->bf_ugp_forumpermissions['cangetattachment']) { $canget .= ",{$forumid}"; } if ($perm & $vbulletin->bf_ugp_forumpermissions['canpostattachment'] and !empty($vbulletin->userinfo['attachmentextensions'])) { $canpost .= ",{$forumid}"; } } if (!$canpost) { $attachments = $vbulletin->db->query_first_slave("\n\t\t\tSELECT COUNT(*) AS total\n\t\t\tFROM " . TABLE_PREFIX . "attachment AS attachment\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "post AS post ON (post.postid = attachment.postid)\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "thread AS thread ON (post.threadid = thread.threadid)\n\t\t\tWHERE attachment.userid = " . $vbulletin->userinfo['userid'] . "\n\t\t\t\tAND\t((forumid IN(0{$canget}) AND thread.visible = 1 AND post.visible = 1) OR attachment.postid = 0)\n\t\t"); $totalattachments = intval($attachments['total']); } if (!($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_profile_styling'])) { $show['customizelink'] = false; } else { if ($vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditfontfamily'] or $vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditfontsize'] or $vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditcolors'] or $vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditbgimage'] or $vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditborders']) { $show['customizelink'] = true; } else { $show['customizelink'] = false; } } if ($show['avatarlink'] and !($vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar'])) { $membergroups = fetch_membergroupids_array($vbulletin->userinfo); // We don't have any predefined avatars or user's groups are all denied permission if (!empty($vbulletin->noavatarperms) and ($vbulletin->noavatarperms['all'] == true or !count(array_diff($membergroups, $vbulletin->noavatarperms)))) { $show['avatarlink'] = false; } else { if (!empty($vbulletin->userinfo['infractiongroupids'])) { $show['avatarlink'] = $categorycache =& fetch_avatar_categories($vbulletin->userinfo); } } } if ($totalattachments or $canpost) { $show['attachments'] = true; } if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_groups'] and $vbulletin->userinfo['permissions']['socialgrouppermissions'] & $vbulletin->bf_ugp_socialgrouppermissions['canviewgroups']) { $show['socialgroupslink'] = true; } if (!$vbulletin->options['subscriptionmethods']) { $show['paidsubscriptions'] = false; } else { // cache all the subscriptions - should move this to a datastore object at some point require_once DIR . '/includes/class_paid_subscription.php'; $subobj = new vB_PaidSubscription($vbulletin); $subobj->cache_user_subscriptions(); $show['paidsubscriptions'] = false; foreach ($subobj->subscriptioncache as $subscription) { $subscriptionid =& $subscription['subscriptionid']; if ($subscription['active'] and (empty($subscription['deniedgroups']) or count(array_diff(fetch_membergroupids_array($vbulletin->userinfo), $subscription['deniedgroups'])))) { $show['paidsubscriptions'] = true; break; } } } // check to see if there are usergroups available $show['publicgroups'] = false; foreach ($vbulletin->usergroupcache as $usergroup) { if ($usergroup['ispublicgroup'] or $usergroup['canoverride'] and is_member_of($vbulletin->userinfo, $usergroup['usergroupid'])) { $show['publicgroups'] = true; break; } } // Setup Moderation Links if (can_moderate()) { $show['deleteditems'] = true; $show['deletedmessages'] = true; } if (can_moderate(0, 'canmoderateposts')) { $show['moderatedposts'] = true; } if (can_moderate(0, 'canmoderatevisitormessages') and $vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_visitor_messaging']) { $show['moderatedvms'] = true; $show['deletedvms'] = true; } if (can_moderate(0, 'canmoderategroupmessages') and $vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_groups'] and $vbulletin->options['socnet_groups_msg_enabled']) { $show['moderatedgms'] = true; $show['deletedgms'] = true; } if (can_moderate(0, 'canmoderatepicturecomments') and $vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_albums'] and $vbulletin->options['pc_enabled']) { $show['moderatedpcs'] = true; $show['deletedpcs'] = true; } if (can_moderate(0, 'canmoderatepictures') and $vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_albums']) { $show['moderatedpics'] = true; } $show['moderateditems'] = ($show['moderatedposts'] or $show['moderatedvms'] or $show['moderatedgms'] or $show['moderatedpcs'] or $show['moderatedpics']); $show['moderation'] = ($show['deleteditems'] or $show['moderateditems']); // album setup $show['albumlink'] = ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_albums'] and $vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canviewmembers'] and $vbulletin->userinfo['permissions']['albumpermissions'] & $vbulletin->bf_ugp_albumpermissions['canviewalbum'] and $vbulletin->userinfo['permissions']['albumpermissions'] & $vbulletin->bf_ugp_albumpermissions['canalbum']); // set the class for each cell/group $navclass = array(); foreach ($cells as $cellname) { $navclass["{$cellname}"] = 'alt2'; } $navclass["{$selectedcell}"] = 'alt1'; // variable to hold templates for pm / subs folders $cpnav = array(); // get PM folders $cpnav['pmfolders'] = ''; $pmfolders = array('0' => $vbphrase['inbox'], '-1' => $vbphrase['sent_items']); if (!empty($vbulletin->userinfo['pmfolders'])) { $pmfolders = $pmfolders + unserialize($vbulletin->userinfo['pmfolders']); } foreach ($pmfolders as $folderid => $foldername) { $linkurl = 'private.php?' . $vbulletin->session->vars['sessionurl'] . "folderid={$folderid}"; eval('$cpnav[\'pmfolders\'] .= "' . fetch_template('usercp_nav_folderbit') . '";'); } // get subscriptions folders $cpnav['subsfolders'] = ''; $subsfolders = unserialize($vbulletin->userinfo['subfolders']); if (!empty($subsfolders)) { foreach ($subsfolders as $folderid => $foldername) { $linkurl = 'subscription.php?' . $vbulletin->session->vars['sessionurl'] . "folderid={$folderid}"; eval('$cpnav[\'subsfolders\'] .= "' . fetch_template('usercp_nav_folderbit') . '";'); } } if ($cpnav['subsfolders'] == '') { $linkurl = 'subscription.php?' . $vbulletin->session->vars['sessionurl'] . 'folderid=0'; $foldername = $vbphrase['subscriptions']; eval('$cpnav[\'subsfolders\'] .= "' . fetch_template('usercp_nav_folderbit') . '";'); } ($hook = vBulletinHook::fetch_hook('usercp_nav_complete')) ? eval($hook) : false; }
$specialtemplates = array(); // ########################## REQUIRE BACK-END ############################ require_once './global.php'; require_once DIR . '/includes/class_paid_subscription.php'; // ######################## CHECK ADMIN PERMISSIONS ####################### if (!can_administer('canadminusers')) { print_cp_no_permission(); } $vbulletin->input->clean_array_gpc('r', array('userid' => TYPE_INT, 'subscriptionid' => TYPE_INT)); // ############################# LOG ACTION ############################### log_admin_action(!empty($vbulletin->GPC['userid']) ? "user id = " . $vbulletin->GPC['userid'] : !empty($vbulletin->GPC['subscriptionid']) ? "subscriptionid id = " . $vbulletin->GPC['subscriptionid'] : ''); // ######################################################################## // ######################### START MAIN SCRIPT ############################ // ######################################################################## print_cp_header($vbphrase['subscription_manager']); $subobj = new vB_PaidSubscription($vbulletin); if (empty($_REQUEST['do'])) { $_REQUEST['do'] = 'modify'; } // ###################### Start Add ####################### if ($_REQUEST['do'] == 'add' or $_REQUEST['do'] == 'edit') { $OUTERTABLEWIDTH = '95%'; $INNERTABLEWIDTH = '100%'; ?> <script type="text/javascript"> function doRemove(str) { for (var i =0; i < document.forms.cpform.elements.length; i++) { var elm = document.forms.cpform.elements[i]; if (elm.name.substring(0, str.length) == str)
print_description_row("<div style=\"float:" . vB_Template_Runtime::fetchStyleVar('right') . "\">" . construct_phrase($vbphrase['scanned_x_files'], $file_count) . "</div>.{$directory}", 0, 2, 'thead'); if (is_array($errors["{$directory}"])) { ksort($errors["{$directory}"]); foreach ($errors["{$directory}"] as $file => $error) { print_label_row("<strong>{$file}</strong>", implode('<br />', $error)); } } } print_submit_row($vbphrase['repeat_process'], false); } else { trigger_error(construct_phrase($vbphrase['unable_to_open_x'], 'includes/*'), E_USER_ERROR); } } if ($_GET['do'] == 'payments') { require_once DIR . '/includes/class_paid_subscription.php'; $subobj = new vB_PaidSubscription($vbulletin); print_form_header('subscriptions'); print_table_header($vbphrase['payment_api_tests'], 2); print_cells_row(array($vbphrase['title'], $vbphrase['pass']), 1, 'tcat', 1); $apis = $db->query_read("\r\n\t\tSELECT * FROM " . TABLE_PREFIX . "paymentapi WHERE active = 1\r\n\t"); while ($api = $db->fetch_array($apis)) { $cells = array(); $cells[] = $api['title']; $yesno = 'no'; if (file_exists(DIR . '/includes/paymentapi/class_' . $api['classname'] . '.php')) { require_once DIR . '/includes/paymentapi/class_' . $api['classname'] . '.php'; $api_class = 'vB_PaidSubscriptionMethod_' . $api['classname']; $obj = new $api_class($vbulletin); if (!empty($api['settings'])) { // need to convert this from a serialized array with types to a single value $obj->settings = $subobj->construct_payment_settings($api['settings']);
$specialtemplates = array(); // pre-cache templates used by all actions $globaltemplates = array(); // pre-cache templates used by specific actions $actiontemplates = array(); // ######################### REQUIRE BACK-END ############################ define('VB_AREA', 'Subscriptions'); define('CWD', ($getcwd = getcwd()) ? $getcwd : '.'); require_once CWD . '/includes/init.php'; require_once DIR . '/includes/adminfunctions.php'; require_once DIR . '/includes/class_paid_subscription.php'; $vbulletin->input->clean_array_gpc('r', array('method' => TYPE_STR)); $vbulletin->nozip = true; $api = $db->query_first_slave("SELECT * FROM " . TABLE_PREFIX . "paymentapi WHERE classname = '" . $db->escape_string($vbulletin->GPC['method']) . "'"); if (!empty($api)) { $subobj = new vB_PaidSubscription($vbulletin); if (file_exists(DIR . '/includes/paymentapi/class_' . $api['classname'] . '.php')) { require_once DIR . '/includes/paymentapi/class_' . $api['classname'] . '.php'; $api_class = 'vB_PaidSubscriptionMethod_' . $api['classname']; $apiobj = new $api_class($vbulletin); // at this point we know if the system is going to want to display feedback, so do the appropriate queries here if ($apiobj->display_feedback) { // initialize $vbphrase and set language constants $vbphrase = init_language(); $vbulletin->userinfo['styleid'] = $vbulletin->options['styleid']; $style = $db->query_first_slave("\n\t\t\t\tSELECT *\n\t\t\t\tFROM " . TABLE_PREFIX . "style\n\t\t\t\tWHERE styleid = " . intval($vbulletin->options['styleid'])); define('STYLEID', $style['styleid']); cache_templates(array('STANDARD_REDIRECT', 'STANDARD_ERROR', 'STANDARD_ERROR_LITE', 'headinclude'), $style['templatelist']); $stylevar = fetch_stylevars($style, $vbulletin->userinfo); $headinclude = '<base href="' . $vbulletin->options['bburl'] . '/" />'; eval('$headinclude .= "' . fetch_template('headinclude') . '";');
/** * Quick Method of building the CPNav Template * * @param string The selected item in the CPNav */ function construct_usercp_nav($selectedcell = 'usercp') { global $navclass, $cpnav, $gobutton, $vbphrase; global $messagecounters, $subscribecounters, $vbulletin; global $show, $subscriptioncache, $template_hook; $cells = array( 'usercp', 'signature', 'profile', 'options', 'connections', 'password', 'avatar', 'profilepic', 'album', 'pm_messagelist', 'pm_newpm', 'pm_trackpm', 'pm_editfolders', 'substhreads_listthreads', 'substhreads_editfolders', 'deletedthreads', 'deletedposts', 'moderatedthreads', 'moderatedposts', 'moderatedvms', 'deletedvms', 'moderatedgms', 'deletedgms', 'moderateddiscussions', 'deleteddiscussions', 'moderatedpcs', 'deletedpcs', 'moderatedpics', 'event_reminders', 'paid_subscriptions', 'socialgroups', 'usergroups', 'buddylist', 'ignorelist', 'attachments', 'customize', 'privacy', 'deleteditems', 'moderateditems', 'newitems', 'newvms', 'newgms', 'newdiscussions', 'newpcs', 'newpics' ); ($hook = vBulletinHook::fetch_hook('usercp_nav_start')) ? eval($hook) : false; // TODO: Issue #29084 - Reenable Profile Styling /* if (!($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_profile_styling'])) { $show['customizelink'] = false; } else if ( ($vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditfontfamily']) OR ($vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditfontsize']) OR ($vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditcolors']) OR ($vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditbgimage']) OR ($vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditborders']) ) { $show['customizelink'] = true; } else { $show['customizelink'] = false; } */ $show['customizelink'] = false; $show['privacylink'] = (($vbulletin->userinfo['permissions']['usercsspermissions'] & $vbulletin->bf_ugp_usercsspermissions['caneditprivacy']) AND $vbulletin->options['profileprivacy']); if ($show['avatarlink'] AND !($vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuseavatar'])) { $membergroups = fetch_membergroupids_array($vbulletin->userinfo); // We don't have any predefined avatars or user's groups are all denied permission if (!empty($vbulletin->noavatarperms) AND ($vbulletin->noavatarperms['all'] == true OR !count(array_diff($membergroups, $vbulletin->noavatarperms)))) { $show['avatarlink'] = false; } else if (!empty($vbulletin->userinfo['infractiongroupids'])) { $show['avatarlink'] = ($categorycache =& fetch_avatar_categories($vbulletin->userinfo)); } } // currently, we only have faceboook as external login, // but as we add more, we need to add them to this assignment $show['externalconnections'] = $vbulletin->options['enablefacebookconnect']; if ($selectedcell == 'attachments') { $show['attachments'] = true; } else { require_once(DIR . '/packages/vbattach/attach.php'); $attachmultiple = new vB_Attachment_Display_Multiple($vbulletin); if ($results = $attachmultiple->fetch_results('a.userid = ' . $vbulletin->userinfo['userid'], true)) { $show['attachments'] = true; } } if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_groups'] AND $vbulletin->userinfo['permissions']['socialgrouppermissions'] & $vbulletin->bf_ugp_socialgrouppermissions['canviewgroups']) { $show['socialgroupslink'] = true; } if (!$vbulletin->options['subscriptionmethods']) { $show['paidsubscriptions'] = false; } else { // cache all the subscriptions - should move this to a datastore object at some point require_once(DIR . '/includes/class_paid_subscription.php'); $subobj = new vB_PaidSubscription($vbulletin); $subobj->cache_user_subscriptions(); $show['paidsubscriptions'] = false; foreach ($subobj->subscriptioncache AS $subscription) { $subscriptionid =& $subscription['subscriptionid']; if ($subscription['active'] AND (empty($subscription['deniedgroups']) OR count(array_diff(fetch_membergroupids_array($vbulletin->userinfo), $subscription['deniedgroups'])))) { $show['paidsubscriptions'] = true; break; } } } // check to see if there are usergroups available $show['publicgroups'] = false; foreach ($vbulletin->usergroupcache AS $usergroup) { if ($usergroup['ispublicgroup'] OR ($usergroup['canoverride'] AND is_member_of($vbulletin->userinfo, $usergroup['usergroupid']))) { $show['publicgroups'] = true; break; } } // Setup Moderation Links if (can_moderate()) { $show['deleteditems'] = true; $show['deletedmessages'] = true; } $show['moderatedposts'] = can_moderate(0, 'canmoderateposts'); $show['deletedposts'] = ($show['moderatedposts'] OR can_moderate(0, 'candeleteposts') OR can_moderate(0, 'canremoveposts')); // visitor messages if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_visitor_messaging']) { $show['moderatedvms'] = can_moderate(0, 'canmoderatevisitormessages'); $show['deletedvms'] = ($show['moderatedvms'] OR can_moderate(0, 'candeletevisitormessages') OR can_moderate(0, 'canremovevisitormessages')); $show['newvms'] = ($show['moderatedvms'] OR $show['deletedvms'] OR can_moderate(0, 'caneditvisitormessages')); } // group messages if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_groups'] AND $vbulletin->options['socnet_groups_msg_enabled']) { $show['moderatedgms'] = can_moderate(0, 'canmoderategroupmessages'); $show['deletedgms'] = ($show['moderatedgms'] OR can_moderate(0, 'candeletegroupmessages') OR can_moderate(0, 'canremovegroupmessages')); $show['newgms'] = ($show['moderatedgms'] OR $show['deletedgms'] OR can_moderate(0, 'caneditgroupmessages')); } // group discussions if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_groups'] AND $vbulletin->options['socnet_groups_msg_enabled']) { $show['moderateddiscussions'] = can_moderate(0, 'canmoderatediscussions'); $show['deleteddiscussions'] = ($show['moderateddiscussions'] OR (can_moderate(0, 'candeletediscussions') OR can_moderate(0, 'canremovediscussions'))); $show['newdiscussions'] = ($show['moderateddiscussions'] OR $show['deleteddiscussions'] OR can_moderate(0, 'caneditdiscussions')); } // picture comments if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_albums'] AND $vbulletin->options['pc_enabled']) { $show['moderatedpcs'] = can_moderate(0, 'canmoderatepicturecomments'); $show['deletedpcs'] = ($show['moderatedpcs'] OR can_moderate(0, 'candeletepicturecomments') OR can_moderate(0, 'canremovepicturecomments')); $show['newpcs'] = ($show['moderatedpcs'] OR $show['deletedpcs'] OR can_moderate(0, 'caneditpicturecomments')); } // pictures if ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_albums']) { $show['moderatedpics'] = can_moderate(0, 'canmoderatepictures'); $show['newpics'] = ($show['moderatedpics'] OR can_moderate(0, 'caneditalbumpicture')); } $show['moderateditems'] = ($show['moderatedposts'] OR $show['moderatedvms'] OR $show['moderatedgms'] OR $show['moderateddiscussions'] OR $show['moderatedpcs'] OR $show['moderatedpics']); $show['deleteditems'] = ($show['deletedposts'] OR $show['deletedvms'] OR $show['deletedgms'] OR $show['deleteddiscussions'] OR $show['deletedpcs']); $show['newitems'] = ($show['newposts'] OR $show['newvms'] OR $show['newgms'] OR $show['newdiscussions'] OR $show['newpcs'] OR $show['newpics']); $show['moderation'] = ($show['moderateditems'] OR $show['deleteditems'] OR $show['newitems']); // album setup $show['albumlink'] = ($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_albums'] AND $vbulletin->userinfo['permissions']['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canviewmembers'] AND $vbulletin->userinfo['permissions']['albumpermissions'] & $vbulletin->bf_ugp_albumpermissions['canviewalbum'] AND $vbulletin->userinfo['permissions']['albumpermissions'] & $vbulletin->bf_ugp_albumpermissions['canalbum'] ); // set the class for each cell/group $navclass = array(); foreach ($cells AS $cellname) { $navclass["$cellname"] = 'inactive'; } $navclass["$selectedcell"] = 'active'; // variable to hold templates for pm / subs folders $cpnav = array(); // get PM folders $cpnav['pmfolders'] = ''; $pmfolders = array('0' => $vbphrase['inbox'], '-1' => $vbphrase['sent_items']); if (!empty($vbulletin->userinfo['pmfolders'])) { $pmfolders = $pmfolders + unserialize($vbulletin->userinfo['pmfolders']); } foreach ($pmfolders AS $folderid => $foldername) { $linkurl = 'private.php?' . $vbulletin->session->vars['sessionurl'] . "folderid=$folderid"; $templater = vB_Template::create('usercp_nav_folderbit'); $templater->register('foldername', $foldername); $templater->register('linkurl', $linkurl); $cpnav['pmfolders'] .= $templater->render(); } // get subscriptions folders $cpnav['subsfolders'] = ''; $subsfolders = unserialize($vbulletin->userinfo['subfolders']); if (!empty($subsfolders)) { foreach ($subsfolders AS $folderid => $foldername) { $linkurl = 'subscription.php?' . $vbulletin->session->vars['sessionurl'] . "folderid=$folderid"; $templater = vB_Template::create('usercp_nav_folderbit'); $templater->register('foldername', $foldername); $templater->register('linkurl', $linkurl); $cpnav['subsfolders'] .= $templater->render(); } } if ($cpnav['subsfolders'] == '') { $linkurl = 'subscription.php?' . $vbulletin->session->vars['sessionurl'] . 'folderid=0'; $foldername = $vbphrase['subscriptions']; $templater = vB_Template::create('usercp_nav_folderbit'); $templater->register('foldername', $foldername); $templater->register('linkurl', $linkurl); $cpnav['subsfolders'] .= $templater->render(); } ($hook = vBulletinHook::fetch_hook('usercp_nav_complete')) ? eval($hook) : false; }