Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
 /**
  * @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;
     }
 }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
 /**
  * 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));
 }
Ejemplo n.º 5
0
 /**
  * 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);
 }