X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=plugin%2Fback.inc.php;h=76625e8341bc105470da41826b851b6d8a88f596;hb=0b74c719b1f4935da9688dad464207866b10b718;hp=201c720dcebba6b3207a4f324271be18f84bb786;hpb=db54803012d33536a32c6c48788c240dd1fb8cf3;p=pukiwiki%2Fpukiwiki.git
diff --git a/plugin/back.inc.php b/plugin/back.inc.php
index 201c720..76625e8 100644
--- a/plugin/back.inc.php
+++ b/plugin/back.inc.php
@@ -1,67 +1,73 @@
- *
- * [»ÈÍÑÎã]
- * #back(,,0)
- * #back(,left)
- * #back(,right,0)
- * #back(Ìá¤ë,center,0,http://localhost)
- *
- * [°ú¿ô]
- * 1 - ʸ¸À ¾Êά»þ:Ìá¤ë
- * 2 - left, center, right ¾Êά»þ:center
- * 3 -
¥¿¥°¤ÎÍ̵ ¾Êά»þ:½ÐÎÏ
- * 4 - Ä̾ï¤Ï¡¢Ìá¤ë¤Ê¤ï¤±¤Ê¤ó¤Ç¤¹¤¬¡¢¤É¤¦¤·¤Æ¤â¤Î¾ì¹ç¤ÎÈô¤ÓÀè¤ò»ØÄê²Äǽ
- */
+// $Id: back.inc.php,v 1.10 2011/01/25 15:01:01 henoheno Exp $
+// Copyright (C)
+// 2003-2004 PukiWiki Developers Team
+// 2002 Katsumi Saito
+//
+// back plugin
-function plugin_back_init()
-{
- $messages = array(
- '_msg_back_word' => 'Ìá¤ë'
- );
- set_plugin_messages($messages);
-}
+// Allow specifying back link by page name and anchor, or
+// by relative or site-abusolute path
+define('PLUGIN_BACK_ALLOW_PAGELINK', PKWK_SAFE_MODE); // FALSE(Compat), TRUE
+
+// Allow JavaScript (Compat)
+define('PLUGIN_BACK_ALLOW_JAVASCRIPT', TRUE); // TRUE(Compat), FALSE, PKWK_ALLOW_JAVASCRIPT
+// ----
+define('PLUGIN_BACK_USAGE', '#back([text],[center|left|right][,0(no hr)[,Page-or-URI-to-back]])');
function plugin_back_convert()
{
- global $_msg_back_word;
-
- $argv = func_get_args();
+ global $_msg_back_word, $script;
- // ½é´üÃÍÀßÄê
- $word = $_msg_back_word;
- $align = 'center';
- $hr = 1;
- $href = 'javascript:history.go(-1)';
- $ret = '';
+ if (func_num_args() > 4) return PLUGIN_BACK_USAGE;
+ list($word, $align, $hr, $href) = array_pad(func_get_args(), 4, '');
- // ¥Ñ¥é¥á¡¼¥¿¤ÎȽÃÇ
- if (func_num_args() > 0) {
- $word = htmlspecialchars(trim(strip_tags($argv[0])));
- if ($word == '') $word = $_msg_back_word;
- }
- if (func_num_args() > 1) {
- $align = htmlspecialchars(trim(strip_tags($argv[1])));
- if ($align == '') $align = 'center';
- }
- if (func_num_args() > 2) {
- $hr = trim(strip_tags($argv[2]));
- }
- if (func_num_args() > 3) {
- $href = rawurlencode(trim(strip_tags($argv[3])));
- if ($href == '') $href = 'javascript:history.go(-1)';
- }
+ $word = trim($word);
+ $word = ($word == '') ? $_msg_back_word : htmlsc($word);
- //
¥¿¥°¤ò½ÐÎϤ¹¤ë¤«¤É¤¦¤«
- if ($hr) {
- $ret = "
\n";
+ $align = strtolower(trim($align));
+ switch($align){
+ case '' : $align = 'center';
+ /*FALLTHROUGH*/
+ case 'center': /*FALLTHROUGH*/
+ case 'left' : /*FALLTHROUGH*/
+ case 'right' : break;
+ default : return PLUGIN_BACK_USAGE;
}
- $ret.= "\n";
+ $hr = (trim($hr) != '0') ? '
' . "\n" : '';
- return $ret;
+ $link = TRUE;
+ $href = trim($href);
+ if ($href != '') {
+ if (PLUGIN_BACK_ALLOW_PAGELINK) {
+ if (is_url($href)) {
+ $href = rawurlencode($href);
+ } else {
+ $array = anchor_explode($href);
+ $array[0] = rawurlencode($array[0]);
+ $array[1] = ($array[1] != '') ? '#' . rawurlencode($array[1]) : '';
+ $href = $script . '?' . $array[0] . $array[1];
+ $link = is_page($array[0]);
+ }
+ } else {
+ $href = rawurlencode($href);
+ }
+ } else {
+ if (! PLUGIN_BACK_ALLOW_JAVASCRIPT)
+ return PLUGIN_BACK_USAGE . ': Set a page name or an URI';
+ $href = 'javascript:history.go(-1)';
+ }
+
+ if($link){
+ // Normal link
+ return $hr . '' . "\n";
+ } else {
+ // Dangling link
+ return $hr . '' .
+ '[
' . $word . '? ]
' . "\n";
+ }
}
?>