Ответить Новая тема Новый опрос 
Всего: 2 1 2 >
 Как добавить новые поля при регистрации
Tomato
Новичок
Сообщений: 10
Регистрация: 25-08-2013


06-11-2013 16:13
Доброго времени суток,уважаемые форумчане!
Подскажите,пожалуйста,как добавить новые текстовые поля при регистрации?
Заранее благодарю за любую помощь!
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
RAGE
Cпециалист
Сообщений: 145
Регистрация: 11-12-2011


06-11-2013 16:50
смотря куда именно добавить поля, можно к адресу (address) можно к самому клиенту (customer)

1. в соответствующей таблице создаешь нужные поля
2. в соответствующем классе дописываешь все эти поля...

обязательно объявить их 'public' и обязательно в public function getFields()

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


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



это основные шаги...
после них экземпляр класса будет в себе содержать эти новые поля...
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Tomato
Новичок
Сообщений: 10
Регистрация: 25-08-2013


07-11-2013 20:05
А можете поподробнее описать,где что менять?
Я нашел туториал по добавлению поля на престе версии 1.3,сделал примерно как там,с поправкой на версию 1.5,поле появилось,но почему-то при заполнении пишет ошибку(что поле не заполнено),хотя оно заполнено.
Туториал вот этот http://prestadev.ru/forum/tema-633-0.html
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Michel II
Профессионал
Сообщений: 473
Регистрация: 08-06-2012


07-11-2013 20:09
я когда то морочился с добавлением поля ОТЧЕСТВО (верс 1.4)
В общем прочтя все инструкции и ту что по ссылке, включительно - собрал для себя такую памятку (вообще хорошее дело собирать инструкции, скажу вам).
Деталей не помню, но для себя осталась в таком виде.


Первым делом открываем classes/Customer.php

после
Код:
Код:
public         $firstname;

добавляем

Код:
Код:
public         $middlename;


меняем

Код:
Код:
protected     $fieldsRequired = array('lastname', 'passwd', 'firstname', 'email');
    protected     $fieldsSize = array('lastname' => 32, 'passwd' => 32, 'firstname' => 32, 'email' => 128);
    protected     $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd',
         'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool');

на

Код:
Код:
protected     $fieldsRequired = array('lastname', 'passwd', 'firstname', 'middlename', 'email');
    protected     $fieldsSize = array('lastname' => 32, 'passwd' => 32, 'firstname' => 32, 'middlename' => 32, 'email' => 128);
    protected     $fieldsValidate = array('secure_key' => 'isMd5', 'lastname' => 'isName', 'firstname' => 'isName', 'middlename' => 'isName', 'email' => 'isEmail', 'passwd' => 'isPasswd',
         'id_gender' => 'isUnsignedId', 'birthday' => 'isBirthDate', 'newsletter' => 'isBool', 'optin' => 'isBool', 'active' => 'isBool');


после

Код:
Код:
$fields['firstname'] = pSQL($this->firstname);
добавляем

Код:
Код:
$fields['middlename'] = pSQL($this->middlename);



функцию

Код:
Код:
static public function getCustomers()
    {
        return Db::getInstance()->ExecuteS('
        SELECT `id_customer`, `email`, `firstname`, `lastname`
        FROM `'._DB_PREFIX_.'customer`
        ORDER BY `id_customer` ASC');
    }


на:

Код:
s
Код:
tatic public function getCustomers()
    {
        return Db::getInstance()->ExecuteS('
        SELECT `id_customer`, `email`, `firstname`, `lastname`, `middlename`
        FROM `'._DB_PREFIX_.'customer`
        ORDER BY `id_customer` ASC');
    }


файл закрываем.

Далее остается добавить все это дело в шаблоны
открываем themes/your_theme/identity.tpl и после

Код:
Код:
<p class="required text">
                <label for="firstname">{l s='First name'}<sup>*</sup></label>
                <input type="text" id="firstname" name="firstname" value="{$smarty.post.firstname}" />
            </p>


добавляем

Код:
Код:
<p class="required text">
                <label for="middlename">Отчество<sup>*</sup></label>
                <input type="text" name="middlename" id="middlename" value="{$smarty.post.middlename}" />
            </p>


открываем themes/your_theme/authentication.tpl и после


Код:
Код:
<p class="required text">
                <label for="customer_firstname">{l s='First name'}</label>
                <input onkeyup="$('#firstname').val(this.value);" type="text" class="text" id="customer_firstname" name="customer_firstname" value="{if isset($smarty.post.customer_firstname)}{$smarty.post.customer_firstname}{/if}" />
                <sup>*</sup>
            </p>


Код:
Код:
<p class="required text">
                <label for="middlename">Отчество</label>
                <input onkeyup="$('#middlename').val(this.value);" type="text" class="text" id="middlename" name="middlename" value="{if isset($smarty.post.middlename)}{$smarty.post.middlename}{/if}" />
                <sup>*</sup>
            </p>



и через phpMyadmin, добавляем поле middlename



Сообщение отредактировано Michel II 07-11-2013 16:12 ...
 



preatashop v1.4.10
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Tomato
Новичок
Сообщений: 10
Регистрация: 25-08-2013


07-11-2013 20:16
Michel II,Вы написали то же самое,что я скинул по ссылке и это мне не помогло,к сожалению,может для версии 1.5 что-то еще менять нужно,кто знает.
Интересно,никто в версии 1.5 не добавлял новые текстовые поля?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Michel II
Профессионал
Сообщений: 473
Регистрация: 08-06-2012


07-11-2013 20:18
Да, действительно, хотел помочь а теперь только увидел , что форум по 1,5

А не помогло - поле не появилось?



Сообщение отредактировано Michel II 07-11-2013 16:18 ...
 



preatashop v1.4.10
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Tomato
Новичок
Сообщений: 10
Регистрация: 25-08-2013


07-11-2013 20:32
Поле появляется,но когда ввожу в него данные и нажимаю-зарегистрироваться,выдает ошибку(что поле не заполнено).
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Tomato
Новичок
Сообщений: 10
Регистрация: 25-08-2013


07-11-2013 20:32
Поле появляется,но когда ввожу в него данные и нажимаю-зарегистрироваться,выдает ошибку(что поле не заполнено).
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Tomato
Новичок
Сообщений: 10
Регистрация: 25-08-2013


07-11-2013 20:32
Поле появляется,но когда ввожу в него данные и нажимаю-зарегистрироваться,выдает ошибку(что поле не заполнено).
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
RAGE
Cпециалист
Сообщений: 145
Регистрация: 11-12-2011


07-11-2013 20:58
запутались....

в этом файле менял?
\controllers\admin\AdminCustomersController.php


напиши список в каких файлах менял.... что-то где-то забыли))))
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 1 2 >