Filter more groups some help for newbie

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 !

Filter more groups some help for newbie

Postby zouzou on Tue 21. Jun, 2005 16:49

hello all i need to set-up an acount like "guest, registred, modo, and admin" for example "vip" who are special members not admin not moderator who can navigate in to the forum for example without being distributed by the banners

so my question is how can i add this special group in the source code and what script i must change pls

ps: used version 2.x.x.15

thanks to all


see ya
Last edited by zouzou on Wed 22. Jun, 2005 11:02, edited 1 time in total.
zouzou
Poster
Poster
 
Posts: 3
Joined: Tue 21. Jun, 2005 16:42

Postby zouzou on Wed 22. Jun, 2005 03:42

i find this code and i think tha i must change , add here my criteria but how .....

file : includes/page_header.php

//
Code: Select all
// Complete banner
//
$time_now=time();
$hour_now=create_date('Hi',$time_now,$board_config['board_timezone']);
$date_now=create_date('Ymd',$time_now,$board_config['board_timezone']);
$week_now=create_date('w',$time_now,$board_config['board_timezone']);

$sql_level= ($userdata['user_id']==ANONYMOUS) ? ANONYMOUS : (($userdata['user_level']==ADMIN) ? MOD : (($userdata['user_level']==MOD) ? ADMIN : $userdata['user_level']));
Code: Select all
$sql = "SELECT DISTINCT banner_id, banner_name, banner_spot, banner_description, banner_forum, banner_type, banner_width, banner_height, banner_filter FROM ".BANNERS_TABLE ."
      WHERE banner_active
      AND IF(banner_level_type,IF(banner_level_type=1,".intval($sql_level)."<=banner_level,IF(banner_level_type=2,".intval($sql_level).">=banner_level,".intval($sql_level)."<>banner_level)),banner_level=".intval($sql_level).")
      AND (banner_timetype=0
      OR (( $hour_now BETWEEN time_begin AND time_end) AND ((banner_timetype=2
      OR (( $week_now BETWEEN date_begin AND date_end) AND banner_timetype=4)
      OR (( $date_now BETWEEN date_begin AND date_end) AND banner_timetype=6)
      )))) ORDER BY banner_spot,banner_weigth*SUBSTRING(RAND(),6,2) DESC";
if ( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, "Couldn't get banners data", "", __LINE__, __FILE__, $sql);
}
$banners = array();
$i=0;
while ($banners[$i] = $db->sql_fetchrow($result))
{
   $cookie_name = $board_config['cookie_name'] . '_b_' . $banners[$i]['banner_id'];
   if ( !($HTTP_COOKIE_VARS[$cookie_name] && $banners[$i]['banner_filter']) )
   {
      $banner_spot = $banners[$i]['banner_spot'];
      if ($banner_spot<>$last_spot  AND ($banners[$i]['banner_forum'] == $forum_id || empty($banners[$i]['banner_forum'])))
      {
         $banner_size = ($banners[$i]['banner_width'] && $banners[$i]['banner_height']) ? 'width="' . $banners[$i]['banner_width'] . '" height="' . $banners[$i]['banner_height'] . '"' : '';
         switch ($banners[$i]['banner_type'])
         {
            case 6:
               // swf file
               $template->assign_vars(array('BANNER_'.$banner_spot.'_IMG' => '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,23,0" id=macromedia '.$banner_size.' align="abscenter"><param name=movie value="'.$banners[$i]['banner_name'].'"><param name=quality value=high><embed src="'.$banners[$i]['banner_name'].'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" autostart="true" '.$banner_size.' /><noembed><a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank">'.$banners[$i]['banner_description'].'</a></noembed></object>'));
               break;
            case 4:
               // custom code
               $template->assign_var('BANNER_'.$banner_spot.'_IMG', $banners[$i]['banner_name'] );
               break;
            case 2:
               // Text link
               $template->assign_var('BANNER_'.$banner_spot.'_IMG', '<a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank" alt="'.$banners[$i]['banner_description'].'" title="'.$banners[$i]['banner_description'].'">'.$banners[$i]['banner_name'].'</a>');
               break;
            case 0:
            default:
               $template->assign_var('BANNER_'.$banner_spot.'_IMG', '<a href="'.append_sid('redirect.'.$phpEx.'?banner_id='.$banners[$i]['banner_id']).'" target="_blank"><img src="'.$banners[$i]['banner_name'].'" '.$banner_size.' border="0" alt="'.$banners[$i]['banner_description'].'" title="'.$banners[$i]['banner_description'].'" /></a>');
         }
         $banner_show_list.= ', '.$banners[$i]['banner_id'];
      }
      $last_spot = ($banners[$i]['banner_forum']==$forum_id || empty($banners[$i]['banner_forum'])) ? $banner_spot : $last_spot;
   }
   $i++;
}

//


here i must add the new group level in the line in red

and file : laguage/langxxx/lang_banner.php


Code: Select all
$lang['Banner_level']['-1'] = 'Guest';
$lang['Banner_level']['0'] = 'Registered';
$lang['Banner_level']['1'] = 'Moderator';
$lang['Banner_level']['2'] = 'Administrator';


here i must add my new group

but this piece of code specialy the first one i dont understand how and where the criteria get the user group level

can u pls explain or do this for us

i mean change this
Code: Select all
$lang['Banner_level']['-1'] = 'Guest';
$lang['Banner_level']['0'] = 'Registered';
$lang['Banner_level']['1'] = 'Moderator';
$lang['Banner_level']['2'] = 'Administrator';

to the realy forum group from the database for example i dont know how to do this cos i'am realy realy newbie in coding and using php so please help
zouzou
Poster
Poster
 
Posts: 3
Joined: Tue 21. Jun, 2005 16:42

Postby Niels on Fri 08. Jul, 2005 22:57

best way due to performance would be to add a extra feild in the DB (users table) -this could e.g. be a field called hide_banner
This is the SQL to do this wrote:ALTER TABLE `users` ADD `hide_banner` TINYINT DEFAULT '0' NOT NULL ;

ALTER TABLE `users` ADD INDEX ( `hide_banner` ) ;

- set this new field to 1 if the user should not see the banners.

then add to the SELECT sql
like
BEFORE wrote:WHERE banner_active

AFTER wrote:WHERE banner_active AND NOT hide_banner
(if a how-to is EM ready, it will mostly be bullet prof, since a machine is more picky than a human. :D)
User avatar
Niels
Poster
Poster
 
Posts: 4390
Joined: Sat 27. Jul, 2002 15:46

Postby zouzou on Sat 09. Jul, 2005 03:59

many many thanks man u done it tnaks
zouzou
Poster
Poster
 
Posts: 3
Joined: Tue 21. Jun, 2005 16:42


Return to Complete banner [2.0.6/EM]

Who is online

Users browsing this forum: No registered users and 1 guest

cron