WebToDate/Fulltext/Tipy a návody: Porovnání verzí
Založena nová stránka: Category:WebToDate 4.1 Fulltext Category:Fulltext == Minimální vyhledávací formulář == Pokud chcete na všech stránkách zobrazit malý vyhledávací formul… |
m Stránka WebToDate 4.1/Fulltext/Tipy a návody přemístěna na stránku WebToDate/Fulltext/Tipy a návody |
(Žádný rozdíl)
| |
Verze z 13. 10. 2009, 13:39
Minimální vyhledávací formulář
Pokud chcete na všech stránkách zobrazit malý vyhledávací formulář, který spouští vyhledávání ve všech zprávách, použijte následující kód.
<form action="/scripts/modules/fulltext/fulltxt.php" method="get">
<input type="text" name="searchtext" maxlength="30"/>
</form>
Tento HTML kód je možné samozřejmě libovolně upravovat a rozšiřovat, důležité je pouze:
- Obsah formuláře odesílat skriptu /scripts/modules/fulltext/fulltxt.php
- Dodržet název searchtext textového pole pro vyhledávací podmínku
Vyhledávání s omezením na kategorii
Změny oproti verzím WebToDate před verzí 4.0
Ve verzi WebToDate 4.0 byl zaveden strom kategorií – hierarchická struktura řídící celou webovou prezentaci. V rámci této struktury lze v každém uzlu specifikovat, zda je daná kategorie fulltextově prohledávaná či nikoliv.
S tím souvisí změna v možnostech práce s kategoriemi v tomto modulu. Klíčové slovo <!--WTD_FULLTXT(CATEGORIES)-->, které vypisovalo lineárně seznam kategorií do pop-up menu formuláře, již není podporováno. I nadále lze specifikovat parametr categid vyznačující, že se má hledat v dané kategorii, navíc je možno použít parametr subcateg vyznačující prohledávání včetně podkategorií. Není ovšem nijak podporován ve formuláři nějaký výběr kategorií – stromová struktura toto jednoduše a dostatečně konfigurovatelně neumožňuje.
Jak tedy možnost omezení na kategorii využít?
Jednou možností je vytvořit několik vyhledávacích formulářů (nejlépe jako těla fragmentů) a ty pak používat na různých částech webu dle potřeby. Parametr categid s číslem konkrétní kategorie je možné umístit např. do hidden pole formuláře.
Druhou možnost naznačuje následující kód.
<form action="/scripts/modules/fulltext/fulltxt.php" method="get">
<input type="text" name="searchtext" value="" size="20" maxlength="80"> <input type="submit" name="Action" value="Hledat">
<br>
<input type="radio" name="categid" value="0" checked>Ve všech kategoriích
<input type="radio" name="categid" value="<!--WTD_F(PAGECATEGID)-->">V této kategorii
<br>
<input type="checkbox" name="subcateg" value="1" checked="checked">Včetně podkategorií
</form>
Pokud takovýto kód umístíte na nějakou stránku (opět nejlépe jako tělo nějakého fragmentu) a stránku vygenerujete, vytvoří se formulář nabízející hledání buď v celém webu nebo v dané kategorii, do které stránka patří. Od verze WebToDate 4.0 každá stránka patří do nějaké kategorie a k dispozici je klíčové slovo <!--WTD_F(PAGECATEGID)-->, které do stránky vkládá ID její kategorie. Generování takového fragmentu na různých stránkách tedy automaticky nabízí možnost prohledávání různých kategorií podle toho, kde se daná stránka nachází.
Potíže s vyhledáváním slov obsahujících diakritiku
Pokud se výsledky hledání zobrazují správně, ale nevyhledávají se slova obsahující diakritiku, může být problém v konfiguraci používané databáze. Pokud je nesprávně nastaven pro indexovaní stroj databáze jazyk, může tento stroj chápat znaky s diakritikou jako oddělovače slov a potom práce s češtinou není plně funkční.
MS SQL Server
Pro indexované sloupečky musí být nastaveno language:neutral; pokud je zde např. english, není to správně a slova s diakritikou nebude možné vyhledat.
V SQL toto zjistíte příkazem
sp_help_fulltext_columns NEWSDB
Pokud jsou sloupce správně nastaveny na jazykově neutrální indexaci, musí příkaz ve sloupci FULLTEXT_LANGUAGE vrátit hodnotu 0.
MySQL
Ujistěte se, že je správně v souladu s instalačními pokyny WebToDate v konfiguračním souboru databáze nastaven jazyk (character_set) – doporučené nastavení závisí na zvoleném kódování češtiny na www serveru. V MySQL verze 4.1 jsou navíc značně rozšířeny možnosti konfigurace – znakové sady lze nastavovat nejen globálně, ale i pro databázi, tabulku apod. Tudíž zde zkontrolujte i např. character_set_database (lze zjistit dotazem SHOW VARIABLES).