Skriv SimpleSearch i søgefeltet, tryk på "Enter" og klik på knappen "Download".
Dette uddrag viser søgeresultater baseret på de sendte søgekriterier.
BrugDu skal blot placere kodestykket i den ressource, du gerne vil have vist søgeresultater i.
[[!SimpleSearch]]
Tilgængelige egenskabertpl | 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. |
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 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:
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. |
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:
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. |
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 downloadedeKlik på "Fortsæt" og derefter "OK"
7. Opret en ny ressource ved roden af træetTitel: 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øgeresultaterIndsæ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 kodeDette 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 kodningFind 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 bidderSø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 chunktpl-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]].