Witam ponownie ( post w innym temacie bez ostzeżenia był znikł
Jak w temacie moim dzisiejszym celem jest dodanie dodatkowych pól do formularza rejestracyjnego. Samo dodanie pól zbyt trudne nie jest, natomiast spowodowanie aby były one wymagane nastręcza mi nieco trudności.
A robię to tak:
1. edytuję plik plugins/user/profile/profile.php dodając nowe pola
Kod PHP:
if ($this->params->get('register-require_specjalizacja', 1) > 0) {
$form->setFieldAttribute('specjalizacja', 'required', $this->params->get('register-require_specjalizacja') == 2, 'profile');
}
else {
$form->removeField('specjaliacja', 'profile');
}
2. edytuję pliki plugins/user/profile/profile.xml i plugins/user/profile/profiles/profile.xml znowu dodając swoje pola/nazwy
Kod PHP:
<field
name="profile-require_specjalizacja" type="list"
label="PLG_USER_PROFILE_FIELD_SPECJALIZACJA"
description="PLG_USER_PROFILE_FIELD_SPECJALIZACJA"
>
<option value="2">JOPTION_REQUIRED</option>
<option value="1">JOPTION_OPTIONAL</option>
<option value="0">JDISABLED</option>
</field>
Kod PHP:
<field
name="specjalizacja"
type="text"
id="specjalizacja"
description="PLG_USER_PROFILE_FIELD_SPECJALIZACJA"
filter="string"
label="PLG_USER_PROFILE_FIELD_SPECJALIZACJA"
message="PLG_USER_PROFILE_FIELD_SPECJALIZACJA"
size="30"
/>
3. wstawiam nowe pole do /administrator/language/gb-GB/en-GB.plg_user_profile.ini
Kod PHP:
PLG_USER_PROFILE_FIELD_SPECJALIZACJA="Specjalizacja:"
4. wstawiam nowe pole również do /administrator/language/overrides/en-GB.override.ini aby nie zniknęło po update
5. wstawiam następnie tutaj aby pole było widoczne dla użytkownika /language/overrides/en-GB.override.ini
Kroki od 3-5 robię też dla polskiego tłumaczenia analogicznie
Niestety ale o ile pola są widoczne w panelu administratora to strona rejestracji po prostu się przestaje wyświetlać. Jeżeli cofnę zmiany w pliku plugins/user/profile/profile.php strona wyświetla się poprawnie ale moje pole jest polem OPCJONALNYM a nie wymaganym tak jak potrzebuję.
Będę bardzo wdzięczny za pomoc.