Go to the documentation of this file.
11 require_once(
'../inc/header.inc.php' );
12 require_once( CH_DIRECTORY_PATH_INC .
'profiles.inc.php' );
13 require_once( CH_DIRECTORY_PATH_INC .
'design.inc.php' );
14 require_once( CH_DIRECTORY_PATH_INC .
'admin_design.inc.php' );
15 require_once( CH_DIRECTORY_PATH_INC .
'utils.inc.php' );
16 require_once( CH_DIRECTORY_PATH_INC .
'languages.inc.php' );
21 if(
ch_get(
'action') !==
false) {
27 $aItem =
db_assoc_arr(
"SELECT * FROM `sys_menu_admin` WHERE `id` = '{$id}'", 0 );
34 $aItem =
db_assoc_arr(
"SELECT * FROM `sys_menu_admin` WHERE `id` = '{$id}' AND `parent_id`='0'", 0 );
45 case 'deactivate_item':
49 $res =
db_res(
"DELETE FROM `sys_menu_admin` WHERE `id`='{$id}' AND `parent_id`='0'" );
55 $id = (int)$_POST[
'id'];
57 $aResult = array(
'code' => 1,
'message' =>
_t(
'_Error occured'));
60 $aItemFields = array(
'title',
'url',
'description',
'check',
'icon' );
62 foreach( $aItemFields
as $field )
63 $aItem[$field] = $_POST[$field];
66 $aItemFields = array(
'title',
'icon',
'icon_large' );
68 foreach( $aItemFields
as $field )
69 $aItem[$field] = $_POST[$field];
78 $id = (int)$_POST[
'id'];
80 echo
_t(
'_adm_mbuilder_Item_ID_not_specified');
87 $res =
db_res(
"DELETE FROM `sys_menu_admin` WHERE `id` = '{$id}' AND `parent_id`='0'" );
89 $res =
db_res(
"DELETE FROM `sys_menu_admin` WHERE `id` = '{$id}'" );
95 echo
_t(
'_adm_mbuilder_Could_not_delete_the_item');
104 $sTopQuery =
"SELECT `id`, `title` FROM `sys_menu_admin` WHERE `parent_id`='0' ORDER BY `order`";
107 $sAllTopQuery =
"SELECT * FROM (SELECT `id` + 1000 AS `id`, `title` FROM `sys_menu_admin` WHERE `parent_id`='0' UNION SELECT `id`, `title` FROM `sys_menu_admin`) AS `t`";
111 <script type=\"text/javascript\">
112 topParentID = 'menu_app_wrapper';
113 parserUrl = '" .
$GLOBALS[
'site'][
'url_admin'] .
"menu_compose_admin.php?';
116 allowAddToTop = true;
117 allowAddToCustom = true;
119 sendSystemOrder = false;
122 aCoords['startX'] = 6;
123 aCoords['startY'] = 24;
124 aCoords['width'] = 117;
125 aCoords['height'] = 28;
126 aCoords['diffX'] = 122;
127 aCoords['diffY'] = 32;
136 while(($aTopItem =
$rTopItems->fetch()) !==
false) {
140 aTopItems[$iIndex] = [" . ($aTopItem[
'id'] + 1000) .
", '{$sTopestTitle}', 3];
141 aCustomItems[$iIndex] = {};";
142 $sQuery =
"SELECT `id`, `title` FROM `sys_menu_admin` WHERE `parent_id`='{$aTopItem['id']}' ORDER BY `order`";
145 $rCustomItems =
db_res( $sQuery );
146 while(($aCustomItem = $rCustomItems->fetch()) !==
false) {
149 aCustomItems[$iIndex][" . ($iSubIndex++) .
"] = [{$aCustomItem['id']}, '{$sCustomTitle}', 3];";
165 aAllItems['{$iId} '] = '{$sTopTitle}';";
175 'css_name' => array(
'menu_compose.css',
'forms_adv.css'),
176 'js_name' => array(
'menu_compose.js',
'ChWsbMenu.js'),
177 'header' =>
_t(
'_adm_ambuilder_title')
192 'form_attrs' => array(
193 'id' =>
'formItemEdit',
194 'name' =>
'formItemEdit',
195 'action' =>
$GLOBALS[
'site'][
'url_admin'] .
'menu_compose_admin.php',
197 'enctype' =>
'multipart/form-data',
203 'caption' =>
_t(
'_Title'),
204 'value' => $aItem[
'title'],
210 'caption' =>
_t(
'_URL'),
211 'value' => $aItem[
'url'],
217 'caption' =>
_t(
'_adm_ambuilder_Check'),
221 'Description' => array(
223 'name' =>
'description',
224 'caption' =>
_t(
'_Description'),
231 'caption' =>
_t(
'_adm_ambuilder_Icon'),
236 'type' =>
'input_set',
240 'value' =>
_t(
'_Save Changes'),
242 'onclick' =>
'javascript:saveItem(' . $aItem[
'id'] .
');'
248 'value' =>
_t(
'_Delete'),
250 'onclick' =>
'javascript:deleteItem(' . $aItem[
'id'] .
');'
258 return PopupBox(
'amc_edit_popup_custom',
_t(
'_adm_mbuilder_edit_item'),
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'design_box_content.html', array(
'content' =>
$oForm->getCode() .
LoadingBox(
'formItemEditLoading'))));
264 'form_attrs' => array(
265 'id' =>
'formItemEdit',
266 'name' =>
'formItemEdit',
267 'action' =>
$GLOBALS[
'site'][
'url_admin'] .
'menu_compose_admin.php',
269 'enctype' =>
'multipart/form-data',
275 'caption' =>
_t(
'_Title'),
276 'value' => $aItem[
'title'],
282 'caption' =>
_t(
'_adm_ambuilder_Small_Icon'),
286 'SmallIcon' => array(
288 'name' =>
'icon_large',
289 'caption' =>
_t(
'_adm_ambuilder_Big_Icon'),
294 'type' =>
'input_set',
298 'value' =>
_t(
'_Save Changes'),
300 'onclick' =>
'javascript:saveItem(' . ($aItem[
'id'] + 1000) .
');'
306 'value' =>
_t(
'_Delete'),
308 'onclick' =>
'javascript:deleteItem(' . ($aItem[
'id'] + 1000) .
');'
316 return PopupBox(
'amc_edit_popup_top',
_t(
'_adm_mbuilder_edit_item'),
$GLOBALS[
'oAdmTemplate']->parseHtmlByName(
'design_box_content.html', array(
'content' =>
$oForm->getCode() .
LoadingBox(
'formItemEditLoading'))));
322 if( $type ==
'top' and $source > 1000 ) {
323 $source = $source - 1000;
326 INSERT INTO `sys_menu_admin`
327 (`title`, `icon`, `icon_large`)
329 `title`, `icon`, `icon_large`
330 FROM `sys_menu_admin`
331 WHERE `id` = '{$source}'
334 } elseif( $type ==
'custom' and $source < 1000 ) {
335 $aItem =
db_res(
"SELECT * FROM `sys_menu_admin` WHERE `id` = '{$source}'" );
337 if( $aItem[
'parent_id'] == 0 )
341 INSERT INTO `sys_menu_admin`
342 (`title`, `url`, `description`, `check`, `icon`)
344 `title`, `url`, `description`, `check`, `icon`
345 FROM `sys_menu_admin`
346 WHERE `id` = '{$source}'
350 } elseif( $type ==
'custom' and $source > 1000 ) {
351 $source = $source - 1000;
354 INSERT INTO `sys_menu_admin`
358 FROM `sys_menu_admin`
359 WHERE `id` = '{$source}'
362 } elseif( $type ==
'top' and $source < 1000 ) {
364 INSERT INTO `sys_menu_admin`
368 FROM `sys_menu_admin`
369 WHERE `id` = '{$source}'
374 db_res(
"INSERT INTO `sys_menu_admin` SET `title` = 'NEW ITEM'" );
383 <div onclick=
"hideEditForm();" style=
"color:{$color};text-align:center;">{$text}</div>
389 $sSavedC =
_t(
'_Saved');
391 $aOldItem =
db_arr(
"SELECT * FROM `sys_menu_admin` WHERE `id`='{$id}'" );
394 return array(
'code' => 2,
'message' =>
_t(
'_Error') .
' ' .
_t(
'_adm_mbuilder_Item_not_found'));
397 foreach( $aItem
as $field => $value )
400 $sQuerySet = substr( $sQuerySet, 1 );
402 $sQuery =
"UPDATE `sys_menu_admin` SET {$sQuerySet} WHERE `id` = '{$id}'";
405 return array(
'code' => 0,
'message' => $sSavedC,
'timer' => 3);
410 db_res(
"UPDATE `sys_menu_admin` SET `order` = 0, `parent_id` = 0" );
412 $sTop = trim( $sTop,
' ,' );
413 $aTopIDs = explode(
',', $sTop );
414 foreach( $aTopIDs
as $iOrd => $iID ) {
415 $iID = trim( $iID,
' ,' );
423 db_res(
"UPDATE `sys_menu_admin` SET `order` = {$iOrd} WHERE `id` = '{$iID}'" );
426 foreach( $aCustom
as $iParent => $sCustom ) {
427 $iParent = (int)$iParent;
428 $iParent = $iParent - 1000;
430 $sCustom = trim( $sCustom,
' ,' );
431 $aCustomIDs = explode(
',', $sCustom );
433 foreach( $aCustomIDs
as $iOrd => $iID ) {
434 $iID = trim( $iID,
' ,' );
443 db_res(
"UPDATE `sys_menu_admin` SET `order` = '{$iOrd}', `parent_id`='{$iParent}' WHERE `id` = '{$iID}'" );
process_db_input($sText, $iStripTags=0)
db_assoc_arr($query, $bindings=[])
MsgBox($sText, $iTimer=0)
ch_js_string($mixedInput, $iQuoteType=CH_ESCAPE_STR_AUTO)
DesignBoxAdmin($sTitle, $sContent, $mixedTopItems='', $sBottomItems='', $iIndex=1)
db_arr($query, $bindings=[])
htmlspecialchars_adv($string)
PageCodeAdmin($oTemplate=null)
_t($key, $arg0="", $arg1="", $arg2="")
member_auth($member=0, $error_handle=true, $bAjx=false)
db_affected_rows($oStmt=null)
const CH_ESCAPE_STR_APOS
escape apostrophes only, for js strings enclosed in apostrophes, for use in
db_res($query, $bindings=[])
PopupBox($sName, $sTitle, $sContent, $aActions=array())