Seite 1 von 1

Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 02:22
von Peer
Hallo,

ich suche ein Modul das mir im Frontend anzeigt auf welcher Menü-Ebene ich bin.
Ich möchte für die einzelnen Headline auf den unterschiedlichen Ebene andere Text Größen.

Hat jemand eine Idee???

Vielen Dank

Gruß

Peer

Re: Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 06:37
von idea-tec
Ist in der Beispielmandanten-Installation nicht eine Breadcrumb-Navigation drin?
Mit der kannst du dir das anzeigen, zumindest aus der Kategoriestruktur abgeleitet.

Re: Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 09:08
von frederik
@ Peer: Und, geht das so? was anderes kommt mir auch nicht in den Sinn, aber eig muss das über die BN funktionieren können.

Re: Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 10:10
von Spider IT
Hallo Frederik,

um in den unterschiedlichen Navigationsebenen unterschiedliche Schriftgrößen für die Headlines anzugeben, musst du den Headlines unterschiedliche Klassen mitgeben, also muss die Programmierung zur Erkennung der Ebene in den Headline-Module integriert werden.
Die Ebene steht in der Tabelle <prefix>_cat_tree, erreichbar über den Array-Eintrag $cfg['tab']['cat_tree'].
Eine einfache Abfrage wäre

Code: Alles auswählen

$sql = 'SELECT level FROM ' . $cfg['tab']['cat_tree'] . ' WHERE (idcat=' . $idcat . ')';
$db->query($sql);
$db->next_record();
$Level = $db->f('level');
Danach kannst du dann dieses Level an den Klassennamen anhängen

Code: Alles auswählen

... class="Headline<?php echo $Level; ?>"> ...
Damit hast du dann die Klassen Headline0, Headline1, Headline2 usw., die du im Stylesheet mit unterschiedlichen Schriftgrößen usw. belegen kannst.

Gruß
René

Re: Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 11:25
von Peer
Hallo Renè,

danke für deine Rückmeldung. Aber leider bekomme ich das nicht hin.

Hier meint Output

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Output standard h1 headline
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2008-04-07
* modified 2008-11-13, Timo Trautman - fixed XHTML validation error, when module displays empty h1 tag
* }}
*
* $Id$
*/

if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}

$sText = "CMS_HTMLHEAD[1]";

$sql = 'SELECT level FROM ' . $cfg['tab']['cat_tree'] . ' WHERE (idcat=' . $idcat . ')';
$db->query($sql);
$db->next_record();
$Level = $db->f('level');

$tpl->reset();
if ($contenido && $edit) {
    $tpl->set('s', 'text', $sText);
    $tpl->generate('templates/headline_h1.html');
} else {
    if ($sText != '') {
        $tpl->set('s', 'text', strip_tags($sText));
        $tpl->generate('templates/headline_h1.html');
    }
}

?>
Hier meine HTMl Datei

Code: Alles auswählen

<div class="Headline<?php echo $Level; ?>">
<h1>{text}</h1>
</div>
Was mache ich falsch ?

Danke für die Hilfe

Re: Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 12:23
von Halchteranerin
Hallo Peer,
Peer hat geschrieben:Hier meine HTMl Datei

Code: Alles auswählen

<div class="Headline<?php echo $Level; ?>">
<h1>{text}</h1>
</div>
Was mache ich falsch ?
wenn das tatsächlich in der HTML-Datei steht, dann ist es einfach: da hat kein PHP etwas zu suchen. Du kannst in einer PHP-Datei HTML-Code benutzen, aber nicht umgekehrt.

Gruß
Christa

Re: Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 12:33
von Spider IT
Hallo Peer,

sorry, ich bin noch bei den 4.6er Module, die benutzen kein Template.
In deinem Fall muss die Variable $Level an das Template übergeben werden:

Code: Alles auswählen

$tpl->reset();
if ($contenido && $edit) {
    $tpl->set('s', 'text', $sText);
    $tpl->set('s', 'LEVEL', $Level); # einmal hier
    $tpl->generate('templates/headline_h1.html');
} else {
    if ($sText != '') {
        $tpl->set('s', 'text', strip_tags($sText));
        $tpl->set('s', 'LEVEL', $Level); # und einmal hier
        $tpl->generate('templates/headline_h1.html');
    }
}
In dem Template kommt dann kein PHP-Code, sondern die neue Variable {LEVEL}:

Code: Alles auswählen

<div class="Headline{LEVEL}">
<h1>{text}</h1>
</div>
Gruß
René

Re: Ebene Anzeigen

Verfasst: Di 9. Aug 2011, 12:47
von Peer
Vielen Dank :D

Funktioniert perfekt!

Re: Ebene Anzeigen

Verfasst: Mo 22. Aug 2011, 13:27
von frederik
wow. hier kann man ja einiges von den fehlern von andern lernen. daumen hoch dafür