예제 #1
0
파일: Printer.php 프로젝트: gunderjt/MtHaml
 public function enterFilter(Filter $node)
 {
     $this->write('filter(' . $node->getFilter())->indent();
 }
 public function leaveFilter(Filter $node)
 {
     switch ($node->getFilter()) {
         case 'javascript':
             $this->undent()->write('//]]>')->write('</script>');
             break;
         case 'css':
             $this->undent()->write('/*]]>*/')->write('</style>');
             break;
         case 'plain':
             break;
         case 'preserve':
             $this->indent = array_pop($this->savedIndent);
             break;
     }
 }
예제 #3
0
 public function leaveFilter(Filter $node)
 {
     $filter = $this->env->getFilter($node->getFilter());
     if (!$filter->isOptimizable($this, $node, $this->env->getOptions())) {
         $this->undent();
         $this->write(') ?>');
         $this->popEchoMode();
     }
 }
예제 #4
0
 public function leaveFilter(Filter $node)
 {
     $filter = $this->env->getFilter($node->getFilter());
     if (!$filter->isOptimizable($this, $node, $this->env->getOptions())) {
         $this->write('{% endfilter %}');
         $this->indent = $this->popSavedIndent();
     }
 }
예제 #5
0
 public function enterFilterChilds(Filter $node)
 {
     $filter = $this->env->getFilter($node->getFilter());
     if ($filter->isOptimizable($this, $node, $this->env->getOptions())) {
         $filter->optimize($this, $node, $this->env->getOptions());
         return false;
     }
 }