Artikel mit kompletten Inhalt untereinander ausgeben
Artikel mit kompletten Inhalt untereinander ausgeben
Hallo,
ich bin ganz neu bei Contenido.
Ich bin echt begeistert, was dieses CMS alles kann, obwohl ich erst seit ein paar Tagen damit arbeite.
Die Aufteilung Layout / Module / Templates habe ich auch schon gut im Griff. Ich erstelle ehrenamtlich die Website unsere Ortsgemeinde. Nun gibt es auf dieser eine Liste mit allen Vereinen.
Die Seite für jeden Verein ist wie folgt aufgebaut:
(Code der Module in den entsprechenden Containern)
CMS_HTMLHEAD[1] = Vereinsname
CMS_HTML[1] = Vereinsbeschreibung (Anschrift / Telnr.)
if ("CMS_LINKDESCR[2]" != "") { echo "<a href=CMS_LINK[2] target='_new'> E-Mailkontakt: CMS_LINKDESCR[2]</a>"; } = Emailkontakt
if ("CMS_LINK[1]" != "") { echo "<a href=CMS_LINK[1] target='_new'>CMS_LINKDESCR[1]</a>"; } = Internetseite
So nun würde ich gerne eine Vereinsliste erstellen, auf der alle Vereine in Alphabetischer Reihenfolge ausgegeben werden, so wie es auf der alten Seite der Fall war.
Bsp:
SPD Ortsverein ORT,
Vorsitzender: Name, Straße,
Telefon: 0/0
E-Mailkontakt: Name
http://www.spd-ort.de/
Squaredance-Club
Vorsitzende: Name, Schriftführer: Name,
Telefon: 0/0 oder 0/0
E-Mailkontakt: Name
Wie kann ich das am Besten lösen?
Ich muss sicher ein Modul erstellen. Gibt es eine Funktion welche mir alle Artikel (=Vereine) ausgibt, die ich dann per PHP-Schleife durchlaufen kann? In der Kategorie Vereine befindet sich jedoch auch der Startartikel, welcher die Vereinsliste selbst ist, diesen müsste ich dann jedoch von diesem Aufruf in der Schleife ausschließen können?!
Ich hoffe Ihr könnte mir weiterhelfen.
Danke!
MfG
Daniel
ich bin ganz neu bei Contenido.
Ich bin echt begeistert, was dieses CMS alles kann, obwohl ich erst seit ein paar Tagen damit arbeite.
Die Aufteilung Layout / Module / Templates habe ich auch schon gut im Griff. Ich erstelle ehrenamtlich die Website unsere Ortsgemeinde. Nun gibt es auf dieser eine Liste mit allen Vereinen.
Die Seite für jeden Verein ist wie folgt aufgebaut:
(Code der Module in den entsprechenden Containern)
CMS_HTMLHEAD[1] = Vereinsname
CMS_HTML[1] = Vereinsbeschreibung (Anschrift / Telnr.)
if ("CMS_LINKDESCR[2]" != "") { echo "<a href=CMS_LINK[2] target='_new'> E-Mailkontakt: CMS_LINKDESCR[2]</a>"; } = Emailkontakt
if ("CMS_LINK[1]" != "") { echo "<a href=CMS_LINK[1] target='_new'>CMS_LINKDESCR[1]</a>"; } = Internetseite
So nun würde ich gerne eine Vereinsliste erstellen, auf der alle Vereine in Alphabetischer Reihenfolge ausgegeben werden, so wie es auf der alten Seite der Fall war.
Bsp:
SPD Ortsverein ORT,
Vorsitzender: Name, Straße,
Telefon: 0/0
E-Mailkontakt: Name
http://www.spd-ort.de/
Squaredance-Club
Vorsitzende: Name, Schriftführer: Name,
Telefon: 0/0 oder 0/0
E-Mailkontakt: Name
Wie kann ich das am Besten lösen?
Ich muss sicher ein Modul erstellen. Gibt es eine Funktion welche mir alle Artikel (=Vereine) ausgibt, die ich dann per PHP-Schleife durchlaufen kann? In der Kategorie Vereine befindet sich jedoch auch der Startartikel, welcher die Vereinsliste selbst ist, diesen müsste ich dann jedoch von diesem Aufruf in der Schleife ausschließen können?!
Ich hoffe Ihr könnte mir weiterhelfen.
Danke!
MfG
Daniel
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Einen Anfang findest Du hier: http://www.contenido.org/forum/viewtopi ... 8565#48565
Thread ganz durchlesen. Mit den Änderungen auf der zweiten Seite kannst Du neben dem "Haupt-Topic" (wie auch immer Du es definierst) auch ein weiteres Feld ausgeben.
Daraus sollte das Prinzip ersichtlich sein. Im weiteren Verlauf wirst Du die internen IDs benötigen. Ändere daher (alles nach Berücksichtigung von Seite 2):
in
Damit Du alle gewünschen Felder ermitteln kannst, musst Du diese Stelle:
entsprechend anpassen. Das müsste dann so aussehen:
Man beachte, dass es sich um AND ( (Bedingung1 AND Bedingung2) OR (...) OR (...) ) handelt - öffnende und schließende Klammern nicht übersehen. Was C-ID und T-ID ist, sollte aus Seite 2 ersichtlich sein.
Bei dem Ergebnis besteht das Problem, dass Du a) nicht weisst, ob der Subtyp überhaupt vorhanden bzw. gefüllt ist und b) in welcher Reihenfolge die Daten kommen. Daher musst Du zwischenpuffern:
Statt:
nimmst Du sowas wie:
Im nachfolgenden Code stehen dann in $mydata die Daten zur Verfügung (oder eben ) und können ausgegeben werden.
Gruß
HerrB
P.S.: Ungetestet, zunächst kein Support. Kann noch Fehler enthalten. Erst mal selber gucken...
Thread ganz durchlesen. Mit den Änderungen auf der zweiten Seite kannst Du neben dem "Haupt-Topic" (wie auch immer Du es definierst) auch ein weiteres Feld ausgeben.
Daraus sollte das Prinzip ersichtlich sein. Im weiteren Verlauf wirst Du die internen IDs benötigen. Ändere daher (alles nach Berücksichtigung von Seite 2):
Code: Alles auswählen
if ($db->num_rows() > 0) {
$db2 = new DB_Contenido;
$query2 = "SELECT CONTENT.value AS headline FROM ";
Code: Alles auswählen
if ($db->num_rows() > 0) {
$db2 = new DB_Contenido;
$query2 = "SELECT CONTENT.value AS headline, CONTENT.typeid AS typeid, CONTENT.idtype AS idtype FROM ";
Code: Alles auswählen
// Container-ID
$query2 .= "AND CONTENT.typeid = '<C-ID2>' ";
// Content-Type
$query2 .= "AND CONTENT.idtype = '<T-ID2>' ";
Code: Alles auswählen
$query2 .= "AND ((CONTENT.typeid = '<C-ID2>' AND CONTENT.idtype = '<T-ID2>')";
$query2 .= "OR (CONTENT.typeid = '<C-ID3>' AND CONTENT.idtype = '<T-ID3>')";
$query2 .= "OR (CONTENT.typeid = '<C-ID4>' AND CONTENT.idtype = '<T-ID4>'))";
Bei dem Ergebnis besteht das Problem, dass Du a) nicht weisst, ob der Subtyp überhaupt vorhanden bzw. gefüllt ist und b) in welcher Reihenfolge die Daten kommen. Daher musst Du zwischenpuffern:
Statt:
Code: Alles auswählen
$db2->query($query2 . "AND ARTLANG.idart = '".$articleID."'");
if ($db2->next_record()) {
$subheadline = urldecode($db2->f("headline"));
$subheadline = strip_tags($subheadline);
if (strlen($subheadline) > $maxChar) {
$subheadline = substr($subheadline, 0, $maxChar);
$subheadline .= '..';
}
}
Code: Alles auswählen
$db2->query($query2 . "AND ARTLANG.idart = '".$articleID."'");
unset($mydata);
$mydata = array("Description" => " ", "EMail" => " ", "Link" => " ");
while ($db2->next_record()) {
$subheadline = urldecode($db2->f("headline"));
$subheadline = strip_tags($subheadline);
if ($db2->f("typeid") == "<C-ID2 - muss wieder ersetzt werden!> AND $db2->f("idtype") == "<T-ID2 - muss wieder ersetzt werden!>") {
$mydata["Description"] = $subheadline;
} else if ($db2->f("typeid") == "<C-ID3 - muss wieder ersetzt werden!> AND $db2->f("idtype") == "<T-ID3 - muss wieder ersetzt werden!>") {
$mydata["EMail"] = $subheadline;
} usw.
}
Gruß
HerrB
P.S.: Ungetestet, zunächst kein Support. Kann noch Fehler enthalten. Erst mal selber gucken...
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Hallo!
vielen Dank für die Mühe!
Ich habe gestern Nacht noch ein wenig gesucht und bin auf die Funktion "ArticleCollection ($options)" gestoßen.
Damit habe ich es jetzt gelöst.
Dazu habe ich hier im Forum ein Modul gefunden, welches diese Funktion benutzt. Ich muss sagen, dass das sehr gut funktioniert.
Schade, dass ich nicht schneller auf folgende Implementierung gestoßen bin:
http://www.contenido.org/forum/viewtopi ... collection
Mit dieser Funktion kann man sich die ganzen MySQL Abfragen sparen.
Leider gibt es im Admin Handbuch auch keinen Verweis auf vorgefertigte Funktionen. Vllt wäre das mal anzudenken, wenigstens solche Grundfunktionen mit in die Admin-Doku aufzunehmen.
MfG
Daniel
vielen Dank für die Mühe!
Ich habe gestern Nacht noch ein wenig gesucht und bin auf die Funktion "ArticleCollection ($options)" gestoßen.
Damit habe ich es jetzt gelöst.
Dazu habe ich hier im Forum ein Modul gefunden, welches diese Funktion benutzt. Ich muss sagen, dass das sehr gut funktioniert.
Schade, dass ich nicht schneller auf folgende Implementierung gestoßen bin:
http://www.contenido.org/forum/viewtopi ... collection
Mit dieser Funktion kann man sich die ganzen MySQL Abfragen sparen.
Leider gibt es im Admin Handbuch auch keinen Verweis auf vorgefertigte Funktionen. Vllt wäre das mal anzudenken, wenigstens solche Grundfunktionen mit in die Admin-Doku aufzunehmen.
MfG
Daniel