/**
  * Return all attributes that shall be fetched from the MetaModel.
  *
  * In this base implementation, this only includes the attributes mentioned in the render setting.
  *
  * @author     Christian Schiffler <*****@*****.**>
  * @copyright  The MetaModels team.
  * @see        MetaModels::getAttributeNames
  * @return     string[] the names of the attributes to be fetched.
  */
 protected function getAttributeNames()
 {
     $arrAttributes = $this->renderSetting->getSettingNames();
     // Get the right jumpTo.
     $desiredLanguage = $this->getMetaModel()->getActiveLanguage();
     $strFallbackLanguage = $this->getMetaModel()->getFallbackLanguage();
     $filterSetting = 0;
     foreach ((array) $this->renderSetting->get('jumpTo') as $jumpTo) {
         // If either desired language or fallback, keep the result.
         if (!$this->getMetaModel()->isTranslated() || $jumpTo['langcode'] == $desiredLanguage || $jumpTo['langcode'] == $strFallbackLanguage) {
             $filterSetting = $jumpTo['filter'];
             // If the desired language, break. Otherwise try to get the desired one until all have been evaluated.
             if ($desiredLanguage == $jumpTo['langcode']) {
                 break;
             }
         }
     }
     if ($filterSetting) {
         $objFilterSettings = MetaModelsFilterFactory::byId($filterSetting);
         $arrAttributes = array_merge($objFilterSettings->getReferencedAttributes(), $arrAttributes);
     }
     return $arrAttributes;
 }
Esempio n. 2
0
 /**
  * Return all attributes that shall be fetched from the MetaModel.
  *
  * In this base implementation, this only includes the attributes mentioned in the render setting.
  *
  * @return string[] the names of the attributes to be fetched.
  */
 protected function getAttributeNames()
 {
     $arrAttributes = $this->objView->getSettingNames();
     // Get the right jumpTo.
     $strDesiredLanguage = $this->getMetaModel()->getActiveLanguage();
     $strFallbackLanguage = $this->getMetaModel()->getFallbackLanguage();
     $intFilterSettings = 0;
     foreach ((array) $this->getView()->get('jumpTo') as $arrJumpTo) {
         // If either desired language or fallback, keep the result.
         if (!$this->getMetaModel()->isTranslated() || $arrJumpTo['langcode'] == $strDesiredLanguage || $arrJumpTo['langcode'] == $strFallbackLanguage) {
             $intFilterSettings = $arrJumpTo['filter'];
             // If the desired language, break. Otherwise try to get the desired one until all have been evaluated.
             if ($strDesiredLanguage == $arrJumpTo['langcode']) {
                 break;
             }
         }
     }
     if ($intFilterSettings) {
         $objFilterSettings = $this->getServiceContainer()->getFilterFactory()->createCollection($intFilterSettings);
         $arrAttributes = array_merge($objFilterSettings->getReferencedAttributes(), $arrAttributes);
     }
     return $arrAttributes;
 }