17 parent::__construct($oConfig);
19 $this->_oConfig = &$oConfig;
24 $aArgs = func_get_args();
27 $sQuery = array_shift($aArgs);
28 $sExtra = array_shift($aArgs);
30 $sName =
'sys_modules_'.$this->_oConfig->getUri().
'_'.
$sName;
32 return parent::fromCache(
$sName.
'_'.$sHash, $sFunc, $sQuery, $sExtra);
37 $sName =
'sys_modules_'.$this->_oConfig->getUri().
'_'.
$sName;
39 return parent::cleanCache(
$sName.
'_'.$sHash);
43 $aRules = $this->
fromCache(
'rules',
'getAll',
"SELECT * FROM `{$this->_sPrefix}rules` ORDER BY `ID`");
45 foreach ($aRules
as $iID => $aRule)
46 $aRules[$iID][
'MemLevels'] =
empty($aRules[$iID][
'MemLevels']) ? array() : unserialize($aRules[$iID][
'MemLevels']);
51 $this->
query(
"INSERT INTO `{$this->_sPrefix}rules` SET `Rule` = '".
process_db_input($sRule).
"', `MemLevels` = '".serialize($aMemLevels).
"'");
56 $this->
query(
"DELETE FROM `{$this->_sPrefix}rules` WHERE `ID` = {$iID} LIMIT 1");
61 $this->
query(
"UPDATE `{$this->_sPrefix}rules` SET `Rule` = '".
process_db_input($sRule).
"', `MemLevels` = '".serialize($aMemLevels).
"' WHERE `ID` = {$iID} LIMIT 1");
67 $aCustomItems = array();
68 $aSystemItems = array();
70 $rTopItems = $this->
res(
"SELECT `ID`, `Name` FROM `sys_menu_top` WHERE `Active`=1 AND `Type`='top' ORDER BY `Order`");
72 $aTopItems[$aTopItem[
'ID']] = $aTopItem[
'Name'];
73 $aCustomItems[$aTopItem[
'ID']] = array();
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'];
81 $rSysItems = $this->
res(
"SELECT `ID`, `Name` FROM `sys_menu_top` WHERE `Active`=1 AND `Type`='system' ORDER BY `Order`");
83 $aSystemItems[$aSystemItem[
'ID']] = $aSystemItem[
'Name'];
84 $aCustomItems[$aSystemItem[
'ID']] = array();
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'];
93 'CustomItems' => $aCustomItems,
94 'SystemItems' => $aSystemItems,
99 $rTopItems = $this->
res(
"SELECT `ID`, `Name` FROM `sys_menu_member` WHERE `Active`='1' AND `Type` <> 'linked_item' ORDER BY `Position`, `Order`");
103 $aTopItems[$aTopItem[
'ID']] = $aTopItem[
'Name'];
110 $aRes = $this->
getOne(
"SELECT `MemLevels` FROM `{$this->_sPrefix}{$sType}_menu_visibility` WHERE `MenuItemID` = {$iMenuItemID} LIMIT 1");
111 return $iRes !==
false ? unserialize($aRes) : array();
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}");
121 $aRes = $this->
getOne(
"SELECT `MemLevels` FROM `{$this->_sPrefix}page_blocks_visibility` WHERE `PageBlockID` = {$iID} LIMIT 1");
122 return $iRes !==
false ? unserialize($aRes) : array();
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}");
132 return $this->
getAll(
"SELECT `Name`, `Title` FROM `sys_page_compose_pages` ORDER BY `Order`");
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`");
146 $aCache = $this->
fromCache(
$sType.
'_menu',
'getAllWithKey',
"SELECT `MenuItemID`, `MemLevels` FROM `{$this->_sPrefix}{$sType}_menu_visibility`",
'MenuItemID');
148 foreach ($aCache
as $iID => $aItem)
149 $aCache[$iID][
'MemLevels'] =
empty($aCache[$iID][
'MemLevels']) ? array() : unserialize($aCache[$iID][
'MemLevels']);
154 $aCache = $this->
fromCache(
'page_blocks',
'getAllWithKey',
"SELECT `PageBlockID`, `MemLevels` FROM `{$this->_sPrefix}page_blocks_visibility`",
'PageBlockID');
156 foreach ($aCache
as $iID => $aItem)
157 $aCache[$iID][
'MemLevels'] =
empty($aCache[$iID][
'MemLevels']) ? array() : unserialize($aCache[$iID][
'MemLevels']);