![]() |
One of the things that will happen when you put your mouse pointer on to a hyperlink is put text in a popup box if you put this information into a title line.
For example: < a href="http://www.yourplace.com" title="your text here">Here ya go< /a > (the above is just an example to play with without the spaces in the brakets to see how this works) At any rate. In your forumdisplay.php file right above: Code:
eval("\$forumdisplaybits .= \"".gettemplate('forumdisplaybit')."\";"); Code:
$post=$DB_site->query_first("SELECT pagetext FROM post WHERE threadid=$thread[threadid] ORDER BY postid"); look for Code:
<a href="showthread.php?s=$session[sessionhash]&threadid=$thread[threadid]">$thread[title]</a> Code:
<a href="showthread.php?s=$session[sessionhash]&threadid=$thread[threadid]" title="$page">$thread[title]</a> You can play around with the order size of the pagetext from 500 to whatever you want to have displayed. If anyone can think of anything to add to this please do. I guarantee I am a very limited coder. Many thanks go to Chen and Bira for helping me with the coding. Parker |
Note:
I have found that if the post has quotes in it that it will affect the display of the hyperlink on the forumdisplay. You have to change this to single quotes instead of double quotes. Any work around for that? Parker |
Doesn't this add one query for every thread shown in forumdisplay. At the default that is 15 new queries shown for every forumdisplay page which can add up a to a lot of resources.
A better solution would be to: 1) Add a new "preview" field to the thread table. 2) Move the code that generates the snippet to the newthread.php file. PHP Code:
PHP Code:
4) Alter the statement that begins with: PHP Code:
5) Finally in forumdisplay.php you add the other two lines where you had them to begin with: PHP Code:
If you have dot folders turned on you can edit the $dotuserid string to pull the message information and get by with less coding and still not have any new queries at display time. |
??? What is the good en complete hack? I am lost now..
|
well I think the orginal hack is a great thing, and I think wLuke is saying that for larger boards this would be a good thing to modify...I have it on my test board, and Its going to be included on the new new board for the new year at hand
|
That is correct. The original as posted will work fine but if you start running into resource limitations, it can be improved for larger boards. That was my original intent.
|
wluke:
Great suggestion. I am a poor coder so could you post examples of what you are talking about. The ones you suggested I am afraid I would screw up. Parker |
wluke:
I created a table preview with setting of mediumtext not null in the database Then I used: $page=iif(strlen($message>500,substr($message,0,50 0)."...",$message); $DB_site->query("INSERT INTO thread (.....,preview) VALUES (..................,'".addslashes(htmlspecialchars ($page))."')"); in the newthread.php file and $threads=$DB_site->query("SELECT .....,preview FROM thread.. from forumdisplay.php and took out the $post=$DB_site->query_first("SELECT pagetext FROM post WHERE threadid=$thread[threadid] ORDER BY postid"); $page=iif(strlen($post[pagetext])>500,substr($post[pagetext],0,500)."...",$post[pagetext]); $page=bbcodeparse2($page,1,1,1,1); $page=strip_tags($page); and replaced it with: $page=bbcodeparse2($page,1,1,1,1); $page=strip_tags($page); Should that do it? Parker |
It looks like it. Can't tell until I try it.
I will be finally getting the chance to upgrade SPF to 2.2.1 in the next couple of days. My changelog of modifications I have made is 50K for the user front end alone. I haven't even started applying my changes to the moderators control panel yet. Once I finish that project, I will probably implement this as well and have the code I write for you to compare with. |
wluke:
I look forward to this. One thing though. When I put $page=iif(strlen($message>500,substr($message,0,50 0)."...",$message); into the newthread.php I get a parse error at the line it is on. I will wait and see what you come up with. While you are at it see if you can get it to pass quotes in the information that is passed because if they are used in the message of the first post it the text for the hyperlink is not displayed. Parker |
PHP Code:
|
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 |
so is there a more efficeint way of doing this?
|
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 |
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); Code:
$page = iif(strlen($message)>500,substr($message,0,500).'...',$message); |
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 :) |
OK, the necessary add-ons :)
1) Open root/editpost.php, find: Code:
if ($isfirst and $title!="" and $postinfo[dateline]+$editthreadtitlelimit*60>time()) { Code:
if ($isfirst) { 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'"); Code:
[high] $getfirstpost=$DB_site->query_first("SELECT pagetext FROM post WHERE threadid=$threadid ORDER BY dateline LIMIT 1"); 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. 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. Very nice hack Parker - I personally will use it a lot!!! Thanks, Bira |
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 12:11 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 | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|