Hallo,
wie kann ich abfragen ob die weiterleitung eines Artikels aktiviert ist.
Ich nutze das Modul SitemapExtended
(http://forum.contenido.org/viewtopic.php?t=16493)
und möchte alle Artikel mit aktivierter weiterleitung draußen haben.
Wer kann mir helfen das umzusetzen und hat ein paar Tips.
Besten Dank!
stefkey
abfrage ob weiterleitung aktiv (extendedSitemap) [gelöst]
abfrage ob weiterleitung aktiv (extendedSitemap) [gelöst]
Zuletzt geändert von stefkey am Fr 5. Sep 2008, 18:17, insgesamt 1-mal geändert.
-
- Beiträge: 3215
- Registriert: Do 21. Okt 2004, 11:08
- Wohnort: Augsburg
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 17 Mal
- Kontaktdaten:
Re: abfrage ob weiterleitung aktiv
Das kannst du beim Erstellen des Select-Statements z. B. mit "con_art_lang.redirect = 1" abfragen. Wenn beim Artikel ein Redirect definiert wurde, hat das Feld "redirect" den Wert 1, ansonsten 0.wie kann ich abfragen ob die weiterleitung eines Artikels aktiviert ist.
Vermute, dass es ausreichen sollte, wenn du in der Modulausgabe einen Teil der Zusammenstellung des Statements von
Code: Alles auswählen
...
$lo_sql.= 'LEFT OUTER JOIN '.$cfg["tab"]["art_lang"].' AS ART_LANG ';
$lo_sql.= ' ON (CAT_ART.idart = ART_LANG.idart) ';
$lo_sql.= ' AND (ART_LANG.online = 1) ';
// startartikel einbeziehen?
if( $lo_set["Art_IncStart"] != 'true')
{ $lo_sql.= ' AND (CAT_LANG.startidartlang != ART_LANG.idartlang) '; }
$lo_sql.= 'LEFT OUTER JOIN con_art_lang AS ART_LANG_START ';
$lo_sql.= ' ON (CAT_ART.idart = ART_LANG_START.idart) ';
$lo_sql.= ' AND (ART_LANG_START.online = 1) ';
$lo_sql.= ' AND (CAT_LANG.startidartlang = ART_LANG_START.idartlang) ';
$lo_sql.= 'WHERE CAT_LANG.idlang = \''.$lang.'\' ';
...
Code: Alles auswählen
...
$lo_sql.= 'LEFT OUTER JOIN '.$cfg["tab"]["art_lang"].' AS ART_LANG ';
$lo_sql.= ' ON (CAT_ART.idart = ART_LANG.idart) ';
$lo_sql.= ' AND (ART_LANG.online = 1) ';
$lo_sql.= ' AND (ART_LANG.redirect = 0) ';
// startartikel einbeziehen?
if( $lo_set["Art_IncStart"] != 'true')
{ $lo_sql.= ' AND (CAT_LANG.startidartlang != ART_LANG.idartlang) '; }
$lo_sql.= 'LEFT OUTER JOIN con_art_lang AS ART_LANG_START ';
$lo_sql.= ' ON (CAT_ART.idart = ART_LANG_START.idart) ';
$lo_sql.= ' AND (ART_LANG_START.online = 1) ';
$lo_sql.= ' AND (ART_LANG_START.redirect = 0) ';
$lo_sql.= ' AND (CAT_LANG.startidartlang = ART_LANG_START.idartlang) ';
$lo_sql.= 'WHERE CAT_LANG.idlang = \''.$lang.'\' ';
...
Das Beispiel ist nicht getestet...
Gruß
xmurrix
Hallo xmurrix,
es funktioniert nur wenn der Artikel ein Startartikel ist und eine Weiterleitung hat.
Das ganze soll aber nur wirken wenn es kein Startartikel ist und die Weiterleitung gesetzt ist.
Ich hab schon rum probiert, komme aber wegen Syntax Problemen nicht weiter.
Vielleicht hast du den Plan.
Grüße aus Heidelberg,
stefkey
es funktioniert nur wenn der Artikel ein Startartikel ist und eine Weiterleitung hat.
Das ganze soll aber nur wirken wenn es kein Startartikel ist und die Weiterleitung gesetzt ist.
Ich hab schon rum probiert, komme aber wegen Syntax Problemen nicht weiter.
Vielleicht hast du den Plan.
Grüße aus Heidelberg,
stefkey
-
- Beiträge: 3215
- Registriert: Do 21. Okt 2004, 11:08
- Wohnort: Augsburg
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 17 Mal
- Kontaktdaten:
Habe mir das gerade etwas näher angesehen.
Die im Moduloutput zuzammengestellte SQL-Anweisung ist nur zum Auslesen der Kategorien verwendet, weiter unten werden pro Kategorie die Artikel geholt. D. h. die Änderung daran kannst zurücksetzen.
Ersetze im Moduloutput, ab der Zeile 299
gegen
Eventuell sollte das dir weiterhelfen.
Gruß
xmurrix
Die im Moduloutput zuzammengestellte SQL-Anweisung ist nur zum Auslesen der Kategorien verwendet, weiter unten werden pro Kategorie die Artikel geholt. D. h. die Änderung daran kannst zurücksetzen.
Ersetze im Moduloutput, ab der Zeile 299
Code: Alles auswählen
// hole naechsten artikel
$lo_article = $lo_artlist->nextArticle();
//artikelhead holen
$lo_arthead = strip_tags(trim( $lo_article->getContent('CMS_HTMLHEAD', 1) ));
Code: Alles auswählen
// hole naechsten artikel
$lo_article = $lo_artlist->nextArticle();
if ($lo_article->getField('redirect') == '1' {
// artikel hat eine weiterleitung, gehe zum naechsten artikel
continue;
}
//artikelhead holen
$lo_arthead = strip_tags(trim( $lo_article->getContent('CMS_HTMLHEAD', 1) ));
Gruß
xmurrix
Nicht zu fassen!!!
Es geht.
Es fehlte noch ne Klammer am Ende des if - Arguments...
hier nochmal mit Klammer:
// hole naechsten artikel
$lo_article = $lo_artlist->nextArticle();
if ($lo_article->getField('redirect') == '1') {
// artikel hat eine weiterleitung, gehe zum naechsten artikel
continue;
}
//artikelhead holen
$lo_arthead = strip_tags(trim( $lo_article->getContent('CMS_HTMLHEAD', 1) ));
Tausend Dank!
stefkey
PS: Programmierst du auch für Geld?
Hätte vielleicht mal bezahlte Kleinigkeiten...
Es geht.
Es fehlte noch ne Klammer am Ende des if - Arguments...
hier nochmal mit Klammer:
// hole naechsten artikel
$lo_article = $lo_artlist->nextArticle();
if ($lo_article->getField('redirect') == '1') {
// artikel hat eine weiterleitung, gehe zum naechsten artikel
continue;
}
//artikelhead holen
$lo_arthead = strip_tags(trim( $lo_article->getContent('CMS_HTMLHEAD', 1) ));
Tausend Dank!
stefkey
PS: Programmierst du auch für Geld?
Hätte vielleicht mal bezahlte Kleinigkeiten...
