Jump to content
  • 0

Dodatkowe pola w rejestracji [ROZWIĄZANY]


capitanweed

Question

Witam.

 

Mam pytanie w sprawie dodania dodatkowych pól do rejestracji w Prescie 1.6. W jaki sposób można je dodać? Słyszałem także o modułach za to odpowiedzialnych (darmowych) - lecz niestety nie mogłem żadnego znaleźć. Prosił bym o pomoc.

 

Z poważaniem

Kacper S.

Edited by capitanweed (see edit history)
Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Zacząłem próbować stworzyć dodatkowe pole - niby wszystko ok, ale w trakcie zakończenia rejestracji (po kliknięciu w rejestruj) pojawia się białe tło - i nic się nie dzieje - użytkownik też nie został dodany.

 

Stwierdziłem że rozpiszę tutaj, po koli w krokach co robiłem i w jaki sposób - może razem uda nam się rozwiązać ten problem - myślę że jak najbardziej przyda się każdemu :)

 

1. 

Modyfikacja pliku authentication.tpl (ścieżka: themes->twójtheme)

dodałem pole (opierając się na innych)

<div class="required form-group">
<label for="cos">{l s='Cos'} <sup>*</sup></label>
<input onkeyup="$('#lcos').val(this.value);" type="text" class="is_required validate form-control" data-validate="isCos" id="cos" name="cos" value="{if isset($smarty.post.cos)}{$smarty.post.cos}{/if}" />
</div>

 

 

 

 

2.

Edycja pliku AuthController.php (ścieżka controllers/front/

wyszukać "Preparing customer"

dopisałem dwie linijki (opierając się na reszcie):

$cosAddress = Tools::getValue('cos');\

oraz

$_POST['cos'] = Tools::getValue('cos');

 

po czym po wyszukaniu Update context after customer creation dopisałem

$this->context->cookie->cos = $customer->cos;

 

 

 

 

 

3.

 

Modyfikacja pliku customer.php  (ściezka: /classes/ 

po wyszukaniu class CustomerCore extends ObjectModel

wpisałem:

 

/** @var string cos */

po czym po wyszukaniu @see ObjectModel::$definition

'cos' =>                array('type' => self::TYPE_STRING, 'validate' => 'isCos', 'required' => true, 'size' =>  32),

4. Dodałem w bazie danych dodatkowe pole "cos"

ALTER TABLE `ps_customer` ADD `cos` VARCHAR( 32 ) NOT NULL

 

5.

Modyfikacja pliku AdminCustomersController (ścieżka : /controllers/admin/)

 

),
'email' => array(
'title' => $this->l('Email address')
),
 
 

zamieniłem na:

 

 

),
'email' => array(
'title' => $this->l('Email address')
),
      'cos' => array(
      'title' => $this->l('Cos')
)
;
 
 

 

po czym wyszukać :

 

 

'input' => array(

idodać w odpowiednim polu:

 

 

 array(
'type' => 'text',
'label' => $this->l('Cos'),
'name' => 'cos',
'required' => true,
'col' => '4',
),

 

 

Prosił bym o pomoc w rozwiązaniu problemu

Link to comment
Share on other sites

  • 0

mógłbyś powiedzieć gdzie to zmienić? 

 

EDIT

 

 

sprawdziłem - wyskakuje 

Fatal error: Call to undefined method Validate::isCos() in /home/sigmed1/ftp/shop4pet.pl/www/classes/ObjectModel.php on line 1032

 

 

lecz dziwne - bo ObjectModel.php edytowałem - po czym zamieniłem na ten poprawny - ale nadal wyskakuj ten błąd? jakis problem?

 

 

EDIT 2

 

// Checking for fields validity
// Hack for postcode required for country which does not have postcodes
if (!empty($value) || $value === '0' || ($field == 'postcode' && $value == '0'))
{
if (isset($data['validate']) && !Validate::$data['validate']($value) && (!empty($value) || $data['required']))
$errors[$field] = '<b>'.self::displayFieldName($field, get_class($this), $htmlentities).'</b> '.Tools::displayError('is invalid.');
else
{
if (isset($data['copy_post']) && !$data['copy_post'])
continue;
if ($field == 'passwd')
{
if ($value = Tools::getValue($field))
$this->{$field} = Tools::encrypt($value);
}
else
$this->{$field} = $value;
}
}

 

 

to się znajduje w tej linijce - z tego co zrozumiałem chyba chodzi o to, że był pusty (w trakcie wpisywania) - co by się trochę zgadzało, ponieważ w trakcie pisania do rejestracji (w tym polu) nie pokazuje się oznaczenie (zielone lub czerwone) chociaż że pole jest wymagane - jakiś pomysł?

 

EDIT 3

 

poradziłem sobie z tym błędem - problem teraz jest taki jak wcześniej - wpisuję tekst ale on tego nie widzi - a że jest zaznaczony jako obowiązkowy wyskakuje komunikat o uzupełnieniu pola - jakiś pomysł?

 

EDIR 4

 

znów ten sam błąd ;/ - widać że traktuje te pole jako puste, ktoś jakiś pomysł?

Edited by capitanweed (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...