^_^
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
-
- Beiträge: 140
- Registriert: Fr 20. Feb 2004, 17:48
- Wohnort: Braunschweig
- Kontaktdaten:
Hallo Craxx,
vielleicht hilft Dir das weiter:
http://contenido.org/forum/viewtopic.php?p=27648#27648
Kürze den Output des Moduls auf die erste Ebene.
Grüße,
Karin.
vielleicht hilft Dir das weiter:
http://contenido.org/forum/viewtopic.php?p=27648#27648
Kürze den Output des Moduls auf die erste Ebene.
Grüße,
Karin.
-
- Beiträge: 140
- Registriert: Fr 20. Feb 2004, 17:48
- Wohnort: Braunschweig
- Kontaktdaten:
Hallo Craxx,
Sorry, ich dachte, Du könntest die Trennstriche selbst einfügen.
Ok. Nimm das nachfolgende Modul.
Wie es aussieht, kannst Du Dir vorab unter
http://www.ausbildungswerkstatt-bs.de/index.php ansehen.
Es ist die obere Navigation.
(Die Site wird gerade im Hintergrund aufgebaut und ist nur über diesen Link erreichbar)
Vorab noch Eines: da es eine Liste ist, mußt Du Dich entscheiden, ob Du die Trennstriche vor
oder hinter den Navigationspunkt setzen willst.
Eine Lösung, wie Du sie Eingangs beschrieben hast geht deshalb nicht.
Setzt Du einen Trennstrich vor oder nach der Liste, bekommst Du Schwierigkeiten mit der
Formatierung, da dannder Trennstrich außerhalb der Liste ist.
Dann müßtest Du auf die Liste verzichten und Div's oder Span's einsetzen.
BTW: Damit es sich mit dem Hauptnavigationsmodul im gleichen Template verträgt, habe ich
"function catIsChildOf" in "function catIsChildOf2"
und
"function nav" in "function nav2" geändert.
Nun aber das Modul:
CSS-Formatierung:
INPUT:
OUTPUT:
Grüße,
Karin.
Sorry, ich dachte, Du könntest die Trennstriche selbst einfügen.
Ok. Nimm das nachfolgende Modul.
Wie es aussieht, kannst Du Dir vorab unter
http://www.ausbildungswerkstatt-bs.de/index.php ansehen.
Es ist die obere Navigation.
(Die Site wird gerade im Hintergrund aufgebaut und ist nur über diesen Link erreichbar)
Vorab noch Eines: da es eine Liste ist, mußt Du Dich entscheiden, ob Du die Trennstriche vor
oder hinter den Navigationspunkt setzen willst.
Eine Lösung, wie Du sie Eingangs beschrieben hast geht deshalb nicht.
Code: Alles auswählen
Text 1 | Text 2 | Text 3 | Text 4
nur:
| Text 1 | Text 2 | Text 3 | Text 4
oder:
Text 1 | Text 2 | Text 3 | Text 4 |
Formatierung, da dannder Trennstrich außerhalb der Liste ist.
Dann müßtest Du auf die Liste verzichten und Div's oder Span's einsetzen.
BTW: Damit es sich mit dem Hauptnavigationsmodul im gleichen Template verträgt, habe ich
"function catIsChildOf" in "function catIsChildOf2"
und
"function nav" in "function nav2" geändert.
Nun aber das Modul:
CSS-Formatierung:
Code: Alles auswählen
#servnav-top {
width: auto;
text-align: right;
}
#servnav-top OL {
display: block;
list-style-type: none;
margin: 0;
padding: 0;
}
#servnav-top LI {
display: inline;
font-weight: normal;
margin: 0;
padding: 0;
}
#servnav-top LI A {
padding: 0;
font-size: 0.7125em;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
}
#servnav-top LI SPAN {
width: 5px;
font-size: 60%;
}
#servnav-top LI A:link, #servnav-top LI A:visited {
color: #015BA1;
background: transparent;
}
#servnav-top LI A:hover, #servnav-top LI A:active {
text-decoration: underline;
color: #015BA1;
background: transparent;
}
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : ServiceNav_1
* Author : Karin Daehne
* Basierend auf : Navigation @autor Jan Lengowski <Jan.Lengowski@4fb.de> @copyright four for
business AG 2003
* Created : 12-02-2005
* Modified :
************************************************/
?>
<table cellspacing="0" cellpadding="0" cellpadding="5">
<tr>
<td class="text">Baum wählen:</td>
<td>
<select name="CMS_VAR[0]">
<option value="0">-- kein --</option>
<?php
$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
C.idlang = '".$lang."' AND
B.idclient = '".$client."' AND
C.visible = 1 AND
A.level = '0'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
if ( "CMS_VALUE[0]" == $db->f("idcat") ) {
echo '<option selected="selected"
value="'.$db->f("idcat").'">'.$db->f("name").'</option>';
} else {
echo '<option
value="'.$db->f("idcat").'">'.$db->f("name").'</option>';
}
}
?>
</select>
</td>
</tr>
</table>
<?php
Code: Alles auswählen
<!--start Modul 03_ServiceNav_1-->
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : ServiceNav_1
* Author : Karin Daehne
* Basierend auf : Navigation @autor Jan Lengowski <Jan.Lengowski@4fb.de> @copyright four for
business AG 2003
* Created : 12-02-2005
* Modified :
************************************************/
if ( !is_object($db2) ) {
$db2 = new DB_Contenido;
}
/**
* Check if a category is child
* of another category
*
* @return boolean true/false
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
* @copyright four for business AG 2003
*/
function catIsChildOf2($id, $idparent) {
global $cfg, $client, $lang;
$db = new DB_Contenido;
$parent = $id;
while ( $parent != 0 ) {
$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."'";
$db->query($sql);
$db->next_record();
$parent = $db->f("parentid");
if ($parent == $idparent) {
return true;
}
}
return false;
}
if ( catIsChildOf2($idcat, CMS_VALUE[0]) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = CMS_VALUE[0];
}
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
/**
* Array storing alle the
* navigation data
*/
$navitems = array();
/* Template Instance */
$tpl = new Template;
/**
* Recursive function for creating
* the navigation array
* @param Int $idcat Category id
*/
function nav2($idcat) {
global $navitems, $client, $lang, $cfg;
$db = new DB_Contenido;
$db2 = new DB_Contenido;
$sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";
$db->query($sql);
$db->next_record();
$parentid = $db->f("parentid");
if ( $parentid == 0 ) {
if ( $idcat != CMS_VALUE[0] ){
$navitems = array();
$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 = 'CMS_VALUE[0]'
ORDER
BY A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" =>
$db->f("idcat"),
"name" =>
$db->f("name"),
"target" => $target);
}
}
return true;
}
$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 = '$parentid'
ORDER BY
A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav2($parentid);
} // end function
$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";
$db->query($sql);
while ( $db->next_record() ) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
b.is_start = '1' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$db2->next_record();
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
/* Create Navigation Array */
nav2($sel_idcat);
/* Start Output buffer */
ob_start();
//Reihenfolgen-ID
$navid=1;
/************************************************************/
echo '<div id="servnav-top">';
echo "\n<ol>\n";/*liste erste ebene***********************************/
foreach ($navitems as $key => $data) {
/* 1. Navigations Ebene */
$tpl->reset();
$tpl->set('d', 'NAME', nl2br($data['name']));
//$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('?idcat='.$data['idcat']));
$tpl->set('d', 'NAVID', 'NAV'.$navid);
$tpl->next();
echo '<li ';/*anfang listenpunkte erste ebene**********************/
if ($idcat == $data['idcat']) { // für aktiven menüpunkt ->active
echo 'id="servnav-top'.$navid.'-ee-active"><span> | </span><a
class="servnav-ee-active"
href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'">'.$data['name'].'</a>';
} elseif ( is_array($data['sub']) ) { // für geöffnete kategorien ->on
echo 'id="servnav-top'.$navid.'-ee-on"><span> | </span><a class="servnav-ee-on"
href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'">'.$data['name'].'</a>';
} else { // für geschlossene nicht aktive kategorie ->off
echo 'id="servnav-top'.$navid.'-ee-off"><span> | </span><a class="servnav-ee-off"
href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'">'.$data['name'].'</a>';
}
$navid++;
echo "</li>\n";/*ende listenpunkte erste ebene************************/
} // end foreach
echo "</ol>\n";/*ende liste erste
ebene*******************************************************/
/***********************************************************/
echo "</div>\n";
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html;
?>
<!--end Modul 03_ServiceNav_1-->
Karin.
Re: Alternatives Listenelement
[quote="Craxx"]Wie kann ich so etwas darstellen?
Du musst einfach vor das Ende Deines foreach-Befehls (innerhalb des Navigationscodes) folgende Zeile einfügen:
Code: Alles auswählen
Text 1 | Text 2 | Text 3 | Text 4
Code: Alles auswählen
if (next($navitems)) echo "|";
// end foreach