The DSP library#
The DSP module#
- <dylan-server-page> Open Primary Class#
- Superclasses:
<expiring-mixin>, <resource>
- Init-Keywords:
source –
- <page-link> Open Class#
- Superclasses:
<object>
- Init-Keywords:
label –
page-number –
- <paginator> Open Class#
- Superclasses:
<sequence>
- Init-Keywords:
current-page-number –
page-size –
sequence –
- <taglib> Class#
- Superclasses:
<object>
- Init-Keywords:
name –
prefix –
- add-field-error Generic function#
- Signature:
add-field-error (field-name message #rest format-arguments) => (#rest results)
- Parameters:
field-name – An instance of
<object>
.message – An instance of
<object>
.format-arguments (#rest) – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- add-page-error Generic function#
- Signature:
add-page-error (format-string #rest format-arguments) => (#rest results)
- Parameters:
format-string – An instance of
<object>
.format-arguments (#rest) – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- add-page-note Generic function#
- Signature:
add-page-note (format-string #rest format-arguments) => (#rest results)
- Parameters:
format-string – An instance of
<object>
.format-arguments (#rest) – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- current-page-number Generic function#
- Signature:
current-page-number (object) => (#rest results)
- Parameters:
object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- current-page-number-setter Generic function#
- Signature:
current-page-number-setter (value object) => (#rest results)
- Parameters:
value – An instance of
<object>
.object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- current-row Function#
- Signature:
current-row () => (#rest results)
- Values:
#rest results – An instance of
<object>
.
- current-row-number Function#
- Signature:
current-row-number () => (#rest results)
- Values:
#rest results – An instance of
<object>
.
- get-field-errors Generic function#
- Signature:
get-field-errors (field-name) => (#rest results)
- Parameters:
field-name – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- get-named-method Generic function#
- Signature:
get-named-method (taglib name) => (#rest results)
- Parameters:
taglib – An instance of
<object>
.name – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- get-tag-call-attribute Function#
- Signature:
get-tag-call-attribute (attr #key as test) => (attribute-value)
- Parameters:
attr – An instance of
<object>
.as (#key) – An instance of
<type>
.test (#key) – An instance of
<object>
.
- Values:
attribute-value – An instance of
<object>
.
- loop-index Generic function#
- Signature:
loop-index () => (#rest results)
- Values:
#rest results – An instance of
<object>
.
- loop-value Generic function#
- Signature:
loop-value () => (#rest results)
- Values:
#rest results – An instance of
<object>
.
- map-tag-call-attributes Function#
- Signature:
map-tag-call-attributes (f #key exclude) => (#rest results)
- Parameters:
f – An instance of
<function>
.exclude (#key) – An instance of
<sequence>
.
- Values:
#rest results – An instance of
<object>
.
- named-method-definer Macro#
- next-page-number Generic function#
- Signature:
next-page-number (paginator) => (#rest results)
- Parameters:
paginator – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- page-count Open Generic function#
- Signature:
page-count (paginator) => (count)
- Parameters:
paginator – An instance of
<paginator>
.
- Values:
count – An instance of
<integer>
.
- page-has-errors? Generic function#
- Signature:
page-has-errors? () => (#rest results)
- Values:
#rest results – An instance of
<object>
.
- page-link-label Generic function#
- Signature:
page-link-label (object) => (#rest results)
- Parameters:
object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- page-link-page-number Generic function#
- Signature:
page-link-page-number (object) => (#rest results)
- Parameters:
object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- page-links Open Generic function#
- Signature:
page-links (paginator #key ellipsis prev next center-span min-pages) => (page-links)
- Parameters:
paginator – An instance of
<paginator>
.ellipsis (#key) – An instance of
false-or(<string>)
.prev (#key) – An instance of
false-or(<string>)
.next (#key) – An instance of
false-or(<string>)
.center-span (#key) – An instance of
false-or(<integer>)
.min-pages (#key) – An instance of
false-or(<integer>)
.
- Values:
page-links – An instance of
<sequence>
.
- page-size Generic function#
- Signature:
page-size (object) => (#rest results)
- Parameters:
object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- page-source Generic function#
- Signature:
page-source (page) => (#rest results)
- Parameters:
page – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- page-template Generic function#
- Signature:
page-template (object) => (#rest results)
- Parameters:
object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- page-template-setter Generic function#
- Signature:
page-template-setter (value object) => (#rest results)
- Parameters:
value – An instance of
<object>
.object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- paginator-sequence Generic function#
- Signature:
paginator-sequence (object) => (#rest results)
- Parameters:
object – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- previous-page-number Generic function#
- Signature:
previous-page-number (paginator) => (#rest results)
- Parameters:
paginator – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- process-template Generic function#
- Signature:
process-template (page) => (#rest results)
- Parameters:
page – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- register-tag Generic function#
- Signature:
register-tag (tag taglib) => (#rest results)
- Parameters:
tag – An instance of
<object>
.taglib – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.
- show-tag-call-attributes Function#
- Signature:
show-tag-call-attributes (stream #key exclude) => (#rest results)
- Parameters:
stream – An instance of
<object>
.exclude (#key) – An instance of
<sequence>
.
- Values:
#rest results – An instance of
<object>
.
- tag-definer Macro#
Defines a new tag in the given tag library.
- Signature:
define [modifiers] tag tag-name [in taglib-name] (method-parameters) (tag-call-parameters) body end
- Parameters:
modifiers – The only valid modifier is
body
, which must be used if the tag allows nested body elements. Ifbody
is not specified then the tag call must end in/>
or an error will be signalled when the DSP template is parsed. Ifbody
is specified,method-parameters
must have a third parameter (see below).tag-name – The name of the tag, as it will appear in the .dsp file.
taglib-name – The name of the taglib the tag should be added to.
method-parameters – Each tag definition creates a method that will be called when the tag is invoked. This is the parameter list for that method. The basic form of the parameter list is
(page[, process-body])
.page
is an instance of<dylan-server-page>
.process-body
is an instance of<function>
. Theprocess-body
argument should be specified if and only if thebody
modifier is supplied.tag-call-parameters –
tag-call-parameters
allows you to receive named keyword arguments from a tag call. For example, if your tag call looks like<xx:foo arg1="one" arg2="2">
thentag-call-parameters
might look like(arg1, arg2)
in which casebody
code may refer toarg1
andarg2
. If the tag call doesn’t specify a giventag-call-parameter
then#f
will be used. If atag-call-parameter
has a type specifier, then the passed argument will be parsed into the appropriate type before it is passed. See theparse-tag-arg
generic function. Note that this means specifying a type of which#f
is not a member effectively makes thetag-call-parameter required
. For example,(arg1, arg2 :: <integer>)
specifies thatarg1
is optional (it will be a<string>
if supplied) andarg2
is required and must be parsable to an<integer>
.body – The body of the tag definition.
method-parameter
andtag-call-parameters
are bound within the body.
- Discussion:
Defines a new tag named
tag-name
in thetaglib-name
tag library. For simple DSP tags with no body elements, thebody
code normally just does output to the output stream of the current response, generating dynamic output in place of the literal tag call in the source file. Tags that have body elements may additionally want to setup state for nested tags to use. This may be done, for example, through the use of dynamically bound thread variables or storing information in the session or page context.When the DSP engine invokes the tag to generate dynamic content it passes arguments that match
method-parameters
.tag-call-parameters
receive arguments specified in the tag call, in the DSP source file, after they have been parsed to the specified types.- Example:
A simple tag in the “demo” taglib that displays “Hello, world!” in the page. It is invoked with
<demo:hello/>
:define tag hello in demo (page :: <dylan-server-page>) () format(output-stream(current-response()), "Hello, world!"); end;
A tag that allows body elements, and processes the body elements three times. It is invoked with
<demo:three-times>...whatever...</demo:three-times>
:define body tag three-times in demo (page :: <dylan-server-page>, do-body :: <function>) () for (i from 1 to 3) do-body(); end; end;
- taglib-definer Macro#
Defines a new tag library.
- Signature:
define taglib taglib-name () end
- Parameters:
taglib-name – The name of the tag library.
- validate-form-field Generic function#
- Signature:
validate-form-field (field-name validator) => (#rest results)
- Parameters:
field-name – An instance of
<object>
.validator – An instance of
<object>
.
- Values:
#rest results – An instance of
<object>
.