^_^

Gesperrt
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

^_^

Beitrag von i-fekt »

^_^
Zuletzt geändert von i-fekt am Fr 22. Okt 2010, 13:00, insgesamt 1-mal geändert.
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

hmm, ich meine, dass jemand so etwas schon mal realisiert hat, aber wenn du danach suchst, brauchst du wohl etwas Ausdauer, denn mir faellt leider gerade kein Suchbegriff ausser "Navigation" ein. Evtl. gibt's mit "horizontale Navigation" weniger Treffer, und der gesuchte ist dabei.
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

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.
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

^_^
Zuletzt geändert von i-fekt am Fr 22. Okt 2010, 13:00, insgesamt 1-mal geändert.
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

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.

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 |
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:

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;
}
INPUT:

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
OUTPUT:

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-->
Grüße,
Karin.
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

^_^
Zuletzt geändert von i-fekt am Fr 22. Okt 2010, 13:00, insgesamt 1-mal geändert.
rzwei
Beiträge: 65
Registriert: Mo 28. Feb 2005, 17:02
Wohnort: Isartal
Kontaktdaten:

Re: Alternatives Listenelement

Beitrag von rzwei »

[quote="Craxx"]Wie kann ich so etwas darstellen?

Code: Alles auswählen

Text 1 | Text 2 | Text 3 | Text 4
Du musst einfach vor das Ende Deines foreach-Befehls (innerhalb des Navigationscodes) folgende Zeile einfügen:

Code: Alles auswählen

 if (next($navitems)) echo "|";
// end foreach
Gesperrt