Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Recenzii
  • Parametrii simplesearch modx revo. Ne amintim id-ul acestei resurse, aceasta este pagina care afișează rezultatele căutării

Parametrii simplesearch modx revo. Ne amintim id-ul acestei resurse, aceasta este pagina care afișează rezultatele căutării

Bună ziua, dragi prieteni și colegi! Aș dori să vă prezint un pachet excelent pentru organizarea căutărilor pe un site web în sistem Modx Revolution - SimpleSearch. Vă voi explica pas cu pas cum să instalați acest pachet pe site și să organizați căutarea pe site. Asadar, haideti sa începem:

1. Mai întâi, accesați „System” - „Package Management”

2. Faceți clic pe butonul „Descărcați suplimente”.

3. Introduceți în bara de căutare - SimpleSearch, apăsați „Enter” și faceți clic pe butonul „Download”

4. Pachetul va fi descărcat

5. Faceți clic pe „Gestionați pachetele”

6. Și faceți clic pe butonul „instalați” de lângă SimpleSearch pe care l-am descărcat

Faceți clic pe „Continuare” și apoi pe „OK”

7. Creați o nouă resursă la rădăcina arborelui

Titlu: Rezultatele căutării, bifați caseta de selectare „Nu se afișează în meniu”. Faceți clic pe fila „Setări” și debifați casetele de selectare „Se poate căuta” și „Utilizați editorul HTML”. Nu uitați să salvați resursa.

8. Apoi, mergeți la resursa nou creată și introduceți în câmpul „Conținutul resursei”.

[[!SimpleSearch]]

9. Rețineți id-ul acestei resurse, aceasta este pagina cu rezultatele căutării

În șablonul în care se află formularul de căutare în sine, introduceți următorul cod:

[[!SimpleSearchForm? &landing=`1` &tpl=`căutare`]]

unde landing este ID-ul paginii de ieșire cu rezultatele căutării, iar fragmentul de căutare este responsabil pentru formularul de căutare în sine, pe care îl vom crea acum

10. Apoi copiați următorul cod

Acesta este conținutul fișierului core/components/simplesearch/elements/chunks/searchform.chunk.tpl:

într-o nouă bucată numită căutare și creați șablonul de afișare a ferestrei de căutare de care avem nevoie.

11. În continuare rezolvăm problemele cu codificarea

Găsiți fișierul core/components/simplesearch/model/simplesearch/simplesearch.class.php și înlocuiți linia din el

$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));

$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));

12. Apoi înlocuiți șirul

$șir = preg_replace("/" . $quoteValue . "/i", "<".$tag." class=".$cls.">$0", $șir);

$șir = preg_replace("/" . $quoteValue . "/iu", "<".$tag." class=".$cls.">$0", $șir);

13. Înlocuim și linia

$text = preg_replace("/(\[\[\+.*?\]\])/i", "", $text);

$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);

14. Și, în sfârșit, trebuie să comentați rândul

if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));

Bucăți de bază SimpleSearch

Căutarea pe site-ul care rulează Modx Revolution este gata. Funcționează, puteți vedea singur, dar mai sunt câteva puncte care vă vor fi utile atunci când lucrați cu acest fragment. Și anume, editarea unor bucăți de rezultate ale căutării, învelișul acestuia, paginarea și așa mai departe. În primul rând, trebuie să înțelegeți că toate bucățile în format .tpl sunt situate în această cale: core/components/simplesearch/elements/chunks/. Ei bine, pentru a facilita lucrul cu ele, vom afișa principalele bucăți în panoul de administrare Modx. Iată parametrii lor

  • containerTpl
  • paginaTpl
  • currentPageTpl

Ei bine, le vom numi bucățile înșiși cum vrem.

parametru tpl - bucată SimpluSearchResult

Parametru tpl este responsabil pentru afișarea fiecărui element individual rezultat al căutării. Să creăm o bucată și să o numim SimpluSearchResult. Să copiem codul din fișier în el core/components/simplesearch/elements/chunks/searchresult.chunk.tpl:

[[+idx]].

2. Faceți clic pe butonul „Descărcați suplimente”.

3. Introduceți în bara de căutare - SimpleSearch, apăsați „Enter” și faceți clic pe butonul „Download”

4. Pachetul va fi descărcat

5. Faceți clic pe „Gestionați pachetele”

6. Și faceți clic pe butonul „instalați” de lângă SimpleSearch pe care l-am descărcat

Faceți clic pe „Continuare” și apoi pe „OK”

7. Creați o nouă resursă la rădăcina arborelui

Titlu: Rezultatele căutării, bifați caseta de selectare „Nu se afișează în meniu”. Faceți clic pe fila „Setări” și debifați casetele de selectare „Se poate căuta” și „Utilizați editorul HTML”. Nu uitați să salvați resursa.

8. Apoi, mergeți la resursa nou creată și introduceți în câmpul „Conținutul resursei”.

[[!SimpleSearch]]

9. Rețineți id-ul acestei resurse, aceasta este pagina cu rezultatele căutării

În șablonul în care se află formularul de căutare în sine, introduceți următorul cod:

[[!SimpleSearchForm? &landing=`1` &tpl=`căutare`]]

unde landing este ID-ul paginii de ieșire cu rezultatele căutării, iar fragmentul de căutare este responsabil pentru formularul de căutare în sine, pe care îl vom crea acum

10. Apoi copiați următorul cod

Acesta este conținutul fișierului core/components/simplesearch/elements/chunks/searchform.chunk.tpl:

într-o nouă bucată numită căutare și creați șablonul de afișare a ferestrei de căutare de care avem nevoie.

11. În continuare rezolvăm problemele cu codificarea

Găsiți fișierul core/components/simplesearch/model/simplesearch/simplesearch.class.php și înlocuiți linia din el

$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));

$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));

12. Apoi înlocuiți șirul

$șir = preg_replace("/" . $quoteValue . "/i", "<".$tag." class=".$cls.">$0", $șir);

$șir = preg_replace("/" . $quoteValue . "/iu", "<".$tag." class=".$cls.">$0", $șir);

13. Înlocuim și linia

$text = preg_replace("/(\[\[\+.*?\]\])/i", "", $text);

$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);

14. Și, în sfârșit, trebuie să comentați rândul

if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));

Bucăți de bază SimpleSearch

Căutarea pe site-ul care rulează Modx Revolution este gata. Funcționează, puteți vedea singur, dar mai sunt câteva puncte care vă vor fi utile atunci când lucrați cu acest fragment. Și anume, editarea unor bucăți de rezultate ale căutării, învelișul acestuia, paginarea și așa mai departe. În primul rând, trebuie să înțelegeți că toate bucățile în format .tpl sunt situate în această cale: core/components/simplesearch/elements/chunks/. Ei bine, pentru a facilita lucrul cu ele, vom afișa principalele bucăți în panoul de administrare Modx. Iată parametrii lor

  • containerTpl
  • paginaTpl
  • currentPageTpl

Ei bine, le vom numi bucățile înșiși cum vrem.

parametru tpl - bucată SimpluSearchResult

Parametru tpl este responsabil pentru afișarea fiecărui element individual rezultat al căutării. Să creăm o bucată și să o numim SimpluSearchResult. Să copiem codul din fișier în el core/components/simplesearch/elements/chunks/searchresult.chunk.tpl:

[[+idx]].

înlocui cu

$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);

linia 311:

$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));

înlocui cu

$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));

linia 413:

$șir = preg_replace("/" . $quoteValue . "/i", "<".$tag." class="".$cls."">$0", $șir);

înlocui cu

$șir = preg_replace("/" . $quoteValue . "/iu", "<".$tag." class="".$cls."">$0", $șir);

Să comentăm rândul 179:

If (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));

acestea. ar trebui să arate așa

/*if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); */

3. Faceți copii ale tuturor fragmentelor standard care se află în directorul core/components/simplesearch/elements/chunks/

Creăm noi bucăți cu aceleași nume și prefixul -new, și același conținut (numai că nu mai sunt bazate pe fișiere, ci obișnuite), pentru care veți înțelege toate acestea mai departe.

De exemplu, luați prima bucată currentpagelink.chunk.tplși creați o nouă bucată currentpagelink-new(elemente - creați o nouă bucată) și mutați codul în ea.

[[+text]]

Responsabil pentru controlul butonului în paginare pentru pagina activă.

Și în același mod creăm bucățile rămase:

—pagelink-nou— este responsabil pentru afișarea unui buton de paginare separat.

[[+text]]

  • [[+link]]- link către document
  • [[+text]]- Numarul documentului

- formular de căutare-nou- formular de căutare

rezultate de căutare Nu trebuie să-l transferați - nu există nici un design acolo;

rezultatul căutării-nou— ieșirea fiecărui punct rezultat.

[[+idx]]. [[+pagetitle]]

[[+extract]]

  • [[+idx]]- numărul rezultatului căutării în listă
  • [[+link:is=``:then=`[[~[[+id]]]]`:else=`[[+link]]`]]
  • [[+titre lung]]- antet extins
  • [[+pagetitle]]- titlu
  • [[+extract]]- textul prin care a fost găsit acest document

rezultatul căutării- de fapt, nici tu nu suporti.

rezultate de căutare-nou- învelișul tuturor rezultatelor

[[+resultInfo]]

[[+paging]]
[[+rezultate]]
[[%sisea.result_pages? &namespace=`sisea` &topic=`implicit`]][[+paging]]

  • [[+resultInfo]]- informații despre numărul de documente găsite și pentru ce frază.
  • [[+sisea.result_pages? &namespace=`sisea` &topic=`implicit`]]

    Ieșire de frază „Pagini cu rezultatele căutării:”

  • [[+paging]]- paginarea
  • [[+rezultate]]- rezultatele căutării

După toate acestea, ar trebui să aveți 5 bucăți noi.

4. Creați un nou document pe care vor fi afișate rezultatele căutării

Titlu: Rezultatele căutării, bifați caseta de selectare „Nu se afișează în meniu”. Accesați „Setări” și debifați casetele de selectare „Căutare” și „Utilizați editorul HTML”. Salva. Reîmprospătăm pagina și o adăugăm la conținut

[[!SimpleSearch? &tpl=`searchresult-new` &containerTpl=`searchresults-new` &pageTpl=`pagelink-new` ¤tPageTpl=`currentpagelink-new`]]

proiectați bucăți care au fost create la pasul 3 (aspect).

Dacă doriți ca rezultatele căutării să includă imagini, adăugați-le la sfârșitul acestei rezultate

&includeTVs=`1` &processTVs=`1`

În fragmentul de rezultate ale căutării, imaginea poate fi numită astfel: [[+img]].

5. Afișarea formularului de căutare

În locul în care trebuie să afișați formularul de căutare, scrieți

[[!SimpleSearchForm? &landing=`11` &tpl=`searchform-new`]]

Aici landing este id-ul paginii cu rezultatele căutării, în tpl sunt bucățile de design de formular care au fost create la pasul 3.

Am făcut pașii 4 și 5, astfel încât să puteți edita designul extern la discreția dvs.: formularul în sine, rezultatele căutării etc. fără a intra în surse. Și designul standard este destul de trist, de exemplu, așa arată formularul de căutare standard.

6. Schimbăm designul.

Nu văd niciun rost să descriu cum să proiectăm toate bucățile ca exemplu, voi da un design nou pentru o bucată formular de căutare-nou

Acesta este marcajul obișnuit al formularului standard de la Bootstrap 3, pe site arată astfel:

Documentația oficială aici: docs.modx.com/extras/revo/simplesearch

Dacă aveți întrebări, scrieți și adresați-le în comentarii.

Acest fragment afișează rezultatele căutării pe baza criteriilor de căutare trimise.

Utilizare

Pur și simplu plasați fragmentul în Resursa în care doriți să afișați rezultatele căutării.

[[!SimpleSearch]]

Proprietăți disponibile

Nume Descriere Mod implicit
tpl Porțiunea care va fi utilizată pentru afișarea conținutului fiecărui rezultat al căutării. Rezultatul căutării
containerTpl Porțiunea care va fi folosită pentru a încheia toate rezultatele căutării, paginarea și mesajul. Rezultatele cautarii
foloseșteAllWords Dacă este adevărat, vor găsi numai rezultate cu toate cuvintele de căutare specificate. 0
maxWords Numărul maxim de cuvinte de inclus în căutare. Se aplică numai dacă useAllWords este dezactivat. 7
minChars Numărul minim de caractere pentru a declanșa căutarea. 3
searchStyle Pentru a căuta fie cu o căutare „parțială” LIKE, fie cu o căutare „potrivită” bazată pe relevanță. parțial
șiTermeni Indiferent dacă se adaugă sau nu un ȘI logic între cuvinte. 1
matchWildcard Activați căutarea cu wildcard. Setați la fals pentru a efectua căutarea exactă pe un termen de căutare. 1
docFields O listă, separată prin virgulă, de câmpuri de resurse specifice de căutat. pagetitle,longtitle,alias,descriere,introtext,conținut
fieldPotency Marcați și sortați rezultatele (consultați https://github.com/splittingred/SimpleSearch/pull/29 pentru mai multe informații/utilizare)
per pagină Numărul de rezultate ale căutării de afișat pe pagină. 10
showExtract Indiferent dacă se afișează sau nu un extras din conținutul fiecărui rezultat al căutării. 1
extractSource (nou în versiunea 1.9) Permite utilizatorului să definească de unde provine extrasul. Dacă valoarea acestui parametru este un nume de câmp de resurse (inclusiv televizoare dacă este setat &includeTVs), atunci acel câmp de resurse este utilizat pentru extragere. În caz contrar, parametrul este considerat numele unui fragment de rulat. Fragmentului i se transmite matricea de resurse ca parametri. Dacă nu există niciun fragment cu acest nume, atunci extrasul va fi gol. conţinut
extractLength Numărul de caractere pentru extragerea conținutului fiecărui rezultat al căutării. 200
extrageElipse Șirul folosit pentru a împacheta rezultatele extragerii cu. Implicit, este o elipsă. ...
includ televizoare Indică dacă valorile TemplateVar ar trebui incluse în proprietățile disponibile pentru fiecare șablon de resursă. Valoarea implicită la 0. Activarea acestei opțiuni poate încetini căutarea dacă aveți o mulțime de televizoare. 0
include TVList O listă opțională delimitată prin virgulă de nume TemplateVar de inclus în mod explicit dacă includeTVs este 1.
procesează televizoarele Indică dacă valorile TemplateVar ar trebui redate așa cum ar fi pentru resursa care este rezumată. Implicit la 0. Câteva note:
Televizoarele pot fi accesate după numele lor TV [[+myTV]] În mod implicit, SimpleSearch nu folosește un prefix, de ex. [[+tv.myTV]] NU se va randa. Televizoarele sunt procesate în timpul indexării pentru căutarea Solr, așa că nu este nevoie să faceți acest lucru aici.
0
evidențiațiRezultatele Indiferent dacă să evidențiezi sau nu termenul de căutare în rezultate. 1
highlightClass Numele clasei CSS de adăugat la termenii evidențiați din rezultate. simplesearch-highlight
evidențiațiTag Eticheta html pentru a include termenul evidențiat în rezultatele căutării. span
paginaTpl Bucățiune de utilizat pentru un link de paginare. Link-ul paginii
currentPageTpl Bucățimea de utilizat pentru linkul de paginare curent. CurrentPageLink
pagingSeparator Separatorul de utilizat între legăturile de paginare.
id-uri O listă de ID-uri separate prin virgulă la care să restricționați căutarea.
idType Tipul de restricție pentru parametrul ids. Dacă părinți, vor adăuga toți copiii ID-urilor din parametrul ids la căutare. În cazul documentelor, va folosi numai ID-urile specificate în căutare. părinţi
exclude O listă separată prin virgulă de ID-uri de resurse de exclus din căutare, de ex. „10,15,19”. Acest lucru va exclude resursele cu ID-ul „10”, „15” sau „19”.
adâncime Dacă idtype este setat la părinți, adâncimea în arborele de resurse care va fi căutată cu ID-urile specificate. 10
ascundeMeniu Dacă se returnează sau nu Resurse care au hidemenu activat. 0 arată doar resurse vizibile, 1 arată doar resurse ascunse, 2 arată ambele. 2
contexte Contextele de căutat. În mod implicit, contextul curent nu este specificat în mod explicit.
searchIndex Numele parametrului REQUEST pe care îl va folosi căutarea. căutare
offsetIndex Numele parametrului REQUEST de utilizat pentru offset-ul de paginare. simplesearch_offset
substituentPrefix Prefixul pentru substituenții globali setat de acest fragment. căutare simplă.
laPlaceholder Dacă să setați rezultatul să revină direct sau să setați un substituent cu acest nume de proprietate.
urlScheme Schema URL pe care o doriți: http, https, full, abs, relative etc. Consultați documentația $modx->makeUrl(). Acesta este utilizat atunci când sunt generate link-urile de paginare.
pachete personalizate Setați să căutați în tabele personalizate încărcând pachetul acestora. Vezi mai jos pentru mai multe detalii.
postHooks O listă separată prin virgulă de cârlige de rulat care poate adăuga seturi fațetate la rezultatele finale.
activeFacet Fațeta activă curentă. Lăsați acest lucru în pace, cu excepția cazului în care doriți să apară un rezultat dintr-o fațetă non-standard derivată printr-un postHook. Mod implicit
facetLimit Numărul de rezultate cu fațete non-active de afișat pe pagina principală de rezultate. 5
filtrează după O listă de câmpuri de resurse, separate prin virgulă, după care să sortați rezultatele. Lăsați necompletat pentru a sorta după relevanță și punctaj.
sortDir O listă de direcții, separate prin virgulă, după care să sortați rezultatele. Trebuie să se potrivească cu numărul de articole din parametrul sortBy. DESC
noResultsTpl Bucățiune de utilizat când nu se găsesc rezultate ale căutării.

SimpleSearch Bucăți

Există 4 bucăți care sunt procesate în SimpleSearch. Parametrii lor corespondenți SimpleSearch sunt:

  • tpl - Bucata de utilizat pentru fiecare rezultat afișat.
  • containerTpl - Bucățiunea care va fi folosită pentru a include toate rezultatele căutării, paginarea și mesajul.
  • pageTpl - Bucățimea de utilizat pentru un link de paginare.
  • currentPageTpl - Porțiunea de utilizat pentru legătura de paginare curentă.

Căutarea în tabele personalizate

Căutarea în tabele personalizate este disponibilă în SimpleSearch folosind proprietatea &customPackages; cu toate acestea, trebuie să aveți un pachet personalizat creat pentru acesta. Formatul este:

ClassName:fieldName(s):packageName:packagePath:joinCriteria||class2Name:fieldName(s):package2Name:package2Path:join2Criteria

Cu alte cuvinte, fiecare pachet personalizat este separat prin ||. Apoi, fiecare parte a acesteia este separată prin două puncte (:). Un exemplu pentru a căuta comentarii Quip:

&customPackages=`quipComment:body:quip:(core_path)components/quip/model/:quipComment.resource = modResource.id`

Să defalcăm fiecare parte:

  • numele clasei- Numele clasei tabelului pe care doriți să îl căutați. Aici, este QuipComment.
  • fieldName- O listă de nume de coloane separate prin virgulă de căutat. Am făcut „corp”, ați fi putut face și „corp, e-mail” sau orice altceva.
  • numele pachetului- Numele pachetului schema de adăugat. Acesta se numește gluma.
  • packagePath- Calea către modelul/directorul în care se află pachetul.
  • joinCriteria- SQL pentru a se alătura tabelului pe care doriți să îl căutați și tabelului modResource. Tabelul dvs. trebuie să aibă o conexiune la Resursa pe care se află (altfel SimpleSearch nu va ști cum să încarce o adresă URL pentru aceasta!)

Odată ce l-ați adăugat, va căuta și în acele câmpuri date. Dacă le găsește în acel tabel, va afișa rezultatul ca link către Resursa pe care ați specificat-o în joinCriteria. În exemplul nostru, acesta ar fi resursa pe care se află comentariul Quip.

Cele mai bune articole pe această temă