Beitrag von mk (966 Beiträge) am Dienstag, 21.März.2006, 14:16.
Aufruf über URL um Filter zu setzen bei get
Antworten
Beitrag von mk (966 Beiträge) am Dienstag, 21.März.2006, 15:04.
Re: Aufruf über URL um Filter zu setzen bei get
Antworten
Beitrag von Claus (4645 Beiträge) am Dienstag, 21.März.2006, 15:17.
Re: Aufruf über URL um Filter zu setzen bei get
Wenn ich Dein "get" mal frei "übersetze" steht da:
Hole alle Datensätze und die mit den Bedingungen auch noch;-))
Nimm mal das "Id=*" raus und probiere dann nochmal
Gruß
Claus
Antworten
Beitrag von mk (966 Beiträge) am Dienstag, 21.März.2006, 15:38.
Re: Aufruf über URL um Filter zu setzen bei get
Antworten
Beitrag von mk (966 Beiträge) am Dienstag, 21.März.2006, 19:09.
Re: Aufruf über URL um Filter zu setzen bei get
Antworten
Beitrag von Claus (4645 Beiträge) am Dienstag, 21.März.2006, 19:15.
Re: Aufruf über URL um Filter zu setzen bei get
Antworten
Beitrag von mk (966 Beiträge) am Dienstag, 21.März.2006, 19:28.
Re: Aufruf über URL um Filter zu setzen bei get
danke das ist ja mächtig.
Da verstehe ich doch zu wenig von perl.
da ist doch loop einfacher wenn man es nutzen kann.
Antworten
Beitrag von hempelr (1976 Beiträge) am Mittwoch, 22.März.2006, 12:47.
Re: Aufruf über URL um Filter zu setzen bei get
so kompliziert ist das auch wieder nicht, wenigstens bei dem einen Filterkriterium.
Also - erst mal funktioniert Such- Filter- und Ausgabbereichskriterien in der URL übergeben mit get definitiv n i c h t!
Man muss mit Übergabe-Parametern arbeiten, sinnvollerweise mit anderem Namen als die der Feldvariablen.
Und um Fehlfunktionen vorzubeugen, sollten diese Parameter dann mit Standardwerten vorbelegt werden.
URL:
$_link&range=0,5&ftitel=s
Hiermit wird ans Template die Variable ftitel mit dem Wert s belegt übergeben.
Das im Template vorm get auswerten bzw. vorbelegen (wenn bspw. nicht vorhanden):
was soviel heist wie:
wenn ftitel definiert und nicht leer diese benutzen, ansonsten "*" zuweisen.
Im get nun einfach folgendes:
get "Titel~=$ftitel", $db, "ergebnishash";
nun werden entweder alle Datensätze, deren Wert im Feld Titel mit dem Übergabewert aus der URL angezeigt oder, wenn ftitel nicht in der URL übergeben wurde, alle Datensätze mit beliebigem Wert im Feld Titel (weil da aufgrund der Zeile zuvor ein Stern als Wert in der Var steht)
Datumswerte kann man im get nur im internen Format vergleichen, ich bin mir nicht sicher, ob ein Vergleich auf die Funktion jetzt geht. Ich beleg da grundsätzlich Variablen, das ist vom Handling meiner Meinung nach einfacher und durchsichtiger, also in etwa so:
$fdatumstart = datum(jetzt, "intern");
$fdatumende = datum(jetzt+1,"intern");
im get dann
get "Titel~=$ftitel termin==$fdatumstart or termin=$fdatumende"...
mit der Uhrzeit das hat so seinen Schleuder, weil Baseportal intern nicht nur die Uhrzeit sondern einen kompletten Datumswert abspeichert. Das als Datumsfeld zu nutzen ist nicht ganz trivial, man muss hier auf den 1.1.1920 mit der Uhrzeit vergleichen, meiner Meinung nach ist ein Textfeld da besser geeignet bzw. vom Handling her einfacher.
Mit dem Ausgabebereich verhält es sich ähnlich, auch hier sind Zwischenvariablen sinnvoll, in etwa so:
URL:
$_link&range=0,5&ftitel=s&ra=0&ra_l=5
wobei hier ra für Anfang des Bereiches und ra_l für Länge des Bereiches steht
im Template dann zunächst auswerten / vorbelegen:
$ra ||= "0";
$ra_l ||= "5";
was soviel bedeutet wie:
wenn Var ra definiert und nicht leer, dann diesen Wert nehmen, ansonsten 0
adäquat für ra_l
im get dann:
get "Titel~=$ftitel termin==$fdatumstart or termin=$fdatumende range=$ra,$ra_l"...
Die Werte für $ra und $ra_l kann man dann für Blätterlinks noch berechnen (falls mehr DS vorhanden sind, als beim URL angegeben Ausgabebereich)
Nicht vergessen, den alle Parameter dann in den Blätterlink zu übernehmen.
Anschaun kannst du dir das evtl. auch unter
http://baseportal.de/cgi-bin/baseportal.pl?show=/hempelr/predigten/predigt
bzw.
http://baseportal.de/cgi-bin/baseportal.pl?show=/hempelr/predigten/archiv
Ist nicht besonders gut kommentiert, aber ein paar Verfahrensweisen sind schon ersichtlich - ausserdem sind die Templates nicht sehr kompliziert.
Hoffe, das hilft dir weiter...
Antworten
Beitrag von mk (966 Beiträge) am Mittwoch, 22.März.2006, 17:38.
Re: Aufruf über URL um Filter zu setzen bei get
Da hste dich ja echt ins Zeug gelegt mit der Beschreibung.
Wenn ich muß würde ich das nun wohl auch hinbekommen,
Aber Ehrlich gesagt, gibt es kein Grund für mich dies für meinen Fall immer noch zumachen, da ich die Seite nun mit loop ausführe und da dies ja viel einfacher ist.
Michael
Antworten
Beitrag von hempelr (1976 Beiträge) am Mittwoch, 22.März.2006, 19:01.
;-) n.t. Re: Aufruf über URL um Filter zu setzen bei get
Antworten