Go to the documentation of this file.
8 require_once(
'../inc/header.inc.php');
9 require_once(CH_DIRECTORY_PATH_INC .
'profiles.inc.php');
10 require_once(CH_DIRECTORY_PATH_INC .
'design.inc.php');
11 require_once(CH_DIRECTORY_PATH_INC .
'admin_design.inc.php');
12 require_once(CH_DIRECTORY_PATH_INC .
'utils.inc.php');
25 if (isset($_POST[
'save']) && isset($_POST[
'cat'])) {
27 } elseif ((isset($_POST[
'adm-mlevels-enable']) || isset($_POST[
'adm-mlevels-disable'])) && !
empty($_POST[
'levels'])) {
28 if (isset($_POST[
'adm-mlevels-enable'])) {
30 } elseif (isset($_POST[
'adm-mlevels-disable'])) {
34 $GLOBALS[
'MySQL']->query(
"UPDATE `sys_acl_levels` SET `Active`='" . $sValue .
"' WHERE `ID` IN ('" . implode(
"','", $_POST[
'levels']) .
"')");
35 } elseif (isset($_POST[
'adm-mlevels-delete']) && !
empty($_POST[
'levels'])) {
36 foreach ($_POST[
'levels']
as $iId) {
41 } elseif (isset($_POST[
'adm-mlevels-actions-enable']) || isset($_POST[
'adm-mlevels-actions-disable'])) {
44 foreach ($_POST[
'actions']
as $iId) {
45 if (isset($_POST[
'adm-mlevels-actions-enable'])) {
46 $sQuery =
"REPLACE INTO `sys_acl_matrix` SET `IDLevel`='" .
$iLevelId .
"', `IDAction`='" .
$iId .
"'";
48 $sQuery =
"DELETE FROM `sys_acl_matrix` WHERE `IDLevel`='" .
$iLevelId .
"' AND `IDAction`='" .
$iId .
"'";
53 } elseif (isset($_POST[
'adm-mlevels-prices-add'])) {
55 $iDays = (int)$_POST[
'days'];
56 $iPrice = (float)trim($_POST[
'price'],
" $");
58 $iLevelIdDb = (int)
$GLOBALS[
'MySQL']->getOne(
"SELECT `id` FROM `sys_acl_level_prices` WHERE `IDLevel`='" .
$iLevelId .
"' AND `Days`='" . $iDays .
"' LIMIT 1");
59 if ($iLevelIdDb == 0) {
60 $GLOBALS[
'MySQL']->query(
"INSERT INTO `sys_acl_level_prices`(`IDLevel`, `Days`, `Price`) VALUES('" .
$iLevelId .
"', '" . $iDays .
"', '" . $iPrice .
"')");
64 } elseif (isset($_POST[
'adm-mlevels-prices-delete'])) {
65 $GLOBALS[
'MySQL']->query(
"DELETE FROM `sys_acl_level_prices` WHERE `id` IN ('" . implode(
"','", $_POST[
'prices']) .
"')");
66 } elseif (isset($_POST[
'adm-mlevels-action-save'])) {
67 $sQuery =
"REPLACE INTO `sys_acl_matrix` SET `IDLevel`='" . (int)$_POST[
'levelId'] .
"', `IDAction`='" . (
int)$_POST[
'actionId'] .
"'";
68 $sQuery .= !
empty($_POST[
'allowedCnt']) ?
", `AllowedCount`='" . (int)$_POST[
'allowedCnt'] .
"'" :
"";
69 $sQuery .= !
empty($_POST[
'period']) ?
", `AllowedPeriodLen`='" . (int)$_POST[
'period'] .
"'" :
"";
70 $sQuery .= !
empty($_POST[
'dateStart']) && strtotime($_POST[
'dateStart']) > 0 ?
", `AllowedPeriodStart`=FROM_UNIXTIME(" . strtotime($_POST[
'dateStart']) .
")" :
"";
71 $sQuery .= !
empty($_POST[
'dateEnd']) && strtotime($_POST[
'dateEnd']) > 0 ?
", `AllowedPeriodEnd`=FROM_UNIXTIME(" . strtotime($_POST[
'dateEnd']) .
")" :
"";
72 $aResult =
$GLOBALS[
'MySQL']->query($sQuery) > 0 ? array(
'code' => 0,
'message' =>
MsgBox(
_t(
'_adm_txt_mlevels_action_saved'))) : array(
'code' => 1,
'message' =>
MsgBox(
_t(
'_adm_txt_mlevels_action_cannot_save')));
74 echo
"<script>parent.onResult(" . json_encode(
$aResult) .
");</script>";
76 } elseif (isset($_POST[
'action']) && $_POST[
'action'] ==
'get_edit_form_action') {
86 'css_name' => array(
'settings.css',
'memb_levels.css'),
87 'js_name' => array(
'memb_levels.js'),
88 'header' =>
_t(
'_adm_page_cpt_memb_levels'),
99 $oForm->addCssJs(
true,
true);
107 $bEdit =
ch_get(
'action') !==
false &&
ch_get(
'action') ==
'edit';
109 $sTab =
'levels_add';
113 'adm-mlevels-btn-levels' => array(
'href' =>
'javascript:void(0)',
'onclick' =>
'javascript:onChangeType(this)',
'title' =>
_t(
'_adm_txt_mlevels_levels'),
'active' => $sTab ==
'levels' ? 1 : 0),
114 'adm-mlevels-btn-levels-add' => array(
'href' =>
'javascript:void(0)',
'onclick' =>
'javascript:onChangeType(this)',
'title' =>
_t(
'_adm_txt_mlevels_levels_add'),
'active' => $sTab ==
'levels_add' ? 1 : 0),
115 'adm-mlevels-btn-settings' => array(
'href' =>
'javascript:void(0)',
'onclick' =>
'javascript:onChangeType(this)',
'title' =>
_t(
'_adm_txt_mlevels_settings'),
'active' => $sTab ==
'settings' ? 1 : 0)
129 $sSubmitUrl = CH_WSB_URL_ADMIN .
'memb_levels.php?tab=levels';
132 if ($mixedResult !==
true && !
empty($mixedResult)) {
138 $aItemsSystem = $aItemsCustom = array();
140 $aLevels =
$GLOBALS[
'MySQL']->getAll(
"SELECT `ID` AS `id`, `Name` AS `title`, `Active` AS `active`, `Purchasable` AS `purchasable`, `Removable` AS `removable` FROM `sys_acl_levels` WHERE `Removable`='no' ORDER BY `ID` ASC");
141 foreach ($aLevels
as $aLevel) {
142 $aItemsSystem[] = array(
143 'id' => $aLevel[
'id'],
144 'title' => $aLevel[
'title'],
145 'actions_link' =>
$GLOBALS[
'site'][
'url_admin'] .
'memb_levels.php?action=actions&level=' . $aLevel[
'id'] .
'#actions' . $aLevel[
'id'],
152 $aLevels =
$GLOBALS[
'MySQL']->getAll(
"SELECT `ID` AS `id`, `Name` AS `title`, `Active` AS `active`, `Purchasable` AS `purchasable`, `Removable` AS `removable` FROM `sys_acl_levels` WHERE `Removable`='yes' ORDER BY `Order` ASC");
153 foreach ($aLevels
as $aLevel) {
154 $aItemsCustom[] = array(
155 'id' => $aLevel[
'id'],
156 'title' => $aLevel[
'title'],
157 'class' => $aLevel[
'active'] ==
'yes' ?
'adm-mlevels-enabled' :
'adm-mlevels-disabled',
158 'actions_link' =>
$GLOBALS[
'site'][
'url_admin'] .
'memb_levels.php?action=actions&level=' . $aLevel[
'id'] .
'#actions' . $aLevel[
'id'],
159 'ch_if:editable' => array(
160 'condition' => $aLevel[
'removable'] ==
'yes',
162 'edit_link' =>
$GLOBALS[
'site'][
'url_admin'] .
'memb_levels.php?action=edit&level=' . $aLevel[
'id'],
165 'ch_if:purchasable' => array(
166 'condition' => $bPayment && $aLevel[
'purchasable'] ==
'yes',
168 'price_link' =>
$GLOBALS[
'site'][
'url_admin'] .
'memb_levels.php?action=prices&level=' . $aLevel[
'id'] .
'#prices' . $aLevel[
'id'],
176 'adm-mlevels-enable' =>
_t(
'_adm_btn_mlevels_enable'),
177 'adm-mlevels-disable' =>
_t(
'_adm_btn_mlevels_disable'),
178 'adm-mlevels-delete' =>
_t(
'_adm_btn_mlevels_delete')
182 return $GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'mlevels_list.html', array(
183 'display' => $bActive ?
'block' :
'none',
184 'action' => $sSubmitUrl,
186 'ch_repeat:items_system' => $aItemsSystem,
187 'ch_repeat:items_custom' => $aItemsCustom,
188 'controls' => $sControls
194 $sSubmitUrl = CH_WSB_URL_ADMIN .
'memb_levels.php';
197 if (($bEdit =
$iLevelId != 0) ===
true) {
198 $aLevel =
$GLOBALS[
'MySQL']->getRow(
"SELECT `Name` AS `Name`, `Description` AS `Description`, `Order` AS `Order` FROM `sys_acl_levels` WHERE `ID`= ? LIMIT 1", [
$iLevelId]);
202 $aLevels =
$GLOBALS[
'MySQL']->getAll(
"SELECT `ID` AS `id`, `Name` AS `title`, `Active` AS `active`, `Purchasable` AS `purchasable`, `Removable` AS `removable` FROM `sys_acl_levels` WHERE `Removable`='no' ORDER BY `ID` ASC");
203 foreach ($aLevels
as $aLevel2) {
204 $aItemsSystem[$aLevel2[
'id']] = $aLevel2[
'title'];
206 $sCopyFromCaption =
_t(
'_adm_txt_mlevels_copy');
208 $aItemsSystem = array();
209 $sCopyFromCaption =
'';
213 'form_attrs' => array(
214 'id' =>
'adm-mlevels-create',
215 'action' => $sSubmitUrl .
'?tab=levels_add',
217 'enctype' =>
'multipart/form-data',
221 'table' =>
'sys_acl_levels',
225 'submit_name' =>
'Submit'
237 'Purchasable' => array(
239 'name' =>
'Purchasable',
245 'Removable' => array(
247 'name' =>
'Removable',
256 'caption' =>
_t(
'_adm_txt_mlevels_name'),
257 'value' => isset($aLevel[
'Name']) ? $aLevel[
'Name'] :
'',
264 'params' => array(3,100),
265 'error' =>
_t(
'_adm_txt_mlevels_name_err'),
271 'caption' =>
_t(
'_adm_txt_mlevels_icon'),
276 'error' =>
_t(
'_adm_txt_mlevels_icon_err'),
279 'Description' => array(
280 'type' =>
'textarea',
281 'name' =>
'Description',
282 'caption' =>
_t(
'_adm_txt_mlevels_description'),
283 'value' => isset($aLevel[
'Description']) ? $aLevel[
'Description'] :
'',
291 'caption' =>
_t(
'_adm_txt_mlevels_order'),
292 'value' => isset($aLevel[
'Order']) ? $aLevel[
'Order'] :
$GLOBALS[
'MySQL']->getOne(
"SELECT MAX(`Order`)+1 FROM `sys_acl_levels`"),
299 'params' => array(
'/^[1-9][0-9]*$/'),
300 'error' =>
_t(
'_adm_txt_mlevels_order_err'),
304 'type' =>
'radio_set',
305 'name' =>
'CopyFrom',
306 'caption' => $sCopyFromCaption,
307 'value' => $aItem[
'Target'] ==
'_blank' ?
'_blank' :
'_self',
308 'values' => $aItemsSystem,
314 'value' =>
_t(
'_adm_btn_mlevels_add'),
321 unset(
$aForm[
'inputs'][
'Active']);
322 unset(
$aForm[
'inputs'][
'Purchasable']);
323 unset(
$aForm[
'inputs'][
'Removable']);
325 $aForm[
'form_attrs'][
'action'] = $sSubmitUrl .
'?action=edit&level=' .
$iLevelId;
326 $aForm[
'inputs'][
'Icon'][
'info'] =
_t(
'_adm_txt_mlevels_icon_info_edit');
327 $aForm[
'inputs'][
'Icon'][
'required'] =
false;
328 $aForm[
'inputs'][
'Icon'][
'checker'] = array();
329 $aForm[
'inputs'][
'Submit'][
'value'] =
_t(
'_adm_btn_mlevels_save');
330 $aForm[
'inputs'][
'ID'] = array(
342 if (
$oForm->isSubmittedAndValid()) {
343 $sFilePath = CH_DIRECTORY_PATH_ROOT .
'media/images/membership/';
349 if (
$GLOBALS[
'MySQL']->getOne(
"SELECT `Name` FROM `sys_acl_levels` WHERE `Name`='" .
$oForm->getCleanValue(
'Name') .
"' LIMIT 1")) {
350 $oForm->aInputs[
'Name'][
'error'] =
_t(
'_adm_txt_mlevels_name_err_non_uniq');
351 } elseif (
isImage($_FILES[
'Icon'][
'type'], $sFileExt) && !
empty($_FILES[
'Icon'][
'tmp_name']) && move_uploaded_file($_FILES[
'Icon'][
'tmp_name'], $sFilePath . $sFileName .
'.' . $sFileExt)) {
352 $sPath = $sFilePath . $sFileName .
'.' . $sFileExt;
355 $iId = (int)
$oForm->insert(array(
'Icon' => $sFileName .
'.' . $sFileExt));
360 $iCopyFrom = (int)
$oForm->getCleanValue(
'CopyFrom');
362 if ($iCopyFrom > 0) {
367 header(
'Location: ' . $sSubmitUrl);
370 $oForm->aInputs[
'Icon'][
'error'] =
$oForm->aInputs[
'Icon'][
'checker'][
'error'];
375 $aValsToAdd = array();
376 if (
isImage($_FILES[
'Icon'][
'type'], $sFileExt) && !
empty($_FILES[
'Icon'][
'tmp_name']) && move_uploaded_file($_FILES[
'Icon'][
'tmp_name'], $sFilePath . $sFileName .
'.' . $sFileExt)) {
377 $aValsToAdd[
'Icon'] = $sFileName .
'.' . $sFileExt;
379 $sPath = $sFilePath . $sFileName .
'.' . $sFileExt;
382 $sIconOld =
$GLOBALS[
'MySQL']->getOne(
"SELECT `Icon` FROM `sys_acl_levels` WHERE `ID`='" .
$iLevelId .
"' LIMIT 1");
383 if (!
empty($sIconOld)) {
384 @unlink($sFilePath . $sIconOld);
396 header(
'Location: ' . $sSubmitUrl);
401 return $GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'mlevels_create.html', array(
402 'display' => $bActive ?
'block' :
'none',
403 'form' =>
$oForm->getCode()
410 $aMatrix =
$GLOBALS[
'MySQL']->getAll(
"SELECT * FROM `sys_acl_matrix` WHERE `IDLevel` = '$iFromId'");
415 foreach ($aMatrix
as $id => $value) {
416 $sSet =
"`IDLevel` = '$iToId', ";
417 $sSet .=
"`IDAction` = '" . $value[
'IDAction'] .
"', ";
418 $sSet .=
"`AllowedCount` = '" . $value[
'AllowedCount'] .
"', ";
419 $sSet .=
"`AllowedPeriodLen` = '" . $value[
'AllowedPeriodLen'] .
"', ";
420 $sSet .=
"`AllowedPeriodStart` = '" . $value[
'AllowedPeriodStart'] .
"', ";
421 $sSet .=
"`AllowedPeriodEnd` = '" . $value[
'AllowedPeriodEnd'] .
"', ";
422 $sSet .=
"`AdditionalParamValue` = '" . $value[
'AdditionalParamValue'] .
"';";
423 $GLOBALS[
'MySQL']->query(
"INSERT INTO `sys_acl_matrix` SET " . $sSet);
431 if ($mixedResult !==
true && !
empty($mixedResult)) {
436 return $GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'mlevels_settings.html', array(
437 'display' => $bActive ?
'block' :
'none',
444 $sTitle =
$GLOBALS[
'MySQL']->getOne(
"SELECT `Name` FROM `sys_acl_levels` WHERE `ID`='" .
$iId .
"' LIMIT 1");
449 $aActions =
$GLOBALS[
'MySQL']->getAll(
"SELECT `ta`.`ID` AS `id`, `ta`.`Name` AS `title` FROM `sys_acl_actions` AS `ta` ORDER BY `ta`.`Name`");
450 $aActionsActive =
$GLOBALS[
'MySQL']->getAllWithKey(
"SELECT `ta`.`ID` AS `id`, `ta`.`Name` AS `title` FROM `sys_acl_actions` AS `ta`
451 LEFT JOIN `sys_acl_matrix` AS `tm` ON `ta`.`ID`=`tm`.`IDAction` LEFT JOIN `sys_acl_levels` AS `tl` ON `tm`.`IDLevel`=`tl`.`ID` WHERE `tl`.`ID`= ?",
"id", [
$iId]);
455 foreach ($aActions
as $aAction) {
456 $bEnabled = array_key_exists($aAction[
'id'], $aActionsActive);
458 'action_id' => $aAction[
'id'],
459 'title' => $aAction[
'title'],
460 'class' => $bEnabled ?
'adm-mlevels-enabled' :
'adm-mlevels-disabled',
461 'ch_if:enabled' => array(
462 'condition' => $bEnabled,
465 'action_id' => $aAction[
'id'],
466 'title' => $aAction[
'title']
469 'ch_if:disabled' => array(
470 'condition' => !$bEnabled,
472 'action_id' => $aAction[
'id'],
473 'title' => $aAction[
'title']
481 'adm-mlevels-actions-enable' =>
_t(
'_adm_btn_mlevels_enable'),
482 'adm-mlevels-actions-disable' =>
_t(
'_adm_btn_mlevels_disable')
486 $sResult =
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'mlevels_actions.html', array(
488 'ch_repeat:items' => $aItems,
489 'controls' => $sControls,
490 'url_admin' =>
$GLOBALS[
'site'][
'url_admin']
493 if ($mixedResult !==
true && !
empty($mixedResult)) {
501 $aAction =
$GLOBALS[
'MySQL']->getRow(
"SELECT * FROM `sys_acl_matrix` WHERE `IDLevel`='" .
$iLevelId .
"' AND `IDAction`= ?", [$iActionId]);
504 'form_attrs' => array(
505 'id' =>
'adm-mlevels-action-form',
506 'target' =>
'adm-mlevels-action-iframe',
507 'action' =>
$GLOBALS[
'site'][
'url_admin'] .
'memb_levels.php',
509 'enctype' =>
'multipart/form-data'
520 'name' =>
'actionId',
521 'value' => $iActionId
523 'allowedCnt' => array(
525 'name' =>
'allowedCnt',
526 'caption' =>
_t(
'_adm_txt_mlevels_actions_number'),
527 'info' =>
_t(
'_adm_txt_mlevels_actions_number_desc'),
528 'value' => isset($aAction[
'AllowedCount']) ? (
int)$aAction[
'AllowedCount'] :
""
533 'caption' =>
_t(
'_adm_txt_mlevels_actions_reset'),
534 'info' =>
_t(
'_adm_txt_mlevels_actions_reset_desc'),
535 'value' => isset($aAction[
'AllowedPeriodLen']) ? (
int)$aAction[
'AllowedPeriodLen'] :
""
537 'dateStart' => array(
538 'type' =>
'datetime',
539 'name' =>
'dateStart',
540 'caption' =>
_t(
'_adm_txt_mlevels_actions_avail_start'),
541 'info' =>
_t(
'_adm_txt_mlevels_actions_avail_desc'),
542 'value' => isset($aAction[
'AllowedPeriodStart']) ? preg_replace(
'/(\d+):(\d+):(\d+)/',
'$1:$2', $aAction[
'AllowedPeriodStart']) :
"",
544 'allow_input' =>
'true',
547 'pass' =>
'DateTime',
551 'type' =>
'datetime',
553 'caption' =>
_t(
'_adm_txt_mlevels_actions_avail_end'),
554 'info' =>
_t(
'_adm_txt_mlevels_actions_avail_desc'),
555 'value' => isset($aAction[
'AllowedPeriodEnd']) ? preg_replace(
'/(\d+):(\d+):(\d+)/',
'$1:$2', $aAction[
'AllowedPeriodEnd']) :
"",
557 'allow_input' =>
'true',
560 'pass' =>
'DateTime',
563 'adm-mlevels-action-save' => array(
565 'name' =>
'adm-mlevels-action-save',
566 'value' =>
_t(
'_adm_btn_mlevels_save'),
572 $sResult =
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'mlevels_action.html', array(
573 'content' =>
$oForm->getCode()
576 if ($mixedResult !==
true && !
empty($mixedResult)) {
580 return $GLOBALS[
'oFunctions']->popupBox(
'adm-mlevels-action',
_t(
'_adm_box_cpt_mlevel_action'),
$sResult);
591 $sCurrencySign =
$aInfo[
'sign'];
594 $aPrices =
$GLOBALS[
'MySQL']->getAll(
"SELECT `id` AS `id`, `Days` AS `days`, `Price` AS `price` FROM `sys_acl_level_prices` WHERE `IDLevel`= ? ORDER BY `id`", [
$iId]);
595 foreach ($aPrices
as $aPrice) {
597 'id' => $aPrice[
'id'],
598 'title' => (
int)$aPrice[
'days'] == 0 ?
_t(
'_adm_txt_mlevels_price_info_lifetime', $sCurrencySign, $aPrice[
'price']) :
_t(
'_adm_txt_mlevels_price_info', $aPrice[
'days'], $sCurrencySign, $aPrice[
'price']),
603 $sTopControls =
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'mlevels_prices_top_controls.html', array());
606 'adm-mlevels-prices-delete' =>
_t(
'_adm_btn_mlevels_delete')
610 $sResult =
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'mlevels_prices.html', array(
612 'top_controls' => $sTopControls,
613 'ch_repeat:items' => $aItems,
614 'controls' => $sControls
617 if ($mixedResult !==
true && !
empty($mixedResult)) {
621 $sTitle =
$GLOBALS[
'MySQL']->getOne(
"SELECT `Name` FROM `sys_acl_levels` WHERE `ID`='" .
$iId .
"' LIMIT 1");
627 switch ($sMimeType) {
648 $aLevel =
$GLOBALS[
'MySQL']->getRow(
"SELECT `Icon` AS `icon`, `Removable` AS `removable`, `Name` AS `name` FROM `sys_acl_levels` WHERE `ID`= ?", [
$iId]);
649 if (
empty($aLevel)) {
650 return "_adm_txt_mlevels_not_found";
654 if ($aLevel[
'removable'] !=
'yes') {
655 return '_adm_txt_mlevels_cannot_remove';
659 $iDateExpires =
$GLOBALS[
'MySQL']->getOne(
"SELECT UNIX_TIMESTAMP(MAX(`DateExpires`)) as `MaxDateExpires` FROM `sys_acl_levels_members` WHERE `IDLevel`='" .
$iId .
"'");
660 if ($iDateExpires >
time()) {
661 return "_adm_txt_mlevels_is_used";
665 $iLifetime = (int)
$GLOBALS[
'MySQL']->getOne(
"SELECT COUNT(`IDMember`) FROM `sys_acl_levels_members` WHERE `DateStarts`<=NOW() AND ISNULL(`DateExpires`) AND `IDLevel`='" .
$iId .
"'");
666 if ($iLifetime > 0) {
667 return "_adm_txt_mlevels_is_used";
670 @unlink(CH_DIRECTORY_PATH_ROOT .
'media/images/membership/' . $aLevel[
'icon']);
671 db_res(
"DELETE FROM `sys_acl_level_prices` WHERE `IDLevel`='" .
$iId .
"'");
672 db_res(
"DELETE FROM `sys_acl_matrix` WHERE `IDLevel`='" .
$iId .
"'");
673 db_res(
"DELETE FROM `sys_acl_levels` WHERE `ID`='" .
$iId .
"'");
_getLevelsCreateForm($iLevelId, $bActive=false)
process_db_input($sText, $iStripTags=0)
</code > Be careful enabling this directive if you have a redirector script that does not use the< code > Location</code > HTTP header
if(isset($_POST['save']) &&isset($_POST['cat'])) elseif((isset($_POST['adm-mlevels-enable'])||isset($_POST['adm-mlevels-disable'])) &&!empty($_POST['levels'])) elseif(isset($_POST['adm-mlevels-delete']) &&!empty($_POST['levels'])) elseif(isset($_POST['adm-mlevels-actions-enable'])||isset($_POST['adm-mlevels-actions-disable'])) elseif(isset($_POST['adm-mlevels-prices-add'])) elseif(isset($_POST['adm-mlevels-prices-delete'])) elseif(isset($_POST['adm-mlevels-action-save'])) elseif(isset($_POST['action']) && $_POST['action']=='get_edit_form_action') $iLevelId
deleteStringFromLanguage($langKey, $langID=-1)
MsgBox($sText, $iTimer=0)
translateMembershipActions(&$aActions)
ch_import($sClassName, $aModule=array())
PageCodeMain($aResults, $iLevelId)
isImage($sMimeType, &$sFileExtension)
_getLevelsSettingsForm($mixedResult, $bActive=false)
DesignBoxAdmin($sTitle, $sContent, $mixedTopItems='', $sBottomItems='', $iIndex=1)
PageCodeAction($iLevelId, $iActionId, $mixedResult)
addStringToLanguage($langKey, $langString, $langID=-1, $categoryID=CH_WSB_LANGUAGE_CATEGORY_SYSTEM)
PageCodeAdmin($oTemplate=null)
_t($key, $arg0="", $arg1="", $arg2="")
_copyMatrix($iFromId, $iToId)
that in the case of a Adaptation or at a minimum such credit will if a credit for all contributing authors of the Adaptation or Collection then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors For the avoidance of You may only use the credit required by this Section for the purpose of attribution in the manner set out above by exercising Your rights under this You may not implicitly or explicitly assert or imply any connection sponsorship or endorsement by the Original Licensor and or Attribution as of You or Your use of the without the express prior written permission of the Original Licensor and or Attribution Parties Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable if You Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or You must not modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author s honor or reputation Licensor agrees that in those in which any exercise of the right granted in modification or other derogatory action prejudicial to the Original Author s honor and the Licensor will waive or not as this to the fullest extent permitted by the applicable national to enable You to reasonably exercise Your right under Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN LICENSOR OFFERS THE WORK AS IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE STATUTORY OR WITHOUT WARRANTIES OF FITNESS FOR A PARTICULAR OR THE ABSENCE OF LATENT OR OTHER OR THE PRESENCE OF ABSENCE OF WHETHER OR NOT DISCOVERABLE SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED SO SUCH EXCLUSION MAY NOT APPLY TO YOU Limitation on Liability EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES Termination This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License Individuals or entities who have received Adaptations or Collections from You under this will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses and will survive any termination of this License Subject to the above terms and the license granted here is Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time
member_auth($member=0, $error_handle=true, $bAjx=false)
_getLevelsList($mixedResult, $bActive=false)
db_res($query, $bindings=[])
PageCodeActions($iId, $mixedResult)
static showAdminActionsPanel($sWrapperId, $aButtons, $sCheckboxName='entry', $bSelectAll=true, $bSelectAllChecked=false, $sCustomHtml='')
Attr AllowedRel this is empty
imageResize( $srcFilename, $dstFilename, $sizeX, $sizeY, $forceJPGOutput=false, $isSquare=false)
static call($mixed, $sMethod, $aParams=array(), $sClass='Module')
PageCodePrices($iId, $mixedResult)