1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Benutzerdefinierte Google-Suchmaschine

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Schwertfisch, 09.03.09.

  1. Schwertfisch

    Schwertfisch Carola

    Dabei seit:
    06.04.07
    Beiträge:
    114
    Habe heute versucht eine Benutzerdefinierte Suchmaschine für meine Website und meinen Blog zu erstellen. Schien anfangs auch ganz einfach zu laufen, doch ist das Ergebnis absolut nicht das was mir vorschwebte.

    Gewünscht hatte ich mir eine ultraschlanke, farblose und absolut schlichte Leiste wie diese hier.
    [​IMG]

    Folgt man aber dem Menü zur Erstellung der kostenlosen, benutzerdefinierten Suchmaschine kommt am Ende dieser hässliche Kasten-Gadget-Alptraum dabei raus, den ich KEINESFALLS in meine Webseite oder meinen Blog einbauen werde (...lieber verzichte ich auf eine Suchfunktion). :mad:
    [​IMG]

    So wie es aussieht, scheint man wieder nur mit "Insider-Tricks" und "Spezialwissen" an die schöne, schlichte Variante zu gelangen, oder ist die nur für zahlende Google-Suchmaschinen-Kunden?
     
  2. Slashwalker

    Slashwalker Winterbanana

    Dabei seit:
    15.05.06
    Beiträge:
    2.190
    Schreib dir deine eigene Suche. Ist ja nicht so aufwändig, sie muss ja nur deine Seite durchsuchen.
    Ich muss mal schauen, irgendwo hab ich mal eine geschrieben, zwar in CFML, lässt sich aber leicht auf PHP portieren.

    Edith hats gefunden:
    Code:
    <cfif #CGI.REQUEST_METHOD# EQ "POST" AND #form.suche# NEQ "">
    <cfset suchbegriff =form.suche>
    // ",*,% entfernen und Leerzeichen durch Komma ersetzen
    <cfset suchbegriff=replace(suchbegriff,"*","","ALL")>
    <cfset suchbegriff=replace(suchbegriff,"%","","ALL")>
    <cfset suchbegriff=replace(suchbegriff,'"',"","ALL")>
    <cfset suchbegriff=replace(suchbegriff," ",",","ALL")>
    // Wenn mehr als ein Suchbegriff, Array erstellen
    <cfif listlen(suchbegriff,",") gt 1>
    <cfset suchen= arraynew(1)>
    <cfset i=1>
    <cfloop list="#suchbegriff#" index="x" delimiters=",">
    <cfset suchen[i]=x>
    <cfset i=i+1>
    </cfloop>
    <cfset cur=1>
    // Datenbank befragen, einaml mit Array
    <cfquery name="application.suche" datasource="#application.dsn#">
    SELECT content.output,pages.filename, pages.title FROM content JOIN pages ON(content.page = pages.sorter) WHERE (
    <cfloop array="#suchen#" index="x">
    ((content.output LIKE '%#x#%') OR (MATCH(content.output) AGAINST('#x#')))
    <cfif cur lt arraylen(suchen)> OR </cfif>
    <cfset cur=cur+1>
    </cfloop>
    ) AND pages.suchen = '1'
    </cfquery>
    // oder nach einzelnem Begriff
    <cfelse>
    <cfset suchen[1]=suchbegriff>
    <cfquery name="application.suche" datasource="#application.dsn#">
    SELECT content.output,pages.filename, pages.title FROM content JOIN pages ON(content.page = pages.sorter) WHERE (content.output LIKE '%#suchen[1]#%' OR MATCH(content.output) AGAINST ('#suchen[1]#')) AND pages.suchen = '1' 
    </cfquery>
    </cfif>
    </cfif>
    Und dann das Ergebniss verarbeiten:
    Code:
    // Gibt es überhaupt Einträge
    <cfif #application.suche.recordcount# GT 0>
    // Funktion, die n Zeichen von Links eines Strings ausgibt
    <cfinclude template="fusionality/lib/fullleft.cfm">
    //Ergebnis ausgeben
    <cfoutput>
    <h1>Suchergebnisse</h1>
    // Der Schönheit wegen, ein Leerzeichen hinter jedem Komma
    <p>Ihre Suchen nach <strong>#replace(suchbegriff,",",", ")#</strong> ergab #application.suche.recordcount# Treffer.</p>
    </cfoutput>
    <cfoutput query="application.suche">
    // Suchen und ersetzen, um die Suchbegriffe hervorzuheben
    <cfset text = application.suche.output>
    <cfset text = REReplace(text,"<[^>]*>","","ALL")>
    <cfset text = REReplace(text,"##[^>]*##","","ALL")>
    <cfset r=1>
    <cfloop list="#suchbegriff#" index="i">
    <cfset a[r]=findnocase(i,text,0)>
    <cfset r=r+1>
    </cfloop>
    
    <cfif arraysum(a) gt 1>
    
    
    
    <cfset tmpOn       = "[;;^">
        <cfset tmpOff      = "^;;]">
        <cfset hilightitem    = "<span class=""suche"">">
        <cfset endhilight  = "</span>">
    
    
    <cfloop array="#suchen#" index="x">
    <cfset text = REReplaceNoCase(text,"(#x#)","#tmpOn#\1#tmpOff#","ALL")>
    <cfset text = Replace(text,tmpOn,hilightitem,"ALL")>
    <cfset text = Replace(text,tmpOff,endhilight,"ALL")>
    </cfloop>
    
    // Treffer auf 300 Zeichen abschneiden
    <cfset crop=300>
    <p>#fullleft(text,crop)#...</p>
    <p><a href="#application.suche.filename#.cfm" class="intern" title="#application.suche.title#">[mehr]</a></p>
    </cfif>
        </cfoutput>
        <cfelse>
    //Keine Ergebnisse gefunden
        <cfoutput><p>Ihre Suche nach <strong>#form.suche#</strong> ergab keine Treffer.</p></cfoutput>
    </cfif>
    <cfelse>
    // Kein Suchbegriff eingegeben
    <cfoutput><p>Bitte geben sie einen Suchbegriff ein!</p></cfoutput>
        </cfif>
        </cfif>
    Sollte eigentlich leicht auf PHP zu portieren sein. Nicht 100% Perfekt, aber funktioniert ganz gut.
     
    #2 Slashwalker, 09.03.09
    Zuletzt bearbeitet: 09.03.09
  3. schwaiger

    schwaiger Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    19.03.06
    Beiträge:
    249
    kann mich dem nur anschliessen falls du es dennoch über google möchtest schick ma nen link wo man sich dass ansehen kann...

    dann bieg ich es dir schnell über css hin (is zwar auch nicht so sauber geht aber schnell) !
     
  4. Schwertfisch

    Schwertfisch Carola

    Dabei seit:
    06.04.07
    Beiträge:
    114
    Sorry, dass ich hier die Pferde wild gemacht habe, denn inzwischen habe ich den (...gut versteckten) Code gefunden, den ich suchte. Man kann da zwischen mehreren Möglichkeiten wählen. Klickt man auf die jeweilige Variante erscheint der gewünschte Code.

    Optionen zum Hosten von Suchergebnissen:

    • Sie können die Ergebnisse auf einer von Google-Seite hoste.
    • Hosten Sie die Ergebnisse auf Ihrer Website:

    1. Für iframe – sind zwei Seiten erforderlich: eine für das Suchfeld und eine weitere für die Ergebnisse
    2. Für Overlay – ist eine Seite erforderlich; die Ergebnisse werden aber in einem modalen Overlay angezeigt.
     

Diese Seite empfehlen