前段时间把博客迁移到好友祭酒的服务器,在文件管理方面有一些问题,然后找到了基于PHP的开源文件管理器项目:TinyFileManager,然后突发奇想把这个项目通过插件融合进后台,但是很多专栏需要收费&写的不适合小白,故自行摸索并写了这篇文章,文中可能会有不正确的解释及不符合规范的写法,欢迎在评论区中指正。
Plugin.php
插件信息的注释无需过多赘述,首先照猫画虎,写一个
class TinyFileManager_Plugin implements Typecho_Plugin_Interface{}
后续内容都是需要在{}
之内,文件开头需要<?php
,末尾不需要?>
告诉Typecho如何激活插件:
public static function activate(){}
有激活方法也得有禁用方法,不然会拉坨大的:
public static function deactivate(){}
在这里我使用addPanel
class TinyFileManager_Plugin implements Typecho_Plugin_Interface
{
public static function activate()
{
Helper::addPanel(3, 'TinyFileManager/panel.php', '文件管理', '文件管理器', 'administrator');
}
public static function deactivate()
{
Helper::removePanel(3, 'TinyFileManager/panel.php');
}
public static function config(Typecho_Widget_Helper_Form $form){}
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
}
很容易看出来addPanel
使用的方法
Helper::addPanel(面板添加的位置(即菜单中正数第几行),'文件路径', '菜单中的名字', '进入后的标题', '允许进入的用户权限');
注意,同时需要在插件禁用方法中写removePanel
panel.php
本来是想按照TinyFileManager官方文档中的写法嵌入,但是会报错500,因此这里使用iframe
并使其全屏显示,缺点是需要单独登录。
需要包括header.php menu.php copyright.php common-js.php footer.php
<?php
include 'header.php';
include 'menu.php';
?>
<style>
iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
}
</style>
<iframe id="tinyfilemanager" src="../usr/plugins/TinyFileManager/tinyfilemanager.php" frameborder="0"></iframe>
<?php
include 'common-js.php';
include 'footer.php';
?>
TinyFileManager配置文件的修改
$CONFIG = '{"lang":"zh-CN","error_reporting":false,"show_hidden":false,"hide_Cols":false,"theme":"light"}';
$default_timezone = 'Asia/Shanghai';
$datetime_format = 'Y年m月d日 H:i:s';
$online_viewer = 'microsoft';
很暴力但很实用的方法。
对,自用完全够了