Hi Zonky,
1. ich habe eine Liste mit items (mm_zimmerkategorien)
2. Jedes Item in der Liste besitzt referenced items mit 2 Ausgabefunktionen innerhalb des Templates (mm_zimmerpreise) > ausgangssituation.jpg
Rufe ich diese Seite auf ist bis hier her alles paletti:Ausgabefunktion 1 der Referenced items ruft wie gewünscht die referenzierten items gemäß eingestelltem Filter auf (aktuelle Preise) :
Code:
/*Start Funktion Filter 1*/
function getFilter1ByCustomer($strAlias, $format='html5')
{
$objMetaModel = \MetaModels\Factory::byTableName('mm_zimmerpreise');
$objFilter = $objMetaModel->prepareFilter(78, array());
$objFilter->addFilterRule(new \MetaModels\Filter\Rules\SearchAttribute($objMetaModel->getAttribute('zimmerpid'), $strAlias, $objMetaModel->getAvailableLanguages()));
$objItems = $objMetaModel->findByFilter($objFilter);
return $objItems->parseAll($format, $objMetaModel->getView(62));
}
/*Ende Funktion Filter 1*/
foreach....bla bla
/* Ausgabe der Funktionen "Preisliste" innerhalb der Zimmeransicht */
/* Start Ausgabe Funktion Filter 1 */
$leistung='NULL';
foreach (getFilter1ByCustomer($arrItem['raw']['alias']) as $arrFilter1):
if ($leistung == $arrFilter1[$this->getFormat()]['inklusivleistungen']):
elseif ($leistung == 'NULL'):
echo '<div class="groupheadline filter1">Preise '.$arrFilter1[$this->getFormat()]['inklusivleistungen'].':</div><ul class="group filter1">';
$leistung = $arrFilter1[$this->getFormat()]['inklusivleistungen'];
else:
$leistung = $arrFilter1[$this->getFormat()]['inklusivleistungen'];
endif;
echo '<li><span class="label">'.$arrFilter1[$this->getFormat()]['price_category'].'</span>'.$arrFilter1[$this->getFormat()]['price'].'/'.$arrFilter1[$this->getFormat()]['aufenthaltsdauer'].'/'.$arrFilter1[$this->getFormat()]['personenzahl'].'</li>';
endforeach;
echo '</ul>';
/* Ende Ausgabe Funktion Filter 1 */
Ausgabefunktion 2 der Referenced items ist über einen Filter so eingestellt, dass über mm_saisonkategorien (siehe Punkt 3) zunächst ein alias aufgerufen werden muss und wird somit nicht angezeigt:
Code:
/*Start Funktion Filter 2*/
function getFilter2ByCustomer($strAlias, $format='html5')
{
$objMetaModel = \MetaModels\Factory::byTableName('mm_zimmerpreise');
$objFilter = $objMetaModel->prepareFilter(86, array());
$objFilter->addFilterRule(new \MetaModels\Filter\Rules\SearchAttribute($objMetaModel->getAttribute('zimmerpid'), $strAlias, $objMetaModel->getAvailableLanguages()));
$objItems = $objMetaModel->findByFilter($objFilter);
return $objItems->parseAll($format, $objMetaModel->getView(62));
}
/*Ende Funktion Filter 2*/
foreach...bla bla
/* Start Ausgabe Funktion Filter 2
!Achtung! -> Hier sollten wir nach einer besseren Lösung suchen!
*/
global $objPage;
$alias=$objPage->alias.'.html';
$requestalias=$this->replaceInsertTags('{{env::request}}');
if ($alias == $requestalias):
$leistung='NULL';
foreach (getFilter2ByCustomer($arrItem['raw']['alias']) as $arrFilter2):
if ($leistung == $arrFilter2[$this->getFormat()]['inklusivleistungen']):
elseif ($leistung == 'NULL'):
echo '<div class="groupheadline filter2">Preise '.$arrFilter2[$this->getFormat()]['inklusivleistungen'].':</div><ul class="group filter2">';
$leistung = $arrFilter2[$this->getFormat()]['inklusivleistungen'];
else:
$leistung = $arrFilter2[$this->getFormat()]['inklusivleistungen'];
endif;
echo '<li><span class="label">'.$arrFilter2[$this->getFormat()]['price_category'].'</span>'.$arrFilter2[$this->getFormat()]['price'].'/'.$arrFilter2[$this->getFormat()]['aufenthaltsdauer'].'/'.$arrFilter2[$this->getFormat()]['personenzahl'].'</li>';
endforeach;
echo '</ul>';
endif;
/* Ende Ausgabe Funktion Filter 2 */
3. Es gibt nun aber ein 3. mm (mm_saisonzeiträume) auf welches Ausgabefunktion 2 der Referenced items reagiert. > saisonzeitraeume.jpg
- Ausgabefunktion 2 der Referenced Items (Preise nach Auswahl des Saisonzeitraumes) reagiert auch völlig korrekt und gibt bei der Auswahl eines Saisonzeitraumes die passenden Daten aus.
- Ausgabefunktion 1 der Referenced items sollte nun ausgeblendet werden -> und genau hierfür benötige ich einen Filter, da ich diese sonst unschön über das Template killen muss (orange markierter Bereich oben in Ausgabe Funktion Filter2).
Uff- ich hoffe Du kannst mir da folgen....
Lesezeichen