Entry-related directives are supported by the dosearch and edit CGIs.
DS_ENTRYBEGIN
Description
Delimits the beginning of an entry. The DS_ENTRYBEGIN directive is used in display or edit templates to mark the start of an LDAP entry and in list templates to mark the beginning of a section which should be repeated for each entry which is returned by the search. Always paired with DS_ENTRYBEGIN.
Arguments
None.
DS_ENTRYEND
Description
Delimits the end of an entry. Always paired with DS_ENTRYBEGIN.
Arguments
None.
DS_ATTRIBUTE
Description
The DS_ATTRIBUTE directive is replaced with the contents of an attribute (i.e., its values). This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
attr=attribute-name
Displays the named attribute. Any attribute may be displayed. The special attribute "dn" is recognized and causes the distinguished name of the entry to be displayed.
syntax=syntax-type
Displays the attribute as if it were of syntax syntax-type. If no syntax= argument is given, syntax=cis is assumed. Legal values are described in Table B.1.
type=how-to-display
Renders the attribute onscreen in a particular format. Legal values described in Table B.2 correspond roughly to HTML form element names.
options=option
Modifies how the attribute is displayed. Legal values are described in Table B.3.
defaultvalue=default-value
Supplies a default value for the attribute, which is shown if no attribute was read fromthe LDAP server.
within=string-to-embed-in
For each value, outputs the text in string-to-embed-in, replacing all occurrences ofthe string --value-- with an attribute value.
href=href
Specifies the HREF used for the hyperlink. For example, you can specify anonMouseOver JavaScript handler using the "href=" option.
hrefextra=extra-text
Specifies additional text which is inserted after the closing quote of the HREF tag.
dncomponents=number
Gives the number of DN components to show when displaying a DN. For example, if you include "dncomponents=2" and display the DN "cn=James Doe, o=Netscape Communciations Corp, c=US", the output will be "James Doe, Netscape Communications Corp.".
size=number
same as cols argument.
rows=number, rows=+number, rows=>number
Controls the number of rows used to display the entry. For type=text, this controls the number of editable HTML INPUT fields. For type=textarea, this controls the number of rows in the textarea. If number is preceded by a plus (+) sign, then number extra rows are included. If number is preceded by a greater-than sign, then at least number rows are included.
cols=number, cols=+number, cols=>number
Controls the width of the displayed attribute. If a number is given by itself, then the attribute is displayed with exactly number columns. If a plus (+) sign is given before number, then the attribute is given number extra columns. For example, if the value is 10 characters wide, and number is 10, then 20 columns are used when displaying the number. If a greater-than sign (>) is given before number, then the displayed width is at least number columns.
numfields=number, numfields=+number, numfields=>number
controls the number of editable fields displayed when editing. If number is preceded by a plus (+) sign, then the number of fields displayed is however many values were read from the server plus number. If number is preceded by a greater-than sign (>), then at least number values are displayed when editing.
true=string
label used for Boolean values that are true.
false=string
label used for Boolean values that are false.
value=string
value associated with an instance of a checkbox that is used to display strings values (not syntax=bool values) (Not supported in DS 1.0)
Examples
<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2"
"options=nolink" -->
<!-- DS_ATTRIBUTE "attr=givenName" "cols=>32" -->
<!-- DS_ATTRIBUTE "attr=sn" "cols=>32" -->
<!-- DS_ATTRIBUTE "attr=uid" "numfields=1" "cols=>16" "options=unique" -
->
<!-- DS_ATTRIBUTE "attr=mail" "syntax=mail" "cols=>20" -->
<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" "cols=>16"
"numfields=+1" -->
<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "defaultvalue=N/
A" "options=readonly" -->
<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "defaultvalue=N/A"
"options=readonly" -->
<!-- DS_ATTRIBUTE "attr=mailDeliveryOption" "type=CHECKBOX"
"value=mailbox" -->
<!-- DS_ATTRIBUTE "attr=mailDeliveryOption" "type=CHECKBOX"
"value=native" -->
<!-- DS_ATTRIBUTE "attr=mailForwardingAddress" "syntax=mail"
"type=textarea" "rows=2" "cols=30" -->
DS_OBJECTCLASS
Description
Describes the type of directory entries a given template should be used for.
Arguments
value=value1,value2,...valueN
specifies a list of objectclass values. In order for a template file to be used todisplay a given entry, all of the values given must be values in the entry's objectclass attribute.
Note: the gateway does not read the template files to determine which template to use. Instead, it reads the dsgw.conf file and scans the "template" lines in that file. You can generate a series of template lines, suitable for inclusion in the dsgw.conf file, by opening the URL http://host/ds/templateindex, where "host" is the name of the host running the directory server gateway. The templateindex CGI program will scan all the Gateway template files and read the DS_OBJECTCLASS attributes, and then will generate a series of "template" lines.
Example
<!-- DS_OBJECTCLASS "value=person,inetOrgPerson" -->
DS_VIEW_SWITCHER
Description
Display a widget that provides access to all views that are appropriate for this entry (Not supported in DS 1.0). Usually this directive will be used without any arguments at all, which causes a table that contains one cell for each available view to be displayed.
Arguments
prefix=text
HTML text to emit before view elements (optional)
suffix=text
HTML text to emit after view elements (optional)
curprefix=text
HTML text to emit before the link to the current (active) view element (optional)
cursuffix=text
HTML text to emit after the link to the current view element (optional)
altprefix=text
HTML text to emit before each link to an alternative view element (optional)
altsuffix=text
HTML text to emit after each link to an alternative view element (optional)
Example
<!-- DS_VIEW_SWITCHER -->
DS_SORTENTRIES
Description
Specifies that entries should be sorted; typically used within list templates. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block. Up to two DS_SORTENTRIES directives are honored (the attribute from the first one that appears is used as the primary sort key and the second one is used as a secondary sort key).
Arguments
attr=attrname
Sort the entries in ascending order by attrname.
Example
To sort a list of entries by common name:
<!-- DS_SORTENTRIES "attr=cn" -->
DS_SEARCHDESC
Description
Specifies that text describing the type of search done should be displayed. For example, "Found 14 entries where the phone number ends with '25'".
Arguments
None.
DS_POSTEDVALUE
Description
Echoes the contents of an arbitrary posted form variable within a VALUE= parameter.
Arguments
name=varname
The name of the form variable.
Example
If a variable called searchstring is posted and contains the text Mark Smith, the directive:
<!-- DS_POSTED_VALUE "name=searchstring" -->
will produce the following
HTML: VALUE="Mark Smith"
DS_EDITBUTTON
Description
Displays a button which, when clicked, brings up an editable view of an entry. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block. Typically used in display templates.
Arguments
label=text
Use "text" as the label on the button. If not provided, the text "Edit" is used.
Example
<!-- DS_EDITBUTTON "label=Edit Person" -->
DS_DELETEBUTTON
Description
Displays a button which, when clicked, allows deletion of an entry. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block. Typically used in edit templates.
Arguments
label=text
Use "text" as the label on the button. If not provided, the text "Delete" is used.
Example
<!-- DS_DELETEBUTTON "label=Remove Person" -->
DS_SAVEBUTTON
Description
Displays a button which, when clicked, saves changes to an entry. Typically used in edit templates. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
label=text
Use "text" as the label on the button. If not provided, the text "Save" is used.
checksubmit=javascript
only submit changes if javascript expression is true.
Examples
<!-- DS_SAVEBUTTON "label=Save Changes" -->
<!-- DS_SAVEBUTTON "checksubmit=formDataValid()" -->
DS_EDITASBUTTON
Description
Displays a button which, when clicked, allows editing of an entry using a non-default template. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
label=text
Use "text" as the label on the button. If not provided, the text "Edit As" is used.
template=template-name
use the template name template-name when editing.
Example
A button to bring up edit-passwd.html template:
<!-- DS_EDITASBUTTON "label=Change Password" "template=passwd" -->
DS_NEWPASSWORD
Description
Displays an HTML password INPUT field. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
None.
DS_CONFIRM_NEWPASSWORD
Description
Displays an HTML password INPUT field. The gateway compares the value supplied by the user in this field to the value in the DS_NEWPASSWORD field, and only saves the new password value if the two match. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
None.
DS_OLDPASSWORD
Description
Displays an HTML password field for the old password. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
None.
DS_HELPBUTTON
Description
Displays a help button.
Arguments
topic=topic_name
causes the Netscape Help System to open the given topic name.
Example
<!-- DS_HELPBUTTON "topic=MODIFYPASSWD" -->
DS_CLOSEBUTTON
Description
Displays a Close button, which causes the containing window to be closed.
Arguments
label=text
Use "text" as the label on the button. If not provided, the text "Close Window" is used.
Example
<!-- DS_CLOSEBUTTON "label=Cancel" -->
DS_BEGIN_ENTRYFORM
Description
Causes the gateway to emit an HTML FORM directive, and several hidden form elements which are required for proper operation of the gateway. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
None.
DS_END_ENTRYFORM
Description
Causes the gateway to emit a </FORM> tag. This directive must appear within a DS_ENTRYBEGIN...DS_ENTRY_END block.
Arguments
None.
DS_EMIT_BASE_HREF
Description
Emit a <BASE> tag that contains the base URL for the CGI that was executed. (Not supported in DS 1.0)
Arguments
None.
DS_DNEDITBUTTON
Description
Used to edit DN-valued attributes, such as group member.
Arguments
label=
template=
attr=
desc=
DS_BEGIN_DNSEARCHFORM
Description
Used to edit DN-valued attributes, such as group member.
Arguments
None.
DS_END_DNSEARCHFORM
Description
XXX (Not supported in DS 1.0)
Arguments
None.
DS_ATTRVAL_SET
Description
display an attribute based on an "attrvset" as defined in the dsgw.conf file.
Arguments
set=name
use information from attribute value set name
prefix=text
HTML text to emit before each attribute value element (optional)
suffix=text
HTML text to emit after each attribute value element (optional)
Plus any of the arguments supported by the DS_ATTRIBUTE directive
Example
<!-- DS_ATTRVAL_SET "set=CAL" "attr=nsLicensedFor" "type=checkbox"
"prefix=<TR><TD>" "suffix=</TD></TR>" -->
IF/ ELSE/ ELIF/ ENDIF
Description
Set of directives that can be used to conditionally include HTML text
Arguments for IF and ELIF
condition
boolean condition; if true, include following block of text
!condition
boolean condition; if false, include following block of text
Arguments for ELSE and ENDIF
None.
Note that conditions marked with an astericks (*) are supported in all the directory gateway CGIs, not just dosearch and edit.
Examples
<!-- IF "!DirectoryIsLocalDB" -->
The entry was last modified by <!-- DS_ATTRIBUTE "attr=modifiersName"
"syntax=dn" "defaultvalue=N/A" "options=readonly" -->
<!-- ENDIF ---->
<!-- IF "AttributeHasThisValue" "objectclass" "cis" "mailRecipient" -->
// this entry is a mail recipient... do something special here
<!-- ENDIF ---->