PDA

View Full Version : Request: VB3 Administrative Post Custome Background.


Aceman
01-11-2004, 01:06 AM
I have seen this hack before on older versions of VB but please read the entire request and you'll understand what I'm asking for.

Request: I'm wondering if it would be possible to create a way to allow ADMINS or MODERATORS posts to have a CUSTOM background color, WHEN they are posting something that is in an "OFFICAL" copacity. This would have to be an option that they select when making a post, that signifies that this post is offical and NOT just a standard post. In essence this would highlite a Offical administrative post in the thread so it stood out from a standard post. If the admin/mod did NOT select the special highlite option their post would apprear normally.

I'd like this because sometimes it's nice to post something "offical" in a thread that stands out as a way of saying, "Hey... stop what your doing." But for normal posting to threads it would be nice to just blend in like everyone else.

Anyone got any ideas?

Aceman

Aceman
01-13-2004, 12:08 PM
What? No ideas? nothing?

Aceman

Aceman
01-20-2004, 01:04 PM
Would anyone be able to point me to a hack that kinda does this so I can code it myself and then release it.. I'm not bad at coding.. it's just I'm really not sure where to start with this?

Aceman

Xenon
01-20-2004, 02:48 PM
in vb3 this is very easy, as you can use template conditionals.

all you have to do is to set up a new field in the post table (for example 'isofficial') and then add a checkbox to the newreply template to chenge the value of it.

then in the postbit template just use a condition if the isofficial is set or not

Aceman
01-20-2004, 07:40 PM
Interesting idea Xenon.. thank you for the guideance I'll see what I can come up with.

Aceman

Xenon
01-20-2004, 09:17 PM
np :)

looking forward to see this hack :)

Aceman
01-21-2004, 02:53 AM
I have hit a stumbing block in the development of this hack because I'm not firm on the proper use of the <if> condictionals. If you think you can help please continue to read.

1. First I decided to add the "Offical SFM Administrative Posting?" checkbox option to the quickreply. If I get this working right I'll add this to the new_reply. To add this I used the following code in the template "showthread_quickreply".

<!-- Aceman ADDON -->
<if condition="$show['admincplink']">
<label for="qr_isoffical">
<input type="checkbox" name="isoffical" value="1" id="qr_isoffical" tabindex="6" />
$vbphrase[isoffical]
</label>
</if>
<!-- Aceman ADDON END-->

The <if condition> make this ONLY visible to an admin on my forums, to everyone else it simply does not show. I used this method because I don't yet know how to make this visible to admin and moderators.. so I used this for now.. if you know how to set this up for groups.. please tell me the proper coding.

2. I then setup a PHRASE called "isoffical" with the text: "Offical SFM Administrative Posting?" you can see this in the attached image.

3. I'm at the step now where I need to use a perticular <table> command based on if isoffical = 1 or 0. If it = 1 then use this. **I think this is done in the postbit template.. not sure **

<table width="100%" border="0" align="center" cellpadding="$stylevar[cellpadding]" cellspacing="0" bgcolor="#990000" class="tborder">

if it = 0 then use this

<table width="100%" border="0" align="center" cellpadding="$stylevar[cellpadding]" cellspacing="0" class="tborder"> ((note: bgcolor="#990000" is missing in this version))

The conditional I have started doesn't work.. but I need two <if condition=?????><if> with the above <table> information in between I just don't know what's the best way to do this..

Can anyone help a lost sole who's making an effort?

Aceman

Aceman
01-21-2004, 02:55 AM
<a href="https://vborg.vbsupport.ru/attachment.php?attachmentid=16111" target="_blank">https://vborg.vbsupport.ru/attac...chmentid=16111</a> shows the attachment.

Aceman
01-21-2004, 03:01 AM
In addition,

If your a vb-coding pro and I'm completely doing this incorrectly. Please tell me what might be easier and I'll do that.. I'm not asking anyone to do this hack for me.. I'm learning.. I'm just seeking alittle expert guidance from those of you who are uber coders.

Thanks in advance.
Aceman

Aceman
01-21-2004, 12:27 PM
::from the bottom of a bucket::

Help me!

Xenon
01-21-2004, 03:42 PM
please, don't post such often in a line, not everyone is here during the whole day ;)

the first thing:
<if condition="$show['admincplink']">

can be replaced by
<if contidion="in_array($bbuserinfo['usergroupid'], array(5,6,7))">

that allows all admins/mods/sm's to use the checkbox (primary usergroup counts)

second condition:


<if condition="$post['isofficial'] == 1">
<table width="100%" border="0" align="center" cellpadding="$stylevar[cellpadding]" cellspacing="0" bgcolor="#990000" class="tborder">
<else />
<table width="100%" border="0" align="center" cellpadding="$stylevar[cellpadding]" cellspacing="0" class="tborder">
</if>

and yes, postbit is the correct template (or postbit_legacy, depending on your settings ;))

Aceman
01-21-2004, 05:59 PM
I tried your code:

<if contidion="in_array($bbuserinfo['usergroupid'], array(5,6,7))">

And repeated get this message:

"The following error occurred when attempting to evaluate this template:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/aceman/public_html/forums/includes/adminfunctions_template.php(2998) : eval()'d code on line 148

This is likely caused by a malformed conditional statement. It is highly recommended that you fix this error before continuing, but you may continue as-is if you wish."

When I put back my orginal code it seems to work, meaning I don't get the error message.

As for editing the Postbit_legacy template. I placed the code you indicated above.. made a post in the quickreply and checked the box.. but nothing changes visually when thread is shown. So I'm not sure if my FORM is properly setup so that it looks for the "isoffical" == 1.

This is the coding I used in showthread_quickreply"


<if condition="$show['admincplink']">
<label for="qr_isoffical">
<input type="checkbox" name="isoffical" value="1" id="qr_isoffical" tabindex="6" />$vbphrase[isoffical]</label>
</if>


Thank you in advance
Aceman

and I'll wait before I post again to hear from someone.

Vigile
01-21-2004, 07:47 PM
I tried your code:

<if contidion="in_array($bbuserinfo['usergroupid'], array(5,6,7))">

And repeated get this message:

"The following error occurred when attempting to evaluate this template:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/aceman/public_html/forums/includes/adminfunctions_template.php(2998) : eval()'d code on line 148

This is likely caused by a malformed conditional statement. It is highly recommended that you fix this error before continuing, but you may continue as-is if you wish."

When I put back my orginal code it seems to work, meaning I don't get the error message.

As for editing the Postbit_legacy template. I placed the code you indicated above.. made a post in the quickreply and checked the box.. but nothing changes visually when thread is shown. So I'm not sure if my FORM is properly setup so that it looks for the "isoffical" == 1.

This is the coding I used in showthread_quickreply"


<if condition="$show['admincplink']">
<label for="qr_isoffical">
<input type="checkbox" name="isoffical" value="1" id="qr_isoffical" tabindex="6" />$vbphrase[isoffical]</label>
</if>


Thank you in advance
Aceman

and I'll wait before I post again to hear from someone.
maybe im crazy or just out of it with too little sleep, but does not the ' ' needto be removed, making:

<if contidion="in_array($bbuserinfo['usergroupid'], array(5,6,7))">


into


<if contidion="in_array($bbuserinfo[usergroupid], array(5,6,7))">


with the same needing to be modified in the second condition as Xenon posted?

Just slap me if Im out of it. thanx.

NTLDR
01-21-2004, 07:57 PM
Array indexes should be quoted within the <if> condition, but not elsewhere in the templates ;)

Zachery
01-21-2004, 08:33 PM
btw the class might overright that color Xenon for tborder... just a note

might want to use style instead

Xenon
01-21-2004, 10:52 PM
btw the class might overright that color Xenon for tborder... just a note

might want to use style instead
i just provided the conditional, i have not looked if the html code itself does what it should ;)

as for the conditional, hmm, it works for me, as i have used it several times already..

Aceman
01-22-2004, 12:37 AM
Vigile - Your modified conditional works perfectly.

I'm still trying to get the table to change the background.. when the condition == 1 :) I'm still pluggin away.. if anyone has an idea lemme know.

I'll keep you informed.

BTW- Thanks for all the help.. you all are great.
Aceman

Zachery
01-22-2004, 12:44 AM
i just provided the conditional, i have not looked if the html code itself does what it should ;)

as for the conditional, hmm, it works for me, as i have used it several times already..
well im fairly sure its just not XHTML standard >.< but just a thought :)

Aceman
01-22-2004, 01:28 AM
Just a quick update. I think I got it working.. and I say "think" because I'm really not sure..

When I made a new post via quickreply the thread appreared "RED" #990000 for a split second then turned blue like the theme I'm in.. so I think somehow the appearance of the thread is getting overriden when it's displayed so I'm now sifting through the code to find where then might be happening. More soon.

The Code I used for postbit_legacy is:


<!-- post #$post[postid] -->
<if condition="$show['spacer']">$spacer_open<if condition="!$post['islastshown']"><div style="padding:0px 0px $stylevar[cellpadding]px 0px"></if></if>
<!--
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="0" border="0" width="100%" align="center"> -->
<if condition="$post[isofficial] == 1">
<table width="100%" border="0" align="center" cellpadding="$stylevar[cellpadding]" cellspacing="0" class="tborder">
<else />
<table width="100%" border="0" align="center" cellpadding="$stylevar[cellpadding]" cellspacing="0" bgcolor="#990000" class="tborder">
</if>
<tr>
<td class="thead" style="font-weight:normal" $scrolltothis>
<!-- status icon and date -->
<a name="post$post[postid]"><img src="$stylevar[imgdir_statusicon]/post_$post[statusicon].gif" alt="$post[statustitle]" border="0" /></a>
<if condition="!$show['start_until_end']"> $post[postdate]<if condition="!$show['detailedtime']">,
$post[posttime]</if> <else /> $post[startdate] until $post[enddate] </if>
$post[firstnewinsert]
<!-- / status icon and date -->
</td>

REMAINDER IS UNCHANGED.

Vigile
01-22-2004, 03:11 AM
Array indexes should be quoted within the <if> condition, but not elsewhere in the templates ;)
I dunno... I can only tell ya what tinkering issues I have run into..

any point in a template, that has $sumtin[sumtin] having $sumtin['sumtin'] ,whether inside an if conditional or not, has never worked when I do it. Im not sure why, just told him what works for me. :)

NTLDR
01-22-2004, 09:19 AM
Aceman: As Faranth said above the class over-rides your background colour, you need to remove class="tborder" from the "isoffical" table code.

TranceMaster
01-22-2004, 08:08 PM
hi all
is this possible in vb version 2.29?
id love to use this feature.

Aceman
01-22-2004, 09:49 PM
If I can get it working I don't see why not..

Btw - I removed the "class="tborder" and still doesn't showup.

Aceman