Jump to content

Дополнительное поле при регистрации пользователя


Recommended Posts

Такс, с проверкой поля e-mail разобрался - теперь регистрируется без него. Кто в курсе, как сделать, что бы в качестве логина (в его роли выступает e-mail) был телефон? И как сделать, что бы у авторизованного пользователь при оформлении заказа уже было заполнено поле "телефон"?

Link to post
Share on other sites
  • Replies 118
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

при оформлении заказа уже было заполнено поле "телефон"


CartView.php после
$this->design->assign('email', $this->user->email);



добавить

$this->design->assign('phone', $this->user->phone);
Link to post
Share on other sites

filth, за автозаполнение спасибо. Отказался я от необязательного поля "e-mail". Сделал так - поле емаил обязательно при регистрации, но не обязательно при оформлении заказа, в последнем случае - обязательно поле "телефон". Как считаете, правильно?

Link to post
Share on other sites

Думаю да, тем более поле e-mail само подтянется к заказу.
У Меня например, все поля обязательны, кроме того, я добавил поле "Адрес доставки" и оно тоже обязательно, а то шутников много))).

Link to post
Share on other sites
  • 1 month later...
  • 2 weeks later...

Помогите добавить поле в корзине при заказе. Допустим надо поле "Индекс".
Получилось сделать только визуально, отображается название поля в админке и на самом сайте, но значение не отображается(пусто).

Link to post
Share on other sites
  • 1 month later...
  • 3 weeks later...
  • 1 month later...
  • 2 months later...
  • 3 weeks later...
  • 2 months later...

Notice: Undefined property: stdClass::$phone in /home/***/docs/view/UserView.php on line 67

Warning: Cannot modify header information - headers already sent by (output started at /home/brigadir1/brigadir.pro/docs/view/UserView.php:67) in /home/***/docs/index.php on line 26

 

При входе авторизованного пользователя в личный кабинет вылезает ошибка. Телефон не сохраняется, при регистрации нового пользователя пишет, что нужно ввести e-mail...

Link to post
Share on other sites
  • 4 weeks later...

 

Danya

1.Странно, когда я захожу в кабинет - телефон есть.

2. Нужно в /view/CartView.php после

$this->design->assign('email', $this->user->email);

добавить

$this->design->assign('phone', $this->user->phone);

 

Ничего не могу понять. добавил этот код в /CartView.php,  в \simpla\design\html\user.tpl, в \design\default\html\user.tpl все равно автозаполнение не работает ни в корзине, ни в личном кабинете. Единственное место где отображается номер телефона это в списке покупателей в админке, однако если зайти в учетку покупателя там номера уже не будет.

 

Получается что значение value="{$user->email|escape}" не работает в этих файлах. В чем может быть проблема?

Link to post
Share on other sites

fedot361, поиск работает, показывает что найден к примеру 1 пользователь, но не выводятся результаты!

 

p.s. вопрос отпал))

 

Как вы решили эту проблему? У меня тоже самое.

Link to post
Share on other sites
  • 2 weeks later...

Notice: Undefined property: stdClass::$phone in /home/***/docs/view/UserView.php on line 67

 

Warning: Cannot modify header information - headers already sent by (output started at /home/brigadir1/brigadir.pro/docs/view/UserView.php:67) in /home/***/docs/index.php on line 26

 

При входе авторизованного пользователя в личный кабинет вылезает ошибка. Телефон не сохраняется, при регистрации нового пользователя пишет, что нужно ввести e-mail...

Аналогичная проблема! :(

Link to post
Share on other sites
  • 1 month later...

Ничего не могу понять. добавил этот код в /CartView.php,  в \simpla\design\html\user.tpl, в \design\default\html\user.tpl все равно автозаполнение не работает ни в корзине, ни в личном кабинете. Единственное место где отображается номер телефона это в списке покупателей в админке, однако если зайти в учетку покупателя там номера уже не будет.

 

Получается что значение value="{$user->email|escape}" не работает в этих файлах. В чем может быть проблема?

У меня та же проблема, люди, подскажите в чем трабл?

 

И еще у меня версия 2.2.3 и там вместо 

 

elseif($user_id
= $this->users->add_user(array('name'=>$name, 'email'=>$email,
'password'=>$password, 'enabled'=>$default_status)))

 

 

 

elseif($user_id
= $this->users->add_user(array('name'=>$name, 'email'=>$email,
'password'=>$password, 'enabled'=>$default_status,
'last_ip'=>$_SERVER['REMOTE_ADDR'])))

 

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

 

 

elseif($user_id
= $this->users->add_user(array('name'=>$name, 'email'=>$email,
'password'=>$password, 'enabled'=>$default_status,
'phone'=>$this->request->post('phone'))))

 

Link to post
Share on other sites

Спасибо все шикарно работает) парни извените за не скромный вопрос у вас руки для чего и откуда растут? минут за 5 все поставил что в админке что у аккуанте все шикарно... 

 

кому нужна помшь. могу помочь, деньге не нужны нужна тока помошь) как говриться баш на баш...

Link to post
Share on other sites
  • 2 weeks later...

Огромное спасибо! Все работает!

 

Вот инструкция, так сказать, пошаговая:

=========Добавление поля "Телефон"
1. В таблице s_users добавляем поле phone с типом varchar и длиной 20

2./view/RegisterView.php
вместо строки
			elseif($user_id = $this->users->add_user(array('name'=>$name,
вставляем
			elseif($user_id = $this->users->add_user(array('name'=>$name, 'email'=>$email, 'password'=>$password, 'enabled'=>$default_status, 'last_ip'=>$_SERVER['REMOTE_ADDR'],'phone'=>$this->request->post('phone'))))
			
3. /api/Users.php
заменить в двух местах (дописать u.phone)
				$query = $this->db->placehold("SELECT u.id, u.email, u.password, u.name, u.group_id, u.enabled, u.last_ip, 
 на
		$query = $this->db->placehold("SELECT u.id, u.email, u.password, u.name, u.group_id, u.enabled, u.last_ip, u.phone, u.created, g.discount, g.name as group_name FROM __users u LEFT JOIN __groups g ON u.group_id=g.id $where LIMIT 1", $id);

4. /view/UserView.php
вместо
					elseif($user_id = $this->users->update_user($this->user->id, array('name'=>$name, 'email'=>$email)))
пишем
					elseif($user_id = $this->users->update_user($this->user->id, array('name'=>$name, 'email'=>$email, 'phone'=>$this->request->post('phone'))))

затем ДВАЖДЫ (в двух разных местах) после строк
$this->design->assign('email', $this->user->email);					
дописываем 
$this->design->assign('phone', $this->user->phone);

5. /simpla/UserAdmin.php
после
			$user->email = $this->request->post('email');
пишем
			$user->phone = $this->request->post('phone');
			
6. /simpla/design/html/user.tpl
после
				<li><label class=property>Email</label><input name="email" class="simpla_inp" type="text" value="{$user->email|escape}" /></li>
пишем
				<li><label class=property>Телефон</label><input name="phone" class="simpla_inp" type="text" value="{$user->phone|escape}" /></li>

7. /simpla/design/html/users.tpl
после
					<a href="mailto:{$user->name|escape}<{$user->email|escape}>">{$user->email|escape}</a>	
				</div>
добавляем
				<div class="cell">
					{$user->phone|escape}
				</div>
И на следующей строке вместо
				<div class="user_group cell">
пишем
				<div class="cell">
В админке пользователей вывели.

8. /design/ВАША ТЕМА/html/user.tpl
после 
	<input data-format="email" data-notice="Введите email" value="{$email|escape}" name="email" maxlength="255" type="text"/></td>
пишем
	<label>Телефон</label>
	<input data-format=".+" data-notice="Введите телефон" value="{$phone|escape}" name="phone" maxlength="20" type="text"/>

Настраиваем поиск по телефону
меняем в двух местах
				$keyword_filter .= $this->db->placehold('AND u.name LIKE "%'.mysql_real_escape_strin
на
				$keyword_filter .= $this->db->placehold('AND u.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR u.email LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR u.phone LIKE "%'.mysql_real_escape_string(trim($keyword)).'%"');	
	
9./design/ВАША ТЕМА/html/register.tpl
после
	<input type="text" name="email" data-format="email" data-notice="Введите email" value="{$email|escape}" maxlength="255" />
пишем 
	<label>Телефон</label>
	<input type="text" name="phone" data-format=".+" data-notice="Введите телефон" value="{$phone|escape}" maxlength="20" />

 

Link to post
Share on other sites

Если кто-то решит внести поле  "Телефон" в экспортируемый XLS, то редактируем файл /simpla/ajax/export_users.php

 

Получаем:

private $columns_names = array(
			'name'=>             'Имя',
			'phone'=>          'Телефон',
			'email'=>            'Email',
			'group_name'=>            'Группа',
			'discount'=>         'Скидка',
			'enabled'=>          'Активен',
			'created'=>          'Дата',
			'last_ip'=>          'Последний IP'
			);

 

За подсказку большое спасибо гуру kosjak76!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...