Guest User

Xen AutoLoader

a guest
Jan 31st, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.50 KB | None | 0 0
  1. <?php
  2. $limit = 4;
  3. $nodes = array("18", "2");
  4.  
  5. $startTime = microtime( true );
  6.  
  7. // Set to forum location - See XenForo index.php for information
  8. $fileDir = './xenforo';
  9.  
  10. // Init autoloader
  11. require( $fileDir . '/library/XenForo/Autoloader.php' );
  12. XenForo_Autoloader::getInstance()->setupAutoloader( $fileDir . '/library' );
  13.  
  14. XenForo_Application::initialize( $fileDir . '/library', $fileDir );
  15. XenForo_Application::set( 'page_start_time', $startTime );
  16.  
  17. //Customize Code
  18.     $xenOptions = XenForo_Application::get('options');
  19.     $forumUrl = $xenOptions->boardUrl;
  20.  
  21.     $threadModel = XenForo_Model::create( 'XenForo_Model_Thread' );
  22.     $threads = $threadModel->getModelFromCache('XenForo_Model_Thread')->getThreads( array(
  23.         'discussion_state'        => 'visible',
  24.         'node_id'          => $nodes,
  25.     ), array(
  26.         'limit'          => $limit,
  27.         'order'          => 'thread_id',
  28.         'orderDirection' => 'desc'
  29.     ));
  30.  
  31.     $postModel = XenForo_Model::create('XenForo_Model_Post');
  32.     /*PHP 5.5*/ $postIds = array_column($threads, 'first_post_id');
  33.     /*PHP 5.3*/ //$postIds = array_map(function ($a) { return $a['first_post_id']; }, $threads);   
  34.     $posts = $postModel->getPostsByIds($postIds);
  35.  
  36.     $bbCodeFormatter = XenForo_BbCode_Formatter_Base::create('Sedo_Demo_BbCode_Formatter_BaseFilter');
  37.     $bbCodeFormatter->setBaseFilterInvisible(false);
  38.    
  39.     $allowedTags = array('b', 'i', 'u');
  40.     $bbCodeFormatter->setBaseFilterAllowedTags($allowedTags);
  41.  
  42.     $bbCodeParser =  XenForo_BbCode_Parser::create($bbCodeFormatter);
  43.         $bbCodeOptions = array(
  44.         'showSignature' => false,
  45.         'states' => array(
  46.             'viewAttachments' => false,
  47.             'stopLineBreakConversion' => true
  48.         )
  49.     );
  50.  
  51.     foreach($posts as $post)
  52.     {
  53.         $threadId = $post['thread_id'];
  54.         $thread = $threads[$threadId];
  55.  
  56.         $threadTitle = $thread['title'];
  57.         $threadUrl = $threadUrl = $forumUrl . '/' . XenForo_Link::buildPublicLink('threads', $thread);
  58.  
  59.         /*Method A*/
  60.         //$message = $bbCodeParser->render($post['message']);
  61.  
  62.         /*Method B*/
  63.         // You can customize this method with the $bbCodeOptions ; you set 'stopLineBreakConversion', so there won't have any line breaks
  64.         $message = XenForo_ViewPublic_Helper_Message::getBbCodeWrapper($post, $bbCodeParser, $bbCodeOptions);
  65.         $message = $message->__toString(); //we're not in XenForo template
  66.    
  67.             echo
  68.         "<h3><a href=\"$threadUrl\">"
  69.         . XenForo_Helper_String::wholeWordTrim($threadTitle, 50)
  70.         . "</a></h3>"
  71.         . XenForo_Helper_String::wholeWordTrim($message, 400)
  72.         ;          
  73.     }
  74.    
  75.     //Zend_Debug::dump($contents);
Advertisement
Add Comment
Please, Sign In to add comment