Автор |
Сообщение |
екун Зарегистрирован: 2010-12-01 Сообщ.: 94
|
28-Янв-11 21:36 |
#1 |
Создана по мотивам аналогичной модификации на "тапочках".
взял за основу мод GliX
Панель статистики находится на всех страницах трекера. При желании можно вывести только на главную.
Она отображает максимально полный набор необходимой статистической информации пользователю и выглядит примерно так:
Отображается основная статистика вашего торрент-профиля, число написанных вами сообщений, ваша аватара (щелчок по которой ведёт в ваш профиль) и количество текущих активных закачек. На этом хотелось бы остановиться поподробнее, а то могут возникнуть некоторые вопросы.
Выводится три типа закачек, помеченных цветными стрелочками:
- общее число всех раздач, на которых Вы числитесь как сидер
- общее число всех раздач, на которых Вы числитесь как релизёр (сидер)
- общее число всех раздач, на которых Вы числитесь как личер
Примечания к каждому типу закачек отображаются в виде всплывающей подсказки, при наведении на стрелочку. Эта статистика полностью соответствует той, что имеется в вашем торрент-профиле и обновляется в режиме реального времени.
К трекеру предъявляется всего одно важное требование, без которого рассматриваемая модификация банально не заработает (т.к. сортировка на свои-чужие раздачи не будет работать). В обязательном порядке должен быть установлен мод [BETA] "Свои" раздачи (расширенный торрент-профиль).
Установка: открываем includes/ page_header.php
ищем
Код: | //
// Parse and show the overall header.
//
$template->set_filenames(array(
'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
); |
после
Код: | //
// table statics START
//
$seed = $release = $leech = $affected_torrents = array();
$profile_user_id = intval($userdata['user_id']);
// get affected torrents
$sql = "SELECT torrent_id
FROM " . BT_TRACKER_TABLE . "
WHERE user_id = " . $profile_user_id ;
$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, 'Cant query affected torrents', '', __LINE__, __FILE__, $sql);
while($row = $db->sql_fetchrow($result))
{
$affected_torrents[] = $row['torrent_id'];
}
unset($row);
// Get users active torrents
if ($affected_count = count($affected_torrents))
{
$affected_torrents = implode(", ", $affected_torrents);
$affected_torrents = 'AND tr.torrent_id IN (' . $affected_torrents . ')';
$leech_cnt = $seed_cnt = $peer_cnt = array();
$sql = " SELECT tr.seeder, tr.releaser, tr.peer_id, tr.user_id, tr.torrent_id, tor.poster_id
FROM " . BT_TRACKER_TABLE . " tr, " . BT_TORRENTS_TABLE . " tor
WHERE tr.expire_time > " . TIMENOW . "
AND tr.torrent_id = tor.torrent_id
$affected_torrents ";
$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, 'Could not query ', '', __LINE__, __FILE__, $sql);
while($row = $db->sql_fetchrow($result))
{
$unsorted[] = $row;
}
unset($row);
$l = $m = $n = 0;
$unsorted_count = count($unsorted);
for($i = 0; $i < $unsorted_count; $i++ )
{
if( $unsorted[$i]['seeder'] && !$unsorted[$i]['releaser'] && ($unsorted[$i]['user_id'] == $profile_user_id) )
{
$seed[] = $unsorted[$i];
$l++;
}
elseif( $unsorted[$i]['releaser'] && ($unsorted[$i]['user_id'] == $profile_user_id) )
{
$release[] = $unsorted[$i];
$m++;
}
elseif( !$unsorted[$i]['seeder'] && ($unsorted[$i]['user_id'] == $profile_user_id) )
{
$leech[] = $unsorted[$i];
$n++;
}
}
}
// output
$seeding_count = count($seed) + count($release);
$release_count = count($release);
$leeching_count = count($leech);
$template->assign_vars(array(
'L_SEEDING' => ''. (($seeding_count) ? "$seeding_count" : '0'),
'L_LEECHING' => ''. (($leeching_count) ? "$leeching_count" : '0'),
'L_RELEASING'=> ''. (($release_count) ? "$release_count" : '0')
));
//
// table statics END
// |
ищем
Код: | 'PRIVMSG_IMG' => $icon_pm, |
после
Код: | 'AVATAR_IMG' => $userdata['user_avatar'] ? $userdata['user_avatar'] : 'avatar.png',
'POSTS' => $userdata['user_posts'],
'L_POSTS_ST' => $lang['Posts_st'],
'L_DOWNS' => $lang['Downs'],
'L_SEED' => $lang['Seed'],
'L_LEECH' => $lang['Leech'],
'L_RELEAS' => $lang['Releas'],
'UL' => $lang['Stats_UL'],
'DL' => $lang['Stats_DL'],
'BL' => $lang['Stats_BL'],
'RATIO' => $lang['Stats_Ratio'], |
открываем language/lang_russian/lang_main.php
в конец
Код: | $lang['Stats_UL'] = 'Отдано:';
$lang['Stats_DL'] = 'Скачано:';
$lang['Stats_BL'] = 'Бонус:';
$lang['Stats_Ratio'] = 'Ваш рейтинг:';
$lang['Posts_st'] = 'Сообщений:';
$lang['Downs'] = 'Закачки:';
$lang['Seed'] = 'Раздаёте в данный момент';
$lang['Releas'] = 'Раздаёте на своих';
$lang['Leech'] = 'Качаете в данный момент'; |
открываем
templates/subSilver/overall_header.tpl
ищем
Код: | <table width="100%" cellspacing="0" cellpadding="5" border="0" align="center">
<tr>
<td class="bodyline"><table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><a href="{U_INDEX}"><img src="templates/subSilver/images/logo.gif" border="0" alt="{L_INDEX}" vspace="1" /></a>
</td> |
после
Код: | <td>
<!-- //bt -->
<!-- BEGIN user_ratio -->
<div id="user_ratio" style="float: right;">
<table cellpadding="0" cellspacing="0" class="stata-table" height="124">
<tr><td rowspan="9"><a href="{U_PROFILE}" target="_blank"><img src="images/avatars/{AVATAR_IMG}" style="max-width: 100px;" alt="" border="0" /></a></td></tr>
<tr><td>{RATIO}</td><td><b>{user_ratio.U_RATIO}</b></td></tr>
<tr><td>{TOTAL_UPLOADED}</td><td><b>{RELEASES}</b></td></tr>
<tr><td>{UL}</td><td class="leechmed"><b>{user_ratio.U_UP_TOTAL}</b></td></tr>
<tr><td>{BL}</td><td class="seedmed"><b>{user_ratio.U_BONUS_TOTAL}</b></td></tr>
<tr><td>{DL}</td><td class="seedmed"><b>{user_ratio.U_DOWN_TOTAL}</b></td></tr>
<tr><td>{L_POSTS_ST}</td><td><b>{POSTS}</b></td></td></tr>
<tr><td><a href="{U_PRIVATEMSGS}">{PRIVATE_MESSAGE_INFO}</a></td></tr>
<tr><td>{L_DOWNS}</td><td><span title="{L_SEED}"><img src=images/seedd.gif>{L_SEEDING}</span> <span title="{L_RELEAS}"><img src=images/rell.gif>{L_RELEASING}</span> <spantitle="{L_LEECH}"><img src=images/leechh.gif>{L_LEECHING}</span></td></tr>
</table>
</div>
<!-- END user_ratio -->
<!-- //bt end -->
</td> |
открываем templates/subSilver/subSilver.css
в конец
Код: | #user_ratio {
padding: 2px 2px 2px 2px;
margin-top: 4px; margin-bottom: 4px;
height: 124px;
width: 341px;
background-image: url(./images/profile.png);
background-position: left top;
background-repeat: no-repeat;
}
/* User ratio */
#user_ratio td {
padding: 0px 5px 0px 5px ; font-size: 11px;
}
.stata-table {
Margin-bottom: 2px !important;
height: 120px;
width: 333;
BackGround-Image: url(./images/profile.png);
BackGround-position: center center;
BackGround-Repeat: repeat-x;
}
.stata-table_park {
Margin-bottom: 2px !important;
height: 120px;
width: 333;
BackGround-Image: url(./images/profile_park.png);
BackGround-position: center center;
BackGround-Repeat: repeat-x;
} | После чего загружаем изображения из приложенного архива на сервер трекера.
Описание файла: |
|
Скачать файл |
Имя файла: |
img.zip |
Размер файла: |
26.31 KB |
Скачан: |
565 раз(а) |
_________________
Последний раз редактировалось: екун (28-Янв-11 22:21), всего редактировалось 2 раз(а)
|
|
Вернуться к началу
|
|
monster27 Зарегистрирован: 2010-12-29 Сообщ.: 540
|
28-Янв-11 21:41 |
#2 |
Откуда это у тебя появилось tr.releaser в этих версиях их нет.
|
|
Вернуться к началу
|
|
екун Зарегистрирован: 2010-12-01 Сообщ.: 94
|
|
Вернуться к началу
|
|
monster27 Зарегистрирован: 2010-12-29 Сообщ.: 540
|
28-Янв-11 21:54 |
#4 |
екун я хочу сказать что если я поставлю твой мод на 0,35, он не заработает и выволится ошибка.
|
|
Вернуться к началу
|
|
екун Зарегистрирован: 2010-12-01 Сообщ.: 94
|
28-Янв-11 21:58 |
#5 |
monster27
Цитата: | В обязательном порядке должен быть установлен мод [BETA] "Свои" раздачи (расширенный торрент-профиль).
|
щяс суда залью, посмотришь
_________________
|
|
Вернуться к началу
|
|
екун Зарегистрирован: 2010-12-01 Сообщ.: 94
|
|
Вернуться к началу
|
|
monster27 Зарегистрирован: 2010-12-29 Сообщ.: 540
|
28-Янв-11 22:06 |
#7 |
Фака как всегда заморочился, я пошел простым путем, сделал проверку сразу в профиле и вывел свои раздачи
|
|
Вернуться к началу
|
|
екун Зарегистрирован: 2010-12-01 Сообщ.: 94
|
28-Янв-11 22:09 |
#8 |
monster27 писал(а): | Фака как всегда заморочился, я пошел простым путем, сделал проверку сразу в профиле и вывел свои раздачи | увы с php еще на Вы потихоньку учусь
_________________
|
|
Вернуться к началу
|
|
monster27 Зарегистрирован: 2010-12-29 Сообщ.: 540
|
28-Янв-11 22:28 |
#9 |
екун сделай проверку на poster_id == profile_id is releaser
|
|
Вернуться к началу
|
|
Tuta Зарегистрирован: 2011-03-06 Сообщ.: 20
|
06-Мар-11 21:30 |
#10 |
екун писал(а): | взял за основу мод GliX |
улыбнуло, до троллил до присвоения мода
|
|
Вернуться к началу
|
|
екун Зарегистрирован: 2010-12-01 Сообщ.: 94
|
|
Вернуться к началу
|
|
Tuta Зарегистрирован: 2011-03-06 Сообщ.: 20
|
|
Вернуться к началу
|
|
temp Зарегистрирован: 2011-04-04 Сообщ.: 1
|
12-Апр-11 09:33 |
#13 |
екун а у меня нету в трекере
templates/subSilver/subSilver.css
что делать?
|
|
Вернуться к началу
|
|
GaZz-BenziN Зарегистрирован: 2010-11-04 Сообщ.: 204
|
|
Вернуться к началу
|
|
|
|
|