Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Hallo Community,
ich möchte gerne schauen ob in Kategorie (idcat 9) neben den immer vorhandenen Startartikel der auch online ist, sich auch ein Online-Nicht-Startartikel befindet.
Über Tipss wäre ich sehr dankbar.
Vielen Dank
MFG Steffen
ich möchte gerne schauen ob in Kategorie (idcat 9) neben den immer vorhandenen Startartikel der auch online ist, sich auch ein Online-Nicht-Startartikel befindet.
Über Tipss wäre ich sehr dankbar.
Vielen Dank
MFG Steffen
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Mehr Info wäre schon gut, denn "schauen" kann man ganz einfach, in dem man ins Backend geht und unter "Artikel" schaut, ob da noch mehr Artikel in dieser Kategorie sind.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Morgen derSteffen,
mit folgendem Codebeispiel solltest du einen Online-Nicht-Startartikel aus einer Kategorie ermitteln können:
Gruß
xmurrix
mit folgendem Codebeispiel solltest du einen Online-Nicht-Startartikel aus einer Kategorie ermitteln können:
Code: Alles auswählen
cInclude('classes', 'class.article.php');
$articleColl = new ArticleCollection(array(
'idcat' => 9,
'lang' => $lang,
'client' => $client,
'start' => false, // Nicht Start-Artikel
'offline' => false, // Nicht Offline-Artikel, also online
'limit' => 1, // Nur einen Datensatz
'order' => 'created', // optional der Spaltenname (Tabelle con_art_lang) nach dem sortiert werden soll, default Wert ist 'created'
'direction' => 'DESC', // optional die Sortierrichtung, default Wert ist 'DESC'
));
$article = $articleColl->nextArticle();
if ($article) {
$myidart = $article->get('idart');
}
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Oh .. Hallo xmurrix,
vielen Dank für den Code-Schnipsel.
Ich habe das mal in meinem Modul eingebaut aber wie kann ich jetzt abfragen "Wenn vorhanden dann ... "
Ich habe es mit ...
versucht, aber leider gibt er ob Online-Nicht-Startikel vorhanden oder nicht beides mal "huhu" aus.
Vielen Dank
MfG Steffen
vielen Dank für den Code-Schnipsel.
Ich habe das mal in meinem Modul eingebaut aber wie kann ich jetzt abfragen "Wenn vorhanden dann ... "
Ich habe es mit ...
Code: Alles auswählen
if ($articleColl == '') {echo 'tada';} else { echo 'huhu';};
Vielen Dank
MfG Steffen
-
- Beiträge: 437
- Registriert: Do 19. Jun 2008, 09:09
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
$articleColl ist in diesem Fall die Collection der Artikel, die du abgefragt hast. In $article bekommst du ein Objekt des Artikels der gefunden wurde. Wenn also $article gesetzt ist, solltest du einen entsprechenden Artikel gefunden haben.
Viele Grüße
Dominik
Dominik
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Das ist am Ende (die letzten 3 Zeilen) des Beispiel-Codes angegeben, für dein Code würde das so aussehen:derSteffen hat geschrieben:...Ich habe das mal in meinem Modul eingebaut aber wie kann ich jetzt abfragen "Wenn vorhanden dann ...
Code: Alles auswählen
...
$article = $articleColl->nextArticle();
if ($article) {
$myidart = $article->get('idart');
echo "tada, artikelid ist {$myidart}";
} else {
echo "huhu, nichts gefunden";
}
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Hallo Dominik, hallo xmurrix,
vielen Dank. Der Code von xmurrix erfüllt meine Wünsche
Vielen Dank nochmal dafür!
MfG Steffen
vielen Dank. Der Code von xmurrix erfüllt meine Wünsche
Vielen Dank nochmal dafür!
MfG Steffen
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Hallo .. ich muss noch mal was fragen!
Das bedeutet doch, dass er überprüft ob in der Kategorie in der er sich befindet mind. ein Artikel vorhanden ist, der sich in dieser Kategorie, dieser Sprache, diesen Mandanten befindet, wo ein Start-Artikel existiert und ein Artikel offline ist .. oder habe ich was falsch verstanden?!
Komischerweise kommt als Ausgabe immer JA, obwohl sich in dieseer Kategorie kein Offline-Artikel befindet!
Ich gebe jetzt keine idcat an, denn er soll ja das auf die Kategorie anwenden, wo er sich gerade befindet!
Ich versuche nämlich krampfhaft im nächsten Schritt zu sagen ... wenn Contentallocatioen (also idpica_alloc) => 1 ist!
Das mein Code in etwa so aussieht:
Ich habe allerdings bedenken, dass das nicht so einfach sein wird, da ja die Klasse class.article.php gar nicht die Tabelle con_pica_alloc abfagt.
Vielen Dank
MfG Steffen
Code: Alles auswählen
cInclude('classes', 'class.article.php');
$articleCollCA = new ArticleCollection(array(
'idcat' => $idcat,
'lang' => $lang,
'client' => $client,
'start' => true,
'offline' => true,
'limit' => 1
));
$articleca = $articleCollCA->nextArticle();
if ($articleca) {echo "JA";} else { echo "NEIN";}
Komischerweise kommt als Ausgabe immer JA, obwohl sich in dieseer Kategorie kein Offline-Artikel befindet!
Ich gebe jetzt keine idcat an, denn er soll ja das auf die Kategorie anwenden, wo er sich gerade befindet!
Ich versuche nämlich krampfhaft im nächsten Schritt zu sagen ... wenn Contentallocatioen (also idpica_alloc) => 1 ist!
Das mein Code in etwa so aussieht:
Code: Alles auswählen
cInclude('classes', 'class.article.php');
$articleCollCA = new ArticleCollection(array(
'idcat' => $idcat,
'lang' => $lang,
'client' => $client,
'start' => true,
'offline' => true,
'limit' => 1,
'idpica_alloc' => '1'
));
$articleca = $articleCollCA->nextArticle();
if ($articleca) {echo "JA";} else { echo "NEIN";}
Vielen Dank
MfG Steffen
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Hallo derSteffen,
wenn du die Option 'offline' auf true setzt, wird ein Artikel zurückgeliefert, der online oder offline ist.
Das mag jetzt verwirrend sein, aber so ist der Code nun mal in der Klasse ArticleCollection.
- Option offline = true: Online oder offline Artikel
- Option offline = false: Nur online Artikel
- Keine Option offline: Online oder offline Artikel
Die Option 'idpica_alloc' wird nicht von ArticleCollection unterstützt, hier der angepasste Auszug aus der Sourcecode Doku:
Gruß
xmurrix
wenn du die Option 'offline' auf true setzt, wird ein Artikel zurückgeliefert, der online oder offline ist.
Das mag jetzt verwirrend sein, aber so ist der Code nun mal in der Klasse ArticleCollection.
- Option offline = true: Online oder offline Artikel
- Option offline = false: Nur online Artikel
- Keine Option offline: Online oder offline Artikel
Die Option 'idpica_alloc' wird nicht von ArticleCollection unterstützt, hier der angepasste Auszug aus der Sourcecode Doku:
Code: Alles auswählen
/**
* Article Collection Constructor
*
* @param array Options array with schema array("option"=>"value");
* idcat (required) - Contenido Category Id
* lang - Language Id, active language if ommited
* client - Client Id, active client if ommited
* artspecs - Array of article specifications, which should be considered
* start - include start article in the collection, defaults to false
* order - articles will be orderered by this property, defaults to 'created'
* direction - Order direcion, 'asc' or 'desc' for ascending/descending
* limit - Limit numbers of articles in collection
* offline - Optional, false to get only online article
*
* @return void
*/
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Hallo xmurixx.
vielen Dank!
Komisch, in meiner Kategorie gibt es 5 Artikel, davon sind alle online und keiner offline und es gibt einen Startartikel der online ist! Trotzdem wird JA ausgegeben?
Ich dachte, es müssen alle Kriterien erfüllt sein und dann soll er JA ausgeben und ansonsten NEIN. In meinem Fall müßte NEIN stehen, eskommt aber JA.
Also ich will das nur gerne verstehen, da ich wie gesagt im nächsten Schritt, irgendwie die ContentAllocation-Abfrage mit rein bekommen möchte. Wobei ich hier auch noch gar nicht weiß, ob es dafür überhaupt eine Klasse gibt.
Vielen Dank
MfG Steffen
vielen Dank!
Komisch, in meiner Kategorie gibt es 5 Artikel, davon sind alle online und keiner offline und es gibt einen Startartikel der online ist! Trotzdem wird JA ausgegeben?
Code: Alles auswählen
cInclude('classes', 'class.article.php');
$articleCollCA = new ArticleCollection(array(
'idcat' => 166,
'lang' => $lang,
'client' => $client,
'offline' => true
));
$articleca = $articleCollCA->nextArticle();
if ($articleca) {echo "JA";} else { echo "NEIN";}
Also ich will das nur gerne verstehen, da ich wie gesagt im nächsten Schritt, irgendwie die ContentAllocation-Abfrage mit rein bekommen möchte. Wobei ich hier auch noch gar nicht weiß, ob es dafür überhaupt eine Klasse gibt.
Vielen Dank
MfG Steffen
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Hallo derSteffen,
wie ich vorhin angemerkt habe, sorgt das Setzen der Option offline = true dafür, dass der offline Status der Artikel nicht berücksichtigt wird, dieser Filter wird also nicht angewendet.
Normalerweise würde man erwarten, dass offline = true nur die offline Artikel liefert, da offline = false ja die online Artikel liefert. Dem ist aber nicht so.
Man kann also sagen, dass das Fehlerhaft oder auch irreführend ist und korrigiert werden sollte. Das ist aber auch nicht einfach, das dieser Code in der ArticleCollection wohl sehr lange existiert. Wenn man das nun "korrigiert" ist die Gefahr groß, dass einige CONTENIDO Installationen beim nächsten Update sich anders verhalten.
Der von dir gepostete Code
macht am Ende folgende Datenbankabfrage:
Die Option offline = true, wird dabei einfach ignoriert!
Gruß
xmurrix
wie ich vorhin angemerkt habe, sorgt das Setzen der Option offline = true dafür, dass der offline Status der Artikel nicht berücksichtigt wird, dieser Filter wird also nicht angewendet.
Normalerweise würde man erwarten, dass offline = true nur die offline Artikel liefert, da offline = false ja die online Artikel liefert. Dem ist aber nicht so.
Man kann also sagen, dass das Fehlerhaft oder auch irreführend ist und korrigiert werden sollte. Das ist aber auch nicht einfach, das dieser Code in der ArticleCollection wohl sehr lange existiert. Wenn man das nun "korrigiert" ist die Gefahr groß, dass einige CONTENIDO Installationen beim nächsten Update sich anders verhalten.
Der von dir gepostete Code
Code: Alles auswählen
...
$articleCollCA = new ArticleCollection(array(
'idcat' => 166,
'lang' => $lang,
'client' => $client,
'offline' => true
));
...
Code: Alles auswählen
Hole mit alle Artikel aus der Kategorie 166, die auch der Sprache $lang und dem Mandanten $client zugeordnet sind.
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Ah .. okay! Jetzt hat es Klick gemacht!
Gut zu wissen, vielen Dank.
Ich wollte auch nur versuchen es zu verstehen .. ich brauche das ja so jetzt nicht in dieser Art. Ich hatte halt nur gehofft daran anzuküpfen, da ich in meiner eigentlichen Abfragen fragen wollte: "existiert in gerade dieser Kategorie ein Artikel der die Content Allocation 1 hat, also genauer gesagt die idpica_alloc = 1 hat.
Aber das werde ich ja nicht mit dem $articleCollCA = new ArticleCollection(array abfragen können, sondern wahrscheinlich ja eher mit ner SQL-Abfrage, oder?!
Vielen Dank
MfG Steffen
Gut zu wissen, vielen Dank.
Ich wollte auch nur versuchen es zu verstehen .. ich brauche das ja so jetzt nicht in dieser Art. Ich hatte halt nur gehofft daran anzuküpfen, da ich in meiner eigentlichen Abfragen fragen wollte: "existiert in gerade dieser Kategorie ein Artikel der die Content Allocation 1 hat, also genauer gesagt die idpica_alloc = 1 hat.
Aber das werde ich ja nicht mit dem $articleCollCA = new ArticleCollection(array abfragen können, sondern wahrscheinlich ja eher mit ner SQL-Abfrage, oder?!
Vielen Dank
MfG Steffen
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Du hast 2 Möglichkeiten:...Aber das werde ich ja nicht mit dem $articleCollCA = new ArticleCollection(array abfragen können, sondern wahrscheinlich ja eher mit ner SQL-Abfrage, oder?!...
- Entweder holst du die Artiklel aus der Kategorie mit ArticleCollection, sammelst gefundene idartlang, und machst eine 2. Abfrage auf die Tabelle con_pica_alloc_con
- oder du baust deine SQL-Anweisung so zusammen, dass es übr alle nötigen Tabellen geht, um die gewünschten Ergebnisse zu sammeln. Schau dir die SQL Anweisung in ArticleCollection._getArticlesByCatId (contenido/classes/class.article.php) an, die kannst du als Vorlage nehmen und erweitern.
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Überprüfe ob ein Online-Nicht-Startartikel in Idcat ist
Danke xmurrix,
das werde ich mal versuchen hinzubekommen und dann gibtes hier antwort
MfG Steffen
das werde ich mal versuchen hinzubekommen und dann gibtes hier antwort
MfG Steffen