Manual Устанавливаем префиксы в чат с сайта

PHP:
<!--под блоком (например шаблона flat)-->
<b>Ник на сервере</b>
<input type="text" class="form-control" id="user_nick" maxlength="30" autocomplete="off" value="{nick}" placeholder="Введите свой ник">
<button class="f-r btn2 mt-10" type="button" onclick="edit_user_nick();">Изменить</button>
<div class="f-l mt-10" id="edit_user_nick_result"></div><br><br>

<!--добавляем со своими классами стилей!!!-->
<b>Префикс в чате сервера</b>
<input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $user->prefix?>" placeholder="Укажите префикс">
<button class="f-r btn2 mt-10" type="button" onclick="edit_user_prefix();">Изменить</button>
<div class="f-l mt-10" id="edit_user_prefix_result"></div><br><br>

Вывод поля для префикса только тем пользователям, у кого есть активная привилегия для префиксов (не проверено, возможны ошибки):
PHP:
<!-- конец функции user_admins -->
        if($this->tpl->result['local_content'] == '') {
            $this->tpl->result['local_content'] = '<tr><td colspan="10">Привилегий нет</td></tr>';
        }

        return $this->tpl->result['local_content'];
    }

<!-- добавляемый код -->
    public function check_prefix_access($id = 0) {
        $id = check($id, "int");
        if ($id == 0) {
            exit ();
        }

        $STH = $this->pdo->prepare("SELECT `services`.`rights` FROM `admins`
            LEFT JOIN `admins__services` ON `admins`.`id` = `admins__services`.`admin_id`
            LEFT JOIN `services` ON `admins__services`.`service` = `services`.`id`
            WHERE `admins`.`user_id` = :user_id AND `admins`.`active` = 1"); $STH->setFetchMode(PDO::FETCH_OBJ);
        $STH->execute(array(':user_id' => $id));

        while($row = $STH->fetch()) {
            if ($row->rights == "_nick_prefix")
                return true;
        }

        return false;
    }
<!-- конец файла -->
}
PHP:
<!-- добавляем начало условия -->
{if(func Widgets:check_prefix_access($user->id))}
<!-- ранее добавленный блок с полем ввода префикса -->
<b>Префикс в чате сервера</b>
<input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $user->prefix?>" placeholder="Укажите префикс">
<button class="f-r btn2 mt-10" type="button" onclick="edit_user_prefix();">Изменить</button>
<div class="f-l mt-10" id="edit_user_prefix_result"></div><br><br>
<!-- добавляем окончание условия -->
{/if}
Добавлено:

Не дает более изменить предыдущий пост, так что придется заного написать... Проверенный код.

Вывод поля для префикса только тем пользователям, у кого есть активная привилегия для префиксов:
PHP:
<!-- конец функции user_admins -->
        if($this->tpl->result['local_content'] == '') {
            $this->tpl->result['local_content'] = '<tr><td colspan="10">Привилегий нет</td></tr>';
        }

        return $this->tpl->result['local_content'];
    }

<!-- добавляемый код -->
    public function check_prefix_access($id = 1) {
        $id = check($id, "int");

        $this->tpl->result['local_content'] = '';

        $STH = $this->pdo->prepare("SELECT `services`.`rights` FROM `admins`
            LEFT JOIN `admins__services` ON `admins`.`id` = `admins__services`.`admin_id`
            LEFT JOIN `services` ON `admins__services`.`service` = `services`.`id`
            WHERE `admins`.`user_id` = :user_id AND `admins`.`active` = 1"); $STH->setFetchMode(PDO::FETCH_OBJ);
        $STH->execute(array(':user_id' => $id));

        while($row = $STH->fetch()) {
            if ($row->rights == "_nick_prefix") {
                $this->tpl->load_template('elements/user_prefix_field.tpl');
                $this->tpl->compile( 'local_content' );
                $this->tpl->clear();
                break;
            }
        }

        return $this->tpl->result['local_content'];
    }
<!-- конец файла -->
}
Пример кода для шаблона standart:
PHP:
<!-- Блок с кодом от поля "Ник на сервере" -->
                <div class="form-group">
                    <label>
                        <h4>
                            Ник на сервере
                        </h4>
                    </label>
                    <div class="input-group">
                        <div class="input-group-prepend">
                            <button class="btn btn-outline-primary" type="button" onclick="edit_user_nick();">Изменить</button>
                        </div>
                        <input type="text" class="form-control" id="user_nick" maxlength="30" autocomplete="off" value="{nick}" placeholder="Введите свой ник">
                    </div>
                    <div id="edit_user_nick_result"></div>
                </div>
<!-- После него добавляем вызов нового кода виджета -->
                {func Widgets:check_prefix_access($user->id)}
PHP:
<div class="form-group">
    <label>
        <h4>
            Префикс в чате сервера
        </h4>
    </label>
    <div class="input-group">
        <div class="input-group-prepend">
            <button class="btn btn-outline-primary" type="button" onclick="edit_user_prefix();">Изменить</button>
        </div>
        <input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $user->prefix?>" placeholder="Укажите префикс">
    </div>

    <div id="edit_user_prefix_result"></div>
</div>
 
Последнее редактирование:
Здравствуйте! Уважаемые форумчане!

В дополнение к предыдущему посту, можно сделать еще и немного по креативней, в плане вывода сообщений, что бы пользователям было понятней что да как.

Если Вас заинтересовало, пишите по контактам в профиле (или лс), отвечаю не сразу, могу быть занят.

109010911093

Возможны доработки и изменения (могу доработать как Вы захотите).✌
 
Последнее редактирование:
Всё сделал по инструкции, но префикс не сохраняется в профиле и не выдается.
Скорее всего не правильно добавил инфу в эти файлы, подскажите пожалуйста как правильно добавить?

HTML:
<div class="block">
                <b>Ник на сервере</b>
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="button" onclick="edit_user_nick();">Изменить</button>
                    </span>
                    <input type="text" class="form-control" id="user_nick" maxlength="30" autocomplete="off" value="{nick}">
                </div>
                <div id="edit_user_nick_result"></div>
            </div>
            
            <b>Префикс в чате сервера</b>
            <input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $user->prefix?>" placeholder="Укажите префикс">
                <button class="f-r btn2 mt-10" type="button" onclick="edit_user_prefix();">Изменить</button>
            <div class="f-l mt-10" id="edit_user_prefix_result"></div><br><br>
            
            <div class="block">
                <b>Steam ID</b>
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="button" onclick="edit_user_steam_id();">Изменить</button>
                    </span>
                    <input type="text" class="form-control" id="user_steam_id" maxlength="32" autocomplete="off" value="{steam_id}">
                </div>
                <div id="edit_user_steam_id_result"></div>
            </div>

HTML:
<div class="block">
                    <b>Ник на сервере</b>
                    <div class="input-group">
                        <span class="input-group-btn">
                            <button class="btn btn-default" type="button" onclick="admin_change_nick({id});">Изменить</button>
                        </span>
                        <input type="text" class="form-control" id="user_nick" maxlength="30" autocomplete="off" value="{nick}">
                    </div>
                </div>
                <br>

                <div class="block">
                    <b>Steam ID</b>
                    <div class="input-group">
                        <span class="input-group-btn">
                            <button class="btn btn-default" type="button" onclick="admin_change_steam_id({id});">Изменить</button>
                        </span>
                        <input type="text" class="form-control" id="user_steam_id" maxlength="32" autocomplete="off" value="{steam_id}">
                    </div>
                </div>
                <br>
                
                    <b>Префикс в серверном чате</b>
                        <div class="input-group">
                        <span class="input-group-btn">
                        <button class="btn btn-default" type="button" onclick="admin_change_prefix({id});">Изменить</button>
                    </span>
                <input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $profile->prefix?>">
                </div>
                    <br>

                <div class="block">
                    <b>Дата рождения</b>
                    <div class="input-group">
                        <select class="w-60 h-34" id="birth_day">{birth_day}</select>
                        <select class="w-60 h-34" id="birth_month">{birth_month}</select>
                        <select class="w-60 h-34" id="birth_year">{birth_year}</select>

                        <button class="btn btn-default mt--3" type="button" onclick="admin_change_birth({id});">Изменить</button>
                    </div>
                </div>
                <br>
 

Вложения

  • files.zip
    6.7 KB · Просмотры: 5
Всё сделал по инструкции, но префикс не сохраняется в профиле и не выдается.
Скорее всего не правильно добавил инфу в эти файлы, подскажите пожалуйста как правильно добавить?

HTML:
<div class="block">
                <b>Ник на сервере</b>
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="button" onclick="edit_user_nick();">Изменить</button>
                    </span>
                    <input type="text" class="form-control" id="user_nick" maxlength="30" autocomplete="off" value="{nick}">
                </div>
                <div id="edit_user_nick_result"></div>
            </div>
          
            <b>Префикс в чате сервера</b>
            <input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $user->prefix?>" placeholder="Укажите префикс">
                <button class="f-r btn2 mt-10" type="button" onclick="edit_user_prefix();">Изменить</button>
            <div class="f-l mt-10" id="edit_user_prefix_result"></div><br><br>
          
            <div class="block">
                <b>Steam ID</b>
                <div class="input-group">
                    <span class="input-group-btn">
                        <button class="btn btn-default" type="button" onclick="edit_user_steam_id();">Изменить</button>
                    </span>
                    <input type="text" class="form-control" id="user_steam_id" maxlength="32" autocomplete="off" value="{steam_id}">
                </div>
                <div id="edit_user_steam_id_result"></div>
            </div>

HTML:
<div class="block">
                    <b>Ник на сервере</b>
                    <div class="input-group">
                        <span class="input-group-btn">
                            <button class="btn btn-default" type="button" onclick="admin_change_nick({id});">Изменить</button>
                        </span>
                        <input type="text" class="form-control" id="user_nick" maxlength="30" autocomplete="off" value="{nick}">
                    </div>
                </div>
                <br>

                <div class="block">
                    <b>Steam ID</b>
                    <div class="input-group">
                        <span class="input-group-btn">
                            <button class="btn btn-default" type="button" onclick="admin_change_steam_id({id});">Изменить</button>
                        </span>
                        <input type="text" class="form-control" id="user_steam_id" maxlength="32" autocomplete="off" value="{steam_id}">
                    </div>
                </div>
                <br>
              
                    <b>Префикс в серверном чате</b>
                        <div class="input-group">
                        <span class="input-group-btn">
                        <button class="btn btn-default" type="button" onclick="admin_change_prefix({id});">Изменить</button>
                    </span>
                <input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $profile->prefix?>">
                </div>
                    <br>

                <div class="block">
                    <b>Дата рождения</b>
                    <div class="input-group">
                        <select class="w-60 h-34" id="birth_day">{birth_day}</select>
                        <select class="w-60 h-34" id="birth_month">{birth_month}</select>
                        <select class="w-60 h-34" id="birth_year">{birth_year}</select>

                        <button class="btn btn-default mt--3" type="button" onclick="admin_change_birth({id});">Изменить</button>
                    </div>
                </div>
                <br>
в setting.tpl
должен добавить так
<div class="block">
<b>Префикс в чате сервера</b>
<input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $user->prefix?>" placeholder="Укажите префикс">
<button class="f-r btn2 mt-10" type="button" onclick="edit_user_prefix();">Изменить</button>
<div class="f-l mt-10" id="edit_user_prefix_result"></div><br><br>


А к edit_user.tpl
должен быть так

<div class="block">
<b>Префикс в серверном чате</b>
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default" type="button" onclick="admin_change_prefix({id});">Изменить</button>
</span>
<input type="text" class="form-control" id="user_prefix" maxlength="16" autocomplete="off" value="<?echo $profile->prefix?>">
</div>
</div>
<br>

EnemyDown,
 
Болат, Не помогло, пишу префикс наживаю изменить, обновляю страницу и в поле пусто. В БД тоже пусто.
vC41k8bKpas.jpg
 

Вложения

  • home.rar
    4.5 KB · Просмотры: 2
EnemyDown, вы там сделали все по инстркуций?

Перепроверил всё, вроде по инструкции. Но мог по незнанию и накосячить.
tvnrcU-pzzE.jpg

Прописал по файлам, если есть возможность посмотрите пожалуйста что не так я сделал.

Прописал префикс на прямую в БД, так работает. Т.е. не работает добавление через сайт
 

Вложения

  • home.rar
    4.5 KB · Просмотры: 6
  • ajax.rar
    34.3 KB · Просмотры: 7
Последнее редактирование:
EnemyDown,
1. Устал повторять
Свои проблемы решаются в теме Помощи
2. Не вижу проблем. Все должно работать
 
Всем привет.
Может кто нибудь подкинет идею.
Можно ли совместить сразу две услуги.
Ну например, услуга Вступить в клан сервера). Чтобы не только префикс а и флаг любой присваивался одновременно.
 
Всем привет.
Может кто нибудь подкинет идею.
Можно ли совместить сразу две услуги.
Ну например, услуга Вступить в клан сервера). Чтобы не только префикс а и флаг любой присваивался одновременно.
в настройках услуги укажи требуемые флаги
 
Kucklovod00, ну вот смотрите, допустим стоит у меня услуга на префикс в чате _nick_prefix в графе флаги
Чтобы мне еще добавлялся и флаг доступа, надо еще просто вписать любой флаг, то есть ,,_nick_prefix s,, допустим ?
 
pollfank, Ваш замысел не понятен, поэтому сложно представить такую реализацию. В одной графе- одно значение- либо название, либо флаги
 
zhorzh78, в том то и дело, что на сколько я понимаю одновременно нельзя выдать услугу префикс и флаг доступа. Можно только по отдельности. Сначала префикс потом флаг или наоборот.
 
Стас помог все исправить
 
Последнее редактирование:
Привет всем. У меня такая проблема в плагине chat manager. Добавил код в исходник в конце. Скомпилировал. На сайте добавил поле префикс и т.д
Когда я выдаю Префикс игроку. И если у него нет VIP прав на флаг t то Префикс появляется. Если есть флаг t то за место префикса. Префикс VIP появляется. А сам префикс нет.
Это можно как то решить?
 
Назад
Сверху