php vo,main.php

/**

* 插件配置页

*

* @author 心扬

*/

//系统初始化

require_once __DIR__.'/../../../zb_system/function/c_system_base.php';

//后台初始化

require_once __DIR__.'/../../../zb_system/function/c_system_admin.php';

$zbp->Load(); //加载系统

//检测权限

if (!$zbp->CheckRights('root')) {

$zbp->ShowError(6);

die();

}

//检测主题/插件启用状态

if (!$zbp->CheckPlugin('IframeVO')) {

$zbp->ShowError(48);

die();

}

$blogtitle = 'iframe嵌入视频优化';

//后台

require_once __DIR__.'/../../../zb_system/admin/admin_header.php';

//后台顶部

require_once __DIR__.'/../../../zb_system/admin/admin_top.php';

if ('POST' === strtoupper($_SERVER['REQUEST_METHOD'])) {

// csp 规则

$csp = GetVars('csp', 'POST');

$cspConfig = [];

for ($i = 0; $i < count($csp); $i = $i + 1) {

if (!empty($csp[$i])) {

$cspConfig[] = trim($csp[$i]);

}

}

$zbp->Config('IframeVO')->csp = json_encode($cspConfig, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

$zbp->Config('IframeVO')->keepconfig = GetVars('keepconfig', 'POST') ? 1 : 0;

$zbp->Config('IframeVO')->wrapperTag = GetVars('wrapperTag', 'POST');

$zbp->SaveConfig('IframeVO');

}

?>

iframe 嵌套标签    

Config('IframeVO')->wrapperTag === 'div' ? 'checked' : '' ?>> <div>    

Config('IframeVO')->wrapperTag === 'p' ? 'checked' : '' ?>> <p>

卸载保留配置

CSP 规则:

可以批量优化那些未通过本插件添加的视频。注意:仅优化包含 CSP 规则网址的 iframe,以免误操作。

宽高比例:

4:3    

16:9    

16:10

HTML5 格式化

如何使用?

启用插件后,在文章编辑页面右侧栏中找到“添加 iframe 视频”按钮,点击后弹出对话框,在对话框中粘贴复制好的 iframe 代码,选择要展示的宽高比例、以及是否进行 HTML5 格式化,点击“插入”即可。如果无法预览视频,请到设置中添加对应的 CSP 域名。

展示宽高比例是指 iframe 的宽高比,而非视频的宽高比,因为有的视频网站的播放器中控制条覆盖在视频上面,控制条本身并不占据 iframe 的高度(比如优酷),此时 iframe 展示的宽高比就等于视频本身的宽高比,而有的网站的播放器控制条单独占有高度(比如哔哩哔哩),那么 iframe 展示的比例就不等于视频的比例。

一般来说,对于哔哩哔哩,推荐 4:3 比例;对于优酷,根据视频的宽高比来确定比例;其他网站以此类推。实在不懂的选 4:3 就行。

HTML5 格式化了哪些内容?

1. 将 http 或 // 转为 https。

2. 移除 iframe 元素在 HTML5 中被废弃的属性,参考:<iframe>,仅保留 src、allow、allowfullscreen 和 style 属性。

(特例:搜狐视频保留 scrolling 属性,以解决出现滚动条的问题。)

CSP 规则

添加 CSP 规则可以解决无法预览视频的问题。CSP 即 Content Security Policy,中文名“内容安全策略”,参考:Content Security Policy (CSP)介绍,本插件仅使用 frame-src 这一策略规则,因此只需填写域名或网址即可。

例如,某个 iframe 的地址为 https://v.abc.com/xyz?id=123,那么只需添加 v.abc.com 或者 https://v.abc.com/ 即可。

其他

仅支持能通过 iframe 分享的视频平台。

已测试视频平台:哔哩哔哩、Youtube、爱奇艺视频、腾讯视频、优酷视频、搜狐视频、AcFun。

不支持使用 Flash,其他未经测试的视频平台均不保证支持。

logo

IframeVO v<?php $app = new \App();

$app->LoadInfoByXml('plugin', 'IframeVO');

echo $app->version; ?>

插件作者:心扬

邮箱:chrishyze@163.com

欢迎通过邮件反馈 BUG 或建议,感谢支持!

项目源码:chrishyze/zbp_iframevo

作者的其他作品:应用中心

.divMain2__item_show {

display: block;

}

.divMain2__item_hide {

display: none;

}

.divMain2__item-about {

text-align: center;

}

#addCsp,

.del-csp {

display: inline-block;

width: 26px;

height: 26px;

background-position: center center;

background-repeat: no-repeat;

cursor: pointer;

vertical-align: middle;

}

#addCsp {

background-image: url(<?php echo $zbp->host; ?>zb_users/plugin/IframeVO/images/add.svg);

background-size: 24px 24px;

}

.del-csp {

background-image: url(<?php echo $zbp->host; ?>zb_users/plugin/IframeVO/images/delete.svg);

background-size: 20px 20px;

}

.added-csp {

margin-left: 72px;

}

.iframevo__item {

padding: 5px 0 10px 0;

}

// 插件后台全局变量

let IFRAMEVO_ADMIN = {

HOME_URL: "<?php echo $zbp->host; ?>zb_users/plugin/IframeVO",

CSRF_TOKEN: "<?php echo $zbp->GetCSRFToken('IframeVO'); ?>",

csp: <?php echo $zbp->Config('IframeVO')->csp; ?>

};

$(function() {

$(".SubMenu__tab").click(function() {

var $content = $(".divMain2__item:nth-child(" + ($(this).index() + 1) + ")");

$(this).siblings().children().removeClass("m-now");

$(this).children().addClass("m-now");

$content.siblings().removeClass("divMain2__item_show").addClass("divMain2__item_hide");

$content.removeClass("divMain2__item_hide").addClass("divMain2__item_show");

});

// 添加 csp 规则

var addCspRule = function(domain) {

$("#addCsp").parent().after('

// 删除 csp 规则

$(".del-csp").click(function() {

$(this).parent().remove();

});

};

// 监听添加按钮

$("#addCsp").click(function() {

var $inputs = $("input[name='csp[]']");

addCspRule($inputs[0].value);

$inputs[0].value = "";

});

// 现存的 csp 规则

for (var key in IFRAMEVO_ADMIN.csp) {

addCspRule(IFRAMEVO_ADMIN.csp[key]);

}

// 批量优化视频

$("#batchSubmit").click(function(e) {

$("#batchResult").html("后台优化中,请稍候...");

$.post("php/batching.php", {

ratio: $("input[name=\"iframeVORatio\"]:checked").val(),

format: $("#iframeVOHTML5Format").is(":checked") ? 1 : 0,

csrfToken: $("input[name=\"csrfToken\"]").val()

}, function(res) {

$("#batchResult").html(res[1]);

});

e.preventDefault();

return false;

});

});

//后台底部

require_once __DIR__.'/../../../zb_system/admin/admin_footer.php';

RunTime(); //显示运行时间

一键复制

编辑

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值