??? Fragen zur Navigazion !!!!!

Gesperrt
Kathrin77
Beiträge: 28
Registriert: Do 18. Mär 2004, 16:58
Kontaktdaten:

??? Fragen zur Navigazion !!!!!

Beitrag von Kathrin77 »

Hallo erst mal

Bin gerade neu zu Contenido gestoßen,
Brauch Hilfe bei der Er Stellung einer Navigation hab das Forum hier durch Geforstet und nicht wirklich Schlauer geworden.

Hier mein Problem.


Beispiel:

Punkts 1 Punkts 2 Punkts 2 beim Mouse Over dann in der zweiten Spalte

Punkt 1.a Punkt 1.b und so weiter Stehen

Wie in dem Absolut genialen Projekt http://www.edco.de/ Menüpunkt Leistung zusehen ist
SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader »

moin

ich denke das die Seite mit 2 Navigationsmodulen arbeitet

Das Erste Modul zeigt wohl entweder die Vorhandenen und Online gestellten Kategorieren Bäume oder die Unterkategorieren einer Kategorie an ...

diese Kategorieren wiederum werden wohl mit einem anderen layout/template ausgestatten sein, die zusätlich zum 1. ten Navigationsmodul ein zweites enthält, das wieder entweder ddie Unterkategorieren zu der gewählten Kategorie ODER die Artikel die in dieser Kategorie eingestellt sind ..

das zweite Module gibt es schon im Beispiel das im Contenido Download Pack enthalten ist ( 4.4.2 und 4.4.4 auf jedenfall, die anderen kenn ich nicht ). Sowohl die Unternavigation bzw. die "Artikel" liste könnte man für diesen zweck der zwieten NavBar hernehmen und design mäßig an das Layout anpassen.

Für die Intranetpage habe ich einige verschiedene Module geschrieben, darunter auch ein paar Nav-Module ... werde diese morgen mal mitbringen.

Falls du nciht ganz verstanden hast, hack einfach weiter nach ;)

sers

Stefan Bürk
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x
Kathrin77
Beiträge: 28
Registriert: Do 18. Mär 2004, 16:58
Kontaktdaten:

Beitrag von Kathrin77 »

Danke erstmal für die Antwort

wenn ich dich richtig verstanden habe dann muss ich

2 Temps erstellen und dann ein die Navigation Teilen und wie teilt man denn eine Navigation sorry, wenn ich dumm Frage.
:oops:
SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader »

du brauchst ZWEI Navigationsmodule ... bzw eines das du konfigurieren kannst und in Zwei Container mit unterschiedlichen Konfigurationen einbaust.

+---------------------------------------+
+ Titelgrafik +
+---------------------------------------+
+ Naviggationsmodul 1 +
+---------------------------------------+
+ Navigationsmodul 2 +
+ ---------------------------------- ----+
+ CONTENT +
+ bzw. weitere elemente +
+----------------------------------------+

So in diese Richtung sieht ja die Struktur der Page aus die du haben möchtest.

Navigationsmodul 1:
Diese Modul liestet entweder Kategoriestammbäume auf oder halt nur die erste ebene der Unterkategorieren zu einer ausgewählten Kategorie.

Navigationmodul 2:
Listet die Unterkategorieren einer gewählten Kategorie aus oder die einzelnen Artikel einer gewählten Kategorie.



Du erstellst also ein Layout in dem du die CMS_CONTAINER[x] definierst.

Als nächstes ein Layout, mit dem du die einzelnen Container mit den entsprechenden Modulen belegst ( Headline, Text, Nav1, Nav2 usw. ).

Module, die für Navi1 und Navi2 nehmen kannst gibt es sowohl im Contenidobeispiel bzw. im Forum hier und im Downloadbereich.

Hier mal ein Modu, das du auch sowohl für Navi1 und auch Navi 2 nehmen kannst:



Modul - Input

Code: Alles auswählen

/***********************************************
* INPUT
************************************************/

// selected category
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr valign=\"top\">
          <td>Kategorie wählen:</td>
          <td>
            <select name=\"CMS_VAR[0]\">";
            if($selected!="0" && $selected!=""){
             echo"<option value=\"0\">--- kein ---</option>";

            }else{
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
            }

            // fetch all categorys
            $query = "	SELECT 
            			A.idcat, 
            			A.level, 
            			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 C.idlang='$lang' 
                     		AND B.idclient='$client' 
                     		AND C.visible=1 ORDER BY A.idtree";
                     		
            // execute query
            $db->query($query);

            // loop result and build the options
            while ($db->next_record()) {

              // indent spacer
              $spaces = "|";

              // how many levels
              $levels = $db->f("level");

              for ($i = 0; $i < $levels; $i ++) {
                // add 2 spaces for every level
                $spaces = $spaces . "--";

              } // end for
              
              $spaces .= ">";


              if ($selected == $db->f("idcat")) {
                // selected category
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } else {
                // category
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } // end if

            } // end while

echo "      </select>";

echo "    </td>
        </tr>
      </table>";
Modul Output

Code: Alles auswählen

<?php

/***********************************************
* OUTPUT
************************************************/

include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");

// ****************************************************************************************************
// SECURITY-CHECKS
// ****************************************************************************************************

// SQL-Injection Überprüfungen und Work-Arounds

// lokale Variabeln initialisieren um Injections zu unterbinden
$db2 		= "";
$catStart 	= "";
$sTmpStr 	= "";
$db2_sql 	= "";
$catIds 	= "";
$key 		= "";
$val 		= "";
$sql 		= "";

// ****************************************************************************************************

// erstelle eine zweite DB-Klasseninstanz, da wir hier
// mit zwei Abfragen udn Resultsets arbeiten müssen
$db2 = new DB_Contenido;


// Hole aus der Artikeldefinition die Ausgewählte Navigationsebene
$catStart = "CMS_VALUE[0]";

if ($catStart != "") {
  $sTmpStr = "";

  // Ermittlung aller Kategorie IDs der ausgesuchten
  // Navigationsebene und speicherug in einem Array
  // $catIds = conDeeperCategoriesArray($catStart);


	$db2_sql = "	SELECT
				*
			FROM ". $cfg["tab"]["cat"] ." AS A
		
			WHERE
			
			  A.parentid = ". $catStart;

	// Abfrage ausführen
	$db2->query($db2_sql);

  	// Ermittlung aller Kategorie IDs der ausgesuchten
  	// Navigationsebene und speicherug in einem Array
	while ( $db2->next_record() ) {
       		$catIds[] = $db2->f("idcat");
	}



  // Überprüfung ob $catIds wirklich ein Array ist
  if ( is_array($catIds) ) {

    // die einzelnen IDs durchgegen
    foreach($catIds as $key=>$val) {

      // Ersten Eintrag überspringen, da es sich dabei umd
      // den Menupunkt selbst handelt und dieser nicht
      // Angezeigt werden soll.
      if ($key != 0) {

        
        // Datenbankabfrage ( SQL QUERY ) aufbauen
        $sql = "SELECT 
        		CAT.idcat AS idcat, 
        		name 
        	FROM 
        		".$cfg["tab"]["cat"]." AS CAT, 
        		".$cfg["tab"]["cat_lang"]." AS CATLANG 
        		
               	WHERE 	CAT.idcat = ".$val."
               		AND CAT.idcat = CATLANG.idcat
               		AND CATLANG.idlang = '$lang'
               		AND CATLANG.visible = '1'";

        // Datenbankabfrage durchführen
        $db->query($sql);


        // die einzelnen Recordsets der Datenbankabfrage durchgehen
        while ( $db->next_record() ) {
         
                // überprüfung, ob schon ein Eintrag in der Ausgabevariabel ist
        	if ( strlen($sTmpStr) == 0 ) {
        	    // ... Nein, dann die Formatierung für den ersten Eintrag verwenden
        	    // und den Eintrag der Ausgabevariabel hinzufügen
	            $sTmpStr = $sTmpStr .  '[<a class="klein" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>]';
	        }
	        else
	        {
	            // ... Ja, dann die Formatierung für die weiteren Einträge verwenden und
	            // den Eintrag der Ausgabevariabel hinzufügen
	            $sTmpStr = $sTmpStr .  ' - [<a class="klein" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>]';	        
	        }  // end if
        } // end while
      } // if
    }  // end foreach
    // Ausgabevariabel schreiben, da nun alle Einträge behandelt wurden.
    echo '&nbsp;&nbsp;' . $sTmpStr;
  } // end if (is_array)


}
?>

Setze also in deiner Template definition dieses Modul sowohl in den Container für Navi1 und Navi2 ein.

Deine Kategoriestruktur sollte dann ca in diese richtung aussehen

HAUPTNAVIGATION
+----+ NAVI 1 - Punkt 1
| +-------+ NAVI2 - Punkt 1.1
| +-------+ NAVI2 - Punkt 1.2
+----+ NAVI 1 - Punkt 2
+-------+ NAVI2 - Punkt 2.1
+-------+ NAVI2 - Punkt 2.2

wobei HAUPTNAVIGATION der Kategoriebaum darstellt;
NAVI 1 - PUNKT 1 und NAVI 1 - PUNKT 2 sind Unterkategorien im "HAUPTNAVIGATION"-Kategorienbaum.

Punkt 1.1 und Punkt 1.2 sind wiederum Unterkategorien zu Punkt 1.
Punkt 2.1 und Punkt 2.2 sind wiederum Unterkategorien zu Punkt 2.

Du legst für diese Kategorien das Template fest, das du mit den Navigationsmodulen definiert hast. in der Entsprechenden Templatekonfiguration zur Kategorie legst du dann für die Kategorie

NAVI1 - Punkt 1

fest, das Navi1 als Startkategorie HAUPTNAVIGATION nimmt, und Navi2 als Startkategorei PUNKT 1 nimmt.

Ebenso bei Punkt 1.1 und 1.2.

Bei NAVI1 - PUNKT 2

wählst du für Navi1 als Startkategorie auch HAUPTNAVIGATION und für Navi2 dann PUNKT 2 als Startkategorie aus.

Ebenso für Punkt 2.1 und 2.2.

HAUPTNAVIGATION

Entweder du nimmst hier ein Template ( ein zweites ) das den NAVI 2 Modul Container nicht enthält und stellst dann in der Kategorietemplatekonfiguration für NAVI1 wiederum HAUPTNAVIGATION als Startkategorie ein.

Wenn du das selbe Template verwendest wie bei den oberen beschrieben konfiguriest du die HAUPTNAVIGATION Templatekonfiguration für NAVI1 auf HAUPTNAVIGATION und Navi2 läßt du auf "-- KEIN --" stehen bzw. stellst dies ein.

Zusätzlich solltest du den Modulcode durchgehen da dieser nur reine a hrefs definiert und dafür eine css klasse verwendet.
Müsstest dann halt den modulcode anpassen bzw ihn für beide navi level utnerschiedlich gestalten wenn du beide mit unterschiedlichen anzeigen bzw grafiken als hintergründe verwenden willst.

Funktional ist das gepostete Modul aber das was du brauchst.

Gruß
Stefan

P.S.: Der Modulcode ist der aus der Beispielseite, nur bissle angepasst ... hab die Datei mit der Headerinformation leider grad ned gefunden.
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x
Kathrin77
Beiträge: 28
Registriert: Do 18. Mär 2004, 16:58
Kontaktdaten:

Beitrag von Kathrin77 »

Danke für den tip Hat alles gut geklapt
gallier
Beiträge: 4
Registriert: Fr 26. Mär 2004, 22:38
Kontaktdaten:

Beitrag von gallier »

Hallo,

ich wundere mich gerade über die Vergewaltigung unserer Sprache - da wird aus "Navigation" eine "Navigazion" aus "mal" wird "ma" und aus "wenn ich Zeit habe" "= Zeit haben".

Ich will sicher nicht den Moralapostel spielen oder gundlos rummotzen - jedoch kommt mir bei solchen Dingen immer ein ungepflegter Jugendlicher in Schlabberhosen in die Sinne, der sich gerade in der Nase popelt, auf den Boden spuckt und sich am Hintern kratzt.

Komisch, wie empfindlich man manchmal bei solchen Trivialitäten wie der Sprache werden kann? ;-)

Grüße,

Der Gallier
SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader »

@gallier

du magst wohl recht haben ... nur sind wir hier weder in der einer vom staat geförderten lehreinrichtung noch in einer privaten.

Ein "vertipssler" ( in deiner Sprache ein Verfehlen der korrekten Taste) kann immer mal passieren, was aber gerade in einem Forum sehr schnell geschieht.

Deine Moralapostelfunktion kannst dir sonst wo hinschieben, sry .. aber deine Darstellung fnd ich echt übertrieben.

Wenn man unter Zeitdruck ist und keine Zeit hat, einen größeren Post 5 mal durchzugehen um jeglichen Verstoß gegen die Rechtschreibung auszumerzen, ist eine solche anprangung echt mies .... da überlegt sich ja bald jeder 2 mal ob er auf ne Frage antwortet, da ja eine Anprangung wegen eines unbeabsichtigten Verschreibens gleich als "Hexenjagt" geandert wird.

sers
Stefan
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x
Gesperrt