Sitemap vygenerovaný z routeru?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Landsman
Člen | 152
+
0
-

Zdravím,

neřešil někdo možnost vygenerovat si část adres z routeru?
Zbylé samozřejmě musím ručně doplnit z databáze, ale bylo by to také fajn pro ty statické adresy. Člověk nějakou doplní a zapomene ji pak přidat do sitemap.

Díky

Martk
Člen | 651
+
0
-

Jak generuješ ty statické adresy? Přes StaticRouter od nextras?

Landsman
Člen | 152
+
0
-

Antik napsal(a):

Jak generuješ ty statické adresy? Přes StaticRouter od nextras?

Zatím sem jich měl pouze pár, tak jsem je tam dal ručně, proto uvažuji o změně.

Martk
Člen | 651
+
0
-

Pokud bys je generoval přes StaticRouter, tak bys mohl použít asi toto:

interface IStaticPagesProvider {

	/** @return array */
	public function getStaticPages();

}
class Router implements IRouter, IStaticPagesProvider {

	public function getStaticPages() {
		return [
			'Sign:up' => 'registrace',
			'Sign:in' => 'prihlaseni',
		];
	}

	public function createRouter() {
		$router = new RouteList();

		$router[] = new StaticRouter($this->getStaticPages());
	}
}

a v sitemap:

class Sitemap {

	private $staticProvider;

	private $linkGenerator;

	public function __construct(LinkGenerator $linkGenerator, IStaticPagesProvider $staticProvider) {
		// assign to properties
	}

	public function generate() {
		foreach (array_keys($this->staticProvider->getStaticPages()) as $path) {
			$link = $this->linkGenerator->link($path);
		}
	}

}

Editoval Antik (10. 9. 2016 9:51)