Hi,
hab jetzt mal auf 3 ViewHelper ausgelagert. Hat sich aber nichts geändert.
Controller:
/**
* action list
*
* @return void
*/
public function listAction() {
$allEvents = $this->airportEventsRepository->findAllEvents();
$dates = $this->airportEventsRepository->findAllDates();
$this->view->assign('dates', $dates);
$this->view->assign('allEvents', $allEvents);
}
List.html:
<f:layout name="Default" />
{namespace helper=Tx_NhEvents_ViewHelpers}
<f:section name="main">
<div class="event-list">
<ul id="holder-list">
<f:for each="{dates}" as="datum">
<li>
<div class="event-teaser-date">
<div class="event-date-list">
<helper:listdate datum="{datum}"/>
</div>
<div class="event-img-list">
<helper:listimage datum="{datum}" events="{allEvents}"/>
</div>
</div>
<div class="event-teaser-txt">
<helper:listtext datum="{datum}" events="{allEvents}"/>
</div>
</li>
</f:for>
</ul>
</div>
</f:section>
ListimageViewHelper:
class Tx_NhEvents_ViewHelpers_ListimageViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
/**
* @param mixed $daten Current Event Date
* @param mixed $events The Upcoming Events
*
* @return string the HTML Tag of the Events
*/
public function render($datum, $events) {
$content = '';
foreach ($events as $event) {
if (date_format($event->getDatum(), 'd.m.') == date_format($datum->getDatum(), 'd.m.') && $event->getLocation() == 0) {
$content .= '<img src="uploads/tx_nhevents/'.$event->getThumbnail().'" alt="event" height="95" width="120" />';
}
}
return $content;
}
}
ListtextiewHelper:
class Tx_NhEvents_ViewHelpers_ListtextViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
/**
* @param mixed $datum Current Event Date
* @param mixed $events The Upcoming Events
*
* @return string the HTML Tag of the products
*/
public function render($datum, $events) {
$this->cObj = t3lib_div::makeInstance('tslib_cObj');
$location = array('T1', 'T2', 'SP');
$content = '';
$title = array();
$currentEvents = array();
foreach ($events as $event) {
if (date_format($event->getDatum(), 'd.m.') == date_format($datum->getDatum(), 'd.m.')) {
switch ($event->getLocation()) {
case 0:
$title[0] = $event->getTitle();
$currentEvents[0] = $event;
break;
case 1:
$title[1] = $event->getTitle();
$currentEvents[1] = $event;
break;
case 2:
$title[2] = $event->getTitle();
$currentEvents[2] = $event;
break;
}
}
}
for ($i = 0; $i < 3; $i ++) {
$currentEvent = $currentEvents[$i];
if ($i == 0) {
$bez = '<p class="loc-first">'.$location[$i].': '.$title[$i] .'</p>';
$params = array(
'parameter' => 35,
'additionalParams' => '&tx_nhevents_eventdetails[airportEvents]='.$currentEvent->getUid().'&tx_nhevents_eventdetails[action]=show&tx_nhevents_eventdetails[controller]=AirportEvents',
'useCacheHash' => 1
);
$content .= $this->cObj->typolink($bez,$params);
}
else if ($i == 2){
$bez = '<p class="loc-last">'.$location[$i].': '.$title[$i] .'</p>';
$params = array(
'parameter' => 35,
'additionalParams' => '&tx_nhevents_eventdetails[airportEvents]='.$currentEvent->getUid().'&tx_nhevents_eventdetails[action]=show&tx_nhevents_eventdetails[controller]=AirportEvents',
'useCacheHash' => 1
);
$content .= $this->cObj->typolink($bez,$params);
}
else {
$bez = '<p>'.$location[$i].': '.$title[$i] .'</p>';
$params = array(
'parameter' => 35,
'additionalParams' => '&tx_nhevents_eventdetails[airportEvents]='.$currentEvent->getUid().'&tx_nhevents_eventdetails[action]=show&tx_nhevents_eventdetails[controller]=AirportEvents',
'useCacheHash' => 1
);
$content .= $this->cObj->typolink($bez,$params);
}
}
return $content;
}
}
Er hängt schon im ListimageViewHelper. Uid, Datum kann ich mir ausgeben lassen, aber Attribute wie Thumbnail, Titel, Eventtext sind alle NULL.
Es gibt im Moment insgesamt 6 Testevents, bei denen alle Attribute ausgefüllt sind.
Das komische ist auch, dass er mir 2 Events von 6 in der Liste anzeigt im ListtextViewHelper.
Irgendwie werd ich da nicht schlau drauf.
Evtl. liegt es an den Datensätzen?!