2011-04-18, 19:30:18
(This post was last modified: 2011-04-18, 19:47:43 by felipemartins81.)
joel14santos5 Wrote:i really need this for my Web design . thanks
I saw your site but I did not find any sub page in your menu.
This function for the no complex child menu (only current class end list child)
Code:
function get_custom_navigation($currentpage) {
$menu = '';
$path = GSDATAPAGESPATH;
$dir_handle = opendir($path) or die("Unable to open $path");
$filenames = array();
while ($filename = readdir($dir_handle)) {
$filenames[] = $filename;
}
$count="0";
$pagesArray = array();
if (count($filenames) != 0) {
foreach ($filenames as $file) {
if ($file == "." || $file == ".." || is_dir($path . $file) || $file == ".htaccess" ) {
} else {
$data = getXML($path . $file);
if ($data->private != 'Y') {
$pagesArray[$count]['menuStatus'] = $data->menuStatus;
$pagesArray[$count]['menuOrder'] = $data->menuOrder;
$pagesArray[$count]['menu'] = strip_decode($data->menu);
$pagesArray[$count]['url'] = $data->url;
$pagesArray[$count]['title'] = strip_decode($data->title);
$pagesArray[$count]['parent'] = $data->parent;
$count++;
}
}
}
}
$pagesSorted = subval_sort($pagesArray,'menuOrder');
$subpagesSorted = subval_sort($pagesArray,'title');
if (count($pagesSorted) != 0) {
foreach ($pagesSorted as $page) {
$sel = '';
$classes = '';
$url_nav = $page['url'];
if ($page['menuStatus'] == 'Y') {
if ($page['menu'] == '') { $page['menu'] = $page['title']; }
if ($page['title'] == '') { $page['title'] = $page['menu']; }
if ("$currentpage" == "$url_nav") {
$menu .= '<li class="current"><a href="'. find_url($page['url'],$page['parent']) . '" title="'. strip_quotes($page['title']) .'">'.$page['menu'].'</a>';
} else {
$menu .= '<li><a href="'. find_url($page['url'],$page['parent']) . '" title="'. strip_quotes($page['title']) .'">'.$page['menu'].'</a>';
}
foreach ($subpagesSorted as $subpage) {
$pageRif = $subpage['parent'];
if ("$pageRif" == "$url_nav") {
$pageNum = $pageNum + 1;
}
}
if ($pageNum != 0) {
$menu .= '<ul>';
foreach ($subpagesSorted as $subpage) {
$subPageRif = $subpage['parent'];
if ($subpage['menu'] == '') { $subpage['menu'] = $subpage['title']; }
if ($subpage['title'] == '') { $subpage['title'] = $subpage['menu']; }
if ("$subPageRif" == "$url_nav") {
$menu .= '<li><a href="'. find_url($subpage['url'],$subpage['parent']) . '" title="'. strip_quotes($subpage['title']) .'">'.$subpage['menu'].'</a></li>';
}
}
$menu .= '</ul>';
$menu .= '</li>';
} else {
$menu .= '</li>';
}
$pageNum = 0;
}
}
}
closedir($dir_handle);
echo exec_filter('menuitems',$menu);
}
Example html menu child code
Code:
<ul>
<li class="current"><a href="#">link</a>
<ul>
<li><a href="#">link</a></li>
<li><a href="#">link</a></li>
</ul>
</li>
<li><a href="#">link</a>
</ul>
Replace get_navigation($currentpage) >> get_custom_navigation($currentpage) in the theme template file.
by gsit (always disposal)
a new admin interface in working: