Jméno presentera v šabloně

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

Je docela neprijemne, kdyz v sablone potrebuji zjistit jmeno aktualniho presenteru…bez modulu. $presenter->getName() je fajn, ale podle nazvu by bylo mozna lepsi vracet jen jmeno presenteru. Jmeno modulu vracet treba pres $presenter->getModule(). Urcite by to bylo prehlednejsi…je to par radku :) Jinak tu stavajici variantu taky klidne nechat funkcni, ale hlavne doplnit ty gettery atomickych hodnot…at to nemusi clovek zbytecne explodovat treba :)

kravčo
Člen | 721
+
0
-

Warden napsal(a):

Je docela neprijemne, kdyz v sablone potrebuji zjistit jmeno aktualniho presenteru…bez modulu. $presenter->getName() je fajn, ale podle nazvu by bylo mozna lepsi vracet jen jmeno presenteru. Jmeno modulu vracet treba pres $presenter->getModule(). Urcite by to bylo prehlednejsi…je to par radku :) Jinak tu stavajici variantu taky klidne nechat funkcni, ale hlavne doplnit ty gettery atomickych hodnot…at to nemusi clovek zbytecne explodovat treba :)

Vzhľadom na to, že zo štandardného prezentera určite dedíš, nie je problém si túto funkcionalitu implementovať pár riadkami kódu, aspoň kým sa podobná funkcionalita dostane do Nette… Ak sa dostane…

Napríklad:

class BasePresenter extends Presenter
{
    public function getModulePrefix()
    {
        $pos = strrpos($this->name, ':');
        if (is_int($pos)) {
            return substr($this->name, 0, $pos + 1);
        }

        return '';
    }

    public function getPureName()
    {
        $pos = strrpos($this->name, ':');
        if (is_int($pos)) {
            return substr($this->name, $pos + 1);
        }

        return $this->name;
    }
}
Ondřej Brejla
Člen | 746
+
0
-

Ja nerikal, ze je problem toto nejak implementovat, nebo ze nevim jak. Jen jsem dal navrh, aby to bylo zakomponovano primo v Nette, abych se prave temto zbytecnostem vyhnul :) Prijde mi to jako dobry napad. Ale dik za odpoved.