/** * @param eZContentClassAttribute $attribute * * @return OCClassSearchFormAttributeField */ public static function instance(eZContentClassAttribute $attribute) { if (self::$fieldHandlers === null) { self::$fieldHandlers = array(); if (eZINI::instance('ocsearchtools.ini')->hasVariable('ClassSearchFormHandlers', 'AttributeHandlers')) { self::$fieldHandlers = eZINI::instance('ocsearchtools.ini')->variable('ClassSearchFormHandlers', 'AttributeHandlers'); } } if (!isset(self::$_instances[$attribute->attribute('id')])) { if (isset(self::$fieldHandlers[$attribute->attribute('data_type_string')]) && class_exists(self::$fieldHandlers[$attribute->attribute('data_type_string')])) { $className = self::$fieldHandlers[$attribute->attribute('data_type_string')]; } else { $className = 'OCClassSearchFormAttributeField'; } self::$_instances[$attribute->attribute('id')] = new $className($attribute); } return self::$_instances[$attribute->attribute('id')]; }