WordPress » 2005 » 九月 imag1
 
 
编辑系统模板的小工具

编辑系统模板的小工具

xoops使用smarty模板templates,完成内容和表现的分离,模板是控制表现的主要东东。我们在修改模板的时候遇到了一些麻烦,特别是系统模板。系统模板是xoops系统安装时安装的模板,如userinfo.php使用的模板,没有现成的方法更新。我们最初调试的时候使用了sql指令修改,由于是美工在修改,于是我总被打断工作去修改模板,于是我写了一个小程序来修改模板。

这个小程序被放在某个模块下,使用的时候浏览 http:// XOOPS/modules/…/tpledit.php?id=12 ,后面id就是模板的id
模板文件的数据库表是tplfile,其中tpl_file字段是模板文件名,tpl_id字段就是模板id,模板id就是传送给这个程序的参数。

/*
* Created on 2005-5-6
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/

include “../../mainfile.php”;

include XOOPS_ROOT_PATH.”/header.php”;
include_once XOOPS_ROOT_PATH.”/kernel/tplfile.php”;
include_once XOOPS_ROOT_PATH.”/class/xoopsformloader.php”;

if (!$xoopsUser) {
redirect_header(’index.php’, 3, “您没有登陆,无法访问”);
exit ();
}

if ($xoopsUser->uid() == 1) {
$tplid = 15;
if (isset ($_GET[’id’])) {

$tplid = $_GET[’id’];
}
$op = “1″;
if (isset ($_POST)) {
foreach ($_POST as $k => $v) {
${ $k } = $v;
if ($k == “update”) {
$op = 2;
}
//echo $k.” “.$v.”
“;

}
}

$tplhandle = new XoopsTplfileHandler();
$db = & Database :: getInstance();
$tplhandle->XoopsObjectHandler($db);
if (!$tpl = $tplhandle->get($tplid)) {
redirect_header(’../../index.php’, 3, “模板不存在,检查模板ID”);
exit ();
}

$tplhandle->loadSource($tpl);
$tplsource = $tpl->getVar(’tpl_source’);

//var_dump($tpl);
//echo $tplflietxt;

//echo “hi
“;
//echo $op;
if ($op == 1) {

$tplform = new XoopsThemeForm(’模板编辑’, ‘tpl edit’, ‘tpledit.php’, ‘POST’);
$tplform->addElement(new XoopsFormLabel(”tpl ID”, $tplid));
$tplform->addElement(new XoopsFormTextArea(”tpl file”, “tpl_source”, $tplsource), true);
$tplform->addElement(new XoopsFormButton(’更新’, ‘update’, ‘update’, ’submit’));

$id_hidden = new XoopsFormHidden(’tplid’, $tplid);

$tplform->addElement($id_hidden);

//$tplform->assign($xoopsTpl);

$tplform->display();
include XOOPS_ROOT_PATH.”/footer.php”;
}

if ($op == 2) {

$myts = & MyTextSanitizer :: getInstance();
$tpl_source = $myts->stripSlashesGPC(trim($tpl_source));

//echo $tpl_source;
$tpl->setVar(’tpl_source’, $tpl_source);
$tplhandle->forceUpdate($tpl);

redirect_header(”tpledit.php”, 3, ‘执行了模板的更新’);

}

include XOOPS_ROOT_PATH.”/footer.php”;

} else {

redirect_header(”../../index.php”, 30, ‘您没有权限’);

}
?>

.

xoops 开发手记

已经基于XOOPS开发了一个网站, www.etworld.cn ,自己写了一个模块,调试了2个,对xoops算入门了。
现在,第二个和第三个已经在开发中,我将慢慢的写一些心得和疑问,希望和大家共同提高。

Opera is going free!

Opera is going free!

这消息很振奋人心么?
到处都在讨论,在digg上是top stories的Top 1
我没怎么感冒,甚而有些许B4

机子上一直装着opera,当然是免费试用版,纯粹作开发调试用。
在opera 10周年庆,趁他们免费施舍的时候,紧赶慢赶注册了正式版
过了这一阵子,它忽然从良了,不卖了 — 是不是觉得被晃了一下子啊?

还有正在进行的WordPress的Com化
你要com就com,要立山头就立山头
跟着Gmail, 偶苦之类,学那个炒作的邀请模式,不觉得俗吗?
作为一个WP的追随者、大力鼓吹者、边缘贡献者,我背了恶俗的名声去WP.com申请邀请名额,没人理睬
苦啊,只好在这里作看葡萄的狐狸

还有,我们的Xoops,也曾经被人以”免费注册版”的名义发布过
真是大实话!

最后,推荐一下我的英文BLOG

Re: 修改WP后台统一使用前台风格,但编码存在问题

编码的处理比较复杂

我整合WP的原则是尽量保证WP本身的独立性,所以后台基本没有修改
如果特别需要修改后台,等我找时间看看

更多…

我认为D.J.老兄赋wp模组任选风格之举,应该成为模组开发者的楷模,这会让xoops更加灵活多样。

让wp后台使用前台相同风格很简单,如上所述。。。

至于编码问题,经多次试验,有可能是zh_CN.mo文件中规定了utf-8编码所致。这个文件我改不了:任何改动都会变成英文显示,我使用苹果机,不知pc机是否也会这样?

zh_CN.mo文件中有三种语言:第一种乱码,使用utf-8编码打开也是乱的,第二是英文,第三是中文,去掉一和中文,仅保留英文,则浏览器在gb2312编码时后台的任何操作,包括中文输入都很正常。。。

D.J.老兄如有时间是否将zh_CN.mo转为gb2312文件测试一下?谢谢!

这个blog很强的说

这个wordpress很不错啊
可惜我的2.013老是升级不了2.2….