################################################# db query

ALTER TABLE `bb_bt_torrents` ADD `anon_allow` INT( 1 ) NOT NULL DEFAULT '0'
ALTER TABLE `bb_bt_users` (`user_id`,`auth_key`,`u_up_total`,`u_down_total`,`u_up_release`,`u_up_bonus`)
VALUES (-1, `1111111111`,0,0,0,0);

################################################# config.php 

$bb_cfg['allow_tags']         = true;

#################################################  

$bb_cfg['allow_download_guest'] = true; //  .   .
$bb_cfg['allow_download_guest_all'] = true; //       .

tr_ratio.php 

    if ($seeder && $tr_cfg['limit_seed_count'] && $row['active_torrents'] >= $tr_cfg['limit_seed_count'])
    {

#################################################  

   if (($bb_cfg['allow_download_guest'] == true) && ($user_id == ANONYMOUS)) {
   } else {

################################################# 

      msg_die('Only '. $tr_cfg['limit_leech_count'] .' torrent(s) allowed for leeching'. $rating_msg);
    }

#################################################  

  }
  
################################################# includes/functions_torrent.php 

// Redirect guests to login page

#################################################  

  if (!$bb_cfg['allow_download_guest'])
  {

################################################# 

     redirect(LOGIN_URL . $redirect_url);
   }

#################################################  

  }
  
################################################# 

    message_die(GENERAL_ERROR, $lang['Passkey_err_tor_not_reg']);
  }

#################################################  

  if (!$bb_cfg['allow_download_guest'])
  {

################################################# 

      message_die(GENERAL_ERROR, 'Could not add passkey<br /><br />You are not authorized to use passkey');
    }

#################################################  
  } 
  
################################################# 

$passkey_url = (!$userdata['session_logged_in'] || isset($_GET['no_passkey'])) ? '' : "?$passkey_key=$passkey_val&";

################################################# 

  if (!$bb_cfg['allow_download_guest'])
  {
    $passkey_url = (!$userdata['session_logged_in'] || isset($_GET['no_passkey'])) ? '' : "?$passkey_key=$passkey_val&";
  } else {
    $passkey_url = "?$passkey_key=$passkey_val&";
  }

#################################################  viewtopic.php

p.*,
  
#################################################     

 t.attach_id, t.anon_allow, ts.*,
 
#################################################  

  $template->assign_block_vars('postrow', array(
  
#################################################  

 if ($bb_cfg['allow_download_guest_all'])
 {
  $d_url = $postrow[$i]['attach_id'] ? '<a class="anon_link" href="download.php?id='.$postrow[$i]['attach_id'].'" />  </a>' : '';
 }
 elseif ($bb_cfg['allow_download_guest'] && $postrow[$i]['anon_allow'])
 { 
  $d_url = $postrow[$i]['attach_id'] ? '<a class="anon_link" href="download.php?id='.$postrow[$i]['attach_id'].'" />  </a>' : '';
 } else {
  $d_url = '';
 } 
 $attach_present = $postrow[$i]['attach_id'] ? true : false; 
 $allow_for_guest = $postrow[$i]['anon_allow'] ? '<b style="color: #fff; background: #FF0000;">'.$lang['ALLOW_DL_GUEST'].'</b>' : '<b style="color: #fff; background: #007700;">'.$lang['NOT_ALLOW_DL_GUEST'].'</b>';

################################################# 

  $template->assign_block_vars('postrow', array(
  
#################################################  

    'ATTACH_PRESENT'     => $attach_present,
    'SEED'               => $postrow[$i]['seeders'] ? $postrow[$i]['seeders'] : 0,
    'LEECH'              => $postrow[$i]['leechers'] ? $postrow[$i]['leechers'] : 0,
    'SPEED_UP'           => $postrow[$i]['speed_up'] ? $postrow[$i]['speed_up'] : 0,
    'SPEED_DOWN'         => $postrow[$i]['speed_down'] ? $postrow[$i]['speed_down'] : 0,
    'ALLOW_FOR_GUEST'    => $allow_for_guest,
    'D_URL'              => $d_url,  

#################################################  viewtopic_attach.tpl  

    <td>{postrow.attach.tor_reged.TORRENT_SIZE}</td> 
  </tr>
  
#################################################    

<!-- IF SHOW_ADMIN_OPTIONS -->
<script type="text/javascript">
function type_change() {ajax.type_change();}
ajax.type_change=function(){ajax.exec({action:'type_change',attach_id : {postrow.attach.tor_reged.ATTACH_ID}});};
ajax.callback.type_change = function(data){$('#torrent_type').html(data.html);};
</script>
  <tr class="row1">
    <td>. torrent:</td>
    <td>
      <span id="torrent_type">{postrow.ALLOW_FOR_GUEST}</span>&nbsp;<a href="#" onclick="type_change(); return false;" class="bold"/>  .</a>
    </td>
  </tr>
<!-- ENDIF -->

#################################################  viewtopic.tpl  

<div class="post_body">{postrow.MESSAGE}{postrow.ATTACHMENTS}</div><!--/post_body-->

#################################################  

      <div class="post_body">{postrow.MESSAGE}
        <!-- IF not LOGGED_IN && postrow.FIRST_POST && postrow.ATTACH_PRESENT -->
          <div class="anon_link w97">
          {postrow.D_URL}
          <b>{L_SEEDERS}:</b> <b class="seed">{postrow.SEED}</b> &nbsp;|&nbsp;<b>{L_LEECHERS}:</b> <b class="leech">{postrow.LEECH}</b>
          </div>
        <!-- ELSE -->
          {postrow.ATTACHMENTS}
        <!-- ENDIF -->
      </div><!--/post_body-->

#################################################  ajax.php  

    'view_post'           => array('guest'),

#################################################      

    'type_change'         => array('admin'),

#################################################    }      

function type_change() 
{
  global $db, $lang, $bb_cfg;
  $attach_id = (int) $this->request['attach_id'];
  $torrent_type = '';
  $status = $db->sql_query("SELECT anon_allow
                           FROM   ".BT_TORRENTS_TABLE."
                           WHERE  attach_id = $attach_id
                         ");
  while ($type = $db->sql_fetchrow($status))
    {     
  if ($type['anon_allow'] == 1)
     {
        $db->query("UPDATE ".BT_TORRENTS_TABLE." SET anon_allow = 0 WHERE attach_id = $attach_id LIMIT 1");
        $torrent_type = '<b style="color: #fff; background: #007700;">'.$lang['NOT_ALLOW_DL_GUEST'].'</b>';

 } else if ($type['anon_allow'] == 0) {

        $db->query("UPDATE ".BT_TORRENTS_TABLE." SET anon_allow = 1 WHERE attach_id = $attach_id LIMIT 1");
        $torrent_type = '<b style="color: #fff; background: #FF0000;">'.$lang['ALLOW_DL_GUEST'].'</b>';
      } else {
        ajax_die(' ');
      }
    }
 $this->response['html'] = $torrent_type;
}

#################################################  download.php  

  if (!$authorised)
  {
    message_die(GENERAL_MESSAGE, $lang['Sorry_auth_view_attach']);
  }
    
#################################################  

if ((!$bb_cfg['allow_download_guest_all']) && (!$bb_cfg['allow_download_guest']))
{
  if (!$authorised)
  {
    message_die(GENERAL_MESSAGE, $lang['Sorry_auth_view_attach']);
  }
}
else if ($bb_cfg['allow_download_guest'])
{
  $status = $db->sql_query("SELECT anon_allow
                           FROM   ".BT_TORRENTS_TABLE."
                           WHERE  attach_id = $download_id
                         ");
  while ($type = $db->sql_fetchrow($status))
    {     
      if (!$type['anon_allow'] && !$bb_cfg['allow_download_guest_all'])
      {
        if (!$authorised)
        {
          message_die(GENERAL_MESSAGE, $lang['Sorry_auth_view_attach']);
        }
      }
    }
}


#################################################  viewforum.php  

  $topic_rowset = $db->fetch_rowset("
    SELECT
      t.*,

#################################################     

      t.*,
      
#################################################      

 tr.anon_allow, 
 
#################################################     

  $template->assign_block_vars('t', array(
  
#################################################  

    'STYLE_ANON_TORRENT' => $topic['anon_allow'] ? 'color: #FF3333;' : '',
    
#################################################  viewforum.tpl  

<a href="{TOPIC_URL}{t.HREF_TOPIC_ID}" class="gen">{t.TOPIC_TITLE}</a>

#################################################  

<a href="{TOPIC_URL}{t.HREF_TOPIC_ID}" class="gen" style="{t.STYLE_ANON_TORRENT}" />{t.TOPIC_TITLE}</a>

################################################# 

<a href="{TOPIC_URL}{t.HREF_TOPIC_ID}" class="torTopic"><b>{t.TOPIC_TITLE}</b></a>

#################################################  

<a href="{TOPIC_URL}{t.HREF_TOPIC_ID}" class="torTopic" style="{t.STYLE_ANON_TORRENT}" /><b>{t.TOPIC_TITLE}</b></a>

################################################# 

<a href="{TOPIC_URL}{t.HREF_TOPIC_ID}" class="torTopic"><b>{t.TOPIC_TITLE}</b></a>

#################################################  

<a href="{TOPIC_URL}{t.HREF_TOPIC_ID}" class="torTopic" style="{t.STYLE_ANON_TORRENT}" /><b>{t.TOPIC_TITLE}</b></a>

#################################################  lang_main.php     

$lang['ALLOW_DL_GUEST'] = '   .';
$lang['NOT_ALLOW_DL_GUEST'] = '   .';

#################################################  tr_announcer.php  

  $lp_info = $db->fetch_row("
    SELECT t.*
    FROM ". BT_TRACKER_TABLE ."
    WHERE peer_hash = '$peer_hash' 
    LIMIT 1
  ");

#################################################  

  $lp_info = $db->fetch_row("
    SELECT t.*, bt.anon_allow
    FROM ". BT_TRACKER_TABLE ." t
    LEFT JOIN bb_bt_torrents bt ON t.topic_id = bt.topic_id
    WHERE peer_hash = '$peer_hash' 
    LIMIT 1
  ");

################################################# 

  $user_id         = $lp_info['user_id'];

#################################################  

  $anon_allow      = $lp_info['anon_allow'];
  
################################################# 

  $row = $db->fetch_row("
    SELECT tor.topic_id, tor.poster_id, u.*
    FROM      ". BT_TORRENTS_TABLE   ." tor
    LEFT JOIN ". BT_USERS_TABLE      ." u ON u.auth_key = '$passkey_sql'
    WHERE tor.info_hash = '$info_hash_sql'
    LIMIT 1
  ");
  
#################################################  

  $row = $db->fetch_row("
    SELECT tor.topic_id, tor.poster_id, u.*, us.user_vip, us.user_vip_tarifs, tor.anon_allow
    FROM      ". BT_TORRENTS_TABLE   ." tor
    LEFT JOIN ". BT_USERS_TABLE      ." u ON u.auth_key = '$passkey_sql'
    LEFT JOIN bb_users                  us ON us.user_id = u.user_id
    WHERE tor.info_hash = '$info_hash_sql'
    LIMIT 1
  ");

################################################# 

  $user_id  = $row['user_id'];
  
#################################################  

  $anon_allow = $row['anon_allow'];  
  
################################################# 

  // Ratio limits
  if ((TR_RATING_LIMITS || $tr_cfg['limit_concurrent_ips']) && !$stopped)
  {
  
#################################################  

  if (!$bb_cfg['allow_download_guest_all']) 
  {
    if (($anon_allow == false) && ($user_id == ANONYMOUS))
    {
      msg_die('Guests are not allowed to download this torrent');
    }
  }


#################################  main.css     

.anon_link {
  border: solid #777777; 
  border-width: 1px 0; 
  background: #CFD4D8;
  vertical-align: middle;
  padding-left: 10px;
  padding-right: 10px;
  font-weight: bold;
  text-decoration: none;
}
.w97    { width:  97% !important; }


##################################################################################################
################################## Save and close all files ######################################
##################################################################################################