In einer Joomla! installation sollen bei allen Modulen die einen "Module Class Suffix" gesetzt haben ein gleichnamiger Anker angelegt werden um bequem auf der Seite navigieren zu können ohne lästiges Scrollen. Von Haus aus liefert Joomla diese Möglichkeit nicht. Dazu muss also die "modules.php" (joomla/templates/system/html/modules.php) angepasst werden.
/*
* xhtml (divs and font headder tags)
*/
function modChrome_xhtml($module, &$params, &$attribs)
{
if (!empty ($module->content)) : ?>
<div class="moduletable">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif;
}
Besondes interessant die Zeilen 66 bis85 da im Template ausschließlich <jdoc:include type="modules" name="user" style="xhtml" /> verwendet wurde.
Im ersten Schritt fügen wir eine Variable und eine Abfrage hinzu die sich darum kümmert den gespeicherten Wert des moduleclass_sfx auszulesen und auf eine Variable "sfx" zu speichern.
function modChrome_xhtml($module, &$params, &$attribs)
{
$sfx = $params->get('moduleclass_sfx');
....
Im nächsten Schritt wird eine Abfrage eingefügt welche den Wert prüft. Wenn ein Suffix gesetzt ist, wird der Code ausgegeben, wenn nicht dann bleibt alles beim alten.
<?php if ($sfx != NULL) : ?>
<a name="anchor_< ?php echo htmlspecialchars($params->get('moduleclass_sfx')); ? >"
id="anchor_< ?php echo htmlspecialchars($params->get('moduleclass_sfx')); ? >" class="ohne"></a>
<?php endif; ?>
Somit haben wir alles beisammen. In diesem Beispiel muss die ID des Ankers gleich seinem Namen sein. Grund ist das verwendete MooTools-Script (http://davidwalsh.name/smooth-scroll) welches nur darauf reagiert.
Um diesen Smooth Scroll Effekt nun zu installieren muss im <head></head> noch folgendes stehen
<!-- MOOTOOLS & CONTENT SLIDER -->
<script type="text/javascript" src="/templates//javascript/mootools-smoothscroll.js"></script>
<script type="text/javascript">
window.addEvent('domready',function() { new SmoothScroll({ duration: 1800 }); });
</script>
Wenn man nun irgendwo im Text einen Hyperlink setzt der auf einen der Anker greift, scrollt das bild gemächlich zum angegebenen Punkt.
<a href="#gesetzterSuffixName">ZUM ANKER</a>
Der Fortschritt daran ist das nun dynamisch die Anker verteilt werden und kein Quelltext angefasst werden muss. Es genügt ein Hyperlink im Text und schon Scrollt das Bild zum Modul welches den entsprechenden Suffix besitzt.
Smooth-Scroll mit jQuery - http://www.elmastudio.de/webdesign/smooth-scroll-elegantes-scrollen-mit-jquery/
Smooth-Scroll mit MooTools - http://davidwalsh.name/mootools-fx-smoothscroll