Navigation mal ganz anders

CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

im errorlog steht gar nix, da habe ich auch direkt geschaut.
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul »

ne, gibt keine Fehlermeldungen aus.
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

hat das Modul wirklich noch keiner ausprobiert???
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

@smeusel: könntest du mal die aktuelle Version des Moduls von diener Seite hier posten? Ich bräuchte so ein Modul dringend :roll:
AlexG
Beiträge: 37
Registriert: Do 26. Jun 2003, 13:27
Wohnort: Baiersdorf
Kontaktdaten:

Hi CyberDan!

Beitrag von AlexG »

CyberDan hat geschrieben:@smeusel: könntest du mal die aktuelle Version des Moduls von diener Seite hier posten? Ich bräuchte so ein Modul dringend :roll:
Ich habe das Modul mal ausprobiert, funktioniert auch hervorragend. Zu sehen
unter http://www.treffpunkt-gebrauchtwagen.de ... p?idcat=25 (nur mal schnell so)

in der ersten Navebene im OutputCode von smeusel haben sich zwei kleine fehler eingeschlichen navfirst sollte eigentlich navifirst heissen, wenn man sich an die Bezeichnung der Templates halten will.

Gruss, Alex
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

Hallo Alex,

danke für den schnellen Test. Bei mir bringt das aber nichts, da ich die Orignalen Templates benutze und die auch ohne "i" geschrieben werden. Vom Modul kommt auf der Seite einfach nix an. Sicher, dass du nicht sonst noch was verändert hast?

Das einzige, was von dem Modul auf meiner Seite ankommt ist der button_freihalter-rechts.jpg.
AlexG
Beiträge: 37
Registriert: Do 26. Jun 2003, 13:27
Wohnort: Baiersdorf
Kontaktdaten:

Beitrag von AlexG »

CyberDan hat geschrieben:Hallo Alex,

danke für den schnellen Test. Bei mir bringt das aber nichts, da ich die Orignalen Templates benutze und die auch ohne "i" geschrieben werden. Vom Modul kommt auf der Seite einfach nix an. Sicher, dass du nicht sonst noch was verändert hast?

Das einzige, was von dem Modul auf meiner Seite ankommt ist der button_freihalter-rechts.jpg.
Hi Cyberdan, das Modul ist definitiv 1 zu 1 übernommen, wie gesagt, habe noch die 2 "i" ergänzt. Evt. krachts ja mit einem anderen Modul, was setzt du denn noch für module in kombination mit dieser 2 geteilter Navigation ein?

Alex
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

ich benutze eigentlich nur noch die Standardmodule Headline und Text. Und auch wenn ich diese aus dem Tamplate enferne kommt nix an.
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

Ich habe das Modul gerade in einem anderen Mandanten getestet und da geht es einwandfrei. Ich verzweifle hier gleich :-(

Am Layout kanns auch nicht liegen: Ich habe gerade das Layout aus dem anderen Mandanten in diesen kopiert und dann geht das Modul auch nicht.

Kann es vielleicht mit den Sprachen zusammenhängen? Ich benutze in diesem Mandanten 2 Sprachen und in dem anderen (in dem das Modul funktioniert) nur eine.
smeusel
Beiträge: 53
Registriert: Do 18. Mär 2004, 11:27
Kontaktdaten:

Beitrag von smeusel »

hi CyberDan,

nu hab ich das posting gefunden :-)

das modul, dass ich verwendet habe, war eine absolute "quick and dirty" lösung. bei einer installation hat sie funktioniert, bei einer anderen nicht. der letzte stand der dinge, wo es funktioniert hat ist dieser:

input "navi ebene 1"

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="4">

    <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 "navi ebene 1"

Code: Alles auswählen

<?php 
$test_1 = "CMS_VALUE[0]"; 

if ( !is_object($db1) ) { 
  $db1 = new DB_Contenido; 
} 

function catIsChildOf_1($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; 
    } 
  }// end while 
  return false; 
}//end function 

if ( catIsChildOf_1($idcat, "CMS_VALUE[0]") ) { 
  $sel_idcat_1 = $idcat; 
} else { 
  $sel_idcat_1 = "CMS_VALUE[0]"; 
} 

/* Include Template Class */ 
include_once($cfg["path"]["contenido"] . 'classes/class.template.php'); 

/** 
* Array storing all the 
* navigation data 
*/ 
$navitems_1 = array(); 

/* Template Instance */ 
$me_tpl_1 = new Template; 

/** 
* Recursive function for creating 
* the navigation array 
* @param Int $idcat Category id 
*/ 
function nav_1($idcat) { 
  global $navitems_1, $client, $lang, $cfg; 
  $db = new DB_Contenido; 
  $db1 = 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_1 = 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."' 
               "; 
        $db1->query($sql); 
        $db1->next_record(); 
        
        $target = ( $db1->f("ext") == 0 ) ? '_self' : '_blank'; 
        $navitems_1[$db->f("idcat")] = array( 
        "idcat" => $db->f("idcat"), 
        "name" => $db->f("name"), 
        "target" => $target); 
      }// end while 
    }// end if 
    return true; 
  }//end if 
  $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."' 
            "; 
  $db1->query($sql); 
  $db1->next_record(); 
  
  $target = ( $db1->f("ext") == 0 ) ? '_self' : '_blank'; 
  
  $tmp_nav_1[$db->f("idcat")] = array( 
  "idcat" => $db->f("idcat"), 
  "name" => $db->f("name"), 
  "target" => $target); 
  }//end while 
  
  $tmp_nav_1[$idcat]["sub"] = $navitems_1; 
  $navitems_1 = $tmp_nav_1; 
  
  /* Function call */ 
  nav_1($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_1' 
        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."' 
         "; 
  $db1->query($sql); 
  $db1->next_record(); 
  
  $target = ( $db1->f("ext") == 0 ) ? '_self' : '_blank'; 
  $navitems_1[$db->f("idcat")] = array( 
  "idcat" => $db->f("idcat"), 
  "name" => $db->f("name"), 
  "target" => $target); 
  }//end while 

/* Create Navigation Array */ 
nav_1($sel_idcat_1); 

/* Start Output buffer */ 
ob_start(); 

foreach ($navitems_1 as $key => $data) { 
  /* 1. Navigations Ebene */ 
  $me_tpl_1->reset(); 
  $me_tpl_1->set('d', 'NAME', $data['name']); 
  $me_tpl_1->set('d', 'TARGET', $data['target']); 
  $me_tpl_1->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat'])); 
  $me_tpl_1->next(); 
  
  if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
    $me_tpl_1->generate('templates/navfirst_on.html'); 
  } else { 
    $me_tpl_1->generate('templates/navfirst_off.html'); 
  }//end if 
  if (is_array($data['sub'])) { 
    $tmp_data_me1 = array(); 
    $tmp_data_me1 = $data; 
  }// end if 
}// end foreach 


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

/* Clean buffer */ 
ob_end_clean(); 

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

?>

input "navi ebene 2+3"
gibt es nicht

output "navi ebene 2+3"

Code: Alles auswählen

<?php 


if (is_array($tmp_data_me1['sub'])) { 
$data = $tmp_data_me1; 

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

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

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

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

if (is_array($data['sub'])) { 
$tmp_data_me12 = array(); 
$tmp_data_me12 = $data; 
} 
}// end foreach 

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

}// end if 

?>

Das war der letzte stand der navi. so richtig elegant ist dieser stand aber auch nicht. eigentlich müsste dass ding mal komplett neu gemacht werden und dann gleich so flexibel, dass man per container jede ebene an eine andere stelle der seite setzten kann (nicht nur ebene 1 von den anderen trennen). aber das riecht nach mächtig aufwand.... :-D


grüße,
smeusel
Gesperrt