• 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:

    název Popis Výchozí
    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í.
    Implementace vyhledávání na stránkách MODX

    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é vlastnosti Název Popis Výchozí
    tpl 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í.
    SimpleSearch kusy

    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

    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:

    název Popis Výchozí
    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í.
    Implementace vyhledávání na stránkách MODX

    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ářů.