Skriv SimpleSearch i søkefeltet, trykk "Enter" og klikk på "Last ned"-knappen.
Denne kodebiten viser søkeresultater basert på søkekriteriene som er sendt.
BrukBare plasser kodebiten i ressursen du vil vise søkeresultater i.
[[!SimpleSearch]]
Tilgjengelige egenskapertpl | Delen som skal brukes til å vise innholdet i hvert søkeresultat. | Søkeresultat |
containerTpl | Delen som skal brukes til å pakke inn alle søkeresultater, paginering og melding. | Søkeresultater |
useAllWords | Hvis det er sant, finner du bare resultater med alle de angitte søkeordene. | 0 |
maxWords | Maksimalt antall ord som skal inkluderes i søket. Gjelder bare hvis useAllWords er av. | 7 |
minChars | Minimum antall tegn for å utløse søket. | 3 |
søkestil | For å søke enten med et "delvis" LIKE-søk, eller et relevansbasert "match"-søk. | delvis |
og Vilkår | Hvorvidt du skal legge til en logisk OG mellom ord. | 1 |
matchWildcard | Aktiver jokertegnsøk. Sett til usann for å søke nøyaktig etter et søkeord. | 1 |
docFields | En kommadelt liste over spesifikke ressursfelt å søke i. | sidetittel,langtittel,alias,beskrivelse,introtekst,innhold |
feltstyrke | Poeng og sorter resultatene (se https://github.com/splittingred/SimpleSearch/pull/29 for mer info/bruk) | |
per side | Antall søkeresultater som skal vises per side. | 10 |
showExtract | Hvorvidt et utdrag av innholdet i hvert søkeresultat skal vises eller ikke. | 1 |
extractSource | (ny i versjon 1.9) Lar brukeren definere hvor utdraget kommer fra. Hvis verdien av denne parameteren er et ressursfeltnavn (inkludert TV-er hvis &includeTVs er angitt), brukes det ressursfeltet for uttrekket. Ellers tas parameteren som navnet på en Snippet som skal kjøres. Snippet sendes ressursarrayen som parametere. Hvis det ikke er noen kodebit med det navnet, vil utdraget være tomt. | innhold |
uttrekk Lengde | Antall tegn for innholdsutvinningen av hvert søkeresultat. | 200 |
ekstraktEllipsis | Strengen som brukes til å pakke ut ekstraktresultater med. Standard til en ellipse. | ... |
inkluderer TVer | Indikerer om TemplateVar-verdier skal inkluderes i egenskapene som er tilgjengelige for hver ressursmal. Standard er 0. Hvis du slår på dette, kan det gjøre søket tregere hvis du har mange TV-er. | 0 |
inkluderer TVList | En valgfri kommadelt liste over TemplateVar-navn som skal inkluderes eksplisitt hvis includeTVs er 1. | |
prosess-TVer | Indikerer om TemplateVar-verdier skal gjengis slik de ville gjort på ressursen som oppsummeres. Standard er 0. Noen merknader: TV-er kan nås med TV-navnet deres [[+myTV]] Som standard bruker ikke SimpleSearch et prefiks, f.eks. [[+tv.myTV]] vil IKKE gjengis. TV-er behandles under indeksering for Solr-søk, så det er ikke nødvendig å gjøre dette her. |
0 |
fremheve resultater | Hvorvidt søkeordet skal fremheves i resultatene. | 1 |
highlightClass | CSS-klassenavnet som skal legges til i uthevede termer i resultatene. | simplesearch-highlight |
highlightTag | HTML-koden for å pakke det uthevede ordet med i søkeresultatene. | span |
sideTpl | Delen som skal brukes for en pagineringslenke. | Sidekobling |
gjeldende SideTpl | Delen som skal brukes for gjeldende pagineringskobling. | CurrentPageLink |
sideseparator | Skillelinjen som skal brukes mellom pagineringslenker. | |
ids | En kommadelt liste over IDer å begrense søket til. | |
idType | Begrensningstypen for ids-parameteren. Hvis foreldre, vil legge til alle barna til ID-ene i ids-parameteren i søket. Hvis dokumenter, vil kun bruke de angitte IDene i søket. | foreldre |
utelukke | En kommadelt liste over ressurs-ID-er som skal ekskluderes fra søk, f.eks. "10,15,19". Dette vil ekskludere ressursene med ID-en "10", "15" eller "19". | |
dybde | Hvis idtype er satt til foreldre, dybden ned i ressurstreet som vil bli søkt med de angitte IDene. | 10 |
skjul Meny | Hvorvidt å returnere ressurser som har hidemenu på. 0 viser bare synlige ressurser, 1 viser bare skjulte ressurser, 2 viser begge. | 2 |
sammenhenger | Kontekstene for å søke. Standard til gjeldende kontekst hvis ingen er eksplisitt spesifisert. | |
søkeindeks | Navnet på REQUEST-parameteren som søket vil bruke. | Søk |
offsetIndex | Navnet på REQUEST-parameteren som skal brukes for pagineringsforskyvningen. | simplesearch_offset |
plassholderprefiks | Prefikset for globale plassholdere angitt av denne kodebiten. | enkelt søk. |
til Plassholder | Om du skal sette utdata til å returnere direkte, eller sette til en plassholder med dette egenskapsnavnet. | |
urlScheme | URL-skjemaet du ønsker: http, https, full, abs, relativ, etc. Se $modx->makeUrl()-dokumentasjonen. Dette brukes når pagineringslenkene genereres. | |
tilpassede pakker | Sett til å søke etter egendefinerte tabeller ved å laste inn pakken deres. Se nedenfor for flere detaljer. | |
postHooks | En kommadelt liste over kroker å kjøre som kan legge til fasetterte sett til sluttresultatene. | |
activeFacet | Den gjeldende aktive fasetten. La dette være med mindre du vil at et resultat skal vises fra en ikke-standard fasett avledet gjennom en postHook. | misligholde |
facetLimit | Antall resultater med ikke-aktive faser som skal vises på hovedresultatsiden. | 5 |
Sorter etter | En kommadelt liste over ressursfelt å sortere resultatene etter. La stå tomt for å sortere etter relevans og poengsum. | |
sortDir | En kommadelt liste over veibeskrivelser for å sortere resultatene etter. Må samsvare med antall elementer i sortBy-parameteren. | DESC |
noResultsTpl | Delen som skal brukes når ingen søkeresultater blir funnet. |
Det er 4 biter som behandles i SimpleSearch. Deres tilsvarende SimpleSearch-parametere er:
- tpl - Delen som skal brukes for hvert resultat som vises.
- containerTpl - Delen som skal brukes til å pakke inn alle søkeresultatene, paginering og melding.
- pageTpl - Delen som skal brukes for en pagineringslenke.
- currentPageTpl - Delen som skal brukes for gjeldende pagineringskobling.
Søking i egendefinerte tabeller er tilgjengelig i SimpleSearch ved å bruke &customPackages-egenskapen; du må imidlertid ha en tilpasset pakke bygget for det. Formatet er:
Klassenavn:feltnavn(e):pakkenavn:pakkebane:joinCriteria||klasse2navn:feltnavn(er):pakke2navn:pakke2bane:join2Criteria
Med andre ord er hver tilpasset pakke atskilt med ||. Deretter er hver del av den atskilt med kolon (:). Et eksempel for å søke etter Quip-kommentarer:
&customPackages=`quipComment:body:quip:(core_path)components/quip/model/:quipComment.resource = modResource.id`
La oss bryte ned hver del:
- className - Klassenavnet på tabellen du vil søke etter. Her er det QuipComment.
- fieldName(s) – En kommadelt liste over kolonnenavn som skal søkes i. Vi gjorde "body", du kunne også ha gjort "body,email" eller hva som helst.
- packageName - Navnet på skjemaet Pakken som skal legges til. Denne kalles quip.
- packagePath - Banen til modellen/katalogen der pakken er plassert.
- joinCriteria - SQL-en for å slå sammen tabellen du vil søke i og modResource-tabellen. Tabellen din må ha en tilkobling til ressursen den er på (ellers vet ikke SimpleSearch hvordan den skal laste inn en URL for den!)
Når du har lagt det til, vil det også søke etter data i disse feltene. Hvis det finner det i den tabellen, vil det vise resultatet som en lenke til ressursen du spesifiserte i joinCriteria. I vårt eksempel vil det være ressurs Quip-kommentaren er plassert på.
SimpleSearch er en standardpakke for nettstedsøk i modx revolution. Vi vil legge til en ajax-forespørsel for direkte søk. Et eksempel kan sees på samme side; det fungerer ganske enkelt og, vel å merke, med paginering. SimpleSearchForm-kodebiten (søkeskjema) ber om en ajax-forespørsel fra en egen resultatside, som viser SimpleSearch-kodebiten.
1 Last ned den populære SimpleSearch nettstedsøkepakken fra modx revo-depotet og installer det.
Vi oppretter en ressurs med en tom mal for ajax for å samle inn data og sende det ved forespørsler i søkeskjemaet.
La oss for eksempel kalle aliaset "søkeresultater", og det vil bli åpnet av ajax.
Ressursinnhold:
søkeresultater if(typeof jQuery !== undefined) ( $(document).ready(function() ( $(".sisea-page a").click(function(event) ( // pagination event.preventDefault(); // Hindrer nettleseren fra å navigere gjennom sider // Laster neste søkeside og viser beholderen $("#site-search-results").load($(this).attr("href")).show() ; return false; // stub )); )); ) [[!SimpleSearch]]
2 La oss nå plassere søkeskjemaet på et sted som er praktisk for deg, kodebiten "SimpleSearchForm" er ansvarlig for dette.
Som regel skyves søkeskjemaet inn i modx-maler.
div-elementet viser resultatene av ajax-forespørselen.
[[!SimpleSearchForm]]
3 La oss koble til ajax for å sende forespørsler fra skjemaet til siden vi opprettet i trinn 1.
(!) Ikke glem å koble til jquery
(!) Pass på hvilken adresse ajax får tilgang til ressursen på. load()-metoden er ansvarlig for dette på 2 steder.
// SimpleSearch ajax $(document).ready(function() ( // Button $(".sisea-search-form").submit(function () ( // uncomment if you need a button // $("# site- search-results").load("/search-results/",$(".sisea-search-form").serialize()).slideDown("rask"); return false; )); // Live søk $(".sisea-search-form input").keyup(function() ( if(this.value.length > 2) ( // Bruker skriver inn mer enn 2 tegn i søkestrengen // skjuler/viser resultater utenfor vinduet $(document).click(function(event)( // hide if ($(event.target).closest(".site-search-results").length) return; $(".site-search -results" ).slideUp("rask"); //event.stopPropagation(); )); $("#search").click(function() ( // vis $(".site-search-results" ).slideDown ("raskt"); return false; )); // ajax request laster søkeresultater fra siden og viser beholderen $("#site-search-results").load("/search-results/" ,$(". sisea-search-form").serialize()).slideDown("fast"); ) else ( // Hvis mindre enn 2 tegn er skrevet, skjul beholderen (CSS display:none;) $( "#site-search-results" ).slideUp("rask"); ) )); ));
4 Vi kobler til css for å vise resultatene av ajax-effekten ved å skjule og avsløre vinduet og dets nødvendige visningsstiler, alt til et minimum. Fullfør resten av stilene selv som beskrevet i manualen til SimpleSearch-pakken i 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 0,55); -moz-box-shadow: 2px 3px 9px -2px rgba(50, 50, 50, 0,55); )
Søkeknappen i SimpleSearchForm-kodebiten kan fjernes helt
siden ajax allerede avskjærer ved å trykke på Enter-knappen.
I dag er en leksjon om hvordan du implementerer nettstedsøk i Modx Revolution ved å bruke SimpleSearch-komponenten.
Hovedkodebitparametere:
tpl | Den delen som brukes til å vise innholdet i hvert søkeresultat. | Søkeresultat |
containerTpl | En blokk som brukes til å bryte søkeresultater, paginering og innlegg. | Søkeresultat |
useAllWords | Hvis sant, vil bare resultater med alle spesifiserte søkeord bli funnet. | 0 |
maxWords | Maksimalt antall ord som skal inkluderes i søket. Gjelder bare hvis useAllWords er deaktivert. | 7 |
minChars | Minimum antall tegn for å starte et søk. | 3 |
søkestil | For å søke ved hjelp av et "delvis" LIKE-søk eller et relevansbasert "match"-søk. | delvis |
og Vilkår | Er det nødvendig å legge til logisk OG mellom ord. | 1 |
matchWildcard | Aktiver jokertegnsøk. Sett til usann for å utføre et eksakt søk basert på søkeordet. | 1 |
docFields | Liste over individuelle dokumentfelt for å søke. | side tittel, longtitle, beskrivelse, introtekst, alias ,innhold |
feltstyrke | Evaluere og sortere resultater | |
per side | Antall søkeresultater for én side. | 10 |
showExtract | Om du vil vise et utklipp av innholdet i hvert søkeresultat. | 1 |
extractSource | Lar brukeren bestemme hvor utvinningen kommer fra. Hvis verdien av denne parameteren er navnet på et ressursfelt (inkludert TV if & includeTVs er angitt), blir det ressursfeltet brukt for uttrekket. Ellers tas parameteren som navnet på fragmentet som skal kjøres. Fragmentet sendes en rekke ressurser som parametere. Hvis dette navnet ikke har et fragment, vil utdraget være tomt. | innhold |
uttrekk Lengde | Antall tegn som skal trekkes ut fra innholdet for hvert resultat. | 200 |
ekstraktEllipsis | Strengen som brukes til å bære resultatene av ekstraksjonen. Standard er ellipse. | … |
inkluderer TVer | Angir om TemplateVar-verdier skal inkluderes i egenskapene som er tilgjengelige for hver ressursmal. Standard er 0. Aktivering av denne innstillingen kan redusere hastigheten hvis du har mange TV-er. | 0 |
prosess-TVer | Indikerer om TemplateVar-verdier skal vises slik de ville vært på en oppsummert ressurs. Standard er 0. Noen merknader: TV kan nås med TV-navnet [[+ myTV]] Som standard bruker SimpleSearch ikke et prefiks, for eksempel vil [[+ tv.myTV]] IKKE vises. TV-er behandles under indeksering for Solr-søk, så det er ikke nødvendig å gjøre det her. | 0 |
fremheve resultater | Velg eller utelat søket i resultatene. | 1 |
highlightClass | Navnet på CSS-klassen som skal legges til de uthevede betingelsene i resultatene. | sisea-høydepunkt |
highlightTag | En html-tag for å pakke inn det uthevede ordet i søkeresultatene. | span |
sideTpl | Den delen som brukes til å lenke til sider. | Sidekobling |
gjeldende SideTpl | Blokken som brukes for gjeldende lenke på siden. | CurrentPageLink |
sideseparator | Separator (separator) for bruk mellom sidelenker. | | |
ids | Liste over dokument-ID-er, atskilt med komma, for å begrense søket | |
idType | Begrensningstypen for ids-parameteren. Hvis foreldre, vil alle identifikasjonselementer bli lagt til ids-parameteren for søket. Hvis dokumenter, vil kun de angitte identifikatorene bli brukt i søket. | foreldre |
utelukke | Liste over ressursidentifikatorer, atskilt med kommaer, for eksempel å ekskludere fra søket. "10,15,19." Dette ekskluderer ressurser med ID-er på "10", "15" eller "19". | |
dybde | Hvis idtype er satt til overordnet, dybden ned i ressurstreet som vil bli søkt med de angitte identifikatorene. | 10 |
skjul Meny | Må jeg returnere ressurser som har hidemenu. 0 viser bare synlige ressurser, 1 viser bare skjulte ressurser, 2 viser begge. | 2 |
sammenhenger | Søk kontekster. Standard er å bruke gjeldende kontekst hvis ingen er spesifisert eksplisitt. | |
søkeindeks | Navnet på REQUEST-parameteren som skal brukes av søket. | Søk |
offsetIndex | Navnet på REQUEST-parameteren som brukes til å forskyve siden. | sisea_offset |
plassholderprefiks | Prefiks for globale plassholdere, gitt av kodebiten. | sisea. |
til Plassholder | Om du skal sette utdataene til å returnere direkte eller settes til en plassholder med navnet på denne egenskapen. | |
urlScheme | Nødvendig URL-skjema: http, https, full, abs, relativ, etc. Se dokumentasjonen for $modx->makeUrl(). Dette brukes når pagineringslenker genereres. | |
tilpassede pakker | Sett til å søke etter egendefinerte tabeller ved å laste ned pakken deres. Se nedenfor for detaljer. | |
postHooks | En kommadelt liste over kroker å kjøre som kan legge til fasetterte sett til de endelige resultatene. | |
activeFacet | Gjeldende aktiv kant. La dette være hvis du ikke vil at resultatet skal vises fra et ikke-standard aspekt mottatt via postHook. | misligholde |
facetLimit | Antall ikke-aktive fasetresultater som skal vises på hovedresultatsiden. | 5 |
Sorter etter | Liste over ressursfelt, atskilt med komma, for sortering av resultater. La feltet stå tomt for å sortere etter relevans og vurdering. | |
sortDir | En liste med instruksjoner for sortering av resultatene, atskilt med komma. Må samsvare med antall elementer i sortBy-parameteren. | DESC |
noResultsTpl | Del som skal brukes hvis søkeresultatene ikke blir funnet. |
1. Enkelt søk
2. Vi løser ulike problemer med kodinger m.m.
Gå til core/components/simplesearch/model/simplesearch/simplesearch.class.php og erstatt følgende linjer i den:
linje 297:
$text = preg_replace("/(\[\[\+.*?\]\])/i", "", $tekst);
Erstatt med
$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);
linje 311:
$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));
Erstatt med
$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));
linje 413:
$string = preg_replace("/" . $quoteValue . "/i", "$0", $string);
Erstatt med
$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);
La oss kommentere linje 179:
If (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));
de. det skal se slik ut
/*if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); */
3. Lag kopier av alle standardbiter som er plassert i katalogen core/components/simplesearch/elements/chunks/
Vi lager nye biter med de samme navnene og prefikset -new, og det samme innholdet (bare de er ikke lenger filbaserte, men vanlige), som du vil forstå alt dette nærmere for.
For eksempel tar vi den første delen currentpagelink.chunk.tpl og lager en ny del currentpagelink-new (elementer – lag en ny del) og overfører koden til den.
[[+tekst]]
Ansvarlig for å kontrollere knappen i paginering for den aktive siden.
Og på samme måte lager vi de gjenværende bitene:
— sidelink-new — er ansvarlig for å vise en egen pagineringsknapp.
[[+tekst]]
- [[+lenke]] - lenke til dokumentet
- [[+tekst]] - dokumentnummer
— søkeskjema-nytt — søkeskjema
[[%sisea.search? &namespace=`sisea` &topic=`default`]]
- søkeresultater kan ikke overføres - det er ingen design der;
— searchresult-new — utdata for hvert resultatelement.
[[+idx]]. [[+sidetittel]]
[[+trekk ut]]
- [[+idx]] - søkeresultatnummer i listen
- [[+link:is=``:then=`[[~[[+id]]]]`:else=`[[+link]]`]]
- [[+longtitle]] - utvidet tittel
- [[+sidetittel]] - tittel
- [[+ekstrakt]] - teksten som dette dokumentet ble funnet med
- searchresultli - faktisk kan det heller ikke overføres.
- searchresults-new - wrapper av alle resultater
[[+resultInfo]]
[[+paging]] [[+resultater]] [[%sisea.result_pages? &namespace=`sisea` &topic=`default`]][[+paging]]- [[+resultInfo]] - informasjon om antall dokumenter funnet og for hvilken setning.
- [[+sisea.result_pages? &namespace=`sisea` &topic=`default`]]
Viser uttrykket «Søkeresultatsider:»
- [[+paging]] - paginering
- [[+resultater]] - søkeresultater
Etter alt dette bør du ha 5 nye biter.
4. Opprett et nytt dokument der søkeresultatene skal vises
Tittel: Søkeresultater, merk av for «Ikke vis i menyen». Gå til "Innstillinger" og fjern merket for "Søkbar" og "Bruk HTML-editor". Lagre. Vi oppdaterer siden og legger den til innholdet
[[!SimpleSearch? &tpl=`searchresult-new` &containerTpl=`searchresults-new` &pageTpl=`pagelink-new` ¤tPageTpl=`currentpagelink-new`]]
designbiter som ble laget i trinn 3 (utseende).
Hvis du vil at søkeresultatene skal inkludere bilder, legger du dem til på slutten av denne utgangen
&includeTVs=`1` &processTVs=`1`
I søkeresultatbiten kan bildet kalles slik: [[+img]].
5. Vis søkeskjemaet
På stedet der du må vise søkeskjemaet, skriv
[[!SimpleSearchForm? &landing=`11` &tpl=`searchform-new`]]
Her er landing ID-en til siden med søkeresultater, i tpl er formdesignbitene som ble opprettet i trinn 3.
Vi gjorde trinn 4 og 5 slik at du kunne redigere det eksterne designet etter eget skjønn: selve skjemaet, søkeresultater osv. uten å komme inn i kildene. Og standarddesignet er ganske trist; for eksempel er det slik standardsøkeskjemaet ser ut.
6. Vi endrer designet.
Jeg ser ikke noe poeng i å beskrive hvordan man designer alle bitene; som et eksempel vil jeg gi et nytt design for søkeskjemaet-ny del
Dette er det vanlige standardskjemaet fra Bootstrap 3, på nettstedet ser det slik ut:
Offisiell dokumentasjon her: docs.modx.com/extras/revo/simplesearch
Hvis du har spørsmål, skriv og still dem i kommentarene.
I dag er en leksjon om hvordan du implementerer nettstedsøk i Modx Revolution ved å bruke SimpleSearch-komponenten.
Hovedkodebitparametere:
tpl | Den delen som brukes til å vise innholdet i hvert søkeresultat. | Søkeresultat |
containerTpl | En blokk som brukes til å bryte søkeresultater, paginering og innlegg. | Søkeresultat |
useAllWords | Hvis sant, vil bare resultater med alle spesifiserte søkeord bli funnet. | 0 |
maxWords | Maksimalt antall ord som skal inkluderes i søket. Gjelder bare hvis useAllWords er deaktivert. | 7 |
minChars | Minimum antall tegn for å starte et søk. | 3 |
søkestil | For å søke ved hjelp av et "delvis" LIKE-søk eller et relevansbasert "match"-søk. | delvis |
og Vilkår | Er det nødvendig å legge til logisk OG mellom ord. | 1 |
matchWildcard | Aktiver jokertegnsøk. Sett til usann for å utføre et eksakt søk basert på søkeordet. | 1 |
docFields | Liste over individuelle dokumentfelt for å søke. | side tittel, longtitle, beskrivelse, introtekst, alias ,innhold |
feltstyrke | Evaluere og sortere resultater | |
per side | Antall søkeresultater for én side. | 10 |
showExtract | Om du vil vise et utklipp av innholdet i hvert søkeresultat. | 1 |
extractSource | Lar brukeren bestemme hvor utvinningen kommer fra. Hvis verdien av denne parameteren er navnet på et ressursfelt (inkludert TV if & includeTVs er angitt), blir det ressursfeltet brukt for uttrekket. Ellers tas parameteren som navnet på fragmentet som skal kjøres. Fragmentet sendes en rekke ressurser som parametere. Hvis dette navnet ikke har et fragment, vil utdraget være tomt. | innhold |
uttrekk Lengde | Antall tegn som skal trekkes ut fra innholdet for hvert resultat. | 200 |
ekstraktEllipsis | Strengen som brukes til å bære resultatene av ekstraksjonen. Standard er ellipse. | … |
inkluderer TVer | Angir om TemplateVar-verdier skal inkluderes i egenskapene som er tilgjengelige for hver ressursmal. Standard er 0. Aktivering av denne innstillingen kan redusere hastigheten hvis du har mange TV-er. | 0 |
prosess-TVer | Indikerer om TemplateVar-verdier skal vises slik de ville vært på en oppsummert ressurs. Standard er 0. Noen merknader: TV kan nås med TV-navnet [[+ myTV]] Som standard bruker SimpleSearch ikke et prefiks, for eksempel vil [[+ tv.myTV]] IKKE vises. TV-er behandles under indeksering for Solr-søk, så det er ikke nødvendig å gjøre det her. | 0 |
fremheve resultater | Velg eller utelat søket i resultatene. | 1 |
highlightClass | Navnet på CSS-klassen som skal legges til de uthevede betingelsene i resultatene. | sisea-høydepunkt |
highlightTag | En html-tag for å pakke inn det uthevede ordet i søkeresultatene. | span |
sideTpl | Den delen som brukes til å lenke til sider. | Sidekobling |
gjeldende SideTpl | Blokken som brukes for gjeldende lenke på siden. | CurrentPageLink |
sideseparator | Separator (separator) for bruk mellom sidelenker. | | |
ids | Liste over dokument-ID-er, atskilt med komma, for å begrense søket | |
idType | Begrensningstypen for ids-parameteren. Hvis foreldre, vil alle identifikasjonselementer bli lagt til ids-parameteren for søket. Hvis dokumenter, vil kun de angitte identifikatorene bli brukt i søket. | foreldre |
utelukke | Liste over ressursidentifikatorer, atskilt med kommaer, for eksempel å ekskludere fra søket. "10,15,19." Dette ekskluderer ressurser med ID-er på "10", "15" eller "19". | |
dybde | Hvis idtype er satt til overordnet, dybden ned i ressurstreet som vil bli søkt med de angitte identifikatorene. | 10 |
skjul Meny | Må jeg returnere ressurser som har hidemenu. 0 viser bare synlige ressurser, 1 viser bare skjulte ressurser, 2 viser begge. | 2 |
sammenhenger | Søk kontekster. Standard er å bruke gjeldende kontekst hvis ingen er spesifisert eksplisitt. | |
søkeindeks | Navnet på REQUEST-parameteren som skal brukes av søket. | Søk |
offsetIndex | Navnet på REQUEST-parameteren som brukes til å forskyve siden. | sisea_offset |
plassholderprefiks | Prefiks for globale plassholdere, gitt av kodebiten. | sisea. |
til Plassholder | Om du skal sette utdataene til å returnere direkte eller settes til en plassholder med navnet på denne egenskapen. | |
urlScheme | Nødvendig URL-skjema: http, https, full, abs, relativ, etc. Se dokumentasjonen for $modx->makeUrl(). Dette brukes når pagineringslenker genereres. | |
tilpassede pakker | Sett til å søke etter egendefinerte tabeller ved å laste ned pakken deres. Se nedenfor for detaljer. | |
postHooks | En kommadelt liste over kroker å kjøre som kan legge til fasetterte sett til de endelige resultatene. | |
activeFacet | Gjeldende aktiv kant. La dette være hvis du ikke vil at resultatet skal vises fra et ikke-standard aspekt mottatt via postHook. | misligholde |
facetLimit | Antall ikke-aktive fasetresultater som skal vises på hovedresultatsiden. | 5 |
Sorter etter | Liste over ressursfelt, atskilt med komma, for sortering av resultater. La feltet stå tomt for å sortere etter relevans og vurdering. | |
sortDir | En liste med instruksjoner for sortering av resultatene, atskilt med komma. Må samsvare med antall elementer i sortBy-parameteren. | DESC |
noResultsTpl | Del som skal brukes hvis søkeresultatene ikke blir funnet. |
1. Enkelt søk
2. Vi løser ulike problemer med kodinger m.m.
Gå til core/components/simplesearch/model/simplesearch/simplesearch.class.php og erstatt følgende linjer i den:
linje 297:
$text = preg_replace("/(\[\[\+.*?\]\])/i", "", $tekst);
Erstatt med
$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);
linje 311:
$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));
Erstatt med
$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));
linje 413:
$string = preg_replace("/" . $quoteValue . "/i", "$0", $string);
Erstatt med
$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);
La oss kommentere linje 179:
If (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));
de. det skal se slik ut
/*if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); */
3. Lag kopier av alle standardbiter som er plassert i katalogen core/components/simplesearch/elements/chunks/
Vi lager nye biter med de samme navnene og prefikset -new, og det samme innholdet (bare de er ikke lenger filbaserte, men vanlige), som du vil forstå alt dette nærmere for.
For eksempel tar vi den første delen currentpagelink.chunk.tpl og lager en ny del currentpagelink-new (elementer – lag en ny del) og overfører koden til den.
[[+tekst]]
Ansvarlig for å kontrollere knappen i paginering for den aktive siden.
Og på samme måte lager vi de gjenværende bitene:
— sidelink-new — er ansvarlig for å vise en egen pagineringsknapp.
[[+tekst]]
- [[+lenke]] - lenke til dokumentet
- [[+tekst]] - dokumentnummer
— søkeskjema-nytt — søkeskjema
[[%sisea.search? &namespace=`sisea` &topic=`default`]]
- søkeresultater kan ikke overføres - det er ingen design der;
— searchresult-new — utdata for hvert resultatelement.
[[+idx]]. [[+sidetittel]]
[[+trekk ut]]
- [[+idx]] - søkeresultatnummer i listen
- [[+link:is=``:then=`[[~[[+id]]]]`:else=`[[+link]]`]]
- [[+longtitle]] - utvidet tittel
- [[+sidetittel]] - tittel
- [[+ekstrakt]] - teksten som dette dokumentet ble funnet med
- searchresultli - faktisk kan det heller ikke overføres.
- searchresults-new - wrapper av alle resultater
[[+resultInfo]]
[[+paging]] [[+resultater]] [[%sisea.result_pages? &namespace=`sisea` &topic=`default`]][[+paging]]- [[+resultInfo]] - informasjon om antall dokumenter funnet og for hvilken setning.
- [[+sisea.result_pages? &namespace=`sisea` &topic=`default`]]
Viser uttrykket «Søkeresultatsider:»
- [[+paging]] - paginering
- [[+resultater]] - søkeresultater
Etter alt dette bør du ha 5 nye biter.
4. Opprett et nytt dokument der søkeresultatene skal vises
Tittel: Søkeresultater, merk av for «Ikke vis i menyen». Gå til "Innstillinger" og fjern merket for "Søkbar" og "Bruk HTML-editor". Lagre. Vi oppdaterer siden og legger den til innholdet
[[!SimpleSearch? &tpl=`searchresult-new` &containerTpl=`searchresults-new` &pageTpl=`pagelink-new` ¤tPageTpl=`currentpagelink-new`]]
designbiter som ble laget i trinn 3 (utseende).
Hvis du vil at søkeresultatene skal inkludere bilder, legger du dem til på slutten av denne utgangen
&includeTVs=`1` &processTVs=`1`
I søkeresultatbiten kan bildet kalles slik: [[+img]].
5. Vis søkeskjemaet
På stedet der du må vise søkeskjemaet, skriv
[[!SimpleSearchForm? &landing=`11` &tpl=`searchform-new`]]
Her er landing ID-en til siden med søkeresultater, i tpl er formdesignbitene som ble opprettet i trinn 3.
Vi gjorde trinn 4 og 5 slik at du kunne redigere det eksterne designet etter eget skjønn: selve skjemaet, søkeresultater osv. uten å komme inn i kildene. Og standarddesignet er ganske trist; for eksempel er det slik standardsøkeskjemaet ser ut.
6. Vi endrer designet.
Jeg ser ikke noe poeng i å beskrive hvordan man designer alle bitene; som et eksempel vil jeg gi et nytt design for søkeskjemaet-ny del
Dette er det vanlige standardskjemaet fra Bootstrap 3, på nettstedet ser det slik ut:
Offisiell dokumentasjon her: docs.modx.com/extras/revo/simplesearch
Hvis du har spørsmål, skriv og still dem i kommentarene.
Hei, kjære venner og kolleger! Jeg vil gjerne introdusere deg for en utmerket pakke for organisering av nettstedsøk under Modx Revolution-systemet - SimpleSearch. Jeg vil forklare deg trinn for trinn hvordan du installerer denne pakken på nettstedet og organiserer søk på nettstedet. Så la oss komme i gang:
1. Gå først til "System" - "Pakkebehandling" 2. Klikk på knappen "Last ned tillegg". 3. Skriv inn i søkefeltet - SimpleSearch, trykk "Enter" og klikk på "Last ned"-knappen 4. Pakken vil bli lastet ned 5. Klikk "Administrer pakker" 6. Og klikk på "installer"-knappen ved siden av SimpleSearch vi lastet nedKlikk "Fortsett" og deretter "OK"
7. Opprett en ny ressurs ved roten av treetTittel: Søkeresultater, merk av for «Ikke vis i menyen». Klikk på "Innstillinger"-fanen og fjern merket for "Søkbar" og "Bruk HTML-editor". Ikke glem å lagre ressursen.
8. Gå deretter til den nyopprettede ressursen og skriv inn [[!SimpleSearch]] i feltet "Ressursinnhold" 9. Husk IDen til denne ressursen, dette er siden for å vise søkeresultaterI malen der selve søkeskjemaet er plassert, sett inn følgende kode:
[[!SimpleSearchForm? &landing=`1` &tpl=`søk`]]
hvor landing er IDen til siden for visning av søkeresultater, og søkedelen er ansvarlig for selve søkeskjemaet, som vi nå skal lage
10. Kopier deretter følgende kodeDette er innholdet i filen core/components/simplesearch/elements/chunks/searchform.chunk.tpl:
[[%sisea.search? &namespace=`sisea` &topic=`default`]]
inn i en ny del kalt søk og lag visningsmalen for søkevinduet som vi trenger.
11. Deretter løser vi problemer med kodingFinn filen core/components/simplesearch/model/simplesearch/simplesearch.class.php og erstatt linjen i den
$text = trim(preg_replace("/\s+/", " ", $this->sanitize($text)));
$text = trim(preg_replace("/\s+/u", " ", $this->sanitize($text)));
12. Erstatt deretter strengen $string = preg_replace("/" . $quoteValue . "/i", "$0", $string);$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);
13. Vi erstatter også linjen $text = preg_replace("/(\[\[\+.*?\]\])/i", "", $text);$text = preg_replace("/(\[\[\+.*?\]\])/iu", "", $text);
14. Og til slutt, du må kommentere linjen hvis (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); Grunnleggende SimpleSearch-biterSøket på nettstedet som kjører Modx Revolution er klart. Det fungerer, kan du se selv, men det er noen flere punkter som vil komme godt med når du arbeider med denne kodebiten. Nemlig redigering av biter av søkeresultater, innpakning, paginering og så videre. Først må du forstå at alle biter i .tpl-format er plassert i denne banen: core/components/simplesearch/elements/chunks/. Vel, for å gjøre det lettere å jobbe med dem, vil vi vise hoveddelene i Modx-administrasjonsområdet. Her er deres parametere
- containerTpl
- sideTpl
- gjeldende SideTpl
Vel, vi vil kalle bitene selv hva vi vil.
tpl-parameter - SimpleSearchResult-bittpl-parameteren er ansvarlig for å vise hvert enkelt søkeresultatelement. La oss lage en del og kalle det SimpleSearchResult. La oss kopiere koden fra filen core/components/simplesearch/elements/chunks/searchresult.chunk.tpl inn i den:
[[+idx]].