Overridden block with content type XHTML by incompatible type HTML. (a opacne)

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

Zdravim

mame aplikaciu, ktora podla modu (pravidlo z url/routra) ma vystup bud v html alebo xhtml (Mobile profile), updatoval som na nette 2.4 a nejako neviem vyriesit vkladanie blokov do jednotlivych layoutov.

mam dva layouty

  • responsive.latte
  • oldmobile.latte

v tom oldmobile.latte nastavujem na zaciatku {contentType xhtml} tomu responsive {contentType html}

Oba layouty potom pouzivaju rovnake blocky, (tie doteraz nemali contentype nastaveny) takze si latte domysli asi default html. Takze pri spusteni oldmobile layoutu dostavam hlasku "Overridden block with content type XHTML by incompatible type HTML." V „2.3“ projekte bolo globalne nastavene v configu:

latte:
	xhtml: true

Co zasa teraz robi problem v responsive.latte, s opacnou hlaskou: Overridden block extraHeaders with content type HTML by incompatible type XHTML. (kedze sa default xhtml komponenty vkladaju do html layoutu)

Nenapada niekoho ako toto riesit?

Keby slo povolit xhtml vnutri html contentu bolo by to tiez nejake riesenie (tak to je v nette 2.3) (btw nie je xhtml podmnozina html??)

Editoval matopeto (6. 1. 2017 18:35)

CZechBoY
Člen | 3608
+
0
-

Kdy se dozvíš jestli máš použít HTML nebo XHTML? Můžeš na latte zavolat setContentType později než v konfiguráku. https://api.nette.org/…ine.php.html#…

matopeto
Člen | 395
+
0
-

CZechBoY napsal(a):

Kdy se dozvíš jestli máš použít HTML nebo XHTML? Můžeš na latte zavolat setContentType později než v konfiguráku. https://api.nette.org/…ine.php.html#…

To ma tiez napadlo (viem to uz v startupe) skusal som nastavovat

Filters::$xhtml = $this->getMarkup() == Client::MARKUP_RESPONSIVE;

Co neslo, skusim ten setContenType, je to to same ked v neoe nastavim

latte:
	xhtml: true

?

Nejako neviem v kode latte najst co za property ten konfigurak nastavuje..

CZechBoY
Člen | 3608
+
+1
-

jj, dohledal jsem to z DI extension.

matopeto
Člen | 395
+
0
-

Ok vdaka, a ako sa k tomu dostanem v presentru? inectovat co?

CZechBoY
Člen | 3608
+
0
-

Zkus bych udělat vlastní implementaci ILatteFactory a v ní nastavit do Latte\Engine ten contentType.
Jak moc to bude magie nevím :-)) Tohle mě napadlo jako nejrychlejší řešení, ovšem může být nějaké lepší/čistší.

matopeto
Člen | 395
+
0
-

Pozeram zdrojaky a asi to inak nepojde, teda neprisiel som na to… uvidime…

matopeto
Člen | 395
+
0
-

Keby sa s tym este niekto zaobaral tak nejde pouzit ani vlastna ILatteFactory, pretoze ta nahradi iba factory, ale setup v LatteExtension prepise rucne nastavene hodnoty /-:

CZechBoY
Člen | 3608
+
0
-

Nemůžeš je znova přepsat vlastníma hodnotama?

David Grudl
Nette Core | 8074
+
0
-

Musíš fakt používat XHTML? Nešlo by ve firmě vysvětlit, že tento formát je dávnou historií, omylem, který ve skutečnosti stejně nikdo nikdy nepoužíval?

matopeto
Člen | 395
+
0
-

David Grudl napsal(a):

Musíš fakt používat XHTML? Nešlo by ve firmě vysvětlit, že tento formát je dávnou historií, omylem, který ve skutečnosti stejně nikdo nikdy nepoužíval?

No uvidime, je to pre klienta, ktory podporuje svoje sluzby este ore klasicke telefony (historicky :) ale pretestujeme ci tie ktore su pouzivane budu zvladat html, nebude ich vela (a snad to bude ok), v minulosti niektore zvladali iba ten xthml-mobile-profile… btw WML sme podporovali este minuly rok :)

CZechBoY napsal(a):

Nemůžeš je znova přepsat vlastníma hodnotama?

Bohuzial nie, ja prepisem jednu factory, ale ta „systemova“ ktora vola tu moju prepise moje hodnoty

Editoval matopeto (10. 1. 2017 11:00)

David Grudl
Nette Core | 8074
+
0
-

To je fakt, že z XHTML Mobile Profile se používalo.

CZechBoY
Člen | 3608
+
0
-

@matopeto tak si je nenech přepsat :D

Ahaa, ono se to vlastně volá už na tom Latte\Engine… no tak asi budeš muset udělat i svůj klon Latte\Engine, který bude bude ignorovat další nastavení a bude brát jen ty tvoje (nějaká další metoda třeba).

Editoval CZechBoY (10. 1. 2017 11:37)

matopeto
Člen | 395
+
0
-

Druhy problem je, i ked specifikujem html, tak latte prepisuje rucne pisane html, napr z <meta... /> spravi <meta ...> co ma trosku hneva, ze saha do rucne pisaneho html