Example #1
0
 public function run()
 {
     error_reporting(E_ALL & ~E_NOTICE);
     if (!$this->skippedFiles) {
         $this->clearTemp();
     }
     $latte = $this->template->getLatte();
     /* @var $file SplFileInfo */
     foreach ($this->prepareFiles() as $file) {
         try {
             echo $file->getPathname() . "\n";
             $code = $latte->compile($file->getPathname());
             file_put_contents($latte->getCacheFile($file->getPathname()), $code);
         } catch (RuntimeException $e) {
             if (substr($e->getMessage(), 0, 30) !== 'Cannot include undefined block') {
                 throw $e;
             }
         } catch (CompileException $e) {
             $find = NULL;
             if (!preg_match('/Unknown macro \\{(.*)\\}/U', $e->getMessage(), $find)) {
                 throw $e;
             }
             $macroName = $find[1];
             $this->template->getLatte()->onCompile[] = function (Engine $engine) use($macroName) {
                 $engine->addMacro($macroName, new EmptyMacro());
                 //goto checkFile;
             };
             $this->skippedFiles[] = $file;
         }
     }
     if ($this->skippedFiles) {
         $this->run();
     }
 }
Example #2
0
 /**
  * Register in base presenter.
  * When registered it will provide url for assets belonging to 
  * compiler extension class which has implemented IAssetsProvider.
  * 
  * @param Template $template
  * @param string $name Name of the macro used in templates.
  * @param string $extensionClass Compiler extension class
  */
 public function register(Template $template, $name, $extensionClass)
 {
     $latte = $template->getLatte();
     $template->_echo511_assetlocator = $this->extensionsData;
     $set = new MacroSet($latte->getCompiler());
     $set->addMacro($name, function ($node, $writer) use($extensionClass) {
         return $writer->write('echo $_echo511_assetlocator->getFilesystem(\'' . $extensionClass . '\')->getUrl(\'' . trim($node->args, '"\'') . '\');');
     });
 }
Example #3
0
 public static function prepareTemplate(Template $template)
 {
     $texy = new \Texy();
     $latte = $template->getLatte();
     $latte->addFilter('texy', function ($text) use($texy) {
         return Html::el('')->setHtml($texy->process($text));
     });
     $latte->addFilter('time', function ($text) {
         return date('j.n.Y G:i:s', $text);
     });
 }
 /**
  * @param Latte\Template|\Nette\Bridges\ApplicationLatte\Template|\Nette\Templating\Template $template
  * @param ITranslator $translator
  */
 private static function overrideTemplateTranslator($template, ITranslator $translator)
 {
     if ($template instanceof Latte\Template) {
         $template->getEngine()->addFilter('translate', array(new TemplateHelpers($translator), 'translate'));
     } elseif ($template instanceof \Nette\Bridges\ApplicationLatte\Template) {
         $template->getLatte()->addFilter('translate', array(new TemplateHelpers($translator), 'translate'));
     } elseif ($template instanceof \Nette\Templating\Template) {
         $template->registerHelper('translate', array(new TemplateHelpers($translator), 'translate'));
     }
     return $translator;
 }
Example #5
0
 /**
  * @param Template $template
  */
 public function templatePrepareFilters($template)
 {
     AngularMacro::install($template->getLatte()->getCompiler());
 }