9月4日工作日志
使用PHP读取Linux下目录结构,并显示在网页中,单击下载时路径包含中文字符时操作失败,怀疑为编码问题,故需在php中是
用urlencode函数来编码URL字符串
下面是部分程序代码:
$output->fileArray = array();
$filePath = SGL_WEB_ROOT . ‘/download/’;
if ($handle = opendir($filePath))
{
while (false !== ($file = readdir($handle)))
{
if ($file != “.” && $file != “..")
{
$code = mb_detect_encoding($file);
if ($code == ‘UTF-8′)
{
$newFile = mb_convert_encoding($file, ‘UTF-8′, ‘GB2312′);
}
$output->fileArray[] = array(’file’ => $newFile, ‘download’=>urlencode($file));
}
}
closedir($handle);
}
模板中显示下载的数据:
<table>
{foreach:fileArray,k,v}
<tr>
<td>{v[file]}</td>
<td><a href="{webRoot}/download/{v[download]}">下载</td>
</tr>
{end:}
<table>
Seagull对Oracle的支持
目前项目采用Seagull0.6.1精简版本,
由于精简版只提供对MySQL的支持,在安装前需要:
1. 拷贝完整版中的block,default,navigation,user这四个模块覆盖精简版modules下的文件;
2. 删除seagull/MINIMAL_INSTALL.txt文件,如果存在MINIMAL_INSTALL.txt文件,安装Seagull时,数据库类型不会出现oci8
在Seagull在对Oracle支持上有点错误,我做了以下修改使之能够正常运行.
用途: 设置存取ORACLE的字符集为utf8,这样oracle可正常显示中文
文件路径:seagull/lib/pear/DB/oci8.php
行数: 236
原代码:
$char = empty($dsn[’charset’]) ? null : $dsn[’charset’];
修改后:
$char = empty($dsn[’charset’]) ? ‘utf8′ : $dsn[’charset’];
4月4日工作日志
应Tom的要求按他给的模板写出请购系统的功能说明.修改成尧昨天提交到bugfree上的问题,修改的时候还存在些疑问,明天再找TOM确认一下.
Seagull,如何在自已模块中使用自定义的CSS.
例如,sample模块需要用到自定义的CSS, 这时只需在seagull/www/theme/default/css/目录下建一个名为sample.php的文件就可以了(注意:文件名一定要与模块名一样,且文件的格式为.php),剩下的事就交给Seagull了.
- 在header.html(位于default模块下)中CSS的调用:
<link rel="stylesheet” type="text/css” media="screen” href="{webRoot}/themes/{theme}/css/style.php?navStylesheet={conf[navigation][stylesheet]}&moduleName={moduleName}” />
以上这行所包含的CSS有:Seagull的核心样式,导航栏的样式,被调用模块的样式.
- style.php文件中代码实现的主要部分如下:
…
$frmNavStyleSheet = @$_REQUEST[’navStylesheet’];
if (is_file($navStyleSheet = realpath("./$frmNavStyleSheet.nav.php"))) {
$modTimes[’navigation’] = filemtime($navStyleSheet);
}
$frmModuleName = @$_REQUEST[’moduleName’];
if (is_file($moduleName = realpath("./$frmModuleName.php"))) {
$modTimes[’module’] = filemtime($moduleName);
}
…
…
require_once ‘./vars.php’; //Seagull默认的,核心的样式
require_once ‘./core.php’; //Seagull默认的,核心的样式
if (isset($modTimes[’navigation’])) { //导航栏样式
require_once realpath("./$frmNavStyleSheet.nav.php");
}
if (isset($modTimes[’module’])) { //被调用模块的样式
require_once realpath("./$frmModuleName.php");
}
…
:: Next Page >>