Haupnavigation mit Aliasen
Haupnavigation mit Aliasen
Hallo, ich versuche mich gerade von 4.4 auf 4.6 umzustellen, hat ja nette neue Features. Besonders gefallen mir die Aliase.
Nun mein Problem: ich möchte gerne die Navigation mit den Aliasen aufbauen (path=Alias) wie kann ich diese nun dynamisch auslesen? Also ungefähr so: $data['alias']? In welcher Tabelle werden diese denn gespeichert um sie auslesen zu können?
Gibt es sowas schon wo? Habe leider dazu nichts gefunden.
Vielen Dank für eure Hilfe.
Nun mein Problem: ich möchte gerne die Navigation mit den Aliasen aufbauen (path=Alias) wie kann ich diese nun dynamisch auslesen? Also ungefähr so: $data['alias']? In welcher Tabelle werden diese denn gespeichert um sie auslesen zu können?
Gibt es sowas schon wo? Habe leider dazu nichts gefunden.
Vielen Dank für eure Hilfe.
tabelle con_cat_lang -> feld urlnameIn welcher Tabelle werden diese denn gespeichert um sie auslesen zu können?
*** make your own tools (wishlist :: thx)
Erklärst Du uns bitte wie Du das machst!
Das würde mich nämlich auch interessieren. Bin auch gerade umgestiegen.
Danke schon mal...
Achja, was sind die Aliase eigentlich?
Das würde mich nämlich auch interessieren. Bin auch gerade umgestiegen.
Danke schon mal...
Achja, was sind die Aliase eigentlich?
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
Gerne biete ich euch meine Lösung an.
Die Aliase kannst du verwenden um mit diesen die Seiten statt mit idcat mit eben dem Alias (einem aussagekräftigen Namen) anzusprechen - ist besser für Suchmaschinen.
Ich habe es in eine (alte) Hauptnavigation eingebaut, welche auch noch dazu eine geteilte ist. Da ich nicht weiss ob dieses Navigationsmodul überhaupt (noch) Sinn macht (für jemanden anders), habe ich es jetzt nicht gesamt hier veröffentlich, sonden erkläre nur meine Änderungen.
Als erstes muss der Alias aus der Datenbank ausgelesen werden, dies mache ich so:
1. Schritt:
Geändert bzw. hinzugekommen ist dabei eigentlich nur die Zeile 4 um den Alias (urlname) auszulesen.
ACHTUNG: In diesem Navigationsmodul gibt es diese Abfrage 3mal jedesmal muss diese Zeile ergänzt werden (fragt mich bitte nicht wieso das so ist).
2. Schritt:
Wieder wird die Zeile mit dem urlname hinzugefügt - auch dies passiert dreimal.
3. Schritt:
Das war es dann auch schon.
P.S. die Aliase werden bei den Kategorien angegeben!
Die Aliase kannst du verwenden um mit diesen die Seiten statt mit idcat mit eben dem Alias (einem aussagekräftigen Namen) anzusprechen - ist besser für Suchmaschinen.
Ich habe es in eine (alte) Hauptnavigation eingebaut, welche auch noch dazu eine geteilte ist. Da ich nicht weiss ob dieses Navigationsmodul überhaupt (noch) Sinn macht (für jemanden anders), habe ich es jetzt nicht gesamt hier veröffentlich, sonden erkläre nur meine Änderungen.
Als erstes muss der Alias aus der Datenbank ausgelesen werden, dies mache ich so:
1. Schritt:
Code: Alles auswählen
$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";
ersetzen mit:
$sql = "SELECT
A.idcat,
C.name,
C.urlname
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";
ACHTUNG: In diesem Navigationsmodul gibt es diese Abfrage 3mal jedesmal muss diese Zeile ergänzt werden (fragt mich bitte nicht wieso das so ist).
2. Schritt:
Code: Alles auswählen
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
ersetzen mit:
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"urlname" => $db->f("urlname"),
"target" => $target);
3. Schritt:
Code: Alles auswählen
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
ersetzen mit:
$tpl->set('d', 'HREF', $sess->url('front_content.php?path='.$data['urlname']));
Das war es dann auch schon.
P.S. die Aliase werden bei den Kategorien angegeben!
hallo,
danke für Deine Ausführungen. Die werde ich mir wohl heute noch zu Gemüte ziehen. Mit den Aliasen hatte ich schon angefangen zu experimentieren, ich habe aussagekräftige Namen eingegeben und gehofft, dass die dann oben in der Adresszeile erscheinen, wenn ich die entsprechende Seite einstelle. Da muß ich wohl noch etwas recherchieren, wie das genau umgesetzt wird. Vielleicht bin ich ja auch nach deinen Ausführungen schlauer.
danke für Deine Ausführungen. Die werde ich mir wohl heute noch zu Gemüte ziehen. Mit den Aliasen hatte ich schon angefangen zu experimentieren, ich habe aussagekräftige Namen eingegeben und gehofft, dass die dann oben in der Adresszeile erscheinen, wenn ich die entsprechende Seite einstelle. Da muß ich wohl noch etwas recherchieren, wie das genau umgesetzt wird. Vielleicht bin ich ja auch nach deinen Ausführungen schlauer.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
Und hier das ganze für das Navigationsmodul in der 4.6.4
Ich habe das ganze mal in das Standardmodul 4.6.4 eingebaut. Klappt prima.
Do isset:
Do isset:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUPUT
*
* Modulname : Hauptnavigation
* Author(s) : Jan Lengowski, Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
* Anpassung : 26.01.2006 Patrick Dohmen - apical art webdesign
************************************************/
#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation
#Includes
cInclude("frontend", "includes/functions.navigation.php");
#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
$cApiClient = new cApiClient($client);
$start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}
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
*/
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, $start_cat) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = $start_cat;
}
/* 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, $start_cat;
$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 != $start_cat ){
$navitems = array();
$sql = "SELECT
A.idcat,
C.name,
C.urlname,
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 = '".$start_cat."'
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);
$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"),
"urlname" => $db->f("urlname"),
"target" => $target,
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"));
}
}
}
}
return true;
}
$sql = "SELECT
A.idcat,
C.name,
C.urlname,
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 = '$parentid'
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);
$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';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"urlname" => $db->f("urlname"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav($parentid);
} // end function
$sql = "SELECT
A.idcat,
C.name,
C.urlname,
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"),
"urlname" => $db->f("urlname"),
"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) {
/* 1. Navigation level */
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'URLNAME', $data['urlname']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?path='.$data['urlname']));
$tpl->next();
if ($idcat == $data['idcat']) {
$tpl->generate('templates/navfirst_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navfirst_open.html');
} else {
$tpl->generate('templates/navfirst_off.html');
}
/* 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', 'URLNAME', $data['urlname']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?path='.$data['urlname']));
$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', 'URLNAME', $data['urlname']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?path='.$data['urlname']));
$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', 'URLNAME', $data['urlname']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?path='.$data['urlname'])); $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', 'URLNAME', $data['urlname']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?path='.$data['urlname']));
$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;
?>
Zuletzt geändert von apicalart am Fr 27. Jan 2006, 13:06, insgesamt 1-mal geändert.
@ apicalart
dein code gab bei mir eine fette Fehlermeldung. Ich habe es noch einmal überprüft, ich habe alles korrekt kopiert und benutze auch das Standardmodul.
dein code gab bei mir eine fette Fehlermeldung. Ich habe es noch einmal überprüft, ich habe alles korrekt kopiert und benutze auch das Standardmodul.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']' in /kunden/114184_10553/contenido/cms/front_content.php(771) : eval()'d code on line 415apicalart hat geschrieben:Welche Fehlermeldungen denn ?
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
@ nicnac
Bitte probier nochmal. Ich habe jetzt die Erweiterung in eine saubere Installation gepackt und getestet und oben unsere Anpasung bezüglich idcat rausgenommen. Wenn das jetzt nicht funktioniert, dann liegt es nicht an dem Output des Moduls.
Das angepasste Modul läuft bei uns in der 4.6.2 und 4.6.4 einwandfrei.
Bitte probier nochmal. Ich habe jetzt die Erweiterung in eine saubere Installation gepackt und getestet und oben unsere Anpasung bezüglich idcat rausgenommen. Wenn das jetzt nicht funktioniert, dann liegt es nicht an dem Output des Moduls.
Das angepasste Modul läuft bei uns in der 4.6.2 und 4.6.4 einwandfrei.
Aliase auch für Artikelliste
Super Sache ist das, vielen Dank!
Kann mir vielleicht jemand verraten, wie ich das folgende Artikellistenmodul entsprechend anpassen, das dann ebenfalls die Aliase als Pfad ausgegeben werden?
Dank im Voraus,
Ayshe
Kann mir vielleicht jemand verraten, wie ich das folgende Artikellistenmodul entsprechend anpassen, das dann ebenfalls die Aliase als Pfad ausgegeben werden?
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts_alist_v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-05-2004
* Modified : 06-05-2004
************************************************/
// konfiguration
$categorie = "CMS_VALUE[0]";
$angezeigte_anzahl = "CMS_VALUE[1]";
if ($angezeigte_anzahl == '') $angezeigte_anzahl = 5;
$startartikel = "CMS_VALUE[2]";
if ($startartikel == '') $startartikel = true;
$subheadline = "CMS_VALUE[3]";
if ($subheadline == '') $subheadline = 100;
$navigationslink['previous'] = "CMS_VALUE[4]";
if ($navigationslink['previous'] == '') $navigationslink['previous'] = '[ «« ]';
$navigationslink['next'] = "CMS_VALUE[5]";
if ($navigationslink['next'] == '') $navigationslink['next'] = '[ »» ]';
$ebene = "CMS_VALUE[6]";
$limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);
$db = new DB_Contenido;
$db2 = new DB_Contenido;
// wenn startartikel true ist, werden die startartikel dargestellt, sonst nicht
$nurstartartikel = ($startartikel)?(''):('AND d.is_start = 0');
// liest die anzahl betroffener artikel aus der datenbank
switch ($ebene) {
case -2:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.parentid = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
$nurstartartikel
";
$sql_2 = "
SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.parentid = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
$nurstartartikel
ORDER BY e.artsort, e.title ASC
LIMIT $limit, $angezeigte_anzahl
";
break;
case -1:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
$nurstartartikel
";
$sql_2 = "
SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
$nurstartartikel
ORDER BY e.artsort, e.title ASC
LIMIT $limit, $angezeigte_anzahl
";
break;
case 0:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
$nurstartartikel
";
$sql_2 = "
SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
$nurstartartikel
ORDER BY e.artsort, e.title ASC
LIMIT $limit, $angezeigte_anzahl
";
break;
}
$db->query($sql_1);
$db->next_record();
$anzahl_artikel = $db->f("anzahl");
$db->query($sql_2);
echo '<ul class="artikelliste">';
while ($db->next_record()) {
$sql = "
SELECT value FROM {$cfg['tab']['content']}
WHERE
idartlang = ".$db->f("idartlang")."
AND idtype = 1
ORDER BY typeid ASC
";
$db2->query($sql);
$db2->next_record();
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")."&idart=".$db->f("idart"));
if ($idart == $db->f("idart")) {
echo "<li><a href=\"$link\" class=\"aktiv\">".urldecode($db2->f("value"))."</a></li>";
}
else {
echo "<li><a href=\"$link\">".urldecode($db2->f("value"))."</a></li>";
}
$db2->next_record();
// die subheadline auf die gew?nschte l?nge reduzieren (trennung nur
// nach bzw. vor einem ganzen wort
if (strlen($db2->f("value")) > $subheadline) {
$newsubheadline = '';
$worte = explode (" ",strip_tags(urldecode($db2->f("value"))));
$zulang = false;
foreach ($worte as $wort) {
if (strlen($newsubheadline." ".$wort) >= $subheadline) $zulang = true;
$newsubheadline = (!$zulang)?($newsubheadline." ".$wort):($newsubheadline);
}
$newsubheadline .= "...";
} else {
$newsubheadline = strip_tags(urldecode($db2->f("value")));
}
}
//weitere und vorherige Einträge falls Anzahl der gelisteten Artikel begrenzt ist
if ($limit > 0 || $anzahl_artikel > $limit + $angezeigte_anzahl) {
if ($limit > 0) {
$displaylimit = ($limit - $angezeigte_anzahl >= 0)?($limit - $angezeigte_anzahl):(0);
echo "<li><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['previous']}</a></li>";
} else {
echo '';
}
if ($anzahl_artikel > $limit + $angezeigte_anzahl) {
$displaylimit = $limit + $angezeigte_anzahl;
echo "<li><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['next']}</a></li>";
} else {
echo '';
}
}
echo '</ul>';
?>
Ayshe
Zufallsgenerator?
Hallo,
so ganz funktioniert das bei mir noch nicht. Habe die gesplittete Hauptnavigation von OSI entsprechend ergänzt bzw. geändert und Aliase im Backend eingetragen. Man muß übrigens dabei darauf achten, dass die Aliase eindeutig sind, Sonderzeichen, Leerzeichen etc. gehen nicht und ich habe den Eindruck, dass auch Bindestrick-Komposita zu Problemen führen.
Das alles habe ich nun also vermieden. Dennoch werden bestimmte Navigationspunkte falsch angesteuert. Z.B. wird bei der Auswahl des Menüs "Preise" (2. Nav.-Ebene) stattdessen das Impressum angezeigt. Orginell...
Oder statt der Seite "Webreferenzen" (ebenfalls 2. Nav.-Ebene) wird die Login-Fehlerseite angezeigt.
Sieht also so aus, als gäbe es noch n Problem mit der 2. Ebene der geteilten Hauptnavigation. Hier daher mal der Output-Code der des 2. Teils der Hauptnavigation, in der die Ebenen 2-5 enthalten sind.
Vielleicht hab ich noch nen Fehler übersehen...
Im Backend gibt's diese Fehlermeldung:
Ayshe
so ganz funktioniert das bei mir noch nicht. Habe die gesplittete Hauptnavigation von OSI entsprechend ergänzt bzw. geändert und Aliase im Backend eingetragen. Man muß übrigens dabei darauf achten, dass die Aliase eindeutig sind, Sonderzeichen, Leerzeichen etc. gehen nicht und ich habe den Eindruck, dass auch Bindestrick-Komposita zu Problemen führen.
Das alles habe ich nun also vermieden. Dennoch werden bestimmte Navigationspunkte falsch angesteuert. Z.B. wird bei der Auswahl des Menüs "Preise" (2. Nav.-Ebene) stattdessen das Impressum angezeigt. Orginell...
Oder statt der Seite "Webreferenzen" (ebenfalls 2. Nav.-Ebene) wird die Login-Fehlerseite angezeigt.
Sieht also so aus, als gäbe es noch n Problem mit der 2. Ebene der geteilten Hauptnavigation. Hier daher mal der Output-Code der des 2. Teils der Hauptnavigation, in der die Ebenen 2-5 enthalten sind.
Vielleicht hab ich noch nen Fehler übersehen...
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.urlname,
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"),
"urlname" => $db->f("urlname"),
"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?path='.$data['urlname']));
$tpl->next();
if ($idcat == $data['idcat']) {
$tpl->generate('templates/navsecond_on.html',0,0);
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navsecond_open.html',0,0);
} else {
$tpl->generate('templates/navsecond_off.html',0,0);
}
/* 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?path='.$data['urlname']));
$tpl->next();
if ($idcat == $data['idcat']) {
$tpl->generate('templates/navthird_on.html',0,0);
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navthird_open.html',0,0);
} else {
$tpl->generate('templates/navthird_off.html',0,0);
}
/* 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?path='.$data['urlname']));
$tpl->next();
if ($idcat == $data['idcat']) {
$tpl->generate('templates/navfourth_on.html',0,0);
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navfourth_open.html',0,0);
} else {
$tpl->generate('templates/navfourth_off.html',0,0);
}
/* 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?path='.$data['urlname']));
$tpl->next();
if ($idcat == $data['idcat']) {
$tpl->generate('templates/navfifth_on.html',0,0);
} else {
$tpl->generate('templates/navfifth_off.html',0,0);
}
} // 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;
?>
Gruß,/front_content.php?path=Portfolio next_record called with no query pending in Module ID 90.
Ayshe