Navigationswunder

Gesperrt
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Navigationswunder

Beitrag von jacke »

Hallo,
bei mt taucht ein komischer Fehler auf. Wenn ich in eine Kategorie springe, über die Hauptnavi, wird alles richtig angezeigt. Gelange ich auf den Artikel über die Seitennavi, ist das Hauptnavi weg. Dabei ist mir aufgefallen, dass ein unterschiedlicher client im Link angesprungen wird - nur wo ist da der Wurm drin?
Link über Hauptnavi:

http://www.torzurwelt.de/menteroda/fron ... t=8&lang=6

Link über Seitennavi:

http://www.torzurwelt.de/menteroda/fron ... t=1&lang=6

wo kann man das wie´der richten?

schönen Abend noch !!
jacke
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Welches Modul benutzt du fuer die "Seitennavi"? Servicenavi? Woher kommt der Client mit der Nr. 1? Der muss wohl auch im System vorhanden sein, sonst wuerde ja nichts angezeigt werden.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Hallo,

ich benutze - keine Ahnung wo das her ist-:

Seitennavigation
um eine zusätzliche Navigation über Artikel zu ermöglichen

Code: Alles auswählen


::INPUT::

// selected category
$selected = "CMS_VALUE[0]";
$checked = "CMS_VALUE[4]";



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' ".
                     "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>
        <tr>
          <td>Überschrift anzeigen ?</td>
          <td><input type=\"checkbox\" name=\"CMS_VAR[4]\" value=\"Y\"";
if($checked) echo " checked";
echo "></td>
        </tr>
        <tr>
          <td>Hintergrundfarbe</td>
          <td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\"></td>
        </tr>
        <tr>
          <td>Randfarbe</td>
          <td><input type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\"></td>
        </tr>
      </table>";


::OUTPUT::

<?
include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");

$first_line = "CMS_VALUE[4]";

$catStart = "CMS_VALUE[0]";

if ($catStart != "") {
  echo '<table cellpadding="0" cellspacing="0" border="0"><tr>';
  if($first_line == "Y") {
    echo '<td> <img src="images/leer.gif"> </td>';
  }
        $sql = "SELECT ART.idart, ARTLANG.title, CATLANG.idlang as lang, CAT.idclient FROM 
               ".$cfg["tab"]["cat_art"]." AS ART, ".$cfg["tab"]["cat_lang"]."
               AS CATLANG, ".$cfg["tab"]["art_lang"]." AS ARTLANG, 
               ".$cfg["tab"]["cat"]." AS CAT
               WHERE ART.idcat =  '".$catStart."' AND ART.idcat = CATLANG.idcat 
               AND ARTLANG.idart = ART.idart AND CATLANG.idlang = ARTLANG.idlang
               AND ARTLANG.online = '1'
               GROUP BY ARTLANG.title ORDER BY ARTLANG.artsort";

        $db->query($sql);


        while ( $db->next_record() ) {
          echo '<td height="21" class=".navigation" style="border: 1px; border-color: CMS_VALUE[6]; border-style: dashed; background-color: CMS_VALUE[5]; padding-left:7px; padding-right:7px;">
          <a class="klein" href="front_content.php?idcat='.$catStart.'&idart='.$db->f("idart").'&client='.$db->f("idclient").'&lang='.$db->f("lang").'">'.$db->f("title").'</a></td>';
        } // end while

  echo '</tr></table>';

}
?>
Ja, den Mandanten 1 gibt es auch - wird aber nicht benutzt.

Danke schon mal
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Ich kenne diese Navigation nicht, aber ist die evtl. falsch konfiguriert oder so? Eine andere Erklaerung habe ich leider nicht.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Dieses SQL-Statement ist Murx:

Code: Alles auswählen

$sql = "SELECT ART.idart, ARTLANG.title, CATLANG.idlang as lang, CAT.idclient FROM 
               ".$cfg["tab"]["cat_art"]." AS ART, ".$cfg["tab"]["cat_lang"]." 
               AS CATLANG, ".$cfg["tab"]["art_lang"]." AS ARTLANG, 
               ".$cfg["tab"]["cat"]." AS CAT 
               WHERE ART.idcat =  '".$catStart."' AND ART.idcat = CATLANG.idcat 
               AND ARTLANG.idart = ART.idart AND CATLANG.idlang = ARTLANG.idlang 
               AND ARTLANG.online = '1' 
               GROUP BY ARTLANG.title ORDER BY ARTLANG.artsort"; 
Es wird zwar die Tabelle con_cat als CAT eingebunden, jedoch in keinerlei Zusammenhang mit den anderen Tabellen gesetzt (es gibt nirgendwo ein CAT.idcat = <andere Tabelle>.idcat).

Daher erzeugt mySQL aus der Abfrage ein Kreuzprodukt aller möglicher Zeilen aus allen Tabellen.

Empfohlene Lösung: Code anderswo speichern (Backup) und dann ", CAT.idclient" und ", ".$cfg["tab"]["cat"]." AS CAT " aus der Abfrage entfernen:

Code: Alles auswählen

$sql = "SELECT ART.idart, ARTLANG.title, CATLANG.idlang as lang FROM 
               ".$cfg["tab"]["cat_art"]." AS ART, ".$cfg["tab"]["cat_lang"]." 
               AS CATLANG, ".$cfg["tab"]["art_lang"]." AS ARTLANG 
               WHERE ART.idcat =  '".$catStart."' AND ART.idcat = CATLANG.idcat 
               AND ARTLANG.idart = ART.idart AND CATLANG.idlang = ARTLANG.idlang 
               AND ARTLANG.online = '1' 
               GROUP BY ARTLANG.title ORDER BY ARTLANG.artsort"; 
Sofern Du nicht mehrere Mandanten im gleichen Verzeichnis einsetzt, kannst Du dann "&client='.$db->f("idclient").'" aus der Ausgabe weiter unten entfernen.

Wenn Du mehrere Mandanten im gleichen Verzeichnis hast (sehr ungewöhnlich) kannst Du das durch "&client='.$client.'" ersetzen. Generell benötigt man aber die $client-Angabe nicht, da sie sich aus dem Mandanten-Verzeichnis (Beispiel: cms) ergibt.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Danke,

als ich den vorgeschlagenen code ausgewechselt hab ging es nicht mehr - Fehlermeldung. Aber das entfernen der clietabfrage hall alles wieder schön gemacht (mit altem code)

nochmal DANKE!
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Der angegebene Code ist IMHO korrekt, da ist dann wohl was beim Austauschen schief gelaufen... das &client='.$db->f("idclient") muss man natürlich immer entfernen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt