Cheetah
ChMbpModule.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChWsbModule');
9 
63 class ChMbpModule extends ChWsbModule
64 {
69  {
70  parent::__construct($aModule);
71 
72  $this->_oConfig->init($this->_oDb);
73  }
74 
78  function getSettingsForm($mixedResult)
79  {
80  $sUri = $this->_oConfig->getUri();
81 
82  $iId = (int)$this->_oDb->getOne("SELECT `ID` FROM `sys_options_cats` WHERE `name`='Membership'");
83  if(empty($iId))
84  return MsgBox('_membership_txt_empty');
85 
86  ch_import('ChWsbAdminSettings');
87  $oSettings = new ChWsbAdminSettings($iId, CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'admin');
88  $sResult = $oSettings->getForm();
89 
90  if($mixedResult !== true && !empty($mixedResult))
91  $sResult = $mixedResult . $sResult;
92 
93  return $sResult;
94  }
95  function setSettings($aData)
96  {
97  $sUri = $this->_oConfig->getUri();
98 
99  $iId = (int)$this->_oDb->getOne("SELECT `ID` FROM `sys_options_cats` WHERE `name`='Membership'");
100  if(empty($iId))
101  return MsgBox(_t('_membership_txt_empty'));
102 
103  ch_import('ChWsbAdminSettings');
105  return $oSettings->saveChanges($_POST);
106  }
107 
112  {
113  $aUserLevel = getMemberMembershipInfo($this->getUserId());
114  return $this->_oTemplate->displayCurrentLevel($aUserLevel);
115  }
117  {
118  if (!$this->isLogged())
119  return array(MsgBox(_t('_membership_err_required_login')));
120 
121  if (!isProfileActive())
122  return array(MsgBox(_t('_membership_err_not_active')));
123 
124  $aMembership = $this->_oDb->getMembershipsBy(array('type' => 'price_all'));
125  if(empty($aMembership))
126  return array(MsgBox(_t('_membership_txt_empty')));
127 
128  return $this->_oTemplate->displayAvailableLevels($aMembership);
129  }
130  function getSelectLevelBlock($bDynamic = false)
131  {
132  if(!$this->_oConfig->isDisableFreeJoin())
133  return '';
134 
135  $aMembership = $this->_oDb->getMembershipsBy(array('type' => 'price_all', 'include_standard' => $this->_oConfig->isStandardOnPaidJoin()));
136  if(empty($aMembership))
137  return array(MsgBox(_t('_membership_err_no_payment_options')));
138 
139  return $this->_oTemplate->displaySelectLevelBlock($aMembership, $bDynamic);
140  }
141 
145  function actionIndex()
146  {
147  if(!isLogged()) {
148  $this->_oTemplate->getPageCodeError('_membership_err_required_login');
149  return;
150  }
151 
152  ch_import('PageMy', $this->_aModule);
153  $oPage = new ChMbpPageMy($this);
154 
155  $aParams = array(
156  'index' => 1,
157  'css' => array('explanation.css'),
158  'title' => array(
159  'page' => _t('_membership_pcaption_membership')
160  ),
161  'content' => array(
162  'page_main_code' => $oPage->getCode()
163  )
164  );
165  $this->_oTemplate->getPageCode($aParams);
166  }
167 
168  function actionJoin()
169  {
170  ch_import('PageJoin', $this->_aModule);
171  $oPage = new ChMbpPageJoin($this);
172 
173  $aParams = array(
174  'index' => 1,
175  'css' => array('explanation.css'),
176  'title' => array(
177  'page' => _t('_membership_pcaption_join')
178  ),
179  'content' => array(
180  'page_main_code' => $oPage->getCode()
181  )
182  );
183  $this->_oTemplate->getPageCode($aParams);
184  }
185 
186  function actionJoinSubmit()
187  {
188  if($this->_oConfig->isCaptchaOnPaidJoin()) {
189  ch_import('ChWsbCaptcha');
190  $oCaptcha = ChWsbCaptcha::getObjectInstance();
191  if(!$oCaptcha) {
192  $this->_oTemplate->getPageCodeError('_sys_txt_captcha_not_available');
193  return;
194  }
195 
196  if(!$oCaptcha->check ()) {
197  $this->_oTemplate->getPageCodeError('_Captcha check failed');
198  return;
199  }
200  }
201 
202  $sDescriptor = ch_get('descriptor');
203  if($sDescriptor === false) {
204  $this->_oTemplate->getPageCodeError('_membership_err_need_select_level');
205  return;
206  }
207  else if($sDescriptor == $this->_oConfig->getStandardDescriptor()) {
208  header('Location: ' . CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'join_form');
209  exit;
210  }
211 
212  $sProvider = ch_get('provider');
213  if($sProvider === false) {
214  $this->_oTemplate->getPageCodeError('_membership_err_need_select_provider');
215  return;
216  }
217 
218  $sRedirect = CH_WSB_URL_ROOT . 'join.php';
219 
220  ch_import('ChWsbPayments');
221  $aResult = ChWsbPayments::getInstance()->initializeCheckout(0, $sProvider, $sDescriptor);
222  if(is_array($aResult) && !empty($aResult['redirect']))
223  $sRedirect = $aResult['redirect'];
224 
225  header('Location: ' . $sRedirect);
226  exit;
227  }
228 
229  function actionJoinForm()
230  {
231  if(!$this->_oConfig->isStandardOnPaidJoin()) {
232  $this->_oTemplate->getPageCodeError('_membership_err_access_denied');
233  return;
234  }
235 
236  ch_import('ProfileFields', $this->_aModule);
237  $oProfileFields = new ChMbpProfileFields(1, $this);
238 
239  ch_import('ChWsbJoinProcessor');
240  $oJoin = new ChWsbJoinProcessor(array('profile_fields' => $oProfileFields));
241 
242  $aParams = array(
243  'index' => 1,
244  'title' => array(
245  'page' => _t('_membership_pcaption_join')
246  ),
247  'content' => array(
248  'page_main_code' => DesignBoxContent(_t('_membership_bcaption_join'), $oJoin->process(), 11)
249  )
250  );
251  $this->_oTemplate->getPageCode($aParams);
252  }
253 
254  function actionAdmin()
255  {
256  $GLOBALS['iAdminPage'] = 1;
257  require_once(CH_DIRECTORY_PATH_INC . 'admin_design.inc.php');
258 
259  $sUri = $this->_oConfig->getUri();
260 
261  check_logged();
262  if(!@isAdmin()) {
264  login_form("", 1);
265  exit;
266  }
267 
268  //--- Process actions ---//
270  if(isset($_POST['save']) && isset($_POST['cat'])) {
271  $mixedResultSettings = $this->setSettings($_POST);
272  }
273  //--- Process actions ---//
274 
275  // If settings are set at default, do not display them.
276  // This is prep for removal of the pay to join feature.
277  if($this->_oConfig->_bDisableFreeJoin == false && $this->_oConfig->_bEnableStandardOnPaidJoin == true && $this->_oConfig->_bEnableCaptchaOnPaidJoin == true) {
278  $sContent = DesignBoxAdmin(_t('_' . $sUri . '_bcaption_settings'), msgBox('This module does not have any admin settings.'));
279  } else {
280  $sContent = DesignBoxAdmin(_t('_' . $sUri . '_bcaption_settings'), $GLOBALS['oAdmTemplate']->parseHtmlByName('design_box_content.html', array('content' => $this->getSettingsForm($mixedResultSettings))));
281  }
282 
283  $aParams = array(
284  'title' => array(
285  'page' => _t('_membership_pcaption_admin')
286  ),
287  'content' => array(
288  'page_main_code' => $sContent
289  )
290  );
291  $this->_oTemplate->getPageCodeAdmin($aParams);
292  }
293 
298  {
299  return $this->_oConfig->isDisableFreeJoin();
300  }
302  {
303  return CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'index/';
304  }
305 
307  {
308  $sTitle = _t('_membership_mmenu_item_membership');
309 
310  $aLinkInfo = array(
311  'item_img_src' => 'star',
312  'item_img_alt' => $sTitle,
313  'item_link' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'index',
314  'item_onclick' => '',
315  'item_title' => $sTitle,
316  'extra_info' => 0,
317  );
318 
319  $oMemberMenu = ch_instance('ChWsbMemberMenu');
320  return $oMemberMenu->getGetExtraMenuLink($aLinkInfo);
321  }
322 
324  {
325  return $this->getSelectLevelBlock();
326  }
331  {
332  return $this->_aModule;
333  }
334 
341  function serviceGetItems($iVendorId)
342  {
343  $aItems = $this->_oDb->getMembershipsBy(array('type' => 'price_all'));
344 
345  $aResult = array();
346  foreach($aItems as $aItem)
347  $aResult[] = array(
348  'id' => $aItem['price_id'],
349  'vendor_id' => 0,
350  'title' => $aItem['mem_name'] . ' ' . _t('_membership_txt_on_N_days', $aItem['price_days']),
351  'description' => $aItem['mem_description'],
352  'url' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'index',
353  'price' => $aItem['price_amount'],
354  'duration' => $aItem['price_days']
355  );
356  return $aResult;
357  }
365  function serviceGetCartItem($iClientId, $iItemId)
366  {
367  return $this->_getCartItem($iClientId, $iItemId);
368  }
379  function serviceRegisterCartItem($iClientId, $iSellerId, $iItemId, $iItemCount, $sOrderId)
380  {
381  $bResult = true;
382  for($i=0; $i<$iItemCount; $i++)
383  $bResult &= buyMembership($iClientId, $iItemId, $sOrderId);
384 
385  return $bResult ? $this->_getCartItem($iClientId, $iItemId) : false;
386  }
396  function serviceUnregisterCartItem($iClientId, $iSellerId, $iItemId, $iItemCount, $sOrderId) {}
397 
402  {
403  ch_import('ChWsbPayments');
404  $oPayment = ChWsbPayments::getInstance();
405 
406  $aMemberships = $this->_oDb->getExpiringMemberships();
407  foreach($aMemberships as $aMembership) {
408  $aResult = $oPayment->prolongSubscription($aMembership['transaction_id']);
409  if(!isset($aResult['code']) || (int)$aResult['code'] != 0)
410  continue;
411 
412  unmarkMembershipAsExpiring($aMembership['member_id'], $aMembership['level_id'], $aMembership['transaction_id']);
413  }
414  }
415 
416  function _getCartItem($iClientId, $iItemId)
417  {
418  $aItem = $this->_oDb->getMembershipsBy(array('type' => 'price_id', 'id' => $iItemId));
419 
420  if(empty($aItem) || !is_array($aItem))
421  return array();
422 
423  return array(
424  'id' => $iItemId,
425  'title' => $aItem['mem_name'] . ' ' . _t('_membership_txt_on_N_days', $aItem['price_days']),
426  'description' => $aItem['mem_description'],
427  'url' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'index',
428  'price' => $aItem['price_amount'],
429  'duration' => $aItem['price_days']
430  );
431  }
432 }
header
</code > Be careful enabling this directive if you have a redirector script that does not use the< code > Location</code > HTTP header
Definition: URI.MungeResources.txt:10
$oSettings
$oSettings
Definition: advanced_settings.php:20
ChMbpModule\serviceIsDisableFreeJoin
serviceIsDisableFreeJoin()
Definition: ChMbpModule.php:297
$iMemberId
$iMemberId
Definition: profile.php:91
ChMbpModule\actionIndex
actionIndex()
Definition: ChMbpModule.php:145
ChMbpModule\serviceGetItems
serviceGetItems($iVendorId)
Definition: ChMbpModule.php:341
MsgBox
MsgBox($sText, $iTimer=0)
Definition: design.inc.php:175
isProfileActive
isProfileActive($iId=0)
Definition: profiles.inc.php:236
ChMbpModule\serviceSelectLevelBlock
serviceSelectLevelBlock()
Definition: ChMbpModule.php:323
check_logged
check_logged()
Definition: admin.inc.php:238
ChWsbModule\isLogged
isLogged()
Definition: ChWsbModule.php:113
ChMbpModule\serviceRegisterCartItem
serviceRegisterCartItem($iClientId, $iSellerId, $iItemId, $iItemCount, $sOrderId)
Definition: ChMbpModule.php:379
ChMbpModule\serviceUnregisterCartItem
serviceUnregisterCartItem($iClientId, $iSellerId, $iItemId, $iItemCount, $sOrderId)
Definition: ChMbpModule.php:396
$sResult
$sResult
Definition: advanced_settings.php:26
ChMbpPageJoin
Definition: ChMbpPageJoin.php:11
ChWsbModule\getUserId
getUserId()
Definition: ChWsbModule.php:122
$aModule
$aModule
Definition: classifieds.php:21
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
$aResult
$aResult
Definition: index.php:19
unmarkMembershipAsExpiring
unmarkMembershipAsExpiring($iMemberId, $iLevelId, $sTransactionId)
Definition: membership_levels.inc.php:788
ChMbpModule\getCurrentLevelBlock
getCurrentLevelBlock()
Definition: ChMbpModule.php:111
ch_get
ch_get($sName)
Definition: utils.inc.php:1664
ChMbpModule\serviceGetPaymentData
serviceGetPaymentData()
Definition: ChMbpModule.php:330
buyMembership
buyMembership($iMemberId, $iMembershipId, $sTransactionId, $bStartsNow=false)
Definition: membership_levels.inc.php:511
php
$iId
$iId
Definition: license.php:15
login_form
login_form($text="", $member=0, $bAjaxMode=false, $sLoginFormParams='')
Definition: admin.inc.php:13
ChMbpModule\getSettingsForm
getSettingsForm($mixedResult)
Definition: ChMbpModule.php:78
$oPage
$oPage
Definition: search_home.php:83
send_headers_page_changed
send_headers_page_changed()
Definition: design.inc.php:99
ChMbpModule\actionJoin
actionJoin()
Definition: ChMbpModule.php:168
ChMbpModule\serviceGetUpgradeUrl
serviceGetUpgradeUrl()
Definition: ChMbpModule.php:301
isAdmin
isAdmin()
Definition: index.php:649
ChMbpModule\serviceProlongSubscriptions
serviceProlongSubscriptions()
Definition: ChMbpModule.php:401
ChWsbPayments\getInstance
static getInstance()
Definition: ChWsbPayments.php:31
DesignBoxAdmin
DesignBoxAdmin($sTitle, $sContent, $mixedTopItems='', $sBottomItems='', $iIndex=1)
Definition: admin_design.inc.php:50
exit
exit
Definition: cart.php:21
$oMemberMenu
$oMemberMenu
Definition: member_menu_queries.php:20
$sTitle
$sTitle
Definition: actions.inc.php:13
ChMbpModule\actionJoinSubmit
actionJoinSubmit()
Definition: ChMbpModule.php:186
ChWsbJoinProcessor
Definition: ChWsbJoinProcessor.php:17
ChWsbModule\$_aModule
$_aModule
Definition: ChWsbModule.php:42
ChWsbCaptcha\getObjectInstance
static getObjectInstance($sObject=false)
Definition: ChWsbCaptcha.php:74
ChMbpModule\serviceGetMemberMenuLink
serviceGetMemberMenuLink($iMemberId)
Definition: ChMbpModule.php:306
ChMbpModule\getAvailableLevelsBlock
getAvailableLevelsBlock()
Definition: ChMbpModule.php:116
ch_instance
ch_instance($sClassName, $aParams=array(), $aModule=array())
Definition: utils.inc.php:1264
ChMbpProfileFields
Definition: ChMbpProfileFields.php:10
ChWsbModule
Definition: ChWsbModule.php:41
$bResult
$bResult
Definition: get_file.php:11
$sContent
$sContent
Definition: bottom_menu_compose.php:169
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
ChMbpModule\__construct
__construct($aModule)
Definition: ChMbpModule.php:68
ChMbpModule\setSettings
setSettings($aData)
Definition: ChMbpModule.php:95
ChMbpPageMy
Definition: ChMbpPageMy.php:11
ChWsbAdminSettings
Definition: ChWsbAdminSettings.php:35
$mixedResultSettings
$mixedResultSettings
Definition: admin.php:36
getMemberMembershipInfo
getMemberMembershipInfo($iMemberId, $iTime='', $bCheckUserStatus=false)
Definition: membership_levels.inc.php:234
ChMbpModule\_getCartItem
_getCartItem($iClientId, $iItemId)
Definition: ChMbpModule.php:416
ChMbpModule\serviceGetCartItem
serviceGetCartItem($iClientId, $iItemId)
Definition: ChMbpModule.php:365
ChMbpModule\getSelectLevelBlock
getSelectLevelBlock($bDynamic=false)
Definition: ChMbpModule.php:130
ChMbpModule\actionJoinForm
actionJoinForm()
Definition: ChMbpModule.php:229
DesignBoxContent
DesignBoxContent($title, $content, $db_num=0, $caption_item='', $bottom_item='')
Definition: design.inc.php:78
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
ChMbpModule\actionAdmin
actionAdmin()
Definition: ChMbpModule.php:254
$GLOBALS
$GLOBALS['iAdminPage']
Definition: advanced_settings.php:10
ChMbpModule
Definition: ChMbpModule.php:64