Hier ist die Lösung, wie zur Registrierung ein Feld hinzugefügt werden kann.
UserMeta hat recht gut funktioniert, insgesamt ist es aber m.E. insgesamt sehr umständlich. Mit der AlphaRegistration (kostenlos zu erhalten) klappt alles sehr gut. Es können auch Email-Adressen geprüft, ReCaptchas eingesetzt und Passwortstärken geprüft werden.
Im Beispiel ist es das Feld "Vorname"
Ideale Vorraussetzung hierfür:
a) Mozilla Firefox mit dem Addon fireFTP
b) Modul Alpharegistration ist installiert
Ich bitte um Nachsicht, dass ich zu diesen beiden Punkten die Installation überspringe ;-)
-------------------------------------------------------------
1. Feld hinzufügen
suche folgende Datei, erstellt ein Sicherheitskopie (z.B. als *.phporiginal)
"components\com_alpharegistration\views\register\t mpl\default.php"
finde die Position, an der die Systematik so ähnlich aussieht wie folgender Code-Schnippsel
und füge diesen ein ohne etwas anderes zu überschreiben.Code:<tr valign="top"> <td height="40"> <label for="vorname"> <?php echo JText::_( 'Vorname' ); ?>: </label> </td> <td> <input type="text" id="vorname" name="vorname" size="30" value="<?php if ( @$this->post['vorname'] ) echo @$this->post['vorname'] ; ?>" maxlength="100" class="inputbox<?php echo $this->arg_params->get( 'pageclass_sfx' ); ?>" style="width:220px;margin-left:6px;" /> * <span id="statusvorname"></span> </td> </tr>
-------------------------------------------------------------
2. Funktionen für die Datenbank hinzufügen
suche folgende Datei, erstellt ein Sicherheitskopie (z.B. als *.phporiginal)
"components\com_alpharegistration\controller.p hp"
*suche nach einer "birthdate" Funktion, die bereits im Code ist und füge den folgenden Code davor ein
-------------------------------------------------------------Code:$vorname = ''; if ( $arg_params->def( 'displayvornameAUP', 0 ) ) { $vorname = JRequest::getVar('vorname', '', 'post', 'string'); } if ($vorname) { $this->savevorname( $user->id, $vorname ); } function savevorname( $userid, $vorname ) { global $mainframe; $db =& JFactory::getDBO(); $user = & JFactory::getUser(); //$query = "UPDATE #__alpha_userpoints" . $query = "UPDATE #__users" . "\n SET vorname=$vorname" . "\n WHERE userid='" . $userid . "'" ; $db->setQuery( $query ); $db->query(); }
3. Variable intialisieren (dem System bekanntmachen)
"libraries\joomla\database\table\user.php"
Folgenden Code zwischendurch korrekt einkopieren
-------------------------------------------------------------Code:/** * der Vorname von Chriswr3 hinzugefuegt * * @var string */ var $vorname = null;
4. Datenbankfeld hinzufügen
Das hier ist das kniffligste. Ihr müsst (wahrscheinlich bei Eurem Provider) mit phpmyadmin die Eurer joomla-Installation zugehörige MYSQL-Datenbank anpassen.
Diese heißt wahrscheinlich "jos_users". Fügt das Feld "vorname" hinzu.
Achtung: vorher abmelden aus der Admin-Oberfläche Eurer website.
-----------------------------------
5. Anzeige in admin-Sicht
a) optional
b) sinnvoll
a) damit das Feld auch in der admin-Gesamt übersicht erscheint:
administrator\components\com_users\views\users\tmp l\default.php
Die letzten drei Zeilen wurden von mir hinzugefügt.Code:<table class="adminlist" cellpadding="1"> <thead> <tr> <th width="2%" class="title"> <?php echo JText::_( 'NUM' ); ?> </th> <th width="3%" class="title"> <input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count($this->items); ?>);" /> </th> <th class="title"> <?php echo JHTML::_('grid.sort', 'Name', 'a.name', @$this->lists['order_Dir'], @$this->lists['order'] ); ?> </th> <th class="title"> <?php echo JHTML::_('grid.sort', 'Vorname', 'a.vornname', @$this->lists['order_Dir'], @$this->lists['order'] ); ?> </th>
Dann suche nach
und kopiere letzten drei Zeilen hinzuCode:<tr class="<?php echo "row$k"; ?>"> <td> <?php echo $i+1+$this->pagination->limitstart;?> </td> <td> <?php echo JHTML::_('grid.id', $i, $row->id ); ?> </td> <td> <a href="<?php echo $link; ?>"> <?php echo $row->name; ?></a> </td> <td> <?php echo $row->vorname; ?> </td>
-------------------
b) Damit das Feld in der Admin-Einzelübersicht erscheint:
administrator\components\com_users\views\user\tmpl \form.php
ab zeile 85 einen Eintrag mit copy and paste erstellen
Fertig.Code:<tr> <td class="key"> <label for="vorname"> <?php echo JText::_( 'Vorname' ); ?> </label> </td> <td> <input class="inputbox" type="text" name="vorname" id="vorname" size="40" value="<?php echo $this->user->get('vorname'); ?>" /> </td> </tr>
-------------------------------------------------------------
6. Optional: Bild links ausrichten
in Datei zu Schritt 1 suche:
"left" wurde hier für center eingesetztCode:if ( $this->arg_params->get( 'displayheaderstep', 1 ) ) { ?> <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane<?php echo $this->arg_params->get( 'pageclass_sfx' ); ?>"> <tr> <td> <div align="left">
----------------------------------------------------------------
7. Zusatinfos Grafiken:
Bild das bei Anmeldung angezeigt wird
/components/com_alpharegistration/assets/images/de-de/stepbystep1.png
Wer sich bei mir für den Tipp bedanken möchte: bitte im Forum eine Danksagung zu meinem Benutzernamen hinzufügen!


LinkBack URL
About LinkBacks
Zitieren

Lesezeichen