Перейти к содержимому


Фото
- - - - -

Добавить покупателя в Админке

админка покупатель

  • Чтобы отвечать, сперва войдите на форум
9 ответов в теме

#1 DarAmal

DarAmal
  • Пользователь
  • 642 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 15.06.2017 - 21:36

Приветствую, друзья!

 

Делаю магазин исключительно для диллеров, с низкими ценами.

Планирую убрать с сайта ссылку на Регистрацию, а оставить только Авторизацию.

 

Диллерам хочу создать аккаунты с самой Админки и вносить определенно каждого в отдельную группу со своей скидкой.

 

К сожалению, в Админке не предусмотрено добавление пользователей (покупателей).

 

Может, кто реализовал подобное?!

 

Помогите пожалуйста советами.

 

Благодарю!



#2 mishanya

mishanya
  • Фрилансер
  • 2 429 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 15.06.2017 - 22:10

смотрите по аналогии с другими контролерами админки. если есть айди - обновляем юзера, нету - добавляем.



#3 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 156 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 15.06.2017 - 22:26

смотрите по аналогии с другими контролерами админки. если есть айди - обновляем юзера, нету - добавляем.

 

я правильно понимаю, делается это как-то так?

if(empty($user->id))
{
	$user->id = $this->users->add_user($user);
	$this->design->assign('message_success', 'added');
}

 

только там немного все отщличается от  других контроллеров, куча условий,

сходу не разберешь, куда втыкать :)

 

 

UPD:

я так понимаю вставить как условие elseif в район 30 строки в файле /simpla/UserAdmin.php? то есть заменить этот код:

        else
        {
            $user->id = $this->users->update_user($user->id, $user);
            $this->design->assign('message_success', 'updated');
            $user = $this->users->get_user(intval($user->id));
        }

на этот:

        elseif(empty($user->id))
        {
             $user->id = $this->users->add_user($user);
             $this->design->assign('message_success', 'added');
        }
        else
        {
            $user->id = $this->users->update_user($user->id, $user);
            $this->design->assign('message_success', 'updated');
            $user = $this->users->get_user(intval($user->id));
        }

Изменено: Maksclub, 15.06.2017 - 22:43


#4 DarAmal

DarAmal
  • Пользователь
  • 642 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 15.06.2017 - 22:27

смотрите по аналогии с другими контролерами админки. если есть айди - обновляем юзера, нету - добавляем.

Mishanya, спасибо за ответ.
Если не сложно тебе, можно поподробнее?!
Покупателей нет. Будут новые с админки.

#5 mishanya

mishanya
  • Фрилансер
  • 2 429 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 15.06.2017 - 22:45

я правильно понимаю, делается это как-то так?

if(empty($user->id))
{
	$user->id = $this->users->add_user($user);
	$this->design->assign('message_success', 'added');
}

 

только там немного все отщличается от  других контроллеров, куча условий,

сходу не разберешь, куда втыкать :)

 

 

UPD:

я так понимаю вставить как условие elseif в район 30 строки в файле /simpla/UserAdmin.php? то есть заменить этот код:

 

почти, + еще в дизайне и в контролере пароль и саму форму сделать редактируемой


Изменено: mishanya, 15.06.2017 - 22:48


#6 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 156 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.06.2017 - 08:03

и в контролере пароль

 
еще 1 условие?

 elseif ($this->request->post('password') != "")
 {
 	$user->password = $this->request->post('password');
 }

 

ладно, попробую все сделать, а не по кускам спрашивать


Изменено: Maksclub, 16.06.2017 - 08:07


#7 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 156 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.06.2017 - 09:35

UPD: Сделал

https://yadi.sk/i/dMryY8zX3KBAbU

 

 

1. Редактируем контроллер

 

В файле /simpla/UserAdmin.php  (примерно строка 30)

        else
        {
            $user->id = $this->users->update_user($user->id, $user);
            $this->design->assign('message_success', 'updated');
            $user = $this->users->get_user(intval($user->id));
        }

заменяем на

        elseif(empty($user->id))
        {
             $user->id = $this->users->add_user($user);
             $this->design->assign('message_success', 'added');
        }
        elseif($this->request->post('password') != "")
        {
             $user->password = $this->request->post('password');
        }
        else
        {
            $user->id = $this->users->update_user($user->id, $user);
            $this->design->assign('message_success', 'updated');
            $user = $this->users->get_user(intval($user->id));
        }

 

 

 

2. Кнопка "Добавить пользователя"  в списке пользователей

 

В файле /simpla/design/html/users.tpl перед строкой (в районе 33 строки):

	{if $users_count>0}
<form method="post" action="{url module=ExportUsersAdmin}" target="_blank">
 

вставляем

	<a class="add" href="{url module=UserAdmin return=$smarty.server.REQUEST_URI}">Добавить пользователя</a>

 

 

 

3. Редактируем страницу создания пользователя

 

В файле /simpla/design/html/user.tpl оборачиваем список заказов пользователя

в еще 1 условие {if $user->id}  {/if} (тк при добавлении нового пользователя вываливался список всех заказов магазина)

{if $user->id}

{if $orders}
       <div class="block" id=column_left>
       <form id="list" method="post">

... код формы ....

	</form>
	</div>
</div>
{/if}

{/if}

 

 

 

Поле для добавлениия пароля, вставим строку:

Пароль:
<input id="password_input" class="name" name="password" type="password" value=""/> 

после строки:

<input name=id type="hidden" value="{$user->id|escape}"/>

 

 
 

также добавим системное сообщение, что добавили пользователя, строку:

	<span class="text">{if $message_success=='updated'}Пользователь отредактирован{else}{$message_success|escape}{/if}</span>

заменим на :

	<span class="text">{if $message_success=='added'}Пользователь добавлен{elseif $message_success=='updated'}Пользователь обновлен{else}{$message_success}{/if}</span>



Изменено: Maksclub, 16.06.2017 - 09:54


#8 DarAmal

DarAmal
  • Пользователь
  • 642 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 16.06.2017 - 10:01

Maksclub, огромное спасибо!

 

Пользователь добавляется, когда ставишь на галочку Активен, иначе нет.

После того, как добавил, авторизация на сайте не проходит.

 

Пишет: "Неверный логин или пароль". ((



#9 ЯкЦинДрак

ЯкЦинДрак
  • Пользователь
  • 88 сообщений
  • Программирование
  • Откуда:Russia

Опубликовано 16.06.2017 - 10:26

В п.1 замена какая-то совсем кривая.

 

Пробуйте заменять на

 

	else
        {
	        if(empty($user->id))
		{
			$user->password = $this->request->post('password');
			$user->id = $this->users->add_user($user);
			$this->design->assign('message_success', 'added');
		}
	        else
		{
			$user->id = $this->users->update_user($user->id, $user);
			$this->design->assign('message_success', 'updated');
		}
		$user = $this->users->get_user(intval($user->id));

        }

 

И хорошо бы заменить

            $user->enabled = $this->request->post('enabled');
на

            $user->enabled = $this->request->post('enabled', 'boolean');
 



#10 DarAmal

DarAmal
  • Пользователь
  • 642 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 16.06.2017 - 10:44

Maksclub, ЯкЦинДрак!

 

Большое вам спасибо. Теперь работает отлично. ;)







Также с меткой «админка, покупатель»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых