Da ich hier nicht nur nehmen, sondern auch mal was beitragen möchte, habe ich mich mal über dieses etwas angestaubte Thema hergemacht und das Megamenü mal ein bisschen modifiziert.
Geändert habe ich folgende Punkte:
- Das Script, welches in die includes/header.php eingefügt wurde habe ich in die /templates/xtc5/javascript/general.js.php verschoben. Somit ist das Menü komplett im Template eingebunden und es müssen keine Core Dateien geändert werden.
- Das Menü habe ich dynamisch mit den Kategorien verlinkt. Allerdings gibt es hier noch ein Problem mit der korrekten Ausgabe der Kategorietiefe: Auf der Startseite wird nur die erste Kategorieebene ausgegeben. Bin ich dann in einer Kategorie, werden nur die Unterkategorien der jeweiligen Kategorie ausgegeben. Eben das Standardverhalten der box_categories. Also muss noch eine Möglichkeit gefunden werden, wie alle Kategorien ausgegeben werden können.
- Bei deaktiviertem Javascript funktioniert das Menü nicht. Muß man das heutzutage noch berücksichtigen?
Und jetzt die Anleitung, wie ich das Menü eingebunden habe:
Geänderte Dateien:
/templates/xtc5/css/general.css.php
/templates/xtc5/javascript/general.js.php
/templates/xtc5/index.html
/templates/xtc5/boxes/box_categories.html
Neue Dateien:
/templates/xtc5/css/dcmegamenu.css
/templates/xtc5/javascript/jquery.dcmegamenu.1.2.js
/templates/xtc5/javascript/jquery.hoverIntent.minified.js
(Die neuen Dateien findet Ihr im Anhang)
Folgende Änderungen müsst Ihr an Euren Shopdateien vornehmen:
Datei: /templates/xtc5/css/general.css.php
Suche:
<link rel="stylesheet" href="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/stylesheet.css" type="text/css" />
<link rel="stylesheet" href="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/css/thickbox.css" type="text/css" media="screen" />
Ersetzen durch:
<link rel="stylesheet" href="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/stylesheet.css" type="text/css" />
<link rel="stylesheet" href="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/css/thickbox.css" type="text/css" media="screen" />
<link rel="stylesheet" href="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/css/dcmegamenu.css" type="text/css" />
Datei: /templates/xtc5/javascript/general.js.php
Suche:
script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.js" type="text/javascript"></script>
<script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/thickbox.js" type="text/javascript"></script>
Ersetzen durch:
<script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.js" type="text/javascript"></script>
<script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/thickbox.js" type="text/javascript"></script>
<script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.hoverIntent.minified.js" type="text/javascript"></script>
<script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.dcmegamenu.1.2.js" type="text/javascript"></script>
<!--BOF Megamenu-->
<script type="text/javascript">
$(document).ready(function($){
$('#mega-menu-1').dcMegaMenu({
rowItems: '4',
speed: 'fast',
effect: 'fade'
});
});
</script>
<!--EOF Megamenu-->
Datei: /templates/xtc5/index.html
Suche:
<ul id="topmenu">
<li><a href="{$index}">{#link_index#}</a></li>
<li><a href="{$cart}">{#link_cart#}</a></li>
{if $account}
<li><a href="{$account}">{#link_account#}</a></li>
{/if}
{if $smarty.session.customers_status.customers_status_id == '1'}
<li><a href="{php}echo xtc_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL');{/php}">{#new_customer#}</a></li>
{/if}
<li><a href="{$checkout}">{#link_checkout#}</a></li>
{if $smarty.session.customer_id}
<li><a href="{$logoff}">{#link_logoff#}</a></li>
{else}
<li><a href="{$login}">{#link_login#}</a></li>
{/if}
</ul>
Ersetzen durch:
<ul id="mega-menu-1" class="mega-menu">
<li><a href="{$index}">{#link_index#}</a></li>
<li><a href="#">Katalog</a>
{$box_CATEGORIES}
</li>
<li><a href="{$cart}">{#link_cart#}</a></li>
{if $account}
<li><a href="{$account}">{#link_account#}</a></li>
{/if}
{if $smarty.session.customers_status.customers_status_id == '1'}
<li><a href="{php}echo xtc_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL');{/php}">{#new_customer#}</a></li>
{/if}
<li><a href="{$checkout}">{#link_checkout#}</a></li>
{if $smarty.session.customer_id}
<li><a href="{$logoff}">{#link_logoff#}</a></li>
{else}
<li><a href="{$login}">{#link_login#}</a></li>
{/if}
</ul>
Suche:
<div id="leftcol">
{$box_CATEGORIES}
{$box_ADD_QUICKIE}
{$box_CONTENT}
{$box_INFORMATION}
{$box_LAST_VIEWED}
{$box_REVIEWS}
{$box_SPECIALS}
{$box_WHATSNEW}
</div>
Ersetzen durch:
<div id="leftcol">
{$box_ADD_QUICKIE}
{$box_CONTENT}
{$box_INFORMATION}
{$box_LAST_VIEWED}
{$box_REVIEWS}
{$box_SPECIALS}
{$box_WHATSNEW}
</div>
Datei: /templates/xtc5/boxes/box_categories.html
Suche:
{config_load
file="$language/lang_$language.conf" section
="boxes"}<h2
class="categoryheader">{#heading_categories#}</h2>
<ul id
="categorymenu">{$BOX_CONTENT}</ul
> Ersetzen durch:
{config_load
file="$language/lang_$language.conf" section
="boxes"}<ul
>{$BOX_CONTENT}</ul
> Jetzt noch die Dateien aus dem ZIP-Archiv per FTP auf euren Server laden.
Edit: Dateianhang korrigiert