/** * @see ezfSolrDocumentFieldBase::getFieldName() * @param eZContentClassAttribute $classAttribute * @param null $subAttribute * @param string $context * * @return bool|string */ public static function getFieldName(eZContentClassAttribute $classAttribute, $subAttribute = null, $context = 'search') { switch ($classAttribute->attribute('data_type_string')) { case 'ezobjectrelation': if ($subAttribute && $subAttribute !== '' && $subAttribute != self::DEFAULT_SUBATTRIBUTE && ($type = self::getTypeForSubattribute($classAttribute, $subAttribute, $context))) { if (in_array($subAttribute, array_keys(eZSolr::metaAttributes()))) { return parent::generateSubmetaFieldName($subAttribute, $classAttribute); } else { return parent::generateSubattributeFieldName($classAttribute, $subAttribute, $type); } } else { return parent::generateAttributeFieldName($classAttribute, self::$subattributesDefinition[self::DEFAULT_SUBATTRIBUTE_TYPE]); } break; case 'ezobjectrelationlist': if ($subAttribute and $subAttribute !== '' and $subAttribute != self::DEFAULT_SUBATTRIBUTE and $type = self::getTypeForSubattribute($classAttribute, $subAttribute, $context)) { if (in_array($subAttribute, array_keys(eZSolr::metaAttributes()))) { return parent::generateSubmetaFieldName($subAttribute, $classAttribute); } else { return parent::generateSubattributeFieldName($classAttribute, $subAttribute, $type); } } else { // return the default field name here. return parent::generateAttributeFieldName($classAttribute, self::$subattributesDefinition[self::DEFAULT_SUBATTRIBUTE_TYPE]); } break; default: break; } return false; }