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

Тема в разделе "SourceBans", создана пользователем R1KO, 17 апр 2013.

  1. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    Здравствуйте. У меня вопрос, может кто знает как изменить показанные поля и их запись в БД ??

    [​IMG]

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

    September

    Сообщения:
    1.183
    Симпатии:
    163
  3. R1KO

    R1KO Супер-модератор

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

    Dexter48 Оптимист по жизни:) [EvoLand]

    Сообщения:
    58
    Симпатии:
    12
    Да, тоже искал, и до сих пор ищу.А ведь так охота добавить дополнительное поле...
     
  5. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    Может давайте как то напряжемся и попытаемся найти ?! :P
     
  6. Dexter48

    Dexter48 Оптимист по жизни:) [EvoLand]

    Сообщения:
    58
    Симпатии:
    12
    Ну давай :-D
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    /pages/admin.edit.admindetails.php
    Может хоть кто-то поймет там что-то, я немного мудрил, в общем, там стоит порытся визуальная часть там 100 % а вот запись в бд...
     
  8. Dexter48

    Dexter48 Оптимист по жизни:) [EvoLand]

    Сообщения:
    58
    Симпатии:
    12
    Это совсем не то,ИМХО.
     
  9. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    Dexter48, Я там рылся и переименовал "E-Mail админа"
     
  10. Dexter48

    Dexter48 Оптимист по жизни:) [EvoLand]

    Сообщения:
    58
    Симпатии:
    12
    А, ну тогда, щас гляну.
     
  11. rotmir

    rotmir

    Сообщения:
    113
    Симпатии:
    22
    Рико тебя ещё интересует этот вопрос ?? Я сделал чтоб при добавление было поле дополнительное и при редактирование , плюс чтоб отправлялось в базу данных.
     
    R1KO нравится это.
  12. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    rotmir, Конечно интересует. Делись)))
     
  13. ★$$StOk$$★

    ★$$StOk$$★

    Сообщения:
    648
    Симпатии:
    178
    Со мной поделится можешь ?
     
  14. September

    September

    Сообщения:
    1.183
    Симпатии:
    163
    тоже интересно
     
  15. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    Да что вы налетели то?)) Думаю он выложит сюда))
     
  16. rotmir

    rotmir

    Сообщения:
    113
    Симпатии:
    22
    Вообщем я половина кода там вообще не знаю , но покапавшись всё таки сделал .Плюс один косяк когда админа добавляешь и пишешь в поле текст то он не заносится в базу данных , это я потом исправлю , а вот когда редактируешь профиль админа и вписываешь текст в тоже поле то всё нормально.

    Вот код измененный он будет закоментирован такими словами "//<--------Добавленный код ":
    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']) != || $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=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=class="submit-fields" id="money" name="money" />
                          </
    div>
                        <
    div id="money.msg" class="badentry"></div>
                    </
    td>
                </
    tr>

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

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

    123.jpg

    1234.jpg

    123456.jpg
     
    R1KO, ★Сириус★, MOHAX и ещё 1-му нравится это.
  17. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    rotmir,
    Какой текст ? В каком поле ?

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

    rotmir

    Сообщения:
    113
    Симпатии:
    22
    да исправил .
    Щас скрины сделаю.

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

    Добавлено через 8 минут
    вот
    http://hdd.tomsk.ru/desk/qphqdepm
     
    Последнее редактирование: 11 июл 2013
    R1KO нравится это.
  19. Konstantin

    Konstantin

    Сообщения:
    1.789
    Симпатии:
    767
    rotmir, радикал тебе в помощь.
     
  20. rotmir

    rotmir

    Сообщения:
    113
    Симпатии:
    22
    на последнем скрине я вывел эту информацию куда мне нужно , которую заполняю в поле .

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