- 欢迎使用专业的PHP网站管理系统,轻松建站的首选利器 --
+ 欢迎使用国内流行的内容管理系统(CMS)多端全媒体解决方案 --
diff --git a/src/include/common.inc.php b/src/include/common.inc.php
index 64c25209..fec4318f 100755
--- a/src/include/common.inc.php
+++ b/src/include/common.inc.php
@@ -1,4 +1,5 @@
='))
-{
- if (!function_exists('session_register'))
- {
+if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
+ if (!function_exists('session_register')) {
function session_register()
{
$args = func_get_args();
- foreach ($args as $key){
- $_SESSION[$key]=$GLOBALS[$key];
+ foreach ($args as $key) {
+ $_SESSION[$key] = $GLOBALS[$key];
}
}
function session_is_registered($key)
{
return isset($_SESSION[$key]);
}
- function session_unregister($key){
+ function session_unregister($key)
+ {
unset($_SESSION[$key]);
}
}
@@ -72,22 +70,17 @@ if (version_compare(PHP_VERSION, '5.4.0', '>='))
//是否启用mb_substr替换cn_substr来提高效率
$cfg_is_mb = $cfg_is_iconv = FALSE;
-if(function_exists('mb_substr')) $cfg_is_mb = TRUE;
-if(function_exists('iconv_substr')) $cfg_is_iconv = TRUE;
+if (function_exists('mb_substr')) $cfg_is_mb = TRUE;
+if (function_exists('iconv_substr')) $cfg_is_iconv = TRUE;
function _RunMagicQuotes(&$svar)
{
- if(function_exists("get_magic_quotes_gpc") && !@get_magic_quotes_gpc())
- {
- if( is_array($svar) )
- {
- foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);
- }
- else
- {
- if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )
- {
- exit('Request var not allow!');
+ if (function_exists("get_magic_quotes_gpc") && !@get_magic_quotes_gpc()) {
+ if (is_array($svar)) {
+ foreach ($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);
+ } else {
+ if (strlen($svar) > 0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#', $svar)) {
+ exit('Request var not allow!');
}
$svar = addslashes($svar);
}
@@ -95,20 +88,18 @@ function _RunMagicQuotes(&$svar)
return $svar;
}
-if (!defined('DEDEREQUEST'))
-{
+if (!defined('DEDEREQUEST')) {
//检查和注册外部提交的变量 (2011.8.10 修改登录时相关过滤)
- function CheckRequest(&$val) {
+ function CheckRequest(&$val)
+ {
if (is_array($val)) {
- foreach ($val as $_k=>$_v) {
- if($_k == 'nvarname') continue;
+ foreach ($val as $_k => $_v) {
+ if ($_k == 'nvarname') continue;
CheckRequest($_k);
CheckRequest($val[$_k]);
}
- } else
- {
- if( strlen($val)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$val) )
- {
+ } else {
+ if (strlen($val) > 0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#', $val)) {
exit('Request var not allow!');
}
}
@@ -116,33 +107,29 @@ if (!defined('DEDEREQUEST'))
//var_dump($_REQUEST);exit;
CheckRequest($_REQUEST);
- CheckRequest($_COOKIE);
+ CheckRequest($_COOKIE);
- foreach(Array('_GET','_POST','_COOKIE') as $_request)
- {
- foreach($$_request as $_k => $_v)
- {
- if($_k == 'nvarname') ${$_k} = $_v;
- else ${$_k} = _RunMagicQuotes($_v);
- }
+ foreach (array('_GET', '_POST', '_COOKIE') as $_request) {
+ foreach ($$_request as $_k => $_v) {
+ if ($_k == 'nvarname') ${$_k} = $_v;
+ else ${$_k} = _RunMagicQuotes($_v);
+ }
}
}
//系统相关变量检测
-if(!isset($needFilter))
-{
+if (!isset($needFilter)) {
$needFilter = false;
}
$registerGlobals = @ini_get("register_globals");
$isUrlOpen = @ini_get("allow_url_fopen");
$isSafeMode = @ini_get("safe_mode");
-if( preg_match('/windows/i', @getenv('OS')) )
-{
+if (preg_match('/windows/i', @getenv('OS'))) {
$isSafeMode = false;
}
//系统配置参数
-require_once(DEDEDATA."/config.cache.inc.php");
+require_once(DEDEDATA . "/config.cache.inc.php");
//Session保存路径
$sessSaveHandler = @ini_get("session.save_handler");
@@ -150,112 +137,103 @@ if ($sessSaveHandler !== "files") {
@ini_set("session.save_handler", "files");
}
-$enkey = substr(md5(substr($cfg_cookie_encode,0,5)),0,10);
-$sessSavePath = DEDEDATA."/sessions_{$enkey}";
-if ( !is_dir($sessSavePath) ) mkdir($sessSavePath);
+$enkey = substr(md5(substr($cfg_cookie_encode, 0, 5)), 0, 10);
+$sessSavePath = DEDEDATA . "/sessions_{$enkey}";
+if (!is_dir($sessSavePath)) mkdir($sessSavePath);
-if(is_writeable($sessSavePath) && is_readable($sessSavePath))
-{
+if (is_writeable($sessSavePath) && is_readable($sessSavePath)) {
session_save_path($sessSavePath);
}
//转换上传的文件相关的变量及安全处理、并引用前台通用的上传函数
-if($_FILES)
-{
- require_once(DEDEINC.'/uploadsafe.inc.php');
+if ($_FILES) {
+ require_once(DEDEINC . '/uploadsafe.inc.php');
}
//数据库配置文件
-require_once(DEDEDATA.'/common.inc.php');
+require_once(DEDEDATA . '/common.inc.php');
-if ( !isset($cfg_dbtype) )
-{
+if (!isset($cfg_dbtype)) {
$cfg_dbtype = 'mysql';
}
//载入系统验证安全配置
-if(file_exists(DEDEDATA.'/safe/inc_safe_config.php'))
-{
- require_once(DEDEDATA.'/safe/inc_safe_config.php');
- if(!empty($safe_faqs)) $safefaqs = unserialize($safe_faqs);
+if (file_exists(DEDEDATA . '/safe/inc_safe_config.php')) {
+ require_once(DEDEDATA . '/safe/inc_safe_config.php');
+ if (!empty($safe_faqs)) $safefaqs = unserialize($safe_faqs);
}
//Session跨域设置
-if(!empty($cfg_domain_cookie))
-{
- @session_set_cookie_params(0,'/',$cfg_domain_cookie);
+if (!empty($cfg_domain_cookie)) {
+ @session_set_cookie_params(0, '/', $cfg_domain_cookie);
}
//php5.1版本以上时区设置
//由于这个函数对于是php5.1以下版本并无意义,因此实际上的时间调用,应该用MyDate函数调用
-if(PHP_VERSION > '5.1')
-{
+if (PHP_VERSION > '5.1') {
$time51 = $cfg_cli_time * -1;
- @date_default_timezone_set('Etc/GMT'.$time51);
+ @date_default_timezone_set('Etc/GMT' . $time51);
}
$cfg_isUrlOpen = @ini_get("allow_url_fopen");
//用户访问的网站host
-$cfg_clihost = 'http://'.$_SERVER['HTTP_HOST'];
+$cfg_clihost = 'http://' . $_SERVER['HTTP_HOST'];
//站点根目录
-$cfg_basedir = preg_replace('#'.$cfg_cmspath.'\/include$#i', '', DEDEINC);
-if($cfg_multi_site == 'Y')
-{
+$cfg_basedir = preg_replace('#' . $cfg_cmspath . '\/include$#i', '', DEDEINC);
+if ($cfg_multi_site == 'Y') {
$cfg_mainsite = $cfg_basehost;
-}
-else
-{
+} else {
$cfg_mainsite = '';
}
//模板的存放目录
-$cfg_templets_dir = $cfg_cmspath.'/templets';
-$cfg_templeturl = $cfg_mainsite.$cfg_templets_dir;
-$cfg_templets_skin = empty($cfg_df_style)? $cfg_mainsite.$cfg_templets_dir."/default" : $cfg_mainsite.$cfg_templets_dir."/$cfg_df_style";
+$cfg_templets_dir = $cfg_cmspath . '/templets';
+$cfg_templeturl = $cfg_mainsite . $cfg_templets_dir;
+$cfg_templets_skin = empty($cfg_df_style) ? $cfg_mainsite . $cfg_templets_dir . "/default" : $cfg_mainsite . $cfg_templets_dir . "/$cfg_df_style";
//cms安装目录的网址
-$cfg_cmsurl = $cfg_mainsite.$cfg_cmspath;
+$cfg_cmsurl = $cfg_mainsite . $cfg_cmspath;
//插件目录,这个目录是用于存放计数器、投票、评论等程序的必要动态程序
-$cfg_plus_dir = $cfg_cmspath.'/plus';
-$cfg_phpurl = $cfg_mainsite.$cfg_plus_dir;
+$cfg_plus_dir = $cfg_cmspath . '/plus';
+$cfg_phpurl = $cfg_mainsite . $cfg_plus_dir;
-$cfg_static_dir = $cfg_cmspath.'/static';
-$cfg_staticurl = $cfg_mainsite.$cfg_static_dir;
+$cfg_static_dir = $cfg_cmspath . '/static';
+$cfg_staticurl = $cfg_mainsite . $cfg_static_dir;
-$cfg_mobile_dir = $cfg_cmspath.'/m';
-$cfg_mobileurl = $cfg_mainsite.$cfg_mobile_dir;
+$cfg_mobile_dir = $cfg_cmspath . '/m';
+$cfg_mobileurl = $cfg_mainsite . $cfg_mobile_dir;
-$cfg_data_dir = $cfg_cmspath.'/data';
-$cfg_dataurl = $cfg_mainsite.$cfg_data_dir;
+$cfg_data_dir = $cfg_cmspath . '/data';
+$cfg_dataurl = $cfg_mainsite . $cfg_data_dir;
//会员目录
-$cfg_member_dir = $cfg_cmspath.'/member';
-$cfg_memberurl = $cfg_mainsite.$cfg_member_dir;
+$cfg_member_dir = $cfg_cmspath . '/member';
+$cfg_memberurl = $cfg_mainsite . $cfg_member_dir;
//专题列表的存放路径
-$cfg_special = $cfg_cmspath.'/special';
-$cfg_specialurl = $cfg_mainsite.$cfg_special;
+$cfg_special = $cfg_cmspath . '/special';
+$cfg_specialurl = $cfg_mainsite . $cfg_special;
//附件目录
-$cfg_medias_dir = $cfg_cmspath.$cfg_medias_dir;
-$cfg_mediasurl = $cfg_mainsite.$cfg_medias_dir;
+$cfg_medias_dir = $cfg_cmspath . $cfg_medias_dir;
+$cfg_mediasurl = $cfg_mainsite . $cfg_medias_dir;
//上传的普通图片的路径,建议按默认
-$cfg_image_dir = $cfg_medias_dir.'/allimg';
+$cfg_image_dir = $cfg_medias_dir . '/allimg';
//上传的缩略图
-$ddcfg_image_dir = $cfg_medias_dir.'/litimg';
+$ddcfg_image_dir = $cfg_medias_dir . '/litimg';
//用户投稿图片存放目录
-$cfg_user_dir = $cfg_medias_dir.'/userup';
+$cfg_user_dir = $cfg_medias_dir . '/userup';
//上传的软件目录
-$cfg_soft_dir = $cfg_medias_dir.'/soft';
+$cfg_soft_dir = $cfg_medias_dir . '/soft';
//上传的多媒体文件目录
-$cfg_other_medias = $cfg_medias_dir.'/media';
+$cfg_other_medias = $cfg_medias_dir . '/media';
//软件摘要信息,****请不要删除本项**** 否则系统无法正确接收系统漏洞或升级信息
$cfg_version = 'V6_UTF8';
@@ -264,20 +242,17 @@ $cfg_soft_lang = 'utf-8';
$cfg_soft_public = 'base';
$cfg_softname = '织梦内容管理系统';
-$cfg_soft_enname = 'DedeCMS';
+$cfg_soft_enname = 'DedeCMSV6';
$cfg_soft_devteam = 'DedeBIZ';
//文档的默认命名规则
$art_shortname = $cfg_df_ext = '.html';
-$cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}'.$cfg_df_ext;
+$cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}' . $cfg_df_ext;
//新建目录的权限,如果你使用别的属性,本程不保证程序能顺利在Linux或Unix系统运行
-if(isset($cfg_ftp_mkdir) && $cfg_ftp_mkdir=='Y')
-{
+if (isset($cfg_ftp_mkdir) && $cfg_ftp_mkdir == 'Y') {
$cfg_dir_purview = '0755';
-}
-else
-{
+} else {
$cfg_dir_purview = 0755;
}
@@ -290,17 +265,15 @@ $_sys_globals['typeid'] = 0;
$_sys_globals['typename'] = '';
$_sys_globals['aid'] = 0;
-if(empty($cfg_addon_savetype))
-{
+if (empty($cfg_addon_savetype)) {
$cfg_addon_savetype = 'Ymd';
}
-if($cfg_sendmail_bysmtp=='Y' && !empty($cfg_smtp_usermail))
-{
+if ($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_usermail)) {
$cfg_adminemail = $cfg_smtp_usermail;
}
// DedeBIZ商业化组件
-require_once(DEDEINC.'/dedebiz.class.php');
+require_once(DEDEINC . '/dedebiz.class.php');
//对全局分页传递参数进行过滤
if (isset($GLOBALS['PageNo'])) {
@@ -312,60 +285,56 @@ if (isset($GLOBALS['TotalResult'])) {
// ------------------------------------------------------------------------
// 设定缓存配置信息
-if ($cfg_memcache_enable == 'Y')
-{
+if ($cfg_memcache_enable == 'Y') {
$cache_helper_config = array();
$cache_helper_config['memcache']['is_mc_enable'] = $GLOBALS["cfg_memcache_enable"];
- $cache_helper_config['memcache']['mc'] = array (
+ $cache_helper_config['memcache']['mc'] = array(
'default' => $GLOBALS["cfg_memcache_mc_defa"],
'other' => $GLOBALS["cfg_memcache_mc_oth"]
);
$cache_helper_config['memcache']['mc_cache_time'] = $GLOBALS["cfg_puccache_time"];
}
-if(!isset($cfg_NotPrintHead)) {
+if (!isset($cfg_NotPrintHead)) {
header("Content-Type: text/html; charset={$cfg_soft_lang}");
}
//自动加载类库处理
-if (version_compare(PHP_VERSION, '7.2.0', '>='))
-{
- require_once(DEDEINC.'/autoload7.inc.php');
+if (version_compare(PHP_VERSION, '7.2.0', '>=')) {
+ require_once(DEDEINC . '/autoload7.inc.php');
} else {
- require_once(DEDEINC.'/autoload.inc.php');
+ require_once(DEDEINC . '/autoload.inc.php');
}
-$cfg_biz_helpUrl = DEDEBIZURL."/help";
-$cfg_biz_gitUrl = DEDEBIZURL."/git";
+$cfg_biz_helpUrl = DEDEBIZURL . "/help";
+$cfg_biz_gitUrl = DEDEBIZURL . "/git";
$cfg_biz_dedebizUrl = DEDEBIZURL;
//引入数据库类
-if ( $GLOBALS['cfg_dbtype'] =='mysql' || $GLOBALS['cfg_dbtype'] =='mysqli' )
-{
- require_once(DEDEINC.'/dedesqli.class.php');
+if ($GLOBALS['cfg_dbtype'] == 'mysql' || $GLOBALS['cfg_dbtype'] == 'mysqli') {
+ require_once(DEDEINC . '/dedesqli.class.php');
} else {
- require_once(DEDEINC.'/dedesqlite.class.php');
+ require_once(DEDEINC . '/dedesqlite.class.php');
}
//全局常用函数
-require_once(DEDEINC.'/common.func.php');
+require_once(DEDEINC . '/common.func.php');
//载入小助手配置,并对其进行默认初始化
-$cfg_helper_autoload = array
-(
- 'charset', /* 编码小助手 */
- 'channelunit',/* 模型单元小助手 */
- 'string', /* 字符串小助手 */
- 'time', /* 日期小助手 */
- 'file', /* 文件小助手 */
- 'util', /* 单元小助手 */
- 'validate', /* 数据验证小助手 */
- 'filter', /* 过滤器小助手 */
- 'cookie', /* cookies小助手 */
- 'debug', /* 调试小助手 */
- 'archive', /* 文档小助手 */
- 'upload', /* 上传小助手 */
- 'extend', /* 扩展小助手 */
+$cfg_helper_autoload = array(
+ 'charset', /* 编码小助手 */
+ 'channelunit',/* 模型单元小助手 */
+ 'string', /* 字符串小助手 */
+ 'time', /* 日期小助手 */
+ 'file', /* 文件小助手 */
+ 'util', /* 单元小助手 */
+ 'validate', /* 数据验证小助手 */
+ 'filter', /* 过滤器小助手 */
+ 'cookie', /* cookies小助手 */
+ 'debug', /* 调试小助手 */
+ 'archive', /* 文档小助手 */
+ 'upload', /* 上传小助手 */
+ 'extend', /* 扩展小助手 */
);
// 初始化小助手
helper($cfg_helper_autoload);
diff --git a/src/include/inc/inc_fun_funAdmin.php b/src/include/inc/inc_fun_funAdmin.php
index c7090dd1..3f56e13e 100755
--- a/src/include/inc/inc_fun_funAdmin.php
+++ b/src/include/inc/inc_fun_funAdmin.php
@@ -1,4 +1,4 @@
-appid = $cfg_bizcore_appid;
$client->key = $cfg_bizcore_key;
- $data = $client->Pinyin($str,"");
+ $data = $client->Pinyin($str, "");
$restr = $data->data;
$client->Close();
} else {
$str = trim($str);
$slen = strlen($str);
- if($slen < 2)
- {
+ if ($slen < 2) {
return $str;
}
- if(@count($pinyins) == 0)
- {
- $fp = fopen(DEDEINC.'/data/pinyin.dat', 'r');
- while(!feof($fp))
- {
+ if (@count($pinyins) == 0) {
+ $fp = fopen(DEDEINC . '/data/pinyin.dat', 'r');
+ while (!feof($fp)) {
$line = trim(fgets($fp));
- $pinyins[$line[0].$line[1]] = substr($line, 3, strlen($line)-3);
+ $pinyins[$line[0] . $line[1]] = substr($line, 3, strlen($line) - 3);
}
fclose($fp);
}
- for($i=0; $i<$slen; $i++)
- {
- if(ord($str[$i])>0x80)
- {
- $c = $str[$i].$str[$i+1];
+ for ($i = 0; $i < $slen; $i++) {
+ if (ord($str[$i]) > 0x80) {
+ $c = $str[$i] . $str[$i + 1];
$i++;
- if(isset($pinyins[$c]))
- {
- if($ishead==0)
- {
+ if (isset($pinyins[$c])) {
+ if ($ishead == 0) {
$restr .= $pinyins[$c];
- }
- else
- {
+ } else {
$restr .= $pinyins[$c][0];
}
- }else
- {
+ } else {
$restr .= "_";
}
- }else if( preg_match("/[a-z0-9]/i", $str[$i]) )
- {
+ } else if (preg_match("/[a-z0-9]/i", $str[$i])) {
$restr .= $str[$i];
- }
- else
- {
+ } else {
$restr .= "_";
}
}
- if($isclose==0)
- {
+ if ($isclose == 0) {
unset($pinyins);
}
}
@@ -99,37 +85,29 @@ function SpGetPinyin($str, $ishead=0, $isclose=1)
*/
function SpCreateDir($spath)
{
- global $cfg_dir_purview,$cfg_basedir,$cfg_ftp_mkdir,$isSafeMode;
- if($spath=='')
- {
+ global $cfg_dir_purview, $cfg_basedir, $cfg_ftp_mkdir, $isSafeMode;
+ if ($spath == '') {
return true;
}
$flink = false;
$truepath = $cfg_basedir;
- $truepath = str_replace("\\","/",$truepath);
- $spaths = explode("/",$spath);
+ $truepath = str_replace("\\", "/", $truepath);
+ $spaths = explode("/", $spath);
$spath = "";
- foreach($spaths as $spath)
- {
- if($spath=="")
- {
+ foreach ($spaths as $spath) {
+ if ($spath == "") {
continue;
}
$spath = trim($spath);
- $truepath .= "/".$spath;
- if(!is_dir($truepath) || !is_writeable($truepath))
- {
- if(!is_dir($truepath))
- {
- $isok = MkdirAll($truepath,$cfg_dir_purview);
- }
- else
- {
- $isok = ChmodAll($truepath,$cfg_dir_purview);
+ $truepath .= "/" . $spath;
+ if (!is_dir($truepath) || !is_writeable($truepath)) {
+ if (!is_dir($truepath)) {
+ $isok = MkdirAll($truepath, $cfg_dir_purview);
+ } else {
+ $isok = ChmodAll($truepath, $cfg_dir_purview);
}
- if(!$isok)
- {
- echo "创建或修改目录:".$truepath." 失败!
";
+ if (!$isok) {
+ echo "创建或修改目录:" . $truepath . " 失败!
";
CloseFtp();
return false;
}
@@ -141,13 +119,13 @@ function SpCreateDir($spath)
function jsScript($js)
{
- $out = "\n";
+ $out = "\n";
- return $out;
+ return $out;
}
/**
@@ -162,45 +140,37 @@ function jsScript($js)
* @param string $isfullpage 是否全屏
* @return string
*/
-function SpGetEditor($fname,$fvalue,$nheight="350",$etype="Basic",$gtype="print",$isfullpage="false",$bbcode=false)
+function SpGetEditor($fname, $fvalue, $nheight = "350", $etype = "Basic", $gtype = "print", $isfullpage = "false", $bbcode = false)
{
global $cfg_ckeditor_initialized;
- if(!isset($GLOBALS['cfg_html_editor']))
- {
- $GLOBALS['cfg_html_editor']='fck';
+ if (!isset($GLOBALS['cfg_html_editor'])) {
+ $GLOBALS['cfg_html_editor'] = 'fck';
}
- if($gtype=="")
- {
+ if ($gtype == "") {
$gtype = "print";
}
- if($GLOBALS['cfg_html_editor']=='fck')
- {
- require_once(DEDEINC.'/FCKeditor/fckeditor.php');
+ if ($GLOBALS['cfg_html_editor'] == 'fck') {
+ require_once(DEDEINC . '/FCKeditor/fckeditor.php');
$fck = new FCKeditor($fname);
- $fck->BasePath = $GLOBALS['cfg_cmspath'].'/include/FCKeditor/' ;
- $fck->Width = '100%' ;
- $fck->Height = $nheight ;
- $fck->ToolbarSet = $etype ;
+ $fck->BasePath = $GLOBALS['cfg_cmspath'] . '/include/FCKeditor/';
+ $fck->Width = '100%';
+ $fck->Height = $nheight;
+ $fck->ToolbarSet = $etype;
$fck->Config['FullPage'] = $isfullpage;
- if($GLOBALS['cfg_fck_xhtml']=='Y')
- {
+ if ($GLOBALS['cfg_fck_xhtml'] == 'Y') {
$fck->Config['EnableXHTML'] = 'true';
$fck->Config['EnableSourceXHTML'] = 'true';
}
- $fck->Value = $fvalue ;
- if($gtype=="print")
- {
+ $fck->Value = $fvalue;
+ if ($gtype == "print") {
$fck->Create();
- }
- else
- {
+ } else {
return $fck->CreateHtml();
}
- }
- else if($GLOBALS['cfg_html_editor']=='ckeditor')
- {
+ } else if ($GLOBALS['cfg_html_editor'] == 'ckeditor') {
$addConfig = "";
if (defined("DEDEADMIN")) {
+ // $addConfig = ",{filebrowserImageUploadUrl:'./dialog/select_images_post.php',filebrowserUploadUrl:'./dialog/select_media_post.php'}";
$addConfig = ",{filebrowserImageUploadUrl:'./dialog/select_images_post.php'}";
}
$code = <<
EOT;
- if($gtype=="print")
- {
+ if ($gtype == "print") {
echo $code;
- }
- else
- {
+ } else {
return $code;
}
- } else {
+ } else {
/*
// ------------------------------------------------------------------------
// 当前版本,暂时取消dedehtml编辑器的支持
@@ -249,12 +216,11 @@ EOT;
*/
function SpGetNewInfo()
{
- global $cfg_version_detail,$dsql;
+ global $cfg_version_detail, $dsql;
$nurl = $_SERVER['HTTP_HOST'];
- if( preg_match("#[a-z\-]{1,}\.[a-z]{2,}#i",$nurl) ) {
+ if (preg_match("#[a-z\-]{1,}\.[a-z]{2,}#i", $nurl)) {
$nurl = urlencode($nurl);
- }
- else {
+ } else {
$nurl = "test";
}
$phpv = phpversion();
@@ -263,13 +229,11 @@ function SpGetNewInfo()
$add_query = '';
$query = "SELECT COUNT(*) AS dd FROM `#@__member` ";
$row1 = $dsql->GetOne($query);
- if ( $row1 ) $add_query .= "&mcount={$row1['dd']}";
+ if ($row1) $add_query .= "&mcount={$row1['dd']}";
$query = "SELECT COUNT(*) AS dd FROM `#@__arctiny` ";
$row2 = $dsql->GetOne($query);
- if ( $row2 ) $add_query .= "&acount={$row2['dd']}";
-
- $offUrl = DEDEBIZURL."/version?version={$cfg_version_detail}&formurl={$nurl}&phpver={$phpv}&os={$sp_os}&mysqlver={$mysql_ver}{$add_query}";
+ if ($row2) $add_query .= "&acount={$row2['dd']}";
+
+ $offUrl = DEDEBIZURL . "/version?version={$cfg_version_detail}&formurl={$nurl}&phpver={$phpv}&os={$sp_os}&mysqlver={$mysql_ver}{$add_query}";
return $offUrl;
}
-
-?>
\ No newline at end of file
diff --git a/src/static/ckeditor/config.js b/src/static/ckeditor/config.js
index dc8e6652..722b21e6 100644
--- a/src/static/ckeditor/config.js
+++ b/src/static/ckeditor/config.js
@@ -3,24 +3,24 @@
* For licensing, see https://ckeditor.com/legal/ckeditor-oss-license
*/
-CKEDITOR.editorConfig = function( config ) {
+CKEDITOR.editorConfig = function (config) {
config.toolbarGroups = [
- { name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
- { name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
- { name: 'editing', groups: [ 'find', 'selection', 'spellchecker', 'editing' ] },
- { name: 'forms', groups: [ 'forms' ] },
+ { name: 'document', groups: ['mode', 'document', 'doctools'] },
+ { name: 'clipboard', groups: ['clipboard', 'undo'] },
+ { name: 'editing', groups: ['find', 'selection', 'spellchecker', 'editing'] },
+ { name: 'forms', groups: ['forms'] },
'/',
- { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
- { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi', 'paragraph' ] },
- { name: 'links', groups: [ 'links' ] },
- { name: 'insert', groups: [ 'insert' ] },
+ { name: 'basicstyles', groups: ['basicstyles', 'cleanup'] },
+ { name: 'paragraph', groups: ['list', 'indent', 'blocks', 'align', 'bidi', 'paragraph'] },
+ { name: 'links', groups: ['links'] },
+ { name: 'insert', groups: ['insert'] },
'/',
- { name: 'styles', groups: [ 'styles' ] },
- { name: 'colors', groups: [ 'colors' ] },
- { name: 'tools', groups: [ 'tools' ] }
+ { name: 'styles', groups: ['styles'] },
+ { name: 'colors', groups: ['colors'] },
+ { name: 'tools', groups: ['tools'] }
];
- config.extraPlugins = 'dedepagebreak';
+ config.extraPlugins = 'html5video,dedepagebreak';
config.removeButtons = 'About,ShowBlocks,Iframe,Flash,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField';
diff --git a/src/static/ckeditor/plugins/html5video/dialogs/html5video.js b/src/static/ckeditor/plugins/html5video/dialogs/html5video.js
new file mode 100644
index 00000000..c11e055c
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/dialogs/html5video.js
@@ -0,0 +1,259 @@
+CKEDITOR.dialog.add( 'html5video', function( editor ) {
+ return {
+ title: editor.lang.html5video.title,
+ minWidth: 500,
+ minHeight: 100,
+ contents: [ {
+ id: 'info',
+ label: editor.lang.html5video.infoLabel,
+ elements: [
+ {
+ type: 'vbox',
+ padding: 0,
+ children: [
+ {
+ type: 'hbox',
+ widths: [ '365px', '110px' ],
+ align: 'right',
+ children: [ {
+ type: 'text',
+ id: 'url',
+ label: editor.lang.html5video.allowed,
+ required: true,
+ validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.html5video.urlMissing ),
+ setup: function( widget ) {
+ this.setValue( widget.data.src );
+ },
+ commit: function( widget ) {
+ widget.setData( 'src', this.getValue() );
+ }
+ },
+ {
+ type: 'button',
+ id: 'browse',
+ // v-align with the 'txtUrl' field.
+ // TODO: We need something better than a fixed size here.
+ style: 'display:inline-block;margin-top:14px;',
+ align: 'center',
+ label: editor.lang.common.browseServer,
+ hidden: true,
+ filebrowser: 'info:url'
+ } ]
+ } ]
+ },
+ {
+ type: 'checkbox',
+ id: 'responsive',
+ label: editor.lang.html5video.responsive,
+ setup: function( widget ) {
+ this.setValue( widget.data.responsive );
+ },
+ commit: function( widget ) {
+ widget.setData( 'responsive', this.getValue()?'true':'' );
+ }
+ },
+ {
+ type: 'vbox',
+ padding: 0,
+
+ children: [{
+ type: 'hbox',
+ widths: [ '365px', '110px' ],
+ align: 'right',
+ children: [ {
+ type: 'text',
+ id: 'poster',
+ label: editor.lang.html5video.poster,
+ setup: function( widget ) {
+ this.setValue( widget.data.poster );
+ },
+ commit: function( widget ) {
+ widget.setData( 'poster', this.getValue() );
+ }
+ },
+ {
+ type: 'button',
+ id: 'browseposter',
+ // v-align with the 'txtUrl' field.
+ // TODO: We need something better than a fixed size here.
+ style: 'display:inline-block;margin-top:14px;',
+ align: 'center',
+ label: editor.lang.common.browseServer,
+ hidden: true,
+ filebrowser:{action:"Browse",target:"info:poster",url:editor.config.filebrowserImageBrowseUrl}
+ } ]
+ }]
+ },
+ {
+ type: 'checkbox',
+ id: 'controls',
+ label: editor.lang.html5video.controls,
+ setup: function (widget) {
+ this.setValue(widget.data.controls);
+ },
+ commit: function (widget) {
+ widget.setData('controls', this.getValue() ? 'true' : '');
+ }
+ },
+ {
+ type: 'hbox',
+ id: 'size',
+ children: [ {
+ type: 'text',
+ id: 'width',
+ label: editor.lang.common.width,
+ setup: function( widget ) {
+ if ( widget.data.width ) {
+ this.setValue( widget.data.width );
+ }
+ },
+ commit: function( widget ) {
+ widget.setData( 'width', this.getValue() );
+ }
+ },
+ {
+ type: 'text',
+ id: 'height',
+ label: editor.lang.common.height,
+ setup: function( widget ) {
+ if ( widget.data.height ) {
+ this.setValue( widget.data.height );
+ }
+ },
+ commit: function( widget ) {
+ widget.setData( 'height', this.getValue() );
+ }
+ },
+ ]
+ },
+
+ {
+ type: 'hbox',
+ id: 'alignment',
+ children: [ {
+ type: 'radio',
+ id: 'align',
+ label: editor.lang.common.align,
+ items: [
+ [editor.lang.common.alignCenter, 'center'],
+ [editor.lang.common.alignLeft, 'left'],
+ [editor.lang.common.alignRight, 'right'],
+ [editor.lang.common.alignNone, 'none']
+ ],
+ 'default': 'center',
+ setup: function( widget ) {
+ if ( widget.data.align ) {
+ this.setValue( widget.data.align );
+ }
+ },
+ commit: function( widget ) {
+ widget.setData( 'align', this.getValue() );
+ }
+ } ]
+ } ]
+ },
+ {
+ id: 'Upload',
+ hidden: true,
+ filebrowser: 'uploadButton',
+ label: editor.lang.html5video.upload,
+ elements: [ {
+ type: 'file',
+ id: 'upload',
+ label: editor.lang.html5video.btnUpload,
+ style: 'height:40px',
+ size: 38
+ },
+ {
+ type: 'fileButton',
+ id: 'uploadButton',
+ filebrowser: 'info:url',
+ label: editor.lang.html5video.btnUpload,
+ 'for': [ 'Upload', 'upload' ]
+ } ]
+ },
+ {
+ id: 'advanced',
+ label: editor.lang.html5video.advanced,
+ elements: [ {
+ type: 'vbox',
+ padding: 10,
+ children: [ {
+ type: 'hbox',
+ widths: ["33%", "33%", "33%"],
+ children: [ {
+ type: 'radio',
+ id: 'autoplay',
+ label: editor.lang.html5video.autoplay,
+ items: [
+ [editor.lang.html5video.yes, 'yes'],
+ [editor.lang.html5video.no, 'no']
+ ],
+ 'default': 'no',
+ setup: function( widget ) {
+ if ( widget.data.autoplay ) {
+ this.setValue( widget.data.autoplay );
+ }
+ },
+ commit: function( widget ) {
+ widget.setData( 'autoplay', this.getValue() );
+ }
+ },
+ {
+ type: 'radio',
+ id: 'loop',
+ label: editor.lang.html5video.loop,
+ items: [
+ [editor.lang.html5video.yes, 'yes'],
+ [editor.lang.html5video.no, 'no']
+ ],
+ 'default': 'no',
+ setup: function( widget ) {
+ if ( widget.data.loop ) {
+ this.setValue( widget.data.loop );
+ }
+ },
+ commit: function( widget ) {
+ widget.setData( 'loop', this.getValue() );
+ }
+ },
+ {
+ type: 'radio',
+ id: 'allowdownload',
+ label: editor.lang.html5video.allowdownload,
+ items: [
+ [editor.lang.html5video.yes, 'yes'],
+ [editor.lang.html5video.no, 'no']
+ ],
+ 'default': 'no',
+ setup: function( widget ) {
+ if ( widget.data.allowdownload ) {
+ this.setValue(widget.data.allowdownload);
+ }
+ },
+ commit: function( widget ) {
+ widget.setData( 'allowdownload', this.getValue() );
+ }
+ } ]
+ },
+ {
+ type: 'hbox',
+ children: [ {
+ type: "text",
+ id: 'advisorytitle',
+ label: editor.lang.html5video.advisorytitle,
+ 'default': '',
+ setup: function( widget ) {
+ if ( widget.data.advisorytitle ) {
+ this.setValue(widget.data.advisorytitle);
+ }
+ },
+ commit: function( widget ) {
+ widget.setData( 'advisorytitle', this.getValue() );
+ }
+ } ]
+ } ]
+ } ]
+ } ]
+ };
+} );
diff --git a/src/static/ckeditor/plugins/html5video/icons/html5video.png b/src/static/ckeditor/plugins/html5video/icons/html5video.png
new file mode 100644
index 00000000..a2465177
Binary files /dev/null and b/src/static/ckeditor/plugins/html5video/icons/html5video.png differ
diff --git a/src/static/ckeditor/plugins/html5video/lang/bg.js b/src/static/ckeditor/plugins/html5video/lang/bg.js
new file mode 100644
index 00000000..0def1cea
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/bg.js
@@ -0,0 +1,20 @@
+CKEDITOR.plugins.setLang( 'html5video', 'bg', {
+ button: 'Вмъква HTML5 видео',
+ title: 'HTML5 видео',
+ infoLabel: 'Видео',
+ allowed: 'Допустими файлови разширения: MP4, WebM, Ogv',
+ urlMissing: 'URL адресът на източника на видео липсва.',
+ videoProperties: 'Свойства на видео',
+ upload: 'Качване',
+ btnUpload: 'Изпрати на сървъра',
+ advanced: 'Разширено',
+ autoplay: 'Автоматично изпълнение',
+ allowdownload: 'Позволено изтегляне?',
+ advisorytitle: 'Заглавие',
+ yes: 'Да',
+ no: 'Не',
+ loop: 'Циклично изпълнение',
+ responsive: 'Адаптивна ширина',
+ controls: 'Показване на контролите',
+ poster: 'URL миниатюра'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/ca.js b/src/static/ckeditor/plugins/html5video/lang/ca.js
new file mode 100644
index 00000000..0369d487
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/ca.js
@@ -0,0 +1,20 @@
+CKEDITOR.plugins.setLang( 'html5video', 'ca', {
+ button: "Insereix un vídeo HTML5",
+ title: "Vídeo HTML5",
+ infoLabel: "Informació del vídeo",
+ allowed: "Extensions d'arxius permeses: MP4, WebM, Ogv",
+ urlMissing: "Falta l'URL de la font de vídeo.",
+ videoProperties: "Propietats de vídeo",
+ upload: "Pujar",
+ btnUpload: "Envia-lo al servidor",
+ advanced: "Avançat",
+ autoplay: "Reproducció automàtica?",
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: "Sí",
+ no: "No",
+ loop: "Bucle?",
+ responsive: "Ample adaptatiu",
+ controls: "Mostra els controls",
+ poster: "Miniatura"
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/de.js b/src/static/ckeditor/plugins/html5video/lang/de.js
new file mode 100644
index 00000000..ff4f7817
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/de.js
@@ -0,0 +1,17 @@
+CKEDITOR.plugins.setLang( 'html5video', 'de', {
+ button: 'HTML5 Video einfügen',
+ title: 'HTML5 Video',
+ infoLabel: 'Video Infos',
+ allowed: 'Erlaubte Dateierweiterungen: MP4, WebM, Ogv',
+ urlMissing: 'Sie haben keine URL zur Video-Datei angegeben.',
+ videoProperties: 'Video-Einstellungen',
+ upload: 'Hochladen',
+ btnUpload: 'Zum Server senden',
+ advanced: 'Erweitert',
+ autoplay: 'Autoplay?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Ja',
+ no: 'Nein',
+ controls: 'Steuerelemente anzeigen'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/en.js b/src/static/ckeditor/plugins/html5video/lang/en.js
new file mode 100644
index 00000000..d196bc5b
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/en.js
@@ -0,0 +1,20 @@
+CKEDITOR.plugins.setLang( 'html5video', 'en', {
+ button: 'Insert HTML5 video',
+ title: 'HTML5 video',
+ infoLabel: 'Video info',
+ allowed: 'Allowed file extensions: MP4, WebM, Ogv',
+ urlMissing: 'Video source URL is missing.',
+ videoProperties: 'Video properties',
+ upload: 'Upload',
+ btnUpload: 'Send it to the server',
+ advanced: 'Advanced',
+ autoplay: 'Autoplay?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Yes',
+ no: 'No',
+ loop: 'Loop?',
+ responsive: 'Responsive width',
+ controls: 'Show controls',
+ poster: 'Thumbnail'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/es.js b/src/static/ckeditor/plugins/html5video/lang/es.js
new file mode 100644
index 00000000..54dd5d55
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/es.js
@@ -0,0 +1,18 @@
+CKEDITOR.plugins.setLang( 'html5video', 'es', {
+ button: 'Insertar video HTML5',
+ title: 'Video HTML5',
+ infoLabel: 'Información del video',
+ allowed: 'Extensiones de archivo permitidas: MP4, WebM, Ogv',
+ urlMissing: 'La URL del video no puede estar vacía.',
+ videoProperties: 'Propiedades del video',
+ upload: 'Cargar',
+ btnUpload: 'Enviar al servidor',
+ advanced: 'Avanzado',
+ autoplay: '¿Reproducir automáticamente?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Sí',
+ no: 'No',
+ responsive: '¿Responsive?',
+ controls: 'Mostrar controles'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/eu.js b/src/static/ckeditor/plugins/html5video/lang/eu.js
new file mode 100644
index 00000000..5b90be7d
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/eu.js
@@ -0,0 +1,17 @@
+CKEDITOR.plugins.setLang( 'html5video', 'eu', {
+ button: 'Txertatu HTML5 bideoa',
+ title: 'HTML5 bideoa',
+ infoLabel: 'Bideoaren informazioa',
+ allowed: 'Baimendutako fitxategi luzapenak: MP4, WebM, Ogv',
+ urlMissing: 'Bideoaren URLak ezin du hutsik egon.',
+ videoProperties: 'Bideoaren propietateak',
+ upload: 'Kargatu',
+ btnUpload: 'Bidali zerbitzarira',
+ advanced: 'Aurreratua',
+ autoplay: 'Automatikoki erreproduzitu?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Bai',
+ no: 'Ez',
+ controls: 'Erakutsi kontrolak?'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/fa.js b/src/static/ckeditor/plugins/html5video/lang/fa.js
new file mode 100644
index 00000000..df5dfb62
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/fa.js
@@ -0,0 +1,18 @@
+CKEDITOR.plugins.setLang( 'html5video', 'fa', {
+ button: 'وارد کردن ویدیوی HTML5',
+ title: 'ویدیوی HTML5',
+ infoLabel: 'اطلاعات ویدیو',
+ allowed: 'پسوندهای مجاز فایل: MP4, WebM, Ogv',
+ urlMissing: 'URL منبع ویدیو پیدا نشد.',
+ videoProperties: 'خواهص ویدیو',
+ upload: 'بارگذاری',
+ btnUpload: 'ارسال به سرور',
+ advanced: 'پیشرفته',
+ autoplay: 'پخش خودکار؟',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'بله',
+ no: 'خیر',
+ responsive: 'عرض واکنشگرا',
+ controls: 'نمایش کنترل؟'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/fr.js b/src/static/ckeditor/plugins/html5video/lang/fr.js
new file mode 100644
index 00000000..70142390
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/fr.js
@@ -0,0 +1,17 @@
+CKEDITOR.plugins.setLang( 'html5video', 'fr', {
+ button: 'Insérer un lecteur video HTML5',
+ title: 'HTML5 video',
+ infoLabel: 'Informations video',
+ allowed: 'Extensions de fichiers autorisées: MP4, WebM, Ogv',
+ urlMissing: 'URL de la source video manquante. Veuillez la renseigner.',
+ videoProperties: 'Propriétés Video',
+ upload: 'Télécharger',
+ btnUpload: 'Envoyer vers le serveur',
+ advanced: 'Avancé',
+ autoplay: 'Jouer automatiquement ?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Oui',
+ no: 'Non',
+ controls: 'Afficher les contrôles ?'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/he.js b/src/static/ckeditor/plugins/html5video/lang/he.js
new file mode 100644
index 00000000..9bea57bf
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/he.js
@@ -0,0 +1,18 @@
+
+CKEDITOR.plugins.setLang('html5video', 'he', {
+ button: 'הוסף וידאו HTML5',
+ title: 'וידאו HTML5',
+ infoLabel: 'מידע וידאו',
+ allowed: 'סוגי קבצים מורשים: MP4, WebM, Ogv',
+ urlMissing: 'כתובת הוידאו חסרה',
+ videoProperties: 'מאפייני וידאו',
+ upload: 'העלה',
+ btnUpload: 'שלח לשרת',
+ advanced: 'מתקדם',
+ autoplay: 'ניגון אוטומטי?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'כן',
+ no: 'לא',
+ responsive: 'רוחב רספונסיבי'
+});
diff --git a/src/static/ckeditor/plugins/html5video/lang/ko.js b/src/static/ckeditor/plugins/html5video/lang/ko.js
new file mode 100644
index 00000000..0e68c247
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/ko.js
@@ -0,0 +1,20 @@
+CKEDITOR.plugins.setLang( 'html5video', 'ko', {
+ button: 'HTML5 비디오 추가하기',
+ title: 'HTML5 비디오',
+ infoLabel: '비디오 정보',
+ allowed: '허용된 파일 확장자들: MP4, WebM, Ogv',
+ urlMissing: '비디오 Url이 없습니다.',
+ videoProperties: '비디오 속성',
+ upload: '업로드',
+ btnUpload: '서버로 전송',
+ advanced: '고급',
+ autoplay: '자동재생?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: '네',
+ no: '아니오',
+ loop: '무한반복?',
+ responsive: '반응형 너비',
+ controls: '컨트롤 보여주기',
+ poster: '썸네일'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/pl.js b/src/static/ckeditor/plugins/html5video/lang/pl.js
new file mode 100644
index 00000000..3528fbaf
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/pl.js
@@ -0,0 +1,18 @@
+CKEDITOR.plugins.setLang( 'html5video', 'pl', {
+ button: 'Wstaw HTML5 video',
+ title: 'HTML5 video',
+ infoLabel: 'Informacje',
+ allowed: 'Dozwolone typy plików: MP4, WebM, Ogv',
+ urlMissing: 'Nie znaleziono URL do pliku video.',
+ videoProperties: 'Właściwości',
+ upload: 'Wrzuć plik',
+ btnUpload: 'Wyślij na serwer',
+ advanced: 'Zaawansowane',
+ autoplay: 'Autoodtwarzanie?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Tak',
+ no: 'Nie',
+ responsive: 'Szerokość responsywna',
+ controls: 'Pokaż kontrolki'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/pt-br.js b/src/static/ckeditor/plugins/html5video/lang/pt-br.js
new file mode 100644
index 00000000..1874303a
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/pt-br.js
@@ -0,0 +1,18 @@
+CKEDITOR.plugins.setLang( 'html5video', 'pt-br', {
+ button: 'Inserir vídeo HTML5',
+ title: 'HTML5 video',
+ infoLabel: 'Informações do Vídeo',
+ allowed: 'Extensões permitidas: MP4, WebM, Ogv',
+ urlMissing: 'O URL do vídeo está faltando.',
+ videoProperties: 'Propriedades do vídeo',
+ upload: 'Upload',
+ btnUpload: 'Enviar para o servidor',
+ advanced: 'Avançado',
+ autoplay: 'Autoplay?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Sim',
+ no: 'Não',
+ responsive: 'Largura responsiva',
+ controls: 'Exibir controles'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/pt.js b/src/static/ckeditor/plugins/html5video/lang/pt.js
new file mode 100644
index 00000000..5c4213e3
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/pt.js
@@ -0,0 +1,18 @@
+CKEDITOR.plugins.setLang( 'html5video', 'pt', {
+ button: 'Inserir vídeo HTML5',
+ title: 'HTML5 video',
+ infoLabel: 'Informações do Vídeo',
+ allowed: 'Extensões permitidas: MP4, WebM, Ogv',
+ urlMissing: 'O URL do vídeo está faltando.',
+ videoProperties: 'Propriedades do vídeo',
+ upload: 'Upload',
+ btnUpload: 'Enviar para o servidor',
+ advanced: 'Avançado',
+ autoplay: 'Autoplay?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Sim',
+ no: 'Não',
+ responsive: 'Largura responsiva',
+ controls: 'Exibir controles'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/ru.js b/src/static/ckeditor/plugins/html5video/lang/ru.js
new file mode 100644
index 00000000..bea81ed7
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/ru.js
@@ -0,0 +1,21 @@
+CKEDITOR.plugins.setLang( 'html5video', 'ru', {
+ button: 'Вставить HTML5 видео',
+ title: 'HTML5 видео',
+ infoLabel: 'Видео',
+ allowed: 'Допустимые расширения файлов: MP4, WebM, Ogv',
+ urlMissing: 'Не выбран источник видео',
+ videoProperties: 'Свойства видео',
+ upload: 'Загрузить',
+ btnUpload: 'Загрузить на сервер',
+ advanced: 'Дополнительно',
+ autoplay: 'Автовоспроизведение',
+ allowdownload: 'Разрешить загрузку',
+ advisorytitle: 'Заголовок',
+ yes: 'Да',
+ no: 'Нет',
+ responsive: 'Адаптивная ширина',
+ controls: 'Показать элементы управления',
+ loop: 'Зациклить',
+ poster: 'Постер',
+ advisorytitle: 'Пояснительный текст'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/uk.js b/src/static/ckeditor/plugins/html5video/lang/uk.js
new file mode 100644
index 00000000..a115440c
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/uk.js
@@ -0,0 +1,17 @@
+CKEDITOR.plugins.setLang( 'html5video', 'uk', {
+ button: 'Вставити HTML5 відео',
+ title: 'HTML5 відео',
+ infoLabel: 'Інформація',
+ allowed: 'Допустимі розширення файлів: MP4, WebM, Ogv',
+ urlMissing: 'Не обрано джерела відео',
+ videoProperties: 'Властивості відео',
+ upload: 'Відвантажити',
+ btnUpload: 'Відвантажити на сервер',
+ advanced: 'Додатково',
+ autoplay: 'Автовідтворення?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Так',
+ no: 'Ні',
+ controls: 'Показати елементи керування?'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/uz.js b/src/static/ckeditor/plugins/html5video/lang/uz.js
new file mode 100644
index 00000000..10d1f667
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/uz.js
@@ -0,0 +1,17 @@
+CKEDITOR.plugins.setLang( 'html5video', 'uz', {
+ button: 'HTML5 video qo‘shing',
+ title: 'HTML5 video',
+ infoLabel: 'Video ma\'lumot',
+ allowed: 'Ruxsat etilgan kengaytmalar: MP4, WebM, Ogv',
+ urlMissing: 'Video\'ning URL manbasi topilmadi.',
+ videoProperties: 'Video xususiyatlari',
+ upload: 'Yuklash',
+ btnUpload: 'Serverga jo‘natish',
+ advanced: 'Kengaytrilgan',
+ autoplay: 'Avtoijro?',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: 'Ha',
+ no: 'Yo‘q',
+ controls: 'Tekshiruvlarni ko‘rsatish'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/lang/zh-cn.js b/src/static/ckeditor/plugins/html5video/lang/zh-cn.js
new file mode 100644
index 00000000..3ea9ad4d
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/lang/zh-cn.js
@@ -0,0 +1,18 @@
+CKEDITOR.plugins.setLang( 'html5video', 'zh-cn', {
+ button: '发布HTML5视频',
+ title: 'HTML5视频',
+ infoLabel: '视频信息',
+ allowed: '支持格式: MP4, WebM, Ogv',
+ urlMissing: '视频url',
+ videoProperties: '视频属性',
+ upload: '上传视频',
+ btnUpload: '上传',
+ advanced: '高级',
+ autoplay: '自动播放',
+ allowdownload: 'Allow download?',
+ advisorytitle: 'Advisory title',
+ yes: '是',
+ no: '否',
+ responsive: '自动宽度',
+ controls: '显示控件?'
+} );
diff --git a/src/static/ckeditor/plugins/html5video/plugin.js b/src/static/ckeditor/plugins/html5video/plugin.js
new file mode 100644
index 00000000..9a71e49a
--- /dev/null
+++ b/src/static/ckeditor/plugins/html5video/plugin.js
@@ -0,0 +1,196 @@
+CKEDITOR.plugins.add( 'html5video', {
+ requires: 'widget',
+ lang: 'bg,ca,de,en,eu,es,ru,uk,fr,ko,pt,pt-br,pl',
+ icons: 'html5video',
+ init: function( editor ) {
+ editor.widgets.add( 'html5video', {
+ button: editor.lang.html5video.button,
+ template: '',
+ /*
+ * Allowed content rules (http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules):
+ * - div-s with text-align,float,margin-left,margin-right inline style rules and required ckeditor-html5-video class.
+ * - video tags with src, controls, width and height attributes.
+ */
+ allowedContent: 'div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,poster,controls,autoplay,width, height,loop]{max-width,height};',
+ requiredContent: 'div(ckeditor-html5-video); video[src];',
+ upcast: function( element ) {
+ return element.name === 'div' && element.hasClass( 'ckeditor-html5-video' );
+ },
+ dialog: 'html5video',
+ init: function() {
+ var src = '';
+ var autoplay = '';
+ var loop = '';
+ var controls = '';
+ var align = this.element.getStyle( 'text-align' );
+
+ var width = '';
+ var height = '';
+ var poster = '';
+
+ // If there's a child (the video element)
+ if ( this.element.getChild( 0 ) ) {
+ // get it's attributes.
+ src = this.element.getChild( 0 ).getAttribute( 'src' );
+ width = this.element.getChild( 0 ).getAttribute( 'width' );
+ height = this.element.getChild( 0 ).getAttribute( 'height' );
+ autoplay = this.element.getChild(0).getAttribute('autoplay');
+ allowdownload = !this.element.getChild( 0 ).getAttribute( 'controlslist' );
+ loop = this.element.getChild( 0 ).getAttribute( 'loop' );
+ advisorytitle = this.element.getChild( 0 ).getAttribute( 'title' );
+ controls = this.element.getChild(0).getAttribute('controls');
+ responsive = this.element.getAttribute( 'data-responsive' );
+ poster = this.element.getChild( 0 ).getAttribute( 'poster' );
+ }
+
+ if ( src ) {
+ this.setData( 'src', src );
+
+ if ( align ) {
+ this.setData( 'align', align );
+ } else {
+ this.setData( 'align', 'none' );
+ }
+
+ if ( width ) {
+ this.setData( 'width', width );
+ }
+
+ if ( height ) {
+ this.setData( 'height', height );
+ }
+
+ if ( autoplay ) {
+ this.setData( 'autoplay', 'yes' );
+ }
+
+ if ( allowdownload ) {
+ this.setData( 'allowdownload', 'yes' );
+ }
+
+ if ( loop ) {
+ this.setData( 'loop', 'yes' );
+ }
+
+ if ( advisorytitle ) {
+ this.setData( 'advisorytitle', advisorytitle );
+ }
+
+ if ( responsive ) {
+ this.setData( 'responsive', responsive );
+ }
+
+ if (controls) {
+ this.setData('controls', controls);
+ }
+
+ if ( poster ) {
+ this.setData('poster', poster);
+ }
+ }
+ },
+ data: function() {
+ // If there is an video source
+ if ( this.data.src ) {
+ // and there isn't a child (the video element)
+ if ( !this.element.getChild( 0 ) ) {
+ // Create a new