OSDN Git Service

ぱんだ:開発日記/2002-11-29参照
[pukiwiki/pukiwiki.git] / plugin.php
1 <?php
2 // PukiWiki - Yet another WikiWikiWeb clone.
3 // $Id: plugin.php,v 1.2 2002/11/29 00:09:00 panda Exp $
4 /////////////////////////////////////////////////
5
6 // ¥×¥é¥°¥¤¥óÍѤË̤ÄêµÁ¤ÎÊÑ¿ô¤òÀßÄê
7 function set_plugin_messages($messages)
8 {
9   foreach ($messages as $name=>$val) {
10     global $$name;
11     if(!isset($$name)) {
12       $$name = $val;
13     }
14   }
15 }
16
17 //¥×¥é¥°¥¤¥ó(action)¤¬Â¸ºß¤¹¤ë¤«
18 function exist_plugin_action($name) {
19   if(!file_exists(PLUGIN_DIR.$name.".inc.php"))
20     {
21       return false;
22     }
23   else
24     {
25       require_once(PLUGIN_DIR.$name.".inc.php");
26       if(!function_exists("plugin_".$name."_action"))
27         {
28           return false;
29         }
30     }
31   return true;
32 }
33
34 //¥×¥é¥°¥¤¥ó(convert)¤¬Â¸ºß¤¹¤ë¤«
35 function exist_plugin_convert($name) {
36   if(!file_exists(PLUGIN_DIR.$name.".inc.php"))
37     {
38       return false;
39     }
40   else
41     {
42       require_once(PLUGIN_DIR.$name.".inc.php");
43       if(!function_exists("plugin_".$name."_convert"))
44         {
45           return false;
46         }
47     }
48   return true;
49 }
50
51 //¥×¥é¥°¥¤¥ó¤Î½é´ü²½¤ò¼Â¹Ô
52 function do_plugin_init($name) {
53   $funcname = "plugin_".$name."_init";
54   if(!function_exists($funcname))
55     {
56       return false;
57     }
58   
59   $func_check = "_funccheck_".$funcname;
60   global $$func_check;
61   if($$func_check)
62     {
63       return false;
64     }
65   $$func_check = true;
66   return @call_user_func($funcname);
67 }
68
69 //¥×¥é¥°¥¤¥ó(action)¤ò¼Â¹Ô
70 function do_plugin_action($name) {
71   if(!exist_plugin_action($name)) {
72     return array();
73   }
74   do_plugin_init($name);
75   return @call_user_func("plugin_".$name."_action");
76 }
77
78 //¥×¥é¥°¥¤¥ó(convert)¤ò¼Â¹Ô
79 function do_plugin_convert($plugin_name,$plugin_args)
80 {
81   $invalid_return = "#${plugin_name}(${plugin_args})";
82   
83   if($plugin_args !== "")
84     $aryargs = explode(",",$plugin_args);
85   else
86     $aryargs = array();
87
88   do_plugin_init($plugin_name);
89   $retvar = call_user_func_array("plugin_${plugin_name}_convert",$aryargs);
90   
91   if($retvar === FALSE) return $invalid_return;
92   else                  return $retvar;
93 }
94
95
96 ?>