vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=4)
-   -   Last post on forum home, working version (https://vborg.vbsupport.ru/showthread.php?t=28561)

TECK 09-26-2002 10:58 PM

and you are right about the editing. i missed the title part. thank you.
i'm gonna ask scott to move it on top the file, since it fixed the last bug we all had problems with.

Dark Jim 09-27-2002 09:41 AM

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?

Scott MacVicar 09-27-2002 09:49 AM

If i could find your file ;)

its slow as your adding an extra query per forum so when it tries to update them it will take ages.

TECK 09-28-2002 04:21 AM

i noticed another bug. when i post a poll, it will not update the title on forumhome.
to fix it, open newthread.php and find:
Code:

      //create new thread
      if ($postpoll) {
        $visible = 0;

replace it with:
Code:

      //create new thread
      if ($postpoll) {
        $visible = 0;
        $DB_site->query("UPDATE forum SET lastthread='".addslashes(htmlspecialchars($subject))."' WHERE forumid IN ($foruminfo[parentlist])");

download the full 2.2.8 update here.

N9ne 09-28-2002 08:35 PM

Question: How many queries does this add to forumhome?

TECK 09-28-2002 09:19 PM

none. that's why i install it.
my goal on my board is to have a low query number, is the most important for the speed and performance of the site.

N9ne 09-28-2002 09:32 PM

That's my goal too! Is there a way I can contact you via MSN or AIM? I'd love to know, if it's ok with you how you keep your queries down...

I'm glad this doesn't add ANY queries at all!

I need some help cutting queries down in some files..

TECK 09-29-2002 12:48 AM

sorry, i dont do support over IM's. that's why we have forums.

Scott MacVicar 09-29-2002 01:27 PM

You'll find that as long as you dont go adding too many features or the author provides a way to combine queries you will have efficent code.

But please dont think that more queries means a slower execution time, it all depends on how big the table is, indexes, how many tables there is and what your scanning for.

N9ne 09-29-2002 07:13 PM

Yeah, well on my proper forums right now, I went over the top with hacks [60+ of them] and it slowed the forums down, had 46 queries on forumhome etc..


All times are GMT. The time now is 09:12 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02126 seconds
  • Memory Usage 1,867KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_code_printable
  • (27)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete