1

Тема: Ребята, не редактируется профиль!

Ребят, может что-то накосячил, может еще что, но не редактируется профиль, подскажите старику

Бэкэнд

<?php
    // Show template for exist user else show error
    if ($user !== null) {
?>
<h2 class="margin-bottom-1"><?php echo __('Edit profile', 'users'); ?></h2>

<div class="row">
    <div class="col-md-6">
    <?php

        echo (
            Form::open().
            Form::hidden('csrf', Security::token()).
            Form::hidden('user_id', Request::get('user_id'))
        );

        if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) {
    ?>
        <div class="form-group">
    <?php
            echo Form::label('login', __('Username', 'users'));
            echo Form::input('login', $user['login'], array('class' => 'form-control'));
    ?>
        </div>
    <?php
        } else {
            echo Form::hidden('login', $user['login']);
        }
    ?>
        <div class="form-group">
    <?php            
        echo (            
            Form::label('firstname', __('Firstname', 'users')).
            Form::input('firstname', $user_firstname, array('class' => 'form-control'))
        );
    ?>
        </div>
        <div class="form-group">
    <?php 
        echo (
            Form::label('lastname', __('Lastname', 'users')).
            Form::input('lastname', $user_lastname, array('class' => 'form-control'))
        );
    ?>
        </div>
        <div class="form-group">
    <?php 
        echo (
            Form::label('Thirdname', __('Thirdname', 'users')).
            Form::input('Thirdname', $user_Thirdname, array('class' => 'form-control'))
        );
    ?>
        </div>
        <div class="form-group">
    <?php 
        echo (
            Form::label('mob', __('Mob', 'users')).
            Form::input('mob', $user_mob, array('class' => 'form-control'))
        );
    ?>
        </div>
        <div class="form-group">
    <?php 
        echo (
            Form::label('strana', __('Strana', 'users')).
            Form::input('strana', $user_strana, array('class' => 'form-control'))
        );
    ?>
        </div>
        <div class="form-group">
    <?php
        echo (
            Form::label('email', __('Email', 'users')).
            Form::input('email', $user_email, array('class' => 'form-control'))
        );
    ?>
        </div>
        <div class="form-group">
    <?php
        echo (
            Form::label('pd', __('Pd', 'users')).
            Form::input('pd', $user_pd, array('class' => 'form-control'))
        );
    ?>
        </div>
        <div class="form-group">
    <?php
        echo (
            Form::label('sum', __('Sum', 'users')).
            Form::input('sum', $user_sum, array('class' => 'form-control'))
        );
    ?>
        </div>
    <?php
        if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) {
    ?>
        <div class="form-group">
    <?php
            echo Form::label('role', __('Role', 'users'));
            echo Form::select('role', array('admin' => __('Admin', 'users'), 'editor' => __('Editor', 'users'), 'user' => __('User', 'users')), $user['role'], array('class' => 'form-control'))
    ?>
        </div>
    <?php
        } else {
            echo Form::hidden('role', Session::get('user_role'));
        }

        echo (
            Html::br().
            Form::submit('edit_profile', __('Save', 'users'), array('class' => 'btn btn-phone btn-primary')).Html::nbsp(2).
            Html::anchor(__('Cancel', 'users'), 'index.php?id=users', array('title' => __('Cancel', 'users'), 'class' => 'btn btn-phone btn-cancel btn-default')).
            Form::close()
        );

    ?>
    </div>

    <div class="col-md-6">
    <?php
        echo (
            Form::open().
            Form::hidden('csrf', Security::token()).
            Form::hidden('user_id', Request::get('user_id'))
        );
    ?>
        <div class="form-group">
    <?php
        echo (
            Form::label('new_password', __('New password', 'users')).
            Form::password('new_password', null, array('class' => 'form-control'))
        );
    ?>
        </div>
    <?php
        echo (    
            Form::submit('edit_profile_password', __('Save', 'users'), array('class' => 'btn btn-phone btn-primary')).
            Form::close()
        );
    ?>
    </div>

</div>


<?php
    } else {
        echo '<div class="error-message">'.__('This user does not exist', 'users').'</div>';
    }
?>

Фронтэнд

<div class="row">
    <div class="col-md-3">

        <form method="post">
        <?php
            echo (
                Form::hidden('csrf', Security::token()).
                Form::hidden('user_id', $user['id'])
            );
        ?>

        <?php if (isset($_SESSION['user_role']) && in_array($_SESSION['user_role'], array('admin'))) { ?>
        <div class="form-group">
            <label><?php echo __('Username', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['login']; ?>" name="login">
        </div>
        <?php } else { echo Form::hidden('login', $user['login']); } ?>
        <div class="form-group">
            <label><?php echo __('Firstname', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['firstname']; ?>" name="firstname">
        </div>
        <div class="form-group">
            <label><?php echo __('Lastname', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['lastname']; ?>" name="lastname">
        </div>
                <div class="form-group">
            <label><?php echo __('Thirdname', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['Thirdname']; ?>" name="Thirdname">
        </div>
        <div class="form-group">
            <label><?php echo __('Mob', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['mob']; ?>" name="mob">
        </div>
        <div class="form-group">
            <label><?php echo __('Strana', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['strana']; ?>" name="strana">
        </div>
        <div class="form-group">
            <label><?php echo __('Email', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['email']; ?>" name="email">
        </div>
        <div class="form-group">
            <label><?php echo __('Pd', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['pd']; ?>" name="pd">
        </div>
                <div class="form-group">
            <label><?php echo __('Sum', 'users'); ?></label>
            <input class="form-control" type="text" value="<?php echo $user['sum']; ?>" name="sum">
        </div>
        <div class="form-group">
            <label><?php echo __('New Password', 'users'); ?></label>
            <input class="form-control" type="text" name="new_password">
        </div>
        <div class="form-group">
        <input type="submit" class="btn btn-primary" value="<?php echo __('Save', 'users'); ?>" name="edit_profile">
        <?php echo Html::anchor(__('Cancel', 'users'), Site::url().'/users/'.Uri::segment(1), array('title' => __('Cancel', 'pages'), 'class' => 'btn btn-default')); ?>
        </div>
        </form>
    </div>
</div>

Поделиться

2

Re: Ребята, не редактируется профиль!

Ты прислал код вьюхи бекэнда и фронта, но форма проверяется и записывается не во вьюхах.
Это во первых.
Во вторых - в чем именно выражается - "не редактируется профиль"?
В третьих - включал ли ты режим разработки и если включал, то выдавались ли ошибки, и опять таки, если выдавались, то какие?

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

3

Re: Ребята, не редактируется профиль!

Message: Undefined index: thirdname

Location: /home/admin/web/default.domain/public_html/mmm/plugins/box/users/views/frontend/edit.view.php (line 28) 

При редактировании профиля и нажатии на кнопку сохранить открывает белую страницу

Поделиться

4

Re: Ребята, не редактируется профиль!

У вас во вьюхе есть инпут

Form::input('Thirdname', $user_Thirdname, array('class' => 'form-control'))

Когда вы нажимаете на кнопку сохранить - тебя перебрасывает на страницу

/plugins/box/users/users.admin.php

там идет обработка пересылаемого значения из формы.
Скорее всего ты данные из формы присваиваешь элементам массива и где то пропустил присвоение или объявление элемента с индексом

thirdname

а затем пытаешься его сохранить в таблицу БД. Или вызвать где то из массива.
Еще раз советую включить режим разработки и выложи скрин ошибки.
Включается он в

/engine/_init.php

нужно заменить

Monstra::$environment = Monstra::PRODUCTION;

на

Monstra::$environment = Monstra::DEVELOPMENT;
Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

5 (2015-06-20 12:41:21 отредактировано eugerasimoff)

Re: Ребята, не редактируется профиль!

Вот он /plugins/box/users/users.admin.php

<?php

// Add plugin navigation link
Navigation::add(__('Users', 'users'), 'system', 'users', 2);

/**
 * Users Admin Class
 */
class UsersAdmin extends Backend
{
    /**
     * Users admin
     */
    public static function main()
    {
        // Users roles
        $roles = array('admin'  => __('Admin', 'users'),
                       'editor' => __('Editor', 'users'),
                       'user'   => __('User', 'users'));

        // Get uses table
        $users = new Table('users');

        if (Option::get('users_frontend_registration') === 'true') {
            $users_frontend_registration = true;
        } else {
            $users_frontend_registration = false;
        }

        if (Request::post('users_frontend_submit')) {

            if (Security::check(Request::post('csrf'))) {

                if (Request::post('users_frontend_registration')) $users_frontend_registration = 'true'; else $users_frontend_registration = 'false';
                
                if (Option::update('users_frontend_registration', $users_frontend_registration)) {
                    Notification::set('success', __('Your changes have been saved.', 'users'));
                } else {
                    Notification::set('error', __('Your changes was not saved.', 'users'));
                }

                Request::redirect('index.php?id=users');

            } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
        }

        // Check for get actions
        // ---------------------------------------------
        if (Request::get('action')) {

            // Switch actions
            // -----------------------------------------
            switch (Request::get('action')) {

                // Add
                // -------------------------------------
                case "add":

                    if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) {

                        // Errors
                        $errors = array();

                        if (Request::post('register')) {

                            if (Security::check(Request::post('csrf'))) {

                                $user_login    = trim(Request::post('login'));
                                $user_password = trim(Request::post('password'));
                                $user_email    = trim(Request::post('email'));

                                if ($user_login == '')    $errors['users_empty_login']    = __('Required field', 'users');
                                if ($user_password == '') $errors['users_empty_password'] = __('Required field', 'users');
                                if ($user_email == '')    $errors['users_empty_email']    = __('Required field', 'users');
                                if ($users->select("[login='".$user_login."']")) $errors['users_this_user_already_exists']  = __('This user already exists', 'users');
                                if ($users->select("[email='".$user_email."']")) $errors['users_this_email_already_exists'] = __('This email already exists', 'users');

                                if (count($errors) == 0) {

                                    if ($users->insert(array('login'           => Security::safeName($user_login),
                                                             'password'        => Security::encryptPassword(Request::post('password')),
                                                             'email'           => Request::post('email'),
                                                             'hash'            => Text::random('alnum', 12),
                                                             'date_registered' => time(),
                                                             'role'            => Request::post('role')))) {
                                        Notification::set('success', __('New user have been registered.', 'users'));
                                    } else {
                                        Notification::set('error', __('New user was not registered.', 'users'));
                                    }

                                    Request::redirect('index.php?id=users');
                                }

                            } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
                        }

                        // Display view
                        View::factory('box/users/views/backend/add')
                                ->assign('roles', $roles)
                                ->assign('errors', $errors)
                                ->display();

                    } else {
                        Request::redirect('index.php?id=users&action=edit&user_id='.Session::get('user_id'));
                    }

                break;

                // Edit
                // -------------------------------------
                case "edit":

                    // Get current user record
                    $user = $users->select("[id='".(int) Request::get('user_id')."']", null);

                    if (isset($user['firstname'])) $user_firstname = $user['firstname']; else $user_firstname = '';
                    if (isset($user['lastname']))  $user_lastname  = $user['lastname'];  else $user_lastname  = '';
                    if (isset($user['thirdname']))  $user_thirdname  = $user['thirdname'];  else $user_thirdname  = '';
                    if (isset($user['email']))     $user_email = $user['email']; else $user_email = '';
                    if (isset($user['mob']))   $user_mob = $user['mob']; else $user_mob = '';
                    if (isset($user['strana']))     $user_strana = $user['strana']; else $user_strana = '';
                    if (isset($user['sum']))  $user_sum = $user['sum']; else $user_sum = '';
                    if (isset($user['pd']))  $user_pd = $user['pd']; else $user_pd = '';

                    if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin', 'editor'))) {

                        if ((Request::post('edit_profile')) and
                             (((int) Session::get('user_id') == (int) Request::get('user_id')) or
                               (in_array(Session::get('user_role'), array('admin'))))){

                                if (Security::check(Request::post('csrf'))) {

                                    if (Security::safeName(Request::post('login')) != '') {

                                        if ($users->update(Request::post('user_id'), array('login' => Security::safeName(Request::post('login')),
                                                                                      'firstname' => Request::post('firstname'),
                                                                                      'lastname'  => Request::post('lastname'),
                                                                                      'thirdname'  => Request::post('thirdname'),
                                                                                      'email'     => Request::post('email'),
                                                                                      'mob'     => Request::post('mob'),
                                                                                      'sum'   => Request::post('sum'),
                                                                                      'strana'  => Request::post('strana'),
                                                                                      'pd'  => Request::post('pd'),
                                                                                      'role'      => Request::post('role')))) {
                                            Notification::set('success', __('Your changes have been saved.', 'users'));
                                        } else {
                                            Notification::set('error', __('Your changes was not saved.', 'users'));
                                        }
                                        
                                        Request::redirect('index.php?id=users&action=edit&user_id='.Request::post('user_id'));
                                        
                                    } 

                                } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }

                        }

                        if (Request::post('edit_profile_password')) {

                            if (Security::check(Request::post('csrf'))) {

                                if (trim(Request::post('new_password')) != '') {
                                    
                                    if ($users->update(Request::post('user_id'), array('password' => Security::encryptPassword(trim(Request::post('new_password')))))) {
                                        Notification::set('success', __('Your changes have been saved.', 'users'));
                                    } else {
                                        Notification::set('error', __('Your changes was not saved.', 'users'));
                                    }
                    
                                    Request::redirect('index.php?id=users&action=edit&user_id='.Request::post('user_id'));
                                }

                            } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
                        }

                        if ( ((int) Session::get('user_id') == (int) Request::get('user_id')) or (in_array(Session::get('user_role'), array('admin')) && count($user) != 0) ) {

                            // Display view
                            View::factory('box/users/views/backend/edit')
                                    ->assign('user', $user)
                                    ->assign('user_firstname', $user_firstname)
                                    ->assign('user_lastname', $user_lastname)
                                    ->assign('user_thirdname', $user_thirdname)
                                    ->assign('user_email', $user_email)
                                    ->assign('user_mob', $user_mob)
                                    ->assign('user_strana', $user_strana)
                                    ->assign('user_pd', $user_pd)
                                    ->assign('user_sum', $user_sum)
                                    ->assign('roles', $roles)
                                    ->display();

                        } else {
                            echo __('Monstra says: This is not your profile...', 'users');
                        }

                    }

                break;

                // Delete
                // -------------------------------------
                case "delete":

                    if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin')) && (int)$_SESSION['user_id'] != (int)Request::get('user_id')) {

                        if (Security::check(Request::get('token'))) {

                            $user = $users->select('[id="'.Request::get('user_id').'"]', null);
                            if ($users->delete(Request::get('user_id'))) {
                                Notification::set('success', __('User <i>:user</i> have been deleted.', 'users', array(':user' => $user['login'])));
                            } else {
                                Notification::set('error', __('User <i>:user</i> was not deleted.', 'users', array(':user' => $user['login'])));
                            }
                            
                            Request::redirect('index.php?id=users');

                        } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }

                    }

                break;
            }
        } else {

            if (Session::exists('user_role') && in_array(Session::get('user_role'), array('admin'))) {

                // Dislay view
                View::factory('box/users/views/backend/index')
                        ->assign('roles', $roles)
                        ->assign('users_list', $users->select())
                        ->assign('users_frontend_registration', $users_frontend_registration)
                        ->display();

            } else {
                Request::redirect('index.php?id=users&action=edit&user_id='.Session::get('user_id'));
            }
        }

    }
}

http://joxi.ru/DmBXb8NfOzbgAP

Поделиться

6 (2015-06-20 13:12:43 отредактировано sergeyterr)

Re: Ребята, не редактируется профиль!

А ты уверен, что в XML таблице у тебя есть поле с именем thirdname или что оно именно так называется?
Бегло просмотрев, я не вижу у тебя причины ругаться на отсутствие этого индекса. Только если его нет в базе

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

7

Re: Ребята, не редактируется профиль!

<fields><login/><password/><email/><role/><date_registered/><firstname/><lastname/><login/><sum/><pd/><thirdname/><strana/><mob/><hash/><about_me/></fields>

Поделиться

8 (2015-06-20 13:52:05 отредактировано sergeyterr)

Re: Ребята, не редактируется профиль!

smile
У тебя есть строка

if (isset($user['thirdname']))  $user_thirdname  = $user['thirdname'];  else $user_thirdname  = '';

в которой ты формируешь переменную

$user_thirdname

Ты эту переменную передаешь во вьюху

->assign('user_thirdname', $user_thirdname)

А во вьюхе почему то подставляешь значение массива

<?php echo user['thirdname']; ?>

Хотя в том куске кода, который ты прислал этого косяка нет, но в скрине ошибки именно он виден:
Массив user получается из xml файла и если там нет данных в поле, то и в массиве это поле будет отсутствовать. Именно отсутствовать, а не равно ""

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

9 (2015-06-20 16:21:37 отредактировано eugerasimoff)

Re: Ребята, не редактируется профиль!

Понял, отпишусь

Поделиться

10

Re: Ребята, не редактируется профиль!

Хм, ничего не поменялось

Поделиться

11

Re: Ребята, не редактируется профиль!

В инпуте должно быть

value = "<?php echo $user_thirdname; ?>"

а у тебя

value = "<?php echo user['thirdname']; ?>"

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

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

12 (2015-06-20 16:57:03 отредактировано eugerasimoff)

Re: Ребята, не редактируется профиль!

Менял, та-же ошибка

http://joxi.ru/gmvRypqfV1gWma

Поделиться

13

Re: Ребята, не редактируется профиль!

Кстати эта проблема только с отчеством

Поделиться

14 (2015-06-20 17:36:01 отредактировано eugerasimoff)

Re: Ребята, не редактируется профиль!

Хм, не знаю, что сделал, осталось так-же $user['thirdname'] , но все стало работать. Спасибо за помощь.

Поделиться

15

Re: Ребята, не редактируется профиль!

Я думаю, что не стало. Скорее всего у тебя нет ошибки потому, что ты ввел какое то значение в отчество, оно прописалось с xml файле и появилось значение $user['thirdname']
если отчества не будет, будет ошибка. Нужно или в $user['thirdname'] прописать '"" при отсутствии значения в базе, или в $user_thirdname
Последняя ошибка http://joxi.ru/gmvRypqfV1gWma появлялась скорее всего, из за того, что у тебя неправильно присваивалась $user_thirdname или она не передавалась во вьюху.

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться

16

Re: Ребята, не редактируется профиль!

Так дело в том что выдает ошибку, при этом и регистрирует и редактирует профиль.

Поделиться

17

Re: Ребята, не редактируется профиль!

Для того, чтобы можно было помочь необходимо, чтобы вы выложили:
1. скрин ошибки
2. Файл user.admin.php
3. Файл вьюхи админки

И все это соответствующее той ошибке которая выдается в данный момент!!!

потому, что когда вы выкладываете текст в котором переменная $user_thirdname, а в ошибке массив $user['thirdname'] это не серьезно и наводит на мысли о том, что и файл user.admin.php не соответствует работающему.

Спасибо говорим плюсиком в репутацию. Так виднее smile

Поделиться