Sova v síti - 1/28 - vydáno 29.10.2001 Dobrý den, končí pondělí a je zde vaše Sova v síti :-) OBSAH -- Atomz -- jak si upravit vzhled výsledných stránek -- Aktivní tlačítka pomocí CSS -- ano či ne? -- Novinky u Petra Kocny -- Odpovídáme na dotazy čtenářů -- Zajímavé odkazy Na úvod opět jedna omluva. Vzhledem k rozsahu dnešních článků a protože vás nechceme zahltit příliš mnoha informacemi, vypustili jsme z dnešního čísla plánované pokračování seriálu o PHP a databázích. V některém z příštích čísel se k tomuto tématu opět vrátíme. ATOMZ -- JAK SI UPRAVIT VZHLED VÝSLEDNÝCH STRÁNEK Marek Prokop V minulém čísle jem vám v článku "Atomz - fulltextový vyhledávač pro vaše stránky" < http://www.sovavsiti.cz/c01271.html > představil fulltextový vyhledávač Atomz. Ukázal jsem vám, jak si založit účet, jak ho nakonfigurovat a jak vložit základní verzi vyhledávače na vaše stránky. Dnes vás naučím, jak ovlivnit vzhled výsledků vyhledávání tak, aby co nejlépe s vašimi stránkami ladily. Pro co nejtěsnější integraci vyhledávání do vašich stránek nabízí Atomz mechanismus šablon. Celá práce vlastně spočívá v tom, že si šablonu a tu pak uložíte v databázi Atomz. Od toho okamžiku bude Atomz tuto šablonu používat pro zobrazování výsledků hledání pro vaše stránky. Zde je postup vytvoření šablony: 1) Ve vašem oblíbeném editoru vytvořte stránku, která bude vypadat tak, jak chcete aby vypadala vaše stránka s výsledky vyhledávání. Připravte její záhlaví, zápatí, okrajové sloupce, atd. Jenom část určenou pro vlastní výsledky vyhledávání a s nimi spojenou navigaci ponechejte prázdnou. 2) Pokud v html kódu stránky máte obrázky či odkazy na jiné externí soubory (styly, skripty, odkazy na jiné stránky, atd.), ujistěte se, že jsou identifikovány absolutní adresou, včetně http://. Pokud ne, změňte to, nebo použijte v hlavičce (head) dokumentu značku base (např. ). 3) Nyní si kursorem najeďte do místa, kde chcete zobrazovat výsledky vyhledávání. Asi to bude buňka tabulky, nebo prvek div. Sem budete vkládat zvláštní značky vyhledávače dle následujících bodů. 4) Začněte nadpisem stránky, např. takto:

Výsledky hledání

Na dotaz nalezeno stránek. Zobrazena stránka .

Nenalezena žádná stránka obsahující .

Část uzavřená ve značce se zobrazí pouze tehdy, bylo-li něco nalezeno, naopak část ve značce jen tehdy, nenalezne-li Atomz nic. Značka obsahuje text dotazu (hledané slovo, či frázi), značka celkový počet nalezených stránek a značky a první a poslední zobrazenou stránku na dané stránce výsledků. Ostatní je váš libovolný text a běžné formátování. Nezapomeňte též někde umístit logo Atomz (značka ), neboť to je v bezplatné verzi vaše povinnost. 5) Nyní pokračujte vlastními výsledky vyhledávání. Např. takto zobrazíte pro každou nalezenou stránku její titulek (prvek title) jako odkaz, popis stránky (obsah metatagu description), kontext (část textu, ve kterém byl hledaný text nalezen) a URL nalezené stránky:



6) Dále můžete pod výsledky vyhledávání vložit menu odkazů, kterými lze měnit třídění výpisu a zkrýt, respekteve znovu zobrazit detaily (popis stránky, kontext, resp cokoli ve značce uvedené výše).

Seřaď dle relevance Seřaď dle data | Skryj detaily Zobraz detaily
7) Nutné jsou odkazy pro navigaci mezi stránkami, pokud je výsledků více. Ty vložíte do šablony takto: Předchozích | Následujících

8) Nakonec zbývá formulář pro případné opakování hledání:


Jakmile máte šablonu hotovou, otevřete stránku Atomz na http://www.atomz.com/ a přihlaste se emailovou adresu a heslem, které jste zadali při registraci. Po přihlášení klikněte na "Templates" (šablony) v menu vlevo a posléze na "Template Editor" (editor šablon). Svou připravenou šablonu zkopírujte a vlepte do připraveného editačního pole (nebojte se přepsat to, co je v něm připraveno a otestujte. To provedete kliknutím na záložku "Test" nahoře. Nebojte se, výsledek nyní vidíte jen vy sami. Vaši návštěvníci mají zatím k dispozici původní podobu výsledné stránky. Jste-li s výsledkem testu spokojeni, klikněte na tlačítko "Publish Changes" a váš nový vyhledávač je hotov. Na závěr ještě doplním, že Atomz umí indexovat i soubory ve formátu PDF. Připomněl mi to čtenář Stanislav Holeček, kterému tímto děkuji. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I malorozpočtový web může být úspěšný -- stačí vědět, kde ušetřit a kde ne. Čtěte newsletter FIRMA ONLINE, který vyjde 5.11.2001. Registrace a detaily na http://www.prokopsw.cz/online/ezines.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AKTIVNÍ TLAČÍTKA POMOCÍ CSS -- ANO ČI NE? Marek Prokop Čtenář Jan Bönisch nám poslal zajímavý tip, jak udělat tlačítka, která se mění při najetí myší (tzv. rollover), bez použití JavaScriptu. Zároveň se ptá: "Chtěl bych znát Váš názor na toto použití, jestli se mohou vyskytnout nějaké problémy a pod." Zkusme se tedy na jeho řešení podívat podrobněji. Úvodní příklad stránky naleznete na adrese http://www.sovavsiti.cz/samples/bonisch/index.htm Ve stejném adresáři pak je i soubor definice stylů style.css. Nejprve popíšu princip řešení. Ve vlastní stránce je menu tvořeno šesti průhlednými obrázky o stejné velikosti, naskládanými těsně pod sebe a jednotlivě uzavřenými do prvku A. Každý prvek A má definovánu unikátní třídu (class) CSS.

...
V definici CSS je pak pro každou třídu m1 až m6 definováno toto: a.m1 { background: url("m1.jpg") ;} a.m1:hover { background: url("m1a.jpg") ;} a.m2 { background: url("m2.jpg") ;} a.m2:hover { background: url("m2a.jpg") ;} ... a.m6 { background: url("m6.jpg") ;} a.m6:hover { background: url("m6a.jpg") ;} Prostudováním samotného kódu možná odhalíte drobnou, dalo by se říci stylovou chybu. Místo třídy (class) by určitě bylo lepší zvolit id. Třída totiž může být použita opakovaně, pro více prvků, kdežto id pouze pro jeden jediný prvek v celém dokumentu, což je právě tento případ. Proto je zed id lepší. Pokud si příklad otevřete Internet Explorerem (zkoušel jsem 5.0, ale stejné asi bude i 4 a vyšší), je zdánlivě vše v pořádku. Oproti tradičnímu řešení rollover efektu se objeví jediná vada -- při prvním najetí myší na jednotlivé položky menu vlevo chvíli trvá, než se objeví druhá verze obrázku s vysvíceným nápisem. Obraz na chvíli problikne. To je proto, že druhá sada obrázků ještě není ze serveru načtena, zatímco při řešení JavaScriptem se obvykle načte předem hned v úvodu stránky (tzv. preload). Horší situace ovšem nastane, když si stránku otevřete prohlížečem Opera. V tom případě zjistíte, že celé menu zmizelo a místo se něj se zobrazuje jen prázdná žlutá plocha. Proč tomu tak je? Problém je v tom, že Opera neumí pomocí CSS definovat pozadí řádkových (inline) značek (tagů) a tedy ani značky A. Ještě horší situace však nastane, pokud se na stránku podíváte textovým prohlížečem, nebo prohlížečem s vypnutými obrázky. Uvidíte pak přibližně toto: IMAGE IMAGE IMAGE ... IMAGE Částečně jsem se pokusil tento problém napravit v příkladu index2.htm a jemu odpovídajícímu souboru stylů style2.css. Změna spočívá v tom, že je každý jednotlivý obrázek uzavřen do prvku div takto: Zároveň jsem obrázkům přidal nezbytný (a v původním příkladu chybějící) atribut alt a ostatní atributy přesunul do definice stylů. Ta nyní vypadá pro každou položku menu takto: #m1 { background: #ffffc0 url("m1.jpg") no-repeat; } #m1 a:hover { background-image: url("m1a.jpg"); } a pro všechny položky menu ještě jednotný rozměr obrázků: #m1 img, #m2 img, #m3 img, #m4 img, #m5 img, #m6 img { width: 190px; height: 36px; border: none; } Co se mi těmito úpravami podařilo změnit? 1) V IE je vše při starém. Menu se zobrazuje podle záměru autora jen s drobnou kosmetickou vadou -- výše zmíněným probliknutím při načítání překryvného obrázku. 2) V Opeře se menu již zobrazí také, i když bez rollover efektu. Je však plně použitelné. 3) Menu dobře funguje i v textovém (případně hlasovém) režimu. Díky altům se zobrazí tak jak má a je opět dobře použitelné. Znamená to tedy, že se nám náš pokus podařil? Bohužel, zatím nikoli. Zkuste se podívat na třetí příklad, index3.htm a zjistíte, že celé menu opět zmizelo. Jedná se o stejný příklad jako index2.htm s jediným rozdílem -- v hlavičce chybí odkaz na definici stylů. Takto tedy bude vypadat stránka v prohlížeči s žádnou nebo nedostatečnou podporou CSS. To si nemůžeme dovolit. Existuje ale řešení? Existuje. Nejprve jsem průhledné obrázky s.gif v html dokumentu zaměnil za základní obrázky položek menu m1.jpg až m6.jpg. Tím se menu opět objevilo i bez připojené definice stylů. Nicméně ani s připojenou definicí stylů a ani v IE nefunguje rollover efekt, neboť je tvořen obrázky na pozadí, které jsou ovšem nyní překryty neprůhlednými obrázky na popředí. Zbývá tedy v definici stylů obrázky na popředí označit za neviditelné. Do pravidel pro obrázky menu doplníme ještě visibility:hidden a je to: #m1 img, #m2 img, #m3 img, #m4 img, #m5 img, #m6 img { width: 190px; height: 36px; border: none; visibility: hidden; } Tím jsme dosáhli stavu, kdy je stránka plně použitelná jak v prohlížečích podporujících CSS, tak ve starších bez této podpory a dokonce i v prohlížečích textových. V majoritním IE navíc funguje požadovaný rollover efekt. Výsledek si můžete prohlédnout na http://www.sovavsiti.cz/samples/bonisch/index4.htm Odpovídající definice stylů je zde: http://www.sovavsiti.cz/samples/bonisch/style4.css Doufám, že vám tento příklad názorně ukázal, jaké nástrahy vás mohou při ladění návrhu pomocí CSS čekat a jak je můžete postupnými pokusy a omyly překonávat. Mějte na paměti, že návrh využívající CSS má stránky učinit přístupnější, nikoli naopak. Důležitá je v prvé řadě přístupnost *obsahu*, teprve na druhém místě je *design*. Na závěr dlužno dodat, že celý příklad bude správně fungovat jen tehdy, pokud definice stylů nebude přístupná starším prohlížečům. Jak to udělat se dozvíte ze starších čísel Sovy v síti (číslo 11, Redesign Sovy v síti II), nebo přímo z jejího současného zdrojového kódu. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Doporučte sovu v síti vašim přátelům. Přepošlete jim toto číslo, nebo použijte formulář na http://www.sovavsiti.cz/recommend.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOVINKY U PETRA KOCNY K 27.10.2001 ... v katalgu katalogů http://www.lf1.cuni.cz/~kocna/kam-www.htm a vyhledávačů http://www.lf1.cuni.cz/~kocna/roboti.htm Přidány dva nové odkazy - celkem již 173. Nabídky.cz -- další nový český rozcestník, zařazení odkazů do zvolené kategorie, vkládání není nijak kontrolováno, není zde položka na email, takže žadné potvrzení zasláno není, URL -- test prohledávání -- http://www.nabidky.cz/search/my.php?q=kocna Pozri Sk, potvrzeno zařazení stránky emailem, prohledává databázi i přes URL, test -- http://www.pozri.sk/hladaj.php?slovo=kocna Exo.sk -- další slovenský server, akceptuje české stránky, po vložení jsou zveřejněny jako nové stránky -- zařazení do kategorií slibují za 1-2 týdny, emailem potvrzují vložení stránky, nikoliv její zařazení. Test prohledávání -- http://www.exo.sk/exo/index.php?query=kocna&finder=1&x=13&y=11 funguje i přes URL. Grano Salis -- 27.října 2001 zprovozněna nová verze Webu, databáze odkazů je nyní prázdná, původně zařazené odkazy nepřevedeny. Přidávání odkazů vyžaduje komplikovanou registraci, na nové zařazení odkazů zatím čekám. URL adresa novinek je http://www.granosalis.cz/links.php?op=NewLinks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Starší čísla naleznete na http://www.sovavsiti.cz/archiv.html Více odkazů pro webmastery na http://www.sovavsiti.cz/odkazy.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ODPOVÍDÁME NA DOTAZY ČTENÁŘŮ Dotaz: Čtenář Zbyněk Chomát předělává své stránky do PHP a píše nám: "Mám strach, že když použiji v jednotlivých souborech návodů meta-tagy a vyhledáváč je najde tak se mi zobrazí jen ten návod přiklad ../navody/n0012.php a ne index.php?id=n0012." Odpověď: Návštěvou těchto stránek jsme zjistili, že nový design je založen na rámcích a to je tedy asi to, čeho se čtenář obává. Nutno říci, že se obává oprávněně. Fulltextové vyhledávače si s rámci opravdu nerozumí. Sice to jde řešit pomocí tzv. dorway-pages (stránky, které klientským skriptem automaticky přesměrují na frameset), ale to je dost složitá a nebezpečná technika, neboť pokročilejší vyhledávače tento trik penalizují sníženou relevancí výsledků. Mnohem lepší určitě, obejít se bez rámců. V PHP, které umožňuje includy to navíc není žádný problém. Hovoříme-li ale o vyhledávačích a skriptování na straně serveru (PHP), je třeba dát pozor ještě na jednu věc. Robot fulltextového vyhledávače musí každou stránku nejprve nalézt, aby ji mohl zaindexovat. Nalezne ji jen tehdy, když k ni nalezne odkaz. Navigace tedy nesmí být řešena pouze formuláři (např. oblíbenými rozbalovacími seznamy), ani JavaScriptem. Některé vyhledávače navíc nemají rádi stránky, odlišené jen parametrem v URL (viz příklad v dotazu -- index.php?id=n0012). Proto je lepší používat klasické, statické URL, např. pomocí serverových filtrů, nebo zvláštního skriptu pro chybu 404. UŽITEČNÉ ODKAZY Shodou okolností, krátce po uveřejnění článku Miroslava Vejlupka o pevné mezeře < http://www.sovavsiti.cz/c01252.html > v Sově číslo 25 vyšly v A List Apart hned dva vynikající články na podobné téma typografie a speciálních znaků na webu. Zde jsou na ně odkazy s původními anotacemi. Typography Matters by Erin Kissane It's a style thing. It's a usability thing. It's a tricky thing for large content sites and a step up for independents. It's typographically correct punctuation on the web, and ALA's associate editor makes the case for it. http://www.alistapart.com/stories/typography/ The Trouble With EM' EN (and other shady characters) by Peter K. Sheerin More than you ever wanted to know about dashes, spaces, curly quotes, and other vagaries of online typography. HTML specs, grammatical rules, browser bugs and character encoding-it's all here. http://www.alistapart.com/stories/emen/ Vřele doporučujeme všem, kteří se nebojí trochu obtížnější angličtiny. A to je pro dnešek vše, těšíme se na shledanou opět v pondělí, kdy v čísle 28 naleznete: -- Tabulky v HTML 4 -- nevíte, co znamenají tajemné značky THEAD, TBODY, COLGROUP a další? Pak je tento článek právě pro vás. -- EyeDropper a Ruler, 2 užitečné utility pro webmastery. -- Odpovědi na vaše dotazy, zajímavé odkazy, novinky v katalogu katalogů a vyhledávačů Petra Kocny, atd. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nechcete, nebo naopak chcete dostávat Sovu v síti? Odběr lze odhlásit odesláním zprávy na unsubscribe@sovavsiti.cz. Přihlásit se lze odesláním zprávy na subscribe@sovavsiti.cz, nebo formulářem na adrese http://www.sovavsiti.cz/. Chcete nám cokoli sdělit? Uvítáme vaše náměty, připomínky, kritiku, atd. na adrese mailto:redakce@sovavsiti.cz. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Není-li v konkrétním případě uvedeno jinak, je autorem všech publikovaných článků Marek Prokop. Tento ezin, nebo jeho libovolnou část můžete volně šířit dále, pokud současně uvedete zdroj následujícím způsobem: _________________________________________________________________ Sova v síti -- (c) 2001 Marek Prokop -- http://www.sovavsiti.cz/