Fragen zur Navigation und zu verschiedenen Layouts

Gesperrt
edgar
Beiträge: 10
Registriert: Mo 10. Nov 2003, 15:34
Wohnort: München
Kontaktdaten:

Fragen zur Navigation und zu verschiedenen Layouts

Beitrag von edgar »

Servus beinand,

ich hoffe das meine Fragen - die schon wesentlich weniger geworden sind - gelöst werden können, damit ich ein besseres Verständnis für contentido entwickeln kann.

Vorgabe des Kunden:
Er möchte auf unter jedem Hauptnavigationspunkt ein paar andere Images (im Layout nicht im Text) - passend zum Text haben (z.B. Unternehmen ist ein großes Bild der Firma, unter Kontakt ein Bild vom Chef...).

Nun meine erste Frage:
Heißt dies dass ich für jeden Hauptnavigationspunkt ein Neues Layout in der Rubrik Style/Layouts basteln muß?

----------------

Er möchte dass auf der Website eine horizontale Navigation ist. Leider habe ich im Forumsarchiv nicht die passende Antwort auf meine Frage gefunden. Wo ändere ich die Navigation von vertikal in horizontal?

Für's erste schon einmal Danke - die weiteren Fragen kommen bestimmt noch... ;-)

Danke!

Sonnige Grüße aus München!
Ryson
Beiträge: 22
Registriert: Sa 6. Mär 2004, 00:49
Wohnort: Erfurt
Kontaktdaten:

Beitrag von Ryson »

zum verständnis...

es gibt grafiken für jeden menüpunkt,
die sich mit der ausgewählten seite ändern?
als bilder, die von menüpunkt und artikel
abhängig sind?


zur möglichen lösung...

das menü wird normalerweise dynamisch erstellt.
einer kategorie läßt sich leider kein bild zuweisen.
einer seite eher, aber das läßt sich schlecht
mit der seite zusammenbringen.

man könnte aus den ids der relevanten punkte
$client, $lang, idcat ($idart) ... idcat (menüpunkt) und $idcat (Auswahl)
den namen für die entsprechende grafik zusammensetzen.


eine horizontale navigation gibt es bereits: die Service Navigation.
um das aussehen der menüs zu ändern,
musst du den code des modules und / oder
den der html-vorlagen ändern.
edgar
Beiträge: 10
Registriert: Mo 10. Nov 2003, 15:34
Wohnort: München
Kontaktdaten:

Beitrag von edgar »

Leider bringt mich die ServiceNavigation auch nicht weiter, da hier die Unterpunkte gleich mit dargestellt werden - und dass ist leider nicht Sinn der Sache.
Ich benötige ein Modul mit dem ich die Hauptnavigation in eine Zeile darstellen kann und die Subnavigation in eine extra Zeile (auch horizontal) ausgelagert wird.

Also im Prinzip soll meine Navigation so aussehen:

----------------------------------------------
link1+++link2+++link3+++...
----------------------------------------------
großes layout-bild
----------------------------------------------
link1.1+++link1.2+++link1.3
----------------------------------------------

Bin dankbar für jede Hilfe!
Ryson
Beiträge: 22
Registriert: Sa 6. Mär 2004, 00:49
Wohnort: Erfurt
Kontaktdaten:

Beitrag von Ryson »

Ok.

Die Ausrichtung von vertikal nach horizontal
änderst Du wie gesagt im Modul und den
Templates (die Dateien, nicht die unter Style).


Momentan wird eine Tabelle erstellt
und jeder Menüeintrag kommt in eine Zeile:
<table>
$tpl->generate('templates/navfirst_on.html'); // MenüZeile: <tr><td>...</td></tr>
</table>


Du musst den Code so ändern, daß alles in eine Zeile kommt.
Im Modul Hauptnavigation unter Output:

echo '<table cellspacing="0" cellpadding="0" border="0">';
nach
echo '<table cellspacing="0" cellpadding="0" border="0"><tr>';

und

echo '</table>';
nach
echo '</tr></table>';


in den datei-templates (contenido/cms/templates/)
navfirst_on.html und navfirst_off.html (für die erste Ebene)

<tr><td width="165" ...>...</td></tr>
nach
<td width="165" ...>...</td>


Für Dein Untermenü muss eigens ein neues Modul erstellt werden.
Die Hauptnavigation gibt Dir dafür immerhin eine Hilfe.
Sprich: alle Unterpunkte der aktuellen Hauptauswahl ermitteln und ausgeben.
Ich hoffe, Du kannst PHP!? :D
edgar
Beiträge: 10
Registriert: Mo 10. Nov 2003, 15:34
Wohnort: München
Kontaktdaten:

Beitrag von edgar »

Okay, erstmal danke und das funzt schonmal - doch leider sind meine PHP-Kenntnisse äußerst beschränkt...

Zudem hat sich ein weiteres Problem mir aufgetan - kann ich es irgendwie einstellen, dass die Tabelle, der die Navigationspunkte sind einen Punkt (bei mir Investor Relations) nicht umbricht? Dadurch hüpft das ganze Layout ein wenig aus dem Rahmen. ;-) Auch mit dem mittig setzen der einzelnen Navipunkte will es nicht so ganz funktionieren.

Sorry, dass ich mich anstelle wie der letzte Heuler.
Ryson
Beiträge: 22
Registriert: Sa 6. Mär 2004, 00:49
Wohnort: Erfurt
Kontaktdaten:

Beitrag von Ryson »

Ist doch halb so wild. ;)
Ich wurde leider auch nicht als allwissendes Genie geboren. :D
Und wenn es Fragen gibt, dafür ist ja das Forum da.

Für die Formatierung von Tabellen kommt wie gehabt
HTML und CSS zum Einsatz.


Mit HTML... durch width="?" im table- bzw. den td-TAGs
kannst Du die Tabelle bzw. die Zellen generell
auf einen festen Wert größer machen.

Mittig setzen kannst Du mit align="center" in den td-TAGs.
(valign="center" der vertikalen Ausrichtung)
edgar
Beiträge: 10
Registriert: Mo 10. Nov 2003, 15:34
Wohnort: München
Kontaktdaten:

Beitrag von edgar »

Okay, das werde ich schon irgendwie hinbekommen. Könntest du mir vielleicht noch bei der PHP-Geschichte mit der Subnavigation auf die Sprünge helfen?

Danke - hast dir ein Fleißbienchen verdient!
Ryson
Beiträge: 22
Registriert: Sa 6. Mär 2004, 00:49
Wohnort: Erfurt
Kontaktdaten:

Beitrag von Ryson »

Weiterhelfen ja, nur wo soll ich ansetzen?
Hast Du überhaupt schon programmiert?
Hast Du schon was in PHP, (My)SQL gemacht?

Grundsätzlich..
Wieviele Ebenen hast Du? Nur zwei, keine weiteren Verzweigungen?

für ein in einfaches Untermenü...
- fragst Du die aktuell ausgewählte Kategorie ab: $idcat
- ermittelst ggf. die parent's aus der Datenbank,
falls bereits ein Punkt im Untermenü gewählt wurde
bis maximal zum Hauptpunkt
- ermittelst alle Unterpunkte dieses Hauptpunktes aus der DB
- gibst die Menüpunkte als HTML aus
edgar
Beiträge: 10
Registriert: Mo 10. Nov 2003, 15:34
Wohnort: München
Kontaktdaten:

Beitrag von edgar »

Programmiert habe ich schon mal was in PHP und MySQL ist aber schon ein paar Monate her und die Kenntnisse sind doch eher dürftig.
Dafür bin in (D)HTML, CSS schon wesentlich besser bewandert.

Die Navigation verfügt momentan über zwei Ebenen (sprich Hauptnavigation mit einer Unterebene).
Ryson
Beiträge: 22
Registriert: Sa 6. Mär 2004, 00:49
Wohnort: Erfurt
Kontaktdaten:

Beitrag von Ryson »

Dann schau mal in das Modul Hauptnavigation rein,
da steht alles was Du brauchst.

In der URL wird die ID der Karegorie übergeben: idcat
und steht dann in PHP in der Variable $idcat zur Verfügung.

Da diese bereits ein Menüpunkt des Untermenüs sein kann,
musst Du Dich nach oben hangeln,
allerdings nicht über den Hauptpunkt hinaus.

Woher Du den im Script bekommst...
a) Du übernimmst den INPUT der Hauptnavigation
dann hast Du allerdings zweimal die gleiche Auswahl
b) Du legst den Wert in einer Variable ab,
die das Untermenü vom Hauptmenü übernimmt.
Dann müssen die Container allerdings in der richtigen Reihenfolge liegen.
c) Dir fällt etwas besseres ein.

für a) Was im Input für CMS_VAR[0] eingegeben wurde,
kannst Du im Output mit CMS_VALUE[0] abfragen:
$idx = "CMS_VALUE[0]";

für b) in Hauptnavigation wird $idx? gefüllt (musst du noch klären)
und in Untermenü abgefragt

für c) wüßte ich auch gern

was in der Funktion catIsChildOf() steht, kannst Du zu Hilfe nehmen
$sql = "SELECT
a.parentid
FROM
".$cfg["tab"]["cat"]." AS a,
".$cfg["tab"]["cat_lang"]." AS b
WHERE
a.idclient = '".$client."' AND
b.idlang = '".$lang."' AND
a.idcat = b.idcat AND
a.idcat = '".$parent."'";

$client = der aktuelle Mandant (im Normalfall: 1)
$lang = die aktuelle Sprache (im Normalfall: 1 ... deutsch)

$parent ist Dein Ausgangspunkt.
Du musst die Abfrage so oft durchlaufen,
bis Du den gewählten Hauptpunkt
und dem eingestellten Baum CMS_VALUE[0] / $idx
gefunden hast.


Dann nimmst du die so ermittelte id ($sel_idcat)
und suchst Dir die Unterpunkte aus der Datenbank:
$sql = "SELECT
A.idcat,
C.name
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$sel_idcat'
ORDER BY
A.idtree";

die kannst du dann ausgeben, an die nötigen Werte
für alle Menüpunkte kommst Du ungefähr so:

while( $db-nextrecord() )
{
$a_href = $sess->url( 'front_content.php?idcat='.$db-field('idcat') );
$a_titel = $db-field('name');
}



Ich hoffe, das ist verständlich und hilft.
Einen Schritt weiter und ich müßte es selbst programmieren.
Gesperrt