예제 #1
0
 /**
  * Returns the code for the panel itself.
  *
  * @return string
  */
 public function getPanel()
 {
     $template = new FileTemplate();
     $template->setFile(__DIR__ . "/panel.latte");
     $template->onPrepareFilters[] = function ($template) {
         $template->registerFilter(new Engine());
     };
     $template->registerHelperLoader("\\Nette\\Templating\\Helpers::loader");
     $template->setCacheStorage(new PhpFileStorage($this->container->parameters["tempDir"] . "/cache"));
     if ($this->container->application->presenter) {
         $file = $this->container->application->presenter->template->getFile();
         if (!empty($file)) {
             $template->templatePath = $file;
             $template->templateCode = $this->printCode($file);
             $template->presenterLink = $this->container->application->getPresenter()->link("this");
             $template->xhr_header = self::XHR_HEADER;
         }
     }
     ob_start();
     echo $template->render();
     return ob_get_clean();
 }
예제 #2
0
 /**
  * @return Nette\Templating\ITemplate
  */
 protected function createTemplate()
 {
     $template = new Nette\Templating\FileTemplate();
     $presenter = $this->getPresenter(FALSE);
     $template->onPrepareFilters[] = callback($this, 'templatePrepareFilters');
     // default parameters
     $template->control = $this;
     $template->presenter = $presenter;
     if ($presenter instanceof Presenter) {
         $template->setCacheStorage($presenter->getContext()->templateCacheStorage);
         $template->user = $presenter->getUser();
         $template->netteHttpResponse = $presenter->getHttpResponse();
         $template->netteCacheStorage = $presenter->getContext()->cacheStorage;
         $template->baseUri = $template->baseUrl = rtrim($presenter->getHttpRequest()->getUrl()->getBaseUrl(), '/');
         $template->basePath = preg_replace('#https?://[^/]+#A', '', $template->baseUrl);
         // flash message
         if ($presenter->hasFlashSession()) {
             $id = $this->getParamId('flash');
             $template->flashes = $presenter->getFlashSession()->{$id};
         }
     }
     if (!isset($template->flashes) || !is_array($template->flashes)) {
         $template->flashes = array();
     }
     // default helpers
     $template->registerHelper('escape', 'Nette\\Templating\\DefaultHelpers::escapeHtml');
     $template->registerHelper('escapeUrl', 'rawurlencode');
     $template->registerHelper('stripTags', 'strip_tags');
     $template->registerHelper('nl2br', 'nl2br');
     $template->registerHelper('substr', 'iconv_substr');
     $template->registerHelper('repeat', 'str_repeat');
     $template->registerHelper('replaceRE', 'Nette\\Utils\\Strings::replace');
     $template->registerHelper('implode', 'implode');
     $template->registerHelper('number', 'number_format');
     $template->registerHelperLoader('Nette\\Templating\\DefaultHelpers::loader');
     return $template;
 }