This file is indexed.

/usr/share/doc/libapache2-mod-python-doc/doc-html/ssi-globals.html is in libapache2-mod-python-doc 3.3.1-11.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<!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-conditionals.html" />
<link rel="prev" href="ssi-data-scope.html" />
<link rel="parent" href="ssi.html" />
<link rel="next" href="ssi-conditionals.html" />
<meta name='aesop' content='information' />
<title>6.4 Pre-propulating Globals</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.3 Scope of Global"
  href="ssi-data-scope.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.5 Conditional Expressions"
  href="ssi-conditionals.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-data-scope.html">6.3 Scope of Global</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-conditionals.html">6.5 Conditional Expressions</A>
</div>
<hr /></div>
</DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION008400000000000000000"></A><A NAME="ssi-globals"></A>
<BR>
6.4 Pre-propulating Globals
</H1>

<P>
Any Python code which appears within the page has to be compiled each time
the page is accessed before it is executed. In other words, the compiled
code is not cached between requests. To limit such recompilation and to
avoid duplication of common code amongst many pages, it is preferable to
pre-populate the global data from within a mod_python handler prior to the
page being processed.

<P>
In most cases, a fixup handler would be used for this purpose. For this to
work, first need to configure Apache so that it knows to call the fixup
handler.

<P>
<div class="verbatim"><pre>
PythonFixupHandler _handlers
</pre></div>

<P>
The implementation of the fixup handler contained in <code>_handlers.py</code>
then needs to create an instance of a Python dictionary, store that in the
mod_python request object as <code>ssi_globals</code> and then populate that
dictionary with any data to be available to the Python code executing
within the page.

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

import cgi, time

def _escape(object):
    return cgi.escape(str(object))

def _header(filter):
    print &gt;&gt; filter, '...'

def _footer(filter):
    print &gt;&gt; filter, '...'

def fixuphandler(req):
    req.ssi_globals = {}
    req.ssi_globals['time'] = time
    req.ssi_globals['_escape'] = _escape
    req.ssi_globals['_header'] = _header
    req.ssi_globals['_footer'] = _footer
    return apache.OK
</pre></div>

<P>
This is most useful where it is necessary to insert common information such
as headers, footers or menu panes which are dynamically generated into many
pages.

<P>
<div class="verbatim"><pre>
&lt;!--#python exec="
now = time.time()
" --&gt;
&lt;html&gt;
&lt;body&gt;
&lt;!--#python exec="_header(filter)" --&gt;
&lt;pre&gt;
&lt;!--#python eval="_escape(time.asctime(time.localtime(now)))"--&gt;
&lt;/pre&gt;
&lt;!--#python exec="_footer(filter)" --&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.3 Scope of Global"
  href="ssi-data-scope.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.5 Conditional Expressions"
  href="ssi-conditionals.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-data-scope.html">6.3 Scope of Global</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-conditionals.html">6.5 Conditional Expressions</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>