diff --git a/infusions/css_navigation_panel/css_navigation_panel.php b/infusions/css_navigation_panel/css_navigation_panel.php
index 4311d8d371..b6a9fb5eca 100644
--- a/infusions/css_navigation_panel/css_navigation_panel.php
+++ b/infusions/css_navigation_panel/css_navigation_panel.php
@@ -15,89 +15,141 @@
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
+
+use PHPFusion\Rewrite\Router;
+
defined('IN_FUSION') || exit;
openside(fusion_get_locale('global_001'));
echo '
';
echo '
';
+echo show_nab_sublinks();
+echo '
';
+echo '
';
+closeside();
-$data = dbquery_tree_full(DB_SITE_LINKS, "link_id", "link_cat", "WHERE link_position <= 2".(multilang_table("SL") ? " AND link_language='".LANGUAGE."'" : "")." AND ".groupaccess('link_visibility')." AND link_status=1 ORDER BY link_cat, link_order");
-
-if (!empty($data[0])) {
- $i = 0;
- foreach ($data[0] as $id => $link_data) {
- if ($link_data['link_name'] != '---' && $link_data['link_name'] != '===') {
- echo '';
- create_link($link_data, $i, $id);
-
- if (isset($data[$id])) {
- $sub_i = 0;
- echo '';
- if (!empty($link_data['link_url']) and $link_data['link_url'] !== "#") {
- echo '- ';
- create_link($link_data, $i, $id);
- echo '
';
- }
- foreach ($data[$id] as $sub_id => $sub_link_data) {
- echo '- ';
- create_link($sub_link_data, $sub_i, $sub_id);
- echo '
';
- }
- echo '
';
- }
- echo '';
- } else {
- echo '';
- }
+
+function show_nab_sublinks($id = 0) {
+ $res = '';
+
+ if (empty($id)) {
+ $data = dbquery_tree_full(DB_SITE_LINKS, "link_id", "link_cat", "WHERE link_position <= 2".(multilang_table("SL") ? " AND link_language='".LANGUAGE."'" : "")." AND ".groupaccess('link_visibility')." AND link_status=1 ORDER BY link_cat, link_order");
+
+ $res = show_nav_links($id, $data);
}
+
+ return $res;
}
-echo '';
-echo '';
-closeside();
+function show_nav_links($id, $data) {
+ $res = '';
-function create_link($data, $i, $id) {
$pageInfo = pathinfo($_SERVER['REQUEST_URI']);
- $start_page = $pageInfo['dirname'] !== "/" ? ltrim($pageInfo['dirname'], '/').'/' : '';
+ $start_page = $pageInfo['dirname'] !== "/" ? ltrim($pageInfo['dirname'], "/")."/" : "";
$site_path = ltrim(fusion_get_settings("site_path"), "/");
$start_page = str_replace([$site_path, '\/'], ['', ''], $start_page);
$start_page .= $pageInfo['basename'];
- if ($start_page == $data['link_url']) {
- $link_is_active = TRUE;
- } else if (fusion_get_settings('site_path').$start_page == $data['link_url']) {
- $link_is_active = TRUE;
- } else if (($start_page == fusion_get_settings("opening_page") && $i == 0 && $id === 0)) {
- $link_is_active = TRUE;
- } else {
- $link_is_active = FALSE;
+ if (fusion_get_settings("site_seo") && defined('IN_PERMALINK') && !isset($_GET['aid'])) {
+ $filepath = Router::getRouterInstance()->getFilePath();
+ $start_page = $filepath;
}
- if (preg_match("!^(ht|f)tp(s)?://!i", $data['link_url'])) {
- $item_link = $data['link_url'];
- } else {
- $item_link = BASEDIR.$data['link_url'];
- }
+ if (!empty($data[$id])) {
+ $i = 0;
- $item_link = str_replace('%aidlink%', fusion_get_aidlink(), $item_link);
- $link_target = $data['link_window'] == 1 ? ' target="_blank"' : '';
- $active = $link_is_active ? ' current-link active' : '';
+ foreach ($data[$id] as $link_id => $link_data) {
+ $li_class = [];
- echo '';
- echo $data['link_icon'] ? ' ' : '';
- echo $data['link_name'];
- echo '';
-}
+ if (empty($link_data['link_url'])) {
+ $li_class[] = "no-link";
+ }
+
+ $link_is_active = FALSE;
+ $secondary_active = FALSE;
+
+ if ($link_data['link_name'] != "---" && $link_data['link_name'] != "===") {
+
+ $link_data['link_name'] = fusion_get_settings('link_bbcode') ? parseubb($link_data['link_name']) : $link_data['link_name'];
+ $link_data["link_name"] = html_entity_decode($link_data["link_name"], ENT_QUOTES);
+
+ $link_target = ($link_data['link_window'] == "1" ? " target='_blank'" : '');
+ if ($secondary_active) {
+ $link_is_active = TRUE;
+ } else if (strtr(FUSION_REQUEST, [fusion_get_settings('site_path') => '', '&' => '&']) == str_replace('../', '', $link_data['link_url'])) {
+ $link_is_active = TRUE;
+ } else if ($start_page == $link_data['link_url']) {
+ $link_is_active = TRUE;
+ } else if (fusion_get_settings('site_path').$start_page == $link_data['link_url']) {
+ $link_is_active = TRUE;
+ } else if (($start_page == fusion_get_settings("opening_page") && $i == 0 && $id === 0)) {
+ $link_is_active = TRUE;
+ } else if ($link_data['link_url'] === '#') {
+ $link_is_active = FALSE;
+ }
+ if ($link_is_active) {
+ $li_class[] = "current-link active";
+ }
+ $itemlink = '';
+ if (!empty($link_data['link_url'])) {
+ $itemlink = " href='".BASEDIR.$link_data['link_url']."' ";
+ // if link has site protocol
+ if (preg_match("!^(ht|f)tp(s)?://!i", $link_data['link_url'])
+ or (BASEDIR !== '' && stristr($link_data['link_url'], BASEDIR))
+ ) {
+ $itemlink = " href='".$link_data['link_url']."' ";
+ }
+ }
+
+ $itemlink = str_replace('%aidlink%', fusion_get_aidlink(), $itemlink);
-add_to_jquery("
- $('.fusion_css_navigation_panel li:has(ul)').on('click', function(e) {
- e.preventDefault();
- $(this).find('.sub-nav').slideToggle('fast');
- });
+ $has_child = FALSE;
+ $l_1 = "";
+ $l_2 = "";
- $('.fusion_css_navigation_panel').find('.sub-nav li').click(function(e) {
- e.stopPropagation();
- });
+ if (isset($data[$link_id])) {
+ $has_child = TRUE;
+ $link_class = " class='dropdown-toggle'";
+ $l_1 = " id='ddlink".$link_data['link_id']."' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'";
+ $l_1 .= (empty($id) && $has_child ? " data-submenu " : "");
+ $l_2 = (empty($id) ? "" : "");
+ $li_class[] = (!empty($id) ? "dropdown-submenu" : "dropdown");
+ } else {
+ $link_class = (!empty($link_data['link_class']) ? " class='".$link_data['link_class']."'" : '');
+ }
+
+ $li_class = array_filter($li_class);
+
+ $res .= "";
- $('.fusion_css_navigation_panel li:has(ul)').find('a:first').append(' ยป');
-");
+ $res .= ($itemlink ? "" : "");
+ $res .= (!empty($link_data['link_icon']) ? "" : "");
+ $res .= $link_data['link_name']." ".$l_2;
+ $res .= ($itemlink ? "" : '');
+ if ($has_child) {
+ $res .= "\n\n";
+ }
+ $res .= "\n";
+ } else {
+ $res .= "\n";
+ }
+ $i++;
+ }
+ }
+
+ return $res;
+}