OSDN Git Service

BugTrack/2495 .htaccess files in Apache 2.4 format
[pukiwiki/pukiwiki.git] / skin / tdiary.skin.php
1 <?php
2 // PukiWiki - Yet another WikiWikiWeb clone.
3 // tdiary.skin.php
4 // Copyright
5 //   2002-2017 PukiWiki Development Team
6 //   2001-2002 Originally written by yu-ji
7 // License: GPL v2 or (at your option) any later version
8 //
9 // tDiary-wrapper skin (Updated for tdiary-theme 2.1.2)
10
11 // ------------------------------------------------------------
12 // Settings (define before here, if you want)
13
14 // Set site identities
15 $_IMAGE['skin']['favicon']  = ''; // Sample: 'image/favicon.ico';
16
17 // Select theme
18 if (! defined('TDIARY_THEME'))
19         define('TDIARY_THEME', 'loose-leaf'); // Default
20
21 // Show link(s) at your choice, with <div class="calendar"> design
22 // NOTE: Some theme become looking worse with this!
23 //   NULL = Show nothing
24 //   0    = Show topicpath
25 //   1    = Show reload URL
26 if (! defined('TDIARY_CALENDAR_DESIGN'))
27         define('TDIARY_CALENDAR_DESIGN', NULL); // NULL, 0, 1
28
29 // Show / Hide navigation bar UI at your choice
30 // NOTE: This is not stop their functionalities!
31 if (! defined('PKWK_SKIN_SHOW_NAVBAR'))
32         define('PKWK_SKIN_SHOW_NAVBAR', 1); // 1, 0
33
34 // Show toolbar at your choice, with <div class="footer"> design
35 // NOTE: Some theme become looking worse with this!
36 if (! defined('PKWK_SKIN_SHOW_TOOLBAR'))
37         define('PKWK_SKIN_SHOW_TOOLBAR', 0); // 0, 1
38
39 // TDIARY_SIDEBAR_POSITION: See below
40
41 // ------------------------------------------------------------
42 // Code start
43
44 // Prohibit direct access
45 if (! defined('UI_LANG')) die('UI_LANG is not set');
46 if (! isset($_LANG)) die('$_LANG is not set');
47 if (! defined('PKWK_READONLY')) die('PKWK_READONLY is not set');
48
49 // ------------------------------------------------------------
50 // Check tDiary theme
51
52 if (! defined('TDIARY_THEME') || TDIARY_THEME == '') {
53         die('Theme is not specified. Set "TDIARY_THEME" correctly');
54 } else {
55         $theme = rawurlencode(TDIARY_THEME); // Supress all nasty letters
56         $theme_css = SKIN_DIR . 'theme/' . $theme . '/' . $theme . '.css';
57         if (! file_exists($theme_css)) {
58                 echo 'tDiary theme wrapper: ';
59                 echo 'Theme not found: ' . htmlsc($theme_css) . '<br />';
60                 echo 'You can get tdiary-theme from: ';
61                 echo 'http://www.tdiary.org/';
62                 exit;
63          }
64 }
65
66 // ------------------------------------------------------------
67 // tDiary theme: Exception
68
69 // Adjust DTD (bug between these theme(=CSS) and MSIE)
70 // NOTE:
71 //    PukiWiki default: PKWK_DTD_XHTML_1_1
72 //    tDiary's default: PKWK_DTD_HTML_4_01_STRICT
73 switch(TDIARY_THEME){
74 case 'christmas':
75         $pkwk_dtd = PKWK_DTD_HTML_4_01_STRICT; // or centering will be ignored via MSIE
76         break;
77 }
78
79 // Adjust reverse-link default design manually
80 $disable_backlink = FALSE;
81 switch(TDIARY_THEME){
82 case 'hatena':          /* FALLTHROUGH */
83 case 'hatena-black':
84 case 'hatena-brown':
85 case 'hatena-darkgray':
86 case 'hatena-green':
87 case 'hatena-lightblue':
88 case 'hatena-lightgray':
89 case 'hatena-purple':
90 case 'hatena-red':
91 case 'hatena-white':
92 case 'hatena_cinnamon':
93 case 'hatena_japanese':
94 case 'hatena_leaf':
95 case 'hatena_water':
96         $disable_backlink = TRUE; // or very viewable title color
97         break;
98 }
99
100 // ------------------------------------------------------------
101 // tDiary theme: Select CSS color theme (Now testing:black only)
102
103 if (defined('TDIARY_COLOR_THEME')) {
104         $css_theme = rawurlencode(TDIARY_COLOR_THEME);
105 } else {
106         $css_theme = '';
107
108         switch(TDIARY_THEME){
109         case 'alfa':
110         case 'bill':
111         case 'black-lingerie':
112         case 'blackboard':
113         case 'bubble':
114         case 'cosmos':
115         case 'darkness-pop':
116         case 'digital_gadgets':
117         case 'fine':
118         case 'fri':
119         case 'giza':
120         case 'hatena-black':
121         case 'hatena_savanna-blue':
122         case 'hatena_savanna-green':
123         case 'hatena_savanna-red':
124         case 'kaizou':
125         case 'lightning':
126         case 'lime':
127         case 'line':
128         case 'midnight':
129         case 'moo':
130         case 'nachtmusik':
131         case 'nebula':
132         case 'nippon':
133         case 'noel':
134         case 'petith-b':
135         case 'quiet_black':
136         case 'redgrid':
137         case 'starlight':
138         case 'tinybox_green':
139         case 'white-lingerie':
140         case 'white_flower':
141         case 'whiteout':
142         case 'wine':
143         case 'wood':
144         case 'xmastree':
145         case 'yukon':
146                 $css_theme = 'black';
147
148         // Another theme needed?
149         case 'bluely':
150         case 'brown':
151         case 'deepblue':
152         case 'scarlet':
153         case 'smoking_black':
154                 ;
155         }
156 }
157
158 // ------------------------------------------------------------
159 // tDiary theme: Page title design (which is fancy, date and text?)
160
161 if (defined('TDIARY_TITLE_DESIGN_DATE') &&
162     (TDIARY_TITLE_DESIGN_DATE  == 0 ||
163      TDIARY_TITLE_DESIGN_DATE  == 1 ||
164      TDIARY_TITLE_DESIGN_DATE  == 2)) {
165         $title_design_date = TDIARY_TITLE_DESIGN_DATE;
166 } else {
167         $title_design_date = 1; // Default: Select the date desin, or 'the same design'
168         switch(TDIARY_THEME){
169         case '3minutes':        /* FALLTHROUGH */
170         case '90':
171         case 'aoikuruma':
172         case 'black-lingerie':
173         case 'blog':
174         case 'book':
175         case 'book2-feminine':
176         case 'book3-sky':
177         case 'candy':
178         case 'cards':
179         case 'desert':
180         case 'dot':
181         case 'himawari':
182         case 'kitchen-classic':
183         case 'kitchen-french':
184         case 'kitchen-natural':
185         case 'light-blue':
186         case 'lovely':
187         case 'lovely_pink':
188         case 'lr':
189         case 'magic':
190         case 'maroon':
191         case 'midnight':
192         case 'momonga':
193         case 'nande-ya-nen':
194         case 'narrow':
195         case 'natrium':
196         case 'nebula':
197         case 'orange':
198         case 'parabola':
199         case 'plum':
200         case 'pool_side':
201         case 'rainy-season':
202         case 'right':
203         case 's-blue':
204         case 's-pink':
205         case 'sky':
206         case 'sleepy_kitten':
207         case 'snow_man':
208         case 'spring':
209         case 'tag':
210         case 'tdiarynet':
211         case 'treetop':
212         case 'white-lingerie':
213         case 'white_flower':
214         case 'whiteout':
215         case 'wood':
216                 $title_design_date = 0; // Select text design   
217                 break;
218
219         case 'aqua':
220         case 'arrow':
221         case 'fluxbox':
222         case 'fluxbox2':
223         case 'fluxbox3':
224         case 'ymck':
225                 $title_design_date = 2; // Show both :)
226                 break;
227         }
228 }
229
230 // ------------------------------------------------------------
231 // tDiary 'Sidebar' position
232
233 // Default position
234 if (defined('TDIARY_SIDEBAR_POSITION')) {
235         $sidebar = TDIARY_SIDEBAR_POSITION;
236 } else {
237         $sidebar = 'another'; // Default: Show as an another page below
238
239         // List of themes having sidebar CSS < (AllTheme / 2)
240         // $ grep div.sidebar */*.css | cut -d: -f1 | cut -d/ -f1 | sort | uniq
241         // $ wc -l *.txt
242         //    142 list-sidebar.txt
243         //    286 list-all.txt
244         switch(TDIARY_THEME){
245         case '3minutes':        /*FALLTHROUGH*/
246         case '3pink':
247         case 'aoikuruma':
248         case 'aqua':
249         case 'arrow':
250         case 'artnouveau-blue':
251         case 'artnouveau-green':
252         case 'artnouveau-red':
253         case 'asterisk-blue':
254         case 'asterisk-lightgray':
255         case 'asterisk-maroon':
256         case 'asterisk-orange':
257         case 'asterisk-pink':
258         case 'autumn':
259         case 'babypink':
260         case 'be_r5':
261         case 'bill':
262         case 'bistro_menu':
263         case 'bluely':
264         case 'book':
265         case 'book2-feminine':
266         case 'book3-sky':
267         case 'bright-green':
268         case 'britannian':
269         case 'bubble':
270         case 'candy':
271         case 'cat':
272         case 'cherry':
273         case 'cherry_blossom':
274         case 'chiffon_leafgreen':
275         case 'chiffon_pink':
276         case 'chiffon_skyblue':
277         case 'citrus':
278         case 'clover':
279         case 'colorlabel':
280         case 'cool_ice':
281         case 'cosmos':
282         case 'curtain':
283         case 'darkness-pop':
284         case 'delta':
285         case 'diamond_dust':
286         case 'dice':
287         case 'digital_gadgets':
288         case 'dot-lime':
289         case 'dot-orange':
290         case 'dot-pink':
291         case 'dot-sky':
292         case 'dotted_line-blue':
293         case 'dotted_line-green':
294         case 'dotted_line-red':
295         case 'emboss':
296         case 'flower':
297         case 'gear':
298         case 'germany':
299         case 'gray2':
300         case 'green_leaves':
301         case 'happa':
302         case 'hatena':
303         case 'hatena-black':
304         case 'hatena-brown':
305         case 'hatena-darkgray':
306         case 'hatena-green':
307         case 'hatena-lightblue':
308         case 'hatena-lightgray':
309         case 'hatena-lime':
310         case 'hatena-orange':
311         case 'hatena-pink':
312         case 'hatena-purple':
313         case 'hatena-red':
314         case 'hatena-sepia':
315         case 'hatena-tea':
316         case 'hatena-white':
317         case 'hatena_cinnamon':
318         case 'hatena_japanese':
319         case 'hatena_leaf':
320         case 'hatena_rainyseason':
321         case 'hatena_savanna-blue':
322         case 'hatena_savanna-green':
323         case 'hatena_savanna-red':
324         case 'hatena_savanna-white':
325         case 'hatena_water':
326         case 'himawari':
327         case 'jungler':
328         case 'kaeru':
329         case 'kitchen-classic':
330         case 'kitchen-french':
331         case 'kitchen-natural':
332         case 'kotatsu':
333         case 'light-blue':
334         case 'loose-leaf':
335         case 'marguerite':
336         case 'matcha':
337         case 'mizu':
338         case 'momonga':
339         case 'mono':
340         case 'moo':
341         case 'natrium':
342         case 'nippon':
343         case 'note':
344         case 'old-pavement':
345         case 'orange_flower':
346         case 'pain':
347         case 'pale':
348         case 'paper':
349         case 'parabola':
350         case 'pettan':
351         case 'pink-border':
352         case 'plum':
353         case 'puppy':
354         case 'purple_sun':
355         case 'rainy-season':
356         case 'rectangle':
357         case 'repro':
358         case 'rim-daidaiiro':
359         case 'rim-fujiiro':
360         case 'rim-mizuiro':
361         case 'rim-sakurairo':
362         case 'rim-tanpopoiro':
363         case 'rim-wakabairo':
364         case 'russet':
365         case 's-blue':
366         case 'sagegreen':
367         case 'savanna':
368         case 'scarlet':
369         case 'sepia':
370         case 'simple':
371         case 'sleepy_kitten':
372         case 'smoking_black':
373         case 'smoking_white':
374         case 'spring':
375         case 'sunset':
376         case 'tdiarynet':
377         case 'teacup':
378         case 'thin':
379         case 'tile':
380         case 'tinybox':
381         case 'tinybox_green':
382         case 'treetop':
383         case 'white_flower':
384         case 'wine':
385         case 'yukon':
386         case 'zef':
387                 $sidebar = 'bottom'; // This is the default position of tDiary's.
388                 break;
389         }
390
391         // Manually adjust sidebar's default position
392         switch(TDIARY_THEME){
393
394         // 'bottom'
395         case '90': // But upper navigatin UI will be hidden by sidebar
396         case 'blackboard':
397         case 'quirky':
398         case 'quirky2':
399                 $sidebar = 'bottom';
400                 break;
401
402         // 'top': Assuming sidebar is above of the body
403         case 'autumn':  /*FALLTHROUGH*/
404         case 'cosmos':
405         case 'dice':    // Sidebar text (white) seems unreadable
406         case 'happa':
407         case 'kaeru':
408         case 'note':
409         case 'paper':   // Sidebar text (white) seems unreadable
410         case 'sunset':
411         case 'tinybox': // For MSIE with narrow window width, seems meanless
412         case 'tinybox_green':   // The same
413         case 'ymck':
414                 $sidebar = 'top';
415                 break;
416
417         // 'strict': Strict separation between sidebar and main contents needed
418         case '3minutes':        /*FALLTHROUGH*/
419         case '3pink':
420         case 'aoikuruma':
421         case 'aqua':
422         case 'artnouveau-blue':
423         case 'artnouveau-green':
424         case 'artnouveau-red':
425         case 'asterisk-blue':
426         case 'asterisk-lightgray':
427         case 'asterisk-maroon':
428         case 'asterisk-orange':
429         case 'asterisk-pink':
430         case 'bill':
431         case 'candy':
432         case 'cat':
433         case 'chiffon_leafgreen':
434         case 'chiffon_pink':
435         case 'chiffon_skyblue':
436         case 'city':
437         case 'clover':
438         case 'colorlabel':
439         case 'cool_ice':
440         case 'dot-lime':
441         case 'dot-orange':
442         case 'dot-pink':
443         case 'dot-sky':
444         case 'dotted_line-blue':
445         case 'dotted_line-green':
446         case 'dotted_line-red':
447         case 'flower':
448         case 'germany':
449         case 'green-tea':
450         case 'hatena':
451         case 'hatena-black':
452         case 'hatena-brown':
453         case 'hatena-darkgray':
454         case 'hatena-green':
455         case 'hatena-lightblue':
456         case 'hatena-lightgray':
457         case 'hatena-lime':
458         case 'hatena-orange':
459         case 'hatena-pink':
460         case 'hatena-purple':
461         case 'hatena-red':
462         case 'hatena-sepia':
463         case 'hatena-tea':
464         case 'hatena-white':
465         case 'hiki':
466         case 'himawari':
467         case 'kasumi':
468         case 'kitchen-classic':
469         case 'kitchen-french':
470         case 'kitchen-natural':
471         case 'kotatsu':
472         case 'kurenai':
473         case 'light-blue':
474         case 'loose-leaf':
475         case 'marguerite':
476         case 'matcha':
477         case 'memo':
478         case 'memo2':
479         case 'memo3':
480         case 'mirage':
481         case 'mizu':
482         case 'mono':
483         case 'moo':     // For MSIE, strict seems meanless
484         case 'navy':
485         case 'pict':
486         case 'pokke-blue':
487         case 'pokke-orange':
488         case 'query000':
489         case 'query011':
490         case 'query101':
491         case 'query110':
492         case 'query111or':
493         case 'puppy':
494         case 'rainy-season':
495         case 's-blue':  // For MSIE, strict seems meanless
496         case 'sagegreen':
497         case 'savanna':
498         case 'scarlet':
499         case 'sepia':
500         case 'simple':
501         case 'smoking_gray':
502         case 'spring':
503         case 'teacup':
504         case 'wine':
505                 $sidebar = 'strict';
506                 break;
507
508         // 'another': They have sidebar-design, but can not show it
509         //  at the 'side' of the contents
510         case 'babypink':        /*FALLTHROUGH*/
511         case 'bubble':
512         case 'cherry':
513         case 'darkness-pop':
514         case 'diamond_dust':
515         case 'gear':
516         case 'necktie':
517         case 'pale':
518         case 'pink-border':
519         case 'rectangle':
520         case 'russet':
521         case 'smoking_black':
522         case 'zef':
523                 $sidebar = 'another'; // Show as an another page below
524                 break;
525         }
526
527         // 'none': Show no sidebar
528 }
529 // Check menu (sidebar) is ready and $menubar is there
530 if ($sidebar == 'none') {
531         $menu = FALSE;
532 } else {
533         $menu = (arg_check('read') && is_page($GLOBALS['menubar']) &&
534                 exist_plugin_convert('menu'));
535         if ($menu) {
536                 $menu_body = preg_replace('#<h2 ([^>]*)>(.*?)</h2>#',
537                         '<h3 $1><span class="sanchor"></span> $2</h3>',
538                         do_plugin_convert('menu'));
539         }
540 }
541
542 // ------------------------------------------------------------
543 // Code continuing ...
544
545 $lang  = & $_LANG['skin'];
546 $link  = & $_LINK;
547 $image = & $_IMAGE['skin'];
548 $rw    = ! PKWK_READONLY;
549
550 // ------------------------------------------------------------
551 // Output
552
553 // HTTP headers
554 pkwk_common_headers();
555 header('Cache-control: no-cache');
556 header('Pragma: no-cache');
557 header('Content-Type: text/html; charset=' . CONTENT_CHARSET);
558
559 ?>
560 <!DOCTYPE html>
561 <html lang="<?php echo LANG ?>">
562 <head>
563  <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CONTENT_CHARSET ?>" />
564 <?php if ($nofollow || ! $is_read)  { ?> <meta name="robots" content="NOINDEX,NOFOLLOW" /><?php } ?>
565 <?php if ($html_meta_referrer_policy) { ?> <meta name="referrer" content="<?php echo htmlsc(html_meta_referrer_policy) ?>" /><?php } ?>
566
567  <title><?php echo $title ?> - <?php echo $page_title ?></title>
568
569  <link rel="SHORTCUT ICON" href="<?php echo $image['favicon'] ?>" />
570  <link rel="stylesheet" type="text/css" media="all" href="<?php echo SKIN_DIR ?>theme/base.css" />
571  <link rel="stylesheet" type="text/css" media="all" href="<?php echo SKIN_DIR ?>theme/<?php echo $theme ?>/<?php echo $theme ?>.css" />
572  <link rel="stylesheet" type="text/css" href="<?php echo SKIN_DIR ?>tdiary.css" />
573 <?php if ($css_theme === 'black') { ?> <link rel="stylesheet" type="text/css" href="<?php echo SKIN_DIR ?>tdiary_black.css" /><?php } ?>
574  <link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo $link['rss'] ?>" /><?php // RSS auto-discovery ?>
575
576 <?php echo $head_tag ?>
577 </head>
578 <body>
579 <?php echo $html_scripting_data ?>
580 <!-- Theme:<?php echo htmlsc($theme) . ' Sidebar:' . $sidebar ?> -->
581
582 <?php if ($menu && $sidebar == 'strict') { ?>
583 <!-- Sidebar top -->
584 <div class="sidebar">
585         <div id="menubar">
586                 <?php echo $menu_body ?>
587         </div>
588 </div><!-- class="sidebar" -->
589
590 <div class="pkwk_body">
591 <div class="main">
592 <?php } // if ($menu && $sidebar == 'strict') ?>
593
594 <!-- Navigation buttuns -->
595 <?php if (PKWK_SKIN_SHOW_NAVBAR) { ?>
596 <div class="adminmenu"><div id="navigator">
597 <?php
598 function _navigator($key, $value = '', $javascript = ''){
599         $lang = $GLOBALS['_LANG']['skin'];
600         $link = $GLOBALS['_LINK'];
601         if (! isset($lang[$key])) { echo 'LANG NOT FOUND'; return FALSE; }
602         if (! isset($link[$key])) { echo 'LINK NOT FOUND'; return FALSE; }
603
604         echo '<span class="adminmenu"><a href="' . $link[$key] . '" ' . $javascript . '>' .
605                 (($value === '') ? $lang[$key] : $value) .
606                 '</a></span>';
607
608         return TRUE;
609 }
610 ?>
611  <?php _navigator('top') ?> &nbsp;
612
613 <?php if ($is_page) { ?>
614   <?php if ($rw) { ?>
615         <?php _navigator('edit') ?>
616         <?php if ($is_read && $function_freeze) { ?>
617                 <?php (! $is_freeze) ? _navigator('freeze') : _navigator('unfreeze') ?>
618         <?php } ?>
619  <?php } ?>
620    <?php _navigator('diff') ?>
621  <?php if ($do_backup) { ?>
622         <?php _navigator('backup') ?>
623  <?php } ?>
624  <?php if ($rw && (bool)ini_get('file_uploads')) { ?>
625         <?php _navigator('upload') ?>
626  <?php } ?>
627    <?php _navigator('reload') ?>
628    &nbsp;
629 <?php } ?>
630
631  <?php if ($rw) { ?>
632         <?php _navigator('new') ?>
633  <?php } ?>
634    <?php _navigator('list') ?>
635  <?php if (arg_check('list')) { ?>
636    <?php _navigator('filelist') ?>
637  <?php } ?>
638    <?php _navigator('search') ?>
639    <?php _navigator('recent') ?>
640    <?php _navigator('help')   ?>
641    <?php if ($enable_login) { ?>
642      <?php _navigator('login') ?>
643    <?php } ?>
644    <?php if ($enable_logout) { ?>
645      <?php _navigator('logout') ?>
646    <?php } ?>
647 </div></div>
648 <?php } else { ?>
649 <div id="navigator"></div>
650 <?php } // PKWK_SKIN_SHOW_NAVBAR ?>
651
652 <h1><?php echo $page_title ?></h1>
653
654 <div class="calendar">
655 <?php if ($is_page && TDIARY_CALENDAR_DESIGN !== NULL) { ?>
656         <?php if(TDIARY_CALENDAR_DESIGN) { ?>
657                 <a href="<?php echo $link['canonical_url'] ?>"><span class="small"><?php echo $link['canonical_url'] ?></span></a>
658         <?php } else { ?>
659                 <?php require_once(PLUGIN_DIR . 'topicpath.inc.php'); echo plugin_topicpath_inline(); ?>
660         <?php } ?>
661 <?php } ?>
662 </div>
663
664
665 <?php if ($menu && $sidebar == 'top') { ?>
666 <!-- Sidebar compat top -->
667 <div class="sidebar">
668         <div id="menubar">
669                 <?php echo $menu_body ?>
670         </div>
671 </div><!-- class="sidebar" -->
672 <?php } // if ($menu && $sidebar == 'top') ?>
673
674
675 <?php if ($menu && ($sidebar == 'top' || $sidebar == 'bottom')) { ?>
676 <div class="pkwk_body">
677 <div class="main">
678 <?php } ?>
679
680 <hr class="sep" />
681
682 <div class="day">
683
684 <?php
685 // Page title (page name)
686 $title = '';
687 if ($disable_backlink) {
688         if ($_page != '') {
689                 $title = htmlsc($_page);
690         } else {
691                 $title = $page; // Search, or something message
692         }
693 } else {
694         if ($page != '') {
695                 $title = $page;
696         } else {
697                 $title = htmlsc($_page);
698         }
699 }
700 $title_date = $title_text = '';
701 switch($title_design_date){
702 case 1: $title_date = & $title; break;
703 case 0: $title_text = & $title; break;
704 default:
705         // Show both (for debug or someting)
706         $title_date = & $title;
707         $title_text = & $title;
708         break;
709 }
710 ?>
711 <h2><span class="date"><?php  echo $title_date ?></span>
712     <span class="title"><?php echo $title_text ?></span></h2>
713
714 <div class="body">
715         <div class="section">
716 <?php
717         // For read and preview: tDiary have no <h2> inside body
718         $body = preg_replace('#<h2 ([^>]*)>(.*?)<a class="anchor_super" ([^>]*)>.*?</a></h2>#',
719                 '<h3 $1><a $3><span class="sanchor">_</span></a> $2</h3>', $body);
720         $body = preg_replace('#<h([34]) ([^>]*)>(.*?)<a class="anchor_super" ([^>]*)>.*?</a></h\1>#',
721                 '<h$1 $2><a $4>_</a> $3</h$1>', $body);
722         $body = preg_replace('#<h2 ([^>]*)>(.*?)</h2>#',
723                 '<h3 $1><span class="sanchor">_</span> $2</h3>', $body);
724         if ($is_read) {
725                 // Read
726                 echo $body;
727         } else {
728                 // Edit, preview, search, etc
729                 echo preg_replace('/(<form) (action="' . preg_quote($script, '/') .
730                         ')/', '$1 class="update" $2', $body);
731         }
732 ?>
733         </div>
734 </div><!-- class="body" -->
735
736
737 <?php if ($notes != '') { ?>
738 <div class="comment"><!-- Design for tDiary "Comments" -->
739         <div class="caption">&nbsp;</div>
740         <div class="commentbody"><br />
741                 <?php
742                 $notes = preg_replace('#<span class="small">(.*?)</span>#', '<p>$1</p>', $notes);
743                 echo preg_replace('#<a (id="notefoot_[^>]*)>(.*?)</a>#',
744                         '<div class="commentator"><a $1><span class="canchor"></span> ' .
745                         '<span class="commentator">$2</span></a>' .
746                         '<span class="commenttime"></span></div>', $notes);
747                 ?>
748         </div>
749 </div>
750 <?php } ?>
751
752 <?php if ($attaches != '') { ?>
753 <div class="comment">
754         <div class="caption">&nbsp;</div>
755         <div class="commentshort">
756                 <?php echo $attaches ?>
757         </div>
758 </div>
759 <?php } ?>
760
761 <?php if ($related != '') { ?>
762 <div class="comment">
763         <div class="caption">&nbsp;</div>
764         <div class="commentshort">
765                 Link: <?php echo $related ?>
766         </div>
767 </div>
768 <?php } ?>
769
770 <!-- Design for tDiary "Today's referrer" -->
771 <div class="referer"><?php if ($lastmodified != '') echo 'Last-modified: ' . $lastmodified; ?></div>
772
773 </div><!-- class="day" -->
774
775 <hr class="sep" />
776
777
778 <?php if ($menu && $sidebar == 'another') { ?>
779 </div><!-- class="main" -->
780 </div><!-- class="pkwk_body" -->
781
782 <!-- Sidebar another -->
783 <div class="pkwk_body">
784         <h1>&nbsp;</h1>
785         <div class="calendar"></div>
786         <hr class="sep" />
787         <div class="day">
788                 <h2><span class="date"></span><span class="title">&nbsp;</span></h2>
789                 <div class="body">
790                         <div class="section">
791                                 <?php echo $menu_body ?>
792                         </div>
793                 </div>
794                 <div class="referer"></div>
795         </div>
796         <hr class="sep" />
797 </div><!-- class="pkwk_body" -->
798
799 <div class="pkwk_body">
800 <div class="main">
801 <?php } // if ($menu && $sidebar == 'another') ?>
802
803
804 <?php if ($menu && ($sidebar == 'top' || $sidebar == 'bottom')) { ?>
805 </div><!-- class="main" -->
806 </div><!-- class="pkwk_body" -->
807 <?php } ?>
808
809
810 <?php if ($menu && $sidebar == 'bottom') { ?>
811 <!-- Sidebar compat bottom -->
812 <div class="sidebar">
813         <div id="menubar">
814                 <?php echo $menu_body ?>
815         </div>
816 </div><!-- class="sidebar" -->
817 <?php } // if ($menu && $sidebar == 'bottom') ?>
818
819
820 <div class="footer">
821 <?php if (PKWK_SKIN_SHOW_TOOLBAR) { ?>
822 <!-- Toolbar -->
823 <?php
824
825 // Set toolbar-specific images
826 $_IMAGE['skin']['reload']   = 'reload.png';
827 $_IMAGE['skin']['new']      = 'new.png';
828 $_IMAGE['skin']['edit']     = 'edit.png';
829 $_IMAGE['skin']['freeze']   = 'freeze.png';
830 $_IMAGE['skin']['unfreeze'] = 'unfreeze.png';
831 $_IMAGE['skin']['diff']     = 'diff.png';
832 $_IMAGE['skin']['upload']   = 'file.png';
833 $_IMAGE['skin']['copy']     = 'copy.png';
834 $_IMAGE['skin']['rename']   = 'rename.png';
835 $_IMAGE['skin']['top']      = 'top.png';
836 $_IMAGE['skin']['list']     = 'list.png';
837 $_IMAGE['skin']['search']   = 'search.png';
838 $_IMAGE['skin']['recent']   = 'recentchanges.png';
839 $_IMAGE['skin']['backup']   = 'backup.png';
840 $_IMAGE['skin']['help']     = 'help.png';
841 $_IMAGE['skin']['rss']      = 'rss.png';
842 $_IMAGE['skin']['rss10']    = & $_IMAGE['skin']['rss'];
843 $_IMAGE['skin']['rss20']    = 'rss20.png';
844 $_IMAGE['skin']['rdf']      = 'rdf.png';
845
846 function _toolbar($key, $x = 20, $y = 20){
847         $lang  = & $GLOBALS['_LANG']['skin'];
848         $link  = & $GLOBALS['_LINK'];
849         $image = & $GLOBALS['_IMAGE']['skin'];
850         if (! isset($lang[$key]) ) { echo 'LANG NOT FOUND';  return FALSE; }
851         if (! isset($link[$key]) ) { echo 'LINK NOT FOUND';  return FALSE; }
852         if (! isset($image[$key])) { echo 'IMAGE NOT FOUND'; return FALSE; }
853
854         echo '<a href="' . $link[$key] . '">' .
855                 '<img src="' . IMAGE_DIR . $image[$key] . '" width="' . $x . '" height="' . $y . '" ' .
856                         'alt="' . $lang[$key] . '" title="' . $lang[$key] . '" />' .
857                 '</a>';
858         return TRUE;
859 }
860 ?>
861  <?php _toolbar('top') ?>
862
863 <?php if ($is_page) { ?>
864  &nbsp;
865  <?php if ($rw) { ?>
866         <?php _toolbar('edit') ?>
867         <?php if ($is_read && $function_freeze) { ?>
868                 <?php if (! $is_freeze) { _toolbar('freeze'); } else { _toolbar('unfreeze'); } ?>
869         <?php } ?>
870  <?php } ?>
871  <?php _toolbar('diff') ?>
872 <?php if ($do_backup) { ?>
873         <?php _toolbar('backup') ?>
874 <?php } ?>
875  <?php if ($rw && (bool)ini_get('file_uploads')) { ?>
876         <?php _toolbar('upload') ?>
877  <?php } ?>
878  <?php if ($rw) { ?>
879         <?php _toolbar('copy') ?>
880         <?php _toolbar('rename') ?>
881  <?php } ?>
882  <?php _toolbar('reload') ?>
883 <?php } ?>
884  &nbsp;
885  <?php if ($rw) { ?>
886         <?php _toolbar('new') ?>
887  <?php } ?>
888  <?php _toolbar('list')   ?>
889  <?php _toolbar('search') ?>
890  <?php _toolbar('recent') ?>
891  &nbsp; <?php _toolbar('help') ?>
892  &nbsp; <?php _toolbar('rss10', 36, 14) ?>
893  <br />
894 <?php } // PKWK_SKIN_SHOW_TOOLBAR ?>
895
896 <!-- Copyright etc -->
897  Site admin: <a href="<?php echo $modifierlink ?>"><?php echo $modifier ?></a>
898  <p>
899  <?php echo S_COPYRIGHT ?>.
900  Powered by PHP <?php echo PHP_VERSION ?><br />
901  HTML convert time: <?php echo elapsedtime() ?> sec.
902  </p>
903 </div><!-- class="footer" -->
904
905 <?php if ($menu && ($sidebar != 'top' && $sidebar != 'bottom')) { ?>
906 </div><!-- class="main" -->
907 </div><!-- class="pkwk_body" -->
908 <?php } ?>
909
910 </body>
911 </html>