UCW Tricks and Cookbook

Creating a "modal" component

I would like to have the capability of creating a "modal" component, one that would take over the entire browser window when called.

The solution is:

(defmacro takeover-entire-window (component-class &rest initargs)
  `(call-component (context.window-component *context*)
                   (make-instance ,component-class ,@initargs)))

Configuring Apache to access various applications in the same server

If you want to run several applications from one UCW server, via mod_lisp via Apache, this can be done with the following Apache configuration (or check out the apache2 config for the UCW examples at the ucw/etc/ucw-examples.apache2):

Note: because of the deficiencies of CLiki, some characters are substitued by their name in brackets:

[lt]Location ~ "[slash]app[slash][lpar]my-app|admin|example[rpar]"[gt]
  LispServer 3001 "my-server"
  SetHandler lisp-handler

The trick is to use the form, and specify a regexp matching all the roots of all the UCW applications.