| | |
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.05 Príspevky: 13348 Témy: 1496 Bydlisko: Bratislava | Napísal JanoF: 13.10.2006 9:16 | |
|
Kód: ############################################################## ## Mod Title: shows topic of last made post on index ## Mod Version: 1.4.0 ## Author: e-sven <sven@e-sven.net> http://www.e-sven.net ## Description: -adds lasts post topic to each forum on ## the index page (based on read-access) ## -word censorship is used ## -topic title with more then 27 chars are cut off ## -mouseover info displays the full title ## ## Installation Level: easy ## Installation Time: 2-5 Minutes ## Files To Edit: index.php ## Included Files: index.php (pre-modded) ############################################################## ## History: ## 0.9 not released beta ## 1.0 first working release ## 1.1 optimized db access ## 1.2 made implementation easier ## (only two replaces have to be made) ## 1.2a just a minor bug (thanks to Acid) ## 1.3 empty forums where not displayed correctly ## 1.4 optimized db-query ############################################################## ## Before Adding This MOD To Your Forum, ## You Should Back Up All Files Related To This MOD ##############################################################
# #-----[ OPEN ]------------------------------------------------ # index.php
# #-----[ ACTION Find ]----------------------------------------- # $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id FROM (( " . FORUMS_TABLE . " f LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id ) LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) ORDER BY f.cat_id, f.forum_order"; break; } if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql); }
$forum_data = array(); while( $row = $db->sql_fetchrow($result) ) { $forum_data[] = $row; }
if ( !($total_forums = count($forum_data)) ) { message_die(GENERAL_MESSAGE, $lang['No_forums']); }
// // Obtain a list of topic ids which contain
# #-----[ REPLACE WITH ]---------------------------------------- # $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_last_post_id " . " FROM ((( " . FORUMS_TABLE . " f " . " LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )" . " LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) " . " LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_last_post_id = p.post_id ) " . " ORDER BY f.cat_id, f.forum_order"; break; } if ( !($result = $db->sql_query($sql)) ) { message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql); }
$forum_data = array(); $topic_last_ary = array(); $i=0; while( $row = $db->sql_fetchrow($result) ) { if (!in_array($row['topic_last_post_id'], $topic_last_ary) || $row['topic_last_post_id']==0) { $topic_last_ary[i]=$row['topic_last_post_id']; $i++; $forum_data[] = $row; } } unset($topic_last_ary); if ( !($total_forums = count($forum_data)) ) { message_die(GENERAL_MESSAGE, $lang['No_forums']); } // // Filter topic_title not allowed to read // if ( !($userdata['user_level'] == ADMIN && $userdata['session_logged_in']) ) { $auth_read_all = array(); $auth_read_all=auth(AUTH_READ, AUTH_LIST_ALL, $userdata, $forum_data); $auth_data = ''; for($i=0; $i<count($forum_data); $i++) { if (!$auth_read_all[$forum_data[$i]['forum_id']]['auth_read']) { $forum_data[$i]['topic_title']=''; } } }
// // Define censored word matches // $orig_word = array(); $replacement_word = array(); obtain_word_list($orig_word, $replacement_word);
// // Obtain a list of topic ids which contain
# #-----[ ACTION Find ]----------------------------------------- # if ( $forum_data[$j]['forum_last_post_id'] ) { ... }
# #-----[ ACTION Replace With ]--------------------------------- # if ( $forum_data[$j]['forum_last_post_id'] ) { $topic_title = $forum_data[$j]['topic_title']; $topic_title2 = $forum_data[$j]['topic_title']; // // Censor topic title // if ( count($orig_word) ) { $topic_title = preg_replace($orig_word, $replacement_word, $topic_title); $topic_title2 = preg_replace($orig_word, $replacement_word, $topic_title2); } if (strlen($topic_title)>27) { $topic_title = substr($topic_title,0,24) . '...'; }
$last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']); $last_post = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '" title="' . $topic_title2 . '">' . $topic_title . '</a><br>'; $last_post .= $last_post_time . ' <a href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '"></a><br>' . $lang['by'] . ' '; $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> '; }
# #-----[ SAVE/CLOSE ALL FILES ]---------------------------------- #
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server |
|
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|