nefunkcni odkazy v ErrorPresenteru

kleinpetr
Člen | 480
+
0
-

Zdravim,

chtel jsem se jen v rychlosti zeptat jak resite ErrorPresenter, chtel jsem zachovat layout a take globalni searchForm, ktery je na celem webu, podedil jsem tedy ErrorPresenter od sveho FrontBasePresenteru a pristupuji k nemu jako ke klasickemu presenteru, podle exception mu nastavim prislusnou sablonu.

class Error4xxPresenter extends FrontBasePresenter
{

	public function startup()
	{
		parent::startup();
		if (!$this->getRequest()->isMethod(Nette\Application\Request::FORWARD)) {
			$this->error();
		}
	}


	public function renderDefault(Nette\Application\BadRequestException $exception)
	{
		// load template 403.latte or 404.latte or ... 4xx.latte
		$file = __DIR__ . "/templates/Error/{$exception->getCode()}.latte";
		$this->template->setFile(is_file($file) ? $file : __DIR__ . '/templates/Error/4xx.latte');

        $this->template->homepageSections = $this->em->createQueryBuilder()
            ->select('pts')
            ->from(PageTabSectionEntity::class, 'pts')
            ->leftJoin('pts.page_tab', 'pt')
            ->leftJoin('pt.page', 'p')
            ->where('p.homepage = 1')
            ->getQuery()
            ->getResult();
	}
}

Problem ale je, ze nefunguje ani jeden odkaz. Cetl jsem nejake starsi vlakna a zda se ze by mely odkazy normalne fungovat. Diky za nakopnuti.

Editoval kleinpetr (23. 3. 2018 13:50)

kleinpetr
Člen | 480
+
0
-

Tak problem je nejspis v tom, ze pouzivam globalni Error presenter apric moduly, mohl bych opravit vechny linky a pridat k nim :Module:… ale napriklad v komponente na signal, to asi neudelam.

Jak mohu tedy docilit toho aby se mi na FrontModule volal ErrorPresenter z prislusneho modulu ?

ErrorPresenter mam nechat globalne nebo ho musim take premistit do Modulu ?

kleinpetr
Člen | 480
+
0
-

Tak uz jsem to vyresil tak, ze z ErrorPresenteru provedu forward primo na Front:Error4xx presenter. Vse uz funguje dobre, az na odkazy v komponente kde je vyhledavaci formular. tzn odkazy v komponente typu {link some!} nebo i samotny action formulare.

Da se to nejak obejit ?