Jak lze modifikovat HEAD?

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

Ahoj,

jak mohu upravit html hlavičku <head> přímo v presenteru?
Například přes továrničku si udělám Form, kde mám textarea pro kterou chci použít wysiwyg editor.
Takže musím do head vložit nějaké js a css, jak to udělat? Do šablon to dávat nechci, chci aby to bylo součástí továrničky, připadně objektu který tvoří tento Form.

Našel jsem jen addon HeaderControl ale myslím, že tohle je tak základní věc frameworku že to musí umět Nette v základu. Nebo se pletu?

Díky Kurtas

Mikulas Dite
Člen | 756
+
0
-

HeaderControl je na to stavěný. Ale jinak se tu už řešilo, že to není potřeba řešit, protože se to stejně nacachuje a další požadavky neproběhnou. Takže většina Nettistů (kdo ne?) to tahá všechno.

22
Člen | 1478
+
0
-

A javascript patří imho na konec stránky a ne do head sekce… http://developer.yahoo.com/…erformanc_5/

Kurtas
Člen | 109
+
0
-

Ale jinak se tu už řešilo, že to není potřeba řešit, protože se to stejně nacachuje a další požadavky > neproběhnou. Takže většina Nettistů (kdo ne?) to tahá všechno.

Tak to jsem nepochopil :) … ja to potřebuji řešit :))
V základu Nette teda nic není na modifikaci hlavičky?

Mikulas Dite
Člen | 756
+
0
-

Asi jsem to nezvýraznil, ale v Nette to více méně tak jak si to asi představuješ není. Pokuď to chceš řešit (?), tak použí ten addon, nebo si pro formuláře udělej tu šablonu, případně můžeš podědit defaultFormRenderer, abys to měl u všech – pak to ale bude u každého formu. Nebo můžeš v šabloně, ve které form renderuješ napsat něco takového

{block stylesheets}
<link ... form.css>
{/block}
{block content}
	{control LoginForm}
	...

a v @layout.latte:

<head>
	<link ...>
	<script ...>
	{block stylesheets}{/block}
</head>

to ale nebude měnit samotná komponenta, ale šablona, ve které se to vykresluje.

Kurtas
Člen | 109
+
0
-

Ok diky, jdu kouknout na ten HeaderControl

joe
Člen | 313
+
0
-

Něco podobného dělám tak, jako je to v #5, s použitím bloků, je to celkem jednoduchá cesta a navíc správná, HTML je tam, kde by mělo být – v šablonách.

A javascript patří imho na konec stránky a ne do head sekce

Skripty patří do hlavičky a všude tam, kde je potřeba. Z hlediska rychlosti (zpracování prohlížečem) je lepší například přímo v kódu po určitém uzavřeném bloku napsat

<script>initializeBlock();</script>

Než to dávat na konec stránky a nebo v horším případě do události onload.

Například pokud mám knihovnu na předělání formuláře (nahrazení za vlastní prvky), je lepší ten formulář změnit hned, když je v HTML uzavřený → málokdy se stane, že pak je vidět na chvíli originální formulář a pak ten změněný. Pokud to udělám v onload, vidím originální formulář a teprve potom ten nový. A takové změny před očima uživatele se mi teda vůbec nelíbí.

Patrik Votoček
Člen | 2221
+
0
-

22 napsal(a):

A javascript patří imho na konec stránky a ne do head sekce… http://developer.yahoo.com/…erformanc_5/

Pokud používáš async JS (nebo Head.js) tak to není pravda… :-) (chápu že v roce 2007 asi o async JS nevěděli)