Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

Darstellung einer "Breadcrumb" als CMS-Variable

Begonnen von michaelwandel, 12. Juni 2009, 15:42:38

« vorheriges - nächstes »

michaelwandel

So, ein erster und tlw. noch etwas unsauberer "Hack" um eine "Breadcrumb" (also "Wo-bin-ich-gerade-im-Menü"-Funktion" darzustellen.

Dazu fügt man in die index.php im Hauptverzeichnis ab Zeile 960 (vor dem "return $content;") folgende Zeilen hinzu:

$breadcrumb = "<a href="" . $_SERVER['PHP_SELF'] . "">Welcome</a>";
if (catToName($CAT_REQUEST, true) != "Welcome")
{
$breadcrumb = $breadcrumb . "  &raquo; <a href="?cat=" . $CAT_REQUEST . "">" . catToName($CAT_REQUEST, true) . "</a>";
}
if ($pagetitle != catToName($CAT_REQUEST, true))
{
$breadcrumb = $breadcrumb . "  &raquo; <a href="?cat=" . $CAT_REQUEST . "&page=" . $PAGE_REQUEST . ""><strong>" . $pagetitle . "</strong></a>";
}
$content = preg_replace('/{BREADCRUMB}/', $breadcrumb, $content);

Wie gesagt, noch sehr "unsauber", Der Hauptmenüpunkt ist derzeit "fest" aber hat mir bei einer meiner Sites geholfen, hoffe es gibt den ein oder anderen Denkansatz ;-)

Bezeiten werde ich das Ganze mal "gradeziehen" ;-)

Gruß, Michael

stefanbe

#1
oder einfach damit CMS-Variablen :)

für die template.html
<a href="index.php">Welcome</a> &raquo; <a href="index.php?cat={CATEGORY}">{CATEGORY_NAME}</a> &raquo; <a href="index.php?cat={CATEGORY}&mp;page={PAGE}"><strong>{PAGE_NAME}</strong></a>gruss stefanbe

michaelwandel

#2
Hat nur den Nachtteil das Du leere "&raquo;"s hast wenn keine Category vorhanden ist ;-)

Sollte ja nur als kleiner Tip am Rande sein, hoffe ich finde mal die Zeit das zu optimieren :-)

Gruß, Michael

azett

#3
Zitat von: "stefanbe"<a href="index.php">Welcome</a> &raquo; <a href="index.php?cat={CATEGORY}">{CATEGORY_NAME}</a> &raquo; <a href="index.php?cat={CATEGORY}&mp;page={PAGE}"><strong>{PAGE_NAME}</strong></a>
[kruemelkack]
Da fehlt ein a: <a href="index.php">Welcome</a> &raquo; <a href="index.php?cat={CATEGORY}">{CATEGORY_NAME}</a> &raquo; <a href="index.php?cat={CATEGORY}&amp;page={PAGE}"><strong>{PAGE_NAME}</strong></a>
[/kruemelkack]
 :geek:  :lol:  ;)


Zitat von: "michaelwandel"Hat nur den Nachtteil das Du leere "&raquo;"s hast wenn keine Category vorhanden ist ;-)
Wann tritt das auf?

michaelwandel

#4
z.B. auf der Startseite ;-) ?

Aber ich sollte das mal optimeren und poste dann mal eine saubere Variante ;-)

Gruß, Michael

azett

#5
Welche Version verwendest du? Ich habe das ins Template einer 1.11.1er-Installation eingebaut, dort funktioniert es fabelhaft: Screenshot

michaelwandel

#6
Hi,

benutze auch die 1.11.1-er aber z.B. auf der Startseite zeigt er mir dann 3 x "Startseite" an, deswegen habe ich das in PHP abgeprüft ;-)
In den Unterkategorien klappt es natürlich :-)

Konkret sieht das so aus: "Startseite » Startseite » Startseite" auf der Startseite,
"Startseite » Aktuelles » Aktuelles" im 1. Menüpunkt "Aktuelles".

Also ich denke ein bisschen Check muss vorher sein, damit er den "Verlauf" richtig anzeigt, aber wie gesagt, mit meiner kleinen Lösung geht es auch wenn die noch etwas unsauber ist :)

Gruß, Michael

azett

#7
Ah, ich verstehe, was du meinst. Mit den CMS-Variablen kannst du eine solche Logik natürlich nicht abbilden, die zeigen stur die aktuelle Kategorie und die aktuelle Inhaltsseite an. Ist halt davon abhängig, wie du die Inhalte strukturiert hast (die erste Kategorie könnte ja "Übersicht" heißen und die Inhaltsseite dann "Willkommen bei xyz"; dann sähe die Breadcrumb-Navi auch mit Bordmitteln schon recht sinnig aus).

michaelwandel

#8
So, hier nochmal eine halbwegs saubere Version ;-)

Bitte einfügen in der index.php ab  Zeile 960 (quasi als letzte Instruktion der Funktion replacePlaceholders, natürlich VOR dem "return $content;"
Vielleicht findet sie ja den Weg in den nächsten Release ;-)

$sep = $mainconfig->get("titlebarseparator");
// Startseite wird immer angezeigt...
$breadcrumb = "<a href="" . $_SERVER['PHP_SELF'] . "">" . catToName($mainconfig->get("defaultcat"), true) . "</a>";
// Dann schauen ob es eine Kategorie gibt...
if (catToName($CAT_REQUEST, true) != catToName($mainconfig->get("defaultcat"), true))
{
$breadcrumb = $breadcrumb . "  <span class="cr">$sep</span> <a href="?cat=" . $CAT_REQUEST . "">" . catToName($CAT_REQUEST, true) . "</a>";
}
// Und Unterseite nur anzeigen wenn sie nicht gleich der Kategorie ist...
if ($pagetitle != catToName($CAT_REQUEST, true))
{
$breadcrumb = $breadcrumb . "  <span class="cr">$sep</span> <a href="?cat=" . $CAT_REQUEST . "&page=" . $PAGE_REQUEST . ""><strong>" . $pagetitle . "</strong></a>";
}
$content = preg_replace('/{BREADCRUMB}/', $breadcrumb, $content);

Gruß, Michael