[Zope-dev] ZPatterns + Skinscript

Joachim Schmitz js@aixtraware.de
Sun, 29 Oct 2000 10:25:57 +0100 (CET)


On Sat, 28 Oct 2000, Phillip J. Eby wrote:

> At 05:17 PM 10/28/00 +0200, Joachim Schmitz wrote:
> >
> >select e.event_id as event_id
> >,e.zeiten as zeiten
> >,v.firma as firma
> >,v.tel as tel
> >,e.movie_id as movie_id
> >,m.movie_title as movie_title
> >,m.movie_link as movie_link
> >,m.movie_text as movie_text
> >,e.datum_von as datum_von
> >,e.datum_bis as datum_bis
> >from event as e, veranstalter as v, movies as m 
> >where  
> >e.event_id = <dtml-sqlvar e_id type=int>
> >and e.movie_id = m.movie_id and e.veran_id = v.veran_id
> >order by m.movie_title
> 
> Just out of curiosity, why do you have an "order by" clause, if this is
> supposed to only return one row?  If more than one item is returned by this
> query, only the first will be used to supply data to your DataSkin.
> 
that was just left over from an reused query-template, I forgot to take it
out.

> 
> >I also added a SkinScript method as a Data Plug-in in the defaultRack like
> this
> >
> >WITH QUERY readEvents(e_id=self.event_id) COMPUTE zeiten,firma,tel
> >,movie_id,movie_text,movie_link,movie_title
> >,datum_von,datum_bis,zeiten
> 
> Do you have some way of providing self with an "event_id" value?  Keep in
> mind that when DataSkins are created, they have only an "id" attribute,
> nothing else.  So unless you have an attribute provider that provides an
> "event_id" value, this statement will fail.  Perhaps what you actually mean
> is:
> 
> WITH QUERY readEvents(e_id=self.id) COMPUTE 
>   event_id,
>   zeiten,firma,tel,
>   movie_id,movie_text,movie_link,movie_title,
>   datum_von,datum_bis,zeiten
> 
> Notice that I'm passing self.id to readEvents, and that I've added event_id
> to the list of attributes retrieved from the query.
> 
how do I set "self.id" I tried in dtml-method in the event-specialist:
There is a event_id 609 in the table:

<dtml-var "getItem(_.int(609))">  returns none
or
<dtml-var "getItem(key=_.int(609))"> returns none


> 
> >under the storage tab I selected for:
> >
> >Class to use for stored items: ZPatterns:DataSkin and
> >
> >Objects are: o stored persistently.
> >             x loaded by accessing attribute: event_id
> 
> This will work fine, if you use the revised SkinScript above.  You will
> probably want to create a ZClass subclass of DataSkin at some point to use
> instead, so that you can define permissions, methods, and so on for your
> Event objects.
> 
> 

Mit freundlichen Grüßen

Joachim Schmitz  

          
AixtraWare, Ing. Büro für Internetanwendungen
Hüsgenstr. 33a, D-52457 Aldenhoven  
Telefon: +49-2464-8851, FAX: +49-2464-905163