Hallo liebe Forum- und TYPO3-Gemeinde,
ich bin gerade dabei meine erste Extension selber zu schreiben! Was bis her auch danke einiger Tutorials und Codebeispielen gut klappte. Dennoch hänge ich seit 2 Tagen an einem Punkt fest an dem ich einfach nicht weiter weiss... leider finde icha uch nichts passendes im Forum oder bei Google.
Hier das Problem: Meine Marker werden im Template richtig mit den Ergebnissen aus dem SQL query befüllt!
Jetzt wollte ich das ganze noch einmal machen und dann eine verändertes Query abzusetzten.
function main($content, $conf) {
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$content="";
//Get the template definited by setup.txt
$this->templateCode = $this->cObj->fileResource($conf['templateFile']);
//Get the parts out of the template
$template = array();
$template['total'] = $this->cObj->getSubpart($this->templateCode,'###TEMPLATE###');
$template['item'] = $this->cObj->getSubpart($template['total'],'###TEMPLATE_ITEM###');
$template['item2'] = $this->cObj->getSubpart($template['total'],'###TEMPLATE_ITEM2###');
//Fill Markers
//ehemalige function getItem()
$config['pid_list'] = trim($this->cObj->stdWrap($this->conf['pid_list'],$this->conf['pid_list.']));
$config['pid_list'] = $config['pid_list'] ? implode(t3lib_div::intExplode(',',$config['pid_list']),',') : $GLOBALS['TSFE']->id;
list($pid) = explode(',',$config['pid_list']);
$query = 'SELECT * FROM tx_medienliga_data WHERE pid IN ('.$pid.') ORDER BY sorting';
$res = mysql_query($query); //geändert von $res = mysql(TYPO3_db,$query); <- alte schreibweise und wird in php5 nicht mehr unterstütz //TYPO3_db fällt weg da aktuelle db automatisch benutz wird
$out=array();
$i = 0;
while($row = mysql_fetch_assoc($res)){
$out[$i]=$row;
$i++;
}
$rows = $out;
for($i=0;$i<count($rows[$i]);$i++) this-="">conf['image.']['file'] = 'uploads/tx_medienliga/'.($rows[$i]['image']); //Pfad zum uploadsordner der EXT
$theImgCode=$this->cObj->IMAGE($this->conf['image.']); //Speichert den Code Pfad zum Bild mit http:// etc. ; ohne diese Zeile würde nur uploads/tx_ext_key/etc. rauskommen
//Position abfragen
if ($rows[$i]['position'] = 8-) {
$playersposition = 'Torwart';
}
if ($rows[$i]['position'] = 4) {
$playersposition = 'Abwehr';
}
if ($rows[$i]['position'] = 2) {
$playersposition = 'Mittelfeld';
}
if ($rows[$i]['position'] = 1) {
$playersposition = 'Angriff';
}
//Marker mit den Werten aus der DB befüllen
$markerArray['###FIRSTNAME###'] = $rows[$i]['firstname'];
$markerArray['###LASTNAME###'] = $rows[$i]['lastname'];
$markerArray['###IMAGE###'] = $theImgCode;
$markerArray['###GOALS###'] = $rows[$i]['goal'];
$markerArray['###POSITION###'] = $playersposition;
$contentItem .= $this->cObj->substituteMarkerArrayCached($template['item'], $markerArray);
}
for($i=0;$i<count($rows[$i]);$i++) this-="">conf['image.']['file'] = 'uploads/tx_medienliga/'.($rows[$i]['image']); //Pfad zum uploadsordner der EXT
$theImgCode=$this->cObj->IMAGE($this->conf['image.']); //Speichert den Code Pfad zum Bild mit http:// etc. ; ohne diese Zeile würde nur uploads/tx_ext_key/etc. rauskommen
//Position abfragen
if ($rows[$i]['position'] = 8-) {
$playersposition = 'Torwart';
}
if ($rows[$i]['position'] = 4) {
$playersposition = 'Abwehr';
}
if ($rows[$i]['position'] = 2) {
$playersposition = 'Mittelfeld';
}
if ($rows[$i]['position'] = 1) {
$playersposition = 'Angriff';
}
//Marker mit den Werten aus der DB befüllen
$markerArray2['###FIRSTNAME2###'] = $rows[$i]['firstname'];
$markerArray2['###LASTNAME2###'] = $rows[$i]['lastname'];
$markerArray2['###IMAGE2###'] = $theImgCode;
//$markerArray2['###GOALS2###'] = $rows[$i]['goal'];
//$markerArray2['###POSITION2###'] = $playersposition;
$contentItem2 .= $this->cObj->substituteMarkerArrayCached($template['item2'], $markerArray2);
}
//Finalize and create the content by replacing the 'content' marker in the template
$subpartArray = array();
$subpartArray['###TEMPLATE_ITEM###'] = $contentItem;
$subpartArray2 = array();
$subpartArray2['###TEMPLATE_ITEM2###'] = $contentItem2;
$content = $this->cObj->substituteMarkerArrayCached($template['total'],$markerArray, $subpartArray,$markerArray2,$subpartArray2);
return $content;
}
}
Die Marker in TEMPLATE_ITEM werden richtig befüllt! Die Marker unter TEMPLATE_ITEM2 wird nur mit dem letzten Element aus dem Array befüllt!
<div id="slider1">
<ul id="slider1Content">
<li class="slider1Image">
<img src="uploads/tx_medienliga/Tamas_Hajnal.jpg" width="168" height="252" border="0" alt="" title="" />
<span class="left"><strong>Angriff</strong><p>Tore: </p><p>10</p></span>
</li>
<li class="slider1Image">
<img src="uploads/tx_medienliga/Nuri_Sahin.jpg" width="168" height="252" border="0" alt="" title="" />
<span class="left"><strong>Angriff</strong><p>Tore: </p><p>10</p></span>
</li>
<li class="slider1Image">
<img src="uploads/tx_medienliga/Markus_Feulner.jpg" width="168" height="252" border="0" alt="" title="" />
<span class="left"><strong>Angriff</strong><p>Tore: </p><p>10</p></span>
</li>
<div class="clear slider1Image"></div>
</ul>
</div>
<div id="slider1">
<ul id="slider1Content">
###TEMPLATE_ITEM2###
<li class="slider1Image">
<img src="uploads/tx_medienliga/Markus_Feulner.jpg" width="168" height="252" border="0" alt="" title="" />
<span class="left"><strong>###POSITION2###</strong><p>Tore: </p><p>###GOALS2###</p></span>
</li>
###TEMPLATE_ITEM2###
<div class="clear slider1Image"></div>
</ul>
</div>
</div>
Dazu wird der Marker ###TEMPLATE_ITEM2### als Klartext angezeigt... also irgendwie steh ich aufm Schlauch oder habe noch etwas falsch verstanden?!?!
Hoffe ihr könnt mir helfen 🙂
Gruß Oli