Cheetah
ChPageACTemplate.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChWsbModuleTemplate');
9 ch_import('ChTemplFormView');
10 
12 {
16  function __construct(&$oConfig, &$oDb)
17  {
18  parent::__construct($oConfig, $oDb);
19  }
20 
21  function getTabs()
22  {
23  $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'action_get_page_';
24 
25  $this->addAdminCss(array('tabs.css', 'admin.css', 'forms_adv.css'));
26  $this->addAdminJs(array('jquery.ui.core.min.js', 'jquery.ui.widget.min.js', 'jquery.ui.tabs.min.js', 'main.js'));
27 
28  $aTabs = array(
29  'ch_repeat:page_tabs' => array(
30  array(
31  'page_url' => $sBaseUrl.'rules',
32  'page_name' => _t('_ch_pageac_rules_page')
33  ),
34  array(
35  'page_url' => $sBaseUrl.'top_menu',
36  'page_name' => _t('_ch_pageac_topmenu_page')
37  ),
38  array(
39  'page_url' => $sBaseUrl.'member_menu',
40  'page_name' => _t('_ch_pageac_membermenu_page')
41  ),
42  array(
43  'page_url' => $sBaseUrl.'page_blocks',
44  'page_name' => _t('_ch_pageac_page_blocks_page')
45  )
46  ),
47  'base_url' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri()
48  );
49  return $this->parseHtmlByName('tabs.html', $aTabs);
50  }
51 
52  function displayRulesList($aRules)
53  {
54  $aResult['ch_if:rules_not_exist'] = array(
55  'condition' => count($aRules) == 0,
56  'content' => array(
57  'no_rules' => MsgBox(_t('_ch_pageac_no_rules_admin'))
58  )
59  );
60 
61  $aResult['ch_if:rules_exist'] = array(
62  'condition' => count($aRules) > 0,
63  'content' => array()
64  );
65 
66  $aRulesList = array();
67  if (count($aRules) > 0)
68  foreach ($aRules as $aRule) {
69  $aForbiddenGroups = array();
70  foreach ($this->_oConfig->_aMemberships as $iMemLevelID => $sMemLevelName) {
71  $aForbiddenGroups[] = array(
72  'checked' => $aRule['MemLevels'][$iMemLevelID] ? 'checked="checked"' : '',
73  'rule_id' => $aRule['ID'],
74  'memlevel_id' => $iMemLevelID,
75  'memlevel_name' => $sMemLevelName
76  );
77  }
78 
79  $aRulesList[] = array(
80  'rule_id' => $aRule['ID'],
81  'rule_text' => htmlentities($aRule['Rule']),
82  'ch_repeat:forbidden_groups' => $aForbiddenGroups
83  );
84  }
85 
86  $aResult['ch_if:rules_exist']['content']['ch_repeat:rules'] = $aRulesList;
87 
88  return $this->parseHtmlByName('rules_list.html', $aResult);
89  }
90 
91  function displayNewRuleForm()
92  {
93  $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri();
94 
95  $this->_aNewRuleForm = array(
96  'form_attrs' => array(
97  'id' => 'new_rule_form',
98  'name' => 'new_rule_form',
99  'action' => $sBaseUrl . 'action_new_rule/',
100  'method' => 'post',
101  'onsubmit' => 'oChPageACMain.addNewRule(this); return false;'
102  ),
103  'inputs' => array (
104  'rule_text' => array(
105  'type' => 'text',
106  'name' => 'rule',
107  'caption' => _t('_ch_pageac_page_url'),
108  'info' => _t('_ch_pageac_page_url_descr'),
109  ),
110  'rule_advanced' => array(
111  'type' => 'checkbox',
112  'name' => 'advanced',
113  'caption' => _t('_ch_pageac_advanced'),
114  'info' => _t('_ch_pageac_advanced_descr'),
115  ),
116  'rule_access' => array(
117  'type' => 'checkbox_set',
118  'name' => 'memlevels',
119  'caption' => _t('_ch_pageac_forbidden_groups'),
120  'value' => array_keys($this->_oConfig->_aMemberships),
121  'values' => $this->_oConfig->_aMemberships
122  ),
123  'rule_submit' => array(
124  'type' => 'submit',
125  'name' => 'add_rule',
126  'value' => _t('_ch_pageac_add_rule')
127  )
128  )
129  );
130 
131  $oForm = new ChTemplFormView($this->_aNewRuleForm);
132  return $oForm->getCode();
133  }
134 
135  function displayTopMenuCompose($aTopMenuArray)
136  {
137  $aTopItems = array();
138  foreach ($aTopMenuArray['TopItems'] as $iItemID => $sItemName) {
139  $aCustomItems = array();
140  foreach ($aTopMenuArray['CustomItems'][$iItemID] as $iCustomItemID => $sCustomItemName) {
141  $aCustomItems[] = array(
142  'custom_item_id' => $iCustomItemID,
143  'custom_item_caption' => $sCustomItemName
144  );
145  }
146  $aTopItems[] = array(
147  'item_id' => $iItemID,
148  'item_caption' => $sItemName,
149  'ch_repeat:custom_items' => $aCustomItems
150  );
151  }
152 
153  $aSystemItems = array();
154  foreach ($aTopMenuArray['SystemItems'] as $iItemID => $sItemName) {
155  $aCustomItems = array();
156  foreach ($aTopMenuArray['CustomItems'][$iItemID] as $iCustomItemID => $sCustomItemName) {
157  $aCustomItems[] = array(
158  'custom_item_id' => $iCustomItemID,
159  'custom_item_caption' => $sCustomItemName
160  );
161  }
162  $aSystemItems[] = array(
163  'item_id' => $iItemID,
164  'item_caption' => $sItemName,
165  'ch_repeat:custom_items' => $aCustomItems
166  );
167  }
168 
169  $aResult = array(
170  'parser_url' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri().'action_top_menu/',
171  'ch_repeat:top_items' => $aTopItems,
172  'ch_repeat:system_items' => $aSystemItems,
173  );
174 
175  return $this->parseHtmlByName('top_menu_table.html', $aResult);
176  }
177  function displayMemberMenuCompose($aItemsArray)
178  {
179  $aItems = array();
180  foreach ($aItemsArray as $iItemID => $sItemName) {
181  $aItems[] = array(
182  'item_id' => $iItemID,
183  'item_caption' => $sItemName
184  );
185  }
186 
187  $aResult = array(
188  'parser_url' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri().'action_member_menu/',
189  'ch_repeat:top_items' => $aItems,
190  );
191 
192  return $this->parseHtmlByName('member_menu_table.html', $aResult);
193  }
194  function getMenuItemEditForm($sMenuType, $iMenuItem, $aMenuItemVisibility)
195  {
196  $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri();
197 
198  $aMemLevelValues = array();
199  $aMemLevelCheckedValues = array();
200  $aMemLevelValues[-1] = _t('_ch_pageac_visible_for_all');
201  if (empty($aMenuItemVisibility)) $aMemLevelCheckedValues[] = -1;
202  foreach ($this->_oConfig->_aMemberships as $iID => $sName) {
203  if ($iID == 1) continue;
204  $aMemLevelValues[$iID] = $sName;
205  if ($aMenuItemVisibility[$iID] || empty($aMenuItemVisibility)) $aMemLevelCheckedValues[] = $iID;
206  }
207 
208  $aMenuItemEditForm = array(
209  'form_attrs' => array(
210  'id' => 'item_edit',
211  'name' => 'item_edit',
212  'action' => $sBaseUrl . 'action_'.$sMenuType.'_menu/save/'.$iMenuItem,
213  'method' => 'post',
214  'onsubmit' => 'oChPageACMain.saveItem(this); return false;'
215  ),
216  'inputs' => array (
217  'mlv_visible_to' => array(
218  'type' => 'checkbox_set',
219  'caption' => _t('_ch_pageac_visible_for'),
220  'name' => 'mlv_visible_to',
221  'value' => $aMemLevelCheckedValues,
222  'values' => $aMemLevelValues
223  ),
224  'submit' => array(
225  'type' => 'submit',
226  'name' => 'add_rule',
227  'value' => _t('_Save Changes')
228  )
229  )
230  );
231 
232  $oForm = new ChTemplFormView($aMenuItemEditForm);
233  return $oForm->getCode();
234  }
235  function getPageBlockEditForm($iMenuItem, $aMenuItemVisibility)
236  {
237  $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri();
238 
239  $aMemLevelValues = array();
240  $aMemLevelCheckedValues = array();
241  $aMemLevelValues[-1] = _t('_ch_pageac_visible_for_all');
242  if (empty($aMenuItemVisibility)) $aMemLevelCheckedValues[] = -1;
243  foreach ($this->_oConfig->_aMemberships as $iID => $sName) {
244  if ($iID == 1) continue;
245  $aMemLevelValues[$iID] = $sName;
246  if ($aMenuItemVisibility[$iID] || empty($aMenuItemVisibility)) $aMemLevelCheckedValues[] = $iID;
247  }
248 
249  $aMenuItemEditForm = array(
250  'form_attrs' => array(
251  'id' => 'item_edit',
252  'name' => 'item_edit',
253  'action' => $sBaseUrl . 'action_page_block/save/'.$iMenuItem,
254  'method' => 'post',
255  'onsubmit' => 'oChPageACMain.saveItem(this); return false;'
256  ),
257  'inputs' => array (
258  'mlv_visible_to' => array(
259  'type' => 'checkbox_set',
260  'caption' => _t('_ch_pageac_visible_for'),
261  'name' => 'mlv_visible_to',
262  'value' => $aMemLevelCheckedValues,
263  'values' => $aMemLevelValues
264  ),
265  'submit' => array(
266  'type' => 'submit',
267  'name' => 'add_rule',
268  'value' => _t('_Save Changes')
269  )
270  )
271  );
272 
273  $oForm = new ChTemplFormView($aMenuItemEditForm);
274  return $oForm->getCode();
275  }
276 
278  {
279  $aPagesTempl = array();
280  foreach ($aPages as $aPage) {
281  $sTitle = htmlspecialchars( $aPage['Title'] ? $aPage['Title'] : $aPage['Name'] );
282  $aPagesTempl[] = array(
283  'page_name' => htmlspecialchars_adv($aPage['Name']),
284  'page_caption' => $sTitle,
285  );
286  }
287 
288  $aResult = array(
289  'update_url' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri().'action_get_page_page_blocks/',
290  'ch_repeat:pages' => $aPagesTempl
291  );
292  return $this->parseHtmlByName('page_builder_main.html', $aResult);
293  }
294  function _getPageBlocks($aColumns)
295  {
296  $sParseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri().'action_page_block/edit/';
297 
298  $aResult = array(
299  'ch_repeat:pages' => $aPagesTempl
300  );
301 
302  foreach ($aColumns as $iColumn => $aBlocks) {
303  $aBlocksTmpl = array();
304  foreach ($aBlocks as $aBlock) {
305  $aBlocksTmpl[] = array(
306  'block_caption' => _t( $aBlock['Caption'] ),
307  'edit_block_url' => $sParseUrl.$aBlock['ID']
308  );
309  }
310  $aResult['ch_repeat:columns'][] = array(
311  'column' => $iColumn,
312  'ch_repeat:blocks' => $aBlocksTmpl
313  );
314  }
315 
316  return $this->parseHtmlByName('page_builder_blocks.html', $aResult);
317  }
318 }
ChTemplFormView
Definition: ChTemplFormView.php:11
ChPageACTemplate\_getAvailablePages
_getAvailablePages($aPages)
Definition: ChPageACTemplate.php:277
MsgBox
MsgBox($sText, $iTimer=0)
Definition: design.inc.php:175
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
$aResult
$aResult
Definition: index.php:19
ChWsbModuleTemplate\addAdminCss
addAdminCss($mixedFiles, $bDynamic=false)
Definition: ChWsbModuleTemplate.php:33
php
ChPageACTemplate\displayRulesList
displayRulesList($aRules)
Definition: ChPageACTemplate.php:52
ChPageACTemplate\_getPageBlocks
_getPageBlocks($aColumns)
Definition: ChPageACTemplate.php:294
$aPages
if(isset($_GET['popup'])) switch(true) $aPages
Definition: antispam.php:314
ChPageACTemplate
Definition: ChPageACTemplate.php:12
ChPageACTemplate\getMenuItemEditForm
getMenuItemEditForm($sMenuType, $iMenuItem, $aMenuItemVisibility)
Definition: ChPageACTemplate.php:194
ChWsbModuleTemplate\addAdminJs
addAdminJs($mixedFiles, $bDynamic=false)
Definition: ChWsbModuleTemplate.php:43
$oForm
$oForm
Definition: host_tools.php:42
ChPageACTemplate\getTabs
getTabs()
Definition: ChPageACTemplate.php:21
$aTopItems
$aTopItems
Definition: antispam.php:366
$sTitle
$sTitle
Definition: actions.inc.php:13
htmlspecialchars_adv
htmlspecialchars_adv($string)
Definition: utils.inc.php:302
$oDb
global $oDb
Definition: db.inc.php:39
ChPageACTemplate\displayNewRuleForm
displayNewRuleForm()
Definition: ChPageACTemplate.php:91
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
ChPageACTemplate\displayMemberMenuCompose
displayMemberMenuCompose($aItemsArray)
Definition: ChPageACTemplate.php:177
ChWsbModuleTemplate
Definition: ChWsbModuleTemplate.php:11
ChPageACTemplate\__construct
__construct(&$oConfig, &$oDb)
Definition: ChPageACTemplate.php:16
ChPageACTemplate\getPageBlockEditForm
getPageBlockEditForm($iMenuItem, $aMenuItemVisibility)
Definition: ChPageACTemplate.php:235
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
$sName
$sName
Definition: ChWsbAdminTools.php:853
ChWsbTemplate\parseHtmlByName
parseHtmlByName($sName, $aVariables, $mixedKeyWrapperHtml=null, $sCheckIn=CH_WSB_TEMPLATE_CHECK_IN_BOTH)
Definition: ChWsbTemplate.php:660
ChPageACTemplate\displayTopMenuCompose
displayTopMenuCompose($aTopMenuArray)
Definition: ChPageACTemplate.php:135