<?php
/*
* PukiWiki calendar_viewer¥×¥é¥°¥¤¥ó
- * $Id: calendar_viewer.inc.php,v 1.24 2004/08/11 13:36:38 henoheno Exp $
+ * $Id: calendar_viewer.inc.php,v 1.25 2004/08/11 14:19:48 henoheno Exp $
* calendarrecent¥×¥é¥°¥¤¥ó¤ò¸µ¤ËºîÀ®
*/
global $_msg_calendar_viewer_right, $_msg_calendar_viewer_left;
global $_msg_calendar_viewer_restrict;
+ static $viewed = array();
+
// °ú¿ô¤Î³Îǧ
if (func_num_args() < 2)
return '#calendar_viewer(): ' . $_err_calendar_viewer_param . '<br />';
$mode = 'past'; // Æ°ºî¥â¡¼¥É
$date_sep = '-'; // ÆüÉդΥ»¥Ñ¥ì¡¼¥¿ calendar2¤Ê¤é '-', calendar¤Ê¤é ''
- if (isset($func_args[3])) {
- $date_sep = $func_args[3];
- }
-
+ // $func_args[1] ¤Î¥Á¥§¥Ã¥¯
if (preg_match('/[0-9]{4}' . $date_sep . '[0-9]{2}/', $func_args[1])) {
// »ØÄêǯ·î¤Î°ìÍ÷ɽ¼¨
$page_YM = $func_args[1];
$mode = $func_args[2];
}
+ if (isset($func_args[3])) {
+ $date_sep = $func_args[3];
+ }
+
+ // Avoid Loop etc.
+ if (isset($viewed[$pagename])) {
+ $s_page = htmlspecialchars($pagename);
+ return "#calendar_viewer(): You already view: $s_page<br />";
+ } else {
+ $viewed[$pagename] = TRUE; // Valid
+ }
+
// °ìÍ÷ɽ¼¨¤¹¤ë¥Ú¡¼¥¸Ì¾¤È¥Õ¥¡¥¤¥ë̾¤Î¥Ñ¥¿¡¼¥ó¡¡¥Õ¥¡¥¤¥ë̾¤Ë¤Ïǯ·î¤ò´Þ¤à
if ($pagename == '') {
// pagename̵¤·¤Îyyyy-mm-dd¤ËÂбþ¤¹¤ë¤¿¤á¤Î½èÍý