Zum Inhalt springen

Mal wieder suchen!

Erstellt am 4. Dezember 2002 · 10 Antworten · letzte Antwort am 21. Mai 2003

Tags: Suche, Frage

denoe ·

Hi all!

Suche kalappt soweit ganz gut, kein Problem. Allerdings verzweifle ich gerade daran, dass ich dem input-Field "sword" gerne einen Style (class="blablub") zuordnen möchte, so dass ich es formatieren kann. Ich wurschtle hier mit wrap etc. rum aber was vernünftiges kommt dabei nciht heraus?!

Da muss es doch eine Lösung geben!?

TA.

-christian

denoe ·

thx!

Aber neues Problem. Leider arrangiert T3 die Suchfunktion in einer Tabelle. Diese besteht aus

----------------
| Feld |
----------------
| Button |
----------------

Nun möchte ich aber den Button rechts neben dem Feld haben. Wie nun!?

Die Suche macht mich fertig! :o

Andrej ·
denoe schrieb

Die Suche macht mich fertig! :o

hehe, kenn ich. o.O

ich habe auch keine möglichkeit gefunden, das von typo3 generierte suchformular so zu ändern, daß der button links vom feld steht.

aber: du kannst das formular über den inhaltstyp "html" auch manuell erstellen.
übernimm einfach alle "einstellungen" des automatisch generierten formulars, also "form action...", die hidden-felder und den namen des eingabefeldes. das funktioniert und du hast alle gestaltungsfreiheiten!

viel spaß

dj.​picasso ·

Hi,

ich weiß nicht, ob es noch für Dich von Interesse ist, aber ich glaube ich habe eine Möglichkeit gefunden, ohne die gute alte Handarbeit.
Wenn ja, dann mußt Du Dich melden.

Ciao
Der DJ

denoe ·

Hi!

Danke für dein Angebot. Mittlerweile habe ich es eben per Hand gelöst. Trotzdem wäre ich an deinem Vorschlag interessiert. Schiess los.. 🙂

dj.​picasso ·

Hi denoe,

die Suche bzw. die Anpassung der Suche ist ja immer wieder ein Thema. Ich habe es selbst erlebt, da ich mich gestern das allererste Mal überhautp mit der Suche beschäftigt und das gesamte Forum hier durchsucht habe.
Ich habe daher diese Beschreibung hier etwas ausführlicher aufgebaut denn dann habe andere auch etwas davon.
Ich brauchte zwar keinen Knopf auf der linken Seite aber ich habe ein wenig rumprobiert und siehe da, nach 10 min. hat es geklappt!! 😃 😃

Das System ist einfach nur GEIL!! Wenn man so langsam dahinter kommt, wie es aufgebaut ist, dann ... 😉

Der Clou an der ganzen Sache ist:
Du kannst jeden Wert auf einen anderen "umleiten" und Dir jederzeit mit Hilfe des TypoScript Object Browsers neue Objects kreieren .... also warum nicht auch einen neuen Button!?
Hier die Lösung, aber ich hoffe Du wirst nicht sauer ... es ist ja ganz einfach:
Der folgende Code ist ein Suchformular, wie es auf der typo3.org Seite aufgebaut ist (oben links):

Wie man sieht wird das Formular über einen Marker in eine Designvorlage eingebunden. Definiert man den Marker als COA, dann ist man flexibler, denn man kann das Formular individuell erweitern!!

##################################
# SEARCH 
  marks.SEARCH = COA
  marks.SEARCH {
  
#  10 = TEXT
#  10.value = <p class="suchehd">Hier kann ein Text stehen</p>

  20 < tt_content.search.30 
  20.dataArray > 
  20 {
    stdWrap.wrap = <table border=0 cellspacing=0 cellpadding=0><tr> | </tr></table>
    layout = <td valign=bottom>###LABEL### ###FIELD###</td>

# Hier übergebe ich den Elementen wie Feldern und Buttons eine class
# aus einem in das Template eingebundenen Stylesheet. Damit können 
# Farben und Font etc definiert werden
    params = class="textbox"
    params.submit = class="submit"
    params.textarea = class="textarea"
    dataArray{ 

########
#
# Hier steht für den neuen linken Button der Code (siehe unten)
#
#####

#    10.label > # Einstellung für ein leeres Label 
    10.label = <p class="suchehd">Suchbegriff</p>
    10.type = sword=input,15 # mit der Zahl wird die size des Feldes eingestellt :-)
    10.value = [Eingabe]
 
# Hier könnte eine Select-Box stehen
#  20.type = scols=select 
#  20.valueArray { 
#  10.label = Headers and keywords 
#  10.value = pages.title-subtitle-keywords-description:tt_content.header 
#  20.label = Pagecontent 
#  20.value = tt_content.header-bodytext-imagecaption 
#  } 

    20.label > 
    20.type = scols=hidden 
    20.value = tt_content.header-bodytext-imagecaption 

    30.type = stype=hidden 
    30.value = L0 
    40.type = submit=submit 
    40.value = 
    } 
    image = IMAGE 
    image.file = fileadmin/images/buttons/search1.gif 
    image.params = alt="Klicken Sie hier um die Site zu durchsuchen." 
# Der Redirect geht auf einen Datensatz mit der id= 999
    redirect = 999
   } 
  }
##################################

Bis jetzt hast Du dann immer noch den Button rechts stehen also kreiert man jetzt ein neues Object und holt sich die Daten aus einem bereits bestehenden Object:

    5 < 40
    5.type = submit=submit
    5.value = go!

Jetz sag nur, das ist nicht einfach :p :p
Den Code fügst Du einfach an die oben genannte Stelle ein .... é voilà - la crème de la crème ein zweiter Button auf der linken Seite :p :p

Jetzt mußt Du die Zeile:

40.type = submit=submit

ändern in

40.type =

und der Button rechts verschwindet.

Falls Du jetzt den Button mit Text haben möchtest, dann löscht Du einfach die Angaben mit dem image......, oder für die images dann läßt Du es einfach so und die Zeile "5.value = go!" wird einfach ignoriert.

Genau dieselbe GEILE Sache kann man mit den Suchergebnissen machen, ohne überhaupt ein neues Template zu erstellen.

Ich hoffe, es hilft nicht nur Dir sondern auch allen anderen weiter.
Ciao
Dj Picasso

jens ·

Hallo!
Danke für die ausführliche Beschreibung der Suchfkt.. Hat mir sehr geholfen, ich hatte schon ein paar andere Alternativen getestet aber hiermit hat es sofort geklappt.
Aber ich hab da noch ein Problem und zwar wird direkt unter der Suche eine Leerzeile ausgegeben. (url:http://web215.s11.typo3server.com) Ich habe schon in der Designvorlage versucht die Abstände anzupassen, nur leider ohne Erfolg. Ich komme nicht weiter kann das
aber unmöglich so lassen.
Weiss jemand Rat?
Danke
jens

Das ist mein Code zur Suchfunktion (vielleicht steckt hier ja der Fehler drin?)

# Suche
  marks.SEARCH = COA
  marks.SEARCH {

  20 < tt_content.search.30
  20.dataArray >
  20 {
    stdWrap.wrap = <table border=0 cellspacing=0 cellpadding=0> <tr>|</tr> </table>
    layout = <td valign=bottom><td>

    params = class="textbox"
    params.submit = class="submit"
    params.textarea = class="textarea"
    dataArray{


    10.type = sword=input,20 
    10.value = [Suche]

    20.label >
    20.type = scols=hidden
    20.value = tt_content.header-bodytext-imagecaption

    30.type = stype=hidden
    30.value = L0
    40.type = submit=submit
    40.value = Los
    }
    image = IMAGE
    image.file = fileadmin/images/buttons/search1.gif
    image.params = alt="Klicken Sie hier um die Site zu durchsuchen."
    redirect = 149
   }
  }
dj.​picasso ·

Hi jens,

also erst einmal: Warum stört Dich der Abstand.
Man sollte dem Auge auch etwas "Platz" lassen und "Ruhe gönnen. Ich finde es soweit voll und ganz OK.

Dennoch. Ich habe mir mal Deinen Code angesehen. Aus meiner Sicht hat es nichts mit dem Suchformular als vielmehr mit Deinen Styles zu tun.
Hier mal ein Teil Deines Codes:

<p align="left">
<form action="54.0.html?&no_cache=1" name="5febe5dc883b0048d0d28803b4e7d035" enctype="multipart/form-data" method="POST" target="" onSubmit="return validateForm('5febe5dc883b0048d0d28803b4e7d035','','','')"><input type="hidden" name="scols" value="tt_content.header-bodytext-imagecaption"><input type="hidden" name="stype" value="L0"><input type="hidden" name="locationData" value="52:pages:52"><table border=0 cellspacing=0 cellpadding=0> <tr><td valign=bottom> <input type="text" name="sword" size="20" value="unsere" class="textbox"></td><td valign=bottom> <input type="Submit" name="submit" value="Los" class="submit"></td></tr> </table></form></td></font>

Du hast vor Deinem Suchformular ein <p align=left>. Wenn Du dem Tag eine class zuordnest und dann die margin: 0px 0px 0px 0px; setzt, müßte Dein Abstand eigentlich verschwinden.
Ciao
Der DJ

jens ·

Dank dir. Werde ich gleich mal testen, hört sich auf jeden Fall sehr nützlich an.
Ich werd mir auch nochmal überlegen ob ich den Abstand nicht doch drin lasse.
mfg
jens