Vytvořte nový prostředek v kořenovém adresáři stromu
Dnešní lekce je o tom, jak implementovat vyhledávání na webu v Modx Revolution pomocí komponenty SimpleSearch.
Hlavní parametry úryvku:
tpl | Část, která se používá k zobrazení obsahu každého výsledku vyhledávání. | Výsledek hledání |
kontejnerTpl | Blok, který se používá k zalamování výsledků vyhledávání, stránkování a příspěvků. | Výsledek hledání |
použijteVšechnaSlova | Pokud je true, budou nalezeny pouze výsledky se všemi zadanými hledanými slovy. | 0 |
maxWords | Maximální počet slov, která mají být zahrnuta do vyhledávání. Použitelné pouze v případě, že je zakázáno useAllWords. | 7 |
minChars | Minimální počet znaků pro zahájení vyhledávání. | 3 |
styl vyhledávání | Chcete-li hledat pomocí „částečného“ vyhledávání LIKE nebo vyhledávání „relevantní“ shody na základě relevance. | částečný |
a Podmínky | Zda se má mezi slova přidat logické AND. | 1 |
matchWildcard | Povolit vyhledávání pomocí zástupných znaků. Nastavením na hodnotu false provedete přesné vyhledávání hledaného výrazu. | 1 |
docFields | Seznam jednotlivých polí dokumentu k vyhledávání. | název stránky, dlouhý název, popis, introtext, přezdívka, .obsah |
polePotence | Vyhodnocování a třídění výsledků | |
na stránku | Počet výsledků vyhledávání pro jednu stránku. | 10 |
zobrazit výpis | Zda se má zobrazit výřez z obsahu každého výsledku vyhledávání. | 1 |
extraktSource | Umožňuje uživateli definovat, odkud extrakce pochází. Pokud je hodnotou tohoto parametru název pole zdroje (včetně TV, pokud je nastaveno & includeTVs), pak se toto pole zdroje použije pro pokladnu. V opačném případě je parametr brán jako název fragmentu, který se má provést. Fragment je předán jako pole zdrojů jako parametry. Pokud tento název nemá fragment, bude extrakt prázdný. | obsah |
extraktDélka | Počet znaků, které se mají extrahovat z obsahu pro každý výsledek. | 200 |
extraktEllipsis | Řetězec použitý k zabalení výsledků extrakce. Výchozí hodnota je elipsa. | … |
včetně televizorů | Označuje, zda by hodnoty TemplateVar měly být zahrnuty ve vlastnostech dostupných pro každou šablonu prostředku. Výchozí hodnota je 0. Povolení tohoto nastavení může zpomalit práci, pokud máte mnoho televizorů. | 0 |
procesní televizory | Označuje, zda by hodnoty TemplateVar měly být vykresleny tak, jak by byly v souhrnném zdroji. Výchozí hodnota je 0. Některé poznámky: TV je přístupná pomocí názvu vaší televize [[+ myTV]] Ve výchozím nastavení SimpleSearch nepoužívá předponu, například [[+ tv.myTV]] NEBUDE zobrazeno. Televizory jsou zpracovávány během indexování vyhledávání Solr, takže to zde není nutné. | 0 |
zvýraznění výsledků | Zadejte nebo nezvýrazňujte hledaný výraz ve výsledcích. | 1 |
highlightClass | Název třídy CSS, která se má přidat ke zvýrazněným podmínkám ve výsledcích. | sisea-highlight |
highlightTag | Značka html pro zabalení vybraného výrazu do výsledků vyhledávání. | rozpětí |
pageTpl | Část používaná k odkazování na stránky. | Odkaz na stránku |
currentPageTpl | Blok použitý pro aktuální odkaz na stránce. | CurrentPageLink |
oddělovač stránkování | Oddělovač (oddělovač), který se má použít mezi odkazy na stránky. | | |
ids | Seznam ID dokumentů oddělených čárkami pro omezení vyhledávání | |
idType | Typ omezení pro parametr ids. Pokud jsou rodiče, pak všechny prvky id budou přidány do parametru ids pro vyhledávání. Pokud jde o dokumenty, budou při vyhledávání použity pouze zadané identifikátory. | rodiče |
vyloučit | Seznam identifikátorů zdrojů oddělených čárkami, například k vyloučení z vyhledávání. "10,15,19". To nezahrnuje zdroje s ID "10", "15" nebo "19". | |
hloubka | Pokud je idtype nastaveno na rodičovský, hloubka stromu prostředků pro vyhledávání se zadanými id. | 10 |
skrýtNabídku | Zda se mají vrátit zdroje, které mají nabídku hidemenu. 0 zobrazuje pouze viditelné zdroje, 1 zobrazuje pouze skryté zdroje, 2 zobrazuje oba. | 2 |
kontexty | kontexty vyhledávání. Výchozí je aktuální kontext, pokud žádný není explicitně zadán. | |
searchIndex | Název parametru REQUEST, který má být použit pro vyhledávání. | Vyhledávání |
offsetIndex | Název parametru REQUEST použitého k odsazení stránky. | sisea_offset |
placeholderPrefix | Předpona pro globální zástupné symboly určená fragmentem. | sisea. |
toPlaceholder | Zda nastavit výstup tak, aby se vracel přímo, nebo nastavit na zástupný symbol s názvem této vlastnosti. | |
urlScheme | Požadované schéma adresy URL: http, https, úplná, abs, relativní atd. Viz dokumentaci $modx->makeUrl(). To se používá, když jsou generovány stránkovací odkazy. | |
zakázkové balíčky | Nainstalujte a prohledejte vlastní tabulky stažením jejich balíčku. Podrobnosti viz níže. | |
postHáčky | Čárkou uvedený seznam háčků ke spuštění, které mohou ke konečným výsledkům přidat fasetové sady. | |
aktivníFacet | Aktuální aktivní tvář. Nechte to být, pokud nechcete, aby byl výsledek zobrazen z nestandardního aspektu přijatého přes postHook. | výchozí |
facetLimit | Počet neaktivních výsledků, které se mají zobrazit na hlavní stránce výsledků. | 5 |
seřazeno podle | Seznam polí zdrojů oddělených čárkami pro řazení výsledků. Chcete-li seřadit podle relevance a hodnocení, nechte pole prázdné. | |
sortDir | Seznam pokynů pro řazení výsledků oddělených čárkami. Musí odpovídat počtu prvků v parametru sortBy. | DESC |
noResultsTpl | Blok, který se má použít, pokud nebudou nalezeny žádné výsledky vyhledávání. |
1. SimpleSearch
2. Řešíme různé problémy s kódováním atp.
Přejděte na adresu core/components/simplesearch/model/simplesearch/simplesearch.class.php a nahraďte v ní následující řádky:
řádek 297:
$text = preg_replace("/(\[\[\+.*?\]\])/i", "", $text);
nahradit s
$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);
řádek 311:
$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));
nahradit s
$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));
řádek 413:
$string = preg_replace("/" . $quoteValue . "/i", "$0", $string);
nahradit s
$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);
komentovat řádek 179:
If (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));
těch. mělo by to dopadnout takto
/*if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); */
3. Vytvořte kopie všech standardních bloků, které jsou v adresáři core/components/simplesearch/elements/chunks/
Vytváříme nové kusy se stejnými názvy a předponou -new a stejným obsahem (jen už nejsou souborové, ale obyčejné), u kterých to všechno dále pochopíte.
Například vezmeme první blok currentpagelink.chunk.tpl a vytvoříme nový blok currentpagelink-new (prvky - vytvořit nový blok) a přeneseme do něj kód.
[[+text]]
Zodpovědný za správu tlačítka ve stránkování aktivní stránky.
A stejným způsobem vytvoříme zbytek kousků:
- pagelink-new - odpovídá za zobrazení samostatného tlačítka stránkování.
[[+text]]
- [[+odkaz]] - odkaz na dokument
- [[+text]] - číslo dokladu
- searchform-new - vyhledávací formulář
[[%sisea.search? &namespace=`sisea` &topic=`výchozí`]]
- výsledky hledání nelze přenést - neexistuje žádný design;
- searchresult-new - výstup každé položky výsledku.
[[+idx]]. [[+pagetitle]]
[[+výpis]]
- [[+idx]] - číslo výsledku hledání v seznamu
- [[+link:is=``:then=`[[~[+id]]]]`:else=`[[+link]]`]]
- [[+longtitle]] - rozšířený název
- [[+pagetitle]] - název
- [[+extract]] – text, podle kterého byl tento dokument nalezen
- searchresultli - ve skutečnosti to také nemůžete přenést.
- searchresults-new - obálka všech výsledků
[[+resultInfo]]
[[+paging]] [[+results]] [[%sisea.result_pages? &namespace=`sisea` &topic=`výchozí`]][[+paging]]- [[+resultInfo]] - informace o počtu nalezených dokumentů a pro jakou frázi.
- [[+sisea.result_pages? &namespace=`sisea` &topic=`výchozí`]]
Výstup fráze „Stránky s výsledky vyhledávání:“
- [[+paging]] - stránkování
- [[+results]] - výsledky hledání
Po dokončení všeho byste měli mít 5 nových kousků.
4. Vytvořte nový dokument, ve kterém se zobrazí výsledky hledání
Název: Výsledky vyhledávání, zaškrtněte políčko „Nezobrazovat v nabídce“. V "Nastavení" a zrušte zaškrtnutí políček "Vyhledatelné", "Použít HTML editor". šetříme. Obnovte stránku a přidejte obsah
[[!SimpleSearch? &tpl=`searchresult-new` &containerTpl=`searchresults-new` &pageTpl=`pagelink-new` ¤tPageTpl=`currentpagelink-new`]]
kousky dekorace, které jste vytvořili v kroku 3 (vzhled).
Pokud chcete, aby byly obrázky ve výsledcích vyhledávání, přidejte je na konec tohoto výstupu
&includeTVs=`1` &processTVs=`1`
V bloku výsledků vyhledávání lze obrázek nazvat takto: [[+img]].
5. Zobrazte vyhledávací formulář
Na místo, kde chcete zobrazit vyhledávací formulář, napište
[[!SimpleSearchForm? &landing=`11` &tpl=`searchform-new`]]
Zde landing je id stránky s výsledky vyhledávání, v tpl jsou části návrhu formuláře, které byly vytvořeny v kroku 3.
Kroky 4 a 5 jsme provedli, abychom mohli upravit externí design podle našeho uvážení: samotný formulář, výsledky vyhledávání atd. aniž byste se dostali do zdrojového kódu. A standardní provedení je spíše tristní, například takto vypadá standardní vyhledávací formulář.
6. Změňte design.
Nevidím smysl v popisování toho, jak uspořádat všechny části, například dám nový design pro vyhledávací formulář – nový chunk
Toto je obvyklé standardní označení formuláře z bootstrapu 3, na webu to vypadá takto:
Oficiální dokumentace zde: docs.modx.com/extras/revo/simplesearch
Pokud máte dotazy, pište zeptejte se jich do komentářů.
SimpleSearch je standardní balíček pro vyhledávání na stránkách v modx revoluci. K němu přidáme ajaxovou žádost o živé vyhledávání. Příklad si můžete prohlédnout na stejném webu, funguje to docela jednoduše a, povšimněte si, se stránkováním. Fragment SimpleSearchForm (vyhledávací formulář) odešle požadavek ajax na jednu stránku s výsledky, která vykreslí úryvek SimpleSearch.
1 Stáhněte si populární vyhledávací balíček SimpleSearch z repozitáře modx revo a nainstalujte jej.
Vytvoříme zdroj s prázdnou šablonou, aby ajax mohl shromažďovat data a odesílat je, když jsou ve vyhledávacím formuláři zadány požadavky.
Nazvěme alias například „výsledky vyhledávání“, k němuž bude mít přístup ajax.
Obsah zdroje:
výsledky hledání if(typeof jQuery !== undefined) ( $(document).ready(function() ( $(".sisea-page a").click(function(event) ( // stránkování event.preventDefault(); // Zabrání prohlížeči procházet stránkami // Načte další vyhledávací stránku a zobrazí kontejner $("#site-search-results").load($(this).attr("href")).show() ; return false; // stub )); )); ) [[!SimpleSearch]]
2 Nyní umístíme vyhledávací formulář na místo, které vám vyhovuje, za to odpovídá úryvek „SimpleSearchForm“.
Zpravidla se vyhledávací formulář strčí do modx šablon.
Element div zobrazuje výsledky požadavku ajax.
[[!SimpleSearchForm]]
3 Připojte ajax k odesílání požadavků z formuláře na stránku, kterou jsme vytvořili v kroku 1.
(!) Nezapomeňte zahrnout jquery
(!) Ujistěte se, která adresa ajax přistupuje k prostředku. Na 2 místech je za to zodpovědná metoda load().
// SimpleSearch ajax $(document).ready(function() ( // Tlačítko $(".sisea-search-form").submit(function () ( // zrušte komentář, pokud potřebujete tlačítko // $("# site- search-results").load("/search-results/",$(".sisea-search-form").serialize()).slideDown("fast"); return false; )); // Živé vyhledávání $(".sisea-search-form input").keyup(function() ( if(this.value.length > 2) ( // Uživatel zadá více než 2 znaky do vyhledávacího řetězce // skryje/zobrazí výsledky mimo okna $(document).click(function(event)( // hide if ($(event.target).closest(".site-search-results").length) return; $(".site-search- výsledky" ).slideUp("fast"); //event.stopPropagation(); )); $("#search").click(function() ( // display $(".site-search-results") .slideDown ("fast"); return false; )); // požadavek ajax načtení výsledků vyhledávání ze stránky a zobrazení kontejneru $("#site-search-results").load("/search-results/", $(". sisea-search-form").serialize()).slideDown("fast"); ) else ( // Pokud je méně než 2 znaky, skryjte kontejner (CSS display:none;) $("#site- search-results" ).slideUp("rychle"); ))); ));
4 Připojíme css pro zobrazení výsledků ajax efektu skrytí a rozbalení okna a jeho nezbytných stylů zobrazení, to vše na minimum. Zbytek stylů dokončete sami, jak je popsáno v manuálu balíčku SimpleSearch v modx revolution.
/* SimpleSearch ajax */ .site-search-results ( display:none; position:absolute; text-align:left; padding:15px; background:#F7F7F7; border-radius:5px; -webkit-border-radius:5px ; -moz-border-radius:5px; box-shadow: 2px 3px 9px -2px rgba(50, 50, 50, 0,55); -webkit-box-shadow: 2px 3px 9px -2px rgba(50, 50, 50, 0,55); -moz-box-shadow: 2px 3px 9px -2px rgba(50, 50, 50, 0,55); )
Tlačítko vyhledávání ve fragmentu SimpleSearchForm lze zcela odstranit
protože ajax již zachycuje stisknutí tlačítka Enter.
Tento úryvek zobrazuje výsledky vyhledávání na základě odeslaných kritérií vyhledávání.
PoužíváníJednoduše vložte úryvek do zdroje, ve kterém chcete zobrazit výsledky vyhledávání.
[[!SimpleSearch]]
Dostupné vlastnostitpl | Blok, který bude použit k zobrazení obsahu každého výsledku vyhledávání. | Výsledek hledání |
kontejnerTpl | Část, která bude použita k zabalení všech výsledků vyhledávání, stránkování a zprávy. | Výsledky vyhledávání |
použijteVšechnaSlova | Pokud je true, najdou se pouze výsledky se všemi zadanými hledanými slovy. | 0 |
maxWords | Maximální počet slov, která mají být zahrnuta do vyhledávání. Použitelné pouze v případě, že je vypnuto useAllWords. | 7 |
minChars | Minimální počet znaků pro spuštění vyhledávání. | 3 |
styl vyhledávání | Chcete-li hledat buď pomocí „částečného“ vyhledávání LIKE, nebo vyhledávání „shody“ na základě relevance. | částečný |
a Podmínky | Zda přidat logické AND mezi slova. | 1 |
matchWildcard | Povolit vyhledávání pomocí zástupných znaků. Nastavením na hodnotu false provedete přesné vyhledávání hledaného výrazu. | 1 |
docFields | Čárkami oddělený seznam konkrétních polí zdrojů k vyhledávání. | název stránky, dlouhý název, alias, popis, úvodní text, obsah |
polePotence | Ohodnoťte a seřaďte výsledky (viz https://github.com/splittingred/SimpleSearch/pull/29 pro více informací/usage) | |
na stránku | Počet výsledků vyhledávání, které se mají zobrazit na stránce. | 10 |
zobrazit výpis | Zda zobrazit výňatek z obsahu každého výsledku vyhledávání, či nikoli. | 1 |
extraktSource | (novinka ve verzi 1.9) Umožňuje uživateli definovat, odkud extrakt pochází. Pokud je hodnotou tohoto parametru název pole zdroje (včetně TV, pokud je nastaveno &includeTVs), pak se pro výpis použije toto pole zdroje. Jinak se parametr bere jako název úryvku, který se má spustit. Snippet je předán jako parametry polem prostředků. Pokud s tímto názvem neexistuje žádný úryvek, bude extrakt prázdný. | obsah |
extraktDélka | Počet znaků pro extrakci obsahu každého výsledku vyhledávání. | 200 |
extraktEllipsis | Řetězec používaný k zabalení výsledků extraktu. Výchozí nastavení je tři tečky. | ... |
včetně televizorů | Označuje, zda by hodnoty TemplateVar měly být zahrnuty ve vlastnostech dostupných pro každou šablonu prostředku. Výchozí hodnota je 0. Pokud tuto možnost zapnete, může se vaše vyhledávání zpomalit, pokud máte mnoho televizorů. | 0 |
includeTVList | Volitelný seznam názvů TemplateVar oddělených čárkami, které se mají explicitně zahrnout, pokud má includeTVs hodnotu 1. | |
procesní televizory | Označuje, zda by se hodnoty TemplateVar měly vykreslovat stejně jako v souhrnném zdroji. Výchozí hodnota je 0. Několik poznámek: K televizorům lze přistupovat pomocí jejich názvu TV [[+myTV]] Ve výchozím nastavení SimpleSearch nepoužívá předponu, např. [[+tv.myTV]] NEBUDE renderovat. Televizory jsou zpracovávány během indexování pro vyhledávání Solr, takže to zde není nutné. |
0 |
zvýraznění výsledků | Zda zvýraznit hledaný výraz ve výsledcích. | 1 |
highlightClass | Název třídy CSS, který se má přidat ke zvýrazněným výrazům ve výsledcích. | jednoduché vyhledávání-zvýraznění |
highlightTag | Značka html, do které se má zalomit zvýrazněný výraz ve výsledcích vyhledávání. | rozpětí |
pageTpl | Blok, který se má použít pro stránkovací odkaz. | Odkaz na stránku |
currentPageTpl | Blok, který se má použít pro aktuální odkaz stránkování. | CurrentPageLink |
oddělovač stránkování | Oddělovač, který se má použít mezi stránkovacími odkazy. | |
ids | Čárkami oddělený seznam ID, na která se má vyhledávání omezit. | |
idType | Typ omezení pro parametr ids. Pokud rodiče, přidá do vyhledávání všechny potomky ID v parametru ids. Pokud dokumenty, použije při vyhledávání pouze zadaná ID. | rodiče |
vyloučit | Čárkami oddělený seznam ID zdrojů k vyloučení z vyhledávání, např. "10,15,19". Tím se vyloučí zdroje s ID "10", 15" nebo "19". | |
hloubka | Pokud je idtype nastaveno na rodiče, hloubka stromu prostředků, která bude prohledávána se zadanými ID. | 10 |
skrýtNabídku | Zda vrátit zdroje, které mají zapnutou nabídku hidemenu. 0 zobrazuje pouze viditelné zdroje, 1 zobrazuje pouze skryté zdroje, 2 zobrazuje oba. | 2 |
kontexty | Kontexty k hledání. Výchozí na aktuální kontext, pokud žádný není explicitně specifikován. | |
searchIndex | Název parametru REQUEST, který bude vyhledávání používat. | Vyhledávání |
offsetIndex | Název parametru REQUEST, který se má použít pro posun stránkování. | simplesearch_offset |
placeholderPrefix | Předpona pro globální zástupné symboly nastavená tímto fragmentem. | jednoduché vyhledávání. |
toPlaceholder | Zda nastavit výstup tak, aby se přímo vracel, nebo nastavit na zástupný symbol s tímto názvem vlastnosti. | |
urlScheme | Požadované schéma adresy URL: http, https, úplné, abs, relativní atd. Viz dokumentaci $modx->makeUrl(). To se používá, když jsou generovány stránkovací odkazy. | |
zakázkové balíčky | Nastavit vyhledávání vlastních tabulek načtením jejich balíčku. Další podrobnosti naleznete níže. | |
postHáčky | Čárkami oddělený seznam háčků ke spuštění, který může ke konečným výsledkům přidat fasetové sady. | |
aktivníFacet | Aktuální aktivní aspekt. Nechte to být, pokud nechcete, aby se výsledek zobrazoval z nestandardního aspektu odvozeného prostřednictvím postHooku. | výchozí |
facetLimit | Počet neaktivních výsledků, které se mají zobrazit na hlavní stránce výsledků. | 5 |
seřazeno podle | Čárkami oddělený seznam polí zdrojů, podle kterých se mají výsledky seřadit. Chcete-li seřadit podle relevance a skóre, ponechte prázdné. | |
sortDir | Čárkami oddělený seznam směrů, podle kterých se mají výsledky seřadit. Musí odpovídat počtu položek v parametru sortBy. | DESC |
noResultsTpl | Blok, který se má použít, když nebudou nalezeny žádné výsledky vyhledávání. |
V SimpleSearch jsou zpracovány 4 bloky. Jejich odpovídající parametry SimpleSearch jsou:
- tpl – Blok, který se má použít pro každý zobrazený výsledek.
- containerTpl – Blok, který bude použit k zabalení všech výsledků vyhledávání, stránkování a zprávy.
- pageTpl – Chunk, který se má použít pro stránkovací odkaz.
- currentPageTpl – Blok, který se má použít pro aktuální odkaz stránkování.
Vyhledávání vlastních tabulek je dostupné v SimpleSearch pomocí vlastnosti &customPackages; musíte však mít vytvořený vlastní balíček. Formát je:
ClassName:fieldName(s):packageName:packagePath:joinCriteria||class2Name:fieldName(s):package2Name:package2Path:join2Criteria
Jinými slovy, každý vlastní balíček je oddělen ||. Poté je každá jeho část oddělena dvojtečkami (:). Příklad vyhledávání komentářů Quip:
&customPackages=`quipComment:body:quip:(core_path)components/quip/model/:quipComment.resource = modResource.id`
Pojďme si jednotlivé části rozebrat:
- className – Název třídy tabulky, kterou chcete prohledávat. Tady je to QuipComment.
- fieldName(s) – čárkami oddělený seznam názvů sloupců k vyhledávání. Udělali jsme "tělo", mohli jste také udělat "tělo, e-mail" nebo cokoli jiného.
- packageName – Název schématu Balíček, který se má přidat. Tenhle se jmenuje Quip.
- packagePath - Cesta k adresáři model/, kde je balíček umístěn.
- joinCriteria – SQL pro připojení k tabulce, kterou chcete prohledat, ak tabulce modResource. Vaše tabulka musí mít nějaké spojení se zdrojem, na kterém se nachází (jinak SimpleSearch nebude vědět, jak pro ni načíst adresu URL!)
Jakmile jej přidáte, prohledá data i v těchto polích. Pokud je najde v této tabulce, zobrazí výsledek jako odkaz na zdroj, který jste zadali v kritériích spojení. V našem příkladu by to byl zdroj, na kterém se nachází komentář Quip.
Dnešní lekce je o tom, jak implementovat vyhledávání na webu v Modx Revolution pomocí komponenty SimpleSearch.
Hlavní parametry úryvku:
tpl | Část, která se používá k zobrazení obsahu každého výsledku vyhledávání. | Výsledek hledání |
kontejnerTpl | Blok, který se používá k zalamování výsledků vyhledávání, stránkování a příspěvků. | Výsledek hledání |
použijteVšechnaSlova | Pokud je true, budou nalezeny pouze výsledky se všemi zadanými hledanými slovy. | 0 |
maxWords | Maximální počet slov, která mají být zahrnuta do vyhledávání. Použitelné pouze v případě, že je zakázáno useAllWords. | 7 |
minChars | Minimální počet znaků pro zahájení vyhledávání. | 3 |
styl vyhledávání | Chcete-li hledat pomocí „částečného“ vyhledávání LIKE nebo vyhledávání „relevantní“ shody na základě relevance. | částečný |
a Podmínky | Zda se má mezi slova přidat logické AND. | 1 |
matchWildcard | Povolit vyhledávání pomocí zástupných znaků. Nastavením na hodnotu false provedete přesné vyhledávání hledaného výrazu. | 1 |
docFields | Seznam jednotlivých polí dokumentu k vyhledávání. | název stránky, dlouhý název, popis, introtext, přezdívka, .obsah |
polePotence | Vyhodnocování a třídění výsledků | |
na stránku | Počet výsledků vyhledávání pro jednu stránku. | 10 |
zobrazit výpis | Zda se má zobrazit výřez z obsahu každého výsledku vyhledávání. | 1 |
extraktSource | Umožňuje uživateli definovat, odkud extrakce pochází. Pokud je hodnotou tohoto parametru název pole zdroje (včetně TV, pokud je nastaveno & includeTVs), pak se toto pole zdroje použije pro pokladnu. V opačném případě je parametr brán jako název fragmentu, který se má provést. Fragment je předán jako pole zdrojů jako parametry. Pokud tento název nemá fragment, bude extrakt prázdný. | obsah |
extraktDélka | Počet znaků, které se mají extrahovat z obsahu pro každý výsledek. | 200 |
extraktEllipsis | Řetězec použitý k zabalení výsledků extrakce. Výchozí hodnota je elipsa. | … |
včetně televizorů | Označuje, zda by hodnoty TemplateVar měly být zahrnuty ve vlastnostech dostupných pro každou šablonu prostředku. Výchozí hodnota je 0. Povolení tohoto nastavení může zpomalit práci, pokud máte mnoho televizorů. | 0 |
procesní televizory | Označuje, zda by hodnoty TemplateVar měly být vykresleny tak, jak by byly v souhrnném zdroji. Výchozí hodnota je 0. Některé poznámky: TV je přístupná pomocí názvu vaší televize [[+ myTV]] Ve výchozím nastavení SimpleSearch nepoužívá předponu, například [[+ tv.myTV]] NEBUDE zobrazeno. Televizory jsou zpracovávány během indexování vyhledávání Solr, takže to zde není nutné. | 0 |
zvýraznění výsledků | Zadejte nebo nezvýrazňujte hledaný výraz ve výsledcích. | 1 |
highlightClass | Název třídy CSS, která se má přidat ke zvýrazněným podmínkám ve výsledcích. | sisea-highlight |
highlightTag | Značka html pro zabalení vybraného výrazu do výsledků vyhledávání. | rozpětí |
pageTpl | Část používaná k odkazování na stránky. | Odkaz na stránku |
currentPageTpl | Blok použitý pro aktuální odkaz na stránce. | CurrentPageLink |
oddělovač stránkování | Oddělovač (oddělovač), který se má použít mezi odkazy na stránky. | | |
ids | Seznam ID dokumentů oddělených čárkami pro omezení vyhledávání | |
idType | Typ omezení pro parametr ids. Pokud jsou rodiče, pak všechny prvky id budou přidány do parametru ids pro vyhledávání. Pokud jde o dokumenty, budou při vyhledávání použity pouze zadané identifikátory. | rodiče |
vyloučit | Seznam identifikátorů zdrojů oddělených čárkami, například k vyloučení z vyhledávání. "10,15,19". To nezahrnuje zdroje s ID "10", "15" nebo "19". | |
hloubka | Pokud je idtype nastaveno na rodičovský, hloubka stromu prostředků pro vyhledávání se zadanými id. | 10 |
skrýtNabídku | Zda se mají vrátit zdroje, které mají nabídku hidemenu. 0 zobrazuje pouze viditelné zdroje, 1 zobrazuje pouze skryté zdroje, 2 zobrazuje oba. | 2 |
kontexty | kontexty vyhledávání. Výchozí je aktuální kontext, pokud žádný není explicitně zadán. | |
searchIndex | Název parametru REQUEST, který má být použit pro vyhledávání. | Vyhledávání |
offsetIndex | Název parametru REQUEST použitého k odsazení stránky. | sisea_offset |
placeholderPrefix | Předpona pro globální zástupné symboly určená fragmentem. | sisea. |
toPlaceholder | Zda nastavit výstup tak, aby se vracel přímo, nebo nastavit na zástupný symbol s názvem této vlastnosti. | |
urlScheme | Požadované schéma adresy URL: http, https, úplná, abs, relativní atd. Viz dokumentaci $modx->makeUrl(). To se používá, když jsou generovány stránkovací odkazy. | |
zakázkové balíčky | Nainstalujte a prohledejte vlastní tabulky stažením jejich balíčku. Podrobnosti viz níže. | |
postHáčky | Čárkou uvedený seznam háčků ke spuštění, které mohou ke konečným výsledkům přidat fasetové sady. | |
aktivníFacet | Aktuální aktivní tvář. Nechte to být, pokud nechcete, aby byl výsledek zobrazen z nestandardního aspektu přijatého přes postHook. | výchozí |
facetLimit | Počet neaktivních výsledků, které se mají zobrazit na hlavní stránce výsledků. | 5 |
seřazeno podle | Seznam polí zdrojů oddělených čárkami pro řazení výsledků. Chcete-li seřadit podle relevance a hodnocení, nechte pole prázdné. | |
sortDir | Seznam pokynů pro řazení výsledků oddělených čárkami. Musí odpovídat počtu prvků v parametru sortBy. | DESC |
noResultsTpl | Blok, který se má použít, pokud nebudou nalezeny žádné výsledky vyhledávání. |
1. SimpleSearch
2. Řešíme různé problémy s kódováním atp.
Přejděte na adresu core/components/simplesearch/model/simplesearch/simplesearch.class.php a nahraďte v ní následující řádky:
řádek 297:
$text = preg_replace("/(\[\[\+.*?\]\])/i", "", $text);
nahradit s
$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);
řádek 311:
$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));
nahradit s
$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));
řádek 413:
$string = preg_replace("/" . $quoteValue . "/i", "$0", $string);
nahradit s
$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);
komentovat řádek 179:
If (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));
těch. mělo by to dopadnout takto
/*if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); */
3. Vytvořte kopie všech standardních bloků, které jsou v adresáři core/components/simplesearch/elements/chunks/
Vytváříme nové kusy se stejnými názvy a předponou -new a stejným obsahem (jen už nejsou souborové, ale obyčejné), u kterých to všechno dále pochopíte.
Například vezmeme první blok currentpagelink.chunk.tpl a vytvoříme nový blok currentpagelink-new (prvky - vytvořit nový blok) a přeneseme do něj kód.
[[+text]]
Zodpovědný za správu tlačítka ve stránkování aktivní stránky.
A stejným způsobem vytvoříme zbytek kousků:
- pagelink-new - odpovídá za zobrazení samostatného tlačítka stránkování.
- [[+odkaz]] - odkaz na dokument
- [[+text]] - číslo dokladu
- searchform-new - vyhledávací formulář
[[%sisea.search? &namespace=`sisea` &topic=`výchozí`]]
- výsledky hledání nelze přenést - neexistuje žádný design;
- searchresult-new - výstup každé položky výsledku.
[[+idx]]. [[+pagetitle]]
[[+výpis]]
- [[+idx]] - číslo výsledku hledání v seznamu
- [[+link:is=``:then=`[[~[+id]]]]`:else=`[[+link]]`]]
- [[+longtitle]] - rozšířený název
- [[+pagetitle]] - název
- [[+extract]] – text, podle kterého byl tento dokument nalezen
- searchresultli - ve skutečnosti to také nemůžete přenést.
- searchresults-new - obálka všech výsledků
[[+resultInfo]]
[[+paging]] [[+results]] [[%sisea.result_pages? &namespace=`sisea` &topic=`výchozí`]][[+paging]]- [[+resultInfo]] - informace o počtu nalezených dokumentů a pro jakou frázi.
- [[+sisea.result_pages? &namespace=`sisea` &topic=`výchozí`]]
Výstup fráze „Stránky s výsledky vyhledávání:“
- [[+paging]] - stránkování
- [[+results]] - výsledky hledání
Po dokončení všeho byste měli mít 5 nových kousků.
4. Vytvořte nový dokument, ve kterém se zobrazí výsledky hledání
Název: Výsledky vyhledávání, zaškrtněte políčko „Nezobrazovat v nabídce“. V "Nastavení" a zrušte zaškrtnutí políček "Vyhledatelné", "Použít HTML editor". šetříme. Obnovte stránku a přidejte obsah
[[!SimpleSearch? &tpl=`searchresult-new` &containerTpl=`searchresults-new` &pageTpl=`pagelink-new` ¤tPageTpl=`currentpagelink-new`]]
kousky dekorace, které jste vytvořili v kroku 3 (vzhled).
Pokud chcete, aby byly obrázky ve výsledcích vyhledávání, přidejte je na konec tohoto výstupu
&includeTVs=`1` &processTVs=`1`
V bloku výsledků vyhledávání lze obrázek nazvat takto: [[+img]].
5. Zobrazte vyhledávací formulář
Na místo, kde chcete zobrazit vyhledávací formulář, napište
[[!SimpleSearchForm? &landing=`11` &tpl=`searchform-new`]]
Zde landing je id stránky s výsledky vyhledávání, v tpl jsou části návrhu formuláře, které byly vytvořeny v kroku 3.
Kroky 4 a 5 jsme provedli, abychom mohli upravit externí design podle našeho uvážení: samotný formulář, výsledky vyhledávání atd. aniž byste se dostali do zdrojového kódu. A standardní provedení je spíše tristní, například takto vypadá standardní vyhledávací formulář.
6. Změňte design.
Nevidím smysl v popisování toho, jak uspořádat všechny části, například dám nový design pro vyhledávací formulář – nový chunk
Toto je obvyklé standardní označení formuláře z bootstrapu 3, na webu to vypadá takto:
Oficiální dokumentace zde: docs.modx.com/extras/revo/simplesearch
Pokud máte dotazy, pište zeptejte se jich do komentářů.