[addon header] Doplnok Header

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

Fórum pre doplnok Header.

marek-m
Člen | 66
+
0
-

riadok 406 hlasi chybu Call to a member function getCss() on a non-object, podobne je to aj na getJs()

romiix.org
Člen | 343
+
0
-

Používam u seba neštandardný spôsob tvorby komponent.

Skús pri vytvorení komponenty Header dopísať riadok:

->setAssetsCollector($this->context->assetsCollector->collector)

Napíš prosím či to pomohlo nech to dopíšem do dokumentácie.

marek-m
Člen | 66
+
0
-

Uz to je ok, ale zakomponuj tam aj basePath, takto to nespravne funguje v podadresaroch (css, js, favicon.ico), subezne v dokumentacii radsej napis tvorbu komponenty, nieje potrebne sa odvolavat na HeaderControl. Dalo by sa nejako globalne vypnut vytvaranie meta informacii a podobne? Ja osobne tiete veci radsej nastavujem v sablone. Tak ako si na fore pisal, css patri do sablony a ja na meta informacie tiez takyto nazor.

marek-m
Člen | 66
+
0
-

viez co by bolo super, tak ako mas makro css a js bolo by dobre ak by si dal makro napr. aj pre title, keywords, description …

romiix.org
Člen | 343
+
0
-

marek-m napsal(a):

Uz to je ok, ale zakomponuj tam aj basePath, takto to nespravne funguje v podadresaroch (css, js, favicon.ico),

Čo presne nefunguje, resp. nefunguje podla očakávania?

subezne v dokumentacii radsej napis tvorbu komponenty, nieje potrebne sa odvolavat na HeaderControl.

To by bolo asi užitočné.

Dalo by sa nejako globalne vypnut vytvaranie meta informacii a podobne?

Čo presne si pod tým predstavuješ?

Ja osobne tiete veci radsej nastavujem v sablone. Tak ako si na fore pisal, css patri do sablony a ja na meta informacie tiez takyto nazor.
viez co by bolo super, tak ako mas makro css a js bolo by dobre ak by si dal makro napr. aj pre title, keywords, description …

Má to svoju logiku. Nastavenie týchto vecí priamo v šablóne by mohlo byť ako alternatíva niekedy vhodné. Ja osobne som to zvykol napr. titulok plniť rovno v presentri. Ale napr. teraz keď už používam Nette\Database by som si vedel predstaviť že by to bolo priamo v šablóne. Napr.:

{* nastavenie hlavičky *}
{title}{$row->title}{/title}
{description}{$row->description}{/description}
{* ... *}

{* výpis na stránku *}
<h1>{$row->title}</h1>
<div>{$row->description}</div>
{$row->text}

Domyslím to a keď budem mať trochu času pustím sa do toho.
… prípadne očakávam ďalšie podnety.

michalSK
Člen | 1
+
0
-

Dobrý deň!

Snažím sa rozchodiť doplnok header, vyzerá super ;), ale dostal som chybu:

Class \RM\AssetsCollector\Compilers\CssSimpleMinificator has not been found.

Všetko som inštaloval cez composer, môj composer.json vyzerá takto:

{
	"name": "vrtak-cz/nette-doctrine-sandbox",
	"description": "Sandbox for Nette & Doctrine",
	"config": {
		"vendor-dir": "./libs"
	},
	"require": {
		"nella/doctrine": "@dev",
		"nella/console": "@dev",
		"doctrine/migrations": "@dev",
		"nette/tester": "@dev",
		"kdyby/html-validator-panel": "dev-master",
		"rm/header": "dev-master"
	}
}

Čo som spravil nesprávne?

Vopred ďakujem za odpoveď

romiix.org
Člen | 343
+
0
-

Teraz hneď nemôžem zisťovať kde je problém. Prvé čo mi napadlo bolo aktualizovať composer balíček. To som spravil, skús to prosím znovu.
Dostanem sa k tomu neskôr, daj prosím vedieť či to (ne)pomohlo.

enumag
Člen | 2118
+
0
-

Tak jsem tenhle doplněk konečně vyzkoušel. Během zkoušení jsem objevil několik problémů, nějaké opravy máš na GitHubu jako pull request. Pak na mne ale začaly vyskakovat další chyby typu:

Warning
file_put_contents(E:/Projects/sandbox/cache/E:\Projects\sandbox\app\AdminModule\templates\js\netteForms.d9156b93ae34824093985c957e9b4639.js): failed to open stream: Invalid argument

Kromě toho v kódu využíváš konstantu WWW_DIR, na které by doplňky rozhodně viset neměly. Já tuto konstantu např. vůbec neměl definovanou. A co jsem koukal do tvého kódu tak by se odstraňovala dost blbě.

Je mi líto, ale ač je to hezký koncept, práci s tímto doplňkem vzdávám. Nechce se mi ho forkovat a komplet přepisovat – máš tam funkce, které mi připadají zbytečné takže by to bylo stejně opravené jen napůl. Raději si tedy napíšu vlastní, přesně s tím co potřebuji, v některých částech se u tebe inspiruju.

Editoval enumag (8. 12. 2012 22:59)

danielseek
Člen | 42
+
0
-

Tak jsem se vrhl do toho, čeho se štítil enumag:
Nepočítáš vůbec se serverem běžícím na windows, který používá jako oddělovač adresářů \ místo /. Proto ten problém, který popisuje enumag.
$filename = explode(„/“,self::addToFileName($source,$md5)); //Tohle nemůže na win fungovat
$filename = explode(DIRECTORY_SEPARATOR,self::addToFileName($source,$md5)); //Furt ptákovina, ale aspoň funguje

Nejlepší je samozřejmě, ale použít pathinfo…

Také jsem si všiml spousty zbytečného kódu. Např. tam máš místa, kde se ti opakuje to samé viz addJs/CSS…

Doporučoval bych doplněk upravit tak aby si uživatel mohl přidat natvrdo nějaké tagy do headeru, např pomocí šablony. Hodí se to na podmíněné komentáře pro IE. Také by to chtělo podporu vzdálených css a js souborů. Používám jquery od Googlu.

Chtělo by to pořádně odladit, trochu u toho myslet a bude to super doplněk.

Většinu z toho jsem už implementoval u sebe na lokálu, ale není to moc publikovatelné…

Editoval danielseek (23. 6. 2013 22:39)

romiix.org
Člen | 343
+
0
-

danielseek napsal(a):

Som si toho všetkého vedomý a dúfam , že sa mi doplnok podarí dostať v dohľadnom čase do poriadku.

Pred pár dňami som to inštaloval cez composer do sandboxu a rozhodne to nie je bezproblémové.

Zuben45
Člen | 268
+
0
-

romiix.org napsal(a):

Používam u seba neštandardný spôsob tvorby komponent.

Skús pri vytvorení komponenty Header dopísať riadok:

->setAssetsCollector($this->context->assetsCollector->collector)

Napíš prosím či to pomohlo nech to dopíšem do dokumentácie.

napsal jsem:

$header = new Header->setAssetsCollector($this->context->assetsCollector->collector);

ale stále mi to vyhazuje chybu

syntax error, unexpected '->' (T_OBJECT_OPERATOR)

když to vytvořím pouze takto:

$header = new Header;

tak to zase hlási, že třída Heade neexistuje :/

akadlec
Člen | 1326
+
0
-

Tak buď ji nemáš naautoloadovanou a nebo zadáváš špatně její namespace

$header = new Header;
$header->setAssetsCollector($this->context->assetsCollector->collector);