Dodatkowe wymagane pola w standardowym formularzu rejestracji
Wyniki 1 do 7 z 7

Temat: Dodatkowe wymagane pola w standardowym formularzu rejestracji

  1. #1
    Nowicjusz
    Dołączył
    01-01-2012
    Wpisy
    13
    Punkty
    10

    Dodatkowe wymagane pola w standardowym formularzu rejestracji

    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.

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2

    Domyślny

    Dobrze zabezpieczasz się przed nadpisaniem tłumaczeń, a co z nadpisaniem samego pluginu? Czytałeś http://docs.joomla.org/Creating_a_profile_plugin ?

  4. #3
    Nowicjusz
    Dołączył
    01-01-2012
    Wpisy
    13
    Punkty
    10

    Domyślny

    Cytat Wysłane przez kodhtml Zobacz wiadomość
    Dziękuję za link. Najciemniej pod latarnią. Próbowałem wcielić opis w życie, jednak stosując opisane kroki dodatkowe pole pojawia się jedynie w profilu użytkownika i jest polem OPCJONALNYM.
    Nie ma go natomiast w moim panelu admina i nie mam możliwości zmiany na WYMAGANE.

    Jak to ugryźć?

    ---------- Post dodany o 20:31 ---------- Poprzedni post był o 17:43 ----------

    Niestety nie mogę edytować więc piszę nowy:

    Udało mi się w końcu rozgryźć to o było niedopowiedziane w tym opisie, który podał kodhtml.
    Mianowicie autor nie napisał:
    1. Że wszystkie te pliki mają być w osobnym folderze plugins/user/profile5/ (!)
    2. Że trzeba ten plugin w INSTALATORZE -> WYKRYĆ i następnie zainstalować

    Być może są to sprawy oczywiste dla kogoś, kto się tym zajmuje od dłuższego czasu. Dla mnie, który kiedyś robił strony w czystym html'u trzeba bardziej za rączkę ;)

    Mam nadzieję, że komuś się to również przyda. Nie jest idealnie bo tylko drugie pole dodane jest WYMAGANE ale mi wystarczy

    Szczęśliwego nowego roku.

  5. #4

    Domyślny

    Aby pole było opcjonalne wystarczy dodać w definicji pola (plik xml)
    Kod:
    required="false"

  6. #5
    Nowicjusz
    Dołączył
    01-01-2012
    Wpisy
    13
    Punkty
    10

    Domyślny

    Cytat Wysłane przez kodhtml Zobacz wiadomość
    Aby pole było opcjonalne wystarczy dodać w definicji pola (plik xml)
    Kod:
    required="false"
    Ale mi chodzi o to aby obydwa były WYMAGANE ;) Także w drugą stronę a niestety nie działa mimo że definicje obu pól są takie same to pierwsze wyświetla się jako OPCJONALNE a drugie jako WYMAGANE W panelu admina oczywiście mam ustawione obydwa jako WYMAGANE.

  7. #6

    Domyślny

    Musiałeś coś przeoczyć - zweryfikuj plik php. Na sztywno możesz ustawić "wymagane" poprzez dodanie do definicji pola
    Kod:
    required="true"
    Jeżeli to nie zadziała wklej lub podeślij kod.

  8. #7
    Nowicjusz
    Dołączył
    01-01-2012
    Wpisy
    13
    Punkty
    10

    Domyślny

    Dziwna sprawa - nie udało mi się zrobić tego na sztywno (pewnie za słaby ze mnie programista) ale udało się ustawić obydwa pola jako WYMAGANE w inny sposób dzięki Twoim wskazówkom

    Mianowicie w pliku profile5.xml zauważyłem, że kod wygląda tak:
    Kod PHP:
            <fields name="params">
     
                <
    fieldset name="basic">
                    <
    field name="register-require-user" type="spacer"
                        
    label="PLG_USER_PROFILE5_FIELD_NAME_REGISTER_REQUIRE_USER"
                    
    />
     
                    <
    field name="register-specjalizacja" type="list"
                        
    description="PLG_USER_PROFILE5_FIELD_SPECJALIZACJA_DESC"
                        
    label="PLG_USER_PROFILE5_FIELD_SPECJALIZACJA_LABEL"
                    
    >
                        <
    option value="2">JOPTION_REQUIRED</option>
                        <
    option value="1">JOPTION_OPTIONAL</option>
                        <
    option value="0">JDISABLED</option>
                    </
    field>
     
                    <
    field name="profile-require-user" type="spacer"
                        
    label="PLG_USER_PROFILE5_FIELD_NAME_PROFILE_REQUIRE_USER"
                    
    />
     
                    <
    field name="profile-require_numerpwz" type="list"
                        
    description="PLG_USER_PROFILE5_FIELD_NUMERPWZ_DESC"
                        
    label="PLG_USER_PROFILE5_FIELD_NUMERPWZ_LABEL"
                    
    >
                        <
    option value="2">JOPTION_REQUIRED</option>
                        <
    option value="1">JOPTION_OPTIONAL</option>
                        <
    option value="0">JDISABLED</option>
                    </
    field>
     
                </
    fieldset>
     
            </
    fields
    Wczytałem się w ten kod i zauważyłem, że nazwy pól są inne. A jak są inne to coś mi nie pasowało ;) Dodałem więc pola tak, aby odpowiadały swoim nazwom:
    Kod PHP:
    <fields name="params">
     
                <
    fieldset name="basic">
                    <
    field name="register-require-user" type="spacer"
                        
    label="PLG_USER_PROFILE5_FIELD_NAME_REGISTER_REQUIRE_USER"
                    
    />
     
                    <
    field name="register-require_specjalizacja" type="list"
                        
    description="PLG_USER_PROFILE5_FIELD_SPECJALIZACJA_DESC"
                        
    label="PLG_USER_PROFILE5_FIELD_SPECJALIZACJA_LABEL"
                    
    >
                        <
    option value="2">JOPTION_REQUIRED</option>
                        <
    option value="1">JOPTION_OPTIONAL</option>
                        <
    option value="0">JDISABLED</option>
                    </
    field>
                    
                    <
    field name="register-require_numerpwz" type="list"
                        
    description="PLG_USER_PROFILE5_FIELD_NUMERPWZ_DESC"
                        
    label="PLG_USER_PROFILE5_FIELD_NUMERPWZ_LABEL"
                    
    >
                        <
    option value="2">JOPTION_REQUIRED</option>
                        <
    option value="1">JOPTION_OPTIONAL</option>
                        <
    option value="0">JDISABLED</option>
                    </
    field>
     
                    <
    field name="profile-require-user" type="spacer"
                        
    label="PLG_USER_PROFILE5_FIELD_NAME_PROFILE_REQUIRE_USER"
                    
    />
     
                    <
    field name="profile-require_specjalizacja" type="list"
                        
    description="PLG_USER_PROFILE5_FIELD_SPECJALIZACJA_DESC"
                        
    label="PLG_USER_PROFILE5_FIELD_SPECJALIZACJA_LABEL"
                    
    >
                        <
    option value="2">JOPTION_REQUIRED</option>
                        <
    option value="1">JOPTION_OPTIONAL</option>
                        <
    option value="0">JDISABLED</option>
                    </
    field>
     
                    <
    field name="profile-require_numerpwz" type="list"
                        
    description="PLG_USER_PROFILE5_FIELD_NUMERPWZ_DESC"
                        
    label="PLG_USER_PROFILE5_FIELD_NUMERPWZ_LABEL"
                    
    >
                        <
    option value="2">JOPTION_REQUIRED</option>
                        <
    option value="1">JOPTION_OPTIONAL</option>
                        <
    option value="0">JDISABLED</option>
                    </
    field
    Sama zmiana spowodowała, że jedynie podwoiły mi się te dane w panelu admina. Jednak gdy wyłączyłem wszystkie pola, zapisałem a potem wybrałem aby wszystkie "cztery" były wymagane - w formularzu rejestracji są 2 pola o nazwach takich jak chciałem i obydwa są WYMAGANE

    Tak więc jestem zadowolony i bardzo dziękuję. Za jakiś czas będę prawdopodobnie potrzebował, aby w pola można było wpisać jedynie odpowiedniej długości wartości + jakiś filtr antybotowy ale to kiedy indziej ;) Bardzo dziękuję za pomoc.

    W temacie http://forum.joomla.pl/showthread.ph...872#post266872 rozwiązaliśmy też problem dodania instrukcji przed formularzem aby nasi goście nie wpisali głupot i nie bali się wpisać poprawnych danych.

Podobne tematy

  1. Pola wymagane w formularzu "Zapytanie o produkt"
    przez woonski na forum VirtueMart
    Odpowiedzi: 1
    Ostatni post/autor: 24-11-2010, 18:46
  2. rozszerzenie modułu rejestracji do joomli o dodatkowe pola w formularzu
    przez gkoti na forum Programowanie pod Joomla!
    Odpowiedzi: 3
    Ostatni post/autor: 13-04-2008, 22:37
  3. Dodatkowe pole w formularzu rejestracji
    przez szymo na forum Szukam dodatku do Joomla
    Odpowiedzi: 0
    Ostatni post/autor: 28-01-2008, 21:12
  4. Dodatkowe pola w formularzu VM
    przez Randal na forum VirtueMart
    Odpowiedzi: 7
    Ostatni post/autor: 25-08-2007, 17:07
  5. Dodatkowe pola w formularzu rejestracji
    przez sinsin na forum Administracja Joomla!
    Odpowiedzi: 0
    Ostatni post/autor: 25-08-2007, 13:16

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •