1001game首页上线的问题总结

23号,17:30拿到静态页面。

套版思路:在sysarticle(phparticle)/admin/functions.php中添加一段读取数据的函数

function get_frontpage_articles($sortid,$limitnum)
{
global
$DB,$db_prefix,$phparticleurl,$lastupdatenum;
global $style; $query = "SELECT articleid,article.title,views,date
FROM ".$db_prefix."article AS
article
LEFT JOIN ".$db_prefix."sort AS
sort
ON
article.sortid=sort.sortid
WHERE sort.showinlast=1 AND article.visible=1 AND
sort.sortid=".$sortid."
ORDER BY date DESC LIMIT $limitnum"; switch
($sortid){ case "6"
: $templates =
"fpfirstnewarticlelistbit"; break; case
"7" : $templates =
"fpfirstnewarticlelistbit"; break; case
"8" : $templates =
"fpsecondnewarticlelistbit"; break; case
"3" : $templates =
"fpsecondnewarticlelistbit"; break; case
"9" : $templates =
"fpthirdnewarticlelistbit"; break; case
"10" : $templates =
"fpthirdnewarticlelistbit"; break; default
: $templates =
"fpfirstnewarticlelistbit"; break;
}
$articles =
$DB->query($query); //$numrows =
$DB->num_rows($articles);
while ($article =
$DB->fetch_array($articles)){
$article[date] =
date("Y-m-d",$article[date]); $article[title] =
length_ctrl($article[title],34);
//eval("\$newarticlelistbit .=
\"".gettemplate('fpfirstnewarticlelistbit')."\";"); eval("\$newarticlelistbit
.=
\"".gettemplate($templates)."\";");
}
//eval("\$newarticlelist = \"".gettemplate('newarticlelist')."\";");
return
$newarticlelistbit; //return $numrows;
}


由于index.php由3块内容栏目构成,所以各写了一个模版页面,以上程序在sysarticle/下运行正常,可以读出所需数据。

问题1:当将测试页放入根目录下,出现错误。根据提示,意为不能够包含所需要的文件。

解决方案:分析测试文件,发现需要包含一个名为sysarticle/global.php的文件,而在这个文件中,又包含了sysarticle/下各层目录的文件。当该文件被上层目录调用时,其中包含的各文件路径位置发生改变,所以不能够被包含。于是我根据页面调用文件的内容重新定义了一个名为global2.php的文件,将我的测试页面包含这张global2.php,同时将global2.php里涉及路径调用的函数去处,结果报错。原因应该是调用不到一些被删的函数。于是我只能将首页的位置放置在sysarticle/目录中,这样页面显示正常无误。

问题2:我该如何将测试页上移到根目录下呢?

解决方案:我试图用include函数去包含sysaritcle/下的测试页,结果还是文件包含路径错误。突然想的前几天试过的通过Ajax中XMLHttpRequest()来读取页面的用例。所以将页面稍做修改,可以正常显示。

24号,9:30继续套版工作,

问题3:当将图片以及CSS文件都放入正常位置后,发现Javascript的函数调用不能正常显示。

解决方案:内嵌在页面中的Javascript函数可以正常工作,而从外部调用的JS文件,则完全不能工作。将JS文件中的代码复制到页面中,通过XMLHttpRequest()读取,IE死机。本想尝试将这段JS做成一张页面,然后用include()来包含这样页面,未成。后来想干脆将sysarticle/下的测试页移至跟目录,将包含函数去除,直接包含静态页面,而静态页面则有一个在sysarticle/下工作的脚本完成生成以及更新工作。通过如下代码:

for($i=1;$i<=count($num); $i+=1){ $filename = "test/test".$i.".html"; $handle = fopen ($filename,"w"); //打开文件指针,创建文件 /* 检查文件是否被创建且可写 */ if (!is_writable ($filename)){ die ("文件:".$filename."不可写,请检查其属性后重试!"); } if (!fwrite ($handle,$num[$i])){ //将信息写入文件 die ("生成文件".$filename."失败!"); } fclose ($handle); //关闭指针 echo "创建文件".$filename."成功!"; }


测试后,可以实现。

No comments: