фикс ajax предпросмотра в ЛС перенос генерации пасскея из настроек в профиль (для юзера) фиксы недочетов git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@379 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
This commit is contained in:
pherum83 2012-03-03 19:45:43 +00:00
commit db50ed9abb
12 changed files with 99 additions and 108 deletions

View file

@ -92,10 +92,9 @@ switch($mode)
case 'get_traf_stats':
$user_id = (int) $this->request['user_id'];
$btu = get_bt_userdata($user_id);
$bts = get_bt_speed($user_id);
$speed_up = ($bts['speed_up']) ? humn_size($bts['speed_up']).'/s' : '0 KB/s';
$speed_down = ($bts['speed_down']) ? humn_size($bts['speed_down']).'/s' : '0 KB/s';
$speed_up = ($btu['speed_up']) ? humn_size($btu['speed_up']).'/s' : '0 KB/s';
$speed_down = ($btu['speed_down']) ? humn_size($btu['speed_down']).'/s' : '0 KB/s';
$user_ratio = ($btu['u_down_total'] > MIN_DL_FOR_RATIO) ? '<b class="gen">'. get_bt_ratio($btu) .'</b>' : $lang['IT_WILL_BE_DOWN'] .' <b>'. humn_size(MIN_DL_FOR_RATIO) .'</b>';
$html = '

View file

@ -52,7 +52,7 @@ $bb_cfg = $tr_cfg = $page_cfg = array();
// Increase number of revision after update
$bb_cfg['tp_version'] = '2.4 (beta)';
$bb_cfg['tp_release_state'] = 'R378';
$bb_cfg['tp_release_state'] = 'R379';
$bb_cfg['tp_release_date'] = '03-03-2012';
// Database

View file

@ -1206,13 +1206,7 @@ function wbr ($text, $max_word_length = HTML_WBR_LENGTH)
function get_bt_userdata ($user_id)
{
return DB()->fetch_row("SELECT * FROM ". BB_BT_USERS ." WHERE user_id = ". (int) $user_id);
}
function get_bt_speed ($user_id)
{
return DB()->fetch_row("SELECT SUM(speed_up) as speed_up, SUM(speed_down) as speed_down
FROM ". BB_BT_TRACKER ." WHERE user_id = ". (int) $user_id);
return DB()->fetch_row("SELECT bt.*, SUM(tr.speed_up) as speed_up, SUM(tr.speed_down) as speed_down FROM ". BB_BT_USERS ." bt, ". BB_BT_TRACKER ." tr WHERE bt.user_id = ". (int) $user_id ." AND tr.user_id = ". (int) $user_id);
}
function get_bt_ratio ($btu)
@ -1226,8 +1220,9 @@ function get_bt_ratio ($btu)
function show_bt_userdata ($user_id)
{
global $lang;
$btu = get_bt_userdata($user_id);
$bts = get_bt_speed($user_id);
$GLOBALS['template']->assign_vars(array(
'SHOW_BT_USERDATA' => true,
@ -1239,9 +1234,9 @@ function show_bt_userdata ($user_id)
'USER_RATIO' => get_bt_ratio($btu),
'MIN_DL_FOR_RATIO' => humn_size(MIN_DL_FOR_RATIO),
'MIN_DL_BYTES' => MIN_DL_FOR_RATIO,
'AUTH_KEY' => $btu['auth_key'],
'SPEED_UP' => ($bts['speed_up']) ? humn_size($bts['speed_up']).'/s' : '0 KB/s',
'SPEED_DOWN' => ($bts['speed_down']) ? humn_size($bts['speed_down']).'/s' : '0 KB/s',
'AUTH_KEY' => ($btu['auth_key']) ? $btu['auth_key'] : $lang['NONE'],
'SPEED_UP' => ($btu['speed_up']) ? humn_size($btu['speed_up']).'/s' : '0 KB/s',
'SPEED_DOWN' => ($btu['speed_down']) ? humn_size($btu['speed_down']).'/s' : '0 KB/s',
));
}
@ -2726,7 +2721,7 @@ function pad_with_space ($str)
function create_magnet($infohash, $auth_key, $logged_in)
{
global $bb_cfg, $userdata, $_GET;
$passkey_url = (!$logged_in || isset($_GET['no_passkey'])) ? '' : "?{$bb_cfg['passkey_key']}=$auth_key&";
$passkey_url = (!$logged_in || isset($_GET['no_passkey'])) ? '' : "?{$bb_cfg['passkey_key']}=$auth_key";
return '<a href="magnet:?xt=urn:btih:'. bin2hex($infohash) .'&tr='. urlencode($bb_cfg['bt_announce_url'] . $passkey_url) .'"><img src="images/magnet.png" width="12" height="12" border="0" /></a>';
}
@ -2856,5 +2851,3 @@ function profile_url($data)
return $profile;
}

View file

@ -30,32 +30,12 @@ else
$template->assign_vars(array('EDIT_PROF' => false));
}
// Set tpl vars for bt_userdata
if (IS_ADMIN || $profile_user_id == $userdata['user_id'])
{
show_bt_userdata($profile_user_id);
}
if (IS_ADMIN)
{
$template->assign_vars(array(
'SHOW_PASSKEY' => true,
'CAN_EDIT_RATIO' => IS_ADMIN,
));
}
else
{
$template->assign_vars(array(
'CAN_EDIT_RATIO' => false,
));
}
// Auth
$not_auth_forums_sql = ($f = $user->get_not_auth_forums(AUTH_READ)) ? "AND f.forum_id NOT IN($f)" : '';
$datastore->rm('cat_forums');
// Get users active torrents
$sql = 'SELECT f.forum_id, f.forum_name, t.topic_title, tor.size, tr.*
$sql = 'SELECT f.forum_id, f.forum_name, t.topic_title, tor.tor_type, tor.size, tr.*
FROM '. BB_FORUMS .' f, '. BB_TOPICS .' t, '. BB_BT_TRACKER .' tr, '. BB_BT_TORRENTS ." tor
WHERE tr.user_id = $profile_user_id
AND tr.topic_id = tor.topic_id
@ -99,11 +79,25 @@ if ($releasing_count = count($releasing))
for ($i=0; $i<$releasing_count; $i++)
{
$is_gold = '';
if ($tr_cfg['gold_silver_enabled'])
{
if ($releasing[$i]['tor_type'] == TOR_TYPE_GOLD)
{
$is_gold = '<img src="images/tor_gold.gif" width="16" height="15" title="'.$lang['GOLD'].'" />&nbsp;';
}
elseif ($releasing[$i]['tor_type'] == TOR_TYPE_SILVER)
{
$is_gold = '<img src="images/tor_silver.gif" width="16" height="15" title="'.$lang['SILVER'].'" />&nbsp;';
}
}
$template->assign_block_vars('released.releasedrow', array(
'FORUM_NAME' => htmlCHR($releasing[$i]['forum_name']),
'TOPIC_TITLE' => wbr($releasing[$i]['topic_title']),
'TOPIC_TITLE' => ($releasing[$i]['update_time']) ? wbr($releasing[$i]['topic_title']) : '<s>'. wbr($releasing[$i]['topic_title']) .'</s>',
'U_VIEW_FORUM' => "viewforum.php?". POST_FORUM_URL .'='. $releasing[$i]['forum_id'],
'U_VIEW_TOPIC' => "viewtopic.php?". POST_TOPIC_URL .'='. $releasing[$i]['topic_id'] .'&amp;spmode=full#seeders',
'TOR_TYPE' => $is_gold,
));
}
}
@ -118,11 +112,25 @@ if ($seeding_count = count($seeding))
for ($i=0; $i<$seeding_count; $i++)
{
$is_gold = '';
if ($tr_cfg['gold_silver_enabled'])
{
if ($seeding[$i]['tor_type'] == TOR_TYPE_GOLD)
{
$is_gold = '<img src="images/tor_gold.gif" width="16" height="15" title="'.$lang['GOLD'].'" />&nbsp;';
}
elseif ($seeding[$i]['tor_type'] == TOR_TYPE_SILVER)
{
$is_gold = '<img src="images/tor_silver.gif" width="16" height="15" title="'.$lang['SILVER'].'" />&nbsp;';
}
}
$template->assign_block_vars('seed.seedrow', array(
'FORUM_NAME' => htmlCHR($seeding[$i]['forum_name']),
'TOPIC_TITLE' => wbr($seeding[$i]['topic_title']),
'TOPIC_TITLE' => ($seeding[$i]['update_time']) ? wbr($seeding[$i]['topic_title']) : '<s>'. wbr($seeding[$i]['topic_title']) .'</s>',
'U_VIEW_FORUM' => "viewforum.php?". POST_FORUM_URL .'='. $seeding[$i]['forum_id'],
'U_VIEW_TOPIC' => "viewtopic.php?". POST_TOPIC_URL .'='. $seeding[$i]['topic_id'] .'&amp;spmode=full#seeders',
'TOR_TYPE' => $is_gold,
));
}
}
@ -137,15 +145,29 @@ if ($leeching_count = count($leeching))
for ($i=0; $i<$leeching_count; $i++)
{
$is_gold = '';
if ($tr_cfg['gold_silver_enabled'])
{
if ($leeching[$i]['tor_type'] == TOR_TYPE_GOLD)
{
$is_gold = '<img src="images/tor_gold.gif" width="16" height="15" title="'.$lang['GOLD'].'" />&nbsp;';
}
elseif ($leeching[$i]['tor_type'] == TOR_TYPE_SILVER)
{
$is_gold = '<img src="images/tor_silver.gif" width="16" height="15" title="'.$lang['SILVER'].'" />&nbsp;';
}
}
$compl_size = ($leeching[$i]['remain'] && $leeching[$i]['size'] && $leeching[$i]['size'] > $leeching[$i]['remain']) ? ($leeching[$i]['size'] - $leeching[$i]['remain']) : 0;
$compl_perc = ($compl_size) ? floor($compl_size * 100 / $leeching[$i]['size']) : 0;
$template->assign_block_vars('leech.leechrow', array(
'FORUM_NAME' => htmlCHR($leeching[$i]['forum_name']),
'TOPIC_TITLE' => wbr($leeching[$i]['topic_title']),
'TOPIC_TITLE' => ($leeching[$i]['update_time']) ? wbr($leeching[$i]['topic_title']) : '<s>'. wbr($leeching[$i]['topic_title']) .'</s>',
'U_VIEW_FORUM' => "viewforum.php?". POST_FORUM_URL .'='. $leeching[$i]['forum_id'],
'U_VIEW_TOPIC' => "viewtopic.php?". POST_TOPIC_URL .'='. $leeching[$i]['topic_id'] .'&amp;spmode=full#leechers',
'COMPL_PERC' => $compl_perc,
'TOR_TYPE' => $is_gold,
));
}
}

View file

@ -955,21 +955,6 @@ $template->assign_vars(array(
));
//bt
if ($mode == 'editprofile' && $userdata['session_logged_in'])
{
$template->assign_block_vars('switch_bittorrent', array());
$row = DB()->fetch_row("SELECT auth_key FROM ". BB_BT_USERS ." WHERE user_id = $pr_user_id");
$curr_passkey = ($row['auth_key']) ? $row['auth_key'] : '';
$template->assign_vars(array(
'S_GEN_PASSKEY' => '<a href="#" onclick="ajax.exec({ action: \'gen_passkey\', user_id: '. $pr_user_id .' }); return false;">' . $lang['BT_GEN_PASSKEY_URL'] . '</a>',
'CURR_PASSKEY' => $curr_passkey,
));
}
//bt end
require(PAGE_HEADER);
$template->pparse('body');

View file

@ -133,10 +133,10 @@ $template->assign_vars(array(
'S_PROFILE_ACTION' => 'profile.php',
'SIGNATURE' => $signature,
'SHOW_PASSKEY' => (IS_ADMIN || $profile_user_id),
'SHOW_ROLE' => (IS_AM || $profile_user_id || $profiledata['user_active']),
'GROUP_MEMBERSHIP' => false,
'TRAF_STATS' => !(IS_ADMIN || $profile_user_id),
'TRAF_STATS' => !(IS_AM || $profile_user_id),
));
if (IS_ADMIN)
@ -192,6 +192,19 @@ if (!bf($profiledata['user_opt'], 'user_opt', 'allow_dls') || (IS_AM || $profile
include(INC_DIR .'ucp/torrent_userprofile.php');
}
// Ajax bt_userdata
if (IS_AM || $profile_user_id)
{
show_bt_userdata($profiledata['user_id']);
}
else
{
$template->assign_vars(array(
'DOWN_TOTAL_BYTES' => false,
'MIN_DL_BYTES' => false,
));
}
$template->assign_vars(array(
'SHOW_ACCESS_PRIVILEGE' => IS_ADMIN,
'IGNORE_SRV_LOAD' => ($profiledata['user_level'] != USER || $profiledata['ignore_srv_load']) ? $lang['NO'] : $lang['YES'],

View file

@ -1189,11 +1189,7 @@ $lang['INVALID_ANN_URL'] = 'Invalid Announce URL [%s]<br /><br />must be <b>%s</
$lang['PASSKEY_ERR_TOR_NOT_REG'] = 'Could not add passkey<br /><br />Torrent not registered on tracker';
$lang['PASSKEY_ERR_EMPTY'] = 'Could not add passkey (passkey is empty)<br /><br />Go to <a href="%s" target="_blank"><b>your forum profile</b></a> and generate it';
$lang['BT_GEN_PASSKEY'] = 'Passkey';
$lang['BT_GEN_PASSKEY_URL'] = 'Generate or change Passkey';
$lang['BT_GEN_PASSKEY_EXPLAIN'] = 'Generate your personal id for torrent tracker';
$lang['BT_GEN_PASSKEY_EXPLAIN_2'] = "<b>Warning!</b> After generating new id you'll need to <b>redownload all active torrent's!</b>";
$lang['BT_GEN_PASSKEY_NEW'] = 'Are you sure you want to create a new passkey?';
$lang['BT_GEN_PASSKEY_OK'] = 'New personal identifier generated';
$lang['BT_GEN_PASSKEY_NEW'] = "Attention! After changing the new passkey, you will need to re-download all the active torrents! \ n Are you sure you want to create a new passkey?";
$lang['BT_NO_SEARCHABLE_FORUMS'] = 'No searchable forums found';
$lang['SEEDS'] = 'Seed';
@ -1356,8 +1352,6 @@ $lang['UPLOADED'] = 'Uploaded';
$lang['RELEASED'] = 'Released';
$lang['BONUS'] = 'Bonus';
$lang['IT_WILL_BE_DOWN'] = 'it will start to be considered after it will be downloaded';
$lang['CURR_PASSKEY'] = 'Current passkey:';
$lang['SPMODE_FULL'] = 'Show peers in full details';
$lang['TRACKER'] = 'Tracker';

View file

@ -1196,11 +1196,7 @@ $lang['INVALID_ANN_URL'] = 'Неправильный Аnnounce URL [%s]<br /><br
$lang['PASSKEY_ERR_TOR_NOT_REG'] = 'Невозможно добавить passkey<br /><br />Торрент не зарегистрирован на трекере';
$lang['PASSKEY_ERR_EMPTY'] = 'Невозможно добавить passkey<br /><br />Вам необходимо <a href="%s" target="_blank"><b>зайти в ваш форумный профиль</b></a> и сгенерировать passkey';
$lang['BT_GEN_PASSKEY'] = 'Passkey';
$lang['BT_GEN_PASSKEY_URL'] = 'Создать или изменить Passkey';
$lang['BT_GEN_PASSKEY_EXPLAIN'] = 'Сгенерировать ваш личный id, который будет добавляться в торрент-файлы во время скачивания и затем использоваться трекером в качестве вашего аутентификатора.';
$lang['BT_GEN_PASSKEY_EXPLAIN_2'] = '<b>Внимание!</b> После изменения или создания нового id вам будет необходимо <b>заново скачать все активные торренты!</b>';
$lang['BT_GEN_PASSKEY_NEW'] = 'Вы уверены, что хотите создать новый passkey?';
$lang['BT_GEN_PASSKEY_OK'] = 'Новый персональный идентификатор сгенеририван';
$lang['BT_GEN_PASSKEY_NEW'] = "Внимание! После изменения нового passkey, Вам необходимо будет заново скачать все активные торренты! \n Вы уверены, что хотите создать новый passkey?";
$lang['BT_NO_SEARCHABLE_FORUMS'] = 'Доступных для поиска форумов не найдено';
$lang['SEEDS'] = 'Сидам';
@ -1362,9 +1358,7 @@ $lang['UPLOADED'] = 'Отдано';
$lang['RELEASED'] = 'На своих';
$lang['BONUS'] = 'Бонус';
$lang['IT_WILL_BE_DOWN'] = 'начнет учитываться после того как будет скачано';
$lang['SPMODE_FULL'] = 'Подробная статистика пиров';
$lang['CURR_PASSKEY'] = 'Текущий passkey:';
$lang['TRACKER'] = 'Трекер';
$lang['GALLERY'] = 'Галерея';

View file

@ -1,7 +1,6 @@
<h1 class="pagetitle">{PAGE_TITLE}</h1>
<form method="post" action="{S_MODE_ACTION}" name="post">
<table width="100%">
<tr>
<td align="right" class="med" nowrap="nowrap">{L_SORT_BY}:&nbsp;{S_MODE_SELECT}&nbsp;&nbsp;{L_ORDER}&nbsp;{S_ORDER_SELECT}&nbsp;&nbsp;<input type="submit" name="submit" value="{L_SUBMIT}" /></td>
@ -15,6 +14,7 @@
<td align="right" class="med">{L_SORT_PER_LETTER}:&nbsp;{S_LETTER_SELECT}{S_LETTER_HIDDEN}</td>
</tr>
</table>
</form>
<table class="forumline tablesorter">
<thead>

View file

@ -65,7 +65,15 @@
<!-- IF QUICK_REPLY -->
<div class="spacer_6"></div>
<script type="text/javascript">
ajax.callback.posts = function(data){
$('#view_message').show();
$('.view-message').html(data.message_html);
initPostBBCode('.view-message');
var maxH = screen.height - 490;
$('.view-message').css({ maxHeight: maxH });
};
</script>
<form action="{S_PRIVMSGS_ACTION}" method="post" name="post" onsubmit="if(checkForm(this)){ dis_submit_btn(); }else{ return false; }">
{S_HIDDEN_FIELDS}
@ -83,6 +91,9 @@
</tr>
<tr>
<td class="td2 row2 tCenter pad_4">
<div id="view_message" class="hidden">
<div class="tLeft view-message"></div>
</div>
<div class="quick_reply_box bCenter">
<!-- INCLUDE posting_editor.tpl -->
</div>

View file

@ -74,24 +74,6 @@ document.write('<input type="hidden" name="user_timezone" value="'+tz+'" />');
<td><a href="{U_RESET_AUTOLOGIN}">{L_RESET_AUTOLOGIN}</a><h6>{L_RESET_AUTOLOGIN_EXPL}</h6></td>
</tr>
<!-- ENDIF -->
<!-- BEGIN switch_bittorrent -->
<script type="text/javascript">
ajax.callback.gen_passkey = function(data){
$('#passkey').text(data.passkey);
};
</script>
<tr>
<th colspan="2"><a name="bittorrent"></a>TorrentPier</th>
</tr>
<tr>
<td>{L_BT_GEN_PASSKEY}<h6>{L_BT_GEN_PASSKEY_EXPLAIN}</h6></td>
<td class="med">{L_BT_GEN_PASSKEY_EXPLAIN_2}<br />{S_GEN_PASSKEY}</td>
</tr>
<tr>
<td>{L_CURR_PASSKEY}</td>
<td class="med" id="passkey">{CURR_PASSKEY}</td>
</tr>
<!-- END switch_bittorrent -->
<tr>
<th colspan="2">{L_PROFILE_INFO}</th>
</tr>

View file

@ -86,12 +86,11 @@ $(document).ready(function(){
<!-- IF IGNORE_SRV_LOAD_EDIT -->
<var class="ajax-params">{action: "edit_user_profile", id: "ignore_srv_load", editableType: "yesno-radio"}</var>
<!-- ENDIF -->
<!-- IF CAN_EDIT_RATIO -->
<var class="ajax-params">{action: "edit_user_profile", id: "u_up_total"}</var>
<var class="ajax-params">{action: "edit_user_profile", id: "u_down_total"}</var>
<var class="ajax-params">{action: "edit_user_profile", id: "u_up_release"}</var>
<var class="ajax-params">{action: "edit_user_profile", id: "u_up_bonus"}</var>
<!-- ENDIF -->
<script type="text/javascript">
ajax.callback.manage_user = function(data) {
if(data.info) alert(data.info);
@ -139,11 +138,10 @@ ajax.index_data = function(mode) {
}
ajax.callback.index_data = function(data) {
$('#traf-stats-tbl').html(data.html);
$('#user_ratio').html(data.user_ratio);
$('#bt_user_ratio').html(data.user_ratio);
$('#traf-stats-span').hide();
$('#traf-stats-tbl').show();
$('#user_ratio').show();
$("html:not(:animated)"+( ! $.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop: $('#traf-stats-tbl').position().top});
$('#bt_user_ratio').show();
}
</script>
<!-- ENDIF -->
@ -325,23 +323,23 @@ ajax.callback.gen_passkey = function(data){
</td>
</tr>
<tr id="user_ratio" <!-- IF TRAF_STATS -->style="display: none;"<!-- ENDIF -->>
<tr id="bt_user_ratio" <!-- IF TRAF_STATS -->style="display: none;"<!-- ENDIF -->>
<th>{L_USER_RATIO}:</th>
<td>
<!-- IF DOWN_TOTAL_BYTES gt MIN_DL_BYTES -->
<b id="u_ratio" class="gen">{USER_RATIO}</b>
[<a class="gen" href="#" onclick="toggle_block('ratio-expl'); return false;">?</a>]
<!-- ELSE -->
<span class="med"><b>{L_NONE}</b> (DL < {MIN_DL_FOR_RATIO})</span>
<span class="med" title="{L_IT_WILL_BE_DOWN} {MIN_DL_FOR_RATIO}"><b>{L_NONE}</b> (DL < {MIN_DL_FOR_RATIO})</span>
<!-- ENDIF -->
<!-- IF IS_ADMIN -->
[ <a href="#" onclick="ajax.exec({ action: 'gen_passkey', user_id : {PROFILE_USER_ID} }); return false;">Passkey</a>: <span id="passkey">{AUTH_KEY}</span> ]<!-- ENDIF -->
<!-- IF SHOW_PASSKEY -->
[ <a href="#" onclick="ajax.exec({ action: 'gen_passkey', user_id : {PROFILE_USER_ID} }); return false;">{L_BT_GEN_PASSKEY}</a>: <span class="med bold" id="passkey">{AUTH_KEY}</span> ]<!-- ENDIF -->
</td>
</tr>
<tr id="ratio-expl" style="display: none;">
<td colspan="2" class="med tCenter">
( {L_UP_TOTAL} <b class="seedmed">{UP_TOTAL}</b> + {L_TOTAL_RELEASED} <b class="seedmed">{RELEASED}</b> + {L_BONUS} <b class="seedmed">{UP_BONUS}</b> ) / {L_DOWNLOADED} <b class="leechmed">{DOWN_TOTAL}</b>
( {L_UPLOADED} <b class="seedmed">{UP_TOTAL}</b> + {L_RELEASED} <b class="seedmed">{RELEASED}</b> + {L_BONUS} <b class="seedmed">{UP_BONUS}</b> ) / {L_DOWNLOADED} <b class="leechmed">{DOWN_TOTAL}</b>
</td>
</tr>
@ -459,7 +457,7 @@ ajax.callback.gen_passkey = function(data){
<!-- BEGIN releasedrow -->
<tr class="row1">
<td class="tCenter pad_4"><a class="gen" href="{seed.releasedrow.U_VIEW_FORUM}">{seed.releasedrow.FORUM_NAME}</a></td>
<td colspan="2" class="pad_4"><a class="med" href="{seed.releasedrow.U_VIEW_TOPIC}"><b>{seed.releasedrow.TOPIC_TITLE}</b></a></td>
<td colspan="2" class="pad_4"><a class="med" href="{seed.releasedrow.U_VIEW_TOPIC}">{seed.releasedrow.TOR_TYPE}<b>{seed.releasedrow.TOPIC_TITLE}</b></a></td>
</tr>
<!-- END releasedrow -->
<!-- END released -->
@ -481,7 +479,7 @@ ajax.callback.gen_passkey = function(data){
<!-- BEGIN seedrow -->
<tr class="row1">
<td class="tCenter pad_4"><a class="gen" href="{seed.seedrow.U_VIEW_FORUM}">{seed.seedrow.FORUM_NAME}</a></td>
<td colspan="2" class="pad_4"><a class="med" href="{seed.seedrow.U_VIEW_TOPIC}"><b>{seed.seedrow.TOPIC_TITLE}</b></a></td>
<td colspan="2" class="pad_4"><a class="med" href="{seed.seedrow.U_VIEW_TOPIC}">{seed.seedrow.TOR_TYPE}<b>{seed.seedrow.TOPIC_TITLE}</b></a></td>
</tr>
<!-- END seedrow -->
<!-- END seed -->
@ -504,7 +502,7 @@ ajax.callback.gen_passkey = function(data){
<!-- BEGIN leechrow -->
<tr class="row1">
<td class="tCenter pad_4"><a class="gen" href="{leech.leechrow.U_VIEW_FORUM}">{leech.leechrow.FORUM_NAME}</a></td>
<td class="pad_4"><a class="med" href="{leech.leechrow.U_VIEW_TOPIC}"><b>{leech.leechrow.TOPIC_TITLE}</b></a></td>
<td class="pad_4"><a class="med" href="{leech.leechrow.U_VIEW_TOPIC}">{leech.leechrow.TOR_TYPE}<b>{leech.leechrow.TOPIC_TITLE}</b></a></td>
<td class="tCenter med"><b>{leech.leechrow.COMPL_PERC}</b></td>
</tr>
<!-- END leechrow -->