123 lines
2.9 KiB
PHP
123 lines
2.9 KiB
PHP
<?php
|
|
/***************************************************************************
|
|
* For license information see doc/license.txt
|
|
*
|
|
* Unicode Reminder メモ
|
|
***************************************************************************/
|
|
|
|
class MenuEditor extends Menu
|
|
{
|
|
function GetTopMenu()
|
|
{
|
|
global $menuitem, $login;
|
|
|
|
$ids = $this->GetSelectedMenuIds();
|
|
|
|
$retval = array();
|
|
foreach ($menuitem[MNU_ROOT]['subitems'] AS $item)
|
|
{
|
|
$thisitem = $menuitem[$item];
|
|
$thisitem['selected'] = isset($ids[$item]);
|
|
$thisitem['href'] = 'menu.php?id=' . $item;
|
|
if ($thisitem['menustring'] == '')
|
|
$thisitem['menustring'] = t('(empty)', '', __FILE__, __LINE__);
|
|
$retval[] = $thisitem;
|
|
}
|
|
|
|
$thisitem = array();
|
|
$thisitem['menustring'] = t('New item', '', __FILE__, __LINE__);
|
|
$thisitem['href'] = 'menu.php?action=add&id=0';
|
|
$retval[] = $thisitem;
|
|
|
|
return $retval;
|
|
}
|
|
|
|
function GetSubMenu()
|
|
{
|
|
global $menuitem, $login;
|
|
|
|
$ids = $this->GetSelectedMenuIds();
|
|
$topmenu = array_pop($ids);
|
|
if (isset($menuitem[$topmenu]['parent']) && $menuitem[$topmenu]['parent'] != MNU_ROOT)
|
|
die('internal error MenuEditor::GetSelectedMenuIds');
|
|
|
|
$ids[$topmenu] = $topmenu;
|
|
|
|
$retval = array();
|
|
if ($topmenu != MNU_ROOT)
|
|
{
|
|
$this->pAppendSubMenu(1, $topmenu, $ids, $retval);
|
|
}
|
|
|
|
return $retval;
|
|
}
|
|
|
|
function pAppendSubMenu($sublevel, $menuid, $ids, &$items)
|
|
{
|
|
global $menuitem, $login;
|
|
|
|
if (isset($menuitem[$menuid]['subitems']))
|
|
{
|
|
foreach ($menuitem[$menuid]['subitems'] AS $item)
|
|
{
|
|
$thisitem = $menuitem[$item];
|
|
$thisitem['selected'] = isset($ids[$item]);
|
|
$thisitem['href'] = 'menu.php?id=' . $item;
|
|
if ($thisitem['menustring'] == '')
|
|
$thisitem['menustring'] = t('(empty)', '', __FILE__, __LINE__);
|
|
$items[] = $thisitem;
|
|
|
|
$this->pAppendSubMenu($sublevel+1, $item, $ids, $items);
|
|
}
|
|
}
|
|
|
|
$thisitem = array();
|
|
$thisitem['menustring'] = t('New item', '', __FILE__, __LINE__);
|
|
$thisitem['href'] = 'menu.php?action=add&id=' . $menuid;
|
|
$thisitem['sublevel'] = $sublevel;
|
|
$items[] = $thisitem;
|
|
}
|
|
|
|
function GetSelectedMenuIds()
|
|
{
|
|
global $menuitem;
|
|
|
|
$retval = array();
|
|
$retval[$this->nSelectedItem] = $this->nSelectedItem;
|
|
|
|
$nCurItem = $this->nSelectedItem;
|
|
|
|
while ($nCurItem != MNU_ROOT)
|
|
{
|
|
if (isset($menuitem[$nCurItem]['parent']))
|
|
{
|
|
$nCurItem = $menuitem[$nCurItem]['parent'];
|
|
$retval[$nCurItem] = $nCurItem;
|
|
}
|
|
else
|
|
$nCurItem = MNU_ROOT;
|
|
}
|
|
|
|
return $retval;
|
|
}
|
|
|
|
function reorg()
|
|
{
|
|
$nPosition = 1;
|
|
$nLastParent = -1;
|
|
$rs = sqlf("SELECT `id`, `parent` FROM `sys_menu` ORDER BY `parent` ASC, `position` ASC");
|
|
while ($r = sql_fetch_assoc($rs))
|
|
{
|
|
if ($nLastParent != $r['parent'])
|
|
{
|
|
$nPosition = 1;
|
|
$nLastParent = $r['parent'];
|
|
}
|
|
|
|
sqlf("UPDATE `sys_menu` SET `position`='&1' WHERE `id`='&2'", $nPosition, $r['id']);
|
|
$nPosition++;
|
|
}
|
|
sql_free_result($rs);
|
|
}
|
|
}
|
|
?>
|