Seite 3 von 4

Navigation (kleines Problem)

Verfasst: Fr 30. Mär 2012, 14:48
von darkjumper
hallo,

ich habe jetzt diese Navigation (screen3)

allerdings möchte ich, dass sie so wie in screen2 angezeigt wird (metanavi oben weg und bei der hauptnavigation die unterpunkte horizontal)

Ich habe schon Tipps von Spider IT bekommen, doch leider haben sie nichts gebracht.

Hier mal mein INPUT:

Code: Alles auswählen

?> 
<table cellspacing="0" cellpadding="0" cellpadding="4">

    <tr>
        <td class="text_medium">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
Das OUTPUT:

Code: Alles auswählen

$hauptkategorie = "CMS_VALUE[0]";

$navitems = array();

function nav_feld ($cat) {
global $client, $lang, $cfg, $idcat;

        if (!is_object($db)) {
            $db = new DB_Contenido;
        } 
        $sql = "SELECT
                     A.idcat,
                     B.parentid, 
                     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  = '$cat'
                  ORDER BY
                     A.idtree";

         $db->query($sql);

         while ( $db->next_record() ) {
            $aktiv = "";
            $sub_feld = nav_feld($db->f("idcat"));
            if ($db->f("idcat") == $idcat) $aktiv = "active";
            elseif ($sub_feld["activepath"]) $aktiv = "activepath";
            $nav_feld[] = array("idcat"      => $db->f("idcat"),
                                "name"       => $db->f("name"),
                                "active"     => $aktiv,
                                "sub"        => $sub_feld);
            if ($aktiv != "") $activepath = $aktiv;
         }
         $rv = array("feld"          => $nav_feld,
                     "activepath"    => $activepath);
         return $rv;
}

function liste ($array, $indent = "  ")
{
global $first;

       if (is_array($array["feld"])) {
         if ($first) {
           echo $indent . "<ul id=\"nav\">\n";
           $first = 0;
         }
         else echo $indent . "<ul>\n";
         foreach ($array["feld"] as $menupunkt) {
           if ($menupunkt["active"] == "active") echo $indent . $indent . "<li id=\"active\">\n";
           elseif ($menupunkt["active"] == "activepath") echo $indent . $indent . "<li class=\"activepath\">\n";
           else echo $indent . $indent . "<li>\n";
           if (is_array($menupunkt["sub"]["feld"])) {
             echo $indent . $indent . $indent . "<a class=\"daddy\" href=\"front_content.php?idcat=" . $menupunkt["idcat"] . "\">" . $menupunkt["name"] . "</a>\n";
             liste($menupunkt["sub"], $indent."    ");
           }
           else echo $indent . $indent . $indent . "<a href=\"front_content.php?idcat=" . $menupunkt["idcat"] . "\">" . $menupunkt["name"] . "</a>\n";
           echo $indent . $indent . "</li>\n";
         }
         echo $indent . "</ul>\n";
       }
}

/* Create Navigation Array */
$navitems = nav_feld($hauptkategorie);

$first = 1;

liste($navitems);



?>
Den Css-Code:

Code: Alles auswählen

/* ###################################################### */
/* ####################### NAVIGATION ################### */
/* ###################################################### */


#vpnavigation, #vpnavigation ul { /* alle Listen */
   padding: 0;
   margin: 0;
   list-style: none;
   line-height: 1;
}

#vpnavigation a {
   display: block;
   width: 10em;
}

#vpnavigation li { /* alle Listenelemente */
   float: left;
   width: 10em;
}

#vpnavigation li ul { /* Listen 2. Ebene */
   position: absolute;
   background: orange;
   width: 10em;
   left: -999em; /* durch "left" außerhalb des sichtbaren Bereichs wird das gleiche erreicht wie durch "display: none", kann aber auch von Textbrowser angezeigt werden */
}

#vpnavigation li li {
   position: relative;
}

#vpnavigation li li a.daddy { /* Listenelemente mit Unterpunkten */
   background: url(../images/rightarrow.gif) center right no-repeat;
}

#vpnavigation li ul ul { /* Listen 3. Ebene und weiter */
   margin: -1em 0 0 10em;
}

#vpnavigation li:hover ul ul, #vpnavigation li.sfhover ul ul {
   left: -999em;
}

#vpnavigation li:hover ul, #vpnavigation li li:hover ul, #vpnavigation li.sfhover ul, #vpnavigation li li.sfhover ul { /* Listen, die unterhalb von "gehoverten" Menüpunkte liegen */
   left: auto;
}

#vpnavigation li#active { /* Listen zur aktuellen Kategorie */
   font-style: italic!important;
}




P.s. Die Kategorien (und Artikel) der Hauptnavigation laufen über das Template "Standart" (und es ist der Baum:"Hauptnavigation" in der Konfiguration eingetragen Screen1)

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Sa 31. Mär 2012, 09:30
von Halchteranerin
Ich bitte dich, nicht für jedes deiner Navigationsprobleme ein neues Thema zu öffnen sondern beim ursprünglichen Thread zu bleiben. Ich habe schon mal erwähnt, dass ich die Beiträge zusammengeführt habe, und ich möchte nicht ständig hinter dir "aufräumen". Nicht alle Leute lesen alle Beiträge und wissen, dass du viele verschiedene Threads zum selben Thema eröffnet hast, und die Probleme können durchaus miteinander zu tun haben!
Vielen Dank!

Re: Navigation (kleines Problem)

Verfasst: Sa 31. Mär 2012, 11:04
von Spider IT
Es handelt sich nichtmal um "Probleme, die miteinander zu tun haben", sondern um das gleiche Problem.
darkjumper hat geschrieben:Ich habe schon Tipps von Spider IT bekommen, doch leider haben sie nichts gebracht.
Dabei hat er ein paar Beiträge zurück geschrieben:
darkjumper hat geschrieben:Gut hat funktioniert.
Seine letzte Rückmeldung im "alten" (diesen) Thread lautete dann (23.02.2012):
darkjumper hat geschrieben:Wenn es doch nicht tun sollte, melde ich mich heute Abend oder morgen nochmal
Eine solche Rückmeldung kam nicht mehr, also soll es wohl doch richtig gewesen sein.
Dann aber am 30.03.2012 ein neuer Thread mit genau dem gleichen Problem.

Ich wollte hier nur mal verdeutlichen, dass dieser Mensch die gebotene Hilfe anscheinend nicht richtig umsetzt, um dann noch einen weiteren Thread zum gleichen Thema zu eröffnen.
Aber, auch wenn ich nicht gläubig bin, möchte ich hier Jesus zitieren: "Vater, vergib ihnen, denn sie wissen nicht was sie tun".

Gruß
René

Wie bekomme ich die blauen Striche weg?

Verfasst: Sa 31. Mär 2012, 13:38
von darkjumper
1. Tut mir leid, dass ich immer ein neues Thread erstellt habe

2. Wie komme ich die blauen Striche oben und unten vom namen weg?

(screenshot)

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Sa 31. Mär 2012, 14:11
von Spider IT
Die sind im Stylesheet definiert, bei a:hover, da muss irgendwas mit text-decoration: stehen.

Gruß
René

->

Verfasst: Sa 31. Mär 2012, 14:59
von darkjumper
hay René

korrigiere mich bitte, wenn ich mich irre, aber ich finde keine Text-Decoration.

Code: Alles auswählen

#vpnavigation, #vpnavigation ul { /* alle Listen */
   padding: 0;
   margin: 0,5;
    background: orange;
   list-style: none;
   line-height: 3;
   
}

#vpnavigation a {
   display: block;
   width: 8em;
   
}

#vpnavigation li { /* alle Listenelemente */ /*Einzelner Button*/
   float: left;
   width:100px;
   text-align: center;
}



#vpnavigation li li {
   position: relative;
}



#vpnavigation li:hover ul ul, #vpnavigation li.sfhover ul ul {
   left: -999em;
}

#vpnavigation li:hover ul, #vpnavigation li li:hover ul, #vpnavigation li.sfhover ul, #vpnavigation li li.sfhover ul { /* Listen, die unterhalb von "gehoverten" Menüpunkte liegen */
   left: auto;
}

#vpnavigation li#active { /* Listen zur aktuellen Kategorie */
   font-style: italic!important;
}
P.s. das Horizontale hat doch geklappt (in code wurde nicht geschlossen oder irgendetwas einfaches^^)

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Sa 31. Mär 2012, 15:38
von Spider IT
In dem Stylesheet nicht, aber es kann überall ein Style für a:hover definiert sein.
Du kannst es aber auch explizit für die Navi ausschalten, indem du

Code: Alles auswählen

#vpnavigation a:hover {
    text-decoration: none;
}
einfügst.

Gruß
René

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Sa 31. Mär 2012, 16:33
von darkjumper
Danke.

Hab das Problem auch anders lösen könnten ;)

Jetzt habe ich aber doch noch eine Kleinigkeit, die ich gern wissen würde.

Wenn man über die Menupunkt der Navigation geht, werden sie anders farbig hinterlegt.

Code: Alles auswählen

#vpnavigation a:hover { 
    text-decoration: none;
    color: yellow; 
    background: #00CCFF; 
}
Wie kann ich einstellen, dass, wenn ich z.b. auf "Home" gehe, "Home" farbig hinterlegt bleibt?

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Sa 31. Mär 2012, 17:06
von Spider IT
Dafür musst du im Modul prüfen, ob die idcat des Navigationspunkts der gerade ausgegeben wird == $idcat und dann (wenn ja) den Link eine Klasse mitgeben (z.B. class="active").
Dann kannst du diese Klasse im Stylesheet separat formatieren.

Gruß
René

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Sa 31. Mär 2012, 17:14
von darkjumper
okay danke,

dass ist mein aktuelles output (beispiel von contenido).

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: 
* Main Navigation, displays Navigation from a starting idcat down to the max. level set.
* For now (as of 2009-01-12) all subcategories are put inside one <ul> and are assigned css classes 
* to distinguish level depth, first/last and active item property.
* 
* Module requires two client settings: 
* navigation_main_standard | start_idcat
* navigation_main_standard | level_depth
* 
* To modify the behaviour of the module (e.g. style of URL, CSS classes, ...), you need to edit Contenido_NavMain_Util::loopCats
* @see {frontend}/includes/Util/Modules/Contenido_NavMain_Util.class.php
*
* @version 1.0.0
* @author Rudi Bieller
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2009-01-12
* }}
*
* $Id: Navigation_Standard.php 3444 2009-01-19 11:42:59Z rudi.bieller $
*/

if (!isset($db)) {
    $db = new DB_Contenido();
}
if (!isset($tpl)) {
    $tpl = new Template();
}
$tpl->reset();

cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');
cInclude('frontend', 'includes/Util/Modules/Contenido_NavMain_Util.class.php');

$iStartIdcat = getEffectiveSetting('navigation', 'idcat-home', 1);
$iSelectedDepth = getEffectiveSetting('navigation', 'level-depth', 3);

if ($iStartIdcat > 0) {
    $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
    $oFeNav->setAuth($auth);
    $oFeNav->setRootCat($iStartIdcat);
    $oSubCategories = $oFeNav->getSubCategories($iStartIdcat, true, true, 1);
    // see if there are any subcategories to display
    if ($oSubCategories->count() > 0) {
        $aLevelInfo = array();
        $aDepthInfo = array();
        $aDepthInfo[0] = 0;
        $aDepthInfo[1] = $iSelectedDepth;
        foreach ($oSubCategories as $oSubCategory) {
            Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
        }
        $tpl->generate('templates/navigation_standard.html');
    }
} else {
    echo '<p>Navigation not configured correctly.</p>';
}
?>

Ich hab mal mitbekommen, dass man das aber auch nur über css machen könnte...

Über Module weiß ich schon...

Vielen Dank trotzdem René

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Mo 2. Apr 2012, 15:36
von darkjumper
schaust du dir bitte das Modul an?

Ich zwar im Internet viele Anleitungen gefunden, doch keine hat funktioniert.

Kannst du mir weiterhelfen?

was muss ich tun?

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Mo 2. Apr 2012, 16:35
von Spider IT
Schau dir erstmal den Output genau an, da könnte schon was drin sein.
Im Modul (den Code den du gepostet hast) ist diese Zeile:

Code: Alles auswählen

Contenido_NavMain_Util::loopCats($oSubCategory, $oFeNav, $tpl, $cfg, $lang, $aLevelInfo, intval($idcat), $aDepthInfo);
Da wird bereits die idcat als Integer übergeben (intval($idcat)).
Das muss ein Grund haben, wahrscheinlich um das aktive Navigationselement zu kennzeichnen.

Gruß
René

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Mo 2. Apr 2012, 16:51
von darkjumper
erstmal danke für deine schnelle Antwort,
dennoch weiß ich nicht, was ich mit dieser Antwort anfangen soll.

Wenn bereits die idcat als Integer übergeben (intval($idcat)) wird, muss ich da ja nichts mehr ändern ?!

Was muss ich css noch ädern?

_Tim

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Mo 2. Apr 2012, 17:58
von Spider IT
Hast du dir den Output angeschaut? (HTML der Seite)
Wenn da schon eine Klasse für den aktiven Eintrag definiert ist (z.B. class="active"), dann musst du nur noch diese Klasse im Stylesheet definieren.

Ich habe keine Lust, ein Contenido mit Demomandant zu installieren, nur um dir sagen zu können, ob eine derartige Ausgabe erfolgt.

Gruß
René

Re: Wie füge ich meine eigene Navigation in den Styleditor e

Verfasst: Mo 2. Apr 2012, 18:15
von darkjumper
haha kann ich verstehen :)

ne class == active ist noch noicht vorhanden, dass muss ich also nachholen


So steht es bei mir drin

Code: Alles auswählen

 <div id="vpnavigation">
                  <container id="30" name="Navigation_Main" types="Navigation" mode="fixed" default="Navigation_Main">Navigation_Main</container><br />
               </div>
Wie bringe ich da jetzt class == aktive rein?

Gruß _Tim