Česky
Kamil Dudka

FileBrowser (Javascript, PHP, Smarty)

FileBrowser is no longer supported.

Preview

Určitě jste se někdy dostali do situace, že jste potřebovali na webu zveřejnit několik souborů ke stažení, prohlížení a tak... Nabízí se několik možností, jak to udělat. Pokud je souborů málo, můžete vytvořit webovou stránku a umístit na ni odkazy na soubory. Pokud je souborů více, můžete požádat Apache o automatické vytvoření indexu pro dostupné soubory.

Tato řešení jsou možná jednodušší pro vývojáře, ale z pohledu uživatele jsou poněkud těžkopádná. Projeví se to zejména, když je souborů hodně, nebo když jsou hluboko zanořené v adresářovém stromu. Rozhodl jsem se proto naprogramovat vlastní prohlížeč souborů (prozatím v režimu read-only) a tím je právě komponenta FileBrowser.

Stejně jako u komponenty QuickMenu jsem se při návrhu inspiroval filozofií KDE - snažil jsem se, aby uživatel docílil toho, co potřebuje, s minimálním počtem kliků a v nejkratším možném čase. Stejně jako na automatickém indexu Apache se soubory a složky zobrazují v tabulce, jsou tam také přibližně stejné sloupce a data v nich. Soubory a složky se dají řadit podle jednotlivých sloupců oběma směry. Řazení je vždy stavové (i při asynchronní komunikaci) a složky jsou vždy na začátku tabulky.

Rychlá odezva

První věcí, která je v komponentě FileBrowser navíc, je takový ten malý obrázek Expand dir, který se zobrazuje před každou složkou. Když na něj poprvé kliknete, složka se rozbalí velice rychle. Místo toho, aby se načítala znovu celá stránka, pošlou se ze serveru pouze data o konkrétní složce - v obchodní sféře je tato technika známá pod pojmem AJAX. Pokud složku opět sbalíte a kliknete na Expand dir podruhé, složka se rozbalí ještě rychleji. Potřebná data jsou již totiž k dispozici na straně klienta, není proto nutné se serverem vůbec komunikovat.

Zajímá-li Vás, jak vypadají data, která chodí ze serveru během procházení, tady je ukázka. Je to plnohodnotný validní XHTML dokument, který však kromě dat o složce neobsahuje žádný balast. Výhoda XHTML spočívá v tom, že je spolehlivěji zpracovatelné parserem prohlížeče. Lze totiž předpokládat, že dokáže-li prohlížeč správně zobrazit XHTML dokument, pak dokáže zpracovat i jeho část pomocí objektů Javascriptu.

Náhledy obrázků

Pokud máte mezi soubory obrázky, může Vám FileBrowser zobrazit náhledy - a to hned dvěma způsoby. První způsob je, že na soubor kliknete, načte se nová stránka a na ní je zmenšenina obrázku. Druhý způsob je pohodlnější - stačí na jméno obrázku najet myší. Pokud se náhled zobrazuje poprvé, opět musí proběhnout asynchronní komunikace se serverem. Tentokrát je však řízena pouze prohlížečem a není potřeba vytvářet objekt XMLHttp.

Syntax highlighting

Pokud máte mezi soubory zdrojové kódy, můžete si zobrazit jejich syntaxi barevně zvýraznit stejně jako ve svém oblíbeném editoru. Opět stačí kliknout na jméno souboru. O zvýraznění syntaxe se nestará samotná komponenta FileBrowser - to by musela být mnohem složitější a musel by ji programovat někdo šikovnější. Komponenta FileBrowser používá obecný syntaktický zvýrazňovač GeSHi. Vlastně používá jen jeho malou část, lepší integraci GeSHi plánuji s příchodem jeho stabilní 2.x verze - rozhraní této verze pravděpodobně nebude zpětně kompatibilní.

Stahování složek

Poslední vymožeností komponenty FileBrowser je stahování celých složek. Můžete si ve stromu vybrat kteroukoliv složku a stáhnout ji včetně souborů a podsložek jako ZIP archiv - stačí kliknout na malý obrázek Download as ZIP. K zabalení složek a souborů používá komponenta rozšíření PHP pro práci s ZIP archivy.

Komprimování většího množství dat může trvat delší dobu a taky výrazně zatížit server. V současné verzi se velikost stahovaných dat žádným způsobem nehlídá, protože na webu žádná objemná data nemám.

Tested browsers

FF Firefox 2, 3 Opera Opera 9.60 Beta KHTML Konqueror 3, 4 IE Internet Explorer 6, 7

Source files

Smarty templates