Меню добавления админов (Вопрос)

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #1
Здравствуйте. У меня вопрос, может кто знает как изменить показанные поля и их запись в БД ??

353381_kak.jpg

Например, что бы вместо "E-Mail админа" было "Админ с" и в поле писать дату выдачи админки.
И добавить "Админ до" и в поле дата окончания.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #3

Я нашел код который отвечает за эти поля. Но не разобрался в нем. Смог только убрать проверку на то, введен ли имейл и зменить его. Но на новые поля нужно еще объявлять переменные, новые столбцы в бд и т.д.
 

Dexter48

Оптимист по жизни:) [EvoLand]
Сообщения
58
Реакции
12
Да, тоже искал, и до сих пор ищу.А ведь так охота добавить дополнительное поле...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
/pages/admin.edit.admindetails.php
Может хоть кто-то поймет там что-то, я немного мудрил, в общем, там стоит порытся визуальная часть там 100 % а вот запись в бд...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #9
Dexter48, Я там рылся и переименовал "E-Mail админа"
 

rotmir

Участник
Сообщения
138
Реакции
25
Рико тебя ещё интересует этот вопрос ?? Я сделал чтоб при добавление было поле дополнительное и при редактирование , плюс чтоб отправлялось в базу данных.
 
  • Мне нравится
Реакции: R1KO

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #12
rotmir, Конечно интересует. Делись)))
 

★$$StOk$$★

Участник
Сообщения
629
Реакции
187
Рико тебя ещё интересует этот вопрос ?? Я сделал чтоб при добавление было поле дополнительное и при редактирование , плюс чтоб отправлялось в базу данных.
Со мной поделится можешь ?
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #14
Рико тебя ещё интересует этот вопрос ?? Я сделал чтоб при добавление было поле дополнительное и при редактирование , плюс чтоб отправлялось в базу данных.

тоже интересно
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #15
Да что вы налетели то?)) Думаю он выложит сюда))
 

rotmir

Участник
Сообщения
138
Реакции
25
Вообщем я половина кода там вообще не знаю , но покапавшись всё таки сделал .Плюс один косяк когда админа добавляешь и пишешь в поле текст то он не заносится в базу данных , это я потом исправлю , а вот когда редактируешь профиль админа и вписываешь текст в тоже поле то всё нормально.

Вот код измененный он будет закоментирован такими словами "//<--------Добавленный код ":
admin.edit.admindetails.php
PHP:
<?php
/**
 * =============================================================================
 * Edit admin details
 *
 * @author SteamFriends Development Team
 * @version 1.0.0
 * @copyright SourceBans (C)2007 SteamFriends.com.  All rights reserved.
 * @package SourceBans
 * @link http://www.sourcebans.net
 *
 * @version $Id: admin.edit.admindetails.php 249 2009-03-25 22:26:22Z peace-maker $
 * =============================================================================
 */

if(!defined("IN_SB")){echo "You should not be here. Only follow links!";die();}
global $userbank, $theme;

if(!isset($_GET['id']))
{
	echo '<div id="msg-red" >
	<i><img src="./images/warning.png" alt="Внимание" /></i>
	<b>Ошибка</b>
	<br />
	Не указан идентификатор администратора
</div>';
	PageDie();
}
$_GET['id'] = (int)$_GET['id'];

if(!$userbank->GetProperty("user", $_GET['id']))
{
	$log = new CSystemLog("e", "Getting admin data failed", "Can't find data for admin with id '".$_GET['id']."'");
	echo '<div id="msg-red" >
	<i><img src="./images/warning.png" alt="Внимание" /></i>
	<b>Ошибка</b>
	<br />
	Ошибка получения текущих данных.
</div>';
	PageDie();
}


// Skip all checks if root
if(!$userbank->HasAccess(ADMIN_OWNER))
{
	if(!$userbank->HasAccess(ADMIN_EDIT_ADMINS) || ($userbank->HasAccess(ADMIN_OWNER, $_GET['id']) && $_GET['id'] != $userbank->GetAid()))
	{
		$log = new CSystemLog("w", "Hacking Attempt", $userbank->GetProperty("user") . " tried to edit ".$userbank->GetProperty('user', $_GET['id'])."'s details, but doesnt have access.");
		echo '<div id="msg-red" >
		<i><img src="./images/warning.png" alt="Внимание" /></i>
		<b>Ошибка</b>
		<br />
		Вы не можете редактировать других профилей.
	</div>';
		PageDie();
	}
}

$errorScript = "";

// Form submitted?
if(isset($_POST['adminname']))
{
	$a_name = RemoveCode($_POST['adminname']);
        $a_money = RemoveCode($_POST['money']);    //<--------Добавленный  код 
	$a_steam = trim(RemoveCode($_POST['steam']));
	$a_email = trim(RemoveCode($_POST['email']));
	$a_serverpass = $_POST['a_useserverpass'] == "on";
	$pw_changed = false;
	$serverpw_changed = false;
	
	// Form validation
	$error = 0;
	
	// Check name
	if(empty($a_name))
	{
		$error++;
		$errorScript .= "$('adminname.msg').innerHTML = 'Введите имя админа.';";
		$errorScript .= "$('adminname.msg').setStyle('display', 'block');";
	}
	else{
        if(strstr($a_name, "'"))
		{
			$error++;
			$errorScript .= "$('adminname.msg').innerHTML = 'Имя админа не может содержать символов \" \' \".';";
			$errorScript .= "$('adminname.msg').setStyle('display', 'block');";
		}
		else
		{
            if($a_name != $userbank->GetProperty('user', $_GET['id']) && is_taken("admins", "user", $a_name))
            {
                $error++;
				$errorScript .= "$('adminname.msg').innerHTML = 'Админ с таким именем уже существует.';";
				$errorScript .= "$('adminname.msg').setStyle('display', 'block');";
            }
		}
	}


    //<--------Добавленный  код 
    if(empty($a_money))
	{
		$error++;
		$errorScript .= "$('money.msg').innerHTML = 'Писать сюда';";
		$errorScript .= "$('money.msg').setStyle('display', 'block');";
	}
	else{
        if(strstr($a_money, "'"))
		{
			$error++;
			$errorScript .= "$('money.msg').innerHTML = 'Имя админа не может содержать символов \" \' \".';";
			$errorScript .= "$('money.msg').setStyle('display', 'block');";
		}
		else
		{
            if($a_money != $userbank->GetProperty('money', $_GET['id']) && is_taken("admins", "money", $a_money))
            {
                $error++;
				$errorScript .= "$('money.msg').innerHTML = 'Админ с таким именем уже существует.';";
				$errorScript .= "$('money.msg').setStyle('display', 'block');";
            }
		}
	}
	
	// If they didnt type a steamid
	if((empty($a_steam) || strlen($a_steam) < 10))
	{
		$error++;
		$errorScript .= "$('steam.msg').innerHTML = 'Введите Steam ID или Community ID админа.';";
		$errorScript .= "$('steam.msg').setStyle('display', 'block');";
	}
	else
	{
		// Validate the steamid or fetch it from the community id
		if((!is_numeric($a_steam) 
		&& !validate_steam($a_steam))
		|| (is_numeric($a_steam) 
		&& (strlen($a_steam) < 15
		|| !validate_steam($a_steam = FriendIDToSteamID($a_steam)))))
		{
			$error++;
			$errorScript .= "$('steam.msg').innerHTML = 'Введите действительный Steam ID или Community ID.';";
			$errorScript .= "$('steam.msg').setStyle('display', 'block');";
		}
		else
		{
			// Is an other admin already registred with that steam id?
			if($a_steam != $userbank->GetProperty('authid', $_GET['id']) && is_taken("admins", "authid", $a_steam))
			{
				$admins = $userbank->GetAllAdmins();
				foreach($admins as $admin)
				{
					if($admin['authid'] == $a_steam)
					{
						$name = $admin['user'];
						break;
					}
				}
				$error++;
				$errorScript .= "$('steam.msg').innerHTML = 'Steam ID уже используется админом ".htmlspecialchars(addslashes($name)).".';";
				$errorScript .= "$('steam.msg').setStyle('display', 'block');";
			}
		}
	}
	
	// No email
	if(empty($a_email))
	{
		// Only required, if admin has web permissions.
		if($GLOBALS['userbank']->GetProperty('extraflags', $_GET['id']) != 0 || $GLOBALS['userbank']->GetProperty('gid', $_GET['id']) > 0)
		{
			$error++;
			$errorScript .= "$('email.msg').innerHTML = 'Вы должны ввести E-mail адрес.';";
			$errorScript .= "$('email.msg').setStyle('display', 'block');";
		}
	}
	else{
		// Is an other admin already registred with that email address?
		if($a_email != $userbank->GetProperty('email', $_GET['id']) && is_taken("admins", "email", $a_email))
		{
			$admins = $userbank->GetAllAdmins();
			foreach($admins as $admin)
			{
				if($admin['email'] == $a_email)
				{
					$name = $admin['user'];
					break;
				}
			}
			$error++;
			$errorScript .= "$('email.msg').innerHTML = 'Этот e-mail уже используетя админом ".htmlspecialchars(addslashes($name)).".';";
			$errorScript .= "$('email.msg').setStyle('display', 'block');";
		}
		/*else if(!validate_email($a_email))
			$error++;
			$errorScript .= "$('email.msg').innerHTML = 'Please enter a valid email address.';";
			$errorScript .= "$('email.msg').setStyle('display', 'block');";
		}*/
	}
	
	// Only validate passwords, if admin has access to edit it at all
	if($userbank->HasAccess(ADMIN_OWNER) || $_GET['id'] == $userbank->GetAid())
	{
		// Don't change the password, if not set
		if(!empty($_POST['password']))
		{
			$pw_changed = true;
			// DID type a password, so he wants to change it.
			// Password too short?
			if(strlen($_POST['password']) < MIN_PASS_LENGTH)
			{
				$error++;
				$errorScript .= "$('password.msg').innerHTML = 'Пароль должен быть не менее " . MIN_PASS_LENGTH . " символов.';";
				$errorScript .= "$('password.msg').setStyle('display', 'block');";
			}
			else 
			{
				// No confirmation typed
				if(empty($_POST['password2']))
				{
					$error++;
					$errorScript .= "$('password2.msg').innerHTML = 'Подтвердите пароль.';";
					$errorScript .= "$('password2.msg').setStyle('display', 'block');";
				}
				// Passwords match?
				else if($_POST['password'] != $_POST['password2'])
				{
					$error++;
					$errorScript .= "$('password2.msg').innerHTML = 'Пароли не совпадают.';";
					$errorScript .= "$('password2.msg').setStyle('display', 'block');";
				}
			}
		}
		
		// Check for the serverpassword
		if($_POST['a_useserverpass'] == "on")
		{
			if(!empty($_POST['a_serverpass']))
				$serverpw_changed = true;
		
			// No password given and no set before?
			$srvpw = $userbank->GetProperty('srv_password', $_GET['id']);
			if(empty($_POST['a_serverpass']) && empty($srvpw))
			{
				$error++;
				$errorScript .= "$('a_serverpass.msg').innerHTML = 'Введите пароль сервера, или снимите галочку.';";
				$errorScript .= "$('a_serverpass.msg').setStyle('display', 'block');";
			}
			// Password too short?
			else if(strlen($_POST['a_serverpass']) < MIN_PASS_LENGTH)
			{
				$error++;
				$errorScript .= "$('a_serverpass.msg').innerHTML = 'Пароль должен быть не менее " . MIN_PASS_LENGTH . " символов.';";
				$errorScript .= "$('a_serverpass.msg').setStyle('display', 'block');";
			}
		}
	}
	
	// Only proceed, if there are no errors in the form
	if($error == 0)
	{
               //<--------Измененный код 
		// set the basic fields
		$edit = $GLOBALS['db']->Execute("UPDATE ".DB_PREFIX."_admins SET
									`user` = ?, `money` = ?, `authid` = ?, `email` = ?
									WHERE `aid` = ?", array($a_name, $a_money, $a_steam, $a_email, $_GET['id']));
		
		// Password changed?
		if($pw_changed)
		{
			$edit = $GLOBALS['db']->Execute("UPDATE ".DB_PREFIX."_admins SET
									`password` = ?
									WHERE `aid` = ?", array($userbank->encrypt_password($_POST['password']), $_GET['id']));
		}
		
		// Server Admin Password changed?
		if($serverpw_changed)
		{
			$edit = $GLOBALS['db']->Execute("UPDATE ".DB_PREFIX."_admins SET
									`srv_password` = ?
									WHERE `aid` = ?", array($_POST['a_serverpass'], $_GET['id']));
		}
		// Remove the server password
		else if($_POST['a_useserverpass'] != "on")
		{
			$edit = $GLOBALS['db']->Execute("UPDATE ".DB_PREFIX."_admins SET
									`srv_password` = NULL
									WHERE `aid` = ?", array($_GET['id']));
		}
		
		// to prevent rehash window to error with "no access", cause pw doesn't match
		$ownpwchanged = false;
		if($_GET['id']==$userbank->GetAid() && !empty($_POST['password']) && $userbank->encrypt_password($_POST['password'])!=$userbank->GetProperty("password"))
			$ownpwchanged = true;
		
		if(isset($GLOBALS['config']['config.enableadminrehashing']) && $GLOBALS['config']['config.enableadminrehashing'] == 1)
		{
			// rehash the admins on the servers
			$serveraccessq = $GLOBALS['db']->GetAll("SELECT s.sid FROM `".DB_PREFIX."_servers` s
												LEFT JOIN `".DB_PREFIX."_admins_servers_groups` asg ON asg.admin_id = '".(int)$_GET['id']."'
												LEFT JOIN `".DB_PREFIX."_servers_groups` sg ON sg.group_id = asg.srv_group_id
												WHERE ((asg.server_id != '-1' AND asg.srv_group_id = '-1')
												OR (asg.srv_group_id != '-1' AND asg.server_id = '-1'))
												AND (s.sid IN(asg.server_id) OR s.sid IN(sg.server_id)) AND s.enabled = 1");
			$allservers = array();
			foreach($serveraccessq as $access) {
				if(!in_array($access['sid'], $allservers)) {
					$allservers[] = $access['sid'];
				}
			}
			$rehashing = true;
		}
		
		$admname = $GLOBALS['db']->GetRow("SELECT user FROM `".DB_PREFIX."_admins` WHERE aid = ?", array((int)$_GET['id']));
		$log = new CSystemLog("m", "Данные админа обновлены", "Данные админа (" . $admname['user'] . ") обновлены");
		if($ownpwchanged)
			echo '<script>ShowBox("Данные админа обновлены", "Данные админа успешно обновлены", "green", "index.php?p=login");TabToReload();</script>';
		else if(isset($rehashing))
			echo '<script>ShowRehashBox("'.implode(",", $allservers).'", "Данные админа обновлены", "Данные админа успешно обновлены", "green", "index.php?p=admin&c=admins");TabToReload();</script>';
		else
			echo '<script>ShowBox("Данные админа обновлены", "Данные админа успешно обновлены", "green", "index.php?p=admin&c=admins");TabToReload();</script>';
	}
}
// get current values
else
{
	$a_name = $userbank->GetProperty("user", $_GET['id']);
        $a_money = $userbank->GetProperty("money", $_GET['id']);  //<--------Добавленный  код 
	$a_steam = trim($userbank->GetProperty("authid", $_GET['id']));
	$a_email = $userbank->GetProperty("email", $_GET['id']);
	$a_serverpass = $userbank->GetProperty("srv_password", $_GET['id']);
	$a_serverpass = !empty($a_serverpass);
}

$theme->assign('change_pass', ($userbank->HasAccess(ADMIN_OWNER) || $_GET['id'] == $userbank->GetAid()));
$theme->assign('user', $a_name);
$theme->assign('money', $a_money);   //<--------Добавленный  код 
$theme->assign('authid', $a_steam);
$theme->assign('email', $a_email);
$theme->assign('a_spass', $a_serverpass);

$theme->display('page_admin_edit_admins_details.tpl');
?>
<script type="text/javascript">window.addEvent('domready', function(){
<?php echo $errorScript; ?>
});
</script>

Дальше добавляем код в файл page_admin_edit_admins_details.tpl после

PHP:
<td valign="top" width="35%"><div class="rowdesc">{help_icon title="Логин" message="Это имя пользователя будет использоваться администратором, для входа в панель управления."}Логин </div></td>
    <td><div align="left">
        <input type="text" class="submit-fields" id="adminname" name="adminname" value="{$user}" />
      </div>
        <div id="adminname.msg" class="badentry"></div></td>

вот этот
PHP:
</tr>
  <tr>
  <td valign="top" width="35%"><div class="rowdesc">{help_icon title="Срок админки" message="Это имя пользователя будет использоваться администратором, для входа в панель управления."}Срок админки </div></td>
    <td><div align="left">
        <input type="text" class="submit-fields" id="money" name="money" value="{$money}" />
      </div>
        <div id="money.msg" class="badentry"></div></td>

Дальше добавляем код в файл page_admin_admins_add.tpl после

PHP:
<tr>
		    	<td valign="top" width="35%">
		    		<div class="rowdesc">
		    			{help_icon title="Логин" message="Это имя пользователя будет использоваться администратором, для входа в панель управления."}Логин 
		    		</div>
		    	</td>
		    	<td>
		    		<div align="left">
		        		<input type="text" TABINDEX=1 class="submit-fields" id="adminname" name="adminname" />
		      		</div>
		        	<div id="name.msg" class="badentry"></div>
		        </td>
			</tr>

вот этот

PHP:
<tr>
            <td valign="top" width="35%">
		    		<div class="rowdesc">
		    			{help_icon title="На срок админка" message="Это имя пользователя будет использоваться администратором, для входа в панель управления."}На срок админка 
		    		</div>
		    	</td>
		    	<td>
		    		<div align="left">
		        		<input type="text" TABINDEX=1 class="submit-fields" id="money" name="money" />
		      		</div>
		        	<div id="money.msg" class="badentry"></div>
		        </td>
			</tr>


Ммммм вообщем всё так коряво и не доделано но работает )))Если в что то не понятно то пишите по пробую объяснить.

Вот скрины как это выглядит у меня

123.jpg

1234.jpg

123456.jpg
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #17
rotmir,
Плюс один косяк когда админа добавляешь и пишешь в поле текст то он не заносится в базу данных , это я потом исправлю , а вот когда редактируешь профиль админа и вписываешь текст в тоже поле то всё нормально.
Какой текст ? В каком поле ?

В теге php нельзя сделать жирным.
 

rotmir

Участник
Сообщения
138
Реакции
25
да исправил .
Щас скрины сделаю.

Добавлено через 7 минут
что то я залил скрины сюда а их еле видно щас на файлообменник залью

Добавлено через 8 минут
вот
http://hdd.tomsk.ru/desk/qphqdepm
 
Последнее редактирование:
  • Мне нравится
Реакции: R1KO

rotmir

Участник
Сообщения
138
Реакции
25
на последнем скрине я вывел эту информацию куда мне нужно , которую заполняю в поле .

Добавлено через 4 минуты
А совсем забыл то в базу данных я добавил в таблицу sb_admins вот это money , сюда отправляется инфа которую вы пишите
 
Последнее редактирование:
  • Мне нравится
Реакции: R1KO
Сверху Снизу