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>
.