当前位置: 首页 > 图文教程 > 网页制作 > CMS技巧 > 给zblog加上运行代码功能

CMS技巧
Zblog帮助:模板文件与模板标签
Joomla教程:模板覆盖方式修改系统输出
Joomla教程:为Joomla插件创建语言包
Joomla教程:文章页面中显示指定的模块
Joomla教程:控制Section中的分类列表页面的显示方式
Joomla教程:mod-rewrite是否真的被开启
在Joomla自定义HTML模块组合使用Google小工具
Joomla教程:本地搭建的Joomla站点发送邮件
Joomla教程:在Who is online模块中显示用户名
dedecms教程:栏目页面转换为单独页面
CMS可用性测评:帮助找到适合自己的内容管理系统
Joomla中文教程:构建多重站点
Joomla教程:在templateDetails.xml中添加语言文件声明
Joomla教程:为页面和模块添加独立的自定义Class
Joomla教程:为“read more”链接添加对应的文章标题
Joomla教程:查看并修改模板的CSS
Joomla中文教程:创建并使用插件对文章内容进行修改
Joomla教程:网站首页第一次加载时播放一次Flash动画
Joomla教程:禁止未分类文章被站内搜索
Joomla教程:去掉分类文章列表中的文章序号

CMS技巧 中的 给zblog加上运行代码功能


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-03   浏览: 47 ::
收藏到网摘: n/a

给zblog添加上“运行代码”的功能,这是“密陀僧”修改z-blog源码,给z-bog增添的新功能。这个方法出来很久了,我现在才加上还不晚吧,因为以后可能要贴出一些与时间相关的代码,所以用上这个“运行代码”的功能,是最为方便的了。

下面转一下方法,相关讨论参见“z-blog论坛”。如果你按如下步骤设置完毕,调用这个功能的方法是,在文章编辑区中加入" [ code ]  你的代码 [ /code ]",因为这是是演示,所以“中括号”与code之间留了空格,你实际用的时候,请去掉空格。

这个调用方法,是在请教Visc之后,才知道的,有时离成功就差这一步,在此感谢Visc的指点。

1、在script/common.js里面增加

//*********************************************************
// 目的: 代码运行框
// 输入: obj
// 返回:
//*********************************************************
function copycode(obj) {
var rng = document.body.createTextRange();
var obj1=document.getElementById(obj)
rng.moveToElementText(obj1);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}

function runCode(obj) {
var winname = window.open('', "_blank", '');
   var obj1=document.getElementById(obj)
winname.document.open('text/html', 'replace');
    winname.opener = null // 防止恶意修改
winname.document.writeln(obj1.value);
winname.document.close();
}
function saveCode(obj) {
var winname = window.open('', '_blank', 'top=10000');
   var obj1=document.getElementById(obj)
winname.document.open('text/html', 'replace');
winname.document.writeln(obj1.value);
winname.document.execCommand('saveas','','code.htm');
winname.close();
}


2、func/c_function.asp,查找Function TransferHTML(source,para),把

If Instr(para,"[space]")>0 Then source=Replace(source," "," ")

注释掉。

找到

objRegExp.Pattern="(\[CODE\])(.+?)(\[\/CODE\])"
      strContent=objRegExp.Replace(strContent,"<textarea class=""code"" name=""runcode0"" rows=""10"" cols=""50"">$2</textarea>")

修改为

Dim codeNum,rndStr

codeNum=0
Randomize
rndStr=int(rnd*100)
  
strContent=objRegExp.Replace(strContent,"<textarea class=""code"" name=""code"&rndStr&codeNum&""" id=""code"&rndStr&codeNum&""" rows=""10"" cols=""50"">$2</textarea><br /><input type=""button"" value=""运行代码"" onclick=""runCode('code"&rndStr&codeNum&"')""> <input type=""button"" value=""复制代码"" onclick=""copycode('code"&rndStr&codeNum&"')""> <input type=""button"" value=""另存代码"" onclick=""saveCode('code"&rndStr&codeNum&"')""> 提示:您可以先修改部分代码再运行")
codeNum=codeNum+1


关于这个rndStr,可以用文章id代替。但是可能产生重复代码框id。保险起见,还是使用了随机函数。

3、重建所有页面。
 

4、最后,试一下效果,因为在“可视编辑”状态中,编辑器不知给代码做了什么处理,导致不能运行,所以建议一些复杂代码,还是用“UBB编辑”保险。

javascript 能获得汉字拼音的第一个字母 


提示:您可以先修改部分代码再运行