I thought this might be of interest to some of the people who are fiddling with widgets at the moment ;-) -- <Matt/> /|| ** Founder and CTO ** ** http://axkit.com/ ** //|| ** AxKit.com Ltd ** ** XML Application Serving ** // || ** http://axkit.org ** ** XSLT, XPathScript, XSP ** // \\| // ** mod_perl news and resources: http://take23.org ** \\// //\\ // \\ ---------- Forwarded message ---------- Date: Wed, 27 Jun 2001 15:19:51 +0100 (BST) From: Matt Sergeant <[EMAIL PROTECTED]> To: AxKit Users Mailing List <[EMAIL PROTECTED]> Subject: ANNOUNCE: AxKit::XSP::PerForm This module is a "magic" forms library for building complex web applications. No docs yet, but here's an example. You also need to apply a stylesheet to the results to get HTML or WML or whatever you're after for your form. There's a HTML stylesheet in the stylesheets/ directory. We suggest you add it to the stylesheet you're using for your site using <xsl:import/>. The Example (this is a real example for a project I'm working on): <?xml version="1.0"?> <xsp:page xmlns:xsp="http://apache.org/xsp/core/v1" xmlns:web="http://axkit.org/NS/xsp/webutils/v1" xmlns:f="http://axkit.org/NS/xsp/perform/v1" language="perl" indent-result="yes" > <xsp:structure> <xsp:import>Time::Object</xsp:import> <xsp:import>Time::Seconds</xsp:import> </xsp:structure> <xsp:logic><![CDATA[ sub load_expires_year { my ($ctxt, $selected) = @_; return ($selected || $ctxt->{expires}->year), map { $_ => $_ } (localtime->year .. localtime->year + 10); } sub load_expires_month { my ($ctxt, $selected) = @_; return ($selected || $ctxt->{expires}->mon), map { $_ => $_ } (1 .. 12); } sub load_expires_day { my ($ctxt, $selected) = @_; return ($selected || $ctxt->{expires}->day_of_month), map { $_ => $_ } (1 .. 31); } sub validate_title { my ($ctxt, $new) = @_; } sub start_form_create { my $ctxt = shift; my $expires = localtime; $expires += (20 * ONE_DAY); $ctxt->{expires} = $expires; } sub end_form_create { } sub submit_save { # save form values ... # return URL to redirect to after save return "/"; } sub cancel_cancel { # return a URL to redirect to return "/"; } </xsp:logic> <html> <head> <title>Create Announcement</title> </head> <body> <h1>Create Announcement</h1> <f:form name="create"> Title: <f:textfield type="text" name="title" width="30" maxlength="255" /> <br /> Link: <f:textfield type="text" name="link" width="30" maxlength="255" /> <br /> Expires: <f:single-select name="expires_year"/> <f:single-select name="expires_month"/> <f:single-select name="expires_day"/> <br /> <f:submit name="save" value="Create"/> <f:cancel name="cancel" value="Cancel"/> </f:form> </body> </html> </xsp:page> -- <Matt/> /|| ** Founder and CTO ** ** http://axkit.com/ ** //|| ** AxKit.com Ltd ** ** XML Application Serving ** // || ** http://axkit.org ** ** XSLT, XPathScript, XSP ** // \\| // ** mod_perl news and resources: http://take23.org ** \\// //\\ // \\ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]