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".$tag.">", $șir);$șir = preg_replace("/" . $quoteValue . "/iu", "<".$tag." class=".$cls.">$0".$tag.">", $ș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".$tag.">", $șir); $șir = preg_replace("/" . $quoteValue . "/iu", "<".$tag." class=".$cls.">$0".$tag.">", $ș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".$tag.">", $șir);
înlocui cu
$șir = preg_replace("/" . $quoteValue . "/iu", "<".$tag." class="".$cls."">$0".$tag.">", $ș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.
[[+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".$tag.">", $șir);
înlocui cu
$șir = preg_replace("/" . $quoteValue . "/iu", "<".$tag." class="".$cls."">$0".$tag.">", $ș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
[[+idx]]. [[+pagetitle]]
[[+extract]]
Ieșire de frază „Pagini cu rezultatele căutării:”
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.