Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 09. März 2012 11:06

dalton
kennt CMS/ms
Ort: Schweiz
Registriert: 10. Januar 2011
Beiträge: 162
Webseite

ListIt2 PDF Generieren nach Start und End Datum Eintrag anzeigen?

Hallo,

ich muss für ein Kunden ein Mittagsmenu für die ganze Woche aus einem Modul ein PDF Generieren lassen.

Das heisst der Kunde kann im Modul ListIT2 ein Eintrag machen und in diesem einem Eintrag ist die ganz Woche enthalten also in einem Eintrag hat es z.B. diese Felder: Montags Menu (Textarea), Dienstags Menu (Textarea), Mittwochs Menu (Textarea) etc..

Und am schluss kann er per Zeitsteuerung aktivieren in welcher Woche diese Menu aktiv sein soll.

Jetzt zur Frage das PDF zu Generieren hab ich soweit und es werden auch die Felder Montags Menu etc.. angezeigt.
Nur wie lös ich das mit der Zeitsteuerung damit es in der Datebank nur den Eintrag nimmt der von der start_time bis end_time zum jetztigen Datum passt?

Dies müsst ich ja irgendwie in der SELECT abfrage machen nur weis ich leider nicht wie, im mom sieht das ganze so aus:

"SELECT 
        item.item_id,
        item.title,
		item.start_time,
		item.end_time,
		fieldval.item_id,
		fieldval.fielddef_id,
		fieldval.value,
		fielddef.fielddef_id,
		fielddef.name
        FROM 
        cms_module_mittagsmenu_item item
        INNER JOIN
        cms_module_mittagsmenu_fieldval fieldval ON fieldval.item_id = item.item_id
        INNER JOIN
         cms_module_mittagsmenu_fielddef fielddef ON fielddef.fielddef_id = fieldval.fielddef_id";

Ich hoffe jemand kann mir weiterhelfen.

Offline

#2 09. März 2012 12:45

Foaly*
Gast

Re: ListIt2 PDF Generieren nach Start und End Datum Eintrag anzeigen?

Hallo,

benutze doch einfach den search_* Parameter des Moduls in deinem Aufruf.

[== Smarty ==]
{ListIt2 search_start_time="now"|cms_date_format}

#3 09. März 2012 12:53

dalton
kennt CMS/ms
Ort: Schweiz
Registriert: 10. Januar 2011
Beiträge: 162
Webseite

Re: ListIt2 PDF Generieren nach Start und End Datum Eintrag anzeigen?

Das geht leider so nicht da es nicht in einem Template oder so aufgerufen wird sondern eine PHP Datei ist wo das PDF dann Generiert.

Aber ich bin jetzt soweit das es die Start und End Time erkennt (hab einfach aus dem ListIT die Abfrage rauskopiert):

Dies sieht jetzt so aus:

SELECT 
        item.item_id,
        item.title,
		item.start_time,
		item.end_time,
		fieldval.item_id,
		fieldval.fielddef_id,
		fieldval.value,
		fielddef.fielddef_id,
		fielddef.name
        FROM 
        cms_module_mittagsmenu_item item
        INNER JOIN
        cms_module_mittagsmenu_fieldval fieldval ON fieldval.item_id = item.item_id
		INNER JOIN
		cms_module_mittagsmenu_fielddef fielddef ON fielddef.fielddef_id = fieldval.fielddef_id
WHERE
 (item.start_time IS NULL OR TIMESTAMPDIFF(DAY, CURDATE()) <= 0) 
AND 
(item.end_time IS NULL OR TIMESTAMPDIFF(DAY, item.end_time, CURDATE()) <= 0)

Jetzt gibt es nur noch ein Problem sobald man die Zeitsteuerung nicht nicht nutz, wird trotzdem der Eintrag im PDF angezeigt und das liegt daran das ein ein "NULL" in die Datebank staht des Datums schreibt.

Dan dachte ich mir ja wen ich das "NULL" bei der WHERE Abfrage entferne sollten ja diese nicht mehr angezeigt werden.

Hab das so probiert:

WHERE
 (item.start_time IS TIMESTAMPDIFF(DAY, CURDATE()) <= 0) 
AND 
(item.end_time IS TIMESTAMPDIFF(DAY, item.end_time, CURDATE()) <= 0);

Aber leider erscheint dan beim Testen im PHPMyAdmin folgender Fehler:

item.start_timeTIMESTAMPDIFF(
DAY , CURDATE( ) ) <=0
)
AND (
item.end_time IS TIMESTAMPDIFF(
DAY , item.end_time, CURDATE( ) ) <=0
)
LIMIT 0 , 30;

MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TIMESTAMPDIFF( DAY , CURDATE( ) ) <= 0 ) AND ( item . end_time IS TIMESTAMPDIFF(' at line 1 

was mach ich falsch?

Offline