歡迎光臨, 訪客. 請先 登入註冊一個帳號.
四月 29, 2024, 05:12:13 上午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  核心補強  |  为分类加上图标的问题 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 为分类加上图标的问题  (閱讀 10432 次)
nanguaxp
新手見習
*
文章: 13


檢視個人資料
« 於: 五月 18, 2006, 02:07:01 下午 »

刚下了一个新的LIFETYPE1。03用的挺舒服的,
以前做JAVA开发,lifetype的MVC模式真的是不错,虽然我不会PHP,但很多DAO的代码都能看懂,所以就想自己加些功能。
看到一些BLOG上与给分类添家家图标的功能,如下面这个网站
http://zhuoqun.net/blog/dreamer/default.asp?cateID=6

所以也想在lifetype中加上此功能,在数据库的articleCategory表中增加了一个字段icon,用来存放该分类的图片,这里手动添加了一条数据,打算做完显示后再去做后台添加分类时候选择图标的功能,,修改了如下代码
class / dao / Articlecategory.class.php中
程式碼:

var $_icon;

//新增加的功能,选择文章分类所带的小图标 _ Start

function setIcon( $newIcon ){
$this->_icon = $newIcon;
}
function getIcon(){
return $this->_icon;
}

程式碼:
//将原来的构造函数给注释掉,新加了icon相关的一个构造函数

function ArticleCategory( $name, $url, $blogId, $inMainPage,$description = "", $numArticles = 0, $properties = Array(), $id = -1, $lastModification=null, $parentId = null,$icon)
{
$this->DbObject();
$this->_name = $name;
            $this->_url = $url;
$this->_id = $id;
            $this->_blogId = $blogId;
    $this->setInMainPage( $inMainPage );
            $this->_numArticles = $numArticles;
$this->setProperties( $properties );
$this->_parentId = $parentId;
$this->_description = $description;
$this->_lastModification = new Timestamp($lastModification);
$this->_articles = Array();
$this->_numArticles = Array();

//
$this->_icon = $icon;
}



再之后,将class/dao/articlecategorys.class.php这里的代码,用来构造和填充articleCategory对象的相关的SQL代码中,都加上了 c.icon AS icon,也就是取到了这条记录。 那些select * 的我就没改了..
 填充的时候调用的
_fillCategoryInformation方法中,加了最后一条:
程式碼:
        function _fillCategoryInformation( $query_result )
        {
        $category = new ArticleCategory( $query_result["name"],
                                             $query_result["url"],
                                             $query_result["blog_id"],
                                             $query_result["in_main_page"],
$query_result["description"],
                                             $query_result["num_articles"],
unserialize($query_result["properties"]),
                                             $query_result["id"],
//这里新加的图标信息
$query_result["icon"]
);

但现在执行后报错误,错误如下:

Exception message: Missing argument 11 for articlecategory()
Error code: 2
-- Backtrace --
f:\works\greenamp\www\lifetype\class\dao\articlecategory.class.php(37): articlecategory
f:\works\greenamp\www\lifetype\class\dao\articlecategories.class.php(312): articlecategory.articlecategory
f:\works\greenamp\www\lifetype\class\dao\articlecategories.class.php(534): articlecategories._fillcategoryinformation
f:\works\greenamp\www\lifetype\class\dao\articles.class.php(424): articlecategories.getarticlecategoriesbyids
f:\works\greenamp\www\lifetype\class\action\defaultaction.class.php(174): articles.getblogarticles
f:\works\greenamp\www\lifetype\class\controller\controller.class.php(309): defaultaction.perform
f:\works\greenamp\www\lifetype\index.php(42): blogcontroller.process

说是构造 对象的时候缺少第11个参数,也就是ICON那个参数,我现在找不到错误,高手帮忙看看, 了 。
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #1 於: 五月 18, 2006, 08:31:07 下午 »

那是因為沒有預設值 (default value)

程式碼:
function ArticleCategory( $name, $url, $blogId, $inMainPage,$description = "", $numArticles = 0, $properties = Array(), $id = -1, $lastModification=null, $parentId = null,$icon)

你看一下 articleCateogry 這些參數從 description 開始,就都有預設值,可是 $icon 沒有預設值。

所以當系統呼叫 articleCategory(a, b, c) 這個 method 的時後,他發現  $icon 沒有 value 所以執行不下去了。

給他一個預設值吧。例如:

程式碼:
function ArticleCategory( $name, $url, $blogId, $inMainPage,$description = "", $numArticles = 0, $properties = Array(), $id = -1, $lastModification=null, $parentId = null,$icon = 'default.png' )

Mark
已記錄

nanguaxp
新手見習
*
文章: 13


檢視個人資料
« 回覆文章 #2 於: 五月 19, 2006, 07:58:39 上午 »

谢谢,回答的很详细. 開懷大笑 開懷大笑
已記錄
nanguaxp
新手見習
*
文章: 13


檢視個人資料
« 回覆文章 #3 於: 五月 19, 2006, 08:09:39 上午 »

现在构造分类对象的时候,多加了两个参数就行了。原来是少了这两个参数,操成不匹配。


程式碼:
        function _fillCategoryInformation( $query_result )
        {
        $category = new ArticleCategory( $query_result["name"],
                                             $query_result["url"],
                                             $query_result["blog_id"],
                                             $query_result["in_main_page"],
$query_result["description"],
                                             $query_result["num_articles"],
unserialize($query_result["properties"]),
                                             $query_result["id"],
                                                     
null,null,
//这里新加的图标信息
$query_result["icon"]
);
已記錄
頁: [1]
LifeType 中文開發論壇  |  開發  |  核心補強  |  为分类加上图标的问题 « 上篇主題 下篇主題 »
    前往: