Seite 1 von 1

Keine Links mehr nach Veränderung von navfirst templates

Verfasst: Mo 11. Jul 2005, 22:16
von MaltE
Hallo Contenidouser,

ich bin neu und habe deshalb erst mal brav die 4.4.5er mit Beispielen installiert. Nach dem das super einfach ging habe ich hier irgendwo gelesen, dass man die Hauptnavi nur per FTP ändern kann. Ich wollte die Linien dashed zu solid ändern. Ich also connected, Sicherheitskopien der htmls gezogen, Dreamweaver raus und ran an die HTML. Nach der Änderung wurden keine Links mehr angezeigt. Den Rahmen der navigation sieht man aber noch. Dann hab ich die Original html wieder in unveränderter Form ins templates DIR gelegt. Leider geht es immer noch nicht. Anstattdessen bekomme ich folgenden Errorlog:
[11-Jul-2005 22:16:37] MySQL error 1064: You have an error in your SQL syntax near 'WHERE idcat=0' at line 1
SELECT level FROM WHERE idcat=0
[11-Jul-2005 22:16:37] next_record called with no query pending.
Ich bin für jedwede Hilfestellung äusserst dankbar und hoffe im richtigen Forum zu posten... :roll:

Verfasst: Mo 11. Jul 2005, 22:24
von HerrB
Leider hat das eine mit dem anderen nix zu tun.

Bei SELECT level FROM WHERE idcat=0 fehlt die Tabelle (nach FROM). Warum die fehlt? Keine Ahnung, Modul kontrollieren.

Gruß
HerrB

Verfasst: Di 12. Jul 2005, 09:55
von MaltE
Vielen Dank HerrB!!! Dann war ich ja komplett falsch... kein Wunder dass ich gestern abend verzweifelt bin. Muss wohl unwissentlich was gelöscht haben als ich mir die Standardmodule angesehen habe.

Ich würde mich riesig freuen wenn jmd den orginalcode posten bzw. mir als pm zusenden könnte. :D Thx schonmal

Vielleicht kann ich es mir auch neu runter laden? Hier habe ich es bei den Downloadmodulen nicht gefunden.

Verfasst: Di 12. Jul 2005, 11:09
von HerrB
Ich würde Dir eher empfehlen, mal das Modul zu posten, welches diesen Code soweit enthält (ich tippe mal auf die Hauptnavigation).

Gruß
HerrB

Verfasst: Di 12. Jul 2005, 22:08
von MaltE
hiho hmm würde ich gerne aber ich habe es nicht mehr... ich waere echt dankbar wenn es mir wer schicken würde denn ich habe bestimmt schon 15h Arbeitsstunden investiert. Ich bräuchte nur das Standardnavigationsmodul aus der 4.4.5.

Oder kennt wer ein Tool mit dem ich die /n/r/ der installations *.sql verschwinden lassen kann? Manuell per Texteditor hat es heute nicht geklappt, das Modul konnte nicht compiled werden (hab wohl etwas zu viel /zu wenig) gelöscht. Zum selbst schreiben fehlt mir atm leider die Zeit da ich mich auf der Arbeit schon mit dem Java von Obtree rumschlagen muss...

Verfasst: Di 12. Jul 2005, 22:22
von HerrB
Eingabe:

Code: Alles auswählen

/**
 * Navigation
 *
 * INPUT
 *
 * @autor Jan Lengowski <Jan.Lengowski@4fb.de>
 * @copyright four for business AG 2003
 */

?>
<table cellspacing="0" cellpadding="0" cellpadding="0">
    <tr>
        <td class="text_medium" style="padding: 10px;">Baum w?hlen:</td>
        <td style="padding: 10px;">
            <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

Ausgabe:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Navigation 1.1
* Author      :     Jan Lengowski
* Copyright   :     Contenido - four for business
* Created     :     15-05-2003
* Modified    :     26-05-2003
************************************************/

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
 */
if (!function_exists("catIsChildOf"))
{
    function catIsChildOf($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 ( catIsChildOf($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 nav($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 */
        nav($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 */
nav($sel_idcat);

/* Start Output buffer */
ob_start();

echo '<table cellspacing="0" cellpadding="0" border="0">';

foreach ($navitems as $key => $data) {

    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
    $tpl->next();

    if ($idcat == $data['idcat'] || is_array($data['sub'])) {
        $tpl->generate('templates/navfirst_on.html');
    } else {
        $tpl->generate('templates/navfirst_off.html');
    }

    if (is_array($data['sub'])) {

        foreach ($data['sub'] as $key => $data) {

            /* 2. Navigations Ebene */
            $tpl->reset();
            $tpl->set('d', 'NAME',  $data['name']);
            $tpl->set('d', 'TARGET', $data['target']);
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
            $tpl->next();

            if ($idcat == $data['idcat'] || is_array($data['sub'])) {
                $tpl->generate('templates/navsecond_on.html');
            } else {
                $tpl->generate('templates/navsecond_off.html');
            }

            if (is_array($data['sub'])) {

                foreach ($data['sub'] as $key => $data) {

                    /* 3. Navigations Ebene */
                    $tpl->reset();
                    $tpl->set('d', 'NAME',  $data['name']);
                    $tpl->set('d', 'TARGET', $data['target']);
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
                    $tpl->next();

                    if ($idcat == $data['idcat']) {
                        $tpl->generate('templates/navthird_on.html');
                    } else {
                        $tpl->generate('templates/navthird_off.html');
                    }

                } // end foreach

            } // end if

        } // end foreach

    } // end if

} // end foreach

echo '</table>';

/* Read out buffer */
$html = ob_get_contents();

/* Clean buffer */
ob_end_clean();

/* Output buffer-contents */
echo $html;

?>
Gruß
HerrB

Verfasst: Mi 13. Jul 2005, 09:27
von MaltE
:D Danke HerrB.

Also ich hab die Navigation wieder eingebaut und die lampe ist grün, die Kompilierung geht also.

Leider habe ich nun wieder mein Ursprungsproblem:
die Links und deren Bezeichnungen in der Navi fehlen; wähle ich über einen Textlink einen Artikel aus der in der navi ist, ändert sich trotzdem die Hintergrundfarbe des entsprechenden Kästchens in der navi. Nur ist sie halt leer und ohne Links.
In meiner Error Log steht nun wieder:
[13-Jul-2005 10:13:00] MySQL error 1064: You have an error in your SQL syntax near 'WHERE idcat=0' at line 1
SELECT level FROM WHERE idcat=0
[13-Jul-2005 10:13:00] next_record called with no query pending.
Nun bin ich mir wieder ziemlich sicher nur die navtemplates per ftp angepasst zu haben und verzweifele erneut...

Trotzdem Danke für den Support HerrB, hätte ja auch daran liegen können.

Ich kontrollliere jetzt mal die anderen verwendeten Module.
Soll ich eventuell mal den htmltext des navtemplates posten? Eigentlich bin ich aber sicher dass er zu 100% Ordnung (hatte Sicherheitskopien) ist.

:?: :?: :?: :?:

Verfasst: Mi 13. Jul 2005, 09:47
von HerrB
Dieses Modul enthält gar nicht diese Abfrage...

Gruß
HerrB

Verfasst: Mi 13. Jul 2005, 13:32
von MaltE
>>> Ich werde am Wochenende eine Neuinstallation durchführen und versuchen zu retten was noch zu retten (implementierte Module,Texte,Images+ Layout) ist.