Autor Zpráva
ZdenekPNJ
Profil
Zdravím všechny,
pracuji na kompletním předělání redakčního systému a napadlo mně, že by bylo dobré si vytvořit funkci, díky které bych měl možnost jednoduše spravovat a generovat veškeré odkazy.
Chtěl byl znát názor zkušenějších, jestli je to správná cesta či existuje lepší možnost jak zajistit níže uvedené.

Příklad:
Namísto současné podoby, kdy je v kódu
<a href="clanek.php?cisloclanku=123&idrubriky=4&idpodrubriky=5&seonazev=nadpis-clanku-vygenerovany-z-nadpisu-v-db" title="Název článku">Název článku</a>
či
<a href="hledej.php?idrubriky=4&idpodrubriky=5" title="Vyhledávání v rubrice 4 a podrubrice 5">Vyhledávání v rubrice 4 a podrubrice 5</a>

bych chtěl, aby tam bylo něco podobného:
<a href="<?php function dodejURL('clanek.php', '4', '5', '123', 'nadpis-clanku-vygenerovany-z-nadpisu-v-db'); ?>" title="Název článku">Název článku</a>
či
<a href="<?php function dodejURL('hledej.php', '4', '5', '', ''); ?>" title="Vyhledávání v rubrice 4 a podrubrice 5">Vyhledávání v rubrice 4 a podrubrice 5</a>.

Proč to chci udělat?
1. Dalo by se pomocí funkce dodejURL($soubor, $rubrika, $podrubrika, $seonazev) jednoduše zajistit, aby v celém red. systému byly adresy ve stejném tvaru
Při jakékoliv změně v budoucnu by veškerá editaci byla mnohem rychlejší, než všude přepisovat původní podobu a href.

Budu vděčný za každou radu.


ZdenekPNJ:
A hlavně mě ještě napadlo, že by bylo vhodné do toho ještě přiděla převod na cool URL, co myslíte?
Alphard
Profil
Tak nápad dobrý, některé frameworky to podporují již mnoho let. Ještě lepší je neuvažovat jen o generování odkazů, ale o přímé součinnosti s routerem. Jako odkazy se pak zadávají přímo názvy Controllerů, akcí a parametry k nim. Z nich je dle pravidel definovaných v Routeru vygenerováno cool url.

Viz příklad z Nette a Latte:
<a n:href="Product:show $productId">detail produktu</a>
Tj. vytvoř odkaz na Presenter Product, akci (metoda třídy) show a předej jí parametr $productId.
ZdenekPNJ
Profil
Alphard:
Díky za nasměrování, to vypadá dobře.
Jen je to pro mně teda zcela neprobádaná oblast, hned jsem hledal na webu odkazy na články, které o tomto pojednávají, ale zatím bojuju s tím to pochopit, jak to funguje:-)
Alphard
Profil
Ten kód je z doc.nette.org/cs/2.2/presenters#toc-odkazy-v-sablonach.
Šlo by to volat samozřejmě jako <?php $presenter->link(...) ?>. Ta uvedená syntaxe n:href Nette makra vyžaduje Latte parser, který si to zpracuje. Spojuje se v tom víc věcí dohromady.
ZdenekPNJ
Profil
Alphard:
Možná se teď zeptát asi hloupě, asi bych potřeboval nakopnout. Možná v tom zbytečně hledám něco složitého

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: