1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-10 16:46:50 +02:00

Smarter page navigation menu

This commit is contained in:
SecretR
2013-02-14 13:06:16 +02:00
parent b9a452e793
commit cd2fbaa3d6
3 changed files with 65 additions and 7 deletions

View File

@@ -30,6 +30,7 @@ class page_sitelinks // include plugin-folder in the name.
function pageNav($parm='')
{
$options = array();
if(vartrue($parm))
{
parse_str($parm,$options);
@@ -45,11 +46,11 @@ class page_sitelinks // include plugin-folder in the name.
// $query .= vartrue($options['limit']) ? " LIMIT ".intval($options['limit']) : "";
$data = $sql->retrieve($query, true);
$_pdata = array();
foreach($data as $row)
{
$pid = $row['page_chapter'];
$sublinks[$pid][] = array(
$sublinks[$pid][] = $_pdata[] = array(
'link_id' => $row['page_id'],
'link_name' => $row['page_title'],
'link_url' => e107::getUrl()->create('page/view', $row, array('allow' => 'page_sef,page_title,page_id')),
@@ -69,7 +70,9 @@ class page_sitelinks // include plugin-folder in the name.
if(vartrue($options['chapter']))
{
$filter = "chapter_id > ".intval($options['chapter']);
//$filter = "chapter_id > ".intval($options['chapter']);
$outArray = array();
return e107::getNav()->compile($_pdata, $outArray, $options['chapter']);
}
if(vartrue($options['book']))
@@ -107,7 +110,6 @@ class page_sitelinks // include plugin-folder in the name.
// print_a($arr);
// echo "<h3>Compiled</h3>";
$outArray = array();
$ret = e107::getNav()->compile($arr, $outArray, $parent);

View File

@@ -12,7 +12,32 @@ if (!defined('e107_INIT')) { exit; }
$template = e107::getCoreTemplate('page','nav');
$text = e107::getParser()->parseTemplate("{PAGE_NAVIGATION}", true);
// auto mode - detect the current location
if(empty($parm))
{
$request = e107::getRegistry('core/pages/request');
$parm = array();
if($request && is_array($request))
{
switch ($request['action'])
{
case 'listChapters':
$parm['book'] = $request['id'];
break;
case 'listPages':
$parm['chapter'] = $request['id'];
break;
case 'showPage':
$parm['page'] = $request['id'];
break;
}
}
if($parm) $parm = http_build_query($parm);
}
$text = e107::getParser()->parseTemplate("{PAGE_NAVIGATION={$parm}}", true);
e107::getRender()->tablerender($template['caption'], $text, 'page-navigation-menu');