#1
Ну, если честно, то и не знаю у кого мод получился легче. Тот что с тп1 пришёл или мой. По крайней мере мне почему то кажется что мой. А там посмотрим. Хотел уложиться в пару строчек, а оказалось что набыдлокодил аж 100. Ну да ладно, приступим что ли).
# Author: dimka3210.
# Date: 18/12/2011
# Time install: ~ 7 min.
# Number of affected files: 8
Начнём мы пожалуй с лангов.
lang_main.php
найти 'EDITED_MESSAGE' => $l_edited_by, и после него вставить
usercp_register.php
найти строку $tp_data['USER_GENDER'] = build_select('user_gender', array_flip($lang['GENDER_SELECT']), $pr_data['user_gender']);
break;
после неё добавить
найти строку <!-- IF $bb_cfg['gender'] -->
<tr>
<td>{L_GENDER}:</td>
<td>{USER_GENDER}</td>
</tr>
<!-- ENDIF -->
после неё добвить
найти function make_jumpbox ($selected = 0)
перед добавить
после 'LOCATION' => $profiledata['user_from'],
добавить
# Author: dimka3210.
# Date: 18/12/2011
# Time install: ~ 7 min.
# Number of affected files: 8
Начнём мы пожалуй с лангов.
lang_main.php
// Мод скорость пользователя $lang['NOT_DEFINED'] = "Не опреледено"; $lang['DOWNLOADSPEED'] = "Загрузка"; $lang['UPLOADSPEED'] = "Отдача";viewtopic.tpl
<!-- IF postrow.USER_SPEED_UP --><p class="posts"><em>{L_UPLOADSPEED}:</em> {postrow.USER_SPEED_UP}</p><!-- ENDIF -->
<!-- IF postrow.USER_SPEED_DOWN --><p class="posts"><em>{L_DOWNLOADSPEED}:</em> {postrow.USER_SPEED_DOWN}</p><!-- ENDIF -->viewtopic.php найти 'EDITED_MESSAGE' => $l_edited_by, и после него вставить
'USER_SPEED_UP' => get_speed_cache($postrow[$i]['user_speed_up']),
'USER_SPEED_DOWN' => get_speed_cache($postrow[$i]['user_speed_down']),Найти $sql = "
[PHP]SELECT
u.username, u.user_id, u.user_posts, u.user_from,
u.user_regdate, u.user_rank, u.user_sig,
u.user_avatar, u.user_avatar_type,
u.user_opt,В строку после u.user_opt, добавить u.user_speed_up, u.user_speed_down,usercp_register.php
найти строку $tp_data['USER_GENDER'] = build_select('user_gender', array_flip($lang['GENDER_SELECT']), $pr_data['user_gender']);
break;
после неё добавить
// Скорость отдачи в профиле.
case 'user_speed_up':
$speed = isset($_POST['user_speed_up']) ? (int) $_POST['user_speed_up'] : $pr_data['user_speed_up'];
if ($submit && $speed != $pr_data['user_speed_up'])
{
$pr_data['user_speed_up'] = $speed;
$db_data['user_speed_up'] = $speed;
}
$tp_data['USER_SPEED_UP'] = user_speed_selected('user_speed_up');
break;
// Скорость закачки в профиле.
case 'user_speed_down':
$speed = isset($_POST['user_speed_down']) ? (int) $_POST['user_speed_down'] : $pr_data['user_speed_down'];
if ($submit && $speed != $pr_data['user_speed_down'])
{
$pr_data['user_speed_down'] = $speed;
$db_data['user_speed_down'] = $speed;
}
$tp_data['USER_SPEED_DOWN'] = user_speed_selected('user_speed_down');
break;
// END CODE FROM DIMKA3210и чуть выше найти массив $profile_fields и добавить в него пару ячеек'user_speed_up' => true,
'user_speed_down' => true,usercp_register.tpl найти строку <!-- IF $bb_cfg['gender'] -->
<tr>
<td>{L_GENDER}:</td>
<td>{USER_GENDER}</td>
</tr>
<!-- ENDIF -->
после неё добвить
<tr>
<td>{L_UPLOADSPEED}:</td>
<td>
{USER_SPEED_UP}
</td>
</tr>
<tr>
<td>{L_DOWNLOADSPEED}:</td>
<td>
{USER_SPEED_DOWN}
</td>
</tr>function.php найти function make_jumpbox ($selected = 0)
перед добавить
function user_speed($id){
$sql = "SELECT `speed_id`, `speed_str` FROM `bb_users_speed` WHERE `speed_id` = " . $id;
$result = DB()->fetch_row($sql);
return $result['speed_str'];
} // end user_speed
function user_speed_selected($mode){
global $userdata, $lang;
$v = '<select name="' . $mode . '">';
$sql = "SELECT * FROM bb_users_speed";
$result = DB()->sql_query($sql);
$v .= '<option value="0">Не определено</option>';
for($i = 0; $i < mysql_num_rows($result); $i++){
$row = mysql_fetch_row($result);
$selected = ($userdata[$mode] == $row[0]) ? " selected " : false;
$v .= "<option value=\"{$row[0]}\"{$selected}>{$row[1]}</option>\n";
} // end for
$v .= '</select>';
return $v;
} //end user_speed_selected
function get_speed_cache($mode){
global $lang;
if(empty($mode))
return $lang['NOT_DEFINED'];
if(!CACHE('bb_cache')->get('user_speed')){
$sql = "SELECT * FROM bb_users_speed";
$result = DB()->fetch_rowset($sql);
CACHE('bb_cache')->set('user_speed', $result, 1200);
} //end if
$speed = CACHE('bb_cache')->get('user_speed');
$m1 = $mode-1;
$return = $speed[$m1]['speed_str'];
return $return;
} // end get_speed_cacheusercp_viewprofile.tpl<tr>
<th>{L_UPLOADSPEED}</th>
<td><b>{SPEED_USER_UP}</b></td>
</tr>
<tr>
<th>{L_DOWNLOADSPEED}:</th>
<td><b>{SPEED_USER_DOWN}</b></td>
</tr>usercp_viewprofile.php после 'LOCATION' => $profiledata['user_from'],
добавить
'SPEED_USER_UP' => ($profiledata['user_speed_up']) ? user_speed($profiledata['user_speed_up']) : $lang['NOT_DEFINED'],
'SPEED_USER_DOWN' => ($profiledata['user_speed_down']) ? user_speed($profiledata['user_speed_down']) : $lang['NOT_DEFINED'],теперь разберёмся с БД.CREATE TABLE IF NOT EXISTS `bb_users_speed` ( `speed_id` mediumint(3) NOT NULL AUTO_INCREMENT, `speed_str` varchar(30) NOT NULL, PRIMARY KEY (`speed_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=38 ; INSERT INTO `bb_users_speed` (`speed_id`, `speed_str`) VALUES (1, '100 Kb/s'), (2, '200 Kb/s'), (3, '300 Kb/s'), (4, '400 Kb/s'), (5, '500 Kb/s'), (6, '600 Kb/s'), (7, '700 Kb/s'), (8, '800 Kb/s'), (9, '900 Kb/s'), (10, '1 Mb/s'), (11, '2 Mb/s'), (12, '3 Mb/s'), (13, '4 Mb/s'), (14, '5 Mb/s'), (15, '6 Mb/s'), (16, '7 Mb/s'), (17, '8 Mb/s'), (18, '9 Mb/s'), (19, '10 Mb/s'), (20, '20 Mb/s'), (21, '30 Mb/s'), (22, '40 Mb/s'), (23, '50 Mb/s'), (24, '60 Mb/s'), (25, '70 Mb/s'), (26, '80 Mb/s'), (27, '90 Mb/s'), (28, '100 Mb/s'), (29, '200 Mb/s'), (30, '300 Mb/s'), (31, '400 Mb/s'), (32, '500 Mb/s'), (33, '600 Mb/s'), (34, '700 Mb/s'), (35, '800 Mb/s'), (36, '900 Mb/s'), (37, '1 Gb/s');и 2 поля у пользователя
ALTER TABLE `bb_users` ADD `user_speed_up` INT( 3 ) NOT NULL DEFAULT '0' AFTER `user_gender`; ALTER TABLE `bb_users` ADD `user_speed_down` INT( 3 ) NOT NULL DEFAULT '0' AFTER `user_speed_up`;Ну вот и всё.