This page lists files in the current directory. You can view content, get download/execute commands for Wget, Curl, or PowerShell, or filter the list using wildcards (e.g., `*.sh`).
wget 'https://sme10.lists2.roe3.org/kodbox/plugins/yzOffice/app.php'
<?php
/*
* @link http://kodcloud.com/
* @author warlee | e-mail:kodcloud@qq.com
* @copyright warlee 2014.(Shanghai)Co.,Ltd
* @license http://kodcloud.com/tools/license/license.txt
*/
class yzOfficePlugin extends PluginBase{
function __construct(){
parent::__construct();
}
public function regist(){
$this->hookRegist(array(
'user.commonJs.insert' => 'yzOfficePlugin.echoJs'
));
}
public function echoJs(){
$this->echoFile('static/main.js');
}
public function index(){
$app = $this->getObj();
if(!$app->task['success'] ){
if($link = $this->fileLink()) {
$this->fileOutLink($app, $link);
}
include($this->pluginPath.'php/template.php');
return;
}
//获取预览url
$step = count($app->task['steps']) - 1;
$infoData = $app->task['steps'][$step]['result'];
if($infoData['errorcode'] || !is_array($infoData['data']) ){
$app->clearCache();
show_tips($infoData['message']);
}
if(empty($infoData['data']['viewUrl'])) {
$app->clearCache();
show_tips(LNG('yzOffice.Main.invalidUrl'));
}
$link = $infoData['data']['viewUrl'];
$link = $this->fileLink($link);
$this->fileOutLink($app, $link);
}
/**
* viewUrl读取、更新和删除
* @param boolean $link
* @param boolean $del
* @return void
*/
private function fileLink($link = false, $del = false){
$key = md5($this->pluginName . '.yzOffice.viewUrls');
$data = Cache::get($key);
if(!$data) $data = array();
$name = md5($this->realFilePath);
if(!$link) {
return isset($data[$name]) ? $data[$name] : false;
}
if($del) {
unset($data[$name]);
}else{
$data[$name] = $link;
}
Cache::set($key, $data);
return $link;
$path = $this->pluginPath . 'data/';
if(!is_dir($path)) mk_dir($path);
$file = $path . 'viewurls.txt';
if(@!file_exists($file) && !$link) return false;
$data = file_get_contents($file);
$data = json_decode($data, true);
$name = md5($this->realFilePath);
if(!$link) {
return isset($data[$name]) ? $data[$name] : false;
}
if($del) {
unset($data[$name]);
}else{
$data[$name] = $link;
}
// 可能要加锁
file_put_contents($file, json_encode_force($data));
return $link;
}
// 链接可能已失效,输出前先判断
private function fileOutLink($app, $link){
$res = url_request($link);
$data = json_decode($res['data'], true);
// 没有错误(字符串decode结果为null),且set-cookie不为空(正常为viewpath=xxx,过期的为空),直接输出
if(!$data && (!empty($res['header']['Set-Cookie']) || !empty($res['header']['set-cookie']))) {
header('Location:' . $link);
} else {
$app->clearCache();
$this->fileLink($link, true);
// $this->index();
$msg = isset($data['message']) ? $data['message'] : LNG('yzOffice.Main.linkExpired');
show_tips($msg . LNG('yzOffice.Main.tryAgain'));
}
exit;
$res = url_request($link);
$data = json_decode($res['data'], true);
// 没有错误,直接输出
if(!$data && !empty($res['header']['Set-Cookie'])) {
header('Location:' . $link);exit;
}
$app->clearCache();
$this->fileLink($link, true);
$msg = isset($data['message']) ? $data['message'] : LNG('explorer.error');
show_tips($msg . LNG('yzOffice.Main.tryAgain'));
}
public function task(){
$app = $this->getObj();
$app->runTask();
}
public function getFile(){
$app = $this->getObj();
$app->getFile($this->in['file']);
}
private function getObj(){
$path = $this->filePath($this->in['path']);
$this->realFilePath = $path;
// if(filesize($path) > 1024*1024*2){
// //show_tips("由于永中官方接口限制,<br/>暂不支持大于2M的文件在线预览!");
// }
//文档分享预览; http://yozodoc.com/
// require_once($this->pluginPath.'php/yzOffice.class.php');
// return new yzOffice($this,$path);
//官网用户demo;
//http://www.yozodcs.com/examples.html 2M上传限制;
//http://dcs.yozosoft.com/examples.html
require_once($this->pluginPath.'php/yzOffice.class.php');
return new yzoffice($this,$path);
}
public function restart(){
$app = $this->getObj();
$res = $app->clearCache();
show_json('success');
}
}
wget 'https://sme10.lists2.roe3.org/kodbox/plugins/yzOffice/package.json'
{
"id":"yzOffice",
"name":"{{LNG['yzOffice.meta.name']}}",
"title":"{{LNG['yzOffice.meta.title']}}",
"version":"1.54",
"category":"file",
"source":{
"icon":"{{pluginHost}}static/images/icon.png"
},
"description":"{{LNG['yzOffice.meta.desc']}}",
"auther":{
"copyright":"kodcloud",
"homePage":"http://kodcloud.com"
},
"meta":{
"needNetwork": 1
},
"networkDesc": "{{LNG['yzOffice.meta.netwrokDesc']}}<br/>{{LNG['yzOffice.meta.netwrokUrl']}}: <span class='blue-6'>http://dcs.yozosoft.com</span>",
"configItem":{
"formStyle":{
"className":"form-box-title-left",
"tabs":{
"{{LNG['admin.setting.base']}}":"sep001,pluginAuth,openWith"
}
},
"pluginAuth":{
"type":"userSelect",
"value":{"all":1},
"display":"{{LNG['admin.plugin.auth']}}",
"desc":"{{LNG['admin.plugin.authDesc']}}",
"require":1
},
"openWith":{
"type":"radio",
"value":"dialog",
"display":"{{LNG['admin.plugin.openWith']}}",
"info":{
"dialog":"{{LNG['admin.plugin.openWithDilog']}}",
"window":"{{LNG['admin.plugin.openWithWindow']}}"
}
},
"fileExt":{
"type":"tags",
"display":"{{LNG['admin.plugin.fileExt']}}",
"desc":"{{LNG['admin.plugin.fileExtDesc']}}",
"value":"doc,docx,docm,dot,dotx,dotm,rtf,wps,wpt,xls,xlsx,xlt,xlsm,csv,ppt,pptx,pps,ppsx",
},
"fileSort":{
"type":"number",
"display":"{{LNG['admin.plugin.fileSort']}}",
"desc":"{{LNG['admin.plugin.fileSortDesc']}}",
"value":50,
},
}
}