Dazu wird im Template Manager ein Override des mod_menu erzeugt, dieser bekommt einen sprechenden Namen z.B. onepage.
Also die neuen Dateien umbenennen:
onepage.php
onepage_component.php
onepage_heading.php
onepage_separator.php
onepage_url.php

Auch wenn hier nur die onepage.php und onepage_component.php geändert wird, ist eine vollständige Umbennenung aller Dateien wichtig für die Funktion.

Dieses neue Layout kann jetzt dem onepager Menu in den Modul Einstellungen -> erweitert als alternatives Layout zugewiesen werden.  

Änderung in onepage.php:

Zeile 99

// Render the menu item.
switch ($item->type) :
case 'separator':
case 'url':
case 'component':
case 'heading':
require JModuleHelper::getLayoutPath('mod_menu', 'default_'.$item->type);
break;

default:
require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
break;
endswitch;

Hier default ersetzen mit onepage

Änderungen in onepage_component.php

Ab Joomla 3.6 wird der Link in der default_component.php in der letzten Zeile mit JHTML erzeugt:

echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($item->flink)), $linktype, $attributes);

diese Zeile ersetzen mit:

$aId = substr($item->link, strrpos($item->link, '=') + 1);
$anchorlink = preg_replace('#\/[^/]*$#', '', $item->flink).'#anchor-'.$aId;
echo JHtml::_('link', JFilterOutput::ampReplace(htmlspecialchars($anchorlink)), $linktype, $attributes);

 

Go To Top