1
0
mirror of https://github.com/e107inc/e107.git synced 2025-09-01 10:23:53 +02:00

e_menu.php introduced to replace legacy menu configuration file (config.php). See banner plugin for an example.

This commit is contained in:
Cameron
2016-01-12 15:44:54 -08:00
parent 5a6153db27
commit d0fccd540f
12 changed files with 277 additions and 155 deletions

View File

@@ -216,7 +216,7 @@ class e_menuManager {
}
$file = urldecode($_GET['path']).".php";
$newurl = e_PLUGIN_ABS.$file."?id=".$_GET['id'];
$newurl = e_PLUGIN_ABS.$file."?id=".$_GET['id'].'&iframe=1';
/*
@@ -365,10 +365,12 @@ class e_menuManager {
$efile = new e_file;
$efile->dirFilter = array('/', 'CVS', '.svn', 'languages');
$efile->fileFilter[] = '^e_menu\.php$';
$fileList = $efile->get_files(e_PLUGIN,"_menu\.php$",'standard',2);
$this->menuAddMessage('Scanning for new menus', E_MESSAGE_DEBUG);
$menuList = array(); // existing menus in table.
if($result = $sql->retrieve('menus', 'menu_name', null, true))
{
@@ -538,20 +540,55 @@ class e_menuManager {
return;
};
$row = $sql->fetch();
// TODO lan
$text = "<div style='text-align:center;'>
<form id='e-save-form' method='post' action='".e_SELF."?lay=".$this->curLayout."'>
<fieldset id='core-menus-parametersform'>
<legend>Menu parameters ".$row['menu_name']."</legend>
<table class='table adminform'>
<tr>
<td>
Parameters (query string format):
".$frm->text('menu_parms', $row['menu_parms'], 900, 'class=e-save span7')."
</td>
</tr>
</table>";
<legend>".MENLAN_44." ".$row['menu_name']."</legend>
<table class='table '>
<colgroup>
<col class='col-label' />
<col class='col-control' />
</colgroup>
";
if(file_exists(e_PLUGIN.$row['menu_path']."e_menu.php")) // v2.x new e_menu.php
{
$plug = rtrim($row['menu_path'],'/');
$obj = e107::getAddon($plug,'e_menu');
$fields = e107::callMethod($obj,'config');
if(!$form = e107::getAddon($plug,'e_menu',$plug."_menu_form"))
{
$form = $frm;
}
$value = e107::unserialize($row['menu_parms']);
foreach($fields as $k=>$v)
{
$text .= "<tr><td class='text-left'>".$v['title']."</td>";
$v['writeParms']['class'] = 'e-save';
$text .= "<td class='text-left'>".$form->renderElement($k, $value[$k], $v)."</td></tr>";
}
}
else
{
$text .= "<tr>
<td>
".MENLAN_45."</td>
<td>
".$frm->text('menu_parms', $row['menu_parms'], 900, 'class=e-save&size=xxlarge')."
</td>
</tr>";
}
$text .= "</table>";
/*
$text .= "
@@ -784,11 +821,27 @@ class e_menuManager {
function menuSaveParameters()
{
$sql = e107::getDb();
$parms = $sql->escape(strip_tags($_POST['menu_parms']));
$check = $sql->db_Update("menus", "menu_parms='".$parms."' WHERE menu_id=".intval($_POST['menu_id'])."");
$id = intval($_POST['menu_id']);
if(isset($_POST['menu_parms']))
{
$parms = $sql->escape(strip_tags($_POST['menu_parms']));
}
else
{
unset($_POST['menu_id'], $_POST['mode'], $_POST['menuActivate'], $_POST['menuSetCustomPages']);
$parms = $sql->escape(e107::serialize($_POST));
if(e_DEBUG == true)
{
// return array('msg'=>print_r($_POST,true),'error'=>true);
}
}
$check = $sql->update("menus", "menu_parms='".$parms."' WHERE menu_id=".$id."");
if($check)
{
return array('msg'=>'All Okay','error'=>false);
@@ -812,7 +865,7 @@ class e_menuManager {
function menuSaveVisibility() // Used by Ajax
{
global $admin_log;
$sql = e107::getDb();
$pagelist = explode("\r\n", $_POST['pagelist']);
@@ -825,7 +878,7 @@ class e_menuManager {
$pageparms = preg_replace("#\|$#", "", $pageparms);
$pageparms = (trim($_POST['pagelist']) == '') ? '' : $pageparms;
if($sql->db_Update("menus", "menu_class='".intval($_POST['menu_class'])."', menu_pages='{$pageparms}' WHERE menu_id=".intval($_POST['menu_id'])))
if($sql->update("menus", "menu_class='".intval($_POST['menu_class'])."', menu_pages='{$pageparms}' WHERE menu_id=".intval($_POST['menu_id'])))
{
e107::getLog()->add('MENU_02',$_POST['menu_class'].'[!br!]'.$pageparms.'[!br!]'.$this->menuId,E_LOG_INFORMATIVE,'');
@@ -1502,7 +1555,7 @@ class e_menuManager {
if($conf)
{
$text .= '<a class="menu-btn" target="_top" href="'.e_SELF.'?lay='.$this->curLayout.'&amp;mode=conf&amp;path='.urlencode($conf).'&amp;id='.$menu_id.'"
$text .= '<a data-modal-caption="Configure Menu" class="e-modal-menumanager menu-btn" target="_top" href="'.e_SELF.'?lay='.$this->curLayout.'&amp;mode=conf&amp;path='.urlencode($conf).'&amp;id='.$menu_id.'&iframe=1"
title="Configure menu"><i class="S16 e-configure-16"></i></a>';
}
@@ -1573,8 +1626,11 @@ class e_menuManager {
if($mode == 'parms')
{
$ret = $this->menuSaveParameters();
// echo json_encode($ret);
$ret = $this->menuSaveParameters();
if(!empty($ret['error']))
{
echo json_encode($ret);
}
return;
}