home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 April / PCWorld_2005-04_cd.bin / akce / web / phpnuke / PHP-Nuke-7.5.exe / html / includes / topic_review.php < prev    next >
PHP Script  |  2004-07-22  |  11KB  |  271 lines

  1. <?php
  2. /***************************************************************************
  3.  *                              topic_review.php
  4.  *                            -------------------
  5.  *   begin                : Saturday, Feb 13, 2001
  6.  *   copyright            : (C) 2001 The phpBB Group
  7.  *   email                : support@phpbb.com
  8.  *
  9.  *   $Id: topic_review.php,v 1.5.2.2 2004/03/01 15:56:51 psotfx Exp $
  10.  *
  11.  *
  12.  ***************************************************************************/
  13.  
  14. /***************************************************************************
  15. * phpbb2 forums port version 2.0.5 (c) 2003 - Nuke Cops (http://nukecops.com)
  16. *
  17. * Ported by Nuke Cops to phpbb2 standalone 2.0.5 Test
  18. * and debugging completed by the Elite Nukers and site members.
  19. *
  20. * You run this package at your sole risk. Nuke Cops and affiliates cannot
  21. * be held liable if anything goes wrong. You are advised to test this
  22. * package on a development system. Backup everything before implementing
  23. * in a production environment. If something goes wrong, you can always
  24. * backout and restore your backups.
  25. *
  26. * Installing and running this also means you agree to the terms of the AUP
  27. * found at Nuke Cops.
  28. *
  29. * This is version 2.0.5 of the phpbb2 forum port for PHP-Nuke. Work is based
  30. * on Tom Nitzschner's forum port version 2.0.6. Tom's 2.0.6 port was based
  31. * on the phpbb2 standalone version 2.0.3. Our version 2.0.5 from Nuke Cops is
  32. * now reflecting phpbb2 standalone 2.0.5 that fixes some bugs and the
  33. * invalid_session error message.
  34. ***************************************************************************/
  35. /***************************************************************************
  36.  *   This file is part of the phpBB2 port to Nuke 6.0 (c) copyright 2002
  37.  *   by Tom Nitzschner (tom@toms-home.com)
  38.  *   http://bbtonuke.sourceforge.net (or http://www.toms-home.com)
  39.  *
  40.  *   As always, make a backup before messing with anything. All code
  41.  *   release by me is considered sample code only. It may be fully
  42.  *   functual, but you use it at your own risk, if you break it,
  43.  *   you get to fix it too. No waranty is given or implied.
  44.  *
  45.  *   Please post all questions/request about this port on http://bbtonuke.sourceforge.net first,
  46.  *   then on my site. All original header code and copyright messages will be maintained
  47.  *   to give credit where credit is due. If you modify this, the only requirement is
  48.  *   that you also maintain all original copyright messages. All my work is released
  49.  *   under the GNU GENERAL PUBLIC LICENSE. Please see the README for more information.
  50.  *
  51.  ***************************************************************************/
  52. /***************************************************************************
  53.  *
  54.  *   This program is free software; you can redistribute it and/or modify
  55.  *   it under the terms of the GNU General Public License as published by
  56.  *   the Free Software Foundation; either version 2 of the License, or
  57.  *   (at your option) any later version.
  58.  *
  59.  *
  60.  ***************************************************************************/
  61.  
  62. if (!defined('IN_PHPBB')) {
  63.     die();
  64. }
  65.  
  66. function topic_review($topic_id, $is_inline_review)
  67. {
  68.         global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path;
  69.         global $userdata, $user_ip;
  70.         global $orig_word, $replacement_word;
  71.         global $starttime;
  72.  
  73.         if ( !$is_inline_review )
  74.         {
  75.                 if ( !isset($topic_id) )
  76.                 {
  77.                         message_die(GENERAL_MESSAGE, 'Topic_not_exist');
  78.                 }
  79.  
  80.                 //
  81.                 // Get topic info ...
  82.                 //
  83.                 $sql = "SELECT t.topic_title, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments
  84.                         FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
  85.                         WHERE t.topic_id = '$topic_id'
  86.                                 AND f.forum_id = t.forum_id";
  87.                 if ( !($result = $db->sql_query($sql)) )
  88.                 {
  89.                         message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql);
  90.                 }
  91.  
  92.                 if ( !($forum_row = $db->sql_fetchrow($result)) )
  93.                 {
  94.                         message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
  95.                 }
  96.         $db->sql_freeresult($result);
  97.  
  98.                 $forum_id = $forum_row['forum_id'];
  99.                 $topic_title = $forum_row['topic_title'];
  100.  
  101.                 //
  102.                 // Start session management
  103.                 //
  104.                 $userdata = session_pagestart($user_ip, $forum_id, $nukeuser);
  105.                 init_userprefs($userdata);
  106.                 //
  107.                 // End session management
  108.                 //
  109.  
  110.                 $is_auth = array();
  111.                 $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
  112.  
  113.                 if ( !$is_auth['auth_read'] )
  114.                 {
  115.                         message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']));
  116.                 }
  117.         }
  118.  
  119.         //
  120.         // Define censored word matches
  121.         //
  122.         if ( empty($orig_word) && empty($replacement_word) )
  123.         {
  124.                 $orig_word = array();
  125.                 $replacement_word = array();
  126.  
  127.                 obtain_word_list($orig_word, $replacement_word);
  128.         }
  129.  
  130.         //
  131.         // Dump out the page header and load viewtopic body template
  132.         //
  133.         if ( !$is_inline_review )
  134.         {
  135.                 $gen_simple_header = TRUE;
  136.  
  137.                 $page_title = $lang['Topic_review'] . ' - ' . $topic_title;
  138.                 include("includes/page_header_review.php");
  139.  
  140.                 $template->set_filenames(array(
  141.                         'reviewbody' => 'posting_topic_review.tpl')
  142.                 );
  143.         }
  144.  
  145.         //
  146.         // Go ahead and pull all data for this topic
  147.         //
  148.         $sql = "SELECT u.username, u.user_id, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
  149.                 FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
  150.                 WHERE p.topic_id = '$topic_id'
  151.                         AND p.poster_id = u.user_id
  152.                         AND p.post_id = pt.post_id
  153.                 ORDER BY p.post_time DESC
  154.                 LIMIT " . $board_config['posts_per_page'];
  155.         if ( !($result = $db->sql_query($sql)) )
  156.         {
  157.                 message_die(GENERAL_ERROR, 'Could not obtain post/user information', '', __LINE__, __FILE__, $sql);
  158.         }
  159.  
  160.         //
  161.         // Okay, let's do the loop, yeah come on baby let's do the loop
  162.         // and it goes like this ...
  163.         //
  164.         if ( $row = $db->sql_fetchrow($result) )
  165.         {
  166.                 $mini_post_img = $images['icon_minipost'];
  167.                 $mini_post_alt = $lang['Post'];
  168.  
  169.                 $i = 0;
  170.                 do
  171.                 {
  172.                         $poster_id = $row['user_id'];
  173.                         $poster = $row['username'];
  174.  
  175.                         $post_date = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']);
  176.  
  177.                         //
  178.                         // Handle anon users posting with usernames
  179.                         //
  180.                         if( $poster_id == ANONYMOUS && $row['post_username'] != '' )
  181.                         {
  182.                                 $poster = $row['post_username'];
  183.                                 $poster_rank = $lang['Guest'];
  184.                         }
  185.                         elseif ( $poster_id == ANONYMOUS )
  186.                         {
  187.                                 $poster = $lang['Guest'];
  188.                                 $poster_rank = '';
  189.                         }
  190.  
  191.                         $post_subject = ( $row['post_subject'] != '' ) ? $row['post_subject'] : '';
  192.  
  193.                         $message = $row['post_text'];
  194.                         $bbcode_uid = $row['bbcode_uid'];
  195.  
  196.                         //
  197.                         // If the board has HTML off but the post has HTML
  198.                         // on then we process it, else leave it alone
  199.                         //
  200.                         if ( !$board_config['allow_html'] && $row['enable_html'] )
  201.                         {
  202.                                 $message = preg_replace('#(<)([\/]?.*?)(>)#is', '<\2>', $message);
  203.                         }
  204.  
  205.                         if ( $bbcode_uid != "" )
  206.                         {
  207.                                 $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
  208.                         }
  209.  
  210.                         $message = make_clickable($message);
  211.  
  212.                         if ( count($orig_word) )
  213.                         {
  214.                                 $post_subject = preg_replace($orig_word, $replacement_word, $post_subject);
  215.                                 $message = preg_replace($orig_word, $replacement_word, $message);
  216.                         }
  217.  
  218.                         if ( $board_config['allow_smilies'] && $row['enable_smilies'] )
  219.                         {
  220.                                 $message = smilies_pass($message);
  221.                         }
  222.  
  223.                         $message = str_replace("\n", '<br />', $message);
  224.  
  225.                         //
  226.                         // Again this will be handled by the templating
  227.                         // code at some point
  228.                         //
  229.                         $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
  230.                         $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
  231.  
  232.                         $template->assign_block_vars('postrow', array(
  233.                                 'ROW_COLOR' => '#' . $row_color,
  234.                                 'ROW_CLASS' => $row_class,
  235.  
  236.                                 'MINI_POST_IMG' => $mini_post_img,
  237.                                 'POSTER_NAME' => $poster,
  238.                                 'POST_DATE' => $post_date,
  239.                                 'POST_SUBJECT' => $post_subject,
  240.                                 'MESSAGE' => $message,
  241.  
  242.                                 'L_MINI_POST_ALT' => $mini_post_alt)
  243.                         );
  244.  
  245.                         $i++;
  246.                 }
  247.                 while ( $row = $db->sql_fetchrow($result) );
  248.         }
  249.         else
  250.         {
  251.                 message_die(GENERAL_MESSAGE, 'Topic_post_not_exist', '', __LINE__, __FILE__, $sql);
  252.         }
  253.     $db->sql_freeresult($result);
  254.  
  255.         $template->assign_vars(array(
  256.                 'L_AUTHOR' => $lang['Author'],
  257.                 'L_MESSAGE' => $lang['Message'],
  258.                 'L_POSTED' => $lang['Posted'],
  259.                 'L_POST_SUBJECT' => $lang['Post_subject'],
  260.                 'L_TOPIC_REVIEW' => $lang['Topic_review'])
  261.         );
  262.  
  263.         if ( !$is_inline_review )
  264.         {
  265.                 $template->pparse('reviewbody');
  266.                 include("includes/page_tail_review.php");
  267.         }
  268. }
  269.  
  270. ?>
  271.