1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-01 12:20:44 +02:00

The beginnings of Menu-Manager drag-n-drop. (in debug mode)

Debug can now be called from singleton. e107::getDebug()->log($message,E107_DBG_BASIC);
This commit is contained in:
Cameron
2016-04-10 14:10:39 -07:00
parent 2971fb184c
commit 12a6367fdf
7 changed files with 191 additions and 65 deletions

View File

@@ -16,6 +16,15 @@ if(isset($_GET['configure']))
define("USER_AREA", true);
//Switch to desired layout
define('THEME_LAYOUT', $_GET['configure']);
define('e_DEBUG', false);
define('E107_DEBUG_LEVEL', 0);
if(function_exists('xdebug_disable'))
{
xdebug_disable();
}
@ini_set('display_errors', 0);
error_reporting(0);
}
require_once("../class2.php");
@@ -25,7 +34,7 @@ if (!getperms("2"))
exit;
}
define('e_DEBUG', false);
e107::coreLan('menus', true);
@@ -35,16 +44,31 @@ e107::css('inline',"
.menu-manager-items { padding-right:15px}
.menu-manager-items div.item { padding:5px; margin:5px 0; border:1px solid rgba(255,255,255,0.3); border-radius:3px; cursor: move }
.menu-manager-sticky {
position: fixed;
padding-left: 15px;
padding-right: 15px;
left: 0;
top: 60px;
z-index: 100;
border-top: 0;
-moz-transition: fadeIn .4s;
-o-transition: fadeIn .4s;
-webkit-transition: fadeIn .4s;
transition: fadeIn .4s;
}
");
if(strpos(e_QUERY, 'configure') !== FALSE || vartrue($_GET['enc']))
{
//e107::js('core', 'core/jquery.elastic.source.js', 'jquery', 2);
//e107::js('core', 'plupload/plupload.full.js', 'jquery', 2);
@@ -65,6 +89,9 @@ if(strpos(e_QUERY, 'configure') !== FALSE || vartrue($_GET['enc']))
// e107::css('core', 'core/admin.css', 'jquery');
// e107::js('core', 'core/admin.jquery.js', 'jquery', 4);
e107::js('core','bootstrap/js/bootstrap-tooltip.js');
// e107::css('core','bootstrap/css/bootstrap.min.css');
$JSMODAL = <<<TEMPL
@@ -402,8 +429,47 @@ TEMPL;
}
else
{
e107::js('footer-inline', "
$(document).ready(function() {
var stickyNavTop = $('.e-scroll-fixed').offset().top - 60; // grab the initial top offset of the navigation
var stickyNav = function(){
var scrollTop = $(window).scrollTop(); // our current vertical position from the top
if (scrollTop > stickyNavTop) {
$('.e-scroll-fixed').addClass('menu-manager-sticky visible col-lg-2 col-md-3');
} else {
$('.e-scroll-fixed').removeClass('menu-manager-sticky visible col-lg-2 col-md-3');
}
};
stickyNav();
$(window).scroll(function() { // and run it again every time you scroll
stickyNav();
});
});
");
}
@@ -428,9 +494,9 @@ if($_SERVER['E_DEV_MENU'] == 'true')
//{
function e_help()
{
if($_SERVER['E_DEV_MENU'] != 'true')
if(e_DEBUG === false)
{
return false;
return null;
}
@@ -447,13 +513,13 @@ if($_SERVER['E_DEV_MENU'] == 'true')
$text .= "
<div class='active tab-pane' id='plugins'>
<ul>";
<div id='menu-manager-item-list' class='menu-manager-items' style='height:400px;overflow-y:scroll'>";
$c = 500; // start high to prevent overwriting of keys after we drag and drop.
foreach($p as $menu => $folder)
{
$text .= "<li id='{$menu}' class='draggable regularMenu' style='cursor:move'>";
$text .= "<div id='{$menu}' class='item draggable regularMenu' style='cursor:move'>";
// $text .= str_replace("_menu","",$menu);
$defaults = array(
@@ -464,22 +530,22 @@ if($_SERVER['E_DEV_MENU'] == 'true')
$text .= e_layout::renderMenuOptions($defaults,'layout','area',$c);
$text .= "</li>";
$text .= "</div>";
$c++;
}
$text .= "</ul>
$text .= "</div>
</div>
<div class='tab-pane' id='custom'>";
if($sql->select('page','*',"menu_name !='' ORDER BY menu_name"))
{
$text .= "<ul>";
$text .= "<div id='menu-manager-item-list' class='menu-manager-items' style='height:400px;overflow-y:scroll'>";
while($row = $sql->fetch())
{
$text .= "<li id='".$row['page_id']."' class='draggable regularMenu' style='cursor:move'>";
$text .= "<div id='".$row['page_id']."' class='item draggable regularMenu' style='cursor:move'>";
// $text .= $row['menu_name'];
$defaults = array(
@@ -490,17 +556,17 @@ if($_SERVER['E_DEV_MENU'] == 'true')
$text .= e_layout::renderMenuOptions($defaults,'layout','area',$c);
$text .= "</li>";
$text .= "</div>";
}
$text .= "</ul>";
$text .= "</div>";
}
$text .= "</div>
</div>";
return array('caption'=>'Menu Items','text'=>$text);
return array('caption'=>'DragNDrop Items','text'=>$text);
}
//}

View File

@@ -704,6 +704,19 @@ class admin_shortcodes
return $ret;
}
function sc_admin_debug()
{
if(e_DEBUG !== false)
{
return "<div class='navbar-right navbar-text'><span class='label label-warning'>DEBUG MODE</span>&nbsp;</div>";
}
}
// FIXME - make it work
function sc_admin_pm($parm)
{
@@ -1812,13 +1825,20 @@ Inverse 10 <span class="badge badge-inverse">10</span>
function sc_admin_menumanager() // List all menu-configs for easy-navigation
function sc_admin_menumanager($parm=null) // List all menu-configs for easy-navigation
{
if(strpos(e_REQUEST_URI,e_ADMIN_ABS."menus.php")===false)
{
return false;
}
if($parm == 'selection')
{
return $this->menuManagerSelection();
}
$pref = e107::getPref();
@@ -1852,50 +1872,9 @@ Inverse 10 <span class="badge badge-inverse">10</span>
$var = array($defLayout => $var[$defLayout]) + $var;
e107::getNav()->admin(ADLAN_6,$action, $var);
return null;
// TODO: Move to another shortcode.
// TODO: Get drag-n-drop working.
$sql = e107::getDb();
e107::getNav()->admin(ADLAN_6,$action, $var);
$sql->select("menus", "menu_name, menu_id, menu_pages, menu_path", "1 GROUP BY menu_name ORDER BY menu_name ASC");
while ($row = $sql->fetch())
{
if(is_numeric($row['menu_path']))
{
$pageMenu[] = $row;
}
else
{
$pluginMenu[] = $row;
}
}
$text = "<div class='menu-manager-items' style='height:700px;overflow-y:scroll'>";
$text .= "<h4>Your Menus</h4>";
foreach($pageMenu as $row)
{
$text .= "<div class='item' >".$row['menu_name']."</div>";
}
$text .= "<h4>Plugin Menus</h4>";
foreach($pluginMenu as $row)
{
$text .= "<div class='item' data-menu-id='".$row['menu_id']."'>".substr($row['menu_name'],0,-5)."</div>";
}
$text .= "</div>";
return e107::getRender()->tablerender("Menus", $text, null, true);
/*
@@ -1936,6 +1915,73 @@ Inverse 10 <span class="badge badge-inverse">10</span>
}
private function menuManagerSelection()
{
if(e_DEBUG === false)
{
return null;
}
// TODO: Move to another shortcode?
// TODO: Get drag-n-drop working.
$sql = e107::getDb();
$pageMenu = array();
$pluginMenu = array();
$sql->select("menus", "menu_name, menu_id, menu_pages, menu_path", "1 GROUP BY menu_name ORDER BY menu_name ASC");
while ($row = $sql->fetch())
{
if(is_numeric($row['menu_path']))
{
$pageMenu[] = $row;
}
else
{
$pluginMenu[] = $row;
}
}
$text = "<div id='menu-manager-item-list' class='menu-manager-items' style='height:400px;overflow-y:scroll'>";
$text .= "<h4>Your Menus</h4>";
foreach($pageMenu as $row)
{
if(!empty($row['menu_name']))
{
$text .= "<div class='item' >".$row['menu_name']."</div>";
}
}
$text .= "<h4>Plugin Menus</h4>";
foreach($pluginMenu as $row)
{
$text .= "<div class='item' data-menu-id='".$row['menu_id']."'>".substr($row['menu_name'],0,-5)."</div>";
}
$text .= "</div>";
return e107::getRender()->tablerender("Drag-N-Drop Menus", $text, null, true);
}
}

View File

@@ -49,13 +49,16 @@ if (!defined('e107_INIT')) { exit; }
if (strstr(e_MENU, "debug") || isset($_COOKIE['e107_debug_level']))
{
$e107_debug = new e107_debug;
require_once(e_HANDLER.'db_debug_class.php');
$db_debug = new e107_db_debug;
// require_once(e_HANDLER.'db_debug_class.php');
//$db_debug = new e107_db_debug;
// $db_debug = e107::getDebug(); // XXX enable after 2.1.1
$db_debug = e107::getDebug();
$e107_debug->set_error_reporting();
$e107_debug_level = $e107_debug->debug_level;
define('E107_DEBUG_LEVEL', $e107_debug_level);
if(!defined('E107_DEBUG_LEVEL'))
{
define('E107_DEBUG_LEVEL', $e107_debug_level);
}
}
else
{

View File

@@ -369,7 +369,9 @@ class e_menuManager {
$fileList = $efile->get_files(e_PLUGIN,"_menu\.php$",'standard',2);
$this->menuAddMessage('Scanning for new menus', E_MESSAGE_DEBUG);
// $this->menuAddMessage('Scanning for new menus', E_MESSAGE_DEBUG);
e107::getDebug()->log("Scanning for new menus",E107_DBG_BASIC);
$menuList = array(); // existing menus in table.
if($result = $sql->retrieve('menus', 'menu_name', null, true))

View File

@@ -57,4 +57,4 @@ If you find the menus are not updating correctly, clicking the refresh button be
";
$text = $tp->toHtml($text, true);
$ns->tablerender("Menus Help", $text);
$ns->tablerender("Menu Manager Help", $text);

View File

@@ -16,7 +16,7 @@ if (!getperms("P") || !e107::isInstalled('featurebox'))
exit;
}
// e107::includeLan(e_PLUGIN.'featurebox/languages/'.e_LANGUAGE.'_admin_featurebox.php');
e107::includeLan(e_PLUGIN.'featurebox/languages/'.e_LANGUAGE.'_admin_featurebox.php');
// e107::lan('plugin','featurebox',true);
class fb_admin extends e_admin_dispatcher

View File

@@ -251,6 +251,7 @@ $ADMIN_MODAL = '<div id="uiModal" class="modal hide fade" tabindex="-1" role="d
{ADMIN_NAVIGATION=language}
{ADMIN_NAVIGATION=home}
{ADMIN_PM}
{ADMIN_DEBUG}
</div>
@@ -273,14 +274,22 @@ $ADMIN_HEADER .= '<div class="container-fluid">
{SETSTYLE=admin_menu}
{ADMIN_MENU}
{ADMIN_MENUMANAGER}
{ADMIN_PWORD}
{ADMIN_MENUMANAGER}
<div class="e-scroll-fixed">
{SETSTYLE=site_info}
{ADMINUI_HELP}
{ADMIN_HELP}
</div>
{ADMIN_SITEINFO=creditsonly}
{SETSTYLE=admin_menu}