- фикс размера аватары в IE - оптимизация профиля (убрано 2 запроса) админ видит стату всех, юзер только свою, в остальных вариантах ajax загрузка git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@378 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
This commit is contained in:
pherum83 2012-03-02 23:53:11 +00:00
commit 38b8876e7f
12 changed files with 157 additions and 133 deletions

View file

@ -436,7 +436,7 @@ class ajax_common
}
else
{
$this->response['group_list_html'] = $lang['GROUP_HIDDEN'];
$this->response['group_list_html'] = $lang['GROUP_LIST_HIDDEN'];
}
break;

View file

@ -89,8 +89,38 @@ switch($mode)
}
break;
default:
$html = '';
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';
$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 = '
<tr class="row3">
<th>'. $lang['DOWNLOADED'] .'</th>
<th>'. $lang['UPLOADED'] .'</th>
<th>'. $lang['RELEASED'] .'</th>
<th>'. $lang['BONUS'] .'</th>
</tr>
<tr class="row1">
<td id="u_down_total"><span class="editable bold leechmed">'. humn_size($btu['u_down_total']) .'</span></td>
<td id="u_up_total"><span class="editable bold seedmed">' .humn_size($btu['u_up_total']) .'</span></td>
<td id="u_up_release"><span class="editable bold seedmed">'. humn_size($btu['u_up_release']) .'</span></td>
<td id="u_up_bonus"><span class="editable bold seedmed">'. humn_size($btu['u_up_bonus']) .'</span></td>
</tr>
<tr class="row5">
<td colspan="2">'. $lang['DL_DL_SPEED'] .': '. $speed_down .'</span></td>
<td colspan="2">'. $lang['DL_UL_SPEED'] .': '. $speed_up .'</span></td>
</tr>
';
$this->response['user_ratio'] = '
<th><a href="'. $bb_cfg['ratio_url_help'] .'" class="bold">'. $lang['USER_RATIO'] .'</a>:</th>
<td>'. $user_ratio .'</td>
';
break;
}

View file

@ -52,8 +52,8 @@ $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'] = 'R377';
$bb_cfg['tp_release_date'] = '25-02-2012';
$bb_cfg['tp_release_state'] = 'R378';
$bb_cfg['tp_release_date'] = '03-03-2012';
// Database
$charset = 'utf8';

View file

@ -1206,7 +1206,13 @@ 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 ." LIMIT 1");
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);
}
function get_bt_ratio ($btu)
@ -1221,6 +1227,7 @@ function get_bt_ratio ($btu)
function show_bt_userdata ($user_id)
{
$btu = get_bt_userdata($user_id);
$bts = get_bt_speed($user_id);
$GLOBALS['template']->assign_vars(array(
'SHOW_BT_USERDATA' => true,
@ -1233,6 +1240,8 @@ function show_bt_userdata ($user_id)
'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',
));
}
@ -2721,24 +2730,28 @@ function create_magnet($infohash, $auth_key, $logged_in)
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>';
}
function get_avatar ($avatar, $type, $allow_avatar = true, $height = false, $width = false)
function get_avatar ($avatar, $type, $allow_avatar = true, $height = '', $width = '')
{
global $bb_cfg, $lang;
$user_avatar = '<img src="'. $bb_cfg['no_avatar'] .'" alt="" border="0" height="'. $height .'" width="'. $width .'" />';
$height = ($height != '') ? 'height="'. $height .'"' : '';
$width = ($width != '') ? 'width="'. $width .'"' : '';
$user_avatar = '<img src="'. $bb_cfg['no_avatar'] .'" alt="" border="0" '. $height .' '. $width .' />';
if ($allow_avatar)
{
switch($type)
{
case USER_AVATAR_UPLOAD:
$user_avatar = ( $bb_cfg['allow_avatar_upload'] ) ? '<img src="'. $bb_cfg['avatar_path'] .'/'. $avatar .'" alt="" border="0" height="'. $height .'" width="'. $width .'" />' : '';
$user_avatar = ( $bb_cfg['allow_avatar_upload'] ) ? '<img src="'. $bb_cfg['avatar_path'] .'/'. $avatar .'" alt="" border="0" '. $height .' '. $width .' />' : '';
break;
case USER_AVATAR_REMOTE:
$user_avatar = ( $bb_cfg['allow_avatar_remote'] ) ? '<img src="'. $avatar .'" alt="" border="0" onload="imgFit(this, 100);" onClick="return imgFit(this, 100);" height="'. $height .'" width="'. $width .'" />' : '';
$user_avatar = ( $bb_cfg['allow_avatar_remote'] ) ? '<img src="'. $avatar .'" alt="" border="0" onload="imgFit(this, 100);" onClick="return imgFit(this, 100);" '. $height .' '. $width .' />' : '';
break;
case USER_AVATAR_GALLERY:
$user_avatar = ( $bb_cfg['allow_avatar_local'] ) ? '<img src="'. $bb_cfg['avatar_gallery_path'] .'/'. $avatar .'" alt="" border="0" height="'. $height .'" width="'. $width .'" />' : '';
$user_avatar = ( $bb_cfg['allow_avatar_local'] ) ? '<img src="'. $bb_cfg['avatar_gallery_path'] .'/'. $avatar .'" alt="" border="0" '. $height .' '. $width .' />' : '';
break;
}
}

View file

@ -31,7 +31,10 @@ else
}
// Set tpl vars for bt_userdata
if (IS_ADMIN || $profile_user_id == $userdata['user_id'])
{
show_bt_userdata($profile_user_id);
}
if (IS_ADMIN)
{
@ -157,7 +160,6 @@ $template->assign_vars(array(
'L_SEEDINGS' => '<b>'. $lang['SEEDING'] .'</b>'. (($seeding_count) ? "<br />[ <b>$seeding_count</b> ]" : ''),
'L_LEECHINGS' => '<b>'. $lang['LEECHING'] .'</b>'. (($leeching_count) ? "<br />[ <b>$leeching_count</b> ]" : ''),
'L_VIEW_TOR_PROF' => sprintf($lang['VIEWING_USER_BT_PROFILE'], $username),
'RELEASED_ROWSPAN' => ($releasing_count) ? 'rowspan="'. ($releasing_count + 1) .'"' : '',
'SEED_ROWSPAN' => ($seeding_count) ? 'rowspan="'. ($seeding_count + 1) .'"' : '',
'LEECH_ROWSPAN' => ($leeching_count) ? 'rowspan="'. ($leeching_count + 1) .'"' : '',
@ -169,18 +171,3 @@ if (!IS_USER || $profile_user_id == $userdata['user_id'])
{
$page_cfg['dl_links_user_id'] = $profile_user_id;
}
$sql = 'SELECT SUM(speed_up) as speed_up, SUM(speed_down) as speed_down
FROM '. BB_BT_TRACKER .'
WHERE user_id = ' . $profile_user_id . '';
if ($row = DB()->fetch_row($sql))
{
$speed_up = ($row['speed_up']) ? humn_size($row['speed_up']).'/s' : '-';
$speed_down = ($row['speed_down']) ? humn_size($row['speed_down']).'/s' : '-';
$template->assign_vars(array(
'SPEED_UP' => $speed_up,
'SPEED_DOWN' => $speed_down,
));
}

View file

@ -910,7 +910,7 @@ if ($submit && !$errors)
if($adm_edit)
{
bb_die($lang['PROFILE_USER'] . " <b>{$pr_data['username']}</b> " . $lang['GOOD_UPDATE']);
bb_die($lang['PROFILE_USER'] . ' <b>'. profile_url($pr_data) .'</b> '. $lang['GOOD_UPDATE']);
}
elseif(!$pr_data['user_active'])
{

View file

@ -136,6 +136,7 @@ $template->assign_vars(array(
'SHOW_ROLE' => (IS_AM || $profile_user_id || $profiledata['user_active']),
'GROUP_MEMBERSHIP' => false,
'TRAF_STATS' => !(IS_ADMIN || $profile_user_id),
));
if (IS_ADMIN)

View file

@ -1348,22 +1348,17 @@ $lang['ONLY_1_TOR_PER_TOPIC'] = 'You can register only one torrent in one topic'
$lang['VIEWING_USER_BT_PROFILE'] = 'Viewing torrent-profile :: %s'; // %s is username
$lang['CUR_ACTIVE_DLS'] = 'Currently active torrents';
$lang['UP_TOTAL'] = 'Total uploaded';
$lang['DOWN_TOTAL'] = 'Total downloaded';
$lang['BONUS'] = 'Bonus';
$lang['TOTAL_RELEASED'] = 'Total released';
$lang['USER_RATIO'] = 'Ratio';
$lang['MAX_SPEED'] = 'Speed';
$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['BT_RATIO'] = 'Ratio';
$lang['DOWNLOADED'] = 'Downloaded';
$lang['UPLOADED'] = 'Uploaded';
$lang['RELEASED'] = 'Released';
$lang['BT_BONUS_UP'] = 'Bonus';
$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';
$lang['GALLERY'] = 'Gallery';
@ -1624,7 +1619,7 @@ $lang['MEMBERSHIP_IN'] = 'Membership in';
$lang['PARTY'] = 'Party:';
$lang['CANDIDATE'] = 'Candidate:';
$lang['INDIVIDUAL'] = 'Has the individual rights';
$lang['GROUP_HIDDEN'] = 'You are not authorized to view hidden groups';
$lang['GROUP_LIST_HIDDEN'] = 'You are not authorized to view hidden groups';
$lang['USER_ACTIVATE'] = 'Activate';
$lang['USER_DEACTIVATE'] = 'Deactivate';

View file

@ -1352,26 +1352,20 @@ $lang['ALREADY_REG'] = 'Торрент уже зарегистрирован';
$lang['NOT_TORRENT'] = 'Это не торрент-файл';
$lang['ONLY_1_TOR_PER_POST'] = 'Вы не можете зарегистрировать еще один торрент для этого сообщения';
$lang['ONLY_1_TOR_PER_TOPIC'] = 'Вы не можете зарегистрировать еще один торрент для этого топика';
$lang['VIEWING_USER_BT_PROFILE'] = 'Торрент-профиль пользователя %s'; // %s is username
$lang['VIEWING_USER_BT_PROFILE'] = 'Торрент-профиль'; // %s is username
$lang['CUR_ACTIVE_DLS'] = 'Текущие активные торренты';
$lang['UP_TOTAL'] = 'Всего отдано';
$lang['DOWN_TOTAL'] = 'Всего скачано';
$lang['BONUS'] = 'Бонус';
$lang['TOTAL_RELEASED'] = 'Отдано на своих раздачах';
$lang['USER_RATIO'] = 'Рейтинг';
$lang['MAX_SPEED'] = 'Скорость';
$lang['DOWNLOADED'] = 'Скачано';
$lang['UPLOADED'] = 'Отдано';
$lang['RELEASED'] = 'На своих';
$lang['BONUS'] = 'Бонус';
$lang['IT_WILL_BE_DOWN'] = 'начнет учитываться после того как будет скачано';
$lang['SPMODE_FULL'] = 'Подробная статистика пиров';
$lang['CURR_PASSKEY'] = 'Текущий passkey:';
$lang['BT_RATIO'] = 'Рейтинг';
$lang['DOWNLOADED'] = 'Скачано';
$lang['UPLOADED'] = 'Отдано';
$lang['RELEASED'] = 'На своих';
$lang['BT_BONUS_UP'] = 'Бонус';
$lang['TRACKER'] = 'Трекер';
$lang['GALLERY'] = 'Галерея';
$lang['OPEN_TOPICS'] = 'Открывать топики';
@ -1629,7 +1623,7 @@ $lang['MEMBERSHIP_IN'] = 'Членство в группах';
$lang['PARTY'] = 'Участник:';
$lang['CANDIDATE'] = 'Кандидат:';
$lang['INDIVIDUAL'] = 'Имеет индивидуальные права';
$lang['GROUP_HIDDEN'] = 'У Вас нет прав на просмотр скрытых групп';
$lang['GROUP_LIST_HIDDEN'] = 'У Вас нет прав на просмотр скрытых групп';
$lang['USER_ACTIVATE'] = 'Активировать';

View file

@ -598,6 +598,11 @@ a.selfMod, a.selfMod:visited { color: #0000FF; }
table.mod_ip { background: #F9F9F9; border: 1px solid #A5AFB4; border-collapse: separate;}
table.mod_ip td { padding: 2px 5px; white-space: normal; font-size: 11px; }
table.mod_ip div { max-height: 150px; overflow: auto;}
table.ratio { background: #F9F9F9; border: 1px solid #A5AFB4; border-collapse: separate; }
table.ratio th, table.ratio td { padding: 2px 12px; text-align: center; white-space: nowrap; font-size: 11px;}
table.ratio th { color: #000000; white-space: nowrap; }
table.ratio td { padding: 2px 24px; }
/* ---------------------------------- *
Forums on home page
* ---------------------------------- */

View file

@ -542,14 +542,14 @@ important_info
<div id="sidebar1-wrap">
<!-- IF SHOW_BT_USERDATA --><div id="user_ratio">
<h3>{L_BT_RATIO}</h3>
<h3>{L_USER_RATIO}</h3>
<table cellpadding="0">
<div align="center">{THIS_AVATAR}</div>
<tr><td>{L_BT_RATIO}</td><td><!-- IF DOWN_TOTAL_BYTES gt MIN_DL_BYTES --><b>{USER_RATIO}</b><!-- ELSE --><b>{L_NONE}</b> (DL < {MIN_DL_FOR_RATIO})<!-- ENDIF --></td></tr>
<tr><td>{L_USER_RATIO}</td><td><!-- IF DOWN_TOTAL_BYTES gt MIN_DL_BYTES --><b>{USER_RATIO}</b><!-- ELSE --><b>{L_NONE}</b> (DL < {MIN_DL_FOR_RATIO})<!-- ENDIF --></td></tr>
<tr><td>{L_DOWNLOADED}</td><td class="leechmed"><b>{DOWN_TOTAL}</b></td></tr>
<tr><td>{L_UPLOADED}</td><td class="seedmed"><b>{UP_TOTAL}</b></td></tr>
<tr><td>{L_RELEASED}</td><td class="seedmed">{RELEASED}</td></tr>
<tr><td>{L_BT_BONUS_UP}</td><td class="seedmed">{UP_BONUS}</td></tr>
<tr><td>{L_BONUS}</td><td class="seedmed">{UP_BONUS}</td></tr>
</table>
</div><!-- ENDIF -->

View file

@ -128,6 +128,34 @@ ajax.callback.group_membership = function(data) {
</script>
<!-- ENDIF / IS_AM -->
<!-- IF TRAF_STATS -->
<script type="text/javascript">
ajax.index_data = function(mode) {
ajax.exec({
action : 'index_data',
mode : mode,
user_id : {PROFILE_USER_ID}
});
}
ajax.callback.index_data = function(data) {
$('#traf-stats-tbl').html(data.html);
$('#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});
}
</script>
<!-- ENDIF -->
<!-- IF SHOW_PASSKEY -->
<script type="text/javascript">
ajax.callback.gen_passkey = function(data){
$('#passkey').text(data.passkey);
};
</script>
<!-- ENDIF / SHOW_PASSKEY -->
<a name="editprofile"></a>
<h1 class="pagetitle">{L_VIEWING_PROFILE}</h1>
@ -280,7 +308,10 @@ ajax.callback.group_membership = function(data) {
<tr>
<th class="nowrap">{L_LAST_ACTIVITY}:</th>
<td><b>{LAST_ACTIVITY_TIME}</b></td>
<td>
<b>{LAST_ACTIVITY_TIME}</b>
<!-- IF TRAF_STATS --><span id="traf-stats-span">[ <a href="#" id="traf-stats-btn" class="med" onclick="ajax.index_data('get_traf_stats'); return false;">{L_VIEWING_USER_BT_PROFILE}</a> ]</span><!-- ENDIF -->
</td>
</tr>
<tr>
<th>{L_TOTAL_POSTS}:</th>
@ -294,6 +325,26 @@ ajax.callback.group_membership = function(data) {
</td>
</tr>
<tr id="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>
<!-- 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 -->
</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>
</td>
</tr>
<!-- IF LOCATION -->
<tr>
<th class="vBottom">{L_LOCATION}:</th>
@ -340,6 +391,30 @@ ajax.callback.group_membership = function(data) {
<td id="ignore_srv_load">{L_ACCESS_SRV_LOAD}: <b class="editable">{IGNORE_SRV_LOAD}</b></td>
</tr>
<!-- ENDIF -->
<tr>
<td colspan="2" class="pad_4">
<table id="traf-stats-tbl" <!-- IF TRAF_STATS -->style="display: none;"<!-- ENDIF --> class="ratio bCenter borderless" cellspacing="1" width="200">
<tr class="row3">
<th>{L_DOWNLOADED}</th>
<th>{L_UPLOADED}</th>
<th>{L_RELEASED}</th>
<th>{L_BONUS}</th>
</tr>
<tr class="row1">
<td id="u_down_total"><span class="editable bold leechmed">{DOWN_TOTAL}</span></td>
<td id="u_up_total"><span class="editable bold seedmed">{UP_TOTAL}</span></td>
<td id="u_up_release"><span class="editable bold seedmed">{RELEASED}</span></td>
<td id="u_up_bonus"><span class="editable bold seedmed">{UP_BONUS}</span></td>
</tr>
<tr class="row5">
<td colspan="2">{L_DL_DL_SPEED}: {SPEED_DOWN}</td>
<td colspan="2">{L_DL_UL_SPEED}: {SPEED_UP}</td>
</tr>
</table>
</td>
</tr>
</table><!--/user_details-->
<!-- IF IS_AM --><span id="ip_list"></span><!-- ENDIF -->
@ -367,82 +442,6 @@ ajax.callback.group_membership = function(data) {
<!-- IF ALLOW_DLS -->
<table class="bordered w100">
<tr>
<th colspan="4" class="thHead">{L_VIEW_TOR_PROF}</th>
</tr>
<tr>
<td colspan="4" class="row2">
<table class="ratio_details borderless bCenter mrg_4">
<tr>
<th><b>{L_DOWN_TOTAL}:</b></th>
<td id="u_down_total" class="leech">
<span class="editable bold">{DOWN_TOTAL}</span>
</td>
</tr>
<tr>
<th width="50%"><b>{L_UP_TOTAL}:</b></th>
<td width="50%" id="u_up_total" class="seed">
<span class="editable bold">{UP_TOTAL}</span>
</td>
</tr>
<tr>
<th>{L_TOTAL_RELEASED}:</th>
<td id="u_up_release">
<span class="editable seed">{RELEASED}</span>
</td>
</tr>
<tr>
<th width="50%">{L_BONUS}:</th>
<td width="50%" id="u_up_bonus">
<span class="editable seed">{UP_BONUS}</span>
</td>
</tr>
<tr>
<th width="50%">{L_MAX_SPEED}:</th>
<td width="50%" id="u_up_bonus">
<span>{SPEED_UP}</span> / <span>{SPEED_DOWN}</span>
</td>
</tr>
<tr>
<th>{L_USER_RATIO}:</th>
<td id="u_ratio" class="gen">
<!-- IF DOWN_TOTAL_BYTES gt MIN_DL_BYTES -->
<b class="gen">{USER_RATIO}</b>&nbsp;
[<a class="gen" href="#" onclick="toggle_block('ratio-expl'); return false;">?</a>]
<!-- ELSE -->
<span class="med">{L_IT_WILL_BE_DOWN} <b>{MIN_DL_FOR_RATIO}</b></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>
</td>
</tr>
<!-- IF SHOW_PASSKEY -->
<script type="text/javascript">
ajax.callback.gen_passkey = function(data){
$('#passkey').text(data.passkey);
};
</script>
<tr>
<th><a href="#" onclick="ajax.exec({ action: 'gen_passkey', user_id : {PROFILE_USER_ID} }); return false;">Passkey</a>:</th>
<td id="passkey">{AUTH_KEY}</td>
</tr>
<!-- ENDIF / SHOW_PASSKEY -->
</table><!--/ratio_details-->
</td>
</tr>
<tr>
<th colspan="4" class="thHead">{L_CUR_ACTIVE_DLS}</th>
</tr>