Cheetah
ChPageACDb.php
Go to the documentation of this file.
1 <?php
2 
8 ch_import('ChWsbModuleDb');
9 
11 {
12  /*
13  * Constructor.
14  */
15  function __construct(&$oConfig)
16  {
17  parent::__construct($oConfig);
18 
19  $this->_oConfig = &$oConfig;
20  }
21 
22  function fromCache($sName, $sFunc)
23  {
24  $aArgs = func_get_args();
25  array_shift($aArgs); // shift $sName
26  array_shift($aArgs); // shift $sFunc
27  $sQuery = array_shift($aArgs);
28  $sExtra = array_shift($aArgs);
29 
30  $sName = 'sys_modules_'.$this->_oConfig->getUri().'_'.$sName;
31  $sHash = md5($sName.$GLOBALS['site']['ver'] . $GLOBALS['site']['build'] . $GLOBALS['site']['url']);
32  return parent::fromCache($sName.'_'.$sHash, $sFunc, $sQuery, $sExtra);
33  }
34 
35  function cleanCache($sName)
36  {
37  $sName = 'sys_modules_'.$this->_oConfig->getUri().'_'.$sName;
38  $sHash = md5($sName.$GLOBALS['site']['ver'] . $GLOBALS['site']['build'] . $GLOBALS['site']['url']);
39  return parent::cleanCache($sName.'_'.$sHash);
40  }
41  function getAllRules()
42  {
43  $aRules = $this->fromCache('rules', 'getAll', "SELECT * FROM `{$this->_sPrefix}rules` ORDER BY `ID`");
44  if (!empty($aRules))
45  foreach ($aRules as $iID => $aRule)
46  $aRules[$iID]['MemLevels'] = empty($aRules[$iID]['MemLevels']) ? array() : unserialize($aRules[$iID]['MemLevels']);
47  return $aRules;
48  }
49  function addRule($sRule, $aMemLevels)
50  {
51  $this->query("INSERT INTO `{$this->_sPrefix}rules` SET `Rule` = '".process_db_input($sRule)."', `MemLevels` = '".serialize($aMemLevels)."'");
52  $this->cleanCache('rules');
53  }
54  function deleteRule($iID)
55  {
56  $this->query("DELETE FROM `{$this->_sPrefix}rules` WHERE `ID` = {$iID} LIMIT 1");
57  $this->cleanCache('rules');
58  }
59  function updateRule($iID, $sRule, $aMemLevels)
60  {
61  $this->query("UPDATE `{$this->_sPrefix}rules` SET `Rule` = '".process_db_input($sRule)."', `MemLevels` = '".serialize($aMemLevels)."' WHERE `ID` = {$iID} LIMIT 1");
62  $this->cleanCache('rules');
63  }
64  function getTopMenuArray()
65  {
66  $aTopItems = array();
67  $aCustomItems = array();
68  $aSystemItems = array();
69 
70  $rTopItems = $this->res("SELECT `ID`, `Name` FROM `sys_menu_top` WHERE `Active`=1 AND `Type`='top' ORDER BY `Order`");
71  while( $aTopItem = $rTopItems ->fetch() ) {
72  $aTopItems[$aTopItem['ID']] = $aTopItem['Name'];
73  $aCustomItems[$aTopItem['ID']] = array();
74 
75  $rCustomItems = $this->res("SELECT `ID`, `Name` FROM `sys_menu_top` WHERE `Active`=1 AND `Type`='custom' AND `Parent`={$aTopItem['ID']} ORDER BY `Order`");
76  while( $aCustomItem = $rCustomItems ->fetch() ) {
77  $aCustomItems[$aTopItem['ID']][$aCustomItem['ID']] = $aCustomItem['Name'];
78  }
79  }
80 
81  $rSysItems = $this->res("SELECT `ID`, `Name` FROM `sys_menu_top` WHERE `Active`=1 AND `Type`='system' ORDER BY `Order`");
82  while( $aSystemItem = $rSysItems ->fetch() ) {
83  $aSystemItems[$aSystemItem['ID']] = $aSystemItem['Name'];
84  $aCustomItems[$aSystemItem['ID']] = array();
85 
86  $rCustomItems = $this->res( "SELECT `ID`, `Name` FROM `sys_menu_top` WHERE `Active`=1 AND `Type`='custom' AND `Parent`={$aSystemItem['ID']} ORDER BY `Order`" );
87  while( $aCustomItem = $rCustomItems ->fetch() ) {
88  $aCustomItems[$aSystemItem['ID']][$aCustomItem['ID']] = $aCustomItem['Name'];
89  }
90  }
91  return array(
92  'TopItems' => $aTopItems,
93  'CustomItems' => $aCustomItems,
94  'SystemItems' => $aSystemItems,
95  );
96  }
97  function getMemberMenuArray()
98  {
99  $rTopItems = $this->res("SELECT `ID`, `Name` FROM `sys_menu_member` WHERE `Active`='1' AND `Type` <> 'linked_item' ORDER BY `Position`, `Order`");
100 
101  $aTopItems = array();
102  while( $aTopItem = $rTopItems ->fetch() ) {
103  $aTopItems[$aTopItem['ID']] = $aTopItem['Name'];
104  }
105  return $aTopItems;
106  }
107 
108  function getMenuItemVisibility($sType, $iMenuItemID)
109  {
110  $aRes = $this->getOne("SELECT `MemLevels` FROM `{$this->_sPrefix}{$sType}_menu_visibility` WHERE `MenuItemID` = {$iMenuItemID} LIMIT 1");
111  return $iRes !== false ? unserialize($aRes) : array();
112  }
113  function setMenuItemVisibility($sType, $iMenuItemID, $aVisibleTo)
114  {
115  if (empty($aVisibleTo)) $this->query("DELETE FROM `{$this->_sPrefix}{$sType}_menu_visibility` WHERE `MenuItemID` = {$iMenuItemID}");
116  else $this->query("REPLACE `{$this->_sPrefix}{$sType}_menu_visibility` SET `MemLevels` = '".serialize($aVisibleTo)."', `MenuItemID` = {$iMenuItemID}");
117  $this->cleanCache($sType.'_menu');
118  }
119  function getPageBlockVisibility($iID)
120  {
121  $aRes = $this->getOne("SELECT `MemLevels` FROM `{$this->_sPrefix}page_blocks_visibility` WHERE `PageBlockID` = {$iID} LIMIT 1");
122  return $iRes !== false ? unserialize($aRes) : array();
123  }
124  function setPageBlockVisibility($iID, $aMemLevels)
125  {
126  if (empty($aMemLevels)) $this->query("DELETE FROM `{$this->_sPrefix}page_blocks_visibility` WHERE `PageBlockID` = {$iID}");
127  else $this->query("REPLACE `{$this->_sPrefix}page_blocks_visibility` SET `MemLevels` = '".serialize($aMemLevels)."', `PageBlockID` = {$iID}");
128  $this->cleanCache('page_blocks');
129  }
130  function getAvailablePages()
131  {
132  return $this->getAll("SELECT `Name`, `Title` FROM `sys_page_compose_pages` ORDER BY `Order`");
133  }
134  function getPageBlocks($sPage)
135  {
136  $aColumns = array();
137  $sPage = process_db_input($sPage);
138  $rColumns = $this->res("SELECT DISTINCT `Column` FROM `sys_page_compose` WHERE `Page` = '{$sPage}' AND `Column` != 0 ORDER BY `Column`");
139  while( $aColumn = $rColumns ->fetch() ) {
140  $aColumns[$aColumn['Column']] = $this->getAll("SELECT `ID`, `Caption` FROM `sys_page_compose` WHERE `Page` = '{$sPage}' AND `Column` = {$aColumn['Column']} ORDER BY `Order`");
141  }
142  return $aColumns;
143  }
145  {
146  $aCache = $this->fromCache($sType.'_menu', 'getAllWithKey', "SELECT `MenuItemID`, `MemLevels` FROM `{$this->_sPrefix}{$sType}_menu_visibility`", 'MenuItemID');
147  if (!empty($aCache))
148  foreach ($aCache as $iID => $aItem)
149  $aCache[$iID]['MemLevels'] = empty($aCache[$iID]['MemLevels']) ? array() : unserialize($aCache[$iID]['MemLevels']);
150  return $aCache;
151  }
152  function getAllPageBlocks()
153  {
154  $aCache = $this->fromCache('page_blocks', 'getAllWithKey', "SELECT `PageBlockID`, `MemLevels` FROM `{$this->_sPrefix}page_blocks_visibility`", 'PageBlockID');
155  if (!empty($aCache))
156  foreach ($aCache as $iID => $aItem)
157  $aCache[$iID]['MemLevels'] = empty($aCache[$iID]['MemLevels']) ? array() : unserialize($aCache[$iID]['MemLevels']);
158  return $aCache;
159  }
160 }
ChPageACDb\__construct
__construct(&$oConfig)
Definition: ChPageACDb.php:15
process_db_input
process_db_input($sText, $iStripTags=0)
Definition: utils.inc.php:256
ChPageACDb\cleanCache
cleanCache($sName)
Definition: ChPageACDb.php:35
ChPageACDb\getAllRules
getAllRules()
Definition: ChPageACDb.php:41
ChPageACDb\setMenuItemVisibility
setMenuItemVisibility($sType, $iMenuItemID, $aVisibleTo)
Definition: ChPageACDb.php:113
$rTopItems
$rTopItems
Definition: bottom_menu_compose.php:112
ch_import
ch_import($sClassName, $aModule=array())
Definition: utils.inc.php:1218
ChPageACDb\getAllPageBlocks
getAllPageBlocks()
Definition: ChPageACDb.php:152
php
ChWsbModuleDb
Definition: ChWsbModuleDb.php:12
ChWsbDb\getAll
getAll($sQuery, $aBindings=[], $iFetchType=PDO::FETCH_ASSOC)
Definition: ChWsbDb.php:206
ChPageACDb\deleteRule
deleteRule($iID)
Definition: ChPageACDb.php:54
ChPageACDb\getAllMenuItems
getAllMenuItems($sType)
Definition: ChPageACDb.php:144
$aTopItems
$aTopItems
Definition: antispam.php:366
$sType
$sType
Definition: actions.inc.php:11
ChPageACDb
Definition: ChPageACDb.php:11
ChPageACDb\fromCache
fromCache($sName, $sFunc)
Definition: ChPageACDb.php:22
ChPageACDb\setPageBlockVisibility
setPageBlockVisibility($iID, $aMemLevels)
Definition: ChPageACDb.php:124
$rSysItems
$rSysItems
Definition: nav_menu_compose.php:120
ChWsbDb\query
query($sQuery, $aBindings=[])
Definition: ChWsbDb.php:386
ChPageACDb\updateRule
updateRule($iID, $sRule, $aMemLevels)
Definition: ChPageACDb.php:59
ChPageACDb\getPageBlockVisibility
getPageBlockVisibility($iID)
Definition: ChPageACDb.php:119
ChWsbDb\res
res($sQuery, $aBindings=[], $bReplaying=false)
Definition: ChWsbDb.php:150
ChWsbDb\getOne
getOne($sQuery, $aBindings=[], $iIndex=0)
Definition: ChWsbDb.php:263
ChPageACDb\getPageBlocks
getPageBlocks($sPage)
Definition: ChPageACDb.php:134
ChPageACDb\addRule
addRule($sRule, $aMemLevels)
Definition: ChPageACDb.php:49
ChPageACDb\getMemberMenuArray
getMemberMenuArray()
Definition: ChPageACDb.php:97
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
ChPageACDb\getAvailablePages
getAvailablePages()
Definition: ChPageACDb.php:130
ChPageACDb\getTopMenuArray
getTopMenuArray()
Definition: ChPageACDb.php:64
ChPageACDb\getMenuItemVisibility
getMenuItemVisibility($sType, $iMenuItemID)
Definition: ChPageACDb.php:108
$GLOBALS
$GLOBALS['iAdminPage']
Definition: advanced_settings.php:10