电子期刊协同编辑系统设计

  同其它OA系统类似,电子期刊编辑系统的设计目的是为了减少网络交流带来的不便,协调各部门的进度,提高工作效率,从而将编辑从枯燥的排版、美工中解脱出来,把更多的精力投入到期刊内容的规划中去。
  下面笔者将从几个方面来阐述编辑系统的相关设计思想。

PHP5与Sqlite运用于期刊编辑系统的可行性分析

1. 电子期刊编辑系统的特性分析
1. 数据安全性:对于电子期刊编辑部来说,数据的安全是最重要的,它是整个部门脑力劳动的结晶,因而,电子期刊编辑系统的设计需要易于数据的移植和备份。
2. 代码易用性:编辑部成员并非都是电脑高手,一套便于安装维护的代码会更利于日常工作的进行。
3. 平台无关性:我们希望代码是平台无关的。费力腾出一台机器安装这套代码显然没有必要,只要硬件稳定,无论什么OS都能跑的很好,这才是省心的系统。

2. PHP5与Sqlite有利于电子期刊编辑系统的一些特点
1. Sqlite的数据库以文件形式独立存放,管理员可以使用ftp、rcp等方式异地备份。
2. 管理员只需懂得配置apache+php5、IIS+php5等组合之一,并将代码拷贝到一个目录下,即可完成安装。

保存与查看编辑历史

  大家知道在Unix/Linux下有一个命令叫做diff,它可以表现出两个文本文件间的差异,并用规范化的格式输出结果。人们用它来制作patch,比较文件,一些协同开发平台如也广泛应用了这样的思想。
  将编辑历史用diff表现的好处是节约大量硬盘资源,下面我们借鉴pmwiki(一套基于php技术的wiki系统)的一些设计,介绍如何保存一篇文稿的编辑历史。
  pmwiki将每篇文章保存为一个单独的文件,各个历史版本与前一个版本的差异就以特定的格式附加在文件的末尾,我们期刊编辑系统则可以设计一个diff表来存储编辑历史,这个表应至少包含“稿件id”、“改动时间”、“diff内容”几个字段。
  最关键的一点是:如何得到diff的内容呢?pmwiki是这样做的:
//$tempold和$tempnew是文章改动前后的两个版本
$SysDiffCmd = ‘/usr/bin/diff’;
//…
$diff = ”;
$diff_handle = popen(“$SysDiffCmd $tempold $tempnew”,”r”);
if ($diff_handle) {
while (!feof($diff_handle)) { $diff .= fread($diff_handle,1024); }
pclose($diff_handle);
}
@unlink($tempold); @unlink($tempnew);
return $diff;

  其实就是利用系统的diff程序,附加管道方式读取。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s