3.4.6.10 PLACE
WaveMaster is highly configurable using the PLACE language. PLACE is a meta-HTML language which allows users to configure the appearance of documents produced by WaveMaster. When a client requests a document, WaveMaster produces an HTML file by parsing HTML template files which contain PLACE statements to include additional Hyperwave functions, meta information about the document, and the document itself. The author of these template files can design the appearance and the functionality of WaveMaster.
PLACE statements are delimited by ``%%'', e.g., `` %%else%%''. PLACE supports conditions, loops, macros, and so-called placeholders. Placeholders are replaced by the corresponding data from the Hyperwave server when the template file is parsed by WaveMaster, e.g, ``%%object.title%%'' will be replaced by the title of the document.
To use the additional functionality of Hyperwave, the WWW client has to send
special commands to WaveMaster by attaching them to the normal URL. For
instance, if a user clicks on the annotation button in the header of a
document, the client will send following URL to WaveMaster:
The command starts after the semicolon (internal...), and commands
WaveMaster to open the annotation-interface to write an annotation to the
object ``richardp'', which is a collection in this example. The PLACE
statement to interpret this command looks like the following:
%%if action == "insertannotation.action"%%
%%insertannotation%%
%%endif%%
The string ``insertannotation'' in the second line is the name of a
macro which actually creates the HTML form to fill in the text of the
annotation. The latest version of WaveMaster allows PLACE to compare
attributes of objects which enables, for instance, the presentation of
different pages to different types of users, e.g.:
WaveMaster also allows for the insertion of Java applets into the template files, and thus you can easily include applets within every page of the server. This allows a site designer to go beyond the limits of hyperlinks and fill-in forms to implement the user interface, and to integrate tools for location feedback and synchronous communication, as well as high level editing. However, there are still a lot of problems to solve when taking advantage of this feature (see Section 5.3.1).
