## VI. Appendices

[ Previous: C. Content Classes | Next: E. Common Rule Examples ]

### D. Template Flags

With an enhanced mode tag or the FillTemplate() function, you may add formatting flags to a variable after a slash character (`/`) to control how its text is cleaned up. By default, the text is unchanged, passed raw to the output. (Note: This differs from the behavior of NBBC v1.2 and earlier.) However, you can change this so that you do not have to manually encode your data: For example, using `{$variable/u}` instead of just `{$variable}` causes this variable to be passed through `urlencode()`, and using `{$variable/e}` causes this variable to be passed through HTMLEncode(). The available formatting flags are:

- `v` - Verbatim. Do not apply any formatting to the variable; use its exact text, however the user provided it. This overrides all other flags.
- `b` - Apply `basename()` to the variable.
- `n` - Apply `nl2br()` to the variable.
- `t` - Trim. This causes all initial and trailing whitespace to be trimmed (removed).
- `w` - Clean up whitespace. This causes all non-newline whitespace, such as control codes and tabs, to be collapsed into individual space characters.
- `e` - Apply `BBCode::HTMLEncode()` to the variable.
- `h` - Apply `htmlspecialchars()` to the variable.
- `k` - Apply `BBCode::Wikify()` to the variable.
- `u` - Apply `urlencode()` to the variable.

Note that only one of the 'e', 'h', 'k', or 'u' flags may be specified; these four flags are mutually-exclusive. Note also that the 'v' flag overrides all other flags, and can effectively be used during debugging to temporarily disable all formatting flags.

[ Previous: C. Content Classes | Next: E. Common Rule Examples ]

Copyright © 2010, the Phantom Inker. All rights reserved.