fck配置详解

  最后,增加一个文本去页面del_file.php(该公文路径和增的js函数delFile(fileUrl)中之调用一致),作用吧除去文件,给来成也的操作提示,参考代码:
  <?php
  $filePath = “..”.trim($_GET[‘filePath’]);

  当自己于VS12蒙受想透过右键找到Create
UnitTest这个选项之早晚,我发现10受被写UnitTest带来大方便之挑项在12
13吃还是从未了(也足见我多久没写UnitTest了lol),为什么微软若拿此效应取消了啊,我个人认为是为重新好之满足TDD的付出模式,微软于TDD的开发模式可说凡是奋力的支撑,甚至用VS
2012之出团队也模板来为我们这些屌丝程序员来显示什么是优雅的C#开发。那哪为TDD呢,下面切入主题来说说自家的一些知晓。

  浏览上传功能:
  [code]FCKConfig.LinkBrowser = true ; //文件
FCKConfig.ImageBrowser = true ; //图片
FCKConfig.FlashBrowser = true ; //Flash [/code]
  快速达标传功能:
  [code]FCKConfig.LinkUpload = true ; //同上
FCKConfig.ImageUpload = true ; //同上
FCKConfig.FlashUpload = true ; //同上 [/code]

  TDD(测试驱动开发)
是测试先行的方法,也就是说根据需求写驱动(写测试用例)。通过用例从红灯变成绿灯,使该经过了将落实的代码生成出来。通常咱们的开销模式是事先勾勒了Code,然后Create
UnitTest,此种方法属于测试后行。对于这两种办法,我个人感觉不可知说哪怕必将要TDD而完全否认测试后行的方式,但是TDD给我们带的便宜是今天想只要出口的主题,对于个别种植办法的讨论,欢迎大家来辩解。

  3、文件上传
  FCKeditor的文本管理程序于editor/filemanager/文件夹下,分为浏览(browser)和上传(upload)两种植。“浏览”是依浏览服务器都是文件并可以选,也得以上传本地文件及服务器;上传是指快速直达污染,在窗口中“上传”选项,选择地面文件后上传就推行,但是非克查看服务器上就产生高达污染文书,相对而言不太便宜,只是操作更为快捷。也就是说FCKeditor中发生一个文书浏览,有半点独公文上传,而这些设置是分散于多单文本被,配置相对复杂,下面我大致讲一下:
  在FCKeditor中共有三独文本以及达到传功能有关,一个凡是js文件,两单是php文件,前者关闭后界面被未出现有关窗口要按钮,后者关闭后有关力量未可用。
  js文件就凡负的fckconfig.js文件,在此前原本本子的fckconfig.js中率先你必需开启如下几项:

再Run Test,又破产了。

  5、editor\filemanager\upload目录:同理。

老鸟:OK,现在咱们再Run Test,果然我们以此Case通过了。那自己还写一个Test
Case。

  下面我起来对编辑器进行简易布置(并非每步都必须,可依据自己之要参考修改):

  比如说我们现在起一个要求要一个完美之周长,那我们用规划简单栽用例,1、输入一个整数价值,通过测算返回周长。2、输入一个负值,抛错。下面我急需简单个人口来结对通过TDD方式来落实之Story,为了有利于了解,我因此大话设计模式的人选命名方式来指定两只开发人员,老鸟,菜鸟。

  [color=Red]注:[/color]瞩目FCKeditor是休支持虚拟目录的,你的富有路线都是对准网站到底目录的绝对路径。

 

  if ( $filePath )
  {
    @unlink($filePath);
    echo “<script>alert(‘删除成功。’);</script>”;
  }
  else
  {
    echo
“<script>alert(‘删除错误,可能文件未在或者已经删除。’);</script>”;
  }
  ?>

        private int _r;
        private readonly double _pi = 3.14 * 2;

        /// <summary>
        /// TODO: Complete member initialization
        /// </summary>
        /// <param name="p">radius</param>
        public Circle(int r)
        {
            this._r = r;
        }

        public double Caculate()
        {
            return _r * _pi;
        }

  如果您只要运用文件上传功能,那么我们延续安排:
  依然当fckconfig.js文件中,fckeditor对语言默认支持之是asp,找到以下简单词,进行对应修改:
  [code]var _FileBrowserLanguage = ‘asp’ ; // asp | aspx | cfm |
lasso | perl | php | py(第182行)
var _QuickUploadLanguage = ‘asp’ ; // asp | aspx | cfm | lasso |
php(第183行)[/code]
  我们以那个都改呢’php’:
  [code]var _FileBrowserLanguage = ‘php’ ; // asp | aspx | cfm |
lasso | perl | php | py(第182行)
var _QuickUploadLanguage = ‘php’ ; // asp | aspx | cfm | lasso |
php[/code]

鸟儿:哦,因为无针对性参数进行判断,没有考虑小于零的景象,我修改下Caculate方法的落实。

  第三步,修改以页面原有js
  修改:
    oListManager.Clear = function()
  {
    document.body.innerHTML = ” ;
  }[/code]
  为:
    oListManager.Clear = function()
  {
    hiddenDiv();
    document.getElementById(“body_content”).innerHTML = ” ; //
body_content为咱以body区域加的div标签
  }
  
  找到:
  var sLink = ‘<a href=”#” onclick=”OpenFile(\” +
fileUrl.replace( /’/g, ‘\\\”) + ‘\’);return false;”>’ ;
  修改为:
  var sLink = ‘<a href=”#” onmouseover=”showDiv(\” + fileUrl +
‘\’);” onclick=”OpenFile(\” + fileUrl.replace( /’/g, ‘\\\”) +
‘\’);return false;”>’ ; // 即是文本信息展示效果
  修改:
    function Refresh()
  {
    LoadResources( oConnector.ResourceType, oConnector.CurrentFolder
) ;
  }
  为:
    function Refresh()
  {
    hiddenDiv(); // 所发改,为了刷新列表时默认隐藏文件显示层
    LoadResources( oConnector.ResourceType, oConnector.CurrentFolder
) ;
  }
  修改函数:GetFoldersAndFilesCallBack,找到:
  document.body.innerHTML = oHtml.ToString() ;
  修改为:
  document.getElementById(“body_content”).innerHTML =
oHtml.ToString() ;

  前言:新近在研究一个初品类之开发工作,这个类别的求是得写UnitTest,对于我个人来讲是可怜无爱好写UnitTest的觉得是东西会很非常程度的延误开发进度,所以前面项目之UnitTest是能够不写就非写,好以作坊式的出不以乎你勾勒不写,功能Work就OK了,好多技能大拿都对UnitTest情有独钟,可能对此自这种码农来说无法知道其利吧,小小抱怨也无力改变什么,只能研究研讨UnitTest了。

  注:你设置了兴上传的,当然禁止的也就不必要装了,本人推荐设置允许的,毕竟禁止的后缀名列表不克摆了,可能还有众多我们尚无想到的后缀名。

         [TestMethod]
        [ExpectedException(typeof(ArgumentException))]
        public void TestPerimeter_SecCase()
        {
            Circle worker = new Circle(-1);
            double result = worker.Caculate();
        }

  即把及时几乎桩设为true,而我辈今天采取的2.4.2的fckconfig.js中默认已经是打开上传开关显示力量的,所以,如果您而用该编辑器作为前台使用(fckeditor上污染漏洞问题直接没沾比较好之改善),考虑到安全性你可能得关闭文件及传功能,那么你一味需要用随即几项设置为false即可(当然片个php文件你吧并非开上传功能啊)。

这时候,我Run
Test,结果是连着不了,因为自身之Caculate方法还没落实,小鸟,那若来兑现此法子。

  2、字体列表
  依然打开fckconfig.js,因为是编辑器为外国人编写,所以默认不提供中文字体,我们为该在,找到FCKConfig.FontNames(第142行)加入“宋体;楷体_GB2312;新宋体;黑体;隶书;幼圆;”其他字体可依据自己得活动投入。

        private int _r;
/// <summary>
        /// TODO: Complete member initialization
        /// </summary>
        /// <param name="p">radius</param>
        public Circle(int r)
        {
            this._r = r;
        }

  于2.4.2版中,我们发现增加了针对再次多文本后缀名的支持,这个相应是以解决上传漏洞所作的稍改动,不过作用不十分,呵呵:D
  *.AllowedExtensions:(其中*号表示:FCKConfig.LinkUpload、FCKConfig.ImageUpload等)表示同意上传的文件后缀名,为空表示同意所有文件,你只是依据自己欲装上传文书后缀名,一定程度有增无减安全性,设置的格式可以参照其就有的后缀名设置。
  *.DeniedExtensions:同齐,表示禁止上传的文本后缀名。

  TDD此种植艺术太有义之地方在:不见面因为你先去思代码实现而有过度设计之题材,如果起实际上的需出发,你勾勒出来的代码是无限简便易行,最直白满足要求的措施,就不见面时有发生过度设计之题材。在此处自己一样想到了扳平栽编程方式:结对编程,结对编程是一律种将知识传播下的点子,意思是如数家珍此地逻辑的长者可同新人一起来修一片逻辑,通过去修改BUG,写代码,老人带在新人将这块一起开下来,包括新成员进入的时节可以经这个种植方法拿文化传播下。这也是一样种植Code
Review,两个人口一头看,总比一个总人口看发现题目的空子要多片,因为个别单人口的笔触是殊之,总是一个丁出是产生问题之。因此此是怀念以结对编程和TDD结合的计。一个人写Test
Case,另一个口通过Test
Case来写实现。下面就经过实际的事例来演示一下(演示的代码没有实际意义,只是想透过例子来展示结对编程和TDD结合)。

  文件快速直达污染修改:
  打开文件editor\filemanager\upload\php\config.php文件,找到
  $Config[‘Enabled’] = false ;(第28行)将false改为true。
  $Config[‘UserFilesPath’] = ‘/UserFiles/’
;(第35行)同“文件浏览上传”的上传目录。
  $Config[‘UseFileType’] = false ;
(第32行)改吧true,不然上污染文书未会见在上传目录中
  在拖欠文件被,还有一样项:
  $Config[‘UserFilesAbsolutePath’] = ” ;(第41行)
  这项的企图是设定上传的绝对路径,比如,你想指定上传文书及D:/Web/upload/下,你可指定它的价值吗您的绝对路径,注意,如果你指定了该值,那您啊要针对性$Config[‘UserFilesPath’]
= ‘/UserFiles/’ ;作同样之装。

接下来我起写UnitTest,先创造一个UnitTest工程,然后写Test
Case,写好后生成Caculate方法,设置断言,想得正确结果。

  第一步,在页面的body区域增加如下代码:
    <div id=”showFile” style=”float:left; display:none;
background-color:#999999″></div>
  <iframe id=”iframe_del” name=”iframe_del” width=”0″ height=”0″
scrolling=”no”></iframe>
  <div id=”body_content”></div>
  说明:第一针对<div></div>的作用是当我们管鼠标移动及所上传的公文上时不时显示其相关信息;<iframe></iframe>标签的打算是供我们抹上传文件时开动作响应窗口的,即凡是拿我们的去除动作在iframe中运作,目的是贯彻伪无刷新删除效果;最后一对<div></div>的企图是亮上传文书和文件夹的列表(2.4较以前版本对<body></body>标签中内容作了调整,老版该页面以<table></table>作为存放列表的器皿,而新版直接用显示容器在js中生成,为了要文件显示div和iframe两组标签正常使用,故在body标签中加入一对<div></div>标签,使的能够正常使用,在我之品被,倘若不这样改似乎来错,当然不破我道不当之来由,呵呵:P)
  
  第二步,在文件的js代码区中参加:
  // add by jayliaoscu @ 2007-04-23 /*{{{{*/
  // 显示文件显示层
  function showDiv( fileUrl )
  {
    var name = fileUrl;
    //获取文件类型
    var suffix = name.substring(name.lastIndexOf(“.”)+1);

        [TestMethod]
        public void TestPerimeter_FirstCase()
        {
            Circle worker = new Circle(1);
            double result = worker.Caculate();
            Assert.AreEqual(result, 6.28);
        }

  另:你上传的华语文件不举行如上命名修改或以服务器上不要乱码,如果你一味是为了在浏览的时候吃编辑器正确显示此类文件称,那你可以发如下修改,打开:editor\filemanager\browser\default\connectors\php\util.php,修改ConvertToXmlAttribute函数,将:
  [code]return utf8_encode( htmlspecialchars( $value ) )
;[/code]
  修改为:
  [code]return iconv( “GBK”, “UTF-8”, htmlspecialchars($value) )
;[/code]
  这样,你的编辑器应该就会对显示中文名,不过肯定建议你改改及污染文书之命名,中文名或在困难。

夫略带例子就是了结了,可以扣押下,我们透过TDD的措施,根据Test
Case来设计代码逻辑,可以要我们的逻辑没有任何过度设计,而且这么的法子如UnitTest的代码覆盖率很高。

  文件浏览上传修改:
  打开editor\filemanager\browser\default\connectors\php\config.php文件,找到:
  $Config[‘Enabled’] = false
;(第28实践)将false改吗true,即许上传。
  $Config[‘UserFilesPath’] = ‘/userfiles/’
;(第32行)为定义及传目录,可依据自己情况展开改动,我用其改变吧upload目录。

        public double Caculate()
        {
            if (_r < 0)
            {
                throw new ArgumentException();
            }
            return _r * _pi;
        }

  3、editor\skins界面目录:默认带有三独界面(default:默认界面,加载速度相对比快;office2003:相对pp的界面,不过速度确实如舒缓些;silver:银白色界面,加载速度为相对比较快),可以自行决定是否去其中一两独。

老鸟:我形容一个类Circle,写好它的构造函数。

  4、editor\filemanager\browser\default\connectors目录:存放编辑器所支撑之Web动态语言,我们以php为条例所以保留php目录,test.html文件可以扶持您查有语言下之上传设置等(具体上传设置本身将以后边的配置作比较详细讲解),可以自行决定是否去。

这般简单栽Case就都经过了。

  到此精简完成,你见面发觉整整编辑器确实“瘦身”不少,呵呵

鸟儿:so easy,分分钟搞定。

  当成功以上设置后,fckeditor已经能满足我们的平常以需要,不过我们倒同时发现一个题目,那便是上传后底文本我们却无法去,这样会要网站上的垃圾文件(主要是图形)日益增多,那我们是不是会由此对编辑器的修改能比较有利之田间管理删除无用上传文书也?我们不难想到fckeditor的浏览文件功能,对拖欠意义拓展适当的扩充,对普通所上传的公文进行田间管理就是转换得相当简单易行了,那咱们赶紧动手吧:
  增加该功能我们修改的页面也:fckeditor\editor\filemanager\browser\default\frmresourceslist.html

  至此,我于fckeditor的修改基本就,当然这些改动只是针对fckeditor修改以的抛砖引玉,给大家一个参照,希望对初学者有所助。后面对编辑器的修改过程比匆忙,并未修改一步成功同样步文档书写,所以,难免有着失误,望见谅,如果你发啊问题和错发现欢迎联系我互相讨论,共同进步,呵呵:lol。

核心配备:

另附:
布文件(fckconfig.js)中重要性安排型如下,根据自己看事态部署:
FCKConfig.CustomConfigurationsPath = ” ; // 自定义配置文件路径和称
FCKConfig.EditorAreaCSS = FCKConfig.BasePath +
‘css/fck_editorarea.css’; // 编辑区的样式表文件
FCKConfig.BaseHref = ”; // 相对链接的军事基地址
FCKConfig.Debug = true/false; //
是否开启调试功能,当调用FCKDebug.Output()时,会以调试窗中输出内容
FCKConfig.SkinPath = FCKConfig.BasePath + ‘skins/default/’; //
设置皮肤
FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言
FCKConfig.DefaultLanguage = ‘zh-cn’ ; // 设置默认语言
FCKConfig.ContentLangDirection = ‘ltr/rtr’; //
默认文字方向,ltr左,rtr右
FCKConfig.FillEmptyBlocks = true/false ; //
使用此效应,可以拿拖欠的块级元素用空格来替代
FCKConfig.FormatSource = true/false; //
切换到代码视图时,是否自动格式化代码
FCKConfig.FormatOutput = true/false; // 当输出内容常常是不是自动格式化代码
FCKConfig.FormatIndentator = “”; // 当在“源码格式”下缩进代码应用的字符
FCKConfig.GeckoUseSPAN = true/false; //
是否允许SPAN标记代替B,I,U标记
FCKConfig.StartupFocus = true/false; // 开启时是不是FOCUS到编辑器
FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本
FCKConfig.ForceSimpleAmpersand = true/false; //
是否不把&符号转换为XML实体
FCKConfig.TabSpaces = 0/1; // TAB是否管用
FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数
FCKConfig.ShowBorders = true/false; // 是否联结边框
FCKConfig.ToolbarStartExpanded = true/false; //
页面载入时,工具栏是否开展,点“展开工具栏”时才起
FCKConfig.ToolBarCanCollapse = true/false; // 是否允许进行折叠工具栏
FCKConfig.ToolbarSets = object ; //
编辑器的家伙栏,可以自行定义,删减,可参看已在工具栏
FCKConfig.EnterMode = ‘p’; // 编辑器中直接回车,在代码中变化,可挑选为p |
div | br
FCKConfig.ShiftEnterMode = ‘br’; //
编辑器中Shift+回车,在代码中生成,可挑选为p | div | br
FCKConfig.ContextMenu = 字符串数组; // 右键菜单的情
FCKConfig.FontColors = “”; // 文字颜色列表
FCKConfig.FontNames = “”; // 字体列表
FCKConfig.FontSizes = “”; // 字号列表
FCKConfig.FontFormats = “”; // 文字格式列表
FCKConfig.StylesXmlPath = “”; // CSS样式列表的XML文件的职
FCKConfig.TemplatesXmlPath = “”; // 模版的XML文件位置
FCKConfig.SpellChecker = “ieSpell/Spellerpages”; // 拼写检查器
FCKConfig.IeSpellDownloadUrl = “”; // 下充斥拼写检查器的网址
FCKConfig.SmileyPath = FCKConfig.BasePath + ‘images/smiley/msn/’; //
表情文件存放路径
FCKConfig.SmileyImages = ”; // 表情文件名称列表,具体参考默认设置
FCKConfig.SmileyColumns = 8; // 表情窗口展示表情列数
FCKConfig.SmileyWindowWidth = 320; //
表情窗口亮涨幅,此窗口会因表情文件的转而发调整
FCKConfig.SmileyWindowHeight = 240; //
表情窗口亮高度,此窗口会以表情文件的转移而作调整
FCKConfig.FullPage = true/false; //
是否同意编辑整个HTML文件,还是独同意编辑BODY间的始末

      正因此编辑器是支持多语言的,所以首先我们本着利用对那举行相应的冗余文件去。  
  1、临时文件及文件夹去:从根目录下开始去所有为“_”开头的公文以及文件夹,因为他们为临时文件和文书夹。删除这类临时文件及文件夹后,我们还要去一些彻底目录下之多余文件,根目录下我们一味保留fckconfig.js(配置文件)、fckeditor.js(js方式调用文件)、fckeditor.php(php方式调用文件,新本子通过该公文统一调动用php4或者php5的调用文件,fckeditor_php4.php/fckeditor_php5.php你可以依据自己服务器使用的情事去,建议还保存)、fckeditor_php4.php(php4的调用文件)、fckeditor_php5.php(php5的调用文件)、fckstyles.xml(样式)、fcktemplates.xml(模板)文件以及editor文件夹。
  
  2、editor\lang目录:存放的凡多语言配置文件,因为咱们只有恐因此到en和zh-cn(简体中文)所以,根据自己的抉择,我删掉其他的言语配置文件。

  对js文件的配备到是已做到,下面我们进行有限单php文件于上传方面的安:

  1、默认语言
  打开fckconfig.js文件([color=Red]瞩目是文件是utf-8编码哦[/color]),找到FCKConfig.AutoDetectLanguage
= true
;(第56行)此词作用呢自动检测语言,默认为true,即意味着编辑器会因系统语言自动检测加载相应的言语,我们拿其改变也false,不深受该检测,然后以FCKConfig.DefaultLanguage
= ‘en’;(编辑器默认语言,第57行)改吧简体中文”zh-cn”。

  到这达成污染基本配置都形成,整个编辑器最中心的布置为都结了,你可经过下列代码对其开展调用测试了::D
  [php]<?php
  include(“/fckeditor/fckeditor.php”); //
包含fckeditor类,fckeditor目录放在网站到底目录下
  $BasePath = “/fckeditor/”; // 编辑器路径
  $oFCKeditor = new FCKeditor(‘jayliao’); //
创建一个fckeditor对象,表单的名称为jayliao
  $oFCKeditor->BasePath = $BasePath;
  $oFCKeditor->Value = ‘test’; // 设置表单初始值
  
  // 还可设置以下部分(“=”包含有),并非要:
  //==================================================================================//
  $oFCKeditor->Width = ‘100%’; //
编辑器宽度,类中产生默认值,如果无思量修改只是管这个桩
  $oFCKeditor->Height= ‘300’; //
同width,此处为高$oFCKeditor->ToolbarSet
  $oFCKeditor->ToolbarSet = ‘JayLiao’; //
默认编辑器工具栏有Basic(基本工具)和Default(所有工具)两种选择,JayLiao为自身于定义之家伙条,如发生需要而参照后文中之认证新建或改工具条
  $oFCKeditor->Config[‘SkinPath’] =
‘/fckeditor/editor/skins/office2003/’; // 设置编辑器皮肤
  //==================================================================================//
  
  $oFCKeditor->Create(); // 调用接近吃智,必须
  ?>[/php]

  赶紧测试一下吧,是不是殊感动,终于得见见这强大的编辑器了,呵呵:lol。不过,马上你晤面意识以高达传以中文命名的文书时见面面世乱码:'(,这到底是怎么回事呢?呵呵,不怕,下面我们即便对准那进展简短修改问题迅速便化解之:
  我们呢上传文件为时日+随机数作为那个新名字,打开:editor\filemanager\upload\php\upload.php,找到:
  [php]$sFileName = $oFile[‘name’] ;[/php]
  替换为:
  [php]  $sFileName = $oFile[‘name’] ;
  $sOriginalFileName = $sFileName ;
  $sExtension = substr( $sFileName, ( strrpos($sFileName, ‘.’) + 1 ) )
;
  $sExtension = strtolower( $sExtension ) ;
  $sFileName = date(“YmdHis”).rand(100,
200).”.”.$sExtension;[/php]
  哈哈,你见面发现“快速达标传”的乱码已经缓解,就这样简单,高兴之衍无设忘记了,同样,还索要改“浏览”的上传,修改文件:editor\filemanager\browser\default\connectors\php\commands.php,修改内容以及齐。

    var div= document.getElementById(“showFile”);
    div.content = “”;
    div.style.position = “absolute”;
    div.content += “<table width=’256′ border=’0′ cellpadding=’3′
cellspacing=’1′ bgcolor=’#737357′><tbody><tr><td
height=’23’ align=’left’ bgcolor=’#C7C78F’><table width=’100%’
height=’100%’ border=’0′ cellpadding=’0′
cellspacing=’0′><tbody><tr><td
width=’47%’> <a href=’javascript:’
onClick=’hiddenDiv();’><font color=’#000000′
style=’text-decoration:none;’>关闭</font></a></td><td
width=’53%’ align=’right’><a href=’javascript:’
onclick=’delFile(\”” + fileUrl + “\”);’><font color=’#000000′
style=’text-decoration:none;’>删除</font></a> </td></tr></tbody></table></td></tr>”;
    if (suffix==’gif’ || suffix==”jpg” || suffix==”jpeg” ||
suffix==”bmp” || suffix==”png”)
    {
       div.content += “<tr><td align=’center’
bgcolor=’#C7C78F’><img src='” + fileUrl + “‘
onload=’if(this.width>250) this.width=250′
style=’margin:3px;’></td></tr>”;
    }
    else
    {
       div.content += “<tr><td height=’35’
align=’center’
bgcolor=’#C7C78F’><strong>该种不能够预览</strong></td></tr>”;
    }
    div.content += “</tbody></table>”;
    div.innerHTML = div.content;
    div.style.display = “”;
    div.style.top = event.y+document.body.scrollTop+10;
    div.style.left = event.x+document.body.scrollLeft+30;
  }
  // 隐藏文件显示层
  function hiddenDiv()
  {
    var div= document.getElementById(“showFile”);
    div.style.display =”none”;
  }
  // 在iframe中剔除文件
  function delFile( fileUrl )
  {
    if(!confirm(‘你确定删除该公文?’))
    return;
    var url = ‘/fckeditor/del_file.php?filePath=’+ fileUrl;
    window.open(url, “iframe_del”);
    Refresh();
  }
  ///*}}}*/

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website