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.

Bruk

Bare plasser kodebiten i ressursen du vil vise søkeresultater i.

[[!SimpleSearch]]

Tilgjengelige egenskaper Navn Beskrivelse Standard
tpl 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.
SimpleSearch-biter

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øke etter egendefinerte tabeller

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:

Navn Beskrivelse Standard
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.
Implementering av søk på MODX nettside

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:

Navn Beskrivelse Standard
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.
Implementering av søk på MODX nettside

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 ned

Klikk "Fortsett" og deretter "OK"

7. Opprett en ny ressurs ved roten av treet

Tittel: 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økeresultater

I 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 kode

Dette 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 koding

Finn 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-biter

Sø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-bit

tpl-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]].