What did seaside use for templates before it switched to programmatic html generation?
I'm trying to find template engines that we could use in our application for areas where backend users need to be able insert small amount of text into the programmatically created html. the text that the insert needs some basic templating ability and i'd prefer to not roll our own. Pointers to any smalltalk templating solutions would also be appreciated. _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
It had it's own which came out of the template system used in Iowa,
which itself came out of the system in WebObject. You basically added a special "object-id" attribute to tags to mark them as dynamic and then could configure "bindings" to change the value, callback, etc. There was also a format that used lisp-like s-expressions instead of html tags. You can see a few examples in my ESUG presentation from last year: http://vst.ensm-douai.fr/Esug2008Media/uploads/1/ESUG_2008_-_Seaside_Evolution.pdf It's probably not what you're looking for, though... Julian On Wed, Oct 14, 2009 at 9:41 AM, Sean Allen <[hidden email]> wrote: > What did seaside use for templates before it switched to programmatic html > generation? > > I'm trying to find template engines that we could use in our application for > areas where backend users need to be able insert small > amount of text into the programmatically created html. the text that the > insert needs some basic templating ability and i'd prefer > to not roll our own. > > Pointers to any smalltalk templating solutions would also be appreciated. > > _______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by SeanTAllen
On 14 Oct 2009, at 17:41, Sean Allen wrote: > What did seaside use for templates before it switched to > programmatic html generation? > > I'm trying to find template engines that we could use in our > application for areas where backend users need to be able insert small > amount of text into the programmatically created html. the text that > the insert needs some basic templating ability and i'd prefer > to not roll our own. > > Pointers to any smalltalk templating solutions would also be > appreciated. I put my templates into pier pages for the administrators to edit, and use this to fill in the template. expand: string mergeUsing: dataSource | split | string ifNil: [ ^'' ]. dataSource ifNil: [ ^ string ]. split := string splitOn: '%'. split size < 3 ifTrue: [ ^ string ]. split withIndexDo: [ :each :n | n even ifTrue: [ | result | result := (each splitOn: ':') inject: dataSource into: [ :data :accessor | [ data perform: accessor asSymbol ] ifError: [ '%', each, '%' ] ]. split at: n put: result. ] ]. ^ (split joinUsing: '') best regards Keith _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by SeanTAllen
In the past the topic was discussed several times. Some people have
implemented templating systems for Seaside, but as far as I know none of them has ever taken off and gained wide adoption. Lukas 2009/10/14 Sean Allen <[hidden email]>: > What did seaside use for templates before it switched to programmatic html > generation? > > I'm trying to find template engines that we could use in our application for > areas where backend users need to be able insert small > amount of text into the programmatically created html. the text that the > insert needs some basic templating ability and i'd prefer > to not roll our own. > > Pointers to any smalltalk templating solutions would also be appreciated. > > _______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Oups, forgot the link: http://bit.ly/203nex
2009/10/14 Lukas Renggli <[hidden email]>: > In the past the topic was discussed several times. Some people have > implemented templating systems for Seaside, but as far as I know none > of them has ever taken off and gained wide adoption. > > Lukas > > 2009/10/14 Sean Allen <[hidden email]>: >> What did seaside use for templates before it switched to programmatic html >> generation? >> >> I'm trying to find template engines that we could use in our application for >> areas where backend users need to be able insert small >> amount of text into the programmatically created html. the text that the >> insert needs some basic templating ability and i'd prefer >> to not roll our own. >> >> Pointers to any smalltalk templating solutions would also be appreciated. >> >> _______________________________________________ >> seaside mailing list >> [hidden email] >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >> >> > > > > -- > Lukas Renggli > http://www.lukas-renggli.ch > -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Julian Fitzell-2
On Wed, Oct 14, 2009 at 1:01 PM, Julian Fitzell <[hidden email]> wrote:
It had it's own which came out of the template system used in Iowa, actually i think that might be a nice fit for what i need. was it a sep package from seaside? is there someplace i can get get the code? _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Hi!
Sean Allen wrote: > actually i think that might be a nice fit for what i need. > was it a sep package from seaside? is there someplace i can get get the > code? Mmm, not a reply to this but given Keith's post I also wrote SimpleMacro: http://map.squeak.org/packagebyname/SimpleMacro ...which also can do ASP-ish expansion, but with more features :) regards, Göran _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
>>>>> "Göran" == Göran Krampe <[hidden email]> writes:
Göran> Mmm, not a reply to this but given Keith's post I also wrote SimpleMacro: Even with a few templating solutions, you're still about 58 variants behind the number of templating solutions in Perl in the CPAN. It seemed to be one of the rites of passage in the Perl world. :) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <[hidden email]> <URL:http://www.stonehenge.com/merlyn/> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by SeanTAllen
On Wed, Oct 14, 2009 at 2:24 PM, Sean Allen <[hidden email]> wrote:
> > > On Wed, Oct 14, 2009 at 1:01 PM, Julian Fitzell <[hidden email]> wrote: >> >> It had it's own which came out of the template system used in Iowa, >> which itself came out of the system in WebObject. You basically added >> a special "object-id" attribute to tags to mark them as dynamic and >> then could configure "bindings" to change the value, callback, etc. >> There was also a format that used lisp-like s-expressions instead of >> html tags. >> >> You can see a few examples in my ESUG presentation from last year: >> >> http://vst.ensm-douai.fr/Esug2008Media/uploads/1/ESUG_2008_-_Seaside_Evolution.pdf >> >> It's probably not what you're looking for, though... >> > > actually i think that might be a nice fit for what i need. > was it a sep package from seaside? is there someplace i can get get the > code? Erm... I thought we had old versions of the code somewhere but I can't seem to find them. I think I have an archive somewhere in a box... I'll see if I can dig it out and post on seaside.st or something. Julian _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Randal L. Schwartz
I'm trying something a little strange here, and my logic is really quite flawed:
someWATask go >> self call: WAComponentA WAComponentA renderContentOn: >> html render: WAComponentB children >> ^Array with: WAComponentB WAComponentB answer >> self answer: 'blah' I would like for WAComponentB to answer someWATask in place of WAComponentA, is there a way to do this? Thanks, RS Hotmail: Trusted email with powerful SPAM protection. Sign up now. _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Hi Robert,
I know this problem very well. One way could be, to pass a reference of WAComponentA to WAComponentB. You could probably create an instance variable called rootComponent After you initialized WAComponentB, you give it the reference from within WAComponentA, e.g.: WAComponentA renderContentOn:html |component| component := (WAComponentB new) rootComponent: self. html render: component. And within WAComponentB: answer >> self rootComponent answer: 'blah' I hope this helps. Regards, Peter 2009/10/15 Robert Sirois <[hidden email]>
-- www.peter-osburg.de www.experiencedwebprogramming.com www.mix-rss.com _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
That worked perfectly, thank you :)
RS Date: Thu, 15 Oct 2009 19:04:30 +0200 Subject: Re: [Seaside] Call and Answer From: [hidden email] To: [hidden email] Hi Robert, I know this problem very well. One way could be, to pass a reference of WAComponentA to WAComponentB. You could probably create an instance variable called rootComponent After you initialized WAComponentB, you give it the reference from within WAComponentA, e.g.: WAComponentA renderContentOn:html |component| component := (WAComponentB new) rootComponent: self. html render: component. And within WAComponentB: answer >> self rootComponent answer: 'blah' I hope this helps. Regards, Peter 2009/10/15 Robert Sirois <[hidden email]>
-- www.peter-osburg.de www.experiencedwebprogramming.com www.mix-rss.com Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up now. _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
I would prefer something like
ComponentA>>renderContentOn: html | component | component := ComponentB new onAnswer: [ :answerB | self answer: answerB
]. html render: component. since it does not need a reference to the root component (~decoupling). On Thu, Oct 15, 2009 at 7:25 PM, Robert Sirois <[hidden email]> wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Hi Richard,
I guess from now on I would prefer that one, as well :) Thanks, Peter 2009/10/16 Richard Durr <[hidden email]> I would prefer something like -- www.peter-osburg.de www.experiencedwebprogramming.com www.mix-rss.com _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Robert Sirois
If you had a lot of "component Bs" would it be faster to just pass it component A? Or will this second method always be faster?
RS Peter Osburg <[hidden email]> wrote: >Hi Richard, > >I guess from now on I would prefer that one, as well :) > >Thanks, >Peter > >2009/10/16 Richard Durr <[hidden email]> > >> I would prefer something like >> ComponentA>>renderContentOn: html >> | component | >> component := ComponentB new onAnswer: [ :answerB | >> self answer: answerB >> ]. >> html render: component. >> >> since it does not need a reference to the root component (~decoupling). >> >> On Thu, Oct 15, 2009 at 7:25 PM, Robert Sirois <[hidden email]>wrote: >> >>> That worked perfectly, thank you :) >>> >>> RS >>> >>> ------------------------------ >>> Date: Thu, 15 Oct 2009 19:04:30 +0200 >>> Subject: Re: [Seaside] Call and Answer >>> From: [hidden email] >>> To: [hidden email] >>> >>> >>> Hi Robert, >>> >>> I know this problem very well. >>> One way could be, to pass a reference of WAComponentA to WAComponentB. >>> >>> You could probably create an instance variable called >>> rootComponent >>> >>> After you initialized WAComponentB, you give it the reference from within >>> WAComponentA, e.g.: >>> WAComponentA >>> *renderContentOn:html * >>> |component| >>> component := (WAComponentB new) rootComponent: self. >>> html render: component. >>> >>> And within WAComponentB: >>> *answer *>> self rootComponent answer: 'blah' >>> >>> I hope this helps. >>> >>> Regards, >>> Peter >>> >>> 2009/10/15 Robert Sirois <[hidden email]> >>> >>> I'm trying something a little strange here, and my logic is really quite >>> flawed: >>> >>> someWATask >>> go >> self call: WAComponentA >>> >>> WAComponentA >>> renderContentOn: >> html render: WAComponentB >>> children >> ^Array with: WAComponentB >>> >>> WAComponentB >>> answer >> self answer: 'blah' >>> >>> I would like for WAComponentB to answer someWATask in place of >>> WAComponentA, is there a way to do this? >>> >>> Thanks, >>> RS >>> >>> ------------------------------ >>> Hotmail: Trusted email with powerful SPAM protection. Sign up now.<http://clk.atdmt.com/GBL/go/177141665/direct/01/> >>> >>> _______________________________________________ >>> seaside mailing list >>> [hidden email] >>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>> >>> >>> >>> >>> -- >>> www.peter-osburg.de >>> www.experiencedwebprogramming.com >>> www.mix-rss.com >>> >>> ------------------------------ >>> Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up >>> now. <http://clk.atdmt.com/GBL/go/171222985/direct/01/> >>> >>> _______________________________________________ >>> seaside mailing list >>> [hidden email] >>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>> >>> >> >> _______________________________________________ >> seaside mailing list >> [hidden email] >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >> >> > > >-- >www.peter-osburg.de >www.experiencedwebprogramming.com >www.mix-rss.com >_______________________________________________ >seaside mailing list >[hidden email] >http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Richard Durr-2
Is there a way to use jQuery, Prototype, and Scriptaculous in conjunction with each other?
RS Hotmail: Powerful Free email with security by Microsoft. Get it now. _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Robert Sirois
> ComponentA>>renderContentOn: html
> | component | > component := ComponentB new onAnswer: [ :answerB | > self answer: answerB > ]. > html render: component. You probably don't want to instantiate components while rendering. This will recreate ComponentB on every refresh and thus break any stateful behavior. Otherwise the code would work. Lukas 2009/10/16 Robert Sirois <[hidden email]>: > If you had a lot of "component Bs" would it be faster to just pass it component A? Or will this second method always be faster? > > RS > > Peter Osburg <[hidden email]> wrote: > >>Hi Richard, >> >>I guess from now on I would prefer that one, as well :) >> >>Thanks, >>Peter >> >>2009/10/16 Richard Durr <[hidden email]> >> >>> I would prefer something like >>> ComponentA>>renderContentOn: html >>> | component | >>> component := ComponentB new onAnswer: [ :answerB | >>> self answer: answerB >>> ]. >>> html render: component. >>> >>> since it does not need a reference to the root component (~decoupling). >>> >>> On Thu, Oct 15, 2009 at 7:25 PM, Robert Sirois <[hidden email]>wrote: >>> >>>> That worked perfectly, thank you :) >>>> >>>> RS >>>> >>>> ------------------------------ >>>> Date: Thu, 15 Oct 2009 19:04:30 +0200 >>>> Subject: Re: [Seaside] Call and Answer >>>> From: [hidden email] >>>> To: [hidden email] >>>> >>>> >>>> Hi Robert, >>>> >>>> I know this problem very well. >>>> One way could be, to pass a reference of WAComponentA to WAComponentB. >>>> >>>> You could probably create an instance variable called >>>> rootComponent >>>> >>>> After you initialized WAComponentB, you give it the reference from within >>>> WAComponentA, e.g.: >>>> WAComponentA >>>> *renderContentOn:html * >>>> |component| >>>> component := (WAComponentB new) rootComponent: self. >>>> html render: component. >>>> >>>> And within WAComponentB: >>>> *answer *>> self rootComponent answer: 'blah' >>>> >>>> I hope this helps. >>>> >>>> Regards, >>>> Peter >>>> >>>> 2009/10/15 Robert Sirois <[hidden email]> >>>> >>>> I'm trying something a little strange here, and my logic is really quite >>>> flawed: >>>> >>>> someWATask >>>> go >> self call: WAComponentA >>>> >>>> WAComponentA >>>> renderContentOn: >> html render: WAComponentB >>>> children >> ^Array with: WAComponentB >>>> >>>> WAComponentB >>>> answer >> self answer: 'blah' >>>> >>>> I would like for WAComponentB to answer someWATask in place of >>>> WAComponentA, is there a way to do this? >>>> >>>> Thanks, >>>> RS >>>> >>>> ------------------------------ >>>> Hotmail: Trusted email with powerful SPAM protection. Sign up now.<http://clk.atdmt.com/GBL/go/177141665/direct/01/> >>>> >>>> _______________________________________________ >>>> seaside mailing list >>>> [hidden email] >>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>>> >>>> >>>> >>>> >>>> -- >>>> www.peter-osburg.de >>>> www.experiencedwebprogramming.com >>>> www.mix-rss.com >>>> >>>> ------------------------------ >>>> Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up >>>> now. <http://clk.atdmt.com/GBL/go/171222985/direct/01/> >>>> >>>> _______________________________________________ >>>> seaside mailing list >>>> [hidden email] >>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>>> >>>> >>> >>> _______________________________________________ >>> seaside mailing list >>> [hidden email] >>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside >>> >>> >> >> >>-- >>www.peter-osburg.de >>www.experiencedwebprogramming.com >>www.mix-rss.com >>_______________________________________________ >>seaside mailing list >>[hidden email] >>http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > _______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Robert Sirois
> Is there a way to use jQuery, Prototype, and Scriptaculous in conjunction
> with each other? Yes, but unless large amounts of legacy code forces you to do so, I suggest to avoid it. The Prototype and jQuery Javascript libraries basically conflict with each other and thus special precaution has to be taken. I suggest that you closely follow the jQuery-nonConflict mode as described in the following document: http://docs.jquery.com/Using_jQuery_with_Other_Libraries See the Seaside method comment of JQuery class>>#functionName: for additional information. Cheers, Lukas -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
I use it this way and up until now it seems to work fine. :)
RD
On Fri, Oct 16, 2009 at 10:59 AM, Lukas Renggli <[hidden email]> wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Julian Fitzell-2
On Thu, Oct 15, 2009 at 12:54 PM, Julian Fitzell <[hidden email]> wrote:
Any luck? _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |