找回密码
 注册
【阿里云】2核2G云新老同享 99元/年,续费同价华为云精选云产品特惠做网站就用糖果主机Jtti,新加坡服务器,美国服务器,香港服务器
楼主: xchange

PunBB插件编写初探

[复制链接]
 楼主| 发表于 2005 年 5 月 28 日 12:47:01 | 显示全部楼层

PunBB插件编写初探

PunBB安装文件中提供了一个演示用的插件AMP_Example.php。根据这个演示,我编写了一个简单的上传文件插件做测试。

就目前来看,plugin下的插件只能供管理员和版主使用。其文件名必须以"AMP_"或者"AP_"开始,"AMP_"表明该插件可以被管理员和版主使用,"AP_"开头的则只能由管理员使用。前缀之后的部分将出现在管理菜单下面的"插件"栏里。

plugin下的文件由admin_loader.php在运行过程中动态载入,因此可以使用全部的全局变量和一些通用的函数。插件中如果要显示左侧的管理员菜单,必须调用generate_admin_menu($plugin)函数。另外在插件中如果使用了表单,其action属性一定要使用$_SERVER['REQUEST_URI']。

下面是上传文件插件的源代码:

<?php
// 如果直接访问该文件则退出执行
if (!defined(&#39UN'))
      exit;

// 告诉admin_load.php这确实是一个插件而且被载入了
define(&#39UN_PLUGIN_LOADED', 1);

//输出管理员菜单
generate_admin_menu($plugin);

?>

      <div id="exampleplugin" class="blockform">
             <h2><span>插件信息</span></h2>
             <div class="box">
                    <div class="inbox">
                           <p>该插件由Xchange开发,用于管理员和版主上传较小的文件,并做为编写插件的演示。</p>
                    </div>
             </div>
             <h2 class="block2"><span>文件上传</span></h2>
             <div class="box">
                    <div class="inbox">

<?php
if (isset($_FILES['myfile'])) {
      //判断文件类型
      switch ($_FILES['myfile']['type']) {
             case "image/bmp":
                    $type="bmp";
                    break;
             case "image/gif":
                    $type="gif";
                    break;
             case "image/jpeg":
             case "image/pjpeg":
                    $type="jpg";
                    break;
             case "image/png":
                    $type="png";
                    break;
             case "application/zip":
                    $type="zip";
                    break;
             case "application/rar":
                    $type="rar";
                    break;
             default:
                    $type="other";
      }
      if ($_FILES['myfile']['size']>512000||$_FILES['myfile']['size']==0)    //判断文件是否过大或者没有内容
             echo("\t\t\t\t<p>上传失败!文件大小错误。</p>");
      elseif ($type=="other")    //判断文件类型是否符合要求
             echo("\t\t\t\t<p>上传失败!文件格式错误!</p>");
      else {
             $name=time()."_".md5($_FILES['myfile']['name']).".".$type;    //给新文件取一个名字
             move_uploaded_file($_FILES['myfile']['tmp_name'],"./upload/".$name);    //移动上传的文件到置顶目录
             echo("\t\t\t\t<p>文件已成功上传,您可以用如下地址访问:</p>\n");
             echo("\t\t\t\t<p>".$pun_config['o_base_url']."/upload/".$name."</p>\n");    //返回访问地址
      }
      echo("\t\t\t\t<p>".'<a href="javascript: history.go(-1)">'."Go back</a></p>\n");
}
else {
?>
                           <p>可上传的文件类型:bmp、jpg、gif、png、zip和rar。</p>
                           <p>文件大小不得超过500KB。</p>
                           <form id="example" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'] ?>">
                                  <div class="inform">
                                         <fieldset>
                                                <legend>选择您要上传的文件:</legend>
                                                <div class="infldset">
                                                <input type="hidden" name="MAX_FILE_SIZE" value="512000">
                                                <p><input name="myfile" type="file" size="40"></p>
                                                <p><input name="submit" type="submit" value="上传"></p>
                                                </div>
                                         </fieldset>
                                  </div>
                           </form>
<?php
}
?>
                    </div>
             </div>

命名为AMP_upload.php,保存在plugins目录(用UTF-8格式,否则会有乱码)。在根目录下新建upload目录,并设置属性777即可使用。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2005 年 5 月 28 日 12:47:01 | 显示全部楼层
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价

PunBB插件编写初探

PunBB安装文件中提供了一个演示用的插件AMP_Example.php。根据这个演示,我编写了一个简单的上传文件插件做测试。

就目前来看,plugin下的插件只能供管理员和版主使用。其文件名必须以"AMP_"或者"AP_"开始,"AMP_"表明该插件可以被管理员和版主使用,"AP_"开头的则只能由管理员使用。前缀之后的部分将出现在管理菜单下面的"插件"栏里。

plugin下的文件由admin_loader.php在运行过程中动态载入,因此可以使用全部的全局变量和一些通用的函数。插件中如果要显示左侧的管理员菜单,必须调用generate_admin_menu($plugin)函数。另外在插件中如果使用了表单,其action属性一定要使用$_SERVER['REQUEST_URI']。

下面是上传文件插件的源代码:

<?php
// 如果直接访问该文件则退出执行
if (!defined(&#39UN'))
      exit;

// 告诉admin_load.php这确实是一个插件而且被载入了
define(&#39UN_PLUGIN_LOADED', 1);

//输出管理员菜单
generate_admin_menu($plugin);

?>

      <div id="exampleplugin" class="blockform">
             <h2><span>插件信息</span></h2>
             <div class="box">
                    <div class="inbox">
                           <p>该插件由Xchange开发,用于管理员和版主上传较小的文件,并做为编写插件的演示。</p>
                    </div>
             </div>
             <h2 class="block2"><span>文件上传</span></h2>
             <div class="box">
                    <div class="inbox">

<?php
if (isset($_FILES['myfile'])) {
      //判断文件类型
      switch ($_FILES['myfile']['type']) {
             case "image/bmp":
                    $type="bmp";
                    break;
             case "image/gif":
                    $type="gif";
                    break;
             case "image/jpeg":
             case "image/pjpeg":
                    $type="jpg";
                    break;
             case "image/png":
                    $type="png";
                    break;
             case "application/zip":
                    $type="zip";
                    break;
             case "application/rar":
                    $type="rar";
                    break;
             default:
                    $type="other";
      }
      if ($_FILES['myfile']['size']>512000||$_FILES['myfile']['size']==0)    //判断文件是否过大或者没有内容
             echo("\t\t\t\t<p>上传失败!文件大小错误。</p>");
      elseif ($type=="other")    //判断文件类型是否符合要求
             echo("\t\t\t\t<p>上传失败!文件格式错误!</p>");
      else {
             $name=time()."_".md5($_FILES['myfile']['name']).".".$type;    //给新文件取一个名字
             move_uploaded_file($_FILES['myfile']['tmp_name'],"./upload/".$name);    //移动上传的文件到置顶目录
             echo("\t\t\t\t<p>文件已成功上传,您可以用如下地址访问:</p>\n");
             echo("\t\t\t\t<p>".$pun_config['o_base_url']."/upload/".$name."</p>\n");    //返回访问地址
      }
      echo("\t\t\t\t<p>".'<a href="javascript: history.go(-1)">'."Go back</a></p>\n");
}
else {
?>
                           <p>可上传的文件类型:bmp、jpg、gif、png、zip和rar。</p>
                           <p>文件大小不得超过500KB。</p>
                           <form id="example" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'] ?>">
                                  <div class="inform">
                                         <fieldset>
                                                <legend>选择您要上传的文件:</legend>
                                                <div class="infldset">
                                                <input type="hidden" name="MAX_FILE_SIZE" value="512000">
                                                <p><input name="myfile" type="file" size="40"></p>
                                                <p><input name="submit" type="submit" value="上传"></p>
                                                </div>
                                         </fieldset>
                                  </div>
                           </form>
<?php
}
?>
                    </div>
             </div>

命名为AMP_upload.php,保存在plugins目录(用UTF-8格式,否则会有乱码)。在根目录下新建upload目录,并设置属性777即可使用。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2005 年 5 月 28 日 12:47:01 | 显示全部楼层

PunBB插件编写初探

PunBB安装文件中提供了一个演示用的插件AMP_Example.php。根据这个演示,我编写了一个简单的上传文件插件做测试。

就目前来看,plugin下的插件只能供管理员和版主使用。其文件名必须以"AMP_"或者"AP_"开始,"AMP_"表明该插件可以被管理员和版主使用,"AP_"开头的则只能由管理员使用。前缀之后的部分将出现在管理菜单下面的"插件"栏里。

plugin下的文件由admin_loader.php在运行过程中动态载入,因此可以使用全部的全局变量和一些通用的函数。插件中如果要显示左侧的管理员菜单,必须调用generate_admin_menu($plugin)函数。另外在插件中如果使用了表单,其action属性一定要使用$_SERVER['REQUEST_URI']。

下面是上传文件插件的源代码:

<?php
// 如果直接访问该文件则退出执行
if (!defined(&#39UN'))
      exit;

// 告诉admin_load.php这确实是一个插件而且被载入了
define(&#39UN_PLUGIN_LOADED', 1);

//输出管理员菜单
generate_admin_menu($plugin);

?>

      <div id="exampleplugin" class="blockform">
             <h2><span>插件信息</span></h2>
             <div class="box">
                    <div class="inbox">
                           <p>该插件由Xchange开发,用于管理员和版主上传较小的文件,并做为编写插件的演示。</p>
                    </div>
             </div>
             <h2 class="block2"><span>文件上传</span></h2>
             <div class="box">
                    <div class="inbox">

<?php
if (isset($_FILES['myfile'])) {
      //判断文件类型
      switch ($_FILES['myfile']['type']) {
             case "image/bmp":
                    $type="bmp";
                    break;
             case "image/gif":
                    $type="gif";
                    break;
             case "image/jpeg":
             case "image/pjpeg":
                    $type="jpg";
                    break;
             case "image/png":
                    $type="png";
                    break;
             case "application/zip":
                    $type="zip";
                    break;
             case "application/rar":
                    $type="rar";
                    break;
             default:
                    $type="other";
      }
      if ($_FILES['myfile']['size']>512000||$_FILES['myfile']['size']==0)    //判断文件是否过大或者没有内容
             echo("\t\t\t\t<p>上传失败!文件大小错误。</p>");
      elseif ($type=="other")    //判断文件类型是否符合要求
             echo("\t\t\t\t<p>上传失败!文件格式错误!</p>");
      else {
             $name=time()."_".md5($_FILES['myfile']['name']).".".$type;    //给新文件取一个名字
             move_uploaded_file($_FILES['myfile']['tmp_name'],"./upload/".$name);    //移动上传的文件到置顶目录
             echo("\t\t\t\t<p>文件已成功上传,您可以用如下地址访问:</p>\n");
             echo("\t\t\t\t<p>".$pun_config['o_base_url']."/upload/".$name."</p>\n");    //返回访问地址
      }
      echo("\t\t\t\t<p>".'<a href="javascript: history.go(-1)">'."Go back</a></p>\n");
}
else {
?>
                           <p>可上传的文件类型:bmp、jpg、gif、png、zip和rar。</p>
                           <p>文件大小不得超过500KB。</p>
                           <form id="example" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'] ?>">
                                  <div class="inform">
                                         <fieldset>
                                                <legend>选择您要上传的文件:</legend>
                                                <div class="infldset">
                                                <input type="hidden" name="MAX_FILE_SIZE" value="512000">
                                                <p><input name="myfile" type="file" size="40"></p>
                                                <p><input name="submit" type="submit" value="上传"></p>
                                                </div>
                                         </fieldset>
                                  </div>
                           </form>
<?php
}
?>
                    </div>
             </div>

命名为AMP_upload.php,保存在plugins目录(用UTF-8格式,否则会有乱码)。在根目录下新建upload目录,并设置属性777即可使用。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

 楼主| 发表于 2005 年 5 月 28 日 12:47:01 | 显示全部楼层

PunBB插件编写初探

PunBB安装文件中提供了一个演示用的插件AMP_Example.php。根据这个演示,我编写了一个简单的上传文件插件做测试。

就目前来看,plugin下的插件只能供管理员和版主使用。其文件名必须以"AMP_"或者"AP_"开始,"AMP_"表明该插件可以被管理员和版主使用,"AP_"开头的则只能由管理员使用。前缀之后的部分将出现在管理菜单下面的"插件"栏里。

plugin下的文件由admin_loader.php在运行过程中动态载入,因此可以使用全部的全局变量和一些通用的函数。插件中如果要显示左侧的管理员菜单,必须调用generate_admin_menu($plugin)函数。另外在插件中如果使用了表单,其action属性一定要使用$_SERVER['REQUEST_URI']。

下面是上传文件插件的源代码:

<?php
// 如果直接访问该文件则退出执行
if (!defined(&#39UN'))
      exit;

// 告诉admin_load.php这确实是一个插件而且被载入了
define(&#39UN_PLUGIN_LOADED', 1);

//输出管理员菜单
generate_admin_menu($plugin);

?>

      <div id="exampleplugin" class="blockform">
             <h2><span>插件信息</span></h2>
             <div class="box">
                    <div class="inbox">
                           <p>该插件由Xchange开发,用于管理员和版主上传较小的文件,并做为编写插件的演示。</p>
                    </div>
             </div>
             <h2 class="block2"><span>文件上传</span></h2>
             <div class="box">
                    <div class="inbox">

<?php
if (isset($_FILES['myfile'])) {
      //判断文件类型
      switch ($_FILES['myfile']['type']) {
             case "image/bmp":
                    $type="bmp";
                    break;
             case "image/gif":
                    $type="gif";
                    break;
             case "image/jpeg":
             case "image/pjpeg":
                    $type="jpg";
                    break;
             case "image/png":
                    $type="png";
                    break;
             case "application/zip":
                    $type="zip";
                    break;
             case "application/rar":
                    $type="rar";
                    break;
             default:
                    $type="other";
      }
      if ($_FILES['myfile']['size']>512000||$_FILES['myfile']['size']==0)    //判断文件是否过大或者没有内容
             echo("\t\t\t\t<p>上传失败!文件大小错误。</p>");
      elseif ($type=="other")    //判断文件类型是否符合要求
             echo("\t\t\t\t<p>上传失败!文件格式错误!</p>");
      else {
             $name=time()."_".md5($_FILES['myfile']['name']).".".$type;    //给新文件取一个名字
             move_uploaded_file($_FILES['myfile']['tmp_name'],"./upload/".$name);    //移动上传的文件到置顶目录
             echo("\t\t\t\t<p>文件已成功上传,您可以用如下地址访问:</p>\n");
             echo("\t\t\t\t<p>".$pun_config['o_base_url']."/upload/".$name."</p>\n");    //返回访问地址
      }
      echo("\t\t\t\t<p>".'<a href="javascript: history.go(-1)">'."Go back</a></p>\n");
}
else {
?>
                           <p>可上传的文件类型:bmp、jpg、gif、png、zip和rar。</p>
                           <p>文件大小不得超过500KB。</p>
                           <form id="example" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'] ?>">
                                  <div class="inform">
                                         <fieldset>
                                                <legend>选择您要上传的文件:</legend>
                                                <div class="infldset">
                                                <input type="hidden" name="MAX_FILE_SIZE" value="512000">
                                                <p><input name="myfile" type="file" size="40"></p>
                                                <p><input name="submit" type="submit" value="上传"></p>
                                                </div>
                                         </fieldset>
                                  </div>
                           </form>
<?php
}
?>
                    </div>
             </div>

命名为AMP_upload.php,保存在plugins目录(用UTF-8格式,否则会有乱码)。在根目录下新建upload目录,并设置属性777即可使用。
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 11 月 19 日 10:22 , Processed in 0.017952 second(s), 13 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表