2007年12月5日星期三

Koobi Pro 6.2 and Koobi Pro 6.25 以及相关汉化

前面说到要将koobi改进为多语言安装接口, 一直跳票至今. 正在这个时候, Dream4又发布了6.25版本. 主要是对商店模块作了改进. 我从overdoze.ru获得了源码, 并逐一进行了编码转换和汉化. 我把它叫做多语言版(你完全可以叫它汉化版, UTF-8版, 国际版, 阿猫阿狗版, 随你高兴, 反正就是那么回事). 主要修改是(6.2版和6.25版):

1. 增加简体中文语言包和英语语言包
2. 安装过程改为多语言可选安装
3. 后台语言增加了几条条目
4. 全部程序改为UTF-8国际编码(相应的,6.2至6.25的升级包也修改了一份UTF-8版)
5. 部分国家选项的默认值改为中国.部分国家选项中原来缺少中国的增加了中国.
5. 原程序内核不作丝毫改动.

分享: Koobi Pro 6.2 原版, Koobi Pro 6.2 多语言版(UTF-8), Koobi Pro 6.25 原版, Koobi Pro 6.25 多语言版(UTF-8) , 6.2-6.25升级包(原版), 6.2-6.25升级包(UTF-8).

玩得开心! 欢迎交流.

[2008-05-22更新, koobi pro 6.25,
一, system/shopthumb.php中修改了几行代码. 我发现原代码在windows系统下无法显示缩略图;
二, inc/secure/secure.php 注释掉了引入init.php的一行. 我发现引入init.php时在windows系统下无法显示注册验证码, 注释掉反而正常. 注释掉这一行后对其它使用secure.php的部分测试, 工作正常]

2007年10月9日星期二

koobi pro V6.2 的汉化语言包

koobi是德国厂商开发的一款CMS系统, 我试过比较joomla, koobi,phpcms,drupal, xoops,等等等等, 并差不多把opensourcecms.com上收录的系统都比较了一遍, 就个人而言, 认为koobi最实用. joomla功能强大,扩展性强, 但, 别忘了, joomla小组以一年时间开发了两万行代码为荣. 确实了不起, 但这两万行代码要让用户再投入到二次开发...个人认为很难有时间和耐心去修改为合适自己的系统. 所以, 不是说joomla不好,而是joomla最大的优点恰恰在我这里成了最大的弱点.
koobi则恰好把joomla的优点变成缺点把joomla的缺点变成优点. koobi扩展性不强, 并且没有多语言化. 一是把常用模块如文章内容管理,产品展示管理,图片相册管理, 在线商店,友情链接,论坛,留言本,用户管理等等模块都做进去了,并且各模块功能做到了尽可能好(系统内部各模块开关,但不可去除模块), 二是代码很好理解,便于二次开发,模板接口方便易用.,三是基本没有第三方插件支持,因为是商业程序.
ok, 敦优敦劣,这不是重点,各取所需. koobi是德语开发, 并且没有将安装过程多语言化. 要安装其它语种只能系统安装完成后再导入语言包.
昨晚抽空把中文\英文语言包完成了, 前台共1516条, 后台共1831条, 在这里下载.
并且我把安装程序加入了多语言安装接口, 还有一些多语种字符过滤的工作没有完成. 不日将把完整的多语言化koobi pro 6.2 释出.

2006年10月10日星期二

php生成缩略图兼容各GD版函数

function ImageResize($srcFile,$toW,$toH,$toFile="")
{
//$srcFile :源文件路径及文件名
//$toW :目标文件宽度
//$toH :目标文件高度
//$toFile :目标文件路径及文件名

if($toFile==""){ $toFile = $srcFile; }
$info = "";
$data = GetImageSize($srcFile,$info);

switch ($data[2])
{
case 1:
if(!function_exists("imagecreatefromgif")){
echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!<a href='javascript:go(-1);'>返回</a>";
exit();
}
$im = ImageCreateFromGIF($srcFile);
break;

case 2:
if(!function_exists("imagecreatefromjpeg")){
echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!<a href='javascript:go(-1);'>返回</a>";
exit();
}
$im = ImageCreateFromJpeg($srcFile);
break;

case 3:
$im = ImageCreateFromPNG($srcFile);
break;
}
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$toWH=$toW/$toH;
$srcWH=$srcW/$srcH;
if($toWH<=$srcWH){
$ftoW=$toW;
$ftoH=$ftoW*($srcH/$srcW);
}
else{
$ftoH=$toH;
$ftoW=$ftoH*($srcW/$srcH);
}
if($srcW>$toW$srcH>$toH)
{
if(function_exists("imagecreatetruecolor")){
@$ni = ImageCreateTrueColor($ftoW,$ftoH);
if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
else{
$ni=ImageCreate($ftoW,$ftoH);
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
}
}else{
$ni=ImageCreate($ftoW,$ftoH);
ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
}
if(function_exists('imagejpeg')) ImageJpeg($ni,$toFile);
else ImagePNG($ni,$toFile);
ImageDestroy($ni);
}
ImageDestroy($im);
}

$uid = md5($thumb_w . $h . $q) . '_' . $row->path;
if(file_exists(BASEDIR . '/cache/'.$uid))
{
readfile(BASEDIR . '/cache/'.$uid);
exit;
}

ImageResize("./test.jpg","100","75","test_thumb.jpg");

注:这不是我写的。