소스 검색

Removed uniqid from template block prefixes

Andrea Delfino 12 년 전
부모
커밋
975dc2693a
1개의 변경된 파일5개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 3
      Form/Extension/Field/Type/FormTypeFieldExtension.php

+ 5 - 3
Form/Extension/Field/Type/FormTypeFieldExtension.php

@@ -99,11 +99,13 @@ class FormTypeFieldExtension extends AbstractTypeExtension
 
             // add a new block types, so the Admin Form element can be tweaked based on the admin code
             $block_prefixes    = $view->vars['block_prefixes'];
-            $baseName = str_replace('.', '_', $sonataAdmin['field_description']->getAdmin()->getCode());
-            $baseType = $block_prefixes[count($block_prefixes) - 1];
+            $baseName = str_replace('.', '_', $sonataAdmin['admin']->getCode());
+            $baseType = $block_prefixes[count($block_prefixes) - 2];
+            $blockSuffix = preg_replace("#^_([a-z0-9]{14})_(.++)$#", "\$2", array_pop($block_prefixes));
 
             $block_prefixes[] = sprintf('%s_%s', $baseName, $baseType);
-            $block_prefixes[] = sprintf('%s_%s_%s', $baseName, $sonataAdmin['field_description']->getName(), $baseType);
+            $block_prefixes[] = sprintf('%s_%s_%s', $baseName, $sonataAdmin['name'], $baseType);
+            $block_prefixes[] = sprintf('%s_%s_%s_%s', $baseName, $sonataAdmin['name'], $baseType, $blockSuffix);
 
             if ($sonataAdmin['block_name']) {
                 $block_prefixes[] = $sonataAdmin['block_name'];