Table of Contents
Introduction
Information Tags
String Tags
Variable Tags
URL Tags
If Tags
Graphics Tags
Database Tags
Programming Tags
Supports System
SSI
htaccess
Image Maps
Appendix
|
<if> ... </if>
|
 |
<if> is defined in the Main RXML parser module.
<if> is used to conditionally show its contents.
<else>, <elif> or <elseif> can be used to
suggest alternative content.
It is possible to use glob patterns in almost all attributes, where
* means match zero or more characters while ? matches one character.
* Thus t*f?? will match trainfoo as well as
* tfoo but not trainfork or tfo.
|
Attributes
|
 |
accept,
config,
cookie,
date,
defined,
domain,
eval,
exists,
filename,
host,
language,
match,
name,
prestate,
referrer,
supports,
time,
user,
variable,
after,
and,
before,
file,
group,
inclusive,
wwwfile,
not,
or,
|
|
Attributes
- accept=type1[,type2,...]
-
Returns true is the browser accept certain content types as specified
by it's Accept-header, for example image/jpeg or
text/html. If browser states that it accepts */* that is not
taken in to account as this is always untrue.
- config=name
-
Has the config been set by use of the <aconf> tag?
- cookie=name[ is value]
-
Does the cookie exist and if value is given, does it contain
the value value?
- date=yyyymmdd
-
Is the date yyyymmdd? The attributes before,
after and inclusive modifies the behavior.
- defined=define
-
Is the define defined?
- domain=pattern[,pattern...]
-
Does the users computer's DNS name match any of the patterns? Note
that domain names are resolved asynchronously, and the the first time
someone accesses a page, the domain name will probably not have been
resolved.
- eval=RXML expression
-
Returns true if RXML expression returns a string that
evaluates to true if casted to an integer in Pike, i.e. the string
begins with 1-9 or a number of zeroes followed by 1-7 (octal greater
than zero).
Future versions of Roxen (starting from version 1.4) will
evaluate to true on a number of zeroes followed by 1-9 (decimal
greater than zero).
- exists=path
-
Returns true if the file path exists. If path
does not begin with /, it is assumed to be a URL relative
to the directory containing the page with the <if>-statement.
- filename=filepattern1[,filepattern2,...]
-
Returns true if the current page is among the listed filepatterns.
- host=pattern[,pattern...]
-
Does the users computers IP address match any of the patterns?
- language=language1[,lang2,...]
-
Does the client prefer one of the languages listed, as specified by
the Accept-Language header?
- match=string[ is pattern[,pattern,...]]
-
Does the string match one of the patterns?
- name=pattern[,pattern...]
-
Does the full name of the browser match any of the patterns?
- prestate=option1[,option2, ...]
-
Are all of the specified prestate options present in the URL?
- referrer=[=pattern[,pattern,...]]
-
Does the referrer header match any of the patterns?
- supports=feature
-
Does the browser support this feature? See the support feature page page for a list
of all available features.
- time=ttmm
-
Is the date ttmm? The attributes before, after
and inclusive modifies the behavior.
- user=name[,name,...]|any
-
Has the user been authenticated as one of these users? If any
is given as argument, any authenticated user will do.
- variable=name[ is pattern]
-
Does the variable exist and, optionally, does it's content match the
pattern?
Modifier Attributes
- after
-
Used together with the date attribute.
- and
-
If several conditional attributes are given all must be true for the
contents to be shown. This is the default behavior.
- before
-
Used together with the date attribute.
- file=path
-
Used together with the user attribute. An external file
will be used to authenticate the user, rather than the current
Authentication module. The file should have the following
format:
user name : encrypted password
user name : encrypted password
Unless the wwwfile attribute is given the path is a path
in the computers real file system, rather than Challenger's virtual
file system.
- group=group, groupfile path
-
Used together with the user attribute to check if the
current user is a member of the group according the the groupfile. The
groupfile is of the following format:
group : user1, user2, user3
group : user4
- inclusive
-
Used together with the date and before or
after attributes. The contents will also be shown if the
date is the current date.
- wwwfile
-
Used together with the file attribute to indicate what
Challenger's virtual file system should be used to find the password
file. This might be a security hazard, since anyone will be able to
read the password file.
- not
-
Inverts the results of all tests.
- or
-
If several conditional attributes are given, only one of them has to
be true for the contents to be shown.
Complex expressions
You might be tempted to write expressions like:
{if variable="foo is bar" or variable="bar is
foo"}Something{/if}
This will not work, as you can only use an attribute once.
Another common problem is a misconception of how the
and, or and not attributes work.
{if user=foo or not domain="*.foobar.com"}...{/if}
will not work since the not attribute negates the whole
tag, not just the domain attribute.
Example
source code
|
Your browser supports tables.
"=> >
|
 |
|
result
|
Your browser supports tables.
|
|
source code
|
You are logged in.
You are not logged in.
"=> >
|
 |
|
result
|
You are logged in.
You are not logged in.
|
|
source code
|
The year 2000 is yet to come.
"=> >
|
 |
|
result
|
The year 2000 is yet to come.
|
|
|