Zjištování zda stránka existuje

- jasin755
 - Člen | 116
 
Zdravím,
hledám nejlepší způsob jak testovat zda existuje nexistuje nějaká stránka, nejlépe nějakým aplicationRequstem aby se nerenderovali šablony zbytečně.
Mělo by to fungovat tak, že např. zakládám produkt a potřebuji otestovat zda stejnou url už nemá nějaká kategorie, produkt, článek atd… (maji stejnou strukturu).
Mělo by to ještě nejak vracet ID abych mohl porovnávat zda v případě když stránka existuje nepatří produktu,kategori, článku, který právě edituji.
Díky mockrát.

- Myiyk
 - Člen | 321
 
Toto je funkční příklad na sandboxu:
class HomepagePresenter extends BasePresenter {
	/** @var \Nette\DI\Container */
	protected $router;
	public function __construct(\Nette\DI\Container $container) {
		parent::__construct();
		$this->router = $container->getService('router');
	}
	public function renderDefault() {
		$url = new \Nette\Http\UrlScript("/sign/in/123"); // zadej si vlastní adresu
		$r = $this->router->match(new \Nette\Http\Request($url));
		dump($r);
	}
}
Výsledek dumpu
Nette\Application\Request #f104
	method private => NULL
	flags private => array (1)
		secured => FALSE
	name private => "Sign" (4)
	params private => array (2)
		action => "in" (2)
		id => "123" (3)
	post private => array ()
	files private => array ()
$r je typu Nette\Application\Request
nebo NULL když není shoda (chyba 404 – stránka
nenalezena)
Pro vyhodnocení se použijou routery, stejně jako u zpracování url adresy.
Data z toho lze dostat jednoduše
$r->getPresenterName();
"Sign" (4)
$r->getParameters();
array (2)
	action => "in" (2)
	id => "123" (3)
					Editoval Myiyk (25. 7. 2014 14:06)