818b3710806c3cc4c394b46367750740b7b204ab
[privoxy.git] / templates / blocked
1 ##########################################################
2 #
3 # "Blocked" Error Output template for Privoxy.
4 #
5 #  NOTE: UNLIKE THE OTHER TEMPLATES, THIS ONE USES
6 #  JavaScript write() TO GENERATE THE PAGE IN JS_AWARE
7 #  BROWSERS. SYMBOL SUBSTITUTIONS THAT RESULT IN MULTILINE
8 #  STRINGS WILL BREAK THE JavaScript SYNTAX.
9 #  USE WITH CAUTION.
10 #
11 # USING HTML TEMPLATES:
12 # ---------------------
13 #
14 # Template files are written in plain HTML, with a few
15 # additions:
16 #
17 # - Lines that start with a '#' character like this one
18 #   are ignored
19 #
20 # - Each item in the below list of exported symbols will
21 #   be replaced by dynamically generated text, if they
22 #   are enclosed in '@'-characters. E.g. The string @version@
23 #   will be replaced by the version number of Privoxy.
24 #
25 # - One special application of this is to make whole blocks
26 #   of the HTML template disappear if the condition <name>
27 #   is not given. Simply enclose the block between the two
28 #   strings @if-<name>start and if-<name>-end@. The strings
29 #   should be placed in HTML comments (<!-- -->), so the
30 #   html structure won't be messed when the magic happens.
31 #
32 # USABLE SYMBOLS IN THIS TEMPLATE:
33 # --------------------------------
34 #
35 #  my-ip-addr:
36 #    The IP-address that the client used to reach this proxy
37 #  my-hostname:
38 #    The hostname associated with my-ip-addr
39 #  admin-address:
40 #    The email address of the pxoxy's administrator, as configured
41 #    in the config file
42 #  default-cgi:
43 #    The URL for the "main menu" builtin CGI of this proxy
44 #  menu:
45 #    List of <li> elements linking to the other available CGIs
46 #  version:
47 #    The version number of the proxy software
48 #  code-status:
49 #    The development status of the proxy software: "alpha", "beta",
50 #    or "stable".
51 #  homepage:
52 #    The URL of the SourceForge ijbswa project, who maintains this
53 #    software.
54 #
55 #  protocol:
56 #    The request's protocol: http:// or https://
57 #  hostport:
58 #    The host and port part of the blocked request's URL.
59 #  path:
60 #    The path part of the blocked request's URL.
61 #  path-ue:
62 #    The path part of the blocked request's URL, url-encoded.
63 #
64 #
65 # CONDITIONAL SYMBOLS FOR THIS TEMPLATE AND THEIR DEPANDANT SYMBOLS:
66 # ------------------------------------------------------------------
67 #
68 #  unstable:
69 #    This is an alpha or beta release of the proxy software
70 #  have-adminaddr-info:
71 #    An e-mail address for the local Privoxy administrator has
72 #    been specified and is available through the "admin-address"
73 #    symbol
74 #  have-proxy-info:
75 #    A URL for online documentation about this proxy has been
76 #    specified and is available through the "proxy-info-url"
77 #    symbol
78 #  have-help-info:
79 #    If either have-proxy-info is true or have-adminaddr-info is
80 #    true, have-help-info is true.  Used to conditionally include
81 #    a grey box for any and all help info.
82 #  force-support:
83 #    Privoxy has been compiled with support for forced loading
84 #    of blocked content. In that case, the symbol "force-prefix" is
85 #    avaiable, which translates to the FORCE_PREFIX
86 #
87 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
88 <html>
89  <head>
90   <title>Request blocked (Privoxy@@my-hostname@)</title>
91   <meta http-equiv="Content-Style-Type" content="text/css">
92   <meta http-equiv="Content-Script-Type" content="text/javascript">
93   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
94   <meta name="robots" content="noindex,nofollow">
95   <link rel="shortcut icon" href="@default-cgi@error-favicon.ico" type="image/x-icon">
96   <style type="text/css">
97 #include cgi-style.css
98   </style>
99   <script type="text/javascript" language="javascript">
100   <!--
101     /*
102      * Is this window or frame too small
103      * for the full-blown "blocked" page?
104      */
105     function isSmallFrame()
106     {
107        minWidth  = 650;
108        minHeight = 330;
109
110        /*
111         * Navigator, Mozilla, Opera
112         */
113        if (window.innerWidth
114            && (window.innerWidth >= minWidth)
115            && (window.innerHeight >= minHeight))
116        {
117           return false;
118        }
119
120        /*
121         * MSIE
122         */
123        else if (document.body && document.body.clientWidth
124                 && (document.body.clientWidth >= minWidth)
125                 && (document.body.clientHeight >= minHeight))
126        {
127           return false;
128        }
129
130        /*
131         * Small window or unsupported browser
132         */
133        return true;
134    }
135   //-->
136   </script>
137  </head>
138  <body>
139   <script type="text/javascript" language="javascript">
140   <!--
141 #   Note: The same small version is used at the bottom
142 #         of this file in the <noscript> context. If you
143 #         make changes here, keep the other version in sync!
144
145   if (isSmallFrame())
146   {
147      document.write('\
148    <p class="small" align="center"> \
149     Request blocked by <a href="@default-cgi@" target="_blank">Privoxy</a>: @block-reason@ \
150     <br>See <a href="@default-cgi@show-url-info?url=@hostport@@path-ue@" \
151      >why this block applies</a> \
152     <!-- @if-force-support-start --> \
153     or <a href="http://@hostport@@force-prefix@@path@">go \
154     <!-- if-force-support-end@ --> \
155     to <b>@protocol@@hostport@@path@</b> \
156     <!-- @if-force-support-start --> \
157     anyway</a>. \
158     <!-- if-force-support-end@ --> \
159    </p> \
160    ');
161
162   }
163   else
164   {
165      document.write('\
166   <table cellpadding="20" cellspacing="10" border="0" width="100%">\
167     <tr> \
168       <td class="status"> \
169         BLOCKED \
170       </td> \
171       <td class="title" width=100%> \
172          <h1> \
173           This is <a href="@homepage@">Privoxy</a> @version@ on @my-hostname@ (@my-ip-address@), port @my-port@, \
174           @if-enabled-display-then@enabled@else-not-enabled-display@disabled@endif-enabled-display@ \
175         </h1> \
176       </td> \
177     </tr> \
178  \
179 <!-- @if-unstable-start --> \
180 # This will only appear if CODE_STATUS is "alpha" or "beta". See configure.in \
181     <tr> \
182       <td class="warning" colspan="2"> \
183         <h2>Warning:</h2> \
184         <p> \
185           <b>Please note that this <font color=red>@code-status@</font> release \
186           of the proxy software is not intended for production systems! \
187           <br>Use at your own risk. See the <a href="@user-manual@copyright.html">license</a> for details.</b> \
188         </p> \
189       </td> \
190     </tr> \
191 <!-- if-unstable-end@ --> \
192  \
193     <tr> \
194       <td class="box" colspan="2"> \
195         <h2>Request for blocked URL</h2> \
196         <p>Your request for <b>@protocol@@hostport@@path@</b> was blocked. \
197          <br>Block reason: @block-reason@ \
198          <br><a href="@default-cgi@show-url-info?url=@hostport@@path-ue@" \
199           >See why this block applies</a> \
200 <!-- @if-force-support-start --> \
201           or <a href="http://@hostport@@force-prefix@@path@">go there anyway</a>. \
202 <!-- if-force-support-end@ --> \
203         </p> \
204       </td> \
205     </tr> \
206  \
207     <tr> \
208       <td class="box" colspan="2"> \
209         <h2>More Privoxy:</h2> \
210         <ul>@menu@<li><a href="@user-manual@">Documentation</a></li></ul> \
211       </td> \
212     </tr> \
213  \
214     <tr> \
215       <td class="info" colspan="2"> \
216         <big><b>Support and Service:</b></big> \
217         <p> \
218           The Privoxy Team values your feedback. \
219         </p> \
220         <p> \
221           Please have a look at the User Manual to learn how to \
222           <a title="Privoxy User Manual: Contacting the developers, Bug Reporting and Feature Requests" \
223            href="@user-manual@contact.html">get support or report problems</a>. \
224         <p> \
225           If you want to support the Privoxy Team, you can \
226           <a href="https://www.privoxy.org/faq/general.html#PARTICIPATE">participate</a> \
227           or <a href="https://www.privoxy.org/faq/general.html#DONATE">donate</a>. \
228         </p> \
229       </td> \
230     </tr> \
231  \
232 <!-- @if-have-help-info-start --> \
233     <tr> \
234       <td class="info" colspan="2"> \
235         <h2>Local Privoxy support:</h2> \
236  \
237 <!-- @if-have-proxy-info-start --> \
238         <p>You can consult the <a href="@proxy-info-url@">online documentation</a> for more information about this Privoxy installation.</p> \
239 <!-- if-have-proxy-info-end@ --> \
240  \
241 <!-- @if-have-adminaddr-info-start --> \
242         <p>Address e-mail questions about this service to \
243           <a href="mailto:@admin-address@"><code>@admin-address@</code></a>, \
244           who will be glad to help you. \
245         </p> \
246 <!-- if-have-adminaddr-info-end@ --> \
247       </td> \
248     </tr> \
249 <!-- if-have-help-info-end@ --> \
250  \
251   </table> \
252      ');
253   }
254   //-->
255   </script>
256
257 #   Note: The same small version is used above via JavaScript
258 #         If you make changes here, keep the other version in sync!
259
260   <noscript>
261    <p class="small" align="center">
262     Request blocked by <a href="@default-cgi@">Privoxy</a>: @block-reason@
263     <br>See <a href="@default-cgi@show-url-info?url=@hostport@@path-ue@"
264      >why this block applies</a>
265     <!-- @if-force-support-start -->
266     or <a href="http://@hostport@@force-prefix@@path@">go
267     <!-- if-force-support-end@ -->
268     to <b>@protocol@@hostport@@path@</b>
269     <!-- @if-force-support-start -->
270     anyway</a>.
271     <!-- if-force-support-end@ -->
272    </p>
273   </noscript>
274
275  </body>
276 </html>