歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十二月 04, 2024, 12:15:18 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  安裝與設定精華區  |  plog首页(index.php?blogId=X)文章分页处理问题?焦急? « 上篇主題 下篇主題 »
頁: [1]
作者 主題: plog首页(index.php?blogId=X)文章分页处理问题?焦急?  (閱讀 34685 次)
Poker Me
新手見習
*
文章: 10


檢視個人資料
« 於: 十二月 05, 2005, 09:44:45 上午 »

等了几天了,没办法只好再发个帖了,请大大原谅 (原贴:http://forum.lifetype.org.tw/index.php?topic=1372.new;topicseen#new)

前几天拜读了ffsword 的首页分类法 于是就依葫芦画瓢, 直接拷贝这段Code:
程式碼:

<?php

   include_once
PLOG_CLASS_PATH."class/action/blogaction.class.php" );
    include_once( PLOG_CLASS_PATH."class/view/defaultview.class.php" );
    include_once( PLOG_CLASS_PATH."class/net/http/session/sessioninfo.class.php" );
    include_once( PLOG_CLASS_PATH."class/dao/blogs.class.php" );
    include_once( PLOG_CLASS_PATH."class/view/errorview.class.php" );
   include_oncePLOG_CLASS_PATH."class/view/view.class.php" );
   include_oncePLOG_CLASS_PATH."class/plugin/pluginmanager.class.php" );   
   include_once
PLOG_CLASS_PATH."class/data/pager/pager.class.php" );

    /**
     * \ingroup Action
     * @private
     *
     * This class represents the defaut view in our application
     */
   class DefaultAction extends BlogAction 
   
{

      var $_config;
        var $_date;
        var $_categoryId;
      var $_categoryName;
      var $_userId;
      var $_userName;
      var $_postAmount;
      var $_page;       //add by FFS

      function DefaultAction$actionInfo$request )
        {
         $this->BlogAction$actionInfo$request );
         // add by FFS (for show page)
         //$this->_page = view::getCurrentPageFromRequest();      
         if ($_REQUEST["page"]=="")
            $this->_page 1;
         else
            $this
->_page $_REQUEST["page"];
        }

        function validate()
        {
            // value of the Date parameter from the request
            $this->_date $this->_request->getValue"Date", -);

         $this->_categoryName $this->_request->getValue'postCategoryName' );
            $this->_categoryId $this->_request->getValue'postCategoryId' );
            /* if( $this->_categoryId == '' )
               if( $this->_date == -1 )
                   $this->_categoryId = 0; 
                else
                   $this->_categoryId = -1; */
         // **** add ****
         if$this->_categoryId == '' )
               $this->_categoryId = -1
         // **** end ***
         $this->_userId $this->_request->getValue'userId', -);
         $this->_userName $this->_request->getValue'userName' );

            return true;
        }

        /**
         * Executes the action
         */
        function perform()
        {
           // first of all, we have to determine which blog we would like to see
         $blogId $this->_blogInfo->getId();

            // fetch the settings for that blog
            $blogSettings $this->_blogInfo->getSettings();

            // prepare the view
           $this->_view = new DefaultView$this->_blogInfo,
                                         Array"categoryId" => $this->_categoryId,
                            "blogId" => $this->_blogInfo->getId(),
                            "categoryName" => $this->_categoryName,
                        "date" => $this->_date,
                        "userName" => $this->_userName,
                        "userId" => $this->_userId ));
                                            
         
// check if everything's cached because if it is, then we don't have to
         // do any work... it's already been done before and we should "safely" assume
         // that there hasn't been any change so far
         if$this->_view->isCached()) {
            return true;
         }

            // if we got a category name instead of a category id, then we
            // should first look up this category in the database and see if
            // it exists
            $categories = new ArticleCategories();
            if( $this->_categoryName ) {
                $category $categories->getCategoryByName$this->_categoryName$this->_blogInfo->getId());
                if( !$category ) {
                    $this->_view = new ErrorView$this->_blogInfo );
                    $this->_view->setValue'message'"error_incorrect_category_id" );
                    $this->setCommonData();
                    return false;
                }
                
                
// if everything went fine...
                $this->_categoryId $category->getId();
            }
         else {
            // we don't do anything if the cateogry id is '0' or '-1'
            if( $this->_categoryId ) {
               $category $categories->getCategory$this->_categoryId$this->_blogInfo->getId());
               if( !$category ) {
                  $this->_view = new ErrorView$this->_blogInfo );
                  $this->_view->setValue'message'"error_incorrect_category_id" );
                  $this->setCommonData();
                  return false;
               }
            }
         }
         
         
// export the category object in case it is needed
            if( isset($category) )
                $this->_view->setValue"category"$category );         
         

            $users 
= new Users();

            // if we got a user user id, then we should first look up this id
            // user in the database and see if it exists
            if( $this->_userId 0) {
                $user $users->getUserInfoFromId$this->_userName );
                if( !$user ) {
                    $this->_view = new ErrorView$this->_blogInfo );
                    $this->_view->setValue'message''error_incorrect_user_id' );
                    $this->setCommonData();
                    return false;
                }
            

            // if we got a user name instead of a user id, then we
            // should first look up this user in the database and see if
            // it exists
            if( $this->_userName ) {
                $user $users->getUserInfoFromUsername$this->_userName );
                if( !$user ) {
                    $this->_view = new ErrorView$this->_blogInfo );
                    $this->_view->setValue'message''error_incorrect_user_id' );
                    $this->setCommonData();
                    return false;
                }
                
                
// if everything went fine...
                $this->_userId $user->getId();
            }

            // export the owner. The owner information should get from blogInfo directly
            $this->_view->setValue"owner"$this->_blogInfo->getOwnerInfo() );
         
            $t 
= new Timestamp();
            $todayTimestamp $t->getTimestamp();
         
            
// amount of posts that we have to show, but keeping in mind that when browsing a
            // category or specific date, we should show *all* of them
            
         
/* if( $this->_date > 0 || $this->_categoryId > 0 ) {
                $this->_postAmount = -1;
                // also, inform the template that we're showing them all!
                $this->_view->setValue( 'showAll', true );
            }
            else { */
                $this->_postAmount $blogSettings->getValue'show_posts_max' );
                $this->_view->setValue'showAll'false );
            /* } */
         
            
//
            // :KLUDGE:
            // the more things we add here to filter, the more complicated this function
            // gets... look at this call and look at how many parameters it needs!! 
            //
         
         if
( ($blogSettings->getValue'show_future_posts_in_calendar')) && ( $this->_date > -)) {
            // if posts in the future are to be shown, we shouldn't set a maximum date
            $blogArticles $this->articles->getBlogArticles$blogId
                                                  $this->_date,
                                                  $this->_postAmount
                                                  $this->_categoryId,
                                                  POST_STATUS_PUBLISHED
                                                  $this->_userId ,
                                                  0,  // no maxdate
                                                   ''// current search terms
                                                   $this->_page);
            $numPosts $this->articles->getNumBlogArticles$blogId
                                                  $this->_date,
                                                  $this->_postAmount
                                                  $this->_categoryId,
                                                  POST_STATUS_PUBLISHED
                                                  $this->_userId ,
                                                  0,  // no maxdate
                                                   ''// current search terms
                                                   $this->_page);
                                                  
                                                
         
}
         else {
            $blogArticles $this->articles->getBlogArticles$blogId
                                                  $this->_date,
                                                  $this->_postAmount
                                                  $this->_categoryId,
                                                  POST_STATUS_PUBLISHED
                                                  $this->_userId
                                                  $todayTimestamp,
                                                   ''// current search terms
                                                   $this->_page );
            $numPosts $this->articles->getNumBlogArticles$blogId
                                                  $this->_date,
                                                  $this->_postAmount
                                                  $this->_categoryId,
                                                  POST_STATUS_PUBLISHED
                                                  $this->_userId
                                                  $todayTimestamp,
                                                   ''// current search terms
                                                   $this->_page );
         }

            // if we couldn't fetch the articles, send an error and quit
            if( count($blogArticles) == ) {
               $this->_view = new ErrorView$this->_blogInfo );
                $this->_view->setValue'message''error_fetching_articles' );
            }
            else {
               // otherwise, continue
                // the view will take care of cutting the post if we have the "show more"
                // feature enabled or not... we could do it here but I think that belongs
                // to the view since it is presentation stuff... It could also be handled
                // by the template but then it'd make the template a little bit more
                // complicated...
            
            
// ---
            // before finishing, let's see if there's any plugin that would like to do 
            // anything with the post that we just loaded
            // ---
            $pm =& PluginManager::getPluginManager();
            $pm->setBlogInfo$this->_blogInfo );
            $pm->setUserInfo$this->_userInfo );
            $result $pm->notifyEventEVENT_POSTS_LOADED, Array( 'articles' => &$blogArticles ));
            $articles = Array();
            foreach( $blogArticles as $article ) {
               $postText $article->getIntroText();
               $postExtendedText $article->getExtendedText();
               $pm->notifyEventEVENT_TEXT_FILTER, Array( "text" => &$postText ));
               $pm->notifyEventEVENT_TEXT_FILTER, Array( "text" => &$postExtendedText ));
               $article->setIntroText$postText );
               $article->setExtendedText$postExtendedText );
               array_push$articles$article );
            }
            // add by FFS  (for show page)
            $blog $this->_blogInfo;
            $blog_id $blog->getId();
            
            $pager 
= new Pager"?blogId=".$blog_id."&amp;page=",
                             $this->_page
                        $numPosts
                        $this->_postAmount );
            $this->_view->setValue'pager'$pager );
               $this->_view->setValue'posts'$articles );
            }

            $this->setCommonData();
            // save the information about the session for later
            $this->saveSession();

            return true;
        }
    }
?>



也改

管理设置=>全局设置=>模板设置
中的template_cache_enabled
设置为否

我上传了文件 defaultaction.class.phpplog/class/action
从开机,
在IE处还清cashed文件,template换了几个
但是
主页还是什么也没变

超级不理解呀 傷心 傷心 :-(到底哪里错了呢??????


我的首页:
http://www.lastminder.com/plog/index.php?blogId=1

子页(加分页显示)
http://www.lastminder.com/plog/index.php?op=ViewArticle&articleId=20&blogId=1
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #1 於: 十二月 05, 2005, 11:19:59 下午 »

ffsword 只放了 action 這部分的程式,你必須還要再改模版把 pager 放上去才可以。請自行跟他聯絡吧!

Mark
已記錄

Poker Me
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #2 於: 十二月 06, 2005, 12:10:41 上午 »

谢谢回复!!!
已記錄
maomaode
一般會員
***
文章: 115


檢視個人資料
« 回覆文章 #3 於: 十二月 06, 2005, 10:43:31 上午 »

我改暸一個妳去看看mac.bokeland.com
不過分頁還不是很好,文章多暸就會看着很亂,
pager有待改進
已記錄

我的blog:
               http://maomaode.bokeland.com
Blog搬家/同步
               http://banjia.bokeland.com
Poker Me
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #4 於: 十二月 07, 2005, 08:38:36 上午 »

 開懷大笑 開懷大笑 開懷大笑 開懷大笑 開懷大笑 開懷大笑
大大大人太好了也!就是这个,不知大大可以不可以分享一下!
 害羞 害羞 害羞 害羞 害羞 害羞 :-
已記錄
Poker Me
新手見習
*
文章: 10


檢視個人資料
« 回覆文章 #5 於: 十二月 07, 2005, 03:26:09 下午 »

感谢maomaode的帮助,论坛需要你这样的好人!再次感谢!

特此把方法贴出来方便大家:
1. 在main.template 加如下代码:
 {if !$showAll}
 <div class="pager">
 {include file="$blogtemplate/../summary/pager.template" style=links}
 </div>
 {/if}
大功告成!
2.打开paper.template(找不到就用搜索找找 一概在plog/templates/summary/pager.template)该一下CSS定义,这里只是该 “前一页 1.2.3.下一页“的位置,这个要根据你的模板的样式来自行更改


再一次谢谢maomaode markwu的热心回帖!谢谢!
已記錄
頁: [1]
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  安裝與設定精華區  |  plog首页(index.php?blogId=X)文章分页处理问题?焦急? « 上篇主題 下篇主題 »
    前往: