TWRP ,
Оффтоп ну ты один скрин скинул что мне еще и думать?
решил проблему, убрал в конце кода
echo $html; и перестало дублировать:derisive:
Добавлено через 21 час 4 минуты
После не больших мучений с админ листом все таки мне удалось добавить пару столбцов, это "Срок админа"(спасибо за основу
TWRP ), "Skype админа" и "Профиль Vk".Решил выложить может кому то это и понадобиться.
Тестировалось и делалось под SourceBans v 1.5.1 от Onotole!
1.Открываем файл по пути:
sourcebans/pages/admin.admins.php
Вставляем это после кода "серверного пароля", код должен находится примерно на 360 строке
Спойлер
<td valign="top" width="35%"">
<div class="rowdesc">
'.help_icon('Skype','Логин в Skype').'Skype
</div>
</td>
<td>
<div align="left">
<input type="text" class="submit-fields" id="a_skype" name="a_skype" />
<div id="a_skype.msg" class="badentry"></div>
</div>
</td>
</tr>
<tr>
<td valign="top" width="35%"">
<div class="rowdesc">
'.help_icon('Вконтакте','Введите Id пользователя cоц. сети Вконтакте').'Вконтакте
</div>
</td>
<td>
<div align="left">
<input type="text" class="submit-fields" id="a_forum" name="a_forum" />
<div id="a_forum.msg" class="badentry"></div>
</div>
</td>
</tr>
</table>
2. Открываем файл по пути:
sourcebans/pages/admin.edit.admindetails.php
Вставляем этот код после
$a_period = false;
примерно 72-73 строка
$a_skype = RemoveCode($_POST['a_skype']);
$a_forum = RemoveCode($_POST['a_forum']);
После кода серверного пароля, вставляем примерно на 232 строке этот код:
Спойлер
// Контакты
if($a_skype != '' && $a_skype != $userbank->GetProperty('skype', $_GET['id']) && is_taken("admins", "skype", $a_skype))
{
$error++;
$errorScript .= "$('a_skype.msg').innerHTML = 'Админ с таким Skype уже существует.';";
$errorScript .= "$('a_skype.msg').setStyle('display', 'block');";
}
if($a_forum != '' && $a_forum != $userbank->GetProperty('forum', $_GET['id']) && is_taken("admins", "forum", $a_forum))
{
$error++;
$errorScript .= "$('a_forum.msg').innerHTML = 'Админ с такой ссылкой уже существует!';";
$errorScript .= "$('a_forum.msg').setStyle('display', 'block');";
}
меняем код на этот примерно на 250 строке:
Спойлер
$edit = $GLOBALS['db']->Execute("UPDATE ".DB_PREFIX."_admins SET
`user` = ?, `authid` = ?, `email` = ?, `skype` = ?, `forum` = ?
WHERE `aid` = ?", array($a_name, $a_steam, $a_email, $a_skype, $a_forum, $_GET['id']));
меняем код на этот примерно на 326 строке:
Спойлер
$a_name = $userbank->GetProperty("user", $_GET['id']);
$a_steam = trim($userbank->GetProperty("authid", $_GET['id']));
$a_email = $userbank->GetProperty("email", $_GET['id']);
$a_skype = $userbank->GetProperty("skype", $_GET['id']);
$a_forum = $userbank->GetProperty("forum", $_GET['id']);
$a_serverpass = $userbank->GetProperty("srv_password", $_GET['id']);
$a_serverpass = !empty($a_serverpass);
меняем код на этот примерно на 349 строке:
Спойлер
$theme->assign('change_pass', ($userbank->HasAccess(ADMIN_OWNER) || $_GET['id'] == $userbank->GetAid()));
$theme->assign('user', $a_name);
$theme->assign('authid', $a_steam);
$theme->assign('email', $a_email);
$theme->assign('skype', $a_skype);
$theme->assign('forum', $a_forum);
//$theme->assign('expired', $a_expired);
$theme->assign('expired_text', $a_expired_text);
$theme->assign('a_spass', $a_serverpass);
3.Открываем файл по пути:
sourcebans/themes/default/page_admin_edit_admins_details.tpl (У вас путь может быть другой в зависимости от вашей текущей темы)
Вставляем этот код примерно на 57 строке, после серверного пароля:
Спойлер
<tr>
<td valign="middle"><div class="rowdesc">{help_icon title="Skype" message="Skype админа"}Skype админа </div></td>
<td><div align="left">
<input type="text" class="submit-fields" id="a_skype" name="a_skype" value="{$skype}" />
</div>
<div id="a_skype.msg" class="badentry"></div></td>
</tr>
<tr>
<tr>
<td valign="middle"><div class="rowdesc">{help_icon title="Вконтакте" message="Введите Id пользователя cоц. сети Вконтакте"}Профиль Вконтакте</div></td>
<td><div align="left">
<input type="text" class="submit-fields" id="a_forum" name="a_forum" value="{$forum}" />
</div>
<div id="a_forum.msg" class="badentry"></div></td>
</tr>
<tr>
4.Редактируем админ лист который должен находится в директории:sourcebans/pages/page.adminlist.php
Спойлер
<?php
if(!defined("IN_SB")){echo "You should not be here. Only follow links!";die();}
else
{
function st32to64($steam_id)
{
list( , $m1, $m2) = explode(':', $steam_id, 3);
list($steam_cid, ) = explode('.', bcadd((((int) $m2 * 2) + $m1), '76561197960265728'), 2);
return $steam_cid;
}
$html.= "<table style=\"border-collapse: collapse;\" width=\"100%\" cellspacing=\"3\" cellpadding=\"3\" align=\"center\" border=\"1\" class=\"listtable\">";
$html.= "<tr>";
$html.= "<td padding-left=\"3\" height=\"22\" class=\"listtable_top\" align=\"center\"><b>Ник / Кол-во банов</b></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><b>Steam_ID</b></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><b>E-mail</b></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><b>Группа</b></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><b>Посл. Визит</b></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><b>Срок Админа</b><p><b>Дни | Дата | Время</b></p></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><b>Skype<p>Админа</b></p></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><b>Профиль Vk</b></td>";
$html.= "</tr>";
$sb = $GLOBALS['db']->GetAll("SELECT * FROM " . DB_PREFIX . "_admins WHERE " . DB_PREFIX . "_admins.authid NOT IN ('STEAM_ID_SERVER') ORDER BY " . DB_PREFIX . "_admins.lastvisit DESC");
foreach($sb as $u){
$aID = $u['aid']; // ID админа
$admin = $u['user']; // Ник админа
$steamID = $u['authid']; // SteamID Админа
$email = $u['email']; // Адес почты
$srv_group = $u['srv_group']; // Состоит в группе
$srv_flags = $u['srv_flags']; // Флаги выданные админу
$immunity = $u['immunity']; // Иммунитет
$lastvisit = date("Y-m-d H:i",$u['lastvisit']); // Посл визит
$period = $u['expired'] == 0 ? 'Неограниченно' : ($u['expired'] < time() ? 'Истёк ' : round((($u['expired'] - time()) / 86400),0) . ' д.') . date("|d.m.Y|H:i",$u['expired']);
$skype = $u['skype'];
$forum = $u['forum'];
$cBans = $GLOBALS['db']->GetRow("SELECT COUNT(*) FROM " . DB_PREFIX . "_bans WHERE aid = '".$aID ."'");
$countBans = $cBans[0];
//print_r($countBans);
$html.= "<tr>";
$html.= "<td title=\"$admin :: Кол-во банов: $countBans\" class=\"tip\" height=\"16\" class=\"\" align=\"\"><b>$admin</b> / <a href=\"index.php?p=banlist&advSearch=$aID&advType=admin\">$countBans</a></td>";
$html.= "<td title=\"$admin :: Преход к профилю Steam\" class=\"tip\" height=\"16\" class=\"\" align=\"\"><a target=\"_blank\" href=\"http://steamcommunity.com/profiles/".st32to64($steamID)."\">$steamID</a></td>";
$html.= "<td title=\"$admin :: Написать письмо\" height=\"16\" class=\"\" align=\"\"><a href=\"mailto:$email\">$email</a></td>";
$html.= "<td height=\"16\" class=\"\" align=\"\">$srv_group</td>";
$html.= "<td height=\"16\" class=\"\" align=\"\">$lastvisit</td>";
$html.= "<td height=\"16\" class=\"\" align=\"\">$period</td>";
$html.= "<td height=\"16\" class=\"\" align=\"\"><b><a href=\"skype:".($skype)."?chat\">$skype</a></b></td>";
$html.= "<td height=\"16\" class=\"\" align=\"\"><b><a target=\"_blank\" href=\"http://vk.com/".($forum)."\">$forum</a></b></td>";
$html.= "</tr>";
}
$html.= "</table>";
$theme->assign('viewadmins', $html);
$theme->display('page_adminlist.tpl');
}
?>
5. Заходим в
phpMyAdmin выбираем базу sb_admins, после выбираем раздел
Структура в низу раздела выбираем после какого пункта добавим новую таблицу выбираем
lastvisit
Дальше делаем все по картинкам создавая две новые таблицы и жмём сохранить
Почему таблица должна назваться "forum", а не "VK"?С начала делал ссылку на профиль пользователя своего форума вот и назвал таблицу forum, но это не повлияет на отображения "Профиля VK"
Заметка №1: при добавлении новых админов сохранение ссылки скайпа и vk в бд не сохраняет, но сохранение ссылок работает при редактировании деталей уже созданных админов.Скоро исправлю...
Заметка №2: у вас должен быть отредактирован файл system-functions.php и page-builder.php как написано в первом посте этой темы и добавлен файл /themes/default/page_adminlist.tpl
Заметка №3: ссылки на скайп и вконтакте активные.Пояснение: если у вас установлен скайп и вы нажмете на скайп админа, то у вас откроется чат скайпа с данным пользователем, а при клике на профиль вк открывается новое окошко с данным профилем
Скрины готового админ листа: