Skriv SimpleSearch i søgefeltet, tryk på "Enter" og klik på knappen "Download".

Dette uddrag viser søgeresultater baseret på de sendte søgekriterier.

Brug

Du skal blot placere kodestykket i den ressource, du gerne vil have vist søgeresultater i.

[[!SimpleSearch]]

Tilgængelige egenskaber Navn Beskrivelse Standard
tpl Den del, der vil blive brugt til at vise indholdet af hvert søgeresultat. Søgeresultat
containerTpl Den del, der vil blive brugt til at pakke alle søgeresultater, paginering og besked. Søgeresultater
useAllWords Hvis det er sandt, finder du kun resultater med alle de angivne søgeord. 0
maxWords Det maksimale antal ord, der skal inkluderes i søgningen. Gælder kun, hvis useAllWords er slået fra. 7
minChars Minimumsantallet af tegn for at udløse søgningen. 3
søgestil At søge enten med en "delvis" LIKE-søgning eller en relevansbaseret "match"-søgning. delvis
og Vilkår Hvorvidt der skal tilføjes en logisk OG mellem ord. 1
matchWildcard Aktiver jokertegnssøgning. Indstil til falsk for at udføre nøjagtig søgning på et søgeord. 1
docFields En kommasepareret liste over specifikke ressourcefelter, der skal søges i. sidetitel, lang titel, alias, beskrivelse, introtekst, indhold
feltstyrke Score og sorter resultaterne (se https://github.com/splittingred/SimpleSearch/pull/29 for mere info/brug)
per Side Antallet af søgeresultater, der skal vises pr. side. 10
showExtract Hvorvidt der skal vises et uddrag af indholdet af hvert søgeresultat. 1
ekstraher Kilde (nyt i version 1.9) Giver brugeren mulighed for at definere, hvor uddraget kommer fra. Hvis værdien af ​​denne parameter er et ressourcefeltnavn (inklusive tv'er, hvis &includeTVs er indstillet), så bruges det ressourcefelt til udtrækket. Ellers tages parameteren som navnet på en Snippet, der skal køres. Snippet sendes ressourcearrayet som parametre. Hvis der ikke er noget uddrag med det navn, vil uddraget være tomt. indhold
udtræk Længde Antallet af tegn for indholdsudtrækningen af ​​hvert søgeresultat. 200
ekstraktEllipsis Den streng, der bruges til at ombryde ekstraktresultater med. Som standard er en ellipse. ...
omfatter tv Angiver, om TemplateVar-værdier skal inkluderes i de egenskaber, der er tilgængelige for hver ressourceskabelon. Standard er 0. Aktivering af dette kan gøre din søgning langsommere, hvis du har mange tv'er. 0
inkludere TVList En valgfri kommasepareret liste over TemplateVar-navne, der skal inkluderes eksplicit, hvis includeTVs er 1.
proces-tv Angiver, om TemplateVar-værdier skal gengives, som de ville på den ressource, der opsummeres. Standard til 0. Nogle bemærkninger:
Tv'er kan tilgås ved deres tv-navn [[+myTV]] Som standard bruger SimpleSearch ikke et præfiks, f.eks. [[+tv.myTV]] gengives IKKE. TV'er behandles under indeksering til Solr-søgning, så det er ikke nødvendigt at gøre dette her.
0
fremhæve Resultater Om søgetermen skal fremhæves i resultaterne eller ej. 1
highlightKlasse CSS-klassenavnet, der skal føjes til fremhævede termer i resultaterne. simplesearch-highlight
highlightTag HTML-tagget til at indpakke det fremhævede udtryk med i søgeresultaterne. span
sideTpl Den del, der skal bruges til et pagineringslink. Sidelink
nuværende SideTpl Den del, der skal bruges til det aktuelle pagineringslink. CurrentPageLink
pageSeparator Separatoren, der skal bruges mellem pagineringslinks.
ids En kommasepareret liste over ID'er at begrænse søgningen til.
idType Typen af ​​begrænsning for ids-parameteren. Hvis forældre, vil tilføje alle børnene af ID'erne i ids-parameteren til søgningen. Hvis dokumenter, vil kun bruge de angivne ID'er i søgningen. forældre
udelukke En kommasepareret liste over ressource-id'er, der skal udelukkes fra søgning, f.eks. "10,15,19". Dette vil udelukke ressourcer med ID "10", "15" eller "19".
dybde Hvis idtype er indstillet til forældre, dybden ned i ressourcetræet, der vil blive søgt med de angivne id'er. 10
skjul Menu Hvorvidt der skal returneres ressourcer, der har hidemenu på. 0 viser kun synlige ressourcer, 1 viser kun skjulte ressourcer, 2 viser begge. 2
sammenhænge Konteksterne at søge. Standard til den aktuelle kontekst, hvis ingen er eksplicit angivet.
søgeindeks Navnet på parameteren REQUEST, som søgningen vil bruge. Søg
offsetIndex Navnet på parameteren REQUEST, der skal bruges til pagineringsforskydningen. simplesearch_offset
pladsholderpræfiks Præfikset for globale pladsholdere angivet af dette uddrag. simpel søgning.
til Pladsholder Om outputtet skal indstilles til at returnere direkte eller indstilles til en pladsholder med denne egenskabsnavn.
urlScheme Det URL-skema, du ønsker: http, https, fuld, abs, relativ osv. Se $modx->makeUrl() dokumentationen. Dette bruges, når pagineringslinkene genereres.
tilpassede pakker Indstil til at søge efter tilpassede tabeller ved at indlæse deres pakke. Se nedenfor for flere detaljer.
postHooks En kommasepareret liste over kroge, der skal køres, der kan tilføje facetterede sæt til slutresultaterne.
activeFacet Den aktuelle aktive facet. Lad dette være, medmindre du ønsker, at et resultat skal vises fra en ikke-standard facet afledt gennem en postHook. Standard
facetgrænse Antallet af ikke-aktive facetresultater, der skal vises på hovedresultatsiden. 5
Sorter efter En kommasepareret liste over ressourcefelter til at sortere resultaterne efter. Lad stå tomt for at sortere efter relevans og score.
sortDir En kommasepareret liste over anvisninger til at sortere resultaterne efter. Skal matche antallet af elementer i sortBy-parameteren. DESC
ingen ResultaterTpl Den del, der skal bruges, når der ikke findes nogen søgeresultater.
SimpleSearch Chunks

Der er 4 bidder, der behandles i SimpleSearch. Deres tilsvarende SimpleSearch-parametre er:

  • tpl - Den del, der skal bruges for hvert viste resultat.
  • containerTpl - Den del, der vil blive brugt til at pakke alle søgeresultater, paginering og besked.
  • pageTpl - Den del, der skal bruges til et pagineringslink.
  • currentPageTpl - Den del, der skal bruges til det aktuelle sideinddelingslink.
Søgning efter tilpassede tabeller

Søgning efter tilpassede tabeller er tilgængelig i SimpleSearch ved hjælp af &customPackages-egenskaben; dog skal du have en tilpasset pakke bygget til det. Formatet er:

Klassenavn:feltnavn(e):pakkenavn:pakkesti:joinCriteria||klasse2navn:feltnavn(e):pakke2navn:pakke2sti:join2Criteria

Med andre ord er hver brugerdefineret pakke adskilt af ||. Derefter er hver del af den adskilt af kolon (:). Et eksempel på at søge efter Quip-kommentarer:

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

Lad os nedbryde hver del:

  • className - Klassenavnet på den tabel, du vil søge efter. Her er det QuipComment.
  • fieldName(s) - En kommasepareret liste over kolonnenavne, der skal søges i. Vi lavede "body", du kunne også have lavet "body,email" eller hvad som helst.
  • packageName - Navnet på skemaet Pakke, der skal tilføjes. Denne kaldes quip.
  • packagePath - Stien til den model/mappe, hvor pakken er placeret.
  • joinCriteria - SQL'en til at forbinde den tabel, du vil søge i, og modResource-tabellen. Din tabel skal have en eller anden forbindelse til den ressource, den er på (ellers ved SimpleSearch ikke, hvordan man indlæser en URL til den!)

Når du har tilføjet det, vil det også søge i disse felter for data. Hvis det finder det i denne tabel, vil det vise resultatet som et link til den ressource, du har angivet i dine joinCriteria. I vores eksempel ville det være ressource Quip-kommentaren er placeret på.

SimpleSearch er en standardpakke til webstedssøgning i modx revolution. Vi vil tilføje en ajax-anmodning til den til live-søgning. Et eksempel kan ses på samme side; det fungerer ganske enkelt og vel at mærke med paginering. SimpleSearchForm-uddraget (søgeformular) anmoder om en ajax-anmodning fra en separat resultatside, som viser SimpleSearch-uddraget.

1 Download den populære SimpleSearch-sidesøgningspakke fra modx revo-lageret og installer det.
Vi opretter en ressource med en tom skabelon til ajax til at indsamle data og sende dem, når vi laver forespørgsler i søgeformularen.
Lad os for eksempel kalde aliaset "søgeresultater", og det vil blive tilgået af ajax.
Ressourceindhold:

søgeresultater if(typeof jQuery !== undefined) ( $(document).ready(function() ( $(".sisea-page a").click(function(event) ( // pagination event.preventDefault(); // Forhindrer browseren i at navigere gennem sider // Indlæser den næste søgeside og viser containeren $("#site-search-results").load($(this).attr("href")).show() ; return false; // stub )); )); ) [[!SimpleSearch]]

2 Lad os nu placere søgeformularen på et sted, der er praktisk for dig, kodestykket "SimpleSearchForm" er ansvarlig for dette.
Som regel er søgeformularen skubbet ind i modx-skabeloner.
div-elementet viser resultaterne af ajax-anmodningen.

[[!SimpleSearchForm]]

3 Lad os forbinde ajax for at sende anmodninger fra formularen til den side, vi oprettede i trin 1.
(!) Glem ikke at forbinde jquery
(!) Sørg for, på hvilken adresse ajax får adgang til ressourcen. load() metoden er ansvarlig for dette 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("hurtig"); return false; )); // Livesøgning $(".sisea-search-form input").keyup(function() ( if(this.value.length > 2) ( // Bruger indtaster mere end 2 tegn i søgestrengen // skjuler/viser resultater uden for vinduet $(document).click(function(event)( // hide if ($(event.target).closest(".site-search-results").length) return; $(".site-search -results" ).slideUp("hurtigt"); //event.stopPropagation(); )); $("#search").click(function() ( // display $(".site-search-results" ).slideDown ("hurtig"); return false; )); // ajax anmodning om at indlæse søgeresultater fra siden og vise containeren $("#site-search-results").load("/search-results/" ,$(". sisea-search-form").serialize()).slideDown("fast"); ) else ( // Hvis der indtastes mindre end 2 tegn, skjul beholderen (CSS display:none;) $( "#site-search-results" ).slideUp("hurtigt"); ) )); ));

4 Vi forbinder css for at vise resultaterne af ajax-effekten ved at skjule og afsløre vinduet og dets nødvendige visningsstile, alt sammen til et minimum. Gennemfør resten af ​​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øgeknappen i SimpleSearchForm-kodestykket kan fjernes helt
da ajax allerede opsnapper ved at trykke på Enter-knappen.

I dag er en lektion om, hvordan man implementerer webstedssøgning i Modx Revolution ved hjælp af SimpleSearch-komponenten.

Grundlæggende kodestykkeparametre:

Navn Beskrivelse Standard
tpl Den del, der bruges til at vise indholdet af hvert søgeresultat. Søgeresultat
containerTpl En blok, der bruges til at ombryde søgeresultater, paginering og indlæg. Søgeresultat
useAllWords Hvis det er sandt, vil kun resultater med alle angivne søgeord blive fundet. 0
maxWords Det maksimale antal ord, der skal inkluderes i søgningen. Kun gældende, hvis useAllWords er deaktiveret. 7
minChars Minimum antal tegn for at starte en søgning. 3
søgestil At søge ved at bruge en "delvis" LIKE-søgning eller en relevansbaseret "match"-søgning. delvis
og Vilkår Er det nødvendigt at tilføje logisk OG mellem ord. 1
matchWildcard Aktiver jokertegnssøgning. Indstil til falsk for at udføre en nøjagtig søgning baseret på søgetermen. 1
docFields Liste over individuelle dokumentfelter, der skal søges i. sidetitel,
lang titel,
beskrivelse,
introtekst,
alias
,indhold
feltstyrke Evaluering og sortering af resultater
per Side Antal søgeresultater for én side. 10
showExtract Om der skal vises en udskæring af indholdet af hvert søgeresultat. 1
ekstraher Kilde Giver brugeren mulighed for at bestemme, hvor ekstraktionen kommer fra. Hvis værdien af ​​denne parameter er navnet på et ressourcefelt (inklusive TV if & includeTVs er indstillet), så bruges det ressourcefelt til udtrækket. Ellers tages parameteren som navnet på det fragment, der skal udføres. Fragmentet videregives en række ressourcer som parametre. Hvis dette navn ikke har et fragment, vil uddraget være tomt. indhold
udtræk Længde Antallet af tegn, der skal udtrækkes fra indholdet for hvert resultat. 200
ekstraktEllipsis Den streng, der bruges til at bære resultaterne af ekstraktionen. Standard er ellipse.
omfatter tv Angiver, om TemplateVar-værdier skal inkluderes i de tilgængelige egenskaber for hver ressourceskabelon. Standard er 0. Aktivering af denne indstilling kan gøre tingene langsommere, hvis du har mange tv'er. 0
proces-tv'er Angiver, om TemplateVar-værdier skal vises, som de ville være på en opsummeret ressource. Standard er 0. Nogle bemærkninger: TV kan tilgås ved dets tv-navn [[+ myTV]] Som standard bruger SimpleSearch ikke et præfiks, for eksempel vil [[+ tv.myTV]] IKKE blive vist.
TV'er behandles under indeksering til Solr-søgning, så det er ikke nødvendigt at gøre det her.
0
fremhæve Resultater Vælg eller udelad søgeforespørgslen i resultaterne. 1
highlightKlasse Navnet på den CSS-klasse, der skal tilføjes til de fremhævede betingelser i resultaterne. sisea-højdepunkt
highlightTag Et html-tag til at indpakke det fremhævede udtryk i søgeresultaterne. span
sideTpl Den del, der bruges til at linke til sider. Sidelink
nuværende SideTpl Blokken, der bruges til det aktuelle link på siden. CurrentPageLink
pageSeparator Separator (separator) til brug mellem sidelinks. |
ids Liste over dokument-id'er, adskilt af kommaer, for at begrænse søgningen
idType Typen af ​​begrænsning for ids-parameteren. Hvis forældre, så vil alle identifikationselementer blive tilføjet til ids-parameteren for søgningen. Hvis dokumenter, vil kun de angivne identifikatorer blive brugt i søgningen. forældre
udelukke Liste over ressourceidentifikatorer, adskilt af kommaer, der f.eks. skal udelukkes fra søgningen. "10,15,19." Dette udelukker ressourcer med ID'er på "10", "15" eller "19".
dybde Hvis idtype er indstillet til overordnet, dybden ned i ressourcetræet, der vil blive søgt med de angivne identifikatorer. 10
skjul Menu Behøver jeg at returnere ressourcer, der har hidemenu. 0 viser kun synlige ressourcer, 1 viser kun skjulte ressourcer, 2 viser begge. 2
sammenhænge Søg kontekster. Standarden er at bruge den aktuelle kontekst, hvis ingen er angivet eksplicit.
søgeindeks Navnet på parameteren REQUEST, der vil blive brugt af søgningen. Søg
offsetIndex Navnet på parameteren REQUEST, der bruges til at forskyde siden. sisea_offset
pladsholderpræfiks Præfiks for globale pladsholdere, givet af kodestykket. sisea.
til Pladsholder Om outputtet skal indstilles til at returnere direkte eller indstilles til en pladsholder med navnet på denne egenskab.
urlScheme Påkrævet URL-skema: http, https, fuld, abs, relativ osv. Se $modx->makeUrl() dokumentation. Dette bruges, når pagineringslinks genereres.
tilpassede pakker Indstil til at søge efter tilpassede tabeller ved at downloade deres pakke. Se nedenfor for detaljer.
postHooks En kommasepareret liste over hooks til at køre, der kan tilføje facetterede sæt til de endelige resultater.
activeFacet Aktuel aktiv kant. Lad dette være, hvis du ikke ønsker, at resultatet skal vises fra et ikke-standard aspekt modtaget via postHook. Standard
facetgrænse Antallet af ikke-aktive facetresultater, der skal vises på hovedresultatsiden. 5
Sorter efter Liste over ressourcefelter, adskilt af kommaer, til sortering af resultater. Lad feltet stå tomt for at sortere efter relevans og vurdering.
sortDir En liste med instruktioner til sortering af resultaterne, adskilt af kommaer. Skal matche antallet af elementer i sortBy-parameteren. DESC
ingen ResultaterTpl Klump til brug, hvis søgeresultaterne ikke findes.
Implementering af søgning på MODX hjemmeside

1. SimpleSearch

2. Vi løser forskellige problemer med indkodninger mv.

Gå til core/components/simplesearch/model/simplesearch/simplesearch.class.php og erstat følgende linjer i den:

linje 297:

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

Erstat med

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

linje 311:

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

Erstat med

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

linje 413:

$string = preg_replace("/" . $quoteValue . "/i", "$0", $string);

Erstat med

$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);

Lad os kommentere linje 179:

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

de der. det skal se sådan ud

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

3. Lav kopier af alle standard chunks, der er placeret i mappen core/components/simplesearch/elements/chunks/

Vi opretter nye bidder med de samme navne og præfikset -ny, og det samme indhold (kun de er ikke længere fil-baserede, men almindelige), som du vil forstå alt dette nærmere.

For eksempel tager vi den første chunk currentpagelink.chunk.tpl og opretter en ny chunk currentpagelink-new (elementer - opret en ny chunk) og overfører koden til den.

[[+tekst]]

Ansvarlig for at kontrollere knappen i paginering for den aktive side.

Og på samme måde skaber vi de resterende bidder:

— sidelink-new — er ansvarlig for at vise en separat pagineringsknap.

[[+tekst]]

  • [[+link]] - link til dokument
  • [[+tekst]] - dokumentnummer

— søgeform-ny — søgeform

[[%sisea.search? &namespace=`sisea` &topic=`default`]]

- søgeresultater kan ikke overføres - der er intet design der;

— searchresult-new — output af hvert resultatelement.

[[+idx]]. [[+sidetitel]]

[[+uddrag]]

  • [[+idx]] - søgeresultatnummer på listen
  • [[+link:is=``:then=`[[~[[+id]]]]`:else=`[[+link]]`]]
  • [[+longtitle]] - udvidet titel
  • [[+sidetitel]] - titel
  • [[+uddrag]] - den tekst, som dette dokument blev fundet med

- searchresultli - faktisk kan det heller ikke overføres.

- searchresults-new - indpakning af alle resultater

[[+resultInfo]]

[[+paging]] [[+resultater]] [[%sisea.result_pages? &namespace=`sisea` &topic=`default`]][[+paging]]

  • [[+resultInfo]] - oplysninger om antallet af fundne dokumenter og for hvilken sætning.
  • [[+sisea.result_pages? &namespace=`sisea` &topic=`default`]]

    Viser sætningen "Søgeresultatsider:"

  • [[+paging]] - paginering
  • [[+resultater]] - søgeresultater

Efter alt dette skulle du have 5 nye bidder.

4. Opret et nyt dokument, hvor søgeresultaterne vil blive vist

Titel: Søgeresultater, marker afkrydsningsfeltet "Vis ikke i menuen". Gå til "Indstillinger", og fjern markeringen i afkrydsningsfelterne "Søgbar" og "Brug HTML-editor". Gemme. Vi opdaterer siden og tilføjer den til indholdet

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

design bidder, der blev oprettet i trin 3 (udseende).

Hvis du ønsker, at søgeresultaterne skal inkludere billeder, skal du tilføje dem i slutningen af ​​dette output

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

I søgeresultatklumpen kan billedet kaldes sådan: [[+img]].

5. Vis søgeformularen

Skriv på det sted, hvor du skal vise søgeformularen

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

Her er landing id'et for siden med søgeresultater, i tpl er formdesignstykkerne, der blev oprettet i trin 3.

Vi udførte trin 4 og 5, så du kunne redigere det eksterne design efter eget skøn: selve formularen, søgeresultater osv. uden at komme ind i kilderne. Og standarddesignet er ret trist; for eksempel ser standardsøgningsformen sådan ud.

6. Vi ændrer designet.

Jeg kan ikke se nogen mening i at beskrive, hvordan man designer alle chunks; som et eksempel vil jeg give et nyt design til searchform-new chunk

Dette er den sædvanlige standardformularmarkering fra Bootstrap 3, på webstedet ser det sådan ud:

Officiel dokumentation her: docs.modx.com/extras/revo/simplesearch

Hvis du har spørgsmål, så skriv og stil dem i kommentarerne.

I dag er en lektion om, hvordan man implementerer webstedssøgning i Modx Revolution ved hjælp af SimpleSearch-komponenten.

Grundlæggende kodestykkeparametre:

Navn Beskrivelse Standard
tpl Den del, der bruges til at vise indholdet af hvert søgeresultat. Søgeresultat
containerTpl En blok, der bruges til at ombryde søgeresultater, paginering og indlæg. Søgeresultat
useAllWords Hvis det er sandt, vil kun resultater med alle angivne søgeord blive fundet. 0
maxWords Det maksimale antal ord, der skal inkluderes i søgningen. Kun gældende, hvis useAllWords er deaktiveret. 7
minChars Minimum antal tegn for at starte en søgning. 3
søgestil At søge ved at bruge en "delvis" LIKE-søgning eller en relevansbaseret "match"-søgning. delvis
og Vilkår Er det nødvendigt at tilføje logisk OG mellem ord. 1
matchWildcard Aktiver jokertegnssøgning. Indstil til falsk for at udføre en nøjagtig søgning baseret på søgetermen. 1
docFields Liste over individuelle dokumentfelter, der skal søges i. sidetitel,
lang titel,
beskrivelse,
introtekst,
alias
,indhold
feltstyrke Evaluering og sortering af resultater
per Side Antal søgeresultater for én side. 10
showExtract Om der skal vises en udskæring af indholdet af hvert søgeresultat. 1
ekstraher Kilde Giver brugeren mulighed for at bestemme, hvor ekstraktionen kommer fra. Hvis værdien af ​​denne parameter er navnet på et ressourcefelt (inklusive TV if & includeTVs er indstillet), så bruges det ressourcefelt til udtrækket. Ellers tages parameteren som navnet på det fragment, der skal udføres. Fragmentet videregives en række ressourcer som parametre. Hvis dette navn ikke har et fragment, vil uddraget være tomt. indhold
udtræk Længde Antallet af tegn, der skal udtrækkes fra indholdet for hvert resultat. 200
ekstraktEllipsis Den streng, der bruges til at bære resultaterne af ekstraktionen. Standard er ellipse.
omfatter tv Angiver, om TemplateVar-værdier skal inkluderes i de tilgængelige egenskaber for hver ressourceskabelon. Standard er 0. Aktivering af denne indstilling kan gøre tingene langsommere, hvis du har mange tv'er. 0
proces-tv'er Angiver, om TemplateVar-værdier skal vises, som de ville være på en opsummeret ressource. Standard er 0. Nogle bemærkninger: TV kan tilgås ved dets tv-navn [[+ myTV]] Som standard bruger SimpleSearch ikke et præfiks, for eksempel vil [[+ tv.myTV]] IKKE blive vist.
TV'er behandles under indeksering til Solr-søgning, så det er ikke nødvendigt at gøre det her.
0
fremhæve Resultater Vælg eller udelad søgeforespørgslen i resultaterne. 1
highlightKlasse Navnet på den CSS-klasse, der skal tilføjes til de fremhævede betingelser i resultaterne. sisea-højdepunkt
highlightTag Et html-tag til at indpakke det fremhævede udtryk i søgeresultaterne. span
sideTpl Den del, der bruges til at linke til sider. Sidelink
nuværende SideTpl Blokken, der bruges til det aktuelle link på siden. CurrentPageLink
pageSeparator Separator (separator) til brug mellem sidelinks. |
ids Liste over dokument-id'er, adskilt af kommaer, for at begrænse søgningen
idType Typen af ​​begrænsning for ids-parameteren. Hvis forældre, så vil alle identifikationselementer blive tilføjet til ids-parameteren for søgningen. Hvis dokumenter, vil kun de angivne identifikatorer blive brugt i søgningen. forældre
udelukke Liste over ressourceidentifikatorer, adskilt af kommaer, der f.eks. skal udelukkes fra søgningen. "10,15,19." Dette udelukker ressourcer med ID'er på "10", "15" eller "19".
dybde Hvis idtype er indstillet til overordnet, dybden ned i ressourcetræet, der vil blive søgt med de angivne identifikatorer. 10
skjul Menu Behøver jeg at returnere ressourcer, der har hidemenu. 0 viser kun synlige ressourcer, 1 viser kun skjulte ressourcer, 2 viser begge. 2
sammenhænge Søg kontekster. Standarden er at bruge den aktuelle kontekst, hvis ingen er angivet eksplicit.
søgeindeks Navnet på parameteren REQUEST, der vil blive brugt af søgningen. Søg
offsetIndex Navnet på parameteren REQUEST, der bruges til at forskyde siden. sisea_offset
pladsholderpræfiks Præfiks for globale pladsholdere, givet af kodestykket. sisea.
til Pladsholder Om outputtet skal indstilles til at returnere direkte eller indstilles til en pladsholder med navnet på denne egenskab.
urlScheme Påkrævet URL-skema: http, https, fuld, abs, relativ osv. Se $modx->makeUrl() dokumentation. Dette bruges, når pagineringslinks genereres.
tilpassede pakker Indstil til at søge efter tilpassede tabeller ved at downloade deres pakke. Se nedenfor for detaljer.
postHooks En kommasepareret liste over hooks til at køre, der kan tilføje facetterede sæt til de endelige resultater.
activeFacet Aktuel aktiv kant. Lad dette være, hvis du ikke ønsker, at resultatet skal vises fra et ikke-standard aspekt modtaget via postHook. Standard
facetgrænse Antallet af ikke-aktive facetresultater, der skal vises på hovedresultatsiden. 5
Sorter efter Liste over ressourcefelter, adskilt af kommaer, til sortering af resultater. Lad feltet stå tomt for at sortere efter relevans og vurdering.
sortDir En liste med instruktioner til sortering af resultaterne, adskilt af kommaer. Skal matche antallet af elementer i sortBy-parameteren. DESC
ingen ResultaterTpl Klump til brug, hvis søgeresultaterne ikke findes.
Implementering af søgning på MODX hjemmeside

1. SimpleSearch

2. Vi løser forskellige problemer med indkodninger mv.

Gå til core/components/simplesearch/model/simplesearch/simplesearch.class.php og erstat følgende linjer i den:

linje 297:

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

Erstat med

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

linje 311:

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

Erstat med

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

linje 413:

$string = preg_replace("/" . $quoteValue . "/i", "$0", $string);

Erstat med

$string = preg_replace("/" . $quoteValue . "/iu", "$0", $string);

Lad os kommentere linje 179:

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

de der. det skal se sådan ud

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

3. Lav kopier af alle standard chunks, der er placeret i mappen core/components/simplesearch/elements/chunks/

Vi opretter nye bidder med de samme navne og præfikset -ny, og det samme indhold (kun de er ikke længere fil-baserede, men almindelige), som du vil forstå alt dette nærmere.

For eksempel tager vi den første chunk currentpagelink.chunk.tpl og opretter en ny chunk currentpagelink-new (elementer - opret en ny chunk) og overfører koden til den.

[[+tekst]]

Ansvarlig for at kontrollere knappen i paginering for den aktive side.

Og på samme måde skaber vi de resterende bidder:

— sidelink-new — er ansvarlig for at vise en separat pagineringsknap.

[[+tekst]]

  • [[+link]] - link til dokument
  • [[+tekst]] - dokumentnummer

— søgeform-ny — søgeform

[[%sisea.search? &namespace=`sisea` &topic=`default`]]

- søgeresultater kan ikke overføres - der er intet design der;

— searchresult-new — output af hvert resultatelement.

[[+idx]]. [[+sidetitel]]

[[+uddrag]]

  • [[+idx]] - søgeresultatnummer på listen
  • [[+link:is=``:then=`[[~[[+id]]]]`:else=`[[+link]]`]]
  • [[+longtitle]] - udvidet titel
  • [[+sidetitel]] - titel
  • [[+uddrag]] - den tekst, som dette dokument blev fundet med

- searchresultli - faktisk kan det heller ikke overføres.

- searchresults-new - indpakning af alle resultater

[[+resultInfo]]

[[+paging]] [[+resultater]] [[%sisea.result_pages? &namespace=`sisea` &topic=`default`]][[+paging]]

  • [[+resultInfo]] - oplysninger om antallet af fundne dokumenter og for hvilken sætning.
  • [[+sisea.result_pages? &namespace=`sisea` &topic=`default`]]

    Viser sætningen "Søgeresultatsider:"

  • [[+paging]] - paginering
  • [[+resultater]] - søgeresultater

Efter alt dette skulle du have 5 nye bidder.

4. Opret et nyt dokument, hvor søgeresultaterne vil blive vist

Titel: Søgeresultater, marker afkrydsningsfeltet "Vis ikke i menuen". Gå til "Indstillinger", og fjern markeringen i afkrydsningsfelterne "Søgbar" og "Brug HTML-editor". Gemme. Vi opdaterer siden og tilføjer den til indholdet

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

design bidder, der blev oprettet i trin 3 (udseende).

Hvis du ønsker, at søgeresultaterne skal inkludere billeder, skal du tilføje dem i slutningen af ​​dette output

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

I søgeresultatklumpen kan billedet kaldes sådan: [[+img]].

5. Vis søgeformularen

Skriv på det sted, hvor du skal vise søgeformularen

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

Her er landing id'et for siden med søgeresultater, i tpl er formdesignstykkerne, der blev oprettet i trin 3.

Vi udførte trin 4 og 5, så du kunne redigere det eksterne design efter eget skøn: selve formularen, søgeresultater osv. uden at komme ind i kilderne. Og standarddesignet er ret trist; for eksempel ser standardsøgningsformen sådan ud.

6. Vi ændrer designet.

Jeg kan ikke se nogen mening i at beskrive, hvordan man designer alle chunks; som et eksempel vil jeg give et nyt design til searchform-new chunk

Dette er den sædvanlige standardformularmarkering fra Bootstrap 3, på webstedet ser det sådan ud:

Officiel dokumentation her: docs.modx.com/extras/revo/simplesearch

Hvis du har spørgsmål, så skriv og stil dem i kommentarerne.

Hej kære venner og kolleger! Jeg vil gerne præsentere dig for en fremragende pakke til at organisere webstedssøgninger under Modx Revolution-systemet - SimpleSearch. Jeg vil forklare dig trin for trin, hvordan du installerer denne pakke på webstedet og organiserer søgning på webstedet. Så lad os komme i gang:

1. Gå først til "System" - "Pakkehåndtering"

2. Klik på knappen "Download tilføjelser".

3. Skriv i søgefeltet - SimpleSearch, tryk på "Enter" og klik på "Download"-knappen

4. Pakken vil blive downloadet

5. Klik på "Administrer pakker"

6. Og klik på "installer"-knappen ved siden af ​​den SimpleSearch, vi downloadede

Klik på "Fortsæt" og derefter "OK"

7. Opret en ny ressource ved roden af ​​træet

Titel: Søgeresultater, marker afkrydsningsfeltet "Vis ikke i menuen". Klik på fanen "Indstillinger", og fjern markeringen i afkrydsningsfelterne "Søgbar" og "Brug HTML-editor". Glem ikke at gemme ressourcen.

8. Gå derefter til den nyoprettede ressource og indtast [[!SimpleSearch]] i feltet "Resource Contents" 9. Husk id'et for denne ressource, dette er siden til visning af søgeresultater

Indsæt følgende kode i skabelonen, hvor selve søgeformularen er placeret:

[[!SimpleSearchForm? &landing=`1` &tpl=`søg`]]

hvor landing er ID på siden til visning af søgeresultater, og søgeklumpen er ansvarlig for selve søgeformularen, som vi nu vil oprette

10. Kopier derefter følgende kode

Dette er indholdet af filen core/components/simplesearch/elements/chunks/searchform.chunk.tpl:

[[%sisea.search? &namespace=`sisea` &topic=`default`]]

ind i en ny del kaldet søgning og opret søgevinduets visningsskabelon, som vi har brug for.

11. Dernæst løser vi problemer med kodning

Find filen core/components/simplesearch/model/simplesearch/simplesearch.class.php og erstat linjen i den

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

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

12. Erstat derefter 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", "", $tekst);

14. Og til sidst skal du kommentere linjen hvis (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str)); Grundlæggende SimpleSearch bidder

Søgning på webstedet, der kører Modx Revolution, er klar. Det virker, kan du selv se, men der er et par flere punkter, der vil være nyttige, når du arbejder med dette uddrag. Nemlig redigering af bidder af søgeresultater, dens indpakning, paginering og så videre. Først skal du forstå, at alle chunks i .tpl-format er placeret i denne sti: core/components/simplesearch/elements/chunks/. Nå, for at gøre det lettere at arbejde med dem, vil vi vise hoveddelene i Modx-administrationsområdet. Her er deres parametre

  • containerTpl
  • sideTpl
  • nuværende SideTpl

Nå, vi vil kalde stykkerne selv, hvad vi vil.

tpl parameter - SimpleSearchResult chunk

tpl-parameteren er ansvarlig for at vise hvert enkelt søgeresultatelement. Lad os oprette en del og kalde det SimpleSearchResult. Lad os kopiere koden fra filen core/components/simplesearch/elements/chunks/searchresult.chunk.tpl ind i den:

[[+idx]].