Beispiel #1
0
 /**
  * @param IControlConfig $controlConfig
  * @return string
  */
 public function getLabelFor(IControlConfig $controlConfig)
 {
     $label = $this->format;
     $fieldName = $controlConfig->getFieldName();
     $className = $controlConfig->getParentClassName();
     if (Nette\Utils\Strings::contains($fieldName, DotNotation\ClassMetadataWrapper::FIELD_SEPARATOR)) {
         $classMetadata = $this->classMetadataFactory->getMetadataFor($className);
         $parts = explode(DotNotation\ClassMetadataWrapper::FIELD_SEPARATOR, $fieldName);
         $fieldName = array_pop($parts);
         $association = implode(DotNotation\ClassMetadataWrapper::FIELD_SEPARATOR, $parts);
         $className = $classMetadata->getAssociationTargetClass($association);
     }
     $classParts = explode('\\', $className);
     $classParts = array_map(function ($value) {
         return lcfirst($value);
     }, $classParts);
     // Convert \NameSpace1\NameSpace2\ClassName to nameSpace1.nameSpace2.className
     $fullQualifiedClassName = trim(implode('.', $classParts), '.');
     // Convert \NameSpace1\NameSpace2\ClassName to className
     $shortClassName = end($classParts);
     $label = str_replace(self::FIELD_NAME, $fieldName, $label);
     $label = str_replace(self::CLASS_NAME, $shortClassName, $label);
     $label = str_replace(self::FULL_QUALIFIED_CLASS_NAME, $fullQualifiedClassName, $label);
     return $label;
 }