Standartinės registracijos formos redagavimas

PDFSpausdintiEl. paštas

Sekmadienis, 05 Birželis 2011 08:49 Parašė Rimvydas Peržiūrų: 4597

( 3 Balsai )
Standartinės registracijos formos redagavimas - 5.0 out of 5, based on 3 votes

Standartinę Joomlos registracijos formą sudaro penki laukai: vardas, vartotojo vardas, el. paštas, slaptažodis ir slaptažodžio patvirtinimas. Čia paaiškinsiu kaip formą galima papildyti mums reikiamais papildomais laukais. Sakykime norime pridėti lauką “šalis”.
Pirmiausiai turime duomenų  bazėje padaryti atitinkamus pakeitimus. Atsidarome duomenų bazę  ir SQL užklausoje  parašome:
1
ALTER TABLE `jos_users` ADD `country` VARCHAR( 250 ) NOT NULL ;

Tokiu būdu padaromas atitinkamos lentelės (jos_user) papildymas grafa country.Nepamirškite parašyti teisingą (jūsų DB naudojama) prefiksą.
Sekantis žingsnis registracijos formos pakeitimas. Formos failas : components\com_user\views\register\tmpl\default.php Susirandame vietą kurioje norime įterpti papildomą laukelį pvz.: po username Ir įterpiame tokį kodo gabaliuką:
1
2
3
4
5
6
7
8
9
10
tr>
<td height="40">
<label id="citymsg" for="country">
<?php echo JText::_( 'Country' ); ?>:
</label>
</td>
<td>
<input type="text" id="country" name="country" size="40" value="<?php echo $this->user->get( 'country' );?>" class="inputbox required validate-country" maxlength="25" /> *
</td>
</tr>
Dabar mums aktualu, kad visa tai matytųsi Joomlos administravimo skyde, todėl atidarome sekantį failą esantį: administrator\components\com_users\views\user\tmpl\form.php ir čia po Username įterpiame:
1
2
3
4
5
6
7
8
9
10
tr>
   <td class="key">
        <label for="country">
           <?php echo JText::_( 'Country' ); ?>
        </label>
   </td>
   <td>
    <input type="text" name="country" id="country" class="inputbox" size="40" value="<?php echo $this->user->get('country'); ?>" autocomplete="off" />
   </td>
</tr>
Sekantis žingsnis failas: libraries\joomla\database\table\user.php . Susirandame eilute su įrašu:
1
var $username           = null;
ir žemiau pridedame:
1
var $country             = null;

Kadangi formos laukelį padarėme privalomą (required) atliekame patikrinimo apie neužpildytą lauką funkciją . Šiame pačiame users.php faile įrašome :

1
2
3
4
if (trim( $this->country ) == ‘’) {
     $this->setError( JText::_( 'Please enter a country.') );
     return false;
    }
Štai ir viska ką reikėjo padaryti . Tikriname kaip veikia.

Tiesa jei naudojate lietuvių kalbą (ar kitas ne anglų kalbas)  atitinkamos kalbos failą:
administrator\language\lt-LT\ lt-LT.com_user.ini ir language\lt-LT\ lt-LT.com_user.ini
papildome įrašu: COUNTRY = Šalis

PASTABA: Prieš atlikdami pakeitimus pasidarykite atsarginę kopiją!

Paskelbta: 2011-09-08 13:30 nuo Dovydas #4795
Ar šis straipsnis tinka Joomla 1.7?
Paskelbta: 2011-09-08 21:27 nuo Megejas #4805
Dovydas parašė:
Ar šis straipsnis tinka Joomla 1.7?

Ne su joomla 1.7 registracijos forma truputi kitaip......jei bus aktualu kai atsiras laiko reiks prisėsti ir panarplioti

Papildau neaišku ko tau ten reikia šiaip tai j1.7 jau yra yra numatyti profilyje papildomi laukai tik reikia juos įjungti ir susikonfigūruoti
Išplėtimai->įskiepų tvarkyklė->narys profilis
Paskelbta: 2011-09-09 05:54 nuo Dovydas #4810
Žinau kad yra papildomi laukai bet man reikia tokių kaip skype, operacinė sistema, kelių bit ir t.t. Ant Joomla 1.7 ten reikia .xml failus redaguoti. Vakar pasidariau skype laukelį ir viskas veikia puikiai aišku localhost ten turiu Joomla 1.7 testams įsidiegęs.
Paskelbta: 2012-05-21 15:25 nuo dogmix #8252
Ivedus nauja skilti registracijos formoje, vartotoju tvarkykleje nerodo duomenu apie ta ivesta skilti. Kaip tokia skilti rodo, tik ji buna tuscia, nors registruojantis buvo nurodomi duomenys. Kazkur nedarasau kodo turbut. bet nesuprantu kur ir ka.
Paskelbta: 2012-05-21 17:24 nuo Megejas #8254
Labas,

Reik gyvai žiūrėt kas ten padaryta tada bus galima ir pasakyt. Jei naudoji j2.5 tai juk yra ir taip papildomų laukų ar jie netinka kad kodą taisai?

Aptarkite šį straipsnį forume
Norėdami dalyvauti diskusijoje turite prisijungti arba užsiregistruoti .

Joomla123.lt is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.
The Joomla!® name is used under a limited license from Open Source Matters in the United States and other countries.