2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
5 // $Id: plugin.php,v 1.5 2003/02/28 06:18:39 panda Exp $
8 // ¥×¥é¥°¥¤¥óÍѤË̤ÄêµÁ¤ÎÊÑ¿ô¤òÀßÄê
9 function set_plugin_messages($messages)
11 foreach ($messages as $name=>$val)
22 //¥×¥é¥°¥¤¥ó¤¬Â¸ºß¤¹¤ë¤«
23 function exist_plugin($name)
25 if (preg_match('/^\w{1,64}$/',$name)
26 and file_exists(PLUGIN_DIR.$name.'.inc.php'))
28 require_once(PLUGIN_DIR.$name.'.inc.php');
34 //¥×¥é¥°¥¤¥ó(action)¤¬Â¸ºß¤¹¤ë¤«
35 function exist_plugin_action($name)
37 if (!exist_plugin($name))
41 return function_exists('plugin_'.$name.'_action');
44 //¥×¥é¥°¥¤¥ó(convert)¤¬Â¸ºß¤¹¤ë¤«
45 function exist_plugin_convert($name)
47 if (!exist_plugin($name))
51 return function_exists('plugin_'.$name.'_convert');
54 //¥×¥é¥°¥¤¥ó(inline)¤¬Â¸ºß¤¹¤ë¤«
55 function exist_plugin_inline($name)
57 if (!exist_plugin($name))
61 return function_exists('plugin_'.$name.'_inline');
64 //¥×¥é¥°¥¤¥ó¤Î½é´ü²½¤ò¼Â¹Ô
65 function do_plugin_init($name)
67 $funcname = 'plugin_'.$name.'_init';
68 if (!function_exists($funcname)) {
72 $func_check = '_funccheck_'.$funcname;
80 return @call_user_func($funcname);
83 //¥×¥é¥°¥¤¥ó(action)¤ò¼Â¹Ô
84 function do_plugin_action($name)
86 if(!exist_plugin_action($name))
91 do_plugin_init($name);
92 return @call_user_func('plugin_'.$name.'_action');
95 //¥×¥é¥°¥¤¥ó(convert)¤ò¼Â¹Ô
96 function do_plugin_convert($name,$args)
98 $aryargs = ($args !== '') ? explode(',',$args) : array();
100 do_plugin_init($name);
101 $retvar = call_user_func_array('plugin_'.$name.'_convert',$aryargs);
103 if($retvar === FALSE)
105 return htmlspecialchars('#'.$name.($args ? "($args)" : ''));
111 //¥×¥é¥°¥¤¥ó(inline)¤ò¼Â¹Ô
112 function do_plugin_inline($name,$args,$body)
114 $aryargs = ($args !== '') ? explode(',',$args) : array();
117 do_plugin_init($name);
118 $retvar = call_user_func_array('plugin_'.$name.'_inline',$aryargs);
120 if($retvar === FALSE)
122 return htmlspecialchars("&${name}" . ($args ? "($args)" : '') . ';');