Navigation zum Blättern von einer Seite zur nächsten

Gesperrt
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Navigation zum Blättern von einer Seite zur nächsten

Beitrag von malsdgtac »

Ich habe gerade ein ausgefallenenes Design umzusetzen welches als Buch ausgelegt ist. Dabei gibt es oberhalb des Buches die Navigation, diese ist bereits fertig.

Auf den unteren Seiten des Buches ist ein kleiner Pfeil mit welchem man sozusagen umblättern kann. Wie kann ich es nun am besten umsetzen, dass dieser Link immer automatisch auf die nächste Seite in der Navigation (inklusive Unternavigation) verlinkt?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

so ne navigation hab ich hier im forum noch nicht gesehen...
du bräuchtest einen array der alle teile eines baumes beinhaltet... mit dem könnte man das dann machen... ich hab nur leider keine zeit so was zu schreiben...
*** make your own tools (wishlist :: thx)
malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Beitrag von malsdgtac »

Hallo für alle, die mal so eine Navigation brauchen, ich habe die Service-Navigation als Grundlage verwendet:

Eingabe:

Code: Alles auswählen

// 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>";
Ausgabe:

Code: Alles auswählen

<?php

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

$catStart = "CMS_VALUE[0]";

if ($catStart != "") {
  $catIds = conDeeperCategoriesArray($catStart);

  if ( is_array($catIds) ) {
	$i=0;
    foreach($catIds as $key=>$val) {
      // Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist
      // und nicht angezeigt werden soll.
      if ($key != 0) {

        $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'";

        $db->query($sql);


        while ( $db->next_record() ) {
					$seite[$i]=$db->f("idcat");
				if ($seite[$i-1]==$idcat){
					echo "<a href='front_content.php?idcat=".$seite[$i-2]."'>zurück</a>";
					echo "<a href='front_content.php?idcat=".$seite[$i]."'>weiter</a>";
					}
        $i++;
				} // end while
      } // if
    }  // end foreach
  } // end if (is_array)

}
?>

Pneumatik
Beiträge: 13
Registriert: Do 13. Jan 2005, 10:51
Kontaktdaten:

Super Teil !!!

Beitrag von Pneumatik »

Danke danke und nochmals Danke.

Genau solch ein Teil hab ich gesucht.



Gruß Pneu
Ronald.Fischer
Beiträge: 11
Registriert: Fr 29. Apr 2005, 17:04
Kontaktdaten:

Beitrag von Ronald.Fischer »

Hallo smac,
auch von mir ein dickes DANKE... dat dingen wird schon eingesetzt :D
Ich habe allerdings mit meinen bescheidenen PHP-Kentnissen folgende Modifikation gemacht.
  • Generierung einer "Table" mit CSS-Ausgabe (siehe echo Ausgaben)
    Setzen nur eines "weiter" am Kategorie-Anfang
    Setzen nur eines "zurück" am Kategorie-Ende
    Dazwischen wie gehabt "zurück weiter"
OUTPUT

Code: Alles auswählen

<?php 

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

$catStart = "CMS_VALUE[0]"; 

if ($catStart != "") { 
  $catIds = conDeeperCategoriesArray($catStart); 
echo '<table class="TableBackNext"><tr>';
  if ( is_array($catIds) ) { 
   $i=0; 
    foreach($catIds as $key=>$val) { 
      // Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist 
      // und nicht angezeigt werden soll. 
      if ($key != 0) { 

        $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'"; 

        $db->query($sql); 


        while ( $db->next_record() ) { 
               $seite[$i]=$db->f("idcat"); 
            if ($seite[$i-1]==$idcat){ 
               echo "<td class=\"TDBackNext\"><a href=\"front_content.php?idcat=$seite[$i]\">weiter</a></td>"; 
               } 
               elseif ($seite[$i]==$idcat && $seite[$i-1]>0){
               	echo "<td class=\"TDBackNext\"><a href=\"front_content.php?idcat={$seite[$i-1]}\">zurück</a></td>";
               }
        $i++; 
            } // end while 
      } // if 
    }  // end foreach 
  } // end if (is_array) 
echo "</tr></table>";
} 
?>
[edit] Habe "" bei den Links wieder hinzugefügt (hatte ich versehentlich gelöscht), da es sonst zu einem Validation-Error kommt (->...php? [/edit]
Gesperrt