Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 15533144ea879a3ee7f2cdcbb31e4859 > files > 130

apache-mod_python-doc-3.3.1-12mdv2010.0.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="modpython.css" type='text/css' />
<link rel="first" href="modpython.html" title='Mod_python Manual' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="ssi-output-filter.html" />
<link rel="prev" href="ssi-globals.html" />
<link rel="parent" href="ssi.html" />
<link rel="next" href="ssi-output-filter.html" />
<meta name='aesop' content='information' />
<title>6.5 Conditional Expressions</title>
</head>
<body>
<DIV CLASS="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.4 Pre-propulating Globals"
  href="ssi-globals.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="6. Server Side Includes"
  href="ssi.html"><img src='up.png'
  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="6.6 Enabling INCLUDES Filter"
  href="ssi-output-filter.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Mod_python Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='contents.png'
  border='0' height='32'  alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='index.png'
  border='0' height='32'  alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="ssi-globals.html">6.4 Pre-propulating Globals</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="ssi.html">6. Server Side Includes</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="ssi-output-filter.html">6.6 Enabling INCLUDES Filter</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION008500000000000000000"></A><A NAME="ssi-conditionals"></A>
<BR>
6.5 Conditional Expressions
</H1>

<P>
SSI allows for some programmability in its own right through the use of
conditional expressions. The structure of this conditional construct is:

<P>
<div class="verbatim"><pre>
&lt;!--#if expr="test_condition" --&gt;
&lt;!--#elif expr="test_condition" --&gt;
&lt;!--#else --&gt;
&lt;!--#endif --&gt;
</pre></div>

<P>
A test condition can be any sort of logical comparison, either comparing
values to one another, or testing the 'truth' of a particular value.

<P>
The source of variables used in conditional expressions is distinct from
the set of global data used by the Python code executed within a page.
Instead, the variables are sourced from the <code>subprocess_env</code> table
object contained within the request object. The values of these variables
can be set from within a page using the SSI 'set' directive, or by a range
of other Apache directives within the Apache configuration files such as
<code>BrowserMatchNoCase</code> and <code>SetEnvIf</code>.

<P>
To set these variables from within a mod_python handler, the
<code>subprocess_env</code> table object would be manipulated directly through
the request object.

<P>
<div class="verbatim"><pre>
from mod_python import apache

def fixuphandler(req):
    debug = req.get_config().get('PythonDebug', '0')
    req.subprocess_env['DEBUG'] = debug
    return apache.OK
</pre></div>

<P>
If being done from within Python code contained within the page itself, the
request object would first have to be accessed via the filter object.

<P>
<div class="verbatim"><pre>
&lt;!--#python exec="
debug = filter.req.get_config().get('PythonDebug', '0')
filter.req.subprocess_env['DEBUG'] = debug
" --&gt;
&lt;html&gt;
&lt;body&gt;
&lt;!--#if expr="${DEBUG} != 0" --&gt;
DEBUG ENABLED
&lt;!--#else --&gt;
DEBUG DISABLED
&lt;!--#endif --&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre></div>

<P>

<DIV CLASS="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.4 Pre-propulating Globals"
  href="ssi-globals.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></A></td>
<td class='online-navigation'><a rel="parent" title="6. Server Side Includes"
  href="ssi.html"><img src='up.png'
  border='0' height='32'  alt='Up One Level' width='32' /></A></td>
<td class='online-navigation'><a rel="next" title="6.6 Enabling INCLUDES Filter"
  href="ssi-output-filter.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></A></td>
<td align="center" width="100%">Mod_python Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='contents.png'
  border='0' height='32'  alt='Contents' width='32' /></A></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='index.png'
  border='0' height='32'  alt='Index' width='32' /></A></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="ssi-globals.html">6.4 Pre-propulating Globals</A>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="ssi.html">6. Server Side Includes</A>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="ssi-output-filter.html">6.6 Enabling INCLUDES Filter</A>
</div>
</div>
<hr />
<span class="release-info">Release 3.3.1, documentation updated on January 29, 2007.</span>
</DIV>
<!--End of Navigation Panel-->

</BODY>
</HTML>