Hide banners for users with a rank

a complete banner management system, any number of banners can be added
Forum rules
The content in this forum is dated Dec. 21 2005 and can be used as Archive only. This Forum is LOCKED and READ ONLY !

Hide banners for users with a rank

Postby corny on Thu 17. Mar, 2005 16:04

Hi,

I've made a change to Niels' banner MOD. My modification makes it possible to hide banners from users with a certain rank.

I tried to make a howto, it is not easyMOD compatible I think :oops:

I hope it is useful.

Code: Select all
sql query to add the desired column to the banners table (default setting = 1 means banners default hidden to site admins)

ALTER TABLE `phpbb_banner` ADD `banner_hide_from` TINYINT( 2 ) DEFAULT '1' NOT NULL


OPEN
page_header.php

FIND
$sql = "SELECT DISTINCT banner_id

BEFORE ADD
$sql_banner_hide_rank = ($userdata['user_rank'] > 0) ? " OR " . $userdata['user_rank'] . " < banner_hide_from)" : ")";
$sql_banner_hide = "AND (banner_hide_from=0";
$sql_banner_hide.= ($userdata['user_id'] == ANONYMOUS) ? " OR 1)" : $sql_banner_hide_rank;

FIND
      WHERE banner_active
     
AFTER ADD
      $sql_banner_hide


OPEN
admin\admin_banner.php

FIND
            $banner_example = '<a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banner_info['banner_id']).'" target="_blank"><img src="'.$banner_info['banner_name'].'" '.$banner_size.' border="0" alt="'.$banner_info['banner_description'].'" title="'.$banner_info['banner_description'].'" /></a>';
      }

AFTER ADD
      $banner_hide_from = $banner_info['banner_hide_from'];

FIND
         'L_NO' => $lang['No'],

AFTER ADD
         'BANNER_HIDE_FROM' => $banner_info['banner_hide_from'],
         'L_BANNER_HIDE_FROM' => $lang['Banner_hide_from'],
         'L_BANNER_HIDE_FROM_EXPLAIN' => $lang['Banner_hide_from_explain'],

FIND
      if( !empty($banner_id) )

BEFORE ADD
      $banner_hide_from = ( isset($HTTP_POST_VARS['banner_hide_from']) ) ? intval($HTTP_POST_VARS['banner_hide_from']) : 0;

FIND
               date_begin=$date_begin, date_end=$date_end, time_begin=$time_begin, time_end=$time_end,

AFTER ADD
               banner_hide_from=$banner_hide_from,

FIND
         $sql = "INSERT INTO " . BANNERS_TABLE . " (banner_id, banner_name, banner_active, banner_spot, banner_description, banner_url, banner_click, banner_view, banner_owner, banner_level, banner_level_type, banner_timetype, time_begin, time_end, date_begin, date_end, banner_comment, banner_type, banner_width, banner_height, banner_filter, banner_filter_time,banner_weigth,banner_hide_from)
            VALUES ('$banner_id','" . str_replace("\'", "''", $banner_name) . "', '$banner_active', '$banner_spot', '" . str_replace("\'", "''", $banner_description) . "', '" . str_replace("\'", "''", $banner_url) . "', '$banner_click', '$banner_view', '".$owner['user_id']."', '$banner_level', '$banner_level_type', '$time_type', '$time_begin', '$time_end', '$date_begin', '$date_end', '" . str_replace("\'", "''", $banner_comment) . "','$banner_type','" . str_replace("\'", "''", $banner_width) . "','" . str_replace("\'", "''",
$banner_height) . "','$banner_filter','$banner_filter_time','$banner_weigth','banner_hide_from')";

INLINE FIND
,banner_weigth

INLINE AFTER ADD   
,banner_hide_from

INLINE FIND
,'$banner_weigth'

INLINE AFTER ADD
,'banner_hide_from'


OPEN
templates\subSilver\admin\banner_edit_body.tpl


FIND
   <tr>
      <td class="row1" width="38%"><span class="gen">{L_BANNER_WEIGTH}:</span><br />
      <span class="gensmall">{L_BANNER_WEIGTH_EXPLAIN}</span></td>
      <td class="row2"><input type="text" name="banner_weigth" size="2" maxlength="2" value="{BANNER_WEIGTH}" /></td>
   </tr>

BEFORE ADD
   <tr>
      <td class="row1" width="38%"><span class="gen">{L_BANNER_HIDE_FROM}:</span><br />
      <span class="gensmall">{L_BANNER_HIDE_FROM_EXPLAIN}</span></td>
      <td class="row2"><input type="text" name="banner_hide_from" size="2" maxlength="2" value="{BANNER_HIDE_FROM}" /></td>
   </tr>

OPEN
language\lang_english\lang_banner.php

FIND
?>

BEFORE ADD
$lang['Banner_hide_from'] = 'Hide banner for users';
$lang['Banner_hide_from_explain'] = 'The banner is hidden for users with a rank higher than the value you set here. A value of 0 means that every user sees the banner.';

SAVE/CLOSE ALL FILES



BTW, this code hide banner for users with a rank equal or higher than the one set for that banner. Of course it is possible to hide it only for users with a rank equal. If you would like to, you would have to change

Code: Select all
$userdata['user_rank'] . " < banner_hide_from)"


to

Code: Select all
$userdata['user_rank'] . " = banner_hide_from)"
Regards,
Cornelis
corny
Poster
Poster
 
Posts: 20
Joined: Tue 29. Jun, 2004 14:53

Return to Complete banner [2.0.6/EM]

Who is online

Users browsing this forum: No registered users and 1 guest

cron