PDA

View Full Version : Miscellaneous Hacks - Replace 1st & 2nd signatures with ads/other code


karlm
06-21-2007, 10:00 PM
Hi all,

I was thinking of a way to place advertisements in my forum without distrupting the display too much... this is what I came up with.

Enter your ADMIN CP, select Styles & Templates, then select Style Manager and open up the skin you wish to amend (the main skin would be the obvious choice, or all if necessary) and finally, expand all template groups fully and select postbit.

Seach for:
<!-- sig -->
<div>
__________________<br />
$post[signature]
</div>
<!-- / sig -->
And replace it with the below code.

<!-- sig -->
<br />
<if condition="$post['signature']">
<!-- applying adsense to FIRST post -->
<if condition="(($post[postcount] % $vboptions[maxposts] == 1)) and (!is_member_of($bbuserinfo,30))">
<span style="margin: 2px; float: left; width: 730px; height: 20px;">

<!-- YOUR GOOGLE CODE FOR 728*15 GOES HERE -->

</span><br />
</if>
<!-- applying adsense to FIRST post -->
<else />
<!-- applying adsense to FIRST post -->
<if condition="(($post[postcount] % $vboptions[maxposts] == 1)) and (!is_member_of($bbuserinfo,30))">
<span style="margin: 2px; float: left; width: 730px; height: 20px;">

<!-- YOUR GOOGLE CODE FOR 728*15 GOES HERE -->

</span>
<br /></if>
<!-- applying adsense to FIRST post -->
</if>
<if condition="(($post[postcount] % $vboptions[maxposts] == 1)) and (is_member_of($bbuserinfo,30))">
<fieldset style="color: #666666"><legend>$post[username]'s Sig:</legend><div class="smallfont">
$post[signature]</div></fieldset></if>

<!-- applying adsense to SECOND post -->
<if condition="$post['signature'] and (($post[postcount] % $vboptions[maxposts] == 2)) and (!is_member_of($bbuserinfo,30))">
<span style="margin: 2px; float: left; width: 730px; height: 90px;">

<!-- YOUR GOOGLE CODE FOR 728*90 GOES HERE -->

</span><br />
<!-- applying adsense to SECOND post -->
<else />
<!-- applying adsense to SECOND post -->
<if condition="(($post[postcount] % $vboptions[maxposts] == 2)) and (!is_member_of($bbuserinfo,30))">
<span style="margin: 2px; float: left; width: 730px; height: 90px;">

<!-- YOUR GOOGLE CODE FOR 728*90 GOES HERE -->

</span><br /></if></if>
<!-- applying adsense to SECOND post -->
<if condition="(($post[postcount] % $vboptions[maxposts] == 2)) and (is_member_of($bbuserinfo,30))">
<fieldset style="color: #666666"><legend>$post[username]'s Sig:</legend><div class="smallfont">
$post[signature]</div></fieldset></if>
<if condition="(($post[postcount] % $vboptions[maxposts] >= 3)) and $post['signature']">
<fieldset style="color: #666666"><legend>$post[username]'s Sig:</legend><div class="smallfont">
$post[signature]</div></fieldset></if>
<!-- / sig -->


What this code does is it checks a few conditions.

1) It checks whether the post displayed is the first or second.
2a) If it is the 1st it then checks whether user has a signature or not.
2b) If it is the 2nd it then checks whether user has a signature or not.
3a) If the user has a signature (post #1), it replaces it with a google link-unit 728x15.
3b) If the user has a signature (post #2), it replaces it with a google link-unit 728x90.
4) If the user doesn't have a signature - it uses the google-ad code regardless for both posts #1 and #2.
5) It also checks whether the viewer (not the poster) is on a subscription group and removes all adverts as well as leaving the original signatures in place. This serves as a great way to promote membership contribution.

6) It does a last check that makes sure any posts of #3 or above are ignored for signature replacing. This works on a page by page basis. So, for example, if you had a thread with 35 replies, spread over four pages (10,10,10,5), it would replace posts 1,2,11,12,21,22,31 and 32.

Remember you need to amend the a code to reflect the usergroup that YOUR forum uses for ad-less usergroup. In MY example, it is usergroup 30, yours will undoubtedly be a different number/s. If you have multiple usergroups that do not see adverts (e.g. supports, admins & mods), then simply use a comma to separate them:
<if condition="(($post[postcount] % $vboptions[maxposts] == 2)) and (is_member_of($bbuserinfo,30,31,32))">
I'm fairly confident there must be a considerably smaller & quicker means of doing this - but I'm not overly experienced with php. This is my second offering of a 'hack'. It works well on my forum and the members seem not to mind it at all.

If you use it at all - even for just 20 minutes - please leave feed back of your thoughts and don't forget to click Install if you actually make use of it on a live forum.

Thank you, and enjoy!

karlm
06-22-2007, 12:11 PM
For a working demonstration, drop by my forum and select any thread you want.

rjmjr69
06-23-2007, 02:55 AM
How many queries does this add?

karlm
06-23-2007, 08:13 PM
Erm.
God knows.

Seriously, I've no idea at all... Sorry.

jmw
09-28-2007, 09:54 PM
Erm.
God knows.

Seriously, I've no idea at all... Sorry.

LOL! Can't install.

yoyoyoyo
09-29-2007, 01:14 AM
I think that this would seriously upset many of the users on my forum - they are quite attached to their sigs.