Module
:: Aktionen ::
mod_menu
mod_map
mod_SEO
mod_form
mod_editor
mod_research
mod_imagesize
mod_newsletter
mod_gallery
mod_tables
mod_dbadmin
mod_pages
mod_feature_search
mod_bots
Modifikationen
Lizenz
Downloads
Manuals
Kontakt
 

feature_search

professionelle Filter

feature_search

professionelle Filter

Diese Idee stammt aus dem Februar 2006
Zitat:
Bisher fiel mir irgendwie noch kein anderer Name dafür ein, aber es wird ein rein kommerzielles Modul, das es erlauben wird, in bestimmten Feldern nach bestimmten Inhalten zu suchen. Dies wird durch die Möglichkeit beliebige Platzhalter zu definieren ermöglicht.

Beispiel: Immobilienmarkler - Suche nach Immobilien mit Preis von/bis - Suche nach Quadratmeter- oder Zimmerzahl - Suche nach bestimmten Typen

Das im Hinterkopf habe ich einen Auftrag mit entsprechender Anforderung angenommen und habe das Modul ca. zur Hälfte fertig.

Dabei dient das Modul "Suche" als Grundlage (zumindest in der von mir vorgelegten Version, die seit Januar von balu weiterentwickelt wird).

Der Unterschied ist, daß nicht alle Felder durchsucht werden, sondern nur bestimmte.
Wenn also die Artikeldaten konsequent in verschiedene Eingabefelder verteilt werden, dann kann auch konsequent gezielt gesucht werden.

Der eigentliche Witz ist, daß die gesamte Definition über den HTML-Code des Formulares vorgenommen wird, also welche Felder durchsucht werden, wie sie durchsucht werden und dies beliebig erweiterbar ist. Durch Select-Felder kann sogar eine Auswahl von Feldern angeboten werden oder auch eine Reihe vorgefertigter Suchen angeboten werden.

Code:
    <form name="suchergebnisse" class="result" method="get" action="index.php" style="display: inline;">
    <
input type="hidden" name="action" value="feature_search"
/>
    <
input type="hidden" name="rubric" value="### SEARCH_NAV ###"
/>
    <
input type="hidden" name="results" value="AND"
/>
    <
input type="hidden" name="sortby" value="PLZ"
/>
    <
input type="hidden" name="sort" value="ASC"
/>
        <
table border="0"
>
        <
tr
>
            <
td><label for="p1">PLZ</label></td
>
            <
td
>
                <
input type="text" name="p1" id="p1" value="### SEARCH_PHRASE_1 ###"
/>
                <
input type="hidden" name="sf1" value="PLZ" /><input type="hidden" name="sm1" value="LIKE '###%'"
/>
                </
td
>
        </
tr
>
        <
tr
>
            <
td><label for="p2">Nachname</label></td
>
            <
td
>
                <
input type="text" name="p2" id="p2" value="### SEARCH_PHRASE_2 ###"
/>
                <
input type="hidden" name="sf2" value="Nachname" /><input type="hidden" name="sm2" value="LIKE '###%'"
/>
            </
td
>
        </
tr
>
        <
tr
>
            <
td><label for="p3">Ort</label></td
>
            <
td
>
                <
input type="text" name="p3" id="p3" value="### SEARCH_PHRASE_3 ###"
/>
                <
input type="hidden" name="sf3" value="Ort" /><input type="hidden" name="sm3" value="LIKE '###%'"
/>
            </
td
>
        </
tr
>
        <
tr
>
            <
td><label for="sp4">Rasse</label></td
>
            <
td
>
                <
select name="sp4" id="sp4"
>
                <
option value=''>-- Bitte wählen --</option
>
                <
option value='Airedale Terrier'>Airedale Terrier</option
>
                <
option value='Australian Terrier'>Australian Terrier</option
>
                <
option value='Australian Silky Terrier'>Australian Silky Terrier</option
>
                <
option value='Bedlington Terrier'>Bedlington Terrier</option
>
                <
option value='Border Terrier'>Border Terrier</option
>    
            
etc...


Das ganze ist schwer zu beschreiben, wird aber sicher von allen, denen die Volltextsuche zu ungenau ist, schnell eingesetzt werden. Im Grunde ist es das Pendent zum neuen Platzhaltersystem, nur eben als Suchfunktion.

Das Formular

Hier jetzt mal eine kleine Anleitung:

Das wichtigste für das ganze Modul ist das Formular, über das fast alles gesteuert wird.

Fangen wir mal vorne an:
Code:
   <form name="suchergebnisse" class="result" method="get" action="index.php" style="display: inline;">
   <input type="hidden" name="action" value="feature_search" />
   <input type="hidden" name="rubric" value="### SEARCH_NAV ###" />
   <input type="hidden" name="results" value="AND" />
   <input type="hidden" name="sortby" value="PLZ" />
   <input type="hidden" name="sort" value="ASC" />

Hierbei ist folgendes wichtig bzw. einstellbar:
- method="get" muss eingestellt sein, weil dadurch Suchen als Link vordefiniert werden können
- Das hidden-Field action muß den Wert feature_search haben
- In das Hidden-Field rubric trägt das Modul automatisch die per URL übergebene Rubrik ein, wenn dort ### SEARCH_NAV ### eingetragen ist. Das ist wichtig für die richtige Anzeige der Navigation
- results kann den Wert "AND" annehmen. Dadurch müssen alle Angaben erfüllt werden. Wird nichts angegeben gilt automatisch "OR"
- sortby gibt an, nach welchem Platzhalter sortiert werden soll.
- sort gibt an, wie sortiert werden soll, also ASC für aufsteigend, DESC für absteigend

Anschließend folgen die Suchbegriffe.
Wichtig: Diese müssen durchgehend von 1 an nummeriert sein, aber nicht zwingend in dieser Reihenfolge im Formular vorkommen.

Code:
PLZ:<input type="text" name="p1" id="p1" value="### SEARCH_PHRASE_1 ###" />
<input type="hidden" name="sf1" value="PLZ" /><input type="hidden" name="sm1" value="LIKE '###%'" /><br />
Nachname:<input type="text" name="p2" id="p2" value="### SEARCH_PHRASE_2 ###" />
<input type="hidden" name="sf2" value="Nachname" /><input type="hidden" name="sm2" value="LIKE '###%'" /><br />
...

# steht im folgenden(!) für die durchgehende Nummerierung!
Zuerst das eigentliche Eingabefeld für den Suchbegriff p# (also p1, p2, p3...) mit dem Wert ### SEARCH_PHRASE_# ###, der nach Durchführung der Suche als Vorgabe eingetragen wird.
sf# ist das Suchfeld, in dem gesucht werden soll.
sm# ist die Suchmaske, mit der die Abfrage laufen soll. In dieser steht ### für den eingegebenen Begriff. Für eine exakte Übereinstimmung wäre das value="= '###'", für eine Suche am Anfang value="LIKE '###%'", für eine Volltextsuche value="LIKE '%###%'", also die üblichen aus mySQL bekannten Abfragemöglichkeiten...

Zum Absenden natürlich noch am Ende ein
Code:
<input type="submit" value="Suche"></form>


Das Ergebnis

Der Ergebnisbereich ist grundsätzlich so definiert wie beim Such-Modul
Code:
   ### SEARCH_MESSAGE ###
   <br />&nbsp;<br />
   ### SEARCH_MATCHES ###
<!-- START_SEARCH_MATCH -->
   <div class="morelink">### SEARCH_NUM ###.) <a href="../_rubric/detail.php?nr=### SEARCH_ARTICLE_ID ###&rubric=Z%FCchter">### SEARCH_TITLE ###</a></div>
   <div class="externallink">### SEARCH_Vorname ### ### SEARCH_Nachname ###<br />
   ### SEARCH_PLZ ### ### SEARCH_Ort ###<br />
   <a href="### SEARCH_Homepage ###" target="_blank">### SEARCH_Homepage ###</a></div>
   <hr />
<!-- ENDE_SEARCH_MATCH -->
   <br />&nbsp;<br />
   ### SEARCH_PAGES ###
   <br />&nbsp;<br />
   <a href="../_rubric/index.php?rubric=Z%FCchter">Alle Züchter anzeigen</a>
<!-- ENDE_MOD_SEARCH -->

### SEARCH_MESSAGE ### gibt Meldungen aus
### SEARCH_MATCHES ### gibt die Anzahl der gefundenen Treffer aus
### SEARCH_NUM ### ist eine durchgehende Nummerierung
### SEARCH_TITLE ### ist der Artikeltitel
### SEARCH_PAGES ### ist die ggf. notwendige Paginierung

aber nun kommts:
die restlichen Platzhalter im Format ### SEARCH_Platzhaltername ### stehen eben für die Platzhalter, die abgebildet werden sollen, die ja nicht unbedingt der eigentliche Suchbegriff sein müssen.

Select-Felder

Nun ein "Goodie":

Jede Benutzereingabe kann Fehlerhaft sein, daher ist eine Auswahl ggf. besser. Diese kann man vordefinieren:
Code:
<select name="sp1" id="sp1">
<option value=''>-- Bitte wählen --</option>
<option value='Airedale Terrier' ### S1_Airedale Terrier ###>Airedale Terrier</option>
<option value='Australian Terrier' ### S1_Australian Terrier ###>Australian Terrier</option>
<option value='Australian Silky Terrier' ### S1_Australian Silky Terrier ###>Australian Silky Terrier</option>
...
<option value='Skye Terrier' ### S1_Skye Terrier ###>Skye Terrier</option>
<option value='Welsh Terrier' ### S1_Welsh Terrier ###>Welsh Terrier</option>
<option value='West Highland White Terrier' ### S1_West Highland White Terrier ###>West Highland White Terrier</option>
<option value='Yorkshire Terrier' ### S1_Yorkshire Terrier ###>Yorkshire Terrier</option>
</select>
<input type="hidden" name="sf1" value="" />
<input type="hidden" name="sm1" value="= '###'" />

sp1 steht für "select phrase". Der gewählte Wert wird automatisch als p1 ausgewertet.
Ist sf1 mit einem Feldnamen versehen, wird dies als zu durchsuchendes Feld benutzt. Ist der Wert leer (wi im Beispiel) wird der Wert von sp1 auch als Feldname verwendet! Wozu das? Die von mir eingeführten Checkboxen können so mittels Select-Feld problemlos angeboten werden. Es werden also viele verschiedene Felder mit gleichen aber auch mit unterschiedlichen Werten durchsucht. Und das nur mit einem(!) select-Feld!
Hierbei wird als Suchmaske sm1 der Wert "= '###'" benutzt, weil es ja durch die Vorgabe eine exakte Übereinstimmung sein kann... muss aber nicht, auch hier ist die Suchmaske freigestellt.

Und was heißt ### S1_Airedale Terrier ### ???
S1_ steht für das Select-Feld 1 und anschließend steht ein möglicher Auswahlwert.
Wird nun ein Wert gewählt, wird der entsprechende Platzhalter durch selected="selected" ersetzt. Die anderen bleiben stehen, werden aber durch den Browser ignoriert.
Solche umfangreichen Optionslisten lassen sich aus einer einfachen Textliste wunderbar mittels Excel oder auch Access mit allen notwendigen HTML-Tags versehen.



Powered by
BüffetRheinland-PfalzEscortservice FrankfurtCupMessebegleitungPaarbegleitung FrankfurtEscortserviceNeuverglasungEscort Service MannheimBegleitservice Frankfurt
[ Es waren heute (5.9.10) schon 1 Suchmaschinen online: Googlebot ]

NEWS

29.08.2010
mod_imagesize 4.3
Jetzt kompatibel zu ConPresso 4.1.x !!! Die Codeerzeugung wurde vollständig überarbeitet und erlaubt jetzt Eigencreationen ohne Dateieingriffe, um Fremdsoftware wie z.B. Lightbox zu benutzen. Außerdem wird die unterschiedliche Codeerzeugung der verschiedenen Browser berücksichtigt, so daß verschiedene Reihenfolgen und Schreibweisen der Attribute korrekt erkannt werden.
Zum Modul

05.06.2010
mod_menu 4.1
Jetzt kompatibel zu ConPresso 4.1.x !!! Neben einem vollständigen und ergänzten Handbuch stehen Platzhalter für die Einbindung in Seitentemplates zur Verfügung. Das unverzichtbare Tool für umfangreiche Webauftritte!
Zum Download

11.02.2010
mod_menu 4.0
Das älteste Modul überhaupt kann jetzt auch für den produktiven Einsatz genutzt werden! Für den professionellen Einsatz stehen neue Funktionen zur Verfügung, die jedem Administrator viel Arbeit abnehmen.
Zum Download

13.08.2009
mod_text 4.1
Jetzt in deutsch und mit den neuen Goodies "Beschreibung", "Trennung" und "Artikel speichern" für optimale Artikelerfassung.
Zur Modifikation

10.06.2009
mod_imagesize 4.2
Das ultimative Modul, um dem Administrator Nerven zu sparen. Automatische Bildskalierung, Verknüpfung mit vergrößertem Bild und jetzt neu mit automatisch generiertem Wasserzeichen / Copyright-Hinweis zum Schutz vor Bildklau.
Zum Modul

07.03.2009
mod_editor 4.0
Das Moul zur Wahl eines Lieblingseditors ist aus den Kinderschuhen raus und bietet jetzt auch den hervorragenden tinyMCE-Editor!
Zum Download