function getGroupName($mixedId) { if ('m' == $mixedId[0]) { require_once BX_DIRECTORY_PATH_INC . 'membership_levels.inc.php'; $a = getMembershipInfo(substr($mixedId, 1)); return $a && isset($a['Name']) ? $a['Name'] : 'undefined'; } else { bx_import('BxDolPrivacyQuery'); $oPrivacyQuery = new BxDolPrivacyQuery(); $a = $oPrivacyQuery->getGroupsBy(array('type' => 'id', 'id' => $mixedId)); return $a && (int) $a['owner_id'] == 0 ? _t('_ps_group_' . $a['id'] . '_title') : $a['title']; } }
/** * Set a membership for a member * * @param int $iMemberId - member that is going to get the membership * @param int $iMembershipId - membership that is going to be assigned to the member * if $iMembershipId == MEMBERSHIP_ID_STANDARD then $days * and $bStartsNow parameters are not used, so Standard * membership is always set immediately and `forever` * * @param int $days - number of days to set membership for * if 0, then the membership is set forever * * @param boolean $bStartsNow - if true, the membership will start immediately; * if false, the membership will start after the current * membership expires * * @return boolean - true in case of success, false in case of failure * * */ function setMembership($iMemberId, $iMembershipId, $iDays = 0, $bStartsNow = false, $sTransactionId = '', $isSendMail = true) { $iMemberId = (int) $iMemberId; $iMembershipId = (int) $iMembershipId; $iDays = (int) $iDays; $bStartsNow = $bStartsNow ? true : false; $SECONDS_IN_DAY = 86400; if (!$iMemberId) { $iMemberId = -1; } if (empty($sTransactionId)) { $sTransactionId = 'NULL'; } //check if member exists $aProfileInfo = getProfileInfo($iMemberId); if (!$aProfileInfo) { return false; } //check if membership exists $iRes = (int) db_value("SELECT COUNT(`ID`) FROM `sys_acl_levels` WHERE `ID`='" . $iMembershipId . "' LIMIT 1"); if ($iRes != 1) { return false; } if ($iMembershipId == MEMBERSHIP_ID_NON_MEMBER) { return false; } $aMembershipCurrent = getMemberMembershipInfo($iMemberId); $aMembershipLatest = getMemberMembershipInfo_latest($iMemberId); /** * Setting Standard membership level */ if ($iMembershipId == MEMBERSHIP_ID_STANDARD) { if ($aMembershipCurrent['ID'] == MEMBERSHIP_ID_STANDARD) { return true; } //delete any present and future memberships $res = db_res("DELETE FROM `sys_acl_levels_members` WHERE `IDMember`='" . $iMemberId . "' AND (`DateExpires` IS NULL OR `DateExpires`>NOW())"); if (db_affected_rows($res) <= 0) { return false; } } if ($iDays < 0) { return false; } $iDateStarts = time(); if (!$bStartsNow) { /** * make the membership starts after the latest membership expires * or return false if latest membership isn't Standard and is lifetime membership */ if (!is_null($aMembershipLatest['DateExpires'])) { $iDateStarts = $aMembershipLatest['DateExpires']; } else { if (is_null($aMembershipLatest['DateExpires']) && $aMembershipLatest['ID'] != MEMBERSHIP_ID_STANDARD) { return false; } } } else { // delete previous profile's membership level and actions traces db_res("DELETE FROM `sys_acl_levels_members` WHERE `IDMember`='" . $iMemberId . "'"); clearActionsTracksForMember($iMemberId); } /** * set lifetime membership if 0 days is used. */ $iDateExpires = $iDays != 0 ? (int) $iDateStarts + $iDays * $SECONDS_IN_DAY : 'NULL'; $res = db_res("INSERT `sys_acl_levels_members` (`IDMember`, `IDLevel`, `DateStarts`, `DateExpires`, `TransactionID`) VALUES ('" . $iMemberId . "', '" . $iMembershipId . "', FROM_UNIXTIME(" . $iDateStarts . "), FROM_UNIXTIME(" . $iDateExpires . "), '" . $sTransactionId . "')"); if (db_affected_rows($res) <= 0) { return false; } //Set Membership Alert bx_import('BxDolAlerts'); $oZ = new BxDolAlerts('profile', 'set_membership', '', $iMemberId, array('mlevel' => $iMembershipId, 'days' => $iDays, 'starts_now' => $bStartsNow, 'txn_id' => $sTransactionId)); $oZ->alert(); //Notify user about changed membership level bx_import('BxDolEmailTemplates'); $oEmailTemplate = new BxDolEmailTemplates(); $aTemplate = $oEmailTemplate->getTemplate('t_MemChanged', $iMemberId); $aMembershipInfo = getMembershipInfo($iMembershipId); $aTemplateVars = array('MembershipLevel' => $aMembershipInfo['Name']); if ($isSendMail) { sendMail($aProfileInfo['Email'], $aTemplate['Subject'], $aTemplate['Body'], $iMemberId, $aTemplateVars); } //Notify admin about changed user's membership level $aTemplate = $oEmailTemplate->parseTemplate('t_UserMemChanged', $aTemplateVars, $iMemberId); sendMail($GLOBALS['site']['email'], $aTemplate['Subject'], $aTemplate['Body']); return true; }
echo $p_arr['ID']; ?> "><?php echo $p_arr['ID']; ?>  </td> <td align=center bgcolor="#ffffff"><?php echo $p_arr['num_of_mem']; ?> </td> <td align=center bgcolor="#ffffff"><?php echo $p_arr['num_of_days']; ?> </td> <td align=center bgcolor="#ffffff"><?php $membership_info = getMembershipInfo($p_arr['MID']); echo $membership_info['Name']; ?> </td> <td align=center bgcolor="#ffffff"><input type=checkbox name="<?php echo $p_arr[ID]; ?> "></td> </tr> <?php } } ?> </table> <center>
/** * Returns transaction description * * @param string $checkoutAction - payment type action (e.g memership, credits, etc) * @param string $data - payment action data (e.g. membership ID or event ID) * @param bool $languageParse - indicates if description should be language-parsed * * @return string - return URL * * */ function returnDescByAction($checkoutAction, $data, $languageParse) { switch ($checkoutAction) { case 'membership': $membershipArr = getMembershipInfo($data); if ($languageParse) { return _t('_Membership purchase') . ' - ' . $membershipArr['Name']; } else { return 'Membership purchase - ' . $membershipArr['Name']; } case 'speeddating': $eventArr = db_arr('SELECT `Title` FROM `SDatingEvents` WHERE `ID` = ' . (int) $data); if ($languageParse) { return _t('_SpeedDating ticket purchase') . ' - ' . $eventArr['Title']; } else { return 'SpeedDating ticket purchase - ' . $eventArr['Title']; } case 'credits': if ($languageParse) { return _t('_Credits purchase') . ' - ' . getCreditsAmountByIndex($data); } else { return 'Credits purchase - ' . getCreditsAmountByIndex($data); } case 'profiles': if ($languageParse) { return _t('_Profiles purchase') . ' - ' . $data; } else { return 'Profiles purchase - ' . $data; } default: return ''; } }
function PageCompPageMainCode() { global $affnum_arr; global $levels_res; ob_start(); ?> <form action=<?php echo $_SERVER['PHP_SELF']; ?> method="post"> <input type=hidden name=upgrade value=YES> <table class="text" width="400" align=center border="0" cellpadding="2" cellspacing="0"> <?php if (mysql_num_rows($levels_res) > 0) { echo "\r\n\t\t\t<tr>\r\n\t\t\t\t<td align=center colspan=2>\r\n\t\t\t\t" . _t("_Congratulation") . "<br />" . _t("_Got_members_part_1") . $affnum_arr[0] . _t("_Got_members_part_2") . _t("_Choose_membership") . "<br /><br />\r\n\t\t\t\t</td>\r\n\t\t\t</tr>"; $i = 0; while ($levels_arr = mysql_fetch_array($levels_res)) { $membership_info = getMembershipInfo($levels_arr['MID']); ?> <tr> <td align="right"><input type=radio name=MemType id="MemType<?php echo $levels_arr['MID'] . '-' . $levels_arr['num_of_days']; ?> " value="<?php echo $levels_arr['MID'] . '-' . $levels_arr['num_of_days']; ?> "></td> <td align="left" nowrap> <label for="MemType<?php echo $levels_arr['MID'] . '-' . $levels_arr['num_of_days']; ?> "> <font color=red><?php echo $membership_info['Name']; ?> </font> ( <?php echo $levels_arr['num_of_days'] . ' ' . _t('_days'); ?> , <?php echo _t('_requires_N_members', $levels_arr['num_of_mem']); ?> ) </label> <br /> </td> </tr> <?php $i++; } ?> <tr> <td align=center colspan=2> <br /> <input type="submit" name="submit" class="no" value=Apply> </td> </tr> <?php } ?> </table> </form> <?php $ret = ob_get_contents(); ob_end_clean(); return $ret; }