Nahrada nette knihoven za vlastni upravene knihovny

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

Zdravim Vase vsechny,
nevim jetli jste se s takovim problemme setkali, ale obcas se mi stane ze mi nektere knihovny nette uplne nevyhovuji a chtel bych je nahradit vlastnimi. To by nebyl takovy problem, ale nechci zasahovat primo do nette frameworku, chtel bych je nejakym vhodnym zpusobem nahrat ze svych uprav. Takova uprava se mi podarila v config.ini u knihovny PresenterLoader:

service.Nette-Application-IPresenterLoader.factory = „MyLoader::createPresenterLoader“

A vsak nedari se mi nahradit jinou knihovnu a to Nette/Templates/Template. Pokouselj sem se o to stejnym zpusobem v config.ini, ale nezdarilo se.

Je mozne vubec knihovny takto nahrazovat? Pokud ano mohl by mi nikdo vysvetlit jak to rpesne funguje, koukal jsem se po tom uz delsi dobu a stale se mi nedari projem vyresit.

mue
Člen | 8
+
0
-

V tomto případě (nahrazení šablon) by bylo asi nejlepší přepsat ve vlastním BasePresenteru metodu GetTemplate().

Editoval mue (23. 4. 2010 14:48)

despiq
Člen | 320
+
0
-

asi podedit, upravit a pak nejak zaregistrovat?

by me docela zajimalo co ti nevyhovuje?

Elianos
Člen | 3
+
0
-

No me nejak nejde o tento konkretni problem jako becne jak provest zmenu toho razeni, ze si urpavim nejaky modul z nette, to ze si tridu potedim to jsem samozrejme udelal, upravil jsem ji, ale jak ji mam zaregistrovat?

mue
Člen | 8
+
0
-

Elianos napsal(a):

No me nejak nejde o tento konkretni problem jako becne jak provest zmenu toho razeni, ze si urpavim nejaky modul z nette, to ze si tridu potedim to jsem samozrejme udelal, upravil jsem ji, ale jak ji mam zaregistrovat?

Registrovat není potřeba. Applicatiton volá příslušný presenter dle routeru. Stačí si tento presenter odvodit od BasePresenter, který bude odvozený od Presenteru a přepíšu v tom BasePresenter metodu GetTemplate().

Je fakt že tohle je celkem specifický, většina věcí jde vyřešit přes Services. A zbytek dědičností :)

Ondřej Mirtes
Člen | 1536
+
0
-

Napadlo mě kdysi, že bych všechny tyhle možnosti záměn zmapoval do dokumentace, ale prošlo mi to tak průhledné, že jsem to zavrhl. Ale asi to udělám :)

BTW: Deklarace toho, že se používá třída Template, je spíš v createTemplate(), než v getTemplate().
BTW2: Pokud ti vadí jen LatteFilter, tak ti zbytek Template nijak nebrání použít nějaký jiný filtr.

jasir
Člen | 746
+
0
-

Elianos napsal(a):

Zdravim Vase vsechny,
nevim jetli jste se s takovim problemme setkali, ale obcas se mi stane ze mi nektere knihovny nette uplne nevyhovuji a chtel bych je nahradit vlastnimi. To by nebyl takovy problem, ale nechci zasahovat primo do nette frameworku, chtel bych je nejakym vhodnym zpusobem nahrat ze svych uprav.

Já jsem také něco takového potřeboval, ale bez zásahu do Nette jsem na to nepřišel. Myslím, že by se zde Nette mohlo zbavit jedné zbytečné závislosti. Já si to udělal takhle: https://github.com/…e7def38b99f5

Stačí pak uvést v config.ini:

[development < common]
service.Nette-Templates-ITemplate = DebugTemplate

Editoval jasir (23. 4. 2010 19:44)

Honza Kuchař
Člen | 1662
+
0
-

jasir napsal(a):

Elianos napsal(a):

nevim jetli jste se s takovim problemme setkali, ale obcas se mi stane ze mi nektere knihovny nette uplne nevyhovuji a chtel bych je nahradit vlastnimi. To by nebyl takovy problem, ale nechci zasahovat primo do nette frameworku, chtel bych je nejakym vhodnym zpusobem nahrat ze svych uprav. Takova uprava se mi podarila v config.ini u knihovny PresenterLoader:

service.Nette-Application-IPresenterLoader.factory = „MyLoader::createPresenterLoader“

A vsak nedari se mi nahradit jinou knihovnu a to Nette/Templates/Template. Pokouselj sem se o to stejnym zpusobem v config.ini, ale nezdarilo se.

Je mozne vubec knihovny takto nahrazovat? Pokud ano mohl by mi nikdo vysvetlit jak to rpesne funguje, koukal jsem se po tom uz delsi dobu a stale se mi nedari projem vyresit.

Já jsem také něco takového potřeboval. Myslím, že bys se Nette mohlo zbavit jedné zbytečné události. Kdyžtak já to udělal takhle. https://github.com/…e7def38b99f5

Stačí pak uvést v config.ini:

[development < common]
service.Nette-Templates-ITemplate = DebugTemplate

Toto by se mělo určitě objevit v Nette.