Thêm text preview cho bài đăng trong Thread List

Discussion in 'Tips and Guides' started by PVS, Apr 1, 2015.

  1. PVS

    PVS Cộng Sự Đặc Biệt Staff Member

    Joined:
    Feb 28, 2015
    Messages:
    11,804
    Likes Received:
    7,062
    Trophy Points:
    113
    Gender:
    Male
    Location:
    Huế
    Home Page:
    Cách này sẽ giúp các bạn dễ dàng cho hiển thị 1 phần nội dung của bài viết ra ngoài , thích hợp với các trang tin tức, thủ thuật.

    Compatible XF Versions: Xenforo 1.2

    library/XenForo/ControllerPublic/Forum.php
    Code:
    protected function _getThreadFetchElements(array $forum, array $displayConditions)
        {
            $threadModel = $this->_getThreadModel();
            $visitor = XenForo_Visitor::getInstance();
    
            $threadFetchConditions = $displayConditions + $threadModel->getPermissionBasedThreadFetchConditions($forum);
    
            if ($this->_routeMatch->getResponseType() != 'rss')
            {
                $threadFetchConditions += array('sticky' => 0);
            }
    
            $threadFetchOptions = array(
                'join' => XenForo_Model_Thread::FETCH_USER | XenForo_Model_Thread::FETCH_FIRSTPOST,
                'readUserId' => $visitor['user_id'],
                'watchUserId' => $visitor['user_id'],
                'postCountUserId' => $visitor['user_id'],
            );
            if (!empty($threadFetchConditions['deleted']))
            {
                $threadFetchOptions['join'] |= XenForo_Model_Thread::FETCH_DELETION_LOG;
            }
    
            if ($this->getResponseType() == 'rss')
            {
                $threadFetchOptions['join'] |= XenForo_Model_Thread::FETCH_FIRSTPOST;
            }
    
            return array(
                'conditions' => $threadFetchConditions,
                'options' => $threadFetchOptions
            );
        }
    library/XenForo/ViewPublic/Forum/View.php
    Code:
         * Help render the HTML output.
         *
         * @return mixed
         */
        public function renderHtml()
        {
            $this->_params['renderedNodes'] = XenForo_ViewPublic_Helper_Node::renderNodeTreeFromDisplayArray(
                $this, $this->_params['nodeList'], 2 // start at level 2, which means only 1 level of recursion
            );
    
            // RENDER FIRST POSTS
            $previewLength = XenForo_Application::get('options')->discussionPreviewLength;
    
            foreach ($this->_params['threads'] AS &$thread)
            {
                if ($previewLength && !empty($thread['message']))
                {
                    $formatter = XenForo_BbCode_Formatter_Base::create('XenForo_BbCode_Formatter_Text');
                    $parser = XenForo_BbCode_Parser::create($formatter);
    
                    $thread['messageParsed'] = $parser->render($thread['message']);
                }
            }
        }
    Admin CP -> Appearance -> Templates -> thread_list_item
    Code:
    {xen:string nl2br, {xen:helper wordtrim, $thread.messageParsed, $xenOptions.discussionPreviewLength}}
    {xen:phrase edit} {xen:phrase email}
    Demo:

    untitled.PNG
    P/s: Các bạn tìm và thay thế code cũ bằng các code trên nha. BBcode vẫn còn hiện nha! Như hình demo vậy đó.

    Nguồn: tailieu24h.net​
     
  2. agrione

    agrione Thượng Đế

    Joined:
    Sep 7, 2015
    Messages:
    120
    Likes Received:
    94
    Trophy Points:
    28
    Gender:
    Male
    Làm sao để ko hiện bbcode được chủ thớt
     
  3. onlyonelove

    onlyonelove Thượng Đế

    Joined:
    Nov 3, 2015
    Messages:
    370
    Likes Received:
    200
    Trophy Points:
    43
    Gender:
    Male
    Occupation:
    Code tập sự
    Location:
    Đồng Nai
    Home Page:
    có ai rành hướng dẫn mình phát triển tính năng này thành addon ddc k?
     

Share This Page