The following checking functions are included in CMS Fiona. You can use them as templates for your own functions.
Source: shareScriptDir
/cm/serverCmds/completionCheck.tcl
::check::imageSize
The ::check::imageSize
function determines the current image size and delegates the checking to the specified functions sizeCheckNameN
in the namespace ::check::images
.
These functions are called with width
, height
, and all parameters from sizeCheckArgs
N
.
Syntax
::check::imageSize
contentId
sizeCheckName1
sizeCheckArgs1
...
Example
::check::imageSize $contentId sizes {100x40 100x80}
This corresponds to the following call:
::check::images::sizes [content withId $contentId get width] [content withId $contentId get height] {100x40 100x80}
This call compares the sizes specified with the permitted values specified in the list. If the image size is not included in the list, a corresponding message is returned.
Configuration options
You can adapt the messages returned by the checking routines to your own requirements. For this, two methods are available:
The message is specified statically as the last parameter:
completionCheck { ::check::imageSize sizes {{100x80} "The image dimensions are not correct"}}
The message is localized by means of the localization key:
namespace eval ::check::images { localizer add de $illegalImageSize "Only the following image sizes are allowed: %sizes%" }
Extension options
Further image checking functions can be defined analogously to the definition of sizes
in the ::check::images
namespace. They are then also available via the ::check::imagesSizes
helper function.
::check::links
Analogously to the ::check::imageSizes
helper function, ::check::links
can be used to check the links in the link list field specified.
This is done by calling the subfunctions for checking the link list, ::check::links::
linklistCheckName
N
. These functions expect the following arguments to be passed to them:
Syntax
::check::links
contentId
linklistCheckName1
linklistCheckArgs1
...
Example
completionCheck { ::check::links teaserLinks min 2 max 4 targetObjClasses Teaser} {::check::links relatedLinks max 5}
This will call, in the specified order, the following checking functions for the teaserLinks
field: ::check::links::min
(with the additional argument 2
), ::check::links::max
(with the additional argument 4
), and ::check::links::targetObjClasses
(with the additional argument Teaser
). Afterwards, the checking function is called for the relatedLinks
link list field. All the messages returned by the checking functions (as lists) are collected in a list and then returned to the CM as the completion check function terminates.
The targetObjClasses
checking function, for example, is actually called in the following way: ::check::links::targetObjClasses "teaserLinks" {2009 2010} "Teaser"
where 2009 and 2010 are the IDs of the links contained in the link list.
Configuration and enhancement options
CMS Fiona 6.7 and later supports link list size restrictions and link destination restrictions (with respect to the file format) which can be specified directly in the field definition. You can do without calling min
, max
, count
, and targetObjClasses
if the same restrictions apply to all the formats containing the link list concerned.
The list of link checking routines can be extended analogously to ::check::imageSize
. Please observe the parameter list and the return value. The functions need to be defined in the ::check::links
namespace in the safe interpreter.