/** * 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; }
/** * 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; }