The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Comments |
#52
|
|||
|
|||
With a little trial-and-error, I've answered my own question. I wrote a little if-else statement that tests if the iconid is 0, and if it is, returns an empty string to a new variable; if it is not 0, an image tag is returned to the new variable.
I also noticed that, at least in Saracen's version, it has a bit at the bottom that is a hyperlink to the thread. The link says "xx comments...", where xx is the number of comments. What I didn't like is that it always says "comments", even if the number is 1, so it would read "1 comments...". I could have changed it to "comment(s)", but I went for a more sophisticated approach. Again, I wrote a little if-else statement, that tests if the number of replies is 1, and if so, returns the text "reply" to a new variable. If it isn't 1, it returns the text "replies" to the new variable. (I changed the word "comment" or "comments" to "reply" or "replies", for my own personal preference.) You can see how both these work below. Note that this has pretty much no formatting, but thanks to Saracen's use of defining variables and calling them in the generated HTML, it is much easier to add whatever formatting you want. Code:
<? include("/home/jjr512/jjr512-www/bbs/global.php"); $num_active = 7; $num_chars = 125; $db=mysql_connect($servername,$dbusername,$dbpassword); mysql_select_db($dbname); $querylatest="SELECT * FROM thread WHERE forumid='1' OR forumid='2' OR forumid='3' OR forumid='4' OR forumid='5' OR forumid='6' OR forumid='8' OR forumid='11' OR forumid='12' OR forumid='13' ORDER BY lastpost DESC LIMIT $num_active"; $resultlatest = mysql_query($querylatest,$db); while ($latest_array = mysql_fetch_array($resultlatest)) { // Get Forum Infomation $query_forum = "select * from forum where forumid='$latest_array[forumid]'"; $result_forum = mysql_query($query_forum,$db); $forum_info_array = mysql_fetch_array($result_forum); // split the date up a bit $datestr1 = substr($latest_array["dateline"],0,10); $datetime = substr($latest_array["dateline"],11,8); $querythread="SELECT * FROM post WHERE threadid='$latest_array[threadid]' ORDER BY dateline ASC LIMIT 1"; $result_thread_text= mysql_query($querythread,$db); $result_thread_array = mysql_fetch_array($result_thread_text); $newstitle = $latest_array["title"]; $newsposter = $latest_array["postusername"]; $newsposterid = $result_thread_array["userid"]; $newsdate = date("D j M Y", $latest_array["dateline"]); $newstext = substr(strip_tags($result_thread_array["pagetext"]),0,$num_chars); $newsthreadid = $latest_array["threadid"]; $newscomments = $latest_array["replycount"]; $threadforumid = $latest_array["forumid"]; $threadforum = $forum_info_array["title"]; $threadiconid = $latest_array["iconid"]; if ($threadiconid==0) { $threadicon = ""; } else { $threadicon = "<img src=\"/bbs/images/icons/icon$threadiconid.gif\" alt=\"Thread icon\">?"; } if ($newscomments==1) { $commenttext = "reply ?"; } else { $commenttext = "replies ?"; } print("<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"3\"><b>$threadicon$newstitle</b></font><br>"); print("<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Posted in <a href=\"http://www.jjr512.com/bbs/forumdisplay.php?forumid=$threadforumid\">$threadforum</a> by <a href=\"http://www.jjr512.com/bbs/member.php?action=mailform&userid=$newsposterid\">$newsposter</a> on $newsdate: <br>\"$newstext...\"<br><a href=\"http://www.jjr512.com/bbs/showthread.php?threadid=$newsthreadid \">$newscomments $commenttext</a></font></br></p>"); } ?> This is my first real attempt at making such big changes to a hack for php/mysql. If anyone has any suggestions on improving what I did, I'd love to hear them! [Edited by JJR512 on 12-15-2000 at 12:24 AM] |
#53
|
|||
|
|||
Well, although that runs fine when I run the file activetopics.php by itself, I seem to be having trouble including it. Sacremen, I stuck that include statement at the top of the main file, tried it various other places, tried it inside the activetopics.php file. I tried it with full absolute path, relative path, or URL to the file global.php. I always seem to get the "Warning: Supplied argument not a valid etc.".
If I put it anywhere inside the activetopics.php file, I get the msg "Warning: Cannot add header information - header already sent etc.". I've also tried it both with the path in the include statement, or with the separate line with the chdir statement. Obviously, I'm missing something. Can you explain it to me, please? Thanks! |
#54
|
|||
|
|||
Could somebody help me make 2 hacks like the one's TechTalk made earlier in this thread?
1 for showing the current active users (xx members online... xx guests online...) & 1 for checking if the user has logged in or not, if logged in, then show the "welcome back _____", if not, then show the log in text boxes. Please & thanks a lot |
#55
|
|||
|
|||
LOL JJr...you tried too hard with that.....I just made a 1x1 pixel transparent gif and named it icon0.gif and uploaded it into the images/icons folder.
|
#56
|
|||
|
|||
I considered that option, but decided against it. The reason was that, no matter what size you made the transparent icon, the size of the icon is defined in the image tag, so it gets stretched to full icon size. Well, you might say that doesn't matter, since it's transparent. True, but you do see an empty space. With the way I did it, if there is no icon, the text aligns to the edge of the table cell, rather than to the edge of an empty space. In my opinion, it just looks better.
But I'm still looking for help with the include global.php statement! |
#57
|
|||
|
|||
funny, it didn't on our page did it? http://www.friendswithoutfaces.com I don't see blank space where a posting icon would be. We're having trouble with the includes for top 25 posters, too. I can't seem to get it to work. But Kathy's already asked that question. <G>
|
#58
|
|||
|
|||
Just call me desparate. I want that TOP 25 POSTERS list on my main page. I think a little competition and reward is a good thing to help encourage posting.... maybe? :lol: Someone help us out? |
#59
|
|||
|
|||
OK, I've gotten the results to show up. Now I have another question, about long text strings breaking the tables. Since I have this hack displaying in a table that is only 155 pixels wide, this can be a problem with even a simple URL. Is there a way to force it to split a line apart rather than let the table get wider?
|
#60
|
|||
|
|||
Quote:
I dont know the answer but sure hope you get one, I figured I asked enough questions so I wasnt going to ask - I just could not get teh dang thing to work. But if I took the hack for most posts in the last 24 hours it worked fine, and you can change the time to go back a long times and giving you the same results as the top 25 hack - BUT in my case I cant use it because of a wierd glitch somewhere I had to prune a lot of messages and it will not count pruned messages in the persons post count. |
#61
|
|||
|
|||
OK, I've gotten it all worked out, with much help from Menno! This time, with the part that Menno added, if there is a URL that is so long that it would stretch the table, you don't have to worry. The part by Menno looks in the message text that would be displayed, and looks for the URL tags, and if it sees it, replaces the text of the hyperlink with the text (hyperlink). For an example, please look at my working test file, http://www.jjr512.com/newer.html
Code:
<? $num_active = 6; $num_chars = 75; $db=mysql_connect($servername,$dbusername,$dbpassword); mysql_select_db($dbname); $querylatest="SELECT * FROM thread WHERE forumid='1' OR forumid='2' OR forumid='3' OR forumid='4' OR forumid='5' OR forumid='6' OR forumid='8' OR forumid='11' OR forumid='12' OR forumid='13' ORDER BY lastpost DESC LIMIT $num_active"; $resultlatest = mysql_query($querylatest,$db); while ($latest_array = mysql_fetch_array($resultlatest)) { // Get Forum Infomation $query_forum = "select * from forum where forumid='$latest_array[forumid]'"; $result_forum = mysql_query($query_forum,$db); $forum_info_array = mysql_fetch_array($result_forum); // split the date up a bit $datestr1 = substr($latest_array["dateline"],0,10); $datetime = substr($latest_array["dateline"],11,8); $querythread="SELECT * FROM post WHERE threadid='$latest_array[threadid]' ORDER BY dateline ASC LIMIT 1"; $result_thread_text= mysql_query($querythread,$db); $result_thread_array = mysql_fetch_array($result_thread_text); $newstitle = $latest_array["title"]; $newsposter = $latest_array["postusername"]; $newsposterid = $result_thread_array["userid"]; $newsdate = date("D j M Y", $latest_array["dateline"]); $newstext = substr(strip_tags($result_thread_array["pagetext"]),0,$num_chars); $newsthreadid = $latest_array["threadid"]; $newscomments = $latest_array["replycount"]; $threadforumid = $latest_array["forumid"]; $threadforum = $forum_info_array["title"]; $threadiconid = $latest_array["iconid"]; // split apart long URL strings $newstext=eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]","<a href=\"http://www.\\1\" target=_blank>\\1</a>",$newstext); $newstext=eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>(hyperlink)</a>",$text); $newstext=eregi_replace("\\[url=\"([^\"]*)\"\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=_blank>\\2</a>",$newstext); $newstext=eregi_replace("\\[url=([^\"]*)\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=_blank>(hyperlink)</a>",$newstext); //special thank-you to Menno at vBulletin Community Forum for coming up with the above part! if ($threadiconid==0) { $threadicon = ""; } else { $threadicon = "<img src=\"/bbs/images/icons/icon$threadiconid.gif\" alt=\"Thread icon\"> "; } if ($newscomments==1) { $commenttext = "reply ?"; } else { $commenttext = "replies ?"; } print(" <table width=\"155\" cellpadding=\"2\"> <tr> <td width=\"150\" bgcolor=\"#0066CC\" class=\"sidebar1\"> <b>$threadicon$newstitle</b><br> </td> </tr> <tr> <td width=\"150\" class=\"sidebar1\"> Posted in <a href=\"http://www.jjr512.com/bbs/forumdisplay.php?forumid=$threadforumid\" class=\"sidebar1\">$threadforum</a> by <a href=\"http://www.jjr512.com/bbs/member.php?action=mailform&userid=$newsposterid\" class=\"sidebar1\">$newsposter</a> on $newsdate:<br> \"$newstext...\"<br><a href=\"http://www.jjr512.com/bbs/showthread.php?threadid=$newsthreadid\" class=\"sidebar1\">$newscomments $commenttext</a><br><p> </td> </tr> </table> "); } ?> Please note that because I could never get the global.php file to properly include, I just ended up replacing the four variables at the top for server, username, PW, and db name with the actual values. (Of course, I replaced them back before posting it here for you! ) |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|