24 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
26 header(
'Content-Type: text/html; charset=utf-8');
29 $sRet .=
DesignBoxAdmin(
_t(
'_ch_pageac_new_rule'), $this->_oTemplate->displayNewRuleForm(),
'',
'', 11);
30 $sRet .=
DesignBoxAdmin(
_t(
'_ch_pageac_note'),
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'design_box_content.html', array(
'content' =>
_t(
'_ch_pageac_note_text'))));
36 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
38 header(
'Content-Type: text/html; charset=utf-8');
40 $aTopMenuArray = $this->_oDb->getTopMenuArray();
41 return $this->_oTemplate->displayTopMenuCompose($aTopMenuArray);
46 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
48 header(
'Content-Type: text/html; charset=utf-8');
50 $aMemberMenuArray = $this->_oDb->getMemberMenuArray();
51 return $this->_oTemplate->displayMemberMenuCompose($aMemberMenuArray);
56 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
58 header(
'Content-Type: text/html; charset=utf-8');
61 return $this->_oTemplate->_getAvailablePages($this->_oDb->getAvailablePages());
63 $aColumns = $this->_oDb->getPageBlocks($sPage);
64 return $this->_oTemplate->_getPageBlocks($aColumns);
70 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
72 $aRules = $this->_oDb->getAllRules();
73 $sRet = $this->_oTemplate->displayRulesList($aRules);
74 if ($bAddWrapper) $sRet=
'<div id="rules_list">'.$sRet.
'</div>';
76 header(
'Content-Type: text/html; charset=utf-8');
82 if(!
isAdmin())
return 'Hack attempt';
84 $sRule = $this->
_validateRule($_POST[
'rule'], $_POST[
'advanced']);
86 $aMemLevels = array();
87 foreach ($_POST[
'memlevels']
as $iID) {
88 $aMemLevels[$iID] = 1;
91 $this->_oDb->addRule($sRule, $aMemLevels);
94 header(
'Content-Type: text/html; charset=utf-8');
95 return _t(
'_ch_pageac_page_url_empty');
101 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
103 $iRuleID = intval($_POST[
'rule_id']);
105 if (!strlen($sRule)) {
108 $aMemLevels = array();
109 $aData = explode(
',', $_POST[
'rule_mlvs']);
110 foreach ($aData
as $iID) {
111 if ($iID) $aMemLevels[$iID] = 1;
113 $this->_oDb->updateRule($iRuleID, $sRule, $aMemLevels);
114 return MsgBox(
_t(
'_ch_pageac_saved'), 1).$this->actionGetRulesList();
120 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
122 $iRuleID = intval($_POST[
'rule_id']);
124 $this->_oDb->deleteRule($iRuleID);
125 return MsgBox(
_t(
'_ch_pageac_deleted'), 1).$this->actionGetRulesList();
130 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
133 $aMenuItemVisibility = $this->_oDb->getMenuItemVisibility(
'top', $iMenuItemID);
135 header(
'Content-Type: text/html; charset=utf-8');
136 return PopupBox(
'pageac_popup_edit_form',
_t(
'_ch_pageac_visible_for'),
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'design_box_content.html', array(
'content' => $this->_oTemplate->getMenuItemEditForm(
'top', $iMenuItemID, $aMenuItemVisibility).LoadingBox(
'formItemEditLoading'))));
145 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
148 $aMenuItemVisibility = $this->_oDb->getMenuItemVisibility(
'member', $iMenuItemID);
150 header(
'Content-Type: text/html; charset=utf-8');
151 return PopupBox(
'pageac_popup_edit_form',
_t(
'_ch_pageac_visible_for'),
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'design_box_content.html', array(
'content' => $this->_oTemplate->getMenuItemEditForm(
'member', $iMenuItemID, $aMenuItemVisibility).LoadingBox(
'formItemEditLoading'))));
160 $aVisibleTo = array();
161 if (is_array($_POST[
'mlv_visible_to'])) {
162 $aData = array_flip($_POST[
'mlv_visible_to']);
163 if ( !isset($aData[-1]) ) {
164 foreach ($aData
as $iLevel => $dummy) {
165 $aVisibleTo[$iLevel] = 1;
169 if (
empty($aVisibleTo) && !isset($aData[-1])) $aVisibleTo[] = 0;
170 $this->_oDb->setMenuItemVisibility(
$sType, $iMenuItemID, $aVisibleTo);
174 if(!
isAdmin()) $this->_oTemplate->displayAccessDenied();
177 $aVisibility = $this->_oDb->getPageBlockVisibility($iID);
179 header(
'Content-Type: text/html; charset=utf-8');
180 return PopupBox(
'pageac_popup_edit_form',
_t(
'_ch_pageac_visible_for'),
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'design_box_content.html', array(
'content' => $this->_oTemplate->getPageBlockEditForm($iID, $aVisibility).LoadingBox(
'formItemEditLoading'))));
182 $aVisibleTo = array();
183 if (is_array($_POST[
'mlv_visible_to'])) {
184 $aData = array_flip($_POST[
'mlv_visible_to']);
185 if ( !isset($aData[-1]) ) {
186 foreach ($aData
as $iMemLevel => $dummy) {
187 $aVisibleTo[$iMemLevel] = 1;
191 if (
empty($aVisibleTo) && !isset($aData[-1])) $aVisibleTo[] = 0;
192 $this->_oDb->setPageBlockVisibility($iID, $aVisibleTo);
199 $sRule = trim($sRule);
200 if (
empty($sRule))
return '';
202 $sBaseURL = basename(CH_WSB_URL_ROOT);
204 if (strpos($sRule, CH_WSB_URL_ROOT) === 0) $sRule = substr($sRule, strlen(CH_WSB_URL_ROOT));
205 elseif (strpos($sRule, $sBaseURL) === 0) $sRule = substr($sRule, strlen($sBaseURL)+1);
207 if (strpos($sBaseURL,
'www.') === 0) {
208 $sBaseURL = substr($sBaseURL, 4);
209 if (strpos($sRule, $sBaseURL) === 0) $sRule = substr($sRule, strlen($sBaseURL)+1);
214 $sRule = addcslashes($sRule,
'|\\{}[]()#:^$.?+*');
215 if (!
empty($sRule)) $sRule .=
'.*';
228 if(!defined(
'CH_WSB_ROLE_MEMBER'))
229 define(
'CH_WSB_ROLE_MEMBER', 1);
230 if(!defined(
'CH_WSB_ROLE_ADMIN'))
231 define(
'CH_WSB_ROLE_ADMIN', 2);
241 $iMemLevel = intval($aMembership[
'ID']);
243 $aMenuCache = $this->_oDb->getAllMenuItems(
$sType);
246 foreach ($aItems
as $sSection => $aSubItems) {
247 if (!is_array($aSubItems))
continue;
248 foreach ($aSubItems
as $iItem => $aItem) {
249 $iRealID = $aSubItems[$iItem][
'menu_id'];
250 if (!
empty($aMenuCache[$iRealID][
'MemLevels']) && !$aMenuCache[$iRealID][
'MemLevels'][$iMemLevel]) unset($aItems[$sSection][$iItem]);
252 $aItems[$sSection] = array_values($aItems[$sSection]);
255 foreach ($aItems
as $iItem => $aItem) {
256 if (!
empty($aMenuCache[$iItem][
'MemLevels']) && !$aMenuCache[$iItem][
'MemLevels'][$iMemLevel]) unset($aItems[$iItem]);
267 $iMemLevel = $aMembership[
'ID'];
269 $aPageBlocksCache = $this->_oDb->getAllPageBlocks();
271 foreach ($oChWsbPageView->aPage[
'Columns']
as $iColumn => $aColumn) {
272 foreach ($aColumn[
'Blocks']
as $iBlockID => $aBlock) {
273 if (!
empty($aPageBlocksCache[$iBlockID]) && !$aPageBlocksCache[$iBlockID][
'MemLevels'][$iMemLevel]) unset($oChWsbPageView->aPage[
'Columns'][$iColumn][
'Blocks'][$iBlockID]);
282 $iMemLevel = $aMemLevel[
'ID'];
285 $aRules = $this->_oDb->getAllRules();
286 foreach ($aRules
as $aRule) {
287 if ($aRule[
'MemLevels'][$iMemLevel] && @preg_match(
'#'.$aRule[
'Rule'].
'#i', $sURL))
297 $_COOKIE[
'memberID'] =
ch_get(
'oid');
298 $_COOKIE[
'memberPassword'] =
ch_get(
'pwd');
305 $_page[
'name_index'] = -1;
306 $_page[
'header'] =
_t(
"_ch_pageac_access_denied");