PDA

View Full Version : Editing posbit_legacy. Problem with variables.


Seductor
08-03-2011, 12:23 PM
Hi,

I'm trying to edit postbit_legacy. I want to add a "Test" word above the avatar of certains groups in the postbit_legacy template.

I tried to do:
<vb:if condition="$post['usergroupid'] == '6'">Test</vb:if>
Where "6" is the group that I want to display the word "Test".

Then, it works but only for users that belong to the group "6". Other users doesn't see the Test word:


How could I fix it?

Thanks in advance.

kh99
08-03-2011, 12:28 PM
That's surprising, because I would think that $post has the info for the poster so the "viewing" user's group shouldn't have anything to do with it. But anyway, try this:

<vb:if condition="is_member_of($post, 6)">Test</vb:if>

Seductor
08-03-2011, 01:29 PM
Didn't work. It doesn't display the word test for everyone:
http://seduccioncientifica.com/foro/showthread.php?824-Noticias-del-foro-29-de-julio&p=4933#post4933

I can see it, only. The other users can't.

kh99
08-03-2011, 01:52 PM
Well, what happens if (just as a test) you do this:

<vb:if condition="1">Test</vb:if>

Seductor
08-03-2011, 02:14 PM
That is what I want to do, but the variable doesn't seem to be $post or... I don't know.

I think it works like this:
<vb:if reader=member_of_group_6 and poster=member_of_group6>Test</vb:if>

kh99
08-03-2011, 02:45 PM
OK. Sorry, there was a mistake in my post above. What I meant was, let's try an experiment: if you put this in your template:

<vb:if condition="1">Test</vb:if>

what do you see?

Seductor
08-03-2011, 03:30 PM
It shows "Test" above each avatar.

kh99
08-03-2011, 03:40 PM
Oh, OK, sorry - I guess I just misunderstood your answer. So that works like you want, with everyone able to see it.

Anyway, it doesn't make any sense to me - as far as I know, $post just has the info for the poster.

Seductor
08-03-2011, 04:05 PM
But I want to display "Test" above the avatars only for certain groups. I mean:

If usergroup = group_6 then
Display "Test"
else
Don't display "Test".


By the way, thanks for all.

RobbieZ
08-03-2011, 05:02 PM
What about..

<vb:if condition="is_member_of($bbuserinfo, 6)">Test</vb:if>

kh99
08-03-2011, 05:21 PM
But I want to display "Test" above the avatars only for certain groups.

Right. Sorry I'm just not being very clear. The condition="1" thing was just to see if it was the condition that was causing the problem. I realize that doesn't solve the issue.

When you say you want Test "above the avatar of certains groups" you mean the group of the poster (owner of the avatar), right?

Seductor
08-03-2011, 05:29 PM
This doesn't work unless I'm logged in. This code doesn't display not "Test1" nor "Test2" If I'm a guest or a regular user.
<vb:if condition="$post['field5']"> Test1<vb:if condition="is_member_of($post,6)">Test2</vb:if></vb:if>
Results:
https://vborg.vbsupport.ru/external/2011/08/114.png

--------------- Added 1312396804 at 1312396804 ---------------

What about..

<vb:if condition="is_member_of($bbuserinfo, 6)">Test</vb:if>

No RobbieZ, it retrieves the group of the viewer, not the group of the poster.

kh99
08-03-2011, 05:46 PM
I realize this doesn't help a lot, but just for the record, I put this in my postbit_legacy:

<vb:if condition="is_member_of($post, 6)">
Test
</vb:if>


...and I have a thread with two posts, one by an admin and one by a regular user. "Test" appears in the postbit of the admin's post and not in the other user's post, no matter who is viewing (admin, regular user, or guest). So it should be working for you.

Maybe try disabling plugins as a test to see if a plugin is affecting things.

Seductor
08-03-2011, 05:55 PM
I realize this doesn't help a lot, but just for the record, I put this in my postbit_legacy:

<vb:if condition="is_member_of($post, 6)">
Test
</vb:if>


...and I have a thread with two posts, one by an admin and one by a regular user. "Test" appears in the postbit of the admin's post and not in the other user's post, no matter who is viewing (admin, regular user, or guest). So it should be working for you.

Maybe try disabling plugins as a test to see if a plugin is affecting things.

Could you try to add something like...
<vb:if condition="$post['field5']">
You should change field5. Maybe you should try with field4.

I can't understand it, condition="$post['field5'] shouldn't be too problematic.

Thanks a lot.

kh99
08-03-2011, 06:09 PM
I changed it to this:

<vb:if condition="$post['field4']">
Test
</vb:if>


field4 is "Occupation". I set the occupation to "1" for the admin account and blank for the regular user account. So now I see "Test" in the admin post and nothing in the user post, as expected.

What do you see when you just insert {vb:raw post.field5} in the template?

Seductor
08-03-2011, 06:21 PM
I see a id number. It is harmless.

:confused:

kh99
08-03-2011, 06:33 PM
But do you see the id number, logged in or not?

Oh, I have an idea - are you viewing with the same style whether or not you're logged in? If the other users are using a different style they could be using a different postbit_legacy template. (Edit - but then I guess the condition="1" test wouldn't have worked).

Seductor
08-03-2011, 06:54 PM
It seems the same template, I think is the default one. However, perhaps they are using postbit instead of postbit_legacy.

I'm going to check it right now.

--------------- Added 1312401513 at 1312401513 ---------------

No, they are using the same template everytime. In fact, I'm using a simple text in the template and is it displayed everytime.

--------------- Added 1312483712 at 1312483712 ---------------

This is my postbit_legacy:

{vb:raw template_hook.postbit_start} <li class="postbitlegacy postbitim postcontainer" id="post_{vb:raw post.postid}"> <!-- see bottom of postbit.css for .userinfo .popupmenu styles -->
<div class="posthead">
<span class="postdate {vb:raw post.statusicon}">
<vb:if condition="$show['announcement']">
<span class="date">
{vb:rawphrase x_until_y, {vb:raw post.startdate}, {vb:raw post.enddate}}</span>
<vb:else />
<span class="date">
{vb:raw post.postdate}<vb:if condition="!$show['detailedtime']">
&nbsp;<span class="time">
{vb:raw post.posttime}</span>
</vb:if>
</span>
</vb:if>
</span>
<span class="nodecontrols">
<vb:if condition="$post['postid'] AND $post['threadid'] AND !$show['moderated']">
<a name="post{vb:raw post.postid}" href="{vb:link thread, {vb:raw thread}, {vb:raw pageinfo_post}}#post{vb:raw post.postid}" class="<vb:if condition="$show['inlinemod']">
ie</vb:if>
postcounter">
#{vb:raw post.postcount}</a>
<a id="postcount{vb:raw post.postid}" name="{vb:raw post.postcount}">
</a>
</vb:if>
<vb:if condition="$show['moderated']">
{vb:rawphrase moderated_post}</vb:if>
<vb:if condition="$show['inlinemod']">
<label for="post_imod_checkbox_{vb:raw post.postid}">
<input class="postimod" type="checkbox" id="post_imod_checkbox_{vb:raw post.postid}" name="plist[{vb:raw post.postid}]" value="{vb:raw post.checkbox_value}" />
</label>
</vb:if>
</span>
</div>
<div class="postdetails">
<div class="userinfo">
<div class="username_container">
<vb:if condition="$post['userid']">
{vb:raw memberaction_dropdown} {vb:raw post.onlinestatus} <vb:else />
<span class="username guest">
{vb:raw post.musername}</span>
</vb:if>
</div>
<span class="usertitle">
{vb:raw post.usertitle} </span>
<vb:if condition="$post['rank']">
<span class="rank">
{vb:raw post.rank}</span>
</vb:if>
{vb:raw template_hook.postbit_userinfo_left} <vb:if condition="$show['reputation']">
<span class="postbit_reputation" id="repdisplay_{vb:raw post.postid}_{vb:raw post.userid}">
{vb:raw post.reputationdisplay}</span>
</vb:if>





<vb:if condition="$post['field5']"> Test1<vb:if condition="is_member_of($post,6)">Test2</vb:if></vb:if>Test3






<vb:if condition="$show['avatar']">
<a class="postuseravatar" href="{vb:link member, {vb:raw post}}" title="{vb:rawphrase {vb:raw post['onlinestatusphrase']}, {vb:raw post.username}}">
<img src="{vb:raw post.avatarurl}" alt="{vb:rawphrase xs_avatar, {vb:raw post.username}}" title="{vb:rawphrase xs_avatar, {vb:raw post.username}}" />
</a>
</vb:if>
<vb:if condition="$post['userid']">
<hr />
<dl class="userinfo_extra">
<vb:if condition="$post['joindate']">
<dt>
{vb:rawphrase join_date}</dt>
<dd>
{vb:raw post.joindate}</dd>
</vb:if>
<vb:if condition="$post['field2']">
<dt>
{vb:rawphrase location_perm}</dt>
<dd>
{vb:raw post.field2}</dd>
</vb:if>
<vb:if condition="$post['age']">
<dt>
{vb:rawphrase age}</dt>
<dd>
{vb:raw post.age}</dd>
</vb:if>
<dt>
{vb:rawphrase posts}</dt>
<dd>
{vb:raw post.posts}</dd>
{vb:raw template_hook.postbit_userinfo_right_after_posts} </dl>
<vb:if condition="$show['infraction'] OR $show['reppower']">
<dl class="user_rep">
<vb:if condition="$show['infraction']">
<dt>
{vb:rawphrase infractions}</dt>
<dd>
{vb:raw post.warnings}/{vb:raw post.infractions} ({vb:raw post.ipoints})</dd>
</vb:if>
<vb:if condition="$show['reputation']">
<vb:if condition="$show['reppower']">
<dt>
{vb:rawphrase reppower}</dt>
<dd id="reppower_{vb:raw post.postid}_{vb:raw post.userid}">
{vb:raw post.reppower}</dd>
</vb:if>
</vb:if>
</dl>
</vb:if>
{vb:raw template_hook.postbit_userinfo_right} <div class="imlinks">
{vb:raw post.icqicon} {vb:raw post.aimicon} {vb:raw post.msnicon} {vb:raw post.yahooicon} {vb:raw post.skypeicon} </div>
</vb:if>
</div>
<div class="postbody">
<div class="postrow<vb:if condition="$show['postedited'] || $post['signature']">
has_after_content</vb:if>
">
{vb:raw template_hook.postbit_messagearea_start} <vb:if condition="$post['title'] OR $show['messageicon']">
<h2 class="title icon">
<vb:if condition="$show['messageicon']">
<img src="{vb:raw post.iconpath}" alt="{vb:raw post.icontitle}" />
</vb:if>
{vb:raw post.title} </h2>
</vb:if>
<vb:if condition="$post['isfirstshown']">
{vb:raw ad_location.ad_showthread_firstpost_start} {vb:raw ad_location.thread_first_post_content} </vb:if>
<vb:if condition="$post['islastshown']">
{vb:raw ad_location.thread_last_post_content} </vb:if>
<div class="content<vb:if condition="$show['first_ad'] OR $show['last_ad']">
hasad</vb:if>
">
<div id="post_message_{vb:raw post.postid}">
<blockquote class="postcontent restore ">
{vb:raw post.message} </blockquote>
</div>
<vb:if condition="$show['attachments']">
<div class="attachments">
<vb:if condition="$show['thumbnailattachment']">
<fieldset class="postcontent">
<legend>
<img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" alt="{vb:rawphrase attached_thumbnails}" />
{vb:rawphrase attached_thumbnails}</legend>
{vb:raw post.thumbnailattachments} </fieldset>
</vb:if>
<vb:if condition="$show['imageattachment']">
<fieldset class="postcontent">
<legend>
<img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" />
{vb:rawphrase attached_images}</legend>
{vb:raw post.imageattachments} </fieldset>
</vb:if>
<vb:if condition="$show['imageattachmentlink']">
<fieldset class="postcontent">
<legend>
<img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" />
{vb:rawphrase attached_images}</legend>
<ul>
{vb:raw post.imageattachmentlinks} </ul>
</fieldset>
</vb:if>
<vb:if condition="$show['otherattachment']">
<fieldset class="postcontent">
<legend>
<img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" />
{vb:rawphrase attached_files}</legend>
<ul>
{vb:raw post.otherattachments} </ul>
</fieldset>
</vb:if>
<vb:if condition="$show['moderatedattachment']">
<fieldset class="postcontent">
<legend>
<img src="{vb:stylevar imgdir_misc}/paperclip.png" class="inlineimg" />
{vb:rawphrase attachments_pending_approval}</legend>
<ul>
{vb:raw post.moderatedattachments} </ul>
</fieldset>
</vb:if>
</div>
<!-- / attachments -->
</vb:if>
</div>
</div>
<vb:if condition="$show['postedited'] || $post['signature']">
<div class="after_content">
<vb:if condition="$show['postedited']">
<!-- edit note -->
<blockquote class="postcontent lastedited">
<!-- <img src="{vb:stylevar imgdir_button}/edit_40b.png" class="inlineimg" alt="" />
-->
<vb:if condition="$show['postedithistory']">
{vb:rawphrase last_edited_link_by_x_on_y_at_z_postid, {vb:raw post.edit_username}, {vb:raw post.edit_date}, {vb:raw post.edit_time}, {vb:raw post.historyurl}} <vb:else />
{vb:rawphrase last_edited_by_x_on_y_at_z, {vb:raw post.edit_username}, {vb:raw post.edit_date}, {vb:raw post.edit_time}} </vb:if>
<vb:if condition="$post['edit_reason']">
<span class="reason">
{vb:rawphrase reason}:</span>
{vb:raw post.edit_reason} </vb:if>
</blockquote>
<!-- / edit note -->
</vb:if>
{vb:raw template_hook.postbit_signature_start} {vb:raw ad_location.ad_showthread_firstpost_sig} <vb:if condition="$post['signature']">
<blockquote class="signature restore">
<div class="signaturecontainer">
{vb:raw post.signature}</div>
</blockquote>
</vb:if>
{vb:raw template_hook.postbit_signature_end} </div>
</vb:if>
<div class="cleardiv">
</div>
</div>
</div>
<div class="postfoot">
<!-- <div class="postfoot_container">
-->
<div class="textcontrols floatcontainer">
<span class="postcontrols">
<img style="display:none" id="progress_{vb:raw post.postid}" src="{vb:stylevar imgdir_misc}/progress.gif" alt="{vb:rawphrase loading_editor_please_wait}" />
<vb:if condition="$post['editlink']">
<a class="editpost" href="{vb:raw post.editlink}" name="vB::QuickEdit::{vb:raw post.postid}">
<img src="{vb:raw vboptions.cleargifurl}" id="editimg_{vb:raw post.postid}" alt="{vb:rawphrase edit_delete_message}" />
{vb:rawphrase edit_post}</a>
<vb:if condition="THIS_SCRIPT != 'usernote' && THIS_SCRIPT != 'announcement'">
<span class="seperator">
&nbsp;</span>
</vb:if>
</vb:if>
<vb:if condition="$show['quickreply'] AND !$show['threadedmode']">
<a id="qr_{vb:raw post.postid}" class='quickreply' href="{vb:raw post.replylink}&amp;noquote=1" rel="nofollow">
<img id="replyimg_{vb:raw post.postid}" src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase quick_reply_to_this_message}" />
{vb:rawphrase reply}</a>
<span class="seperator">
&nbsp;</span>
</vb:if>
<vb:if condition="$post['replylink']">
<a id="qrwq_{vb:raw post.postid}" class="newreply" href="{vb:raw post.replylink}" rel="nofollow">
<img id="quoteimg_{vb:raw post.postid}" src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase reply_with_quote}" />
<vb:if condition="$post['forwardlink']">
{vb:rawphrase reply_to_private_message}<vb:else />
{vb:rawphrase reply_with_quote}</vb:if>
</a>
<vb:if condition="$show['multiquote_post']">
<span class="seperator">
&nbsp;</span>
</vb:if>
</vb:if>
<vb:if condition="$show['multiquote_post']">
<a class="multiquote" href="{vb:raw post.replylink}" rel="nofollow" onclick="return false;" id="mq_{vb:raw post.postid}">
<img id="mq_image_{vb:raw post.postid}" src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase multi_quote_this_message}" />
&nbsp;</a>
</vb:if>
</span>
<span class="postlinking">
<vb:if condition="!$post['forwardlink'] && THIS_SCRIPT != 'usernote' && THIS_SCRIPT != 'announcement'">
<vb:if condition="$promote_sectionid AND $promote_sectionid != -1">
<a href="{vb:raw promote_url}" class="promotecms">
{vb:rawphrase promote_to_article}</a>
<span class="seperator">
&nbsp;</span>
</vb:if>
</vb:if>
{vb:raw template_hook.postbit_controls} {vb:raw post.iplogged} <vb:if condition="$post['forwardlink']">
<a class="forwardpost" href="{vb:raw post.forwardlink}" rel="nofollow">
<img src="{vb:raw vboptions.cleargifurl}" alt="{vb:rawphrase forward_message}" />
{vb:rawphrase forward}</a>
<vb:if condition="$show['reputationlink'] OR $show['infractionlink'] OR $show['moderated'] OR $show['spam'] OR $show['deletedpost'] OR $show['redcard'] OR $show['yellowcard']">
<span class="seperator">
&nbsp;</span>
</vb:if>
</vb:if>
<vb:if condition="$show['reputationlink']">
<span class="reputationpopupmenu popupmenu popupcustom" title="{vb:raw post.postid}">
<a class="popupctrl reputation" href="reputation.php?{vb:raw session.sessionurl}do=addreputation&amp;p={vb:raw post.postid}" title="{vb:rawphrase add_reputation}" rel="nofollow" id="reputation_{vb:raw post.postid}">
<!--<img src="{vb:stylevar imgdir_button}/reputation-40b.png" alt="{vb:rawphrase add_reputation}" />
-->
&nbsp;</a>
</span>
</vb:if>
<vb:if condition="$show['infractionlink']">
&nbsp;<a class="infraction" href="infraction.php?{vb:raw session.sessionurl}do=report&amp;p={vb:raw post.postid}" rel="nofollow" title="{vb:rawphrase add_infraction_for_x, {vb:raw post.username}}">
<!-- <img src="{vb:stylevar imgdir_button}/add-infraction_sm.png" alt="{vb:rawphrase add_infraction_for_x, {vb:raw post.username}}" />
-->
&nbsp;</a>
&nbsp; </vb:if>
<vb:if condition="$show['reportlink']">
&nbsp;<a class="report" href="{vb:raw post.reportlink}" rel="nofollow" title="{vb:rawphrase report_bad_post}">
<!-- <img src="{vb:stylevar imgdir_button}/report-40b.png" alt="{vb:rawphrase report_bad_post}" />
-->
&nbsp;</a>
&nbsp; </vb:if>
<vb:if condition="$show['moderated']">
<img class="moderated" src="{vb:stylevar imgdir_misc}/moderated_sm.png" alt="{vb:rawphrase moderated_post}" />
</vb:if>
<vb:if condition="$show['spam']">
<img class="spam" src="{vb:stylevar imgdir_misc}/spam_detected.png" alt="{vb:rawphrase spam_post}" />
</vb:if>
<vb:if condition="$show['deletedpost']">
<vb:if condition="$show['managepost']">
<a class="deleted" href="{vb:raw $vboptions.vbforum_url}{vb:if "$vboptions['vbforum_url']", '/', ''}postings.php?{vb:raw session.sessionurl}do=managepost&amp;p={vb:raw post.postid}" title="{vb:rawphrase manage}">
&nbsp;</a>
<vb:else />
<img class="deleted_nolink" class="inlineimage" src="{vb:stylevar imgdir_button}/deleted_sm.png" alt="{vb:rawphrase deleted_post}" />
</vb:if>
</vb:if>
<vb:if condition="$show['redcard']">
<a class="redcard" href="infraction.php?{vb:raw session.sessionurl}do=view&amp;p={vb:raw post.postid}" rel="nofollow" title="{vb:rawphrase received_infraction}">
<!-- <img src="{vb:stylevar imgdir_button}/red-card_sm.png" alt="{vb:rawphrase received_infraction}" />
-->
&nbsp;</a>
<vb:elseif condition="$show['yellowcard']" />
<a class="yellowcard" href="infraction.php?{vb:raw session.sessionurl}do=view&amp;p={vb:raw post.postid}" rel="nofollow" title="{vb:rawphrase received_warning}">
<!--<img src="{vb:stylevar imgdir_button}/yellow-card_sm.png" alt="{vb:rawphrase received_warning}" />
-->
&nbsp;</a>
</vb:if>
<vb:if condition="$post['api_platform']">
<vb:if condition="$post['api_platform_link']">
<a class="mobile mobile_{vb:raw post.api_platform}" href="{vb:raw post.api_platform_link}" rel="nofollow" title="{vb:rawphrase {vb:raw post['api_platform_link_title']}}">
{vb:rawphrase {vb:raw post['api_platform_link_phrase']}}</a>
<vb:else />
<span class="mobile mobile_{vb:raw post.api_platform}">
{vb:rawphrase {vb:raw post['api_platform_link_phrase']}}</span>
</vb:if>
</vb:if>
</span>
<!-- </div>
-->
</div>
</div>
<hr />
</li>
{vb:raw template_hook.postbit_end}

Seductor
08-05-2011, 07:24 PM
Up!

kh99
08-05-2011, 07:59 PM
I put that in my style, and I took out the $post['field5'] if so that line is

<vb:if condition="is_member_of($post,6)">Test2</vb:if>Test3


and I see Test2Test3 under the admin avatar, and Test3 under the regular user, no matter if I'm logged in as admin, or not logged in at all.

I'm not sure what else to tell you - try disabling all plugins if you haven't done that already. Or try uploading the vb files again.

Edit: if you just put {vb:raw post.usergroupid} in the template, do you see what you expect (probably 6 or 2) no matter who is logged in? Should be the same for each post no matter who you're loggedin as, of course.

Seductor
08-05-2011, 08:21 PM
Edit: if you just put {vb:raw post.usergroupid} in the template, do you see what you expect (probably 6 or 2) no matter who is logged in? Should be the same for each post no matter who you're loggedin as, of course.

It is the same, you are right.

I disabled all the plugins withous success. Anyway, I asked vBulletin.com and they said they couldn't help me because "it is a modification".

Maybe I should stop trying it?

Thanks for all kh99, you helped me a lot. :up::up::up:

kh99
08-05-2011, 08:26 PM
Well, if it isn't working there's something wrong. If you can see the correct user group id, then

<vb:if condition="$post['usergroupid'] == 6">

</vb:if>


should be working for you. We determined that condition="1" works, so we're pretty much down to the point where there's nothing left except PHP not working right! (Well, OK, not quite - you could look at the compiled template and see what PHP is being evaluated).

Seductor
08-06-2011, 08:59 AM
Sorry, but what do you mean by compiled template? Do you mean the postbit_legacy or the .php file?

kh99
08-06-2011, 11:49 AM
I mean the PHP code that is eval()'d when the template is rendered. At some point it will be in $vbulletin->templatecache['postbit_legacy'] and you could display it or write it to a file.

Seductor
12-11-2011, 12:20 AM
Solved it, at last. The problem is that field5 was a private field. That is why I saw it but other members didn't.