@@ -23,6 +23,27 @@ protected function doLeaveNode(\Twig_Node $node, \Twig_Environment $env)
23
23
if ($ node instanceof \Twig_Node_Include) {
24
24
if ($ node ->hasNode ('expr ' ) && $ node ->getNode ('expr ' )->hasAttribute ('value ' )) {
25
25
$ patternStoreKey = $ node ->getNode ('expr ' )->getAttribute ('value ' );
26
+
27
+ // Handle Twig namespace includes
28
+ if ($ patternStoreKey [0 ] == '@ ' ) {
29
+ $ patternStoreKey = ltrim ($ patternStoreKey , '@ ' );
30
+ $ lineageParts = explode ('/ ' , $ patternStoreKey );
31
+ $ length = count ($ lineageParts );
32
+ $ patternType = $ lineageParts [0 ];
33
+
34
+ $ patternName = $ lineageParts [$ length - 1 ];
35
+ $ patternName = ltrim ($ patternName , '_ ' );
36
+ $ patternName = preg_replace ('/^[0-9\-]+/ ' , '' , $ patternName );
37
+
38
+ $ patternNameStripped = explode ('.twig ' , $ patternName );
39
+
40
+ if (count ($ patternNameStripped ) > 1 ) {
41
+ $ patternName = $ patternNameStripped [0 ];
42
+ }
43
+ $ patternName = str_replace ('. ' , '- ' , $ patternName );
44
+ $ patternStoreKey = $ patternType . "- " . $ patternName ;
45
+ }
46
+
26
47
$ data = $ this ->dt ->getProcessedPatternSpecificData ($ patternStoreKey );
27
48
if ($ node instanceof \Twig_Node_Embed) {
28
49
$ dataNode = new PatternDataEmbedNode ($ node , $ data );
0 commit comments