Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 28. August 2012 11:31
- Connie
- Server-Pate
- Ort: Gribow
- Registriert: 12. Dezember 2010
- Beiträge: 216
- Webseite
UDT in Newsletter-Template von NMS?
Hallo! Ich mal wieder ;=)
ich bereite mich langsam auf die passive Altersteilzeit vor und bin dabei, Schritte, die zur Zeit doch noch "halbmanuell" abgearbeitet werden, zu automatisieren, damit ich mich auch von einigen ehrenamtlichen Aufgaben verabschieden kann ;=)
und da stellt sich mir die Frage:
1)
wir erstellen jeden Monat einen Newsletter, der die Konzerttermine des Folgemonats verschickt
bisher habe ich über eine PHP-Datei den HTML-Code für diese Liste erzeugt und die dann im Source-Modus des Editors eingefügt
also EDV zu Fuß
2)
ich habe ein UDT, das den Output für den Newsletter erzeugt. Wenn ich das UDT in einer "normalen" Seite einbinde, funktioniert es, ich erhalte genau den Output den ich haben möchte
3)
wenn ich aber im NEwsletter-Template den UDT einbinde {nextmonatkonzerte} z. B., dann bekomme ich einen Fehler:
"Call to a member function GetContent() on a non-object in /var/www/xxxx/xxxx/xxxx/lib/content.functions.php(775) "
4)
wie kann ich die Datenbankabfrage und den Output in ein Newsletter-Template einbinden?
Gibt es da eine Möglichkeit?
Merci im Voraus,
Connie
Beitrag geändert von Connie (28. August 2012 11:35)
Offline
#2 28. August 2012 12:13
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: UDT in Newsletter-Template von NMS?
Ab 1.11 funktionieren UDTs nicht mehr im Backend. Diese werden nur im Frontend ausgeführt. Darum könnte dies auch bei dir ein Problem sein. Wann ein UDT geladen wird und wann nicht habe ich aber noch nicht eindeutig herausgefunden.
Wenn du den UDT als Plugin abspeicherst, funktioniert es auf jeden Fall (wichtig, schau dir ein Core-Plugin an, wie der Funktionsname heissen muss. Dieser ist kürzer als bis anhin)
Ansonsten kannst du mal deinen UDT hier posten.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 28. August 2012 12:23
- Connie
- Server-Pate
- Ort: Gribow
- Registriert: 12. Dezember 2010
- Beiträge: 216
- Webseite
Re: UDT in Newsletter-Template von NMS?
Hallo Nockenfell,
nun ich muss gestehen, dies ist eine ältere Version, nicht 1.11
ich habe das UDT im Template eingetragen, leider sieht der Anwender das nicht beim Ausfüllen der Nachricht, nun denn
beim Abarbeiten des Jobs bekomme ich die Meldung
"FEHLER - Die für die Verarbeitung des Jobs verwendete, temporäre Datenbanktabelle existiert bereits. Dies kann darauf hindeuten, dass bei der Verarbeitung des vorherigen Jobs ein Fehler aufgetreten ist."
aber: ich habe im UDT als letzten Aufruf:
"mysql_free_result( $db_erg );"
Ich nehm alles zurück, hab den Knopf "temporäre Tabelle löschen" gefunden, versuchs weiter
Gruss, Connie
hier ist der UDT:
[== PHP ==] // UDT nextkonzertmonat global $gCms; $hm =& $gCms->GetHierarchyManager(); $curnode =& $hm->getNodeById($gCms->variables['content_id']); $ret = time(); $localeCode = 'de_DE'; if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $localeCode = 'ge';} setlocale(LC_TIME,$localeCode); // Konzertdatum initialisieren $konzertdat = "01.01.2010"; if ( (INT) $params['monat'] > 0 AND (INT) $params['monat'] < 13 ) $monat = $params['monat'] ; if ( (INT) $params['jahr'] > 0 AND (INT) $params['jahr'] < 3000 ) $jahr = $params['jahr'] ; if (!$params['monat']) $monat = date("m"); if (!$params['jahr']) $jahr = date("Y"); // Werte initialisieren, Überschrift $emonat = gmdate ("F",mktime(0,0,0,$monat+2,1,1950)); $zeitstempel = strtotime("1 $emonat $jahr"); $monatsname = strftime ('%B',$zeitstempel ); $nextmon = date("m"); $nextmon = intval($nextmon); $nextmon = ($nextmon<12) ? $nextmon+=1 : 1; if ($nextmon == 1) {$jahr = $jahr + 1;} // Auslesen $sql = "SELECT startdate,name,descr,local,zeit,preis,link,DATE_FORMAT(startdate, '%d.%m.%Y') AS startdate FROM nce_2012 WHERE YEAR(startdate) = '$jahr' AND MONTH(startdate) = '$nextmon' ORDER BY startdate, zeit"; $db_erg = mysql_query( $sql ); if (! $db_erg ) { die('Ungültige Abfrage: ' . mysql_error());} $anzahl_eintraege = mysql_num_rows($db_erg); $iDayOfWeek = date ( 'w', mktime ( 0, 0, 0,$monat, 1,$jahr ) ); // Tageswechsel echo "<p style='clear:both;'> </p>\n"; while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)) { if ($zeile['startdate'] > $konzertdat) { $konz = $zeile['startdate']; $konztag = substr($konz,0,2); $konzertdat =$zeile['startdate']; $konzertdat = $zeile['startdate']; $wotag= strtotime("$konzertdat"); $konzwotag = strftime ('%A',$wotag ); $konzertdatum = $konzwotag.", ".$konzertdat; echo "<p><u>$konzertdatum</u><br />\n"; } // Konzertdetails if ($zeile['name']) echo "<span style=\"color:green;font-weight:bold;\">".$zeile['name']."</span>, "; if ($zeile['descr']) echo "".$zeile['descr'].", "; if ($zeile['local']) echo "".$zeile['local'].", "; if ($zeile['zeit']) echo "Beginn: ".$zeile['zeit']." Uhr, "; if ($zeile['preis']) echo "Eintritt: ".$zeile['preis']; if ($zeile['link']) echo ", <a href=".$zeile['link'].">".$zeile['link']."</a>,"; echo "<br /><span class='clear'></span>\n"; } echo "</p></div>"; mysql_free_result( $db_erg );
Beitrag geändert von Connie (28. August 2012 12:27)
Offline
#4 28. August 2012 12:27
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: UDT in Newsletter-Template von NMS?
Welche CMSMS Version?
Warum baust du die DB Abfrage nicht über die normale CMSMS API auf?
Hast du mal ein Update gemacht? Von wo nach wo?
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#5 28. August 2012 12:29
- Connie
- Server-Pate
- Ort: Gribow
- Registriert: 12. Dezember 2010
- Beiträge: 216
- Webseite
Re: UDT in Newsletter-Template von NMS?
es klappt, danke, brauchst dich nicht mehr kümmern....
ich muss nur schulen, daß der vom UDT ausgegebene Inhalt beim Erstellen des Newsletters nicht sichtbar ist, aber im Newslettertext landet und daß man, wenn solch ein Fehler auftritt, man unten auf "temporäre Tabelle löschen" klicken muss
nun denn, auf zu weiteren neuen Ufern, wenn ich Zeit finde, mach ich aus dem UDT ein Plugin
Merci!
Connie
Offline
#6 28. August 2012 12:33
- Connie
- Server-Pate
- Ort: Gribow
- Registriert: 12. Dezember 2010
- Beiträge: 216
- Webseite
Re: UDT in Newsletter-Template von NMS?
Welche CMSMS Version?
Warum baust du die DB Abfrage nicht über die normale CMSMS API auf?
Hast du mal ein Update gemacht? Von wo nach wo?
ad 1) ist alte Version, 1.7.1, der Kunde / ehrenamtliche Auftraggeber mag kein Update riskieren und ich ehrlich gesagt auch nicht, die setzen soviel Plugins und Module ein, und wir wissen ja wie das ist mit der Aufwärtskompatibilität von CMS Modulen ;=(
ad 2) was ist "normal" ? ich hab etliche Plugins die so wie das obige UDT die Verbindung aufbauen, da das funktioniert, mach ichs halt weiter so
ad 3) siehe ad 1 ;=)
aber ich habs ja jetzt am Laufen, nun hübsch ich es noch auf, und wenn ich dann ganz in Rente bin, überarbeite ich die gesamte Installation mal, mit allen Updates und so, ich wünsch mir schon gute Nerven dafür ;=)
Gruss, Connie
Offline
Seiten: 1