OSDN Git Service

3097b11336aa2ef0ec9632be0153ff0454509046
[pukiwiki/pukiwiki.git] / skin / tdiary.skin.php
1 <?php
2 // PukiWiki - Yet another WikiWikiWeb clone.
3 // $Id: tdiary.skin.php,v 1.12 2005/01/16 04:27:00 henoheno Exp $
4 //
5 // tDiary-wrapper skin
6
7 // Select theme
8 if (! defined('TDIARY_THEME')) define('TDIARY_THEME', 'loose-leaf'); // Default
9
10 // Show link(s) at your choice, with <div class="calendar"> design
11 // NOTE: Some theme become looking worse with this!
12 //   NULL = Show nothing
13 //   0    = Show topicpath
14 //   1    = Show reload URL
15 if (! defined('TDIARY_CALENDAR_DESIGN'))
16         define('TDIARY_CALENDAR_DESIGN', NULL); // NULL, 0, 1
17
18 // Show toolbar at your choice, with <div class="footer"> design
19 // NOTE: Some theme become looking worse with this!
20 if (! defined('PKWK_SKIN_SHOW_TOOLBAR'))
21         define('PKWK_SKIN_SHOW_TOOLBAR', 0); // 0, 1
22
23 // --------
24 // Prohibit direct access
25 if (! defined('UI_LANG')) die('UI_LANG is not set');
26 if (! isset($_LANG)) die('$_LANG is not set');
27
28 // Check theme
29 $theme = TDIARY_THEME;
30 if ($theme == '' || $theme == 'TDIARY_THEME') {
31         die('Theme is not specified. Set "TDIARY_THEME" correctly');
32 } else {
33         $theme = rawurlencode($theme); // Supress all nasty letters
34         $theme_css = SKIN_DIR . 'theme/' . $theme . '/' . $theme . '.css';
35         if (! file_exists($theme_css)) {
36                 echo 'tDiary theme wrapper: ';
37                 echo 'Theme not found: ' . htmlspecialchars($theme_css) . '<br/>';
38                 echo 'You can get tdiary-theme from: ';
39                 echo 'http://sourceforge.net/projects/tdiary/';
40                 exit;
41          }
42 }
43
44 // Adjust DTD (between theme(=CSS) and MSIE bug)
45 // NOTE:
46 //    PukiWiki default: PKWK_DTD_XHTML_1_1
47 //    tDiary's default: PKWK_DTD_HTML_4_01_STRICT
48 switch(TDIARY_THEME){
49 case 'christmas':
50         $pkwk_dtd = PKWK_DTD_HTML_4_01_STRICT; // or centering will be ignored via MSIE
51         break;
52 }
53
54 // Adjust reverse-link default design manually
55 $disable_reverse_link = FALSE;
56 switch(TDIARY_THEME){
57 case 'hatena':  /*FALLTHROUGH*/
58 case 'repro':
59 case 'yukon':
60         $disable_reverse_link = TRUE;
61         break;
62 }
63
64 // Sidebar: default position
65 if (defined('TDIARY_SIDEBAR_POSITION')) {
66         $sidebar = TDIARY_SIDEBAR_POSITION;
67 } else {
68         // Themes including sidebar CSS < (AllTheme / 2)
69         // $ grep div.sidebar */*.css | cut -d: -f1 | cut -d/ -f1 | sort | uniq
70         // $ wc -l *.txt
71         //     75 list-sidebar.txt
72         //    193 list-all.txt
73         $sidebar = 'another'; // Default: Show as an another page below
74         switch(TDIARY_THEME){
75         case '3minutes':        /*FALLTHROUGH*/
76         case '3pink':
77         case 'aoikuruma':
78         case 'arrow':
79         case 'autumn':
80         case 'babypink':
81         case 'bill':
82         case 'bistro_menu':
83         case 'bluely':
84         case 'book':
85         case 'book2-feminine':
86         case 'book3-sky':
87         case 'bright-green':
88         case 'bubble':
89         case 'candy':
90         case 'cat':
91         case 'cherry':
92         case 'citrus':
93         case 'clover':
94         case 'cool_ice':
95         case 'cosmos':
96         case 'darkness-pop':
97         case 'diamond_dust':
98         case 'dice':
99         case 'emboss':
100         case 'flower':
101         case 'gear':
102         case 'germany':
103         case 'gray2':
104         case 'happa':
105         case 'hatena':
106         case 'himawari':
107         case 'kaeru':
108         case 'kotatsu':
109         case 'light-blue':
110         case 'loose-leaf':
111         case 'marguerite':
112         case 'matcha':
113         case 'mizu':
114         case 'momonga':
115         case 'mono':
116         case 'moo':
117         case 'nippon':
118         case 'note':
119         case 'old-pavement':
120         case 'pain':
121         case 'pale':
122         case 'paper':
123         case 'parabola':
124         case 'pettan':
125         case 'pink-border':
126         case 'plum':
127         case 'puppy':
128         case 'purple_sun':
129         case 'rainy-season':
130         case 'rectangle':
131         case 'repro':
132         case 'russet':
133         case 's-blue':
134         case 'sagegreen':
135         case 'savanna':
136         case 'scarlet':
137         case 'sepia':
138         case 'simple':
139         case 'smoking_black':
140         case 'smoking_white':
141         case 'spring':
142         case 'sunset':
143         case 'teacup':
144         case 'thin':
145         case 'tile':
146         case 'tinybox':
147         case 'tinybox_green':
148         case 'wine':
149         case 'yukon':
150                 $sidebar = 'bottom';    // This is the default position of tDiary's.
151                 break;
152         }
153
154         // Adjust sidebar's default position
155         switch(TDIARY_THEME){
156
157         // Assuming sidebar is above of the body
158         case 'autumn':  /*FALLTHROUGH*/
159         case 'cosmos':
160         case 'dice':    // Sidebar text (white) seems unreadable
161         case 'happa':
162         case 'kaeru':
163         case 'note':
164         case 'paper':   // Sidebar text (white) seems unreadable
165         case 'sunset':
166         case 'tinybox': // For MSIE with narrow window width, seems meanless
167         case 'tinybox_green':   // The same
168                 $sidebar = 'top';
169                 break;
170
171         // Strict separation between sidebar and main contents needed
172         case '3minutes':        /*FALLTHROUGH*/
173         case '3pink':
174         case 'aoikuruma':
175         case 'bill':
176         case 'candy':
177         case 'cat':
178         case 'clover':
179         case 'cool_ice':
180         case 'flower':
181         case 'germany':
182         case 'himawari':
183         case 'kotatsu':
184         case 'light-blue':
185         case 'loose-leaf':
186         case 'marguerite':
187         case 'matcha':
188         case 'mizu':
189         case 'mono':
190         case 'moo':     // For MSIE, strict seems meanless
191         case 'puppy':
192         case 'rainy-season':
193         case 's-blue':  // For MSIE, strict seems meanless
194         case 'sagegreen':
195         case 'savanna':
196         case 'scarlet':
197         case 'sepia':
198         case 'simple':
199         case 'spring':
200         case 'teacup':
201         case 'wine':
202                 $sidebar = 'strict';
203                 break;
204
205         // They have sidevar-design, but can not show it at the 'side' of the contents
206         case 'babypink':        /*FALLTHROUGH*/
207         case 'bubble':
208         case 'cherry':
209         case 'darkness-pop':
210         case 'diamond_dust':
211         case 'gear':
212         case 'pale':
213         case 'pink-border':
214         case 'rectangle':
215         case 'russet':
216         case 'smoking_black':
217                 $sidebar = 'another'; // Show as an another page below
218                 break;
219         }
220 }
221 // Check menu (sidebar) is ready and $menubar is there
222 $menu = (arg_check('read') && is_page($GLOBALS['menubar']) &&
223         exist_plugin_convert('menu'));
224 if ($menu) {
225         $menu_body = preg_replace('#<h2 ([^>]*)>(.*?)</h2>#',
226                 '<h3 $1><span class="sanchor"></span> $2</h3>',
227                 do_plugin_convert('menu'));
228 }
229
230 $lang  = & $_LANG['skin'];
231 $link  = & $_LINK;
232
233 // Decide charset for CSS
234 $css_charset = 'iso-8859-1';
235 switch(UI_LANG){
236         case 'ja': $css_charset = 'Shift_JIS'; break;
237 }
238
239 // Output HTTP headers
240 pkwk_common_headers();
241 header('Cache-control: no-cache');
242 header('Pragma: no-cache');
243 header('Content-Type: text/html; charset=' . CONTENT_CHARSET);
244
245 // Output HTML DTD, <html>, and receive content-type
246 if (isset($pkwk_dtd)) {
247         $meta_content_type = pkwk_output_dtd($pkwk_dtd);
248 } else {
249         $meta_content_type = pkwk_output_dtd();
250 }
251
252 ?>
253 <head>
254  <?php echo $meta_content_type ?>
255  <meta http-equiv="content-style-type" content="text/css" />
256 <?php if (! $is_read)  { ?> <meta name="robots" content="NOINDEX,NOFOLLOW" /><?php } ?>
257 <?php if (PKWK_ALLOW_JAVASCRIPT && isset($javascript)) { ?> <meta http-equiv="Content-Script-Type" content="text/javascript" /><?php } ?>
258
259  <title><?php echo "$title - $page_title" ?></title>
260
261  <link rel="stylesheet" href="skin/theme/base.css" type="text/css" media="all" />
262  <link rel="stylesheet" href="skin/theme/<?php echo $theme ?>/<?php echo $theme ?>.css" type="text/css" media="all" />
263  <link rel="stylesheet" href="skin/tdiary.css.php?charset=<?php echo $css_charset ?>" type="text/css" media="screen" charset="<?php echo $css_charset ?>" />
264  <link rel="stylesheet" href="skin/tdiary.css.php?charset=<?php echo $css_charset ?>&amp;media=print" type="text/css" media="print" charset="<?php echo $css_charset ?>" />
265
266  <link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo $link['rss'] ?>" /><?php // RSS auto-discovery ?>
267
268 <?php if (PKWK_ALLOW_JAVASCRIPT && $trackback_javascript) { ?> <script type="text/javascript" src="skin/trackback.js"></script><?php } ?>
269
270 <?php echo $head_tag ?>
271 </head>
272 <body><!-- Theme:<?php echo htmlspecialchars($theme) . ' Sidebar:' . $sidebar ?> -->
273
274 <?php if ($menu && $sidebar == 'strict') { ?>
275 <!-- Sidebar top -->
276 <div class="sidebar">
277         <div id="menubar">
278                 <?php echo $menu_body ?>
279         </div>
280 </div><!-- class="sidebar" -->
281
282 <div class="pkwk_body">
283 <div class="main">
284 <?php } // if ($menu && $sidebar == 'strict') ?>
285
286 <!-- Navigation buttuns -->
287 <div id="navigator"></div>
288 <div class="adminmenu">
289 <?php
290 function _navigator($key, $value = '', $javascript = ''){
291         $lang = $GLOBALS['_LANG']['skin'];
292         $link = $GLOBALS['_LINK'];
293         if (! isset($lang[$key])) { echo 'LANG NOT FOUND'; return FALSE; }
294         if (! isset($link[$key])) { echo 'LINK NOT FOUND'; return FALSE; }
295         if (! PKWK_ALLOW_JAVASCRIPT) $javascript = '';
296
297         echo '<span class="adminmenu"><a href="' . $link[$key] . '" ' . $javascript . '>' .
298                 (($value === '') ? $lang[$key] : $value) .
299                 '</a></span>';
300
301         return TRUE;
302 }
303 ?>
304  <?php _navigator('top') ?> &nbsp;
305
306 <?php if ($is_page) { ?>
307    <?php _navigator('edit')   ?>
308  <?php if ($is_read && $function_freeze) { ?>
309     <?php (! $is_freeze) ? _navigator('freeze') : _navigator('unfreeze') ?>
310  <?php } ?>
311    <?php _navigator('diff') ?>
312  <?php if ($do_backup) { ?>
313    <?php _navigator('backup') ?>
314  <?php } ?>
315  <?php if ((bool)ini_get('file_uploads')) { ?>
316    <?php _navigator('upload') ?>
317  <?php } ?>
318    <?php _navigator('reload')    ?>
319    &nbsp;
320 <?php } ?>
321
322    <?php _navigator('new')  ?>
323    <?php _navigator('list') ?>
324  <?php if (arg_check('list')) { ?>
325    <?php _navigator('filelist') ?>
326  <?php } ?>
327    <?php _navigator('search') ?>
328    <?php _navigator('recent') ?>
329    <?php _navigator('help')   ?>
330
331 <?php if ($trackback) { ?> &nbsp;
332    <?php _navigator('trackback', $lang['trackback'] . '(' . tb_count($_page) . ')',
333         ($trackback_javascript == 1) ? 'onClick="OpenTrackback(this.href); return false"' : '') ?>
334 <?php } ?>
335 <?php if ($referer)   { ?> &nbsp;
336    <?php _navigator('refer') ?>
337 <?php } ?>
338 </div>
339
340 <h1><?php echo $page_title ?></h1>
341
342 <div class="calendar">
343 <?php if ($is_page && TDIARY_CALENDAR_DESIGN !== NULL) { ?>
344         <?php if(TDIARY_CALENDAR_DESIGN) { ?>
345                 <a href="<?php echo $link['reload'] ?>"><span class="small"><?php echo $link['reload'] ?></span></a>
346         <?php } else { ?>
347                 <?php require_once(PLUGIN_DIR . 'topicpath.inc.php'); echo plugin_topicpath_inline(); ?>
348         <?php } ?>
349 <?php } ?>
350 </div>
351
352
353 <?php if ($menu && $sidebar == 'top') { ?>
354 <!-- Sidebar compat top -->
355 <div class="sidebar">
356         <div id="menubar">
357                 <?php echo $menu_body ?>
358         </div>
359 </div><!-- class="sidebar" -->
360 <?php } // if ($menu && $sidebar == 'top') ?>
361
362
363 <?php if ($menu && ($sidebar == 'top' || $sidebar == 'bottom')) { ?>
364 <div class="pkwk_body">
365 <div class="main">
366 <?php } ?>
367
368 <hr class="sep" />
369
370 <div class="day">
371
372 <h2><span class="date"></span> <span class="title"><?php
373 if ($disable_reverse_link === TRUE) {
374         if ($_page != '') {
375                 echo htmlspecialchars($_page);
376         } else {
377                 echo $page; // Search, or something message
378         }
379 } else {
380         if ($page != '') {
381                 echo $page;
382         } else {
383                 echo htmlspecialchars($_page);
384         }
385 }
386 ?></span></h2>
387
388 <div class="body">
389         <div class="section">
390 <?php
391         // For read and preview: tDiary have no <h2> inside body
392         $body = preg_replace('#<h2 ([^>]*)>(.*?)<a class="anchor_super" ([^>]*)>.*?</a></h2>#',
393                 '<h3 $1><a $3><span class="sanchor">_</span></a> $2</h3>', $body);
394         $body = preg_replace('#<h([34]) ([^>]*)>(.*?)<a class="anchor_super" ([^>]*)>.*?</a></h\1>#',
395                 '<h$1 $2><a $4>_</a> $3</h$1>', $body);
396         $body = preg_replace('#<h2 ([^>]*)>(.*?)</h2>#',
397                 '<h3 $1><span class="sanchor">_</span> $2</h3>', $body);
398         if ($is_read) {
399                 // Read
400                 echo $body;
401         } else {
402                 // Edit, preview, search, etc
403                 echo preg_replace('/(<form) (action="' . preg_quote($script, '/') .
404                         ')/', '$1 class="update" $2', $body);
405         }
406 ?>
407         </div>
408 </div><!-- class="body" -->
409
410
411 <?php if ($notes != '') { ?>
412 <div class="comment"><!-- Design for tDiary "Comments" -->
413         <div class="caption">&nbsp;</div>
414         <div class="commentbody"><br/>
415                 <?php
416                 $notes = preg_replace('#<span class="small">(.*?)</span>#', '<p>$1</p>', $notes);
417                 echo preg_replace('#<a (id="notefoot_[^>]*)>(.*?)</a>#',
418                         '<div class="commentator"><a $1><span class="canchor"></span> ' .
419                         '<span class="commentator">$2</span></a>' .
420                         '<span class="commenttime"></span></div>', $notes);
421                 ?>
422         </div>
423 </div>
424 <?php } ?>
425
426 <?php if ($attaches != '') { ?>
427 <div class="comment">
428         <div class="caption">&nbsp;</div>
429         <div class="commentshort">
430                 <?php echo $attaches ?>
431         </div>
432 </div>
433 <?php } ?>
434
435 <?php if ($related != '') { ?>
436 <div class="comment">
437         <div class="caption">&nbsp;</div>
438         <div class="commentshort">
439                 Link: <?php echo $related ?>
440         </div>
441 </div>
442 <?php } ?>
443
444 <!-- Design for tDiary "Today's referrer" -->
445 <div class="referer"><?php if ($lastmodified != '') echo 'Last-modified: ' . $lastmodified; ?></div>
446
447 </div><!-- class="day" -->
448
449 <hr class="sep" />
450
451
452 <?php if ($menu && $sidebar == 'another') { ?>
453 </div><!-- class="main" -->
454 </div><!-- class="pkwk_body" -->
455
456 <!-- Sidebar another -->
457 <div class="pkwk_body">
458         <h1>&nbsp;</h1>
459         <div class="calendar"></div>
460         <hr class="sep" />
461         <div class="day">
462                 <h2><span class="date"></span><span class="title">&nbsp;</span></h2>
463                 <div class="body">
464                         <div class="section">
465                                 <?php echo $menu_body ?>
466                         </div>
467                 </div>
468                 <div class="referer"></div>
469         </div>
470         <hr class="sep" />
471 </div><!-- class="pkwk_body" -->
472
473 <div class="pkwk_body">
474 <div class="main">
475 <?php } // if ($menu && $sidebar == 'another') ?>
476
477
478 <?php if ($menu && ($sidebar == 'top' || $sidebar == 'bottom')) { ?>
479 </div><!-- class="main" -->
480 </div><!-- class="pkwk_body" -->
481 <?php } ?>
482
483
484 <?php if ($menu && $sidebar == 'bottom') { ?>
485 <!-- Sidebar compat bottom -->
486 <div class="sidebar">
487         <div id="menubar">
488                 <?php echo $menu_body ?>
489         </div>
490 </div><!-- class="sidebar" -->
491 <?php } // if ($menu && $sidebar == 'bottom') ?>
492
493
494 <div class="footer">
495 <?php if (PKWK_SKIN_SHOW_TOOLBAR) { ?>
496 <!-- Toolbar -->
497 <?php
498
499 // Set toolbar-specific images
500 $_IMAGE['skin']['reload']   = 'reload.png';
501 $_IMAGE['skin']['new']      = 'new.png';
502 $_IMAGE['skin']['edit']     = 'edit.png';
503 $_IMAGE['skin']['freeze']   = 'freeze.png';
504 $_IMAGE['skin']['unfreeze'] = 'unfreeze.png';
505 $_IMAGE['skin']['diff']     = 'diff.png';
506 $_IMAGE['skin']['upload']   = 'file.png';
507 $_IMAGE['skin']['copy']     = 'copy.png';
508 $_IMAGE['skin']['rename']   = 'rename.png';
509 $_IMAGE['skin']['top']      = 'top.png';
510 $_IMAGE['skin']['list']     = 'list.png';
511 $_IMAGE['skin']['search']   = 'search.png';
512 $_IMAGE['skin']['recent']   = 'recentchanges.png';
513 $_IMAGE['skin']['backup']   = 'backup.png';
514 $_IMAGE['skin']['help']     = 'help.png';
515 $_IMAGE['skin']['rss']      = 'rss.png';
516 $_IMAGE['skin']['rss10']    = & $_IMAGE['skin']['rss'];
517 $_IMAGE['skin']['rss20']    = 'rss20.png';
518 $_IMAGE['skin']['rdf']      = 'rdf.png';
519
520 function _toolbar($key, $x = 20, $y = 20){
521         $lang  = & $GLOBALS['_LANG']['skin'];
522         $link  = & $GLOBALS['_LINK'];
523         $image = & $GLOBALS['_IMAGE']['skin'];
524         if (! isset($lang[$key]) ) { echo 'LANG NOT FOUND';  return FALSE; }
525         if (! isset($link[$key]) ) { echo 'LINK NOT FOUND';  return FALSE; }
526         if (! isset($image[$key])) { echo 'IMAGE NOT FOUND'; return FALSE; }
527
528         echo '<a href="' . $link[$key] . '">' .
529                 '<img src="' . IMAGE_DIR . $image[$key] . '" width="' . $x . '" height="' . $y . '" ' .
530                         'alt="' . $lang[$key] . '" title="' . $lang[$key] . '" />' .
531                 '</a>';
532         return TRUE;
533 }
534 ?>
535  <?php _toolbar('top') ?>
536
537 <?php if ($is_page) { ?>
538  &nbsp;
539  <?php _toolbar('edit') ?>
540  <?php if ($is_read && $function_freeze) { ?>
541   <?php if (! $is_freeze) { _toolbar('freeze'); } else { _toolbar('unfreeze'); } ?>
542  <?php } ?>
543  <?php _toolbar('diff') ?>
544 <?php if ($do_backup) { ?>
545   <?php _toolbar('backup') ?>
546 <?php } ?>
547  <?php if ((bool)ini_get('file_uploads')) { ?>
548   <?php _toolbar('upload') ?>
549  <?php } ?>
550  <?php _toolbar('copy') ?>
551  <?php _toolbar('rename') ?>
552  <?php _toolbar('reload') ?>
553 <?php } ?>
554  &nbsp;
555  <?php _toolbar('new')    ?>
556  <?php _toolbar('list')   ?>
557  <?php _toolbar('search') ?>
558  <?php _toolbar('recent') ?>
559  &nbsp; <?php _toolbar('help') ?>
560  &nbsp; <?php _toolbar('rss10', 36, 14) ?>
561  <br/>
562 <?php } // PKWK_SKIN_SHOW_TOOLBAR ?>
563
564 <!-- Copyright etc -->
565  Site admin: <a href="<?php echo $modifierlink ?>"><?php echo $modifier ?></a><p />
566  <?php echo S_COPYRIGHT ?>.
567  Powered by PHP <?php echo PHP_VERSION ?><br />
568  HTML convert time: <?php echo $taketime ?> sec.
569
570 </div><!-- class="footer" -->
571
572 <?php if ($menu && ($sidebar != 'top' && $sidebar != 'bottom')) { ?>
573 </div><!-- class="main" -->
574 </div><!-- class="pkwk_body" -->
575 <?php } ?>
576
577
578 </body>
579 </html>