Log in

View Full Version : vbdate[] and [url] -> <a href>


jmellicker
03-24-2005, 12:11 AM
Hello vBulletin gurus,

I made a PHP script that displays data from a specific vBulletin forum. (I am a PHP noob, did it in Dreamweaver)


You can see the output here:

http://www.dvcreators.net/news.php


I am stuck on two things:

1. Instead of "1109707243", I would like a real date format :-) I would like to know how to display either absolute or relative ("Wednesday, March 23, 2005" or "4 hours ago")... vBulletin has a date function (vbdate[]?) but I am just too PHP-stoopid to figure it out.

2. Everywhere in the text of the post where there is a " [ u r l ] " or " [ / u r l ] " I would like to replace it with the proper actual HTML "<a href> </a> etc." so the text is a clickable link.

I included the code so far below just in case, I'm sure some of you PHP gurus will wince at the lousy DreamWeaver syntax.


Thanks in advance for any help!

-Josh


---- code start ----

<?php

require_once('Connections/dvc_mysql.php');

//require_once('./global.php'); do we need this for vbdate???

$maxRows_news = 10;
$pageNum_news = 0;
if (isset($_GET['pageNum_news'])) {
$pageNum_news = $_GET['pageNum_news'];
}
$startRow_news = $pageNum_news * $maxRows_news;

mysql_select_db($database_dvc_mysql, $dvc_mysql);
$query_news = "SELECT post.dateline, post.title, post.pagetext FROM post WHERE post.threadid = 7713 ORDER BY post.dateline";
$query_limit_news = sprintf("%s LIMIT %d, %d", $query_news, $startRow_news, $maxRows_news);
$news = mysql_query($query_limit_news, $dvc_mysql) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);

if (isset($_GET['totalRows_news'])) {
$totalRows_news = $_GET['totalRows_news'];
} else {
$all_news = mysql_query($query_news);
$totalRows_news = mysql_num_rows($all_news);
}
$totalPages_news = ceil($totalRows_news/$maxRows_news)-1;

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>dv news</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.date {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
color: #666666;
}
.title1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #383368;
}
-->
</style>
</head>

<body>
<table border="0" cellpadding="4" cellspacing="0" class="date">

<?php do { ?>
<tr>
<td><?php echo $row_news['dateline']; ?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="title1"><?php echo $row_news['title']; ?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><?php echo $row_news['pagetext']; ?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php } while ($row_news = mysql_fetch_assoc($news)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($news);
?> :confused:

---- code end ----

deathemperor
03-24-2005, 01:14 AM
You cannot code like that for a new vbulletin file. Read this forum for more info on how to:

https://vborg.vbsupport.ru/forumdisplay.php?f=20

and to use vbdate() you must have require_once('./global.php');

believe me coding in DW doesn't make a noob, it's the way you code make it.

Marco van Herwaarden
03-24-2005, 09:49 AM
Yes requiring global.php is needed for any vB function to work. To solve your url-tag problem run the $row_news['pagetext'] through the parse_bbcode2 function.

You will also have to add just after the global.php:
require_once('./includes/functions_bbcodeparse.php');

jmellicker
03-25-2005, 02:14 AM
Thanks for your help.

When I include a vBulletin file, with:



require_once('discuss/global.php');

or

require_once('./discuss/global.php');



I get this:

Warning: main(./includes/init.php): failed to open stream: No such file or directory in /home/dvcreato/public_html/discuss/global.php on line 18

Fatal error: main(): Failed opening required './includes/init.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/dvcreato/public_html/discuss/global.php on line 18


I think this is because the php file I am including is also trying to include files, but from the wrong directory (the directory I am calling it from).

Does vBulletin have some kind of relative path variable that I can add to?


I have tried the function ini_set() but same result.

:surprised:


Thanks again,

-josh

Marco van Herwaarden
03-25-2005, 03:50 AM
You should do a:
chdir('./pathtoyourforum');
require_once('./global.php');
chdir('..');

Jolten
03-25-2005, 04:25 AM
Don't mean to hijack.. but.. anyone know the arguments for parse_bbcode2() I keep getting "missing argument" with code like parse_bbcode2($com);

filburt1
03-25-2005, 04:37 AM
Don't mean to hijack.. but.. anyone know the arguments for parse_bbcode2() I keep getting "missing argument" with code like parse_bbcode2($com);
Have you looked at the function's prototype? It's fairly simple, although $dohtml can be interpreted as both "allow HTML" and "parse HTML by stripping it" (it's the latter).

Jolten
03-25-2005, 05:18 AM
yeah just trying to understand it $com=parse_bbcode2($uscom,1,0,1,1);

so string, do html=yes, do images= no, do smilies = yes, dobbcode = yes

Is that correct? it seems to work

jmellicker
03-25-2005, 03:24 PM
You should do a:
chdir('./pathtoyourforum');
require_once('./global.php');
chdir('..');



Thanks for your help, but this produces this error:

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/dvcreato/public_html/news2.php on line 6

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/dvcreato/public_html/news2.php on line 6

For some reason, the chdir() function is rendering the connection to the database invalid...

:(

When I put my script in the same directory as global.php, the global.php includes seems to work, but the includes to the MySQL connection info does not- even if I copy and paste it in...

I am looking to hire someone for consulting who knows how to solve these two problems...

Jolten
03-25-2005, 03:28 PM
chdir('/home/dvcreato/public_html/forum/')


doesn't work?

jmellicker
03-25-2005, 06:34 PM
chdir('/home/dvcreato/public_html/forum/')


doesn't work?


Unfortunately no. I get the error listed above with either (what I understand as) relative or absolute path...

chdir('/home/dvcreato/public_html/discuss/');
require_once('./global.php');
chdir('..');

or

chdir('./discuss/');
require_once('./global.php');
chdir('..');

produces:

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/dvcreato/public_html/news2.php on line 6

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/dvcreato/public_html/news2.php on line 6

Maybe I'll try putting the script in the same directory as global.php again and experiment with that for a while...

I am working with PHP 4.3.9, I would like to think it's something wrong with our PHP compile, but vBulletin and everything else works perfectly so it is obviously my brain deficiency :o

http://www.dvcreators.net/phpinfo.php

jmellicker
04-02-2005, 06:11 PM
I found the answer, it was ridiculously simple :rolleyes:

instead of using includes, or vbdate(), all I had to do was say:

echo date ("d M Y h:i a" ,$row_news['dateline'])

to properly format the date. Doh!


Now all I need to do is figure out how to replace a string in PHP so that everywhere in the text of the post where there is a " [ u r l ] " or " [ / u r l ] " it will have the proper actual HTML "<a href> </a> etc." so the text is a clickable link.

I need to change strings like this:

Perfect for use with a
BeachTek adapter (http://www.dvcreators.net/products/beachtek.html) to add high quality XLR mics.

to this:

Perfect for use with a <a href="http://www.dvcreators.net/products/beachtek.html" target="_blank">BeachTek adapter<a>
to add high quality XLR mics.

Here is what I tried:


$newbody = str_replace(array("", ""), array("<a href=\"", "\"target=\"_blank\">", "<a>"),$row_news['pagetext']);


echo $newbody


and here is the result:

http://dvcreators.net/news2.php

I am getting close!!! Anyone want to help revise my replace script?

And why is this board parsing my CODE snippets??!?