public function attached($presenter) { parent::attached($presenter); $this->column = $this->lookup('Brabijan\\Datagrid\\Renderer')->getColumn($this->columnId); if ($this->templateRowCallback) { $this->templateRowCallback->invokeArgs(array($this)); } }
/** * @return Nette\Application\IResponse */ public function run(Application\Request $request) { $this->request = $request; $httpRequest = $this->context->getByType('Nette\\Http\\IRequest'); if (!$httpRequest->isAjax() && ($request->isMethod('get') || $request->isMethod('head'))) { $refUrl = clone $httpRequest->getUrl(); $url = $this->context->getService('router')->constructUrl($request, $refUrl->setPath($refUrl->getScriptPath())); if ($url !== NULL && !$httpRequest->getUrl()->isEqual($url)) { return new Responses\RedirectResponse($url, Http\IResponse::S301_MOVED_PERMANENTLY); } } $params = $request->getParameters(); if (!isset($params['callback'])) { throw new Application\BadRequestException("Parameter callback is missing."); } $params['presenter'] = $this; $callback = new Nette\Callback($params['callback']); $response = $callback->invokeArgs(Application\UI\PresenterComponentReflection::combineArgs($callback->toReflection(), $params)); if (is_string($response)) { $response = array($response, array()); } if (is_array($response)) { if ($response[0] instanceof \SplFileInfo) { $response = $this->createTemplate('Nette\\Templating\\FileTemplate')->setParameters($response[1])->setFile($response[0]); } else { $response = $this->createTemplate('Nette\\Templating\\Template')->setParameters($response[1])->setSource($response[0]); } } if ($response instanceof Nette\Templating\ITemplate) { return new Responses\TextResponse($response); } else { return $response; } }
public function render() { if ($this->customTemplate === NULL) { $this->template->setFile(__DIR__ . '/control.latte'); } else { $this->template->setFile($this->customTemplate); $this->template->extend = __DIR__ . '/control.latte'; } $this->template->rows = array_keys($this->getData()); if ($this->isPaginatorEnabled()) { $this->template->paginationPosition = $this->paginationPositions; $this->template->paginator = $this->paginator; } else { $this->template->paginationPosition = Renderer::PAGINATION_NONE; } if ($this->templateHelpersCallback) { $this->templateHelpersCallback->invokeArgs(array($this->template)); } $this->template->showFilter = ($this->filterManualRender == FALSE and $this->filterFormFactory !== NULL); $this->template->showHeaders = !$this->hideDatagridHeaders; $this->template->render(); }
/** * Calls method using autowiring. * @param mixed class, object, function, callable * @param array arguments * @return mixed */ public function callMethod($function, array $args = array()) { $callback = new Nette\Callback($function); return $callback->invokeArgs(Helpers::autowireArguments($callback->toReflection(), $args, $this)); }
/** * Expands the event to the callback. * * @param \Nette\Callback $callback Original callback * @param \ApiGen\Event $event Event * @return mixed */ public static function expandEventCallback(Callback $callback, Event $event) { $payload = $event->getPayload(); $arguments = is_array($payload) ? $payload : (null === $payload ? array() : array($payload)); $arguments[] = $event; return $callback->invokeArgs($arguments); }