Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | ##---------------------------------------------------------------------------## |
2 | ## File: | |
3 | ## $Id: mhidxrc.pl,v 2.12 2002/09/04 04:09:30 ehood Exp $ | |
4 | ## Author: | |
5 | ## Earl Hood mhonarc@mhonarc.org | |
6 | ## Description: | |
7 | ## MHonArc library defining values for various index resources | |
8 | ##---------------------------------------------------------------------------## | |
9 | ## MHonArc -- Internet mail-to-HTML converter | |
10 | ## Copyright (C) 1996-1999 Earl Hood, mhonarc@mhonarc.org | |
11 | ## | |
12 | ## This program is free software; you can redistribute it and/or modify | |
13 | ## it under the terms of the GNU General Public License as published by | |
14 | ## the Free Software Foundation; either version 2 of the License, or | |
15 | ## (at your option) any later version. | |
16 | ## | |
17 | ## This program is distributed in the hope that it will be useful, | |
18 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | ## GNU General Public License for more details. | |
21 | ## | |
22 | ## You should have received a copy of the GNU General Public License | |
23 | ## along with this program; if not, write to the Free Software | |
24 | ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
25 | ## 02111-1307, USA | |
26 | ##---------------------------------------------------------------------------## | |
27 | ||
28 | package mhonarc; | |
29 | ||
30 | sub mhidxrc_set_vars { | |
31 | ||
32 | ##-----------------## | |
33 | ## Index resources ## | |
34 | ##-----------------## | |
35 | ||
36 | $IdxTypeStr = $NOSORT ? 'Message' : | |
37 | $SUBSORT ? 'Subject' : | |
38 | $AUTHSORT ? 'Author' : | |
39 | 'Date'; | |
40 | ## MAIN index resources | |
41 | ## if ($MAIN) { | |
42 | ||
43 | ## Label for main index | |
44 | unless ($IDXLABEL) { | |
45 | $IDXLABEL = $IdxTypeStr . ' Index'; | |
46 | $IsDefault{'IDXLABEL'} = 1; | |
47 | } | |
48 | ||
49 | ## Beginning of main index page | |
50 | unless ($IDXPGBEG) { | |
51 | $IDXPGBEG =<<'EndOfStr'; | |
52 | <!doctype html public "-//W3C//DTD HTML//EN"> | |
53 | <html> | |
54 | <head> | |
55 | <title>$IDXTITLE$</title> | |
56 | </head> | |
57 | <body> | |
58 | <h1>$IDXTITLE$</h1> | |
59 | EndOfStr | |
60 | $IsDefault{'IDXPGBEG'} = 1; | |
61 | } | |
62 | ||
63 | ## End of main index page | |
64 | unless ($IDXPGEND) { | |
65 | $IDXPGEND = "</body>\n</html>\n"; | |
66 | $IsDefault{'IDXPGEND'} = 1; | |
67 | } | |
68 | ||
69 | ## Beginning of main index list | |
70 | unless ($LIBEG) { | |
71 | $LIBEG = ''; | |
72 | $LIBEG .= "<ul>\n" . | |
73 | '<li><a href="$TIDXFNAME$">$TIDXLABEL$</a></li>' . | |
74 | "\n</ul>\n" if $THREAD; | |
75 | $LIBEG .= '$PGLINK(PREV)$$PGLINK(NEXT)$' . "\n" if $MULTIIDX; | |
76 | $LIBEG .= "<hr>\n<ul>\n"; | |
77 | $IsDefault{'LIBEG'} = 1; | |
78 | } | |
79 | ||
80 | ## End of main index list | |
81 | unless ($LIEND) { | |
82 | $LIEND = "</ul>\n"; | |
83 | $IsDefault{'LIEND'} = 1; | |
84 | } | |
85 | ||
86 | ## Main index entry (start, content, and end) | |
87 | unless ($LITMPL) { | |
88 | $LITMPL = qq|<li><strong>\$SUBJECT\$</strong>\n| . | |
89 | qq|<ul><li><em>From</em>: |; | |
90 | if ($SpamMode) { | |
91 | $LITMPL .= q|$FROMNAME$|; | |
92 | } else { | |
93 | $LITMPL .= q|$FROM$|; | |
94 | } | |
95 | $LITMPL .= qq|</li></ul>\n</li>\n|; | |
96 | $IsDefault{'LITMPL'} = 1; | |
97 | } | |
98 | ||
99 | ## Main list group resources | |
100 | unless ($AUTHBEG) { | |
101 | $AUTHBEG = ''; $IsDefault{'AUTHBEG'} = 1; | |
102 | } | |
103 | unless ($AUTHEND) { | |
104 | $AUTHEND = ''; $IsDefault{'AUTHEND'} = 1; | |
105 | } | |
106 | unless ($DAYBEG) { | |
107 | $DAYBEG = ''; $IsDefault{'DAYBEG'} = 1; | |
108 | } | |
109 | unless ($DAYEND) { | |
110 | $DAYEND = ''; $IsDefault{'DAYEND'} = 1; | |
111 | } | |
112 | unless ($SUBJECTBEG) { | |
113 | $SUBJECTBEG = ''; $IsDefault{'SUBJECTBEG'} = 1; | |
114 | } | |
115 | unless ($SUBJECTEND) { | |
116 | $SUBJECTEND = ''; $IsDefault{'SUBJECTEND'} = 1; | |
117 | } | |
118 | ||
119 | ## } | |
120 | ||
121 | ## THREAD index resources | |
122 | ## if ($THREAD) { | |
123 | ||
124 | ## Label for thread index | |
125 | unless ($TIDXLABEL) { | |
126 | $TIDXLABEL = 'Thread Index'; | |
127 | $IsDefault{'TIDXLABEL'} = 1; | |
128 | } | |
129 | ||
130 | ## Beginning of thread index page | |
131 | unless ($TIDXPGBEG) { | |
132 | $TIDXPGBEG =<<'EndOfStr'; | |
133 | <!doctype html public "-//W3C//DTD HTML//EN"> | |
134 | <html> | |
135 | <head> | |
136 | <title>$TIDXTITLE$</title> | |
137 | </head> | |
138 | <body> | |
139 | <h1>$TIDXTITLE$</h1> | |
140 | EndOfStr | |
141 | $IsDefault{'TIDXPGBEG'} = 1; | |
142 | } | |
143 | ## End of thread index page | |
144 | unless ($TIDXPGEND) { | |
145 | $TIDXPGEND = "</body>\n</html>\n"; | |
146 | $IsDefault{'TIDXPGEND'} = 1; | |
147 | } | |
148 | ||
149 | ## Head of thread index page (also contains list start markup) | |
150 | unless ($THEAD) { | |
151 | $THEAD = ''; | |
152 | $THEAD .= "<ul>\n" . | |
153 | '<li><a href="$IDXFNAME$">$IDXLABEL$</a></li>' . | |
154 | "\n</ul>\n" if $MAIN; | |
155 | $THEAD .= '$PGLINK(TPREV)$$PGLINK(TNEXT)$' . "\n" if $MULTIIDX; | |
156 | $THEAD .= "<hr>\n<ul>\n"; | |
157 | $IsDefault{'THEAD'} = 1; | |
158 | } | |
159 | ## Foot of thread index page (also contains list end markup) | |
160 | unless ($TFOOT) { | |
161 | $TFOOT = "</ul>\n"; | |
162 | $IsDefault{'TFOOT'} = 1; | |
163 | } | |
164 | ||
165 | ## Template for thread entry with no follow-ups | |
166 | unless ($TSINGLETXT) { | |
167 | $TSINGLETXT =<<'EndOfStr'; | |
168 | <li><strong>$SUBJECT$</strong>, | |
169 | <em>$FROMNAME$</em></li> | |
170 | EndOfStr | |
171 | $IsDefault{'TSINGLETXT'} = 1; | |
172 | } | |
173 | ||
174 | ## Template for thread entry that is the start of a thread | |
175 | unless ($TTOPBEG) { | |
176 | $TTOPBEG =<<'EndOfStr'; | |
177 | <li><strong>$SUBJECT$</strong>, | |
178 | <em>$FROMNAME$</em> | |
179 | EndOfStr | |
180 | $IsDefault{'TTOPBEG'} = 1; | |
181 | } | |
182 | ## Template for end of a thread | |
183 | unless ($TTOPEND) { | |
184 | $TTOPEND = "</li>\n"; | |
185 | $IsDefault{'TTOPEND'} = 1; | |
186 | } | |
187 | ||
188 | ## Template for the start of a sub-thread | |
189 | unless ($TSUBLISTBEG) { | |
190 | $TSUBLISTBEG = "<ul>\n"; | |
191 | $IsDefault{'TSUBLISTBEG'} = 1; | |
192 | } | |
193 | ## Template for the end of a sub-thread | |
194 | unless ($TSUBLISTEND) { | |
195 | $TSUBLISTEND = "</ul>\n"; | |
196 | $IsDefault{'TSUBLISTEND'} = 1; | |
197 | } | |
198 | ||
199 | ## Template for the start and content of a regular thread entry | |
200 | unless ($TLITXT) { | |
201 | $TLITXT =<<'EndOfStr'; | |
202 | <li><strong>$SUBJECT$</strong>, | |
203 | <em>$FROMNAME$</em> | |
204 | EndOfStr | |
205 | $IsDefault{'TLITXT'} = 1; | |
206 | } | |
207 | ## Template for end of a regular thread entry | |
208 | unless ($TLIEND) { | |
209 | $TLIEND = "</li>\n"; | |
210 | $IsDefault{'TLIEND'} = 1; | |
211 | } | |
212 | ||
213 | ## Template for the start of subject based section | |
214 | unless ($TSUBJECTBEG) { | |
215 | $TSUBJECTBEG = "<li><Possible follow-ups></li>\n"; | |
216 | $IsDefault{'TSUBJECTBEG'} = 1; | |
217 | } | |
218 | ## Template for the end of subject based section | |
219 | unless ($TSUBJECTEND) { | |
220 | $TSUBJECTEND = " "; | |
221 | $IsDefault{'TSUBJECTEND'} = 1; | |
222 | } | |
223 | ||
224 | ## Template for start and content of missing message in thread | |
225 | unless ($TLINONE) { | |
226 | $TLINONE = "<li><em>Message not available</em>"; | |
227 | $IsDefault{'TLINONE'} = 1; | |
228 | } | |
229 | ## Template for end of missing message in thread | |
230 | unless ($TLINONEEND) { | |
231 | $TLINONEEND = "</li>\n"; | |
232 | $IsDefault{'TLINONEEND'} = 1; | |
233 | } | |
234 | ||
235 | ## Template for opening an indent (for cross-page threads) | |
236 | unless ($TINDENTBEG) { | |
237 | $TINDENTBEG = "<ul>\n"; | |
238 | $IsDefault{'TINDENTBEG'} = 1; | |
239 | } | |
240 | ## Template for closing an indent (for cross-page threads) | |
241 | unless ($TINDENTEND) { | |
242 | $TINDENTEND = "</ul>\n"; | |
243 | $IsDefault{'TINDENTEND'} = 1; | |
244 | } | |
245 | ||
246 | ## Template for start of a continued thread (for cross-page threads) | |
247 | unless ($TCONTBEG) { | |
248 | $TCONTBEG = '<li><strong>$SUBJECTNA$</strong>, ' . | |
249 | "<em>(continued)</em>\n"; | |
250 | $IsDefault{'TCONTBEG'} = 1; | |
251 | } | |
252 | ## Template for end of a continued thread (for cross-page threads) | |
253 | unless ($TCONTEND) { | |
254 | $TCONTEND = "</li>\n"; | |
255 | $IsDefault{'TCONTEND'} = 1; | |
256 | } | |
257 | ||
258 | $DoMissingMsgs = $TLINONE =~ /\S/; | |
259 | ||
260 | ## } | |
261 | ||
262 | ## Thread Slice Resources | |
263 | unless ($TSLICEBEG) { | |
264 | $TSLICEBEG = "<blockquote><ul>\n"; | |
265 | $IsDefault{'TSLICEBEG'} = 1; | |
266 | } | |
267 | unless ($TSLICEEND) { | |
268 | $TSLICEEND = "</ul></blockquote>\n"; | |
269 | $IsDefault{'TSLICEEND'} = 1; | |
270 | } | |
271 | ||
272 | if ($TSLICELEVELS < 0) { | |
273 | $TSLICELEVELS = $TLEVELS; | |
274 | $IsDefault{'TSLICELEVELS'} = 1; | |
275 | } | |
276 | ||
277 | unless ($TSLICESINGLETXT) { | |
278 | $TSLICESINGLETXT = $TSINGLETXT; | |
279 | $IsDefault{'TSLICESINGLETXT'} = 1; | |
280 | } | |
281 | unless ($TSLICETOPBEG) { | |
282 | $TSLICETOPBEG = $TTOPBEG; | |
283 | $IsDefault{'TSLICETOPBEG'} = 1; | |
284 | } | |
285 | unless ($TSLICETOPEND) { | |
286 | $TSLICETOPEND = $TTOPEND; | |
287 | $IsDefault{'TSLICETOPEND'} = 1; | |
288 | } | |
289 | unless ($TSLICESUBLISTBEG) { | |
290 | $TSLICESUBLISTBEG = $TSUBLISTBEG; | |
291 | $IsDefault{'TSLICESUBLISTBEG'} = 1; | |
292 | } | |
293 | unless ($TSLICESUBLISTEND) { | |
294 | $TSLICESUBLISTEND = $TSUBLISTEND; | |
295 | $IsDefault{'TSLICESUBLISTEND'} = 1; | |
296 | } | |
297 | unless ($TSLICELITXT) { | |
298 | $TSLICELITXT = $TLITXT; | |
299 | $IsDefault{'TSLICELITXT'} = 1; | |
300 | } | |
301 | unless ($TSLICELIEND) { | |
302 | $TSLICELIEND = $TLIEND; | |
303 | $IsDefault{'TSLICELIEND'} = 1; | |
304 | } | |
305 | unless ($TSLICELINONE) { | |
306 | $TSLICELINONE = $TLINONE; | |
307 | $IsDefault{'TSLICELINONE'} = 1; | |
308 | } | |
309 | unless ($TSLICELINONEEND) { | |
310 | $TSLICELINONEEND = $TLINONEEND; | |
311 | $IsDefault{'TSLICELINONEEND'} = 1; | |
312 | } | |
313 | unless ($TSLICESUBJECTBEG) { | |
314 | $TSLICESUBJECTBEG = $TSUBJECTBEG; | |
315 | $IsDefault{'TSLICESUBJECTBEG'} = 1; | |
316 | } | |
317 | unless ($TSLICESUBJECTEND) { | |
318 | $TSLICESUBJECTEND = $TSUBJECTEND; | |
319 | $IsDefault{'TSLICESUBJECTEND'} = 1; | |
320 | } | |
321 | unless ($TSLICEINDENTBEG) { | |
322 | $TSLICEINDENTBEG = $TINDENTBEG; | |
323 | $IsDefault{'TSLICEINDENTBEG'} = 1; | |
324 | } | |
325 | unless ($TSLICEINDENTEND) { | |
326 | $TSLICEINDENTEND = $TINDENTEND; | |
327 | $IsDefault{'TSLICEINDENTEND'} = 1; | |
328 | } | |
329 | unless ($TSLICECONTBEG) { | |
330 | $TSLICECONTBEG = $TCONTBEG; | |
331 | $IsDefault{'TSLICECONTBEG'} = 1; | |
332 | } | |
333 | unless ($TSLICECONTEND) { | |
334 | $TSLICECONTEND = $TCONTEND; | |
335 | $IsDefault{'TSLICECONTEND'} = 1; | |
336 | } | |
337 | ||
338 | unless ($TSLICESINGLETXTCUR) { | |
339 | $TSLICESINGLETXTCUR = $TSLICESINGLETXT; | |
340 | $IsDefault{'TSLICESINGLETXTCUR'} = 1; | |
341 | } | |
342 | unless ($TSLICETOPBEGCUR) { | |
343 | $TSLICETOPBEGCUR = $TSLICETOPBEG; | |
344 | $IsDefault{'TSLICETOPBEGCUR'} = 1; | |
345 | } | |
346 | unless ($TSLICETOPENDCUR) { | |
347 | $TSLICETOPENDCUR = $TSLICETOPEND; | |
348 | $IsDefault{'TSLICETOPENDCUR'} = 1; | |
349 | } | |
350 | unless ($TSLICELITXTCUR) { | |
351 | $TSLICELITXTCUR = $TSLICELITXT; | |
352 | $IsDefault{'TSLICELITXTCUR'} = 1; | |
353 | } | |
354 | unless ($TSLICELIENDCUR) { | |
355 | $TSLICELIENDCUR = $TSLICELIEND; | |
356 | $IsDefault{'TSLICELIENDCUR'} = 1; | |
357 | } | |
358 | ||
359 | ##-------------------## | |
360 | ## Message resources ## | |
361 | ##-------------------## | |
362 | ||
363 | unless (@DateFields) { | |
364 | @DateFields = ('received', 'date'); | |
365 | @_DateFields = ( ['received',0], ['date',0] ); | |
366 | $IsDefault{'DATEFIELDS'} = 1; | |
367 | } else { | |
368 | local($_); | |
369 | my $f; | |
370 | foreach (@DateFields) { | |
371 | s/\s//g; tr/A-Z/a-z/; | |
372 | $f = $_; | |
373 | if ($f =~ s/\[(\d+)\]//) { | |
374 | push(@_DateFields, [ $f, $1 ]); | |
375 | } else { | |
376 | push(@_DateFields, [ $f, 0 ]); | |
377 | } | |
378 | } | |
379 | } | |
380 | unless (@FromFields) { | |
381 | @FromFields = ('from', 'mail-reply-to', 'reply-to', 'return-path', | |
382 | 'apparently-from', 'sender', 'resent-sender'); | |
383 | $IsDefault{'FROMFIELDS'} = 1; | |
384 | } | |
385 | ||
386 | ## Beginning of message page | |
387 | unless ($MSGPGBEG) { | |
388 | $MSGPGBEG =<<'EndOfStr'; | |
389 | <!doctype html public "-//W3C//DTD HTML//EN"> | |
390 | <html> | |
391 | <head> | |
392 | <title>$SUBJECTNA$</title> | |
393 | EndOfStr | |
394 | ||
395 | $MSGPGBEG .= qq|<link rev="made" href="mailto:\$FROMADDR\$">\n| | |
396 | unless $SpamMode; | |
397 | $MSGPGBEG .= "</head>\n<body>\n"; | |
398 | $IsDefault{'MSGPGBEG'} = 1; | |
399 | } | |
400 | ||
401 | ## End of message page | |
402 | unless ($MSGPGEND) { | |
403 | $MSGPGEND = "</body>\n</html>\n"; | |
404 | $IsDefault{'MSGPGEND'} = 1; | |
405 | } | |
406 | ||
407 | ## Subject header | |
408 | unless ($SUBJECTHEADER) { | |
409 | $SUBJECTHEADER = '<h1>$SUBJECTNA$</h1>' . "\n<hr>\n"; | |
410 | $IsDefault{'SUBJECTHEADER'} = 1; | |
411 | } | |
412 | ||
413 | ## Separator between message data head and message data body | |
414 | unless ($HEADBODYSEP) { | |
415 | $HEADBODYSEP = "<hr>\n"; | |
416 | $IsDefault{'HEADBODYSEP'} = 1; | |
417 | } | |
418 | ||
419 | ## Separator between end of message data and rest of page | |
420 | unless ($MSGBODYEND) { | |
421 | $MSGBODYEND = "<hr>\n"; | |
422 | $IsDefault{'MSGBODYEND'} = 1; | |
423 | } | |
424 | ||
425 | ##---------------------------------## | |
426 | ## Mail header formating resources ## | |
427 | ##---------------------------------## | |
428 | ||
429 | $FIELDSBEG = "<ul>\n", $IsDefault{'FIELDSBEG'} = 1 unless $FIELDSBEG; | |
430 | $FIELDSEND = "</ul>\n", $IsDefault{'FIELDSEND'} = 1 unless $FIELDSEND; | |
431 | $LABELBEG = "<li>", $IsDefault{'LABELBEG'} = 1 unless $LABELBEG; | |
432 | $LABELEND = ":", $IsDefault{'LABELEND'} = 1 unless $LABELEND; | |
433 | $FLDBEG = " ", $IsDefault{'FLDBEG'} = 1 unless $FLDBEG; | |
434 | $FLDEND = "</li>", $IsDefault{'FLDEND'} = 1 unless $FLDEND; | |
435 | ||
436 | ##-----------------------------------## | |
437 | ## Next/prev message link resources ## | |
438 | ##-----------------------------------## | |
439 | ||
440 | ## Next/prev buttons | |
441 | $NEXTBUTTON = '[<a href="$MSG(NEXT)$">'.$IdxTypeStr.' Next</a>]', | |
442 | $IsDefault{'NEXTBUTTON'} = 1 unless $NEXTBUTTON; | |
443 | $PREVBUTTON = '[<a href="$MSG(PREV)$">'.$IdxTypeStr.' Prev</a>]', | |
444 | $IsDefault{'PREVBUTTON'} = 1 unless $PREVBUTTON; | |
445 | $NEXTBUTTONIA = "[$IdxTypeStr Next]", | |
446 | $IsDefault{'NEXTBUTTONIA'} = 1 unless $NEXTBUTTONIA; | |
447 | $PREVBUTTONIA = "[$IdxTypeStr Prev]", | |
448 | $IsDefault{'PREVBUTTONIA'} = 1 unless $PREVBUTTONIA; | |
449 | ||
450 | ## Next message link | |
451 | unless ($NEXTLINK) { | |
452 | $NEXTLINK =<<EndOfStr; | |
453 | <li>Next by $IdxTypeStr: | |
454 | <strong><a href="\$MSG(NEXT)\$">\$SUBJECT(NEXT)\$</a></strong> | |
455 | </li> | |
456 | EndOfStr | |
457 | $IsDefault{'NEXTLINK'} = 1; | |
458 | } | |
459 | ||
460 | ## Inactive next message link | |
461 | $NEXTLINKIA = '', $IsDefault{'NEXTLINKIA'} = 1 unless $NEXTLINKIA; | |
462 | ||
463 | ## Previous message link | |
464 | unless ($PREVLINK) { | |
465 | $PREVLINK =<<EndOfStr; | |
466 | <li>Prev by $IdxTypeStr: | |
467 | <strong><a href="\$MSG(PREV)\$">\$SUBJECT(PREV)\$</a></strong> | |
468 | </li> | |
469 | EndOfStr | |
470 | $IsDefault{'PREVLINK'} = 1; | |
471 | } | |
472 | ||
473 | ## Inactive previous message link | |
474 | $PREVLINKIA = '', $IsDefault{'PREVLINKIA'} = 1 unless $PREVLINKIA; | |
475 | ||
476 | ## Thread next/previous buttons | |
477 | $TNEXTBUTTON = '[<a href="$MSG(TNEXT)$">Thread Next</a>]', | |
478 | $IsDefault{'TNEXTBUTTON'} = 1 unless $TNEXTBUTTON; | |
479 | $TPREVBUTTON = '[<a href="$MSG(TPREV)$">Thread Prev</a>]', | |
480 | $IsDefault{'TPREVBUTTON'} = 1 unless $TPREVBUTTON; | |
481 | $TNEXTBUTTONIA = '[Thread Next]', | |
482 | $IsDefault{'TNEXTBUTTONIA'} = 1 unless $TNEXTBUTTONIA; | |
483 | $TPREVBUTTONIA = '[Thread Prev]', | |
484 | $IsDefault{'TPREVBUTTONIA'} = 1 unless $TPREVBUTTONIA; | |
485 | ||
486 | $TNEXTINBUTTON = '[<a href="$MSG(TNEXTIN)$">Next in Thread</a>]', | |
487 | $IsDefault{'TNEXTINBUTTON'} = 1 unless $TNEXTINBUTTON; | |
488 | $TNEXTINBUTTONIA = '[Next in Thread]', | |
489 | $IsDefault{'TNEXTINBUTTONIA'} = 1 unless $TNEXTINBUTTONIA; | |
490 | $TPREVINBUTTON = '[<a href="$MSG(TPREVIN)$">Prev in Thread</a>]', | |
491 | $IsDefault{'TPREVINBUTTON'} = 1 unless $TPREVINBUTTON; | |
492 | $TPREVINBUTTONIA = '[Prev in Thread]', | |
493 | $IsDefault{'TPREVINBUTTONIA'} = 1 unless $TPREVINBUTTONIA; | |
494 | ||
495 | $TNEXTTOPBUTTON = '[<a href="$MSG(TNEXTTOP)$">Next Thread</a>]', | |
496 | $IsDefault{'TNEXTTOPBUTTON'} = 1 unless $TNEXTTOPBUTTON; | |
497 | $TNEXTTOPBUTTONIA = '[Next Thread]', | |
498 | $IsDefault{'TNEXTTOPBUTTONIA'} = 1 unless $TNEXTTOPBUTTONIA; | |
499 | $TPREVTOPBUTTON = '[<a href="$MSG(TPREVTOP)$">Prev Thread</a>]', | |
500 | $IsDefault{'TPREVTOPBUTTON'} = 1 unless $TPREVTOPBUTTON; | |
501 | $TPREVTOPBUTTONIA = '[Prev Thread]', | |
502 | $IsDefault{'TPREVTOPBUTTONIA'} = 1 unless $TPREVTOPBUTTONIA; | |
503 | ||
504 | ## Next message by thread link | |
505 | unless ($TNEXTLINK) { | |
506 | $TNEXTLINK =<<'EndOfStr'; | |
507 | <li>Next by thread: | |
508 | <strong><a href="$MSG(TNEXT)$">$SUBJECT(TNEXT)$</a></strong> | |
509 | </li> | |
510 | EndOfStr | |
511 | $IsDefault{'TNEXTLINK'} = 1; | |
512 | } | |
513 | ## Inactive next message in thread link | |
514 | $TNEXTLINKIA = '', $IsDefault{'TNEXTLINKIA'} = 1 unless $TNEXTLINKIA; | |
515 | ||
516 | ## Previous message by thread link | |
517 | unless ($TPREVLINK) { | |
518 | $TPREVLINK =<<'EndOfStr'; | |
519 | <li>Previous by thread: | |
520 | <strong><a href="$MSG(TPREV)$">$SUBJECT(TPREV)$</a></strong> | |
521 | </li> | |
522 | EndOfStr | |
523 | $IsDefault{'TPREVLINK'} = 1; | |
524 | } | |
525 | ## Inactive previous message in thread link | |
526 | $TPREVLINKIA = '', $IsDefault{'TPREVLINKIA'} = 1 unless $TPREVLINKIA; | |
527 | ||
528 | ## Next message within thread link | |
529 | unless ($TNEXTINLINK) { | |
530 | $TNEXTINLINK =<<'EndOfStr'; | |
531 | <li>Next in thread: | |
532 | <strong><a href="$MSG(TNEXTIN)$">$SUBJECT(TNEXTIN)$</a></strong> | |
533 | </li> | |
534 | EndOfStr | |
535 | $IsDefault{'TNEXTINLINK'} = 1; | |
536 | } | |
537 | ## Inactive next message within thread link | |
538 | $TNEXTINLINKIA = '', $IsDefault{'TNEXTINLINKIA'} = 1 unless $TNEXTINLINKIA; | |
539 | ||
540 | ## Previous message within thread link | |
541 | unless ($TPREVINLINK) { | |
542 | $TPREVINLINK =<<'EndOfStr'; | |
543 | <li>Previous in thread: | |
544 | <strong><a href="$MSG(TPREVIN)$">$SUBJECT(TPREVIN)$</a></strong> | |
545 | </li> | |
546 | EndOfStr | |
547 | $IsDefault{'TPREVINLINK'} = 1; | |
548 | } | |
549 | ## Inactive previous message within thread link | |
550 | $TPREVINLINKIA = '', $IsDefault{'TPREVINLINKIA'} = 1 unless $TPREVINLINKIA; | |
551 | ||
552 | ## Next thread | |
553 | unless ($TNEXTTOPLINK) { | |
554 | $TNEXTTOPLINK =<<'EndOfStr'; | |
555 | <li>Next thread: | |
556 | <strong><a href="$MSG(TNEXTTOP)$">$SUBJECT(TNEXTTOP)$</a></strong> | |
557 | </li> | |
558 | EndOfStr | |
559 | $IsDefault{'TNEXTTOPLINK'} = 1; | |
560 | } | |
561 | ## Inactive next thread | |
562 | $TNEXTTOPLINKIA = '', $IsDefault{'TNEXTTOPLINKIA'} = 1 unless $TNEXTTOPLINKIA; | |
563 | ||
564 | ## Previous thread | |
565 | unless ($TPREVTOPLINK) { | |
566 | $TPREVTOPLINK =<<'EndOfStr'; | |
567 | <li>Previous thread: | |
568 | <strong><a href="$MSG(TPREVTOP)$">$SUBJECT(TPREVTOP)$</a></strong> | |
569 | </li> | |
570 | EndOfStr | |
571 | $IsDefault{'TPREVTOPLINK'} = 1; | |
572 | } | |
573 | ## Inactive prev thread | |
574 | $TPREVTOPLINKIA = '', $IsDefault{'TPREVTOPLINKIA'} = 1 unless $TPREVTOPLINKIA; | |
575 | ||
576 | ## Top links in message | |
577 | if (!$TOPLINKS) { | |
578 | $TOPLINKS = "<hr>\n"; | |
579 | $TOPLINKS .= '$BUTTON(PREV)$$BUTTON(NEXT)$' | |
580 | if $MAIN; | |
581 | $TOPLINKS .= '$BUTTON(TPREV)$$BUTTON(TNEXT)$' | |
582 | if $THREAD; | |
583 | $TOPLINKS .= '[<a href="$IDXFNAME$#$MSGNUM$">$IDXLABEL$</a>]' | |
584 | if $MAIN; | |
585 | $TOPLINKS .= '[<a href="$TIDXFNAME$#$MSGNUM$">$TIDXLABEL$</a>]' | |
586 | if $THREAD; | |
587 | $IsDefault{'TOPLINKS'} = 1; | |
588 | } | |
589 | ||
590 | ## Bottom links in message | |
591 | if (!$BOTLINKS) { | |
592 | $BOTLINKS = "<ul>\n"; | |
593 | $BOTLINKS .= '$LINK(PREV)$$LINK(NEXT)$' if $MAIN; | |
594 | $BOTLINKS .= '$LINK(TPREV)$$LINK(TNEXT)$' if $THREAD; | |
595 | if ($MAIN || $THREAD) { | |
596 | $BOTLINKS .= "<li>Index(es):\n<ul>\n"; | |
597 | $BOTLINKS .= '<li><a href="$IDXFNAME$#$MSGNUM$">' . | |
598 | "<strong>$IdxTypeStr</strong></a></li>\n" if $MAIN; | |
599 | $BOTLINKS .= '<li><a href="$TIDXFNAME$#$MSGNUM$">' . | |
600 | "<strong>Thread</strong></a></li>\n" if $THREAD; | |
601 | } | |
602 | $BOTLINKS .= "</ul>\n</li>\n</ul>\n"; | |
603 | $IsDefault{'BOTLINKS'} = 1; | |
604 | } | |
605 | ||
606 | ## Follow-up and References resources | |
607 | unless ($FOLUPBEGIN) { | |
608 | $FOLUPBEGIN =<<'EndOfVar'; | |
609 | <ul><li><strong>Follow-Ups</strong>: | |
610 | <ul> | |
611 | EndOfVar | |
612 | $IsDefault{'FOLUPBEGIN'} = 1; | |
613 | } | |
614 | unless ($FOLUPLITXT) { | |
615 | if ($SpamMode) { | |
616 | $FOLUPLITXT =<<'EndOfVar'; | |
617 | <li><strong>$SUBJECT$</strong> | |
618 | <ul><li><em>From:</em> $FROMNAME$</li></ul></li> | |
619 | EndOfVar | |
620 | } else { | |
621 | $FOLUPLITXT =<<'EndOfVar'; | |
622 | <li><strong>$SUBJECT$</strong> | |
623 | <ul><li><em>From:</em> $FROM$</li></ul></li> | |
624 | EndOfVar | |
625 | } | |
626 | $IsDefault{'FOLUPLITXT'} = 1; | |
627 | } | |
628 | unless ($FOLUPEND) { | |
629 | $FOLUPEND =<<'EndOfVar'; | |
630 | </ul></li></ul> | |
631 | EndOfVar | |
632 | $IsDefault{'FOLUPEND'} = 1; | |
633 | } | |
634 | ||
635 | unless ($REFSBEGIN) { | |
636 | $REFSBEGIN =<<'EndOfVar'; | |
637 | <ul><li><strong>References</strong>: | |
638 | <ul> | |
639 | EndOfVar | |
640 | $IsDefault{'REFSBEGIN'} = 1; | |
641 | } | |
642 | unless ($REFSLITXT) { | |
643 | if ($SpamMode) { | |
644 | $REFSLITXT =<<'EndOfVar'; | |
645 | <li><strong>$SUBJECT$</strong> | |
646 | <ul><li><em>From:</em> $FROMNAME$</li></ul></li> | |
647 | EndOfVar | |
648 | } else { | |
649 | $REFSLITXT =<<'EndOfVar'; | |
650 | <li><strong>$SUBJECT$</strong> | |
651 | <ul><li><em>From:</em> $FROM$</li></ul></li> | |
652 | EndOfVar | |
653 | } | |
654 | $IsDefault{'REFSLITXT'} = 1; | |
655 | } | |
656 | unless ($REFSEND) { | |
657 | $REFSEND =<<'EndOfVar'; | |
658 | </ul></li></ul> | |
659 | EndOfVar | |
660 | $IsDefault{'REFSEND'} = 1; | |
661 | } | |
662 | ||
663 | ##--------------------------------------------## | |
664 | ## Next/previous main/thread index page links ## | |
665 | ##--------------------------------------------## | |
666 | ||
667 | $FIRSTPGLINK = '[<a href="$PG(FIRST)$">First Page</a>]', | |
668 | $IsDefault{'FIRSTPGLINK'} = 1 unless $FIRSTPGLINK; | |
669 | $LASTPGLINK = '[<a href="$PG(LAST)$">Last Page</a>]', | |
670 | $IsDefault{'LASTPGLINK'} = 1 unless $LASTPGLINK; | |
671 | $NEXTPGLINK = '[<a href="$PG(NEXT)$">Next Page</a>]', | |
672 | $IsDefault{'NEXTPGLINK'} = 1 unless $NEXTPGLINK; | |
673 | $PREVPGLINK = '[<a href="$PG(PREV)$">Prev Page</a>]', | |
674 | $IsDefault{'PREVPGLINK'} = 1 unless $PREVPGLINK; | |
675 | ||
676 | $TFIRSTPGLINK = '[<a href="$PG(TFIRST)$">First Page</a>]', | |
677 | $IsDefault{'TFIRSTPGLINK'} = 1 unless $TFIRSTPGLINK; | |
678 | $TLASTPGLINK = '[<a href="$PG(TLAST)$">Last Page</a>]', | |
679 | $IsDefault{'TLASTPGLINK'} = 1 unless $TLASTPGLINK; | |
680 | $TNEXTPGLINK = '[<a href="$PG(TNEXT)$">Next Page</a>]', | |
681 | $IsDefault{'TNEXTPGLINK'} = 1 unless $TNEXTPGLINK; | |
682 | $TPREVPGLINK = '[<a href="$PG(TPREV)$">Prev Page</a>]', | |
683 | $IsDefault{'TPREVPGLINK'} = 1 unless $TPREVPGLINK; | |
684 | ||
685 | $NEXTPGLINKIA = '[Next Page]', | |
686 | $IsDefault{'NEXTPGLINKIA'} = 1 unless $NEXTPGLINKIA; | |
687 | $PREVPGLINKIA = '[Prev Page]', | |
688 | $IsDefault{'PREVPGLINKIA'} = 1 unless $PREVPGLINKIA; | |
689 | $TNEXTPGLINKIA = '[Next Page]', | |
690 | $IsDefault{'TNEXTPGLINKIA'} = 1 unless $TNEXTPGLINKIA; | |
691 | $TPREVPGLINKIA = '[Prev Page]', | |
692 | $IsDefault{'TPREVPGLINKIA'} = 1 unless $TPREVPGLINKIA; | |
693 | ||
694 | ##---------------## | |
695 | ## Miscellaneous ## | |
696 | ##---------------## | |
697 | ||
698 | $MSGIDLINK = '<a $A_HREF$>$MSGID$</a>', | |
699 | $IsDefault{'MSGIDLINK'} = 1 unless $MSGIDLINK; | |
700 | ||
701 | $NOTE = '$NOTETEXT$', | |
702 | $IsDefault{'NOTE'} = 1 unless $NOTE; | |
703 | $NOTEIA = '', | |
704 | $IsDefault{'NOTEIA'} = 1 unless $NOTEIA; | |
705 | $NOTEICON = '', | |
706 | $IsDefault{'NOTEICON'} = 1 unless $NOTEICON; | |
707 | $NOTEICONIA = '', | |
708 | $IsDefault{'NOTEICONIA'} = 1 unless $NOTEICONIA; | |
709 | ||
710 | ## Set unknown icon | |
711 | $Icons{'unknown'} = $Icons{'text/plain'} unless $Icons{'unknown'}; | |
712 | ||
713 | ## | |
714 | if ($AddressModify eq "") { | |
715 | $AddressModify = | |
716 | q{s|([\!\%\w\.\-+=/]+@)([\w\.\-]+)|$1.('x' x length($2))|ge} | |
717 | if $SpamMode; | |
718 | $IsDefault{'AddressModify'} = 1; | |
719 | } | |
720 | ||
721 | if ($MAILTOURL eq "") { | |
722 | if ($SpamMode) { | |
723 | $MAILTOURL = 'mailto:$TOADDRNAME$@DOMAIN.HIDDEN'; | |
724 | } else { | |
725 | $MAILTOURL = 'mailto:$TO$'; | |
726 | } | |
727 | $IsDefault{'MAILTOURL'} = 1; | |
728 | } | |
729 | ||
730 | } | |
731 | ||
732 | ##---------------------------------------------------------------------------## | |
733 | 1; |