vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 2.x Beta Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=5)
-   -   Preview the first post in a thread first (beta defunct). (https://vborg.vbsupport.ru/showthread.php?t=33423)

Freddie Bingham 12-10-2001 03:52 AM

PHP Code:

$page iifstrlen($message>500),substr($message,0,500).'...',$message); 


Parker Clack 12-10-2001 05:01 AM

freddie:

Thanks. But I still get the parse error at the line it is on.

BTW, will this way show old text messages that have already been written or only new posts that have been written since putting this in?

Parker

freakyshiat 12-10-2001 06:10 AM

so is there a more efficeint way of doing this?

Parker Clack 12-10-2001 11:17 PM

Well:

As stated this was too much of a demand on my server so if you have a large board I would not use this.

Anyone have a way to doing this more efficiently?

Parker

bira 12-17-2001 03:21 AM

Parker a couple more comments:

1) "$page = $thread[preview];" is redundent. place title="$thread[preview]" in your template.


2) you didn't strip out the bbcodes first, before doing strip_tags.

this:

Code:

$page = iif(strlen($message)>500,substr($message,0,500).'...',$message);
$page=strip_tags($page);

Should be:

Code:

$page = iif(strlen($message)>500,substr($message,0,500).'...',$message);
[high]$page=bbcodepase($page);[/high]
$page=strip_tags($page);


bira 12-17-2001 03:35 AM

Ah. Small problem that needs to be looked at.

1) If, for example, the first 500 characters of the opening post include something that you as an admin edit out - they will continue to appear in the preview.

2) If, for example, you split a thread then
---> a) the newly created thread will not have a preview; and
---> b) if you, for example, split the thread so as to remove the first post (say, to your trashcan forum), the that post will continue to exist in the 'preview'.


What needs to be done, is adding an additional hack code to the editpost script and the splitting action script. In both cases, when a thread is updated, the 'preview' must be updated as well.

I'm off to sleep now. I'll see if I can help you when I wake up, if that will be needed :)

bira 12-17-2001 04:44 AM

OK, the necessary add-ons :)

1) Open root/editpost.php, find:

Code:

  if ($isfirst and $title!="" and $postinfo[dateline]+$editthreadtitlelimit*60>time()) {
    $DB_site->query("UPDATE thread SET title='".addslashes(htmlspecialchars($title))."' WHERE threadid=$threadinfo[threadid]");
    //$title="";
  }

AFTER it ADD:

Code:

  if ($isfirst) {
        $page = iif(strlen($message)>500,substr($message,0,500).'...',$message);
        $page = bbcodeparse($page);
        $page = strip_tags($page);
    $DB_site->query("UPDATE thread SET preview='".addslashes(htmlspecialchars($page))."' WHERE threadid=$threadinfo[threadid]");
  }

Save and upload. This will ensure the 'preview' is also updated when the first post is edited.


2) open root/postings.php.

a) find:

Code:

  $DB_site->query("UPDATE thread SET title='".addslashes(htmlspecialchars($title))."',notes='".addslashes($threadinfo[notes])."'$pollcode WHERE threadid='$threadid'");
Replace is with (changes marked in high):

Code:

[high]  $getfirstpost=$DB_site->query_first("SELECT pagetext FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1");
  $page = iif(strlen($getfirstpost[pagetext])>500,substr($getfirstpost[pagetext],0,500).'...',$getfirstpost[pagetext]);
  $page = bbcodeparse($page);
  $page = strip_tags($page);[/high]
  $DB_site->query("UPDATE thread SET title='".addslashes(htmlspecialchars($title))."',notes='".addslashes($threadinfo[notes])."'[high],preview='".addslashes(htmlspecialchars($page))."'[/high]$pollcode WHERE threadid='$threadid'");

This will ensure the 'preview' is updated when a thread is merged, to correctly reflect the new 1st post.

b) find:

Code:

  // Update first post in each thread as title information in relation to the sames words being in the first post may have changed now.
  $getfirstpost=$DB_site->query_first("SELECT postid FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1");
  $DB_site->query("DELETE FROM searchindex WHERE postid=$getfirstpost[postid]");
  indexpost($getfirstpost[postid]);

  $getfirstpost=$DB_site->query_first("SELECT postid FROM post WHERE threadid=$newthreadid ORDER BY dateline LIMIT 1");
  $DB_site->query("DELETE FROM searchindex WHERE postid=$getfirstpost[postid]");
  indexpost($getfirstpost[postid]);

Replace it with (changes marked in high):

Code:

  // Update first post in each thread as title information in relation to the sames words being in the first post may have changed now.
  $getfirstpost=$DB_site->query_first("SELECT postid,[high]pagetext[/high] FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1");
  $DB_site->query("DELETE FROM searchindex WHERE postid=$getfirstpost[postid]");
  indexpost($getfirstpost[postid]);
[high]  $page = iif(strlen($getfirstpost[pagetext])>500,substr($getfirstpost[pagetext],0,500).'...',$getfirstpost[pagetext]);
  $page = bbcodeparse($page);
  $page = strip_tags($page);
  $DB_site->query("UPDATE thread SET preview='".addslashes(htmlspecialchars($page))."' WHERE threadid='$threadid'");
  unset($page);[/high]

  $getfirstpost=$DB_site->query_first("SELECT postid,[high]pagetext[/high] FROM post WHERE threadid=$newthreadid ORDER BY dateline LIMIT 1");
  $DB_site->query("DELETE FROM searchindex WHERE postid=$getfirstpost[postid]");
  indexpost($getfirstpost[postid]);
[high]  $page = iif(strlen($getfirstpost[pagetext])>500,substr($getfirstpost[pagetext],0,500).'...',$getfirstpost[pagetext]);
  $page = bbcodeparse($page);
  $page = strip_tags($page);
  $DB_site->query("UPDATE thread SET preview='".addslashes(htmlspecialchars($page))."' WHERE threadid='$newthreadid'");
  unset($page);[/high]

This will ensure the 'preview' is updated for both threads, old and new, after splitting a thread in two.

Very nice hack Parker - I personally will use it a lot!!!

Thanks,

Bira

bira 12-22-2001 03:17 PM

This hack was released in full and can be found here. Don't use instructions in this thread - go to the 'Full Release' one.

Thanks :)


All times are GMT. The time now is 07:53 AM.

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.01096 seconds
  • Memory Usage 1,749KB
  • 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
  • (8)bbcode_code_printable
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)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