Seite 2 von 3

Verfasst: Fr 28. Mär 2008, 18:17
von tono
Lupus hat geschrieben:Mir wachsen graue Haare ... :cry:
Da hilft der Friseur. Ansonsten fehlt in deinem SQL-Statement ein Komma. Welches ist das Modul 49 bei Dir?

Verfasst: Fr 28. Mär 2008, 18:23
von Lupus
Danke Tono!!!

Ich hatte übrigens das Upgrade für die Tables gewählt....

Bin gespannt auf die Lösung ...

Verfasst: Fr 28. Mär 2008, 18:31
von Lupus
Ach da war er ja nochmal ...
es müsste das Modul HauptNav2 sein - war bisher aber fehlerfrei ...

Hier der Output:

Code: Alles auswählen

<?php 


/* 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; 

$sql = "SELECT 
            A.idcat, 
            C.name, 
          C.public, 
             C.idcatlang 
        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, 
                    a.idartlang AS idartlang 
                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 
                    c.idclient  = '".$client."' AND 
                    c.idcat     = b.idcat AND 
                    a.idart     = b.idart AND 
                    a.idlang    = '".$lang."'"; 

        $db2->query($sql); 
        #$db2->next_record(); 
      $flag = false; 
      while ($db2->next_record()&&!$flag) { 
           if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang)) 
           { 
            $flag = true; 
               $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 
       
               $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"), 
                                                  "name"   => $db->f("name"), 
                                                  "public" => $db->f("public"), 
                                            "idcatlang" => $db->f("idcatlang"), 
                                                  "target" => $target); 
           } 
      } 
} 

/* Create Navigation Array */ 
if(($sel_idcat=='')||($sel_idcat=='0')){ 
    $cApiClient = new cApiClient($client); 
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage'); 
} 

nav($sel_idcat); 

/* Start Output buffer */ 
ob_start(); 

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

   if (checkCatPermission($data['idcatlang'],$data['public'])) { 

       /* 2. Navigation level */ 
       if (is_array($data['sub'])) { 
           foreach ($data['sub'] as $key => $data) { 
            if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                  $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/navsecond_on.html'); 
               }elseif(is_array($data['sub'])){ 
                    $tpl->generate('templates/navsecond_open.html'); 
                  } else { 
                      $tpl->generate('templates/navsecond_off.html'); 
                  } 

          /* 3. Navigation level */ 
                  if (is_array($data['sub'])) { 
                      foreach ($data['sub'] as $key => $data) { 
                     if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                             $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'); 
                        }elseif(is_array($data['sub'])){ 
                             $tpl->generate('templates/navthird_open.html'); 
                             } else { 
                                 $tpl->generate('templates/navthird_off.html'); 
                             } 

                             /* 4. Navigation level */ 
                           if (is_array($data['sub'])) { 
                               foreach ($data['sub'] as $key => $data) { 
                              if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                                      $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/navfourth_on.html'); 
                                 }elseif(is_array($data['sub'])){ 
                                      $tpl->generate('templates/navfourth_open.html'); 
                                      } else { 
                                          $tpl->generate('templates/navfourth_off.html'); 
                                      } 

                                      /* 5. Navigation level */ 
                                    if (is_array($data['sub'])) { 
                                        foreach ($data['sub'] as $key => $data) { 
                                       if (checkCatPermission($data['idcatlang'],$data['public'])) { 
                                               $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/navfifth_on.html'); 
                                               } else { 
                                                   $tpl->generate('templates/navfifth_off.html'); 
                                               } 
                                          } // end if 
                                        } // end foreach 
                                    } // end if 
                                 } // end if 
                               } // end foreach 
                           } // end if 
                        } // end if 
                      } // end foreach 
                  } // end if 
               } // end if 
           } // end foreach 
          } // end if 
    } // end if 
} // end foreach 

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

/* Clean buffer */ 
ob_end_clean(); 

/* Output buffer-contents */ 
echo $html; 
?> 
PS: die Haare schneide ich mir immer selber ... :wink:

Verfasst: Fr 28. Mär 2008, 19:20
von tono
Das Modul sieht auch gut aus, aber irgendwoher muss das falsche SQL ja kommen.

In diesem Modul wird die Funktion nav() aufgerufen, aber nicht definiert. Der Fehler könnte auch in dieser Funktion stecken, ich denke die wird in einem anderen Modul definiert, das vorher in deinem Layout ist.

Allgemein scheint dieser Fehler nichts mit dem HTML-Newsletter zu tun zu haben.

Verfasst: Fr 28. Mär 2008, 19:29
von Lupus
.... hm ... bisher ist er auch nicht noch einmal aufgetreten ...
Die log ist leer ...

Verfasst: Sa 29. Mär 2008, 13:23
von Lupus
Das komplette Backend ist heute merkwürdigerweise wieder in deutsch - gestern ging es trotz Cache-Löschung und erzwungener Aktualisierung in IE und Firefox nicht ...
... very strange ...
Nun ist lediglich das nach wie vor fehlende Submenü noch zu lösen.

Verfasst: Sa 29. Mär 2008, 17:28
von HerrB
Das Problem ist die verwendete Funktion
str_split
, die steht nicht in PHP < 5 zur Verfügung.

Das Einfügen vor der Zeile

Code: Alles auswählen

  $aFields[$sField]               = strtolower(htmlentities(trim(i18n("Group") . "_" . str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname")))));
ist richtig, diese muss dann aber auch ersetzt werden:

Code: Alles auswählen

  $aFields[$sField]               = strtolower(htmlentities(trim(i18n("Group") . "_" . $sGroupName)));
Das fehlende Komma fehlt im Hauptnavigations-Modul.

Subnavi: Wurden die Eintragung in _nav_sub vorgenommen?

Bzw. Welche Subnavigation wird nicht dargestellt?

Gruß
HerrB

Verfasst: Sa 29. Mär 2008, 18:08
von Lupus
OK, das werde ich noch überprüfen, obwohl bisher die Navigation klappt.

Die PHP-Version ist 4.4.8 das wird's also sein ...

Der Code von der include.recipients_import.php ist geändert. Danke!

Wegen der Subnavi:

Ich meine die Subnavi vom Newsletter, die nicht erscheint.
Der Eintrag in der _nav_sub war schon enthalten und stimmt überein.

SG, Lupus

Verfasst: So 30. Mär 2008, 23:10
von HerrB
Zur Subnavigation: Das ist vermutlich der eine Eintrag, der tatsächlich über die Versionen geändert und nicht nur hinzugefügt wurde (habe es in meinem Post ergänzt):

Außerdem diesen Eintrag in _frame_files korrigieren (für den Eintrag in der Tabelle, der idarea = 16 und frame = 3 hat, idfile in 114 ändern):

Code: Alles auswählen

'118', '16', '3', '114'
Gruß
HerrB

Verfasst: Mo 31. Mär 2008, 10:32
von Lupus
SQL-Fehler: Ja, da war's ... in Zeile 121 von Hauptnav1 - Danke !!!

_frame_files korrigieren (für den Eintrag in der Tabelle, der idarea = 16 und frame = 3 hat, idfile in 114 ändern):

Code: Alles auswählen

'118', '16', '3', '114'
...hm ... der ist aber genauso drin .... ich musste da nichts ändern ...

Verfasst: Mo 31. Mär 2008, 21:10
von HerrB
Mmmh, eines von den Dingern ist es. Kannst Du mal einen Screenshot posten?

Gruß
HerrB

Verfasst: Di 1. Apr 2008, 08:46
von Lupus
Ich hoffe, das war gemeint ....

Bild

Verfasst: So 6. Apr 2008, 00:55
von HerrB
Mmmh, das ist der Eintrag, den ich oben gepostet habe. Und in der _files steht auch: '114', '16', 'include.newsletter_subnav.php', 'main'?

Mache mal eine Abfrage der _files mit idarea=16 als Filter und poste das Ergebnis.

Gruß
HerrB

Verfasst: Mo 7. Apr 2008, 12:08
von Lupus

Code: Alles auswählen

114 16 include.subnav_blank.php main 
102 16 functions.forms.php inc 
101 16 include.newsletter_edit.php main 
100 16 include.newsletter_menu.php main 
 81 16 include.newsletter_left_top.php main 
Hier ist es HerrB

Verfasst: Di 8. Apr 2008, 01:04
von HerrB
Sage ich doch: Erste Zeile korrigieren: Da muss 'include.newsletter_subnav.php' stehen...

Gruß
HerrB