PDA

View Full Version : Need to call up custom field in "lastpostby" template from thread table


omardealo
02-08-2013, 02:49 AM
Hello ,

i Need to call up custom field in "lastpostby" template from thread table
my Version 3.8.7

i try this code

hook : forumbit_display
in templat forumhome_lastpostby : $lastpostinfo[threadphoto]

$hook_query_fields .= ', thread.threadphoto ';
$hook_query_joins .= ' LEFT JOIN ' . 'thread AS thread ON (thread.forumid = forum.forumid) ';

i try this code too :

$tachyjoin .= " LEFT JOIN " . TABLE_PREFIX . "thread AS thread ON (thread.forumid = forum.forumid) ";
$counter_select .= ", thread.threadphoto";

kh99
02-08-2013, 03:00 AM
Not long ago someone asked this same question (they even worded it the same way - weird). Anyway, it's here: www.vbulletin.org/forum/showthread.php?t=293100

omardealo
02-08-2013, 04:49 AM
not weird , i see this thread already and i copy same title
i try same code , not worked ...
so , i write new thread ...
thanks kh99 , i waiting ur Suggestions regarding about my problem or what's wrong in my code

Note : my Version 3.8.7 not 4.×.×

kh99
02-08-2013, 01:02 PM
not weird , i see this thread already and i copy same title
i try same code , not worked ...

lol, I see - I thought that was quite a coincidence. Also I see now that you're asking something a little different. OK, Try this: use hook location cache_ordered_forums and code like this:

$tachyjoin .= " LEFT JOIN " . TABLE_PREFIX . "thread AS thread ON (thread.threadid = forum.lastthreadid) ";
$counter_select .= ", thread.threadphoto";

omardealo
02-08-2013, 04:04 PM
ok , i try this code and the hook : cache_ordered_forums
Shows me this error

Database error in vBulletin 3.8.7:

Invalid SQL:

SELECT forum.forumid, lastpost, lastposter, lastthread, lastthreadid, lasticonid, threadcount, replycount, lastpostid, lastprefixid, thread.threadphoto

FROM forum AS forum

LEFT JOIN thread AS thread ON (thread.threadid = forum.lastthreadid);

MySQL Error : Column 'lastpost' in field list is ambiguous
Error Number : 1052
Request Date : Friday, February 8th 2013 @ 06:58:38 PM
Error Date : Friday, February 8th 2013 @ 06:58:38 PM
Script : http://localhost/386/index.php
Referrer : http://localhost/386/showthread.php?p=71
IP Address : 127.0.0.1
Username : admin
Classname : vB_Database
MySQL Version : 5.0.51b-community-nt-log


Note : some forum on lastthreadid filed = 0

kh99
02-08-2013, 04:29 PM
Hmm...OK, try this:

if (!($vbulletin->userinfo['userid'] AND in_coventry($vbulletin->userinfo['userid'], true)))
{
$counter_select = str_replace(', ', ', forum.', $counter_select);
}
$tachyjoin .= " LEFT JOIN " . TABLE_PREFIX . "thread AS thread ON (thread.threadid = forum.lastthreadid) ";
$counter_select .= ", thread.threadphoto";

omardealo
02-08-2013, 04:40 PM
Hmm...OK, try this:

if (!($vbulletin->userinfo['userid'] AND in_coventry($vbulletin->userinfo['userid'], true)))
{
$counter_select = str_replace(', ', ', forum.', $counter_select);
}
$tachyjoin .= " LEFT JOIN " . TABLE_PREFIX . "thread AS thread ON (thread.threadid = forum.lastthreadid) ";
$counter_select .= ", thread.threadphoto";


it worked good now . Thank you with all my heart
Now, The final question, if u allowed
I want to put a condition if {} in the case of content not available in the field threadphoto

kh99
02-08-2013, 05:09 PM
it worked good now . Thank you with all my heart
Now, The final question, if u allowed
I want to put a condition if {} in the case of content not available in the field threadphoto

You could try something like this in the template:

<if condition="empty($lastpostinfo[threadphoto])">
No threadphoto
<else />
Threadphoto is $lastpostinfo[threadphoto]
</if>


As long as threadphoto can't be 0 (because that would make empty() true).

omardealo
02-08-2013, 05:38 PM
ok that's good i use this template

<if condition="empty($lastpostinfo[threadphoto])">
<img border="0" src="$vboptions[threadphoto_DefaultPic]" width="50" height="50">
<else />
<img border="0" src="$lastpostinfo[threadphoto]" width="50" height="50">
</if>


look , i add this template in forumhome_lastpostby template
by this hook : forumbit_display

This code replaces all the template :
eval('$forum[\'lastpostinfo\'] = "' . fetch_template('threadphoto_forumhome') . '";');

This code template placed in the end of the template forumhome_lastpostby:
eval('$forum[\'lastpostinfo\'] .= "' . fetch_template('threadphoto_forumhome') . '";');


i want put my template At the beginning of the template forumhome_lastpostby












-------------------------------------------------------------------------------------------------------------------------

For any one want to call this field in forumdisplay Beside title threads
1 - plugin 1
hook : forumdisplay_query
code : $hook_query_fields .= ", thread.threadphoto AS threadphoto";

2 - add template - plugin 2
hook : global_start
code :
require_once(DIR . '/includes/adminfunctions_template.php');
$threadphoto = compile_template('<td class="alt2"><if condition="$show[\'threadicon\']"><img src="$thread[threadiconpath]" alt="$thread[threadicontitle]" border="0" /><else />&nbsp;</if></td>');
$threadphoto1 = compile_template('');
$vbulletin->templatecache['threadbit'] = str_replace($threadphoto ,$threadphoto1 .fetch_template('threadphoto_threadbit'),$vbulleti n->templatecache['threadbit']);
$threadphoto_Photowidth = $vbulletin->phrase[threadphoto_Photowidth];
$threadphoto_Photoheight = $vbulletin->phrase[threadphoto_Photoheight];

3 - in template [threadphoto_threadbit] put this

<if condition="$show[threadicons]">
<td class="alt2" align="center" valign="middle">
<if condition="$thread[threadphoto]">
<img src="$thread[threadphoto]" width="$vboptions[threadphoto_Photowidth]" height="$vboptions[threadphoto_Photoheight]" />
<else />
<if condition="$vboptions[threadphoto_DefaultPic]">
<img src="$vboptions[threadphoto_DefaultPic]" width="$vboptions[threadphoto_Photowidth]" height="$vboptions[threadphoto_Photoheight]" />
<else />
<if condition="$show[threadicon]">
<img src="$thread[threadiconpath]" alt="$thread[threadicontitle]" border="0" />
</if>
</if>
</td>
</if>
</if>

omardealo
02-14-2013, 05:48 PM
kh99 , Waiting u ...
thnx .

kh99
02-14-2013, 06:14 PM
I'm sorry, what question are you waiting for an answer for? I read the above but I thought it sounded like you had figured it out.

omardealo
02-16-2013, 01:30 AM
I'm sorry, what question are you waiting for an answer for? I read the above but I thought it sounded like you had figured it out.

Okay ... Sorry, what I wrote above was to clarify what i doing to benefit the others

that's my question
i used this code to add my temp in end template forumhome_lastpostby
eval('$forum[\'lastpostinfo\'] .= "' . fetch_template('threadphoto_forumhome') . '";');

but ...
i want put my template At the beginning of the template forumhome_lastpostby

thnx ...