Example #1
0
 protected function tokenBemElementToCode($token)
 {
     $code = "<?php";
     $str = $this->childrenGetPlain($token);
     if ($str !== false) {
         $el_parts = Template::bemParseStr($str);
         $full_name = "\$this->bemGetBlock().'__" . $el_parts['name'] . "'";
         if (count($el_parts['modifiers']) === 0) {
             $code .= ' echo ' . $full_name . '; ?>';
         } else {
             $code .= " \$full_name = " . $full_name . "; ";
             $class = array("\$full_name");
             foreach ($el_parts['modifiers'] as $mod) {
                 $class[] = "\$full_name.'_" . $mod . "'";
             }
             $code .= " echo " . join(".' '.", $class) . "; ?>";
         }
         if (count($el_parts['plain']) > 0) {
             $code .= ' ' . join(' ', $el_parts['plain']);
         }
         return $code;
         //$code .= "echo join(' ', \$el_parts['plain']);\n";
     }
     $code .= "\nob_start();\n";
     $this->pushState('edit', false);
     $code .= $this->childrenToCode($token);
     $this->popState('edit');
     $code .= '$el_string = ob_get_clean();' . "\n";
     $code .= '$el_parts = \\Floxim\\Floxim\\Template\\Template::bemParseStr($el_string);' . "\n";
     $code .= "\$full_name = \$this->bemGetBlock().'__'.\$el_parts['name'];\n";
     $code .= "echo \$full_name.' ';\n";
     $code .= "foreach (\$el_parts['modifiers'] as \$mod) {\n";
     $code .= "echo \$full_name.'_'.\$mod.' ';\n";
     $code .= "}\n";
     $code .= "echo join(' ', \$el_parts['plain']);\n";
     $code .= "?>";
     return $code;
 }