diff --git a/dedecms b/dedecms index 4fa3d02c..0527e3e6 100755 --- a/dedecms +++ b/dedecms @@ -5,14 +5,15 @@ * * @version 2019年6月5日 tianya $ * @package DedeCMS.Command - * @copyright Copyright (c) 2007 - 2020, DesDev, Inc. + * @copyright Copyright (c) 2020, DedeBIZ.COM + * @license https://www.dedebiz.com/license + * @link https://www.dedebiz.com */ // 切换工作目录到./src -$workDir = dirname(__FILE__)."/src"; +$workDir = dirname(__FILE__) . "/src"; chdir($workDir); -if (substr(php_sapi_name(), 0, 3) === 'cgi') -{ +if (substr(php_sapi_name(), 0, 3) === 'cgi') { die("DedeCMS:needs php-cli to run\n\n"); } @@ -24,5 +25,5 @@ if (count($argv) > 1 && $argv[1] == "serv") { } echo "Start Dev Server For DedeCMS\n\r"; echo "Open http://localhost:8088\n\r"; - passthru(PHP_BINARY . ' -S localhost:8088 -t'.escapeshellarg('./')); -} \ No newline at end of file + passthru(PHP_BINARY . ' -S localhost:8088 -t' . escapeshellarg('./')); +} diff --git a/src/dede/css/indexbody.css b/src/dede/css/indexbody.css index ad78ecca..590b6ad7 100755 --- a/src/dede/css/indexbody.css +++ b/src/dede/css/indexbody.css @@ -16,7 +16,7 @@ td { left: 455px; top: 150px; width: 360px; - height: 180px; + height: 200px; z-index: 2; background-color: #FFFFFF; border: 1px solid #889D8F; diff --git a/src/dede/templets/index_body.htm b/src/dede/templets/index_body.htm index d421ad28..a13ce2de 100755 --- a/src/dede/templets/index_body.htm +++ b/src/dede/templets/index_body.htm @@ -56,7 +56,7 @@
- 欢迎使用专业的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