VI. Appendices
[ Previous: A. Standard Smileys | Next: C. Content Classes ]
B. Rule Parameters
Tag rules are arrays that may contain any of the following members to describe
how the tag is to be processed. Most members are optional, and default values will
usually be assumed if no member is given.
- 'mode' (Default value: BBCODE_MODE_SIMPLE)
Must be exactly one of the following identifiers:
- BBCODE_MODE_SIMPLE: Replaces the tag with the text defined in 'simple_start'
and 'simple_end'.
- BBCODE_MODE_CALLBACK: Calls a callback function or method to format the tag.
The formatting function is specified in the 'method' parameter.
- BBCODE_MODE_INTERNAL: Calls an internal formatting function in the BBCode parser.
The formatting function is specified in the 'method' parameter, which must be a string.
- BBCODE_MODE_LIBRARY: Calls a formatting function that's part of the Standard BBCode Library (the BBCodeLibrary object).
The formatting function is specified in the 'method' parameter, which must be a string.
- 'simple_start' (Default value: "")
This parameter stores a text string that, in BBCODE_MODE_SIMPLE, describes what
HTML to use in place of the start tag.
- 'simple_end' (Default value: "")
This parameter stores a text string that, in BBCODE_MODE_SIMPLE, describes what
HTML to use in place of the end tag. Note that if the rule's 'content'
member is set to BBCODE_PROHIBIT, the 'simple_end' string will be
concatenated to 'simple_start' and the two of them together will be used in
place of the start tag (the start tag, effectively, behaves as both the start and end
tags if content is prohibited).
- 'method' (Default value: "")
This member is used with BBCODE_MODE_CALLBACK, BBCODE_MODE_INTERNAL, and
in BBCODE_MODE_LIBRARY to determine what function to call:
- BBCODE_MODE_CALLBACK: This may be a string, for calling a function,
or an array, for calling a method of a class. See PHP's
documentation on call_user_func() for more details on how to
define a callback function. See the section on callback tags for more details
on how to set up a BBCODE_MODE_CALLBACK tag.
- BBCODE_MODE_INTERNAL: This is a string, the name of an internal
method of an instance of class BBCode.
- BBCODE_MODE_LIBRARY: This is a string, the name of a method of an
instance of class BBCodeLibrary.
Note: Unlike most members, this member must be defined if BBCODE_MODE_CALLBACK,
BBCODE_MODE_INTERNAL, or BBCODE_MODE_LIBRARY is used. If you fail to
define this member, NBBC may produce error messages or warnings, and will definitely
not format your content correctly!
- 'content' (Default value: BBCODE_OPTIONAL)
Must be exactly one of the following identifiers:
- BBCODE_REQUIRED: Non-empty content must be provided for this tag to
be properly converted. If empty content is provided by the user,
this tag will be rendered verbatim rather than formatted.
- BBCODE_OPTIONAL: (The most common setting.) Content is optional, and
may be provided by the user between the start tag and the end
tag.
- BBCODE_PROHIBIT: Content is disallowed. Generally, this is used in
conjunction with the 'end_tag' member (see below) when end tags are prohibited
as well as content.
- BBCODE_VERBATIM: Content is optional, but any tags or special formatting
contained within it will be ignored: The content is treated as
plain text, and is sent to the formatting function exactly as
given. If this is used in conjunction with BBCODE_MODE_SIMPLE,
the content will be passed through safety routines like
htmlspecialchars(), so you can safely use this in combination
with elements like <pre>, but not with elements like <xmp>. If this
is used with a formatting function, the formatting function will
be responsible for applying htmlspecialchars() or any other form
of cleanup necessary: The formatting function will receive the
exact text given by the user, whitespace included. This setting is generally
intended to be combined with the white-space:pre CSS rule applied to
the block that contains the verbatim content.
- 'before_tag' (Default value: "")
- 'after_tag' (Default value: "")
- 'before_endtag' (Default value: "")
- 'after_endtag' (Default value: "")
These settings collectively control how (non-newline) whitespace and
newlines are treated when placed in proximity to this tag or to its
end tag. For each setting, you use a simple pattern comprised of
the following characters to describe what to remove:
- s Remove any non-newline whitespace found.
- n Remove a single newline, if one exists.
- a Remove as many spaces and newlines as are found.
For 'before' removal, the pattern is matched backward from the tag;
for 'after' removal, the pattern is matched forward from the tag.
The default is the empty string, which means no whitespace or newlines
are to be removed.
Common examples:
's' Remove all non-newline whitespace
'sn' Remove all non-newline whitespace, then a single newline if it exists.
'ns' Remove a single newline if it exists, then all non-newline whitespace.
'sns' Remove all non-newline whitespace, then a single newline if it exists,
then any non-newline whitespace found past that newline.
- 'end_tag' (Default value: BBCODE_REQUIRED)
Must be exactly one of the following identifiers:
- BBCODE_REQUIRED: (The most common setting.) An ending [/tag] must be
provided if the starting [tag] is used; if no end tag is given by
the user, the start tag will be ignored and formatted verbatim.
- BBCODE_OPTIONAL: An end tag is optional, and the content of the start
tag extends until the end of this node of the document tree, or
to the end of the document, whichever comes first.
- BBCODE_PROHIBIT: An end tag is disallowed. The start tag has no
content, and is formatted as an isolated tag. If an end tag is
provided, it will be formatted verbatim. This is most useful
for tags like [rule] and [wiki] that have no content.
- 'allow_in' (Default value: array('block'))
This is an array that lists which other classes this tag may be
placed inside. See the description of content classes below
to understand how this is used.
- 'class' (Default value: 'block')
This describes what content-class this tag belongs to. There is one
special class, "block", which is used by the invisible "root tag" of the
BBCode tree, but may be used for other tags as well. See the description of
content classes below to understand how this is used.
[ Previous: A. Standard Smileys | Next: C. Content Classes ]
Copyright © 2010, the Phantom Inker. All rights reserved.