You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
8.5 KiB
PHTML
161 lines
8.5 KiB
PHTML
10 months ago
|
<?php
|
||
|
add_action('media_buttons', 'add_bohe_upload_button');
|
||
|
function add_bohe_upload_button() {
|
||
|
if(!empty(wp_get_current_user()->roles) && in_array('administrator', wp_get_current_user()->roles)){
|
||
|
$getdataDoMain = get_option('domain');
|
||
|
$getdataTokens = get_option('tokens');
|
||
|
$getdataProtocolType = get_option('protocol_type');
|
||
|
$getdataMode = get_option('mode');
|
||
|
$getdataUploadPath = get_option('uploadPath');
|
||
|
$getdataWatermark = get_option('watermark');
|
||
|
$getdataImageCompress = get_option('image_compress');
|
||
|
$getdataImageCompressLevel = get_option('image_compress_level');
|
||
|
}
|
||
|
else return 0;
|
||
|
?>
|
||
|
<link href="<?php echo plugin_dir_url(__FILE__ ); ?>assets/style.css" type="text/css" rel="stylesheet" />
|
||
|
<a href="javascript:;" class="bohe-upload"><input type="file" id="input-bohe-upload" multiple />上传图片</a>
|
||
|
<span id="tip">上传图片过程中请耐心等待!请勿刷新页面,如果等待时间过长没有上传成功可以刷新页面重试或检查插件设置</span>
|
||
|
<script src="//lib.baomitu.com/axios/0.27.2/axios.min.js"></script>
|
||
|
<script>
|
||
|
const bohe_upload = document.getElementById('input-bohe-upload');
|
||
|
bohe_upload.addEventListener("change", () => { //监听上传按钮
|
||
|
const getdataDoMain = "<?php echo get_option('domain'); ?>";
|
||
|
const getdataTokens = "<?php echo get_option('tokens'); ?>";
|
||
|
const getdataProtocolType = "<?php echo get_option('protocol_type'); ?>"; //协议类型
|
||
|
const getdataMode = "<?php echo get_option('mode'); ?>";
|
||
|
const getdataUploadPath = "<?php echo get_option('uploadPath'); ?>";
|
||
|
const getdataWatermark = "<?php echo get_option('watermark'); ?>";
|
||
|
const getdataImageCompress = "<?php echo get_option('image_compress'); ?>";
|
||
|
const getdataImageCompressLevel = "<?php echo get_option('image_compress_level'); ?>";
|
||
|
|
||
|
const files = bohe_upload.files;
|
||
|
for(let i = 0; i < files.length; i++) {
|
||
|
const file = files[i];
|
||
|
const formData = new FormData();
|
||
|
//输出调试信息
|
||
|
formData.append("api_token", getdataTokens);
|
||
|
formData.append('uploadedFile', file);
|
||
|
// 只在协议类型不为空时添加参数
|
||
|
if(getdataProtocolType !== ''){
|
||
|
formData.append('protocol_type', '<?php echo get_option('protocol_type'); ?>');
|
||
|
}
|
||
|
if(getdataMode !== ''){
|
||
|
formData.append('mode', getdataMode);
|
||
|
}
|
||
|
if(getdataImageCompress !== ''){
|
||
|
formData.append('image_compress', '1');
|
||
|
formData.append('image_compress_level', '<?php echo get_option('image_compress_level'); ?>');
|
||
|
}
|
||
|
formData.append('uploadPath', '<?php echo get_option('uploadPath'); ?>');
|
||
|
|
||
|
// 添加水印和压缩参数判断
|
||
|
if(getdataWatermark === '1'){
|
||
|
formData.append('watermark', '1');
|
||
|
}
|
||
|
document.getElementById('input-bohe-upload').disabled = true;
|
||
|
document.getElementById('tip').innerHTML = '正在上传中...';
|
||
|
axios.defaults.crossDomain = true;
|
||
|
axios({
|
||
|
method:'post',
|
||
|
url: '<?php echo get_option('domain'); ?>/api/upload/',
|
||
|
data:formData
|
||
|
}).then(response => {
|
||
|
const data = response.data;
|
||
|
if (data.status) {
|
||
|
const url = data.url;
|
||
|
const name = data.originFileName;
|
||
|
wp.media.editor.insert('<a href="'+ url +'"><img src="'+ url +'" alt="'+ name +'" /></a>');
|
||
|
document.getElementById('input-bohe-upload').disabled = false;
|
||
|
document.getElementById('tip').innerHTML = '上传图片过程中请耐心等待!请勿刷新页面,如果等待时间过长没有上传成功可以刷新页面重试或检查插件设置';
|
||
|
}
|
||
|
}).catch(error => {
|
||
|
console.log(error);
|
||
|
document.getElementById('input-bohe-upload').disabled = false;
|
||
|
document.getElementById('tip').innerHTML = '上传图片过程中请耐心等待!请勿刷新页面,若等待时间过长可以尝试刷新页面重试或检查插件设置';
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
</script>
|
||
|
<?php }
|
||
|
add_action('add_meta_boxes', 'add_bohe_upload_box');
|
||
|
function add_bohe_upload_box() {
|
||
|
if(!empty(wp_get_current_user()->roles) && in_array('administrator', wp_get_current_user()->roles)){
|
||
|
add_meta_box('bohe_upload_box_tmp', '薄荷图床(BohePro)上传', 'bohe_upload_box', 'post', 'side', 'high');
|
||
|
}
|
||
|
else return 0;
|
||
|
}
|
||
|
function bohe_upload_box() {?>
|
||
|
<link href="<?php echo plugin_dir_url(__FILE__ ); ?>assets/style.css" type="text/css" rel="stylesheet" />
|
||
|
<div id="bohe-upload-box">点击此区域上传图片</div>
|
||
|
<input type="file" multiple id="bohe-upload-box-input" />
|
||
|
<div id="result"></div>
|
||
|
<script src="//lib.baomitu.com/axios/0.27.2/axios.min.js"></script>
|
||
|
<script>
|
||
|
const bohe_upload_input = document.getElementById('bohe-upload-box-input');
|
||
|
bohe_upload_input.addEventListener("change", () => {
|
||
|
const getdataDoMain = "<?php echo get_option('domain'); ?>";
|
||
|
const getdataTokens = "<?php echo get_option('tokens'); ?>";
|
||
|
const getdataProtocolType = "<?php echo get_option('protocol_type'); ?>"; //协议类型
|
||
|
const getdataMode = "<?php echo get_option('mode'); ?>";
|
||
|
const getdataUploadPath = "<?php echo get_option('uploadPath'); ?>";
|
||
|
const getdataWatermark = "<?php echo get_option('watermark'); ?>";
|
||
|
const getdataImageCompress = "<?php echo get_option('image_compress'); ?>";
|
||
|
const getdataImageCompressLevel = "<?php echo get_option('image_compress_level'); ?>";
|
||
|
const files = bohe_upload_input.files;
|
||
|
for(let i = 0; i < files.length; i++) {
|
||
|
const file = files[i];
|
||
|
const formData = new FormData();
|
||
|
|
||
|
formData.append("api_token", getdataTokens);
|
||
|
formData.append('uploadedFile', file);
|
||
|
// 只在协议类型不为空时添加参数
|
||
|
if(getdataProtocolType !== ''){
|
||
|
formData.append('protocol_type', '<?php echo get_option('protocol_type'); ?>');
|
||
|
}
|
||
|
if(getdataMode !== ''){
|
||
|
formData.append('mode', getdataMode);
|
||
|
}
|
||
|
if(getdataImageCompress !== ''){
|
||
|
formData.append('image_compress', '1');
|
||
|
formData.append('image_compress_level', '<?php echo get_option('image_compress_level'); ?>');
|
||
|
}
|
||
|
formData.append('uploadPath', '<?php echo get_option('uploadPath'); ?>');
|
||
|
// 添加水印和压缩参数判断
|
||
|
if(getdataWatermark === '1'){
|
||
|
formData.append('watermark', '1');
|
||
|
}
|
||
|
|
||
|
console.log(formData);
|
||
|
document.getElementById('bohe-upload-box-input').disabled = true;
|
||
|
document.getElementById('bohe-upload-box').innerHTML = '正在上传中...';
|
||
|
axios({
|
||
|
method:'post',
|
||
|
url: '<?php echo get_option('domain'); ?>/api/upload/',
|
||
|
data:formData
|
||
|
}).then(response => {
|
||
|
const data = response.data;
|
||
|
if (data.status) {
|
||
|
const url = data.url;
|
||
|
const name = data.originFileName;
|
||
|
const input = document.createElement('input');
|
||
|
input.type = 'text';
|
||
|
input.value = url;
|
||
|
document.getElementById('result').appendChild(input);
|
||
|
input.addEventListener('click', function() {
|
||
|
input.select();
|
||
|
document.execCommand('copy');
|
||
|
});
|
||
|
document.getElementById('bohe-upload-box-input').disabled = false;
|
||
|
document.getElementById('bohe-upload-box').innerHTML = '点击此区域上传图片';
|
||
|
}
|
||
|
}).catch(error => {
|
||
|
console.log(error);
|
||
|
document.getElementById('bohe-upload-box-input').disabled = false;
|
||
|
document.getElementById('bohe-upload-box').innerHTML = '点击此区域上传图片';
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
</script>
|
||
|
<?php } ?>
|