Jak na změnu meta description v jednotlivych sablonaych

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

Ahoj,
jak se řeší, pokud chci v každé šabloně v meta upravit jiný description ? v @layout to udelat nemuzu, protoze by se to zobrazilo vsude … myslím něco jako

{block title} … ale pro description

nemůžu to nikde najít .. díky

Pavel Macháň
Člen | 282
+
0
-

malkol napsal(a):

Ahoj,
jak se řeší, pokud chci v každé šabloně v meta upravit jiný description ? v @layout to udelat nemuzu, protoze by se to zobrazilo vsude … myslím něco jako

{block title} … ale pro description

nemůžu to nikde najít .. díky

co ti brani udelat {block description} ? :)

Machy8
Člen | 59
+
0
-
//@layout.latte
<meta name="description" content="{ifset description}{include description}{else}Moje stránky{/ifset}">.
//šablona Articles/default.latte
{block description}
	Stránka s články
{/block}
//šablona Articles/view.latte
{block description}
	{$article->annotation}
{/block}
malkol
Člen | 133
+
0
-
{block title|striptags|upper}titulek knihovna{/block}
{block description}
    Stránka s články
{/block}

takto jsem to napsal … title se mi upravi, ale description zustane prazdny .. text :

Stránka s články

se v source-codu napise normalne na misto tam, kam jsem ho v latte vlozil

<title>titulek knihovna</title>
<meta name="description" content="">

určitě to dělám špatně .. title je prece obsah tagu, a content je jeden konkretni atribut ne ?

David Matějka
Moderator | 6445
+
+1
-

Dejte si pozor, latte v takovem pripade spravne neescapuje (block description je totiz definovan v jinem kontextu, nez kam se vklada), viz
https://github.com/…atte/pull/60

je nutno pouzit

<meta name="description" content="{include description|escape}"/>
David Matějka
Moderator | 6445
+
0
-

@malkol zkusil jsem to a funguje to. ukaz latte

malkol
Člen | 133
+
0
-

Ano, už to funguje

V @layout

<meta name="description" content="{include description|escape}"/>

a potom v každem zvlast:

{block description}Stránka s články{/block}

Díky za řešení

malkol
Člen | 133
+
0
-

ještě doplňující otázka, jak by se dalo nastavit, aby když v konkretni sablone description nenastavim byl proste prazdny a nepadadalo t ona vyjimce ?

Editoval malkol (29. 2. 2016 13:43)

David Matějka
Moderator | 6445
+
0
-

jak pise @Machy8 (jen teda s tim escape)

duke
Člen | 650
+
0
-

A proč to vůbec řešíš přes include a nemáš v layoutu:

<meta name="description" content="{block description}Moje stránky{/block}" />

Nebo mi něco uniká? Pak by nebylo třeba nejspíš ani to |escape.

David Matějka
Moderator | 6445
+
0
-

@duke tam by to v soucasne dobe (skoro) neslo escapovat vubec.

malkol
Člen | 133
+
0
-

duke napsal(a):

A proč to vůbec řešíš přes include a nemáš v layoutu:

<meta name="description" content="{block description}Moje stránky{/block}" />

Nebo mi něco uniká? Pak by nebylo třeba nejspíš ani to |escape.

potom bych nemohl preci na kazde strance mit jiny description ne ?

David Matějka
Moderator | 6445
+
0
-

@malkol slo, pomoci dedicnosti bloku https://latte.nette.org/cs/tags#…

podobnym zpusobem jsou v sandboxu reseny scripty:
https://github.com/…layout.latte#…
https://github.com/…efault.latte#…

ale jak rikam, neslo by tam spravne vyresit escapovani kvuli rozdilnym kontextum

malkol
Člen | 133
+
0
-

David Matějka napsal(a):

@malkol slo, pomoci dedicnosti bloku https://latte.nette.org/cs/tags#…

podobnym zpusobem jsou v sandboxu reseny scripty:
https://github.com/…layout.latte#…
https://github.com/…efault.latte#…

ale jak rikam, neslo by tam spravne vyresit escapovani kvuli rozdilnym kontextum

mnohem hezčí řešení .. díky za něj

duke
Člen | 650
+
0
-

David Matějka napsal(a):

@malkol slo, pomoci dedicnosti bloku https://latte.nette.org/cs/tags#…

podobnym zpusobem jsou v sandboxu reseny scripty:
https://github.com/…layout.latte#…
https://github.com/…efault.latte#…

ale jak rikam, neslo by tam spravne vyresit escapovani kvuli rozdilnym kontextum

Když se přepisuje blok (pomocí dědičností bloků), kontext přepisujícího bloku je přece naprosto irelevantní (vlastně by ani žádný být neměl a přepisující bloky by měli jen následovat jeden za druhým). Pokud si tedy latte nepamatuje skutečný kontext (původního) bloku z layoutu, jde jednoznačně o bug. Ještě mě napadá, že by jako workaround mohl jít ten kontext nějak řídit pomocí makra {contentType} ale nezkoušel jsem a ani to není dostatečně zdokumentováno (nejsou zdokumentovány všechny podporované druhy kontextů).