Hello,
I wanted to show the thread's first post date in the subjects list (see attached screen copy) and I think something is wrong out there
I thought it should have been easy to do by modifying the "threadbit" template and inserting $thread[postdate] at the right place. But I only had empty values, even though a correct value existed in the threads table...
After studying the code in forumdisplay.php and in functions_forumdisplay.php, I've noticed that the $thread[postdate] was filled with $thread['postdateline'] (as a parameter of a formatting function in that case). See code below :
PHP Code:
if ($thread['postdateline'])
{
$thread['postdate'] = vbdate($vbulletin->options['dateformat'], $thread['postdateline'], true);
$thread['posttime'] = vbdate($vbulletin->options['timeformat'], $thread['postdateline']);
}
else
{
$thread['postdate'] = '';
$thread['posttime'] = '';
}
but the "postdateline" field is not part of the query returning thread values in the forumdisplay.php file
PHP Code:
$threads = $db->query_read("
SELECT $votequery $previewfield
thread.threadid, thread.title AS threadtitle, thread.forumid, pollid, open, replycount, postusername, postuserid, thread.iconid AS threadiconid,
$lastpost_info, thread.dateline, IF(views<=replycount, replycount+1, views) AS views, notes, thread.visible, sticky, votetotal, thread.attach,
hiddencount
" . iif($vbulletin->options['threadsubscribed'] AND $vbulletin->userinfo['userid'], ", NOT ISNULL(subscribethread.subscribethreadid) AS issubscribed") . "
" . iif($deljoin, ", deletionlog.userid AS del_userid, deletionlog.username AS del_username, deletionlog.reason AS del_reason")
. iif($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid'], ', threadread.readtime AS threadread') . "
$hook_query_fields
FROM " . TABLE_PREFIX . "thread AS thread
$deljoin
" . iif($vbulletin->options['threadsubscribed'] AND $vbulletin->userinfo['userid'], " LEFT JOIN " . TABLE_PREFIX . "subscribethread AS subscribethread ON(subscribethread.threadid = thread.threadid AND subscribethread.userid = " . $vbulletin->userinfo['userid'] . ")") . "
" . iif($vbulletin->options['threadmarking'] AND $vbulletin->userinfo['userid'], " LEFT JOIN " . TABLE_PREFIX . "threadread AS threadread ON (threadread.threadid = thread.threadid AND threadread.userid = " . $vbulletin->userinfo['userid'] . ")") . "
$previewjoin
$tachyjoin
$hook_query_joins
WHERE thread.threadid IN (0$ids) $hook_query_where
ORDER BY sticky DESC, $sqlsortfield $sqlsortorder
");
The result is an empty date/time string of course. I think that the first code snippet should mention $thread['
dateline'] instead of $thread['postdateline']. I've tried this on a local test forum and it works great (attached screen copy).
Now I have what I wanted, but I had to modify the source. So does anyone knows about anything else that do not alter the original files ?