Autor Zpráva
CZghost
Profil
Líbí se mi způsob, jakým je řešena navigace webu JPW. Javascript zjišťuje, kde se čtenář nachází a podle toho vypisuje cestu s odkazy zpět až na domovskou stránku.

Na mých stránkách zabývajících se hrou Quake III Arena budu stavět novou sekci, která bude něco jako archiv tzv. velikonočních vajec, které jsou ukryty v tzv. mapách (herních prostředích) tvořené komunitou hráčů hry (tedy nikoliv ty obsažené v základní instalaci hry).

Chtěl bych zde použít podobný kousek jako ten na JPW, ale pouhý copy&paste zde nebude možný.
1. Stránky budou v angličtině
2. Domovská stránka nebude v kořeni webu
3. Sekce bude mít jinou strukturu než JPW

Poslední dva body jsou nejdůležitější.

Tohle je schéma, které bude použito pro tvorbu hráškové navigace:


=== Vysvětlivky ===
Schéma struktury:
#mapfile# označuje soubor mapy
#eggid# označuje identifikační číslo vejce

Všeobecné schéma:
#server# označuje doménu webu
#podřazená stránka# označuje stránku, na které se nachází čtenář
#podřazený adresář# označuje cestu zpátky
=== /end ===

Jelikož nelze využít copy&paste, ptám se po syntaxi, která by umožnila podobný efekt i na budoucí sekci. Kód by měl vrátit cestu podle schématu, přičemž musí vzít v úvahu, která stránka je právě zobrazená. Tu poté namísto odkazu označí CSS třídou pro aktuálně zobrazenou stránku.

Jako alternativa pro uživatele se zakázaným javascriptem se poté nabízí tyto možnosti (všechny v tagu noscript):
1. Ruční výpis cesty
+ kód vložen jako přímé HTML
- pracné
2. Výpis přes PHP
+ absolutní automatizace, může nahradit JS i úplně
- větší zatížení serveru
3. Výzva k zapnutí javascriptu
+ nejjednodušší způsob
- omezování uživatele
Joker
Profil
CZghost:
Termín „hrášková navigace“ jsem ještě neslyšel.
Obvykle se říká „drobečková navigace“ (tzn. vyhledávačů se ptát na drobečkovou navigaci).

Jinak rozhodně bych šel cestou PHP, respektive kódu na straně serveru.
Uvedený nedostatek „větší zatížení serveru“ v běžných situacích není vůbec poznat. Kdyby to byla nějaká specifická situace a každý nepatrný rozdíl v zátěži serveru hrál roli, přidal bych cache: PHP by napoprvé vygenerovalo kód a uložilo do souboru a příště by se už jen vložil ten soubor.

Kdyby ani to nešlo anebo na serveru nebylo k dispozici PHP, udělal bych to stejné co dělá PHP, ale ještě před vložením stránek na server: Do zdrojových stránek bych si vložil značku, kam se má vložit ta navigace, pak všechny soubory zkopíroval do „publikačního“ adresáře, nějakým editorem udělal globální nahrazení mojí značky na příslušný HTML kód a výsledné soubory nahrál na web.
CZghost
Profil
Joker:
Termín „hrášková navigace“ je použit ve zdrojovém kódu javascriptu na JPW, jenom pro ujasnění :)

Takže mám použít raději PHP než javascript? Podle zdrojového kódu JPW to lze udělat i čistě javascriptem na straně klienta, o to je pak ale zátěž procesoru klienta větší. A co kombinace PHP a JS? Veškeré to vypočítávání a zjišťování provede PHP a o vložení výsledné navigace se potom postará JS.

Server, na kterém běží moje stránky PHP poskytují, takže v tomto bych problém neviděl. Co se týče publikačního adresáře a nějakého editoru, nevím, o co go... Myslíš tím jako nějaký redakční systém nebo si mám najít nějaký program? Rád bych se vyvaroval nějakým programům, které zabírají velké místo na disku a žerou podstatnou část výkonu procesoru (například programy od Adobe).

Jen pro představu:
Skript by zjišťoval, kde se čtenář nachází, a podle toho vypsal navigaci k domovské stránce. Aktuálně otevřená stránka nebude označena odkazem, nýbrž CSS třídou.

Příklad dle schématu:
Čtenář se nachází na stránce s vejcem. Tam je popis, hodnocení a návod, jak vejce objevit. Dejme tomu, že mapa bude třeba ct3ctf2 (Odkaz na LvLworld (anglicky)). Vejce bude první (tedy id 1). Url stránky tedy bude /eggs/ct3ctf2/1.html. Skript vypíše tento kus kódu:
<a href="/eggs/index.html" title="Back to Homepage">Homepage</a> &lt; <a href="/eggs/maplist.html" title="Back to Map list">Map list</a> &lt; <a href="/eggs/ct3ctf2/index.html" title="Back to ct3ctf2">ct3ctf2 (Fluorescent by cityy)</a> &lt; <span class="navbar-actual" title="You are already at this page">Egg #1 (Rage comic)</span>
Str4wberry
Profil
Důvod pro JS řešení na JPW je medle v tom, že Yuhů píše stránku v editoru FrontPage, kde je nejspíš generování drobečkové navigace problematické, a celý JPW je v prostém HTML.
CZghost
Profil
Str4wberry:
To je pravda, na jeho stránkách jsem si nevšiml kromě pár příkladů jediného skriptu v PHP.

Joker:
V PHP jsem si podle návodů postavil generátor náhodných znaků a náhodný výběr z pole. Co se týče drobečkové navigace, nějaký základní návod bych ocenil. Můžu se pokusit ho vygooglit, jak v PHP, tak v JS, ale v případě neúspěchu bych ocenil alespoň odkaz. Výsledek mého hledání samozřejmě oznámím...
CZghost
Profil
Právě jsem našel nějaké staré téma (konkrétně 8 let staré).

Citace od Mistra:
> Nechceš o Tebou použitém způsobu tvorby drobečkové nápovědy napsat stránku do Jak psát web? Tedy pokud to není moc složité.
Podotýkám, že by to byl bezva nápad, z hlavního webu je vidět, že to jde.

Když jsem myslel na archiv těch "vajec", myslel jsem na použití postupu spíše v HTML, než PHP. V PHP mám diskusní stránky a redakční systém. Hlavní strana také funguje přes PHP. Jedná se jen o skript, který vkládá stránku na základě data - pokud je 1. dubna, na stránku se vloží aktuální kanadský žertík.

Yuhů píše, že nepoužívá PHP záměrně, protože dle jeho slov zbytečně zatěžuje server. Ostatně je také dobré, že web nepoužívá příliš mnoho skriptů v PHP. Použití PHP v sekci eggs zamýšlím pouze pro kontaktní formuláře...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: