LifeType 中文開發論壇

開發 => 核心補強 => 主題作者是: yufeng 於 三月 10, 2006, 08:45:54 下午



主題: 请教在summary模板中添加单独的博客排名页面...
作者: yufeng三月 10, 2006, 08:45:54 下午
我想把summary页面的"最活跃的博客" "评论最多的文章" 和"阅读最多的文章" 这几个排名的内容单独作成几个页面, 在summany的首页点击链接就可以看到这些单独的排名了,比如 "最活跃的博客 Top20" 这样子的...

我试着用faq.template来修改,copy了summany中相应的一些代码, 但是 用 ?op=display&page=faq.template来访问却是没有任何的结果显示出来, 请教各位如何能简便地实现这个功能呢...谢谢 :-D


主題: Re: 请教在summary模板中添加单独的博客排名页面...
作者: lss三月 10, 2006, 09:18:38 下午
...
我试着用faq.template来修改,copy了summany中相应的一些代码, 但是 用 ?op=display&page=faq.template来访问却是没有任何的结果显示出来, 请教各位如何能简便地实现这个功能呢...谢谢 :-D
summary 的自訂頁面是不帶 summary 首頁裡的那些物件的,你必需比照 summarydefaultaction.class.php 替這些自訂頁面寫相對應的程式,並且以 op={action} 的方式開啟頁面才行。基本上,你也可以試試用「抄」的方式來抄 summarydefaultaction.class.php ,然後在模版的部份另外寫成你想要的模樣。

mmm... 你得先從研究 /summary.php 和 /class/summary/action/summarydefaultaction.class.php 開始。你有興趣的話,歡迎一起研究。

lss


主題: Re: 请教在summary模板中添加单独的博客排名页面...
作者: yufeng三月 12, 2006, 08:42:37 下午
谢谢lss的建议, 最近比较忙, 有空了就按照这个研究研究, 有什么成绩会和大家分享的...呵呵... :-D


主題: Re: 请教在summary模板中添加单独的博客排名页面...
作者: jikey七月 12, 2006, 10:13:47 下午
我做到....!
打開 /class/summary/action/summarycustompageaction.class.php

in /class/summary/action/summarycustompageaction.class.php

find
程式碼:
include_once( PLOG_CLASS_PATH."class/summary/data/validator/customsummarypagevalidator.class.php" );

after paste
 
程式碼:
  include_once( PLOG_CLASS_PATH."class/summary/action/summaryaction.class.php" );
    include_once( PLOG_CLASS_PATH."class/summary/dao/summarystats.class.php" );
    include_once( PLOG_CLASS_PATH."class/data/timestamp.class.php" );
    include_once( PLOG_CLASS_PATH."class/dao/blogs.class.php" );
    include_once( PLOG_CLASS_PATH."class/logger/LogUtil.php" );
find
程式碼:
$this->_view = new SummaryCachedView( $this->_page, Array( "page" => $this->_page, "locale" => $this->_locale->getLocaleCode()));
 

after paste

程式碼:
	if( $this->_view->isCached()) {
// if the view is already cached... move along! nothing to see here
return true;
}
            $blogs       = new Blogs();
            $stats       = new SummaryStats();

            // load the posts, filtering out all those registration messages...
$registerTopic = $this->_locale->tr( "register_default_article_topic" );
$registerText = $this->_locale->tr( "register_default_article_text" );
            $recentPosts = $stats->getRecentArticles( $this->_numPosts, $registerTopic, $registerText );
            // get all the blogs
            $siteBlogs   = $blogs->getAllBlogs( true );
            $recentBlogs = $stats->getRecentBlogs( $this->_numPosts );

            $activeBlogs    = $stats->getMostActiveBlogs( $this->_numPosts);
            $commentedPosts = $stats->getMostCommentedArticles( $this->_numPosts, $registerTopic, $registerText );
            $readestBlogs   = $stats->getMostReadArticles( $this->_numPosts, $registerTopic, $registerText );


// export all these things to the view
$this->_view->setValue( "posts", $recentPosts );
$this->_view->setValue( "recentBlogs", $recentBlogs );
$this->_view->setValue( "activeBlogs", $activeBlogs );
$this->_view->setValue( "commentedPosts", $commentedPosts );
$this->_view->setValue( "readestBlogs", $readestBlogs );
$this->_view->setValue( "blogs", $siteBlogs );


//
// :KLUDGE:
// we just need a random blog so... we'll get one :)
//
$randomBlog = array_pop($siteBlogs);
$url = $randomBlog->getBlogRequestGenerator();
$this->_view->setValue( "url", $url );


主題: Re: 请教在summary模板中添加单独的博客排名页面...
作者: jikey七月 13, 2006, 12:02:56 上午
可是上傳了服務器就會面對cache的問題.....o...

不知道如何刪除掉/tmp 里的files?


主題: Re: 请教在summary模板中添加单独的博客排名页面...
作者: markwu七月 13, 2006, 09:01:58 上午
你必須手動刪除,或是發表一篇新聞張,讓 cache 自動刪除,或是等待你的 summary cache time out。

我建議手動刪除比較快。

Mark


主題: Re: 请教在summary模板中添加单独的博客排名页面...
作者: lss七月 13, 2006, 11:45:45 上午
hi jikey:

good job  :-)

再給你提供另一個方向。你這樣做,對每個 summary 的自訂頁面都提供了所有 summary 主頁的樣版物件,如果網站的 blog 多起來了,對效能影響較大。

你可以另外做一個專用的 action 和 view 只提供需要的物件,會更好一點。

lss


主題: Re: 请教在summary模板中添加单独的博客排名页面...
作者: jikey七月 14, 2006, 06:24:17 上午
hi mark
不知道為身麼我的服務器不允許我自己手動刪除...... ~~~

只是那個/tmp 而已... 我使用linux - directadmin 的.

hi lss,
謝謝你給的tips!不過要如何修改的更好我不是很會~
我只是迷迷糊糊的嘗試而已... :) 希望你可以提供更多的tips

謝謝
jikey