View Single Post
  #273  
Old 09-27-2002, 09:41 AM
Dark Jim's Avatar
Dark Jim Dark Jim is offline
 
Join Date: Apr 2002
Location: Netherlands
Posts: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Works with the current version of the lasttitle hack. (Not fully my work, read 2 pages earlier in this topic.) I will (try to) update it everytime PPN/Teck update the last title hack.

Run this query:
PHP Code:
ALTER TABLE forum ADD lasticon SMALLINT(5NOT NULL AFTER lastthread
File: FORUM/admin/functions.php
Find:
PHP Code:
  $lastpost=0;
  
$lastthread='';
  
$lastposter=''
Add after that:
PHP Code:
  $lasticon=''
Find:
PHP Code:
        if($getchildforum[lastthread]=='') {
          
$threadtitle=$DB_site->fetch_array($DB_site->query("SELECT * FROM thread WHERE forumid='$forumid' AND lastposter='$getchildforum[lastposter]' AND lastpost='$getchildforum[lastpost]'"));
          
$lastthread=$threadtitle[title];
        } else {
          
$lastthread=$getchildforum[lastthread];
        } 
Add after that:
PHP Code:
        if($getchildforum[lasticon]=='') {
          
$posticon=$DB_site->query_first("SELECT iconid FROM post WHERE dateline='$threadtitle[lastpost]' AND username='$threadtitle[lastposter]'");
          
$lasticon=$posticon[iconid];
        } else {
          
$lasticon=$getchildforum[lasticon];
        } 
Find:
PHP Code:
  $lastposts=$DB_site->query_first("SELECT MAX(title) as title,MAX(lastpost) AS lastpost FROM thread WHERE forumid=$forumid AND visible=1 AND open<>10");
  if (
$lastposts['lastpost']>$lastpost) {
    
$lastposts=$DB_site->query_first("
      SELECT lastpost,lastposter,title
      FROM thread
      WHERE forumid = 
$forumid AND lastpost = '$lastposts[lastpost]'");
    
$lastpost=$lastposts['lastpost'];
    
$lastthread=$lastposts['title'];
    
$lastposter=$lastposts['lastposter'];
  } 
Add after that:
PHP Code:
  $posticon=$DB_site->query_first("SELECT iconid FROM post WHERE dateline='$lastposts[lastpost]' AND username='$lastposts[lastposter]'");
  
$lasticon=$posticon['iconid']; 
Find:
PHP Code:
$lastpostquery=",lastpost='$lastpost',lastthread='".addslashes($lastthread)."',lastposter='".addslashes($lastposter)."'"
Replace with:
PHP Code:
  $lastpostquery=",lastpost='$lastpost',lastthread='".addslashes($lastthread)."',lasticon='$lasticon',lastposter='".addslashes($lastposter)."'"
File: FORUM/index.php
Find:
PHP Code:
           if (strlen($forum['lastthread']) > $maxchars) {
              
$forum['lastthread'] = substr($forum['lastthread'], 0$maxchars-2) . '...';
            } 
Add after that:
PHP Code:
            if ($forum['lasticon']) {
              
$icon="<img src=\"$forum[iconpath]\" alt=\"$forum[icontitle]\" width=\"15\" height=\"15\" border=\"0\">";
            } else {
              
$icon="";
            } 
Find:
PHP Code:
//Forum info
$forums=$DB_site->query('SELECT * FROM forum WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder'); 
Replace with:
PHP Code:
//Forum info
$forums=$DB_site->query('SELECT forum.*,icon.title as icontitle,icon.iconpath as iconpath FROM forum 
LEFT JOIN icon
ON (forum.lasticon=icon.iconid)
WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder'
); 
File: FORUM/forumdisplay.php
Find:
PHP Code:
           if (strlen($forum['lastthread']) > $maxchars) {
              
$forum['lastthread'] = substr($forum['lastthread'], 0$maxchars-2) . '...';
            } 
Add after that:
PHP Code:
            if ($forum['lasticon']) {
              
$icon="<img src=\"$forum[iconpath]\" alt=\"$forum[icontitle]\" width=\"15\" height=\"15\" border=\"0\">";
            } else {
              
$icon="";
            } 
Find:
PHP Code:
//Forum info
$forums=$DB_site->query('SELECT * FROM forum WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder'); 
Replace with:
PHP Code:
//Forum info
$forums=$DB_site->query('SELECT forum.*,icon.title as icontitle,icon.iconpath as iconpath FROM forum 
LEFT JOIN icon
ON (forum.lasticon=icon.iconid)
WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder'
); 
File: FORUM/newthread.php
Find:
PHP Code:
      //create new thread
      
if ($postpoll) {
         
$visible 0;
         
$DB_site->query("UPDATE forum SET lastthread='".addslashes(htmlspecialchars($subject))."' WHERE forumid IN ($foruminfo[parentlist])");
      } 
Replace with:
PHP Code:
      //create new thread
      
if ($postpoll) {
         
$visible 0;
         
$DB_site->query("UPDATE forum SET lastthread='".addslashes(htmlspecialchars($subject))."',lasticon=$iconid WHERE forumid IN ($foruminfo[parentlist])");
      } 
Find:
PHP Code:
      // update forum stuff
      
if ($visible==1) {
        
$DB_site->query("UPDATE forum SET replycount=replycount+1,threadcount=threadcount+1,lastpost='".time()."',lastthread='".addslashes(htmlspecialchars($subject))."',lastposter='".addslashes($postusername)."' WHERE forumid IN ($foruminfo[parentlist])");
      } 
Replace with:
PHP Code:
      // update forum stuff
      
if ($visible==1) {
        
$DB_site->query("UPDATE forum SET replycount=replycount+1,threadcount=threadcount+1,lastpost='".time()."',lastthread='".addslashes(htmlspecialchars($subject))."',lasticon=$iconid,lastposter='".addslashes($postusername)."' WHERE forumid IN ($foruminfo[parentlist])");
      } 
File: FORUM/reply.php
Find:
PHP Code:
      // update forum stuff
      
if ($visible==1) {
        
$DB_site->query("UPDATE forum SET replycount=replycount+1,threadcount=threadcount+1,lastpost='".time()."',lastthread='".addslashes(htmlspecialchars($subject))."',lastposter='".addslashes($postusername)."' WHERE forumid IN ($foruminfo[parentlist])");
      } 
Replace with:
PHP Code:
      // update forum stuff
      
if ($visible==1) {
        
$DB_site->query("UPDATE forum SET replycount=replycount+1,threadcount=threadcount+1,lastpost='".time()."',lastthread='".addslashes(htmlspecialchars($subject))."',lasticon=$iconid,lastposter='".addslashes($postusername)."' WHERE forumid IN ($foruminfo[parentlist])");
      } 
File: FORUM/editpost.php
Find:
PHP Code:
  if ($isfirst and $title!="" and $postinfo[dateline]+$editthreadtitlelimit*60>time()) {
    
$DB_site->query("UPDATE thread SET title='".addslashes(htmlspecialchars($title))."', iconid=".intval($iconid)." WHERE threadid=$threadinfo[threadid]");
    
$lastpost=$DB_site->query_first("SELECT * FROM forum WHERE forumid=$threadinfo[forumid]");
    if(
$lastpost['lastpost']==$threadinfo['dateline']) {
      
$DB_site->query("UPDATE forum SET lastthread='".addslashes(htmlspecialchars($title))."' WHERE forumid=$threadinfo[forumid]");
    }
  } 
Replace with:
PHP Code:
  if ($isfirst and $title!="" and $postinfo[dateline]+$editthreadtitlelimit*60>time()) {
    
$DB_site->query("UPDATE thread SET title='".addslashes(htmlspecialchars($title))."', iconid=".intval($iconid)." WHERE threadid=$threadinfo[threadid]");
    
$lastpost=$DB_site->query_first("SELECT * FROM forum WHERE forumid=$threadinfo[forumid]");
    if(
$lastpost['lastpost']==$threadinfo['dateline']) {
      
$DB_site->query("UPDATE forum SET lastthread='".addslashes(htmlspecialchars($title))."',lasticon=$iconid WHERE forumid=$threadinfo[forumid]");
    }
  } 
File: FORUM/postings.php
Find:
PHP Code:
  $lastpost=$DB_site->query_first("SELECT * FROM forum WHERE forumid='$threadinfo[forumid]'");
  if(
$lastpost['lastpost']==$threadinfo['dateline']) {
    
$DB_site->query("UPDATE forum SET lastthread='".addslashes(htmlspecialchars($title))."' WHERE forumid='$threadinfo[forumid]'");
  } 
Replace with:
PHP Code:
  $lastpost=$DB_site->query_first("SELECT * FROM forum WHERE forumid='$threadinfo[forumid]'");
  if(
$lastpost['lastpost']==$threadinfo['dateline']) {
    
$DB_site->query("UPDATE forum SET lastthread='".addslashes(htmlspecialchars($title))."' WHERE forumid='$threadinfo[forumid]'");
  } 
Template: forumhome_lastpostby
Find:
Code:
<a href="showthread.php?s=$session[sessionhash]&goto=lastpost&forumid=$forum[forumid]">$forum[lastthread]</a>
Change to:
Code:
$icon <a href="showthread.php?s=$session[sessionhash]&goto=lastpost&forumid=$forum[forumid]">$forum[lastthread]</a>
It works however updating the forums in the admin cp is very slow. Could someone tell me how to fix this?
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01385 seconds
  • Memory Usage 1,945KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (27)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete