Seite 1 von 1

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

Verfasst: Do 19. Aug 2004, 15:50
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?

Verfasst: Fr 20. Aug 2004, 14:23
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...

Verfasst: Di 24. Aug 2004, 15:42
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)

}
?>


Super Teil !!!

Verfasst: Mi 15. Jun 2005, 18:17
von Pneumatik
Danke danke und nochmals Danke.

Genau solch ein Teil hab ich gesucht.



Gruß Pneu

Verfasst: Fr 17. Jun 2005, 16:11
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]