/** * Render the templates * * @param \Nette\Forms\Form $form * @param string $mode * * @return void */ public function render(Nette\Forms\Form $form, $mode = NULL) { if ($this->form !== $form) { $this->form = $form; // translators if ($translator = $this->form->getTranslator()) { $this->template->setTranslator($translator); } // controls placeholders & classes foreach ($this->form->getControls() as $control) { $this->prepareControl($control); } $formEl = $form->getElementPrototype(); if (!$formEl->class || stripos('form-', (string) $formEl->class) === FALSE) { $formEl->addClass('form-horizontal'); } } $this->template->form = $this->form; $this->template->_form = $this->form; $this->template->renderer = $this; if ($mode === NULL) { $this->template->render(); } elseif ($mode === 'begin') { FormMacros::renderFormBegin($this->form, array()); } elseif ($mode === 'end') { FormMacros::renderFormEnd($this->form); } else { $this->template->setFile(__DIR__ . '/@parts.latte'); $this->template->mode = $mode; $this->template->render(); $this->template->setFile(__DIR__ . '/@form.latte'); } }
/** * Render the templates. * @param Form $form * @param string $mode * @param array $args */ public function render(Form $form, $mode = NULL, $args = NULL) { if ($this->template === NULL) { if ($presenter = $form->lookup('Nette\\Application\\UI\\Presenter', FALSE)) { /** @var \Nette\Application\UI\Presenter $presenter */ $this->template = clone $presenter->getTemplate(); } else { $this->template = new FileTemplate(); $this->template->registerFilter(new \Nette\Latte\Engine()); } } if ($this->form !== $form) { $this->form = $form; // translators if ($translator = $this->form->getTranslator()) { $this->template->setTranslator($translator); } // controls placeholders & classes foreach ($this->form->getControls() as $control) { $this->prepareControl($control); } $formEl = $form->getElementPrototype(); if (!($classes = self::getClasses($formEl)) || stripos($classes, 'form-') === FALSE) { //$formEl->addClass('form-horizontal'); } } elseif ($mode === 'begin') { foreach ($this->form->getControls() as $control) { /** @var \Nette\Forms\Controls\BaseControl $control */ $control->setOption('rendered', FALSE); } } $this->template->setFile(__DIR__ . '/@form.latte'); $this->template->setParameters(array_fill_keys(array('control', '_control', 'presenter', '_presenter'), NULL) + array('_form' => $this->form, 'form' => $this->form, 'renderer' => $this)); if ($mode === NULL) { if ($args) { $this->form->getElementPrototype()->addAttributes($args); } $this->template->render(); } elseif ($mode === 'begin') { FormMacros::renderFormBegin($this->form, (array) $args); } elseif ($mode === 'end') { FormMacros::renderFormEnd($this->form); } else { $attrs = array('input' => array(), 'label' => array()); foreach ((array) $args as $key => $val) { if (stripos($key, 'input-') === 0) { $attrs['input'][substr($key, 6)] = $val; } elseif (stripos($key, 'label-') === 0) { $attrs['label'][substr($key, 6)] = $val; } } $this->template->setFile(__DIR__ . '/@parts.latte'); $this->template->mode = $mode; $this->template->attrs = (array) $attrs; $this->template->render(); } }
public function configure(Template $template) { // translator if (($translator = $this->container->getByType('Nette\\Localization\\ITranslator', FALSE)) !== NULL) { $template->setTranslator($translator); } $template->registerHelperLoader(array($this->container->venne->helpers, "loader")); }
/** * Render the templates * * @param \Nette\Forms\Form $form * * @return void */ public function render(Nette\Forms\Form $form) { if ($this->form !== $form) { $this->form = $form; // translators if ($translator = $this->form->getTranslator()) { $this->template->setTranslator($translator); } // controls placeholders & classes foreach ($this->form->getControls() as $control) { $this->prepareControl($control); } $formEl = $form->getElementPrototype(); if (stripos('form-', $formEl->class) === FALSE) { $formEl->addClass('form-horizontal'); } } $this->template->form = $this->form; $this->template->renderer = $this; $this->template->render(); }
public function createNewTemplate($fileName = NULL) { $template = NULL; if ($fileName !== NULL) { $template = new \Nette\Templating\FileTemplate(); $template->setFile($fileName); } else { $template = new Nette\Templating\Template(); } $template->setTranslator($this->getPresenter()->context->translator); $template->registerFilter(new \Nette\Latte\Engine()); $template->registerHelperLoader('Nette\\Templating\\Helpers::loader'); //$baseUrl = rtrim($this->presenter->context->httpRequest->getUrl()->getBaseUrl(), '/'); $template->basePath = $this->getBasePath(); $template->themePath = $template->basePath . '/' . strtolower($this->presenter->pageManagerService->getCurrentModule()); $template->_presenter = $this->presenter; $template->_control = $this; return $template; }
/** * Render the templates * * @param \Nette\Forms\Form $form * @return void */ public function render(\Nette\Forms\Form $form) { if ($form === $this->form) { // don't forget for second run, @hosiplan! ;) foreach ($this->form->getControls() as $control) { $control->setOption('rendered', false); } echo $this->template; return; } // Store the current form instance $this->form = $form; // Translator available? if ($translator = $form->getTranslator()) { // intentional = $this->template->setTranslator($translator); } // Pre-proccess form $errors = $form->getErrors(); foreach ($form->getControls() as $control) { $control->setOption('rendered', false); if (!$control->getOption('blockname', false)) { $ex = explode('\\', get_class($control)); $control->setOption('blockname', end($ex)); } if ($this->errorsAtInputs) { $errors = array_diff($errors, $control->errors); } } // Assign to template $this->template->form = $form; $this->template->errors = $errors; $this->template->renderer = $this; $this->template->errorsAtInputs = $this->errorsAtInputs; // And echo the output echo $this->template; }
/** * Render the templates * * @param \Nette\Forms\Form $form * @param string $mode * @param array $args * @return void */ public function render(Nette\Forms\Form $form, $mode = NULL, $args = NULL) { if ($this->template === NULL) { if ($presenter = $form->lookup('Nette\\Application\\UI\\Presenter', FALSE)) { /** @var \Nette\Application\UI\Presenter $presenter */ $this->template = clone $presenter->getTemplate(); } else { $this->template = new Nette\Bridges\ApplicationLatte\Template(new Nette\Latte\Engine()); } } if ($this->form !== $form) { $this->form = $form; // translators if ($translator = $this->form->getTranslator()) { $this->template->setTranslator($translator); } // controls placeholders & classes foreach ($this->form->getControls() as $control) { $this->prepareControl($control); } $formEl = $form->getElementPrototype(); if (!($classes = self::getClasses($formEl)) || stripos($classes, 'form-') === FALSE) { $this->horizontalMode = $this->mode === self::MODE_HORIZONTAL; if ($this->mode !== self::MODE_NO_CLASS) { $formEl->addClass($this->mode); } } } elseif ($mode === 'begin') { foreach ($this->form->getControls() as $control) { /** @var \Nette\Forms\Controls\BaseControl $control */ $control->setOption('rendered', FALSE); } } $this->template->setFile(__DIR__ . '/@form.latte'); $this->template->setParameters(array_fill_keys(array('control', '_control', 'presenter', '_presenter'), NULL) + array('_form' => $this->form, 'form' => $this->form, 'renderer' => $this)); if ($this->horizontalMode) { $this->template->labelCols = $this->labelColumns; $this->template->inputCols = $this->inputColumns; $this->template->labelClass = $this->columnClassPrefix . $this->labelColumns; $this->template->inputClass = $this->columnClassPrefix . $this->inputColumns; $this->template->skipClass = $this->columnClassPrefix . 'offset-' . $this->labelColumns; } if ($mode === NULL) { if ($args) { $this->form->getElementPrototype()->addAttributes($args); } $this->template->render(); } elseif ($mode === 'begin') { FormMacros::renderFormBegin($this->form, (array) $args); } elseif ($mode === 'end') { FormMacros::renderFormEnd($this->form); } else { $attrs = array('input' => array(), 'label' => array(), 'pair' => array(), 'pair-class' => ''); foreach ((array) $args as $key => $val) { if (stripos($key, 'input-') === 0) { $attrs['input'][substr($key, 6)] = $val; } elseif (stripos($key, 'label-') === 0) { $attrs['label'][substr($key, 6)] = $val; } elseif ($key === 'class') { $attrs['pair-class'] = $val; } else { $attrs['pair'][$key] = $val; } } if ($this->horizontalMode) { if (isset($attrs['label']['class'])) { $attrs['label']['class'] .= ' ' . $this->columnClassPrefix . $this->labelColumns; } else { $attrs['label']['class'] = $this->columnClassPrefix . $this->labelColumns; } } $this->template->setFile(__DIR__ . '/@parts.latte'); $this->template->mode = $mode; $this->template->attrs = (array) $attrs; $this->template->render(); } }
private function _avelancheTransform($text, $filterParams = NULL, $templateParams = NULL) { //dump($filterParams); $_temp = $text; $hash = NULL; $oldHash = NULL; for ($i = 1; $i <= 50; $i++) { $template = new \Nette\Templating\Template(); $template->setTranslator($this->presenter->context->translator); $template->setSource($_temp); $template->add('_presenter', $this->presenter); $template->add('_control', $this->presenter); $template->add('_page', $this); if ($templateParams !== NULL) { foreach ($templateParams as $k => $v) { $template->add($k, $v); } } $template->onPrepareFilters[] = function ($template) use($filterParams) { $template->registerFilter(new Bubo\Filters\CMSFilter($filterParams)); }; $template->onPrepareFilters[] = function ($template) { $template->registerFilter(new \Nette\Latte\Engine()); }; //$template->setCacheStorage(new \Nette\Caching\Storages\PhpFileStorage(TEMP_DIR.'/cache')); $_temp = $template->__toString(); if (($hash = sha1($_temp)) == $oldHash) { break; } $oldHash = $hash; } return $_temp; }