Leider bin ich noch immer nicht weiter gekommen. Muss ich die Marker auf andere Art und Weise befüllen oder hat jemand einen Tipp für mich parat?
Vielen Dank!
Jules
Hallo zusammen!
Ich arbeite nun schon eine Weile mit TYPO3, habe mich aber – mangels PHP-Kenntnissen – erst jetzt an meine erste Extension getraut. Sie ist recht simpel und gibt bloß eine Übersicht anstehender Workshops aus.
Bei der Erstellung bin ich dieser Anleitung gefolgt und bin auch prima zurecht gekommen. Die Extension funktioniert einwandfrei.
Nun gibt es allerdings auch Workshops, die nicht datiert sind, sondern nur auf Anfrage angeboten werden. Ich möchte also mit if - else prüfen, ob das Feld "freitexttermin" (in das ich dann "Auf Anfrage" o.ä. eintragen kann) gefüllt ist, ansonsten soll das Feld "starttermin" ausgegeben werden.
Die Marker fülle ich folgendermaßen
Ich habe mit mehreren Ansätzen versucht, das Problem zu lösen, erfolglos. Am naheliegendsten erschien mir, innerhalb des Abschnitts "// Marker füllen" anstattPHP-Code:function lastView() {
#Subpart ansprechen
$subpart=$this->cObj->getSubpart($this->template,'###UEBERSICHT_WORKSHOPS###');
#eine einzelne Reihe
$singlerow=$this->cObj->getSubpart($subpart,'###ROW###');
//Datensätze holen
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
'*', #select
'tx_meineextension_main', #from
'hidden=0 and deleted=0 and pid='.$this->id, #where
$groupBy='',
$orderBy='',
$limit='');
if($res) {
$liste='';
while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
//Marker füllen
$markerArray['###TITEL###']=$row['titel'];
$markerArray['###BESCHREIBUNG###']=$this->pi_RTEcssText($row['beschreibung']);
$markerArray['###STARTTERMIN###']=date('d.m.Y',$row['starttermin']);
$markerArray['###DETAILS###']=$this->pi_linkToPage('DETAILS >>', $row['details']);
$markerArray['###ANMELDUNG###']=$this->pi_linkToPage('ANMELDEN', $row['anmeldung']);
$liste .= $this->cObj->substituteMarkerArrayCached($singlerow,$markerArray,array());
}
$subpartArray['###ROW###']=$liste;
} else {
return $this->pi_getLL('nodata');
}
return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,$subpartArray,array());
}
folgendes zu schreibenPHP-Code:$markerArray['###STARTTERMIN###']=date('d.m.Y',$row['starttermin']);
das hatte aber bloß den Effekt, dass gar nichts mehr angezeigt wurde.PHP-Code:if ($row['freitexttermin'] =='') {
$markerArray['###STARTTERMIN###']=date('d.m.Y',$row['starttermin'];
} else {
$markerArray['###STARTTERMIN###']==$row['freitexttermin'];}
Für jegliche Hinweise bin ich euch sehr dankbar, ich stehe total auf dem Schlauch und habe leider, wie gesagt, keine PHP-Kenntnisse (da muss ich jetzt aber echt mal was machen!).
So long
Jules 1.0
Geändert von jules1.0 (15.12.2011 um 20:46 Uhr)
Leider bin ich noch immer nicht weiter gekommen. Muss ich die Marker auf andere Art und Weise befüllen oder hat jemand einen Tipp für mich parat?
Vielen Dank!
Jules
Hallo,
bei deiner zweiten Zuweisung ist ein = zu viel. Deswegen wird dein Skript auch nicht funktionieren.
Sollte wenn so aussehen:
Solltest du den Fehler bereits behoben haben, das Skript aber trotzdem nicht laufen, dann aktiviere mal das error_reporting.PHP-Code:if ($row['freitexttermin'] =='') {
$markerArray['###STARTTERMIN###']=date('d.m.Y',$row['starttermin'];
} else {
$markerArray['###STARTTERMIN###']=$row['freitexttermin'];
}
Viele Grüße,
Vielen Dank jteine!
Das zweite = hatte ich bereits entfernt, aber dein Tipp mit dem error_reporting war Gold wert!
Gab mir ein "Parse error: syntax error, unexpected T_STRING" in der ersten Zeile der if-else Prüfung aus – Grund waren die geschweiften Klammern.
Mit
funktioniert die Überprüfung einwandfrei.PHP-Code:if ($row['freitexttermin'] == '')
$markerArray['###TERMIN###']=date('d.m.Y',$row['starttermin']);
else
$markerArray['###TERMIN###']=$row['freitexttermin'];
Hach, wie schön.
Vielen Dank!
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen