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

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]