+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Registrierungsformular um Felder erweitern (Anleitung)

  1. #1
    Neu an Board
    Registriert seit
    06.06.2006
    Beiträge
    41
    Bedankte sich
    4
    Erhielt 7 Danksagungen
    in 3 Beiträgen

    Daumen hoch Registrierungsformular um Felder erweitern (Anleitung)

    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

    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>
    und füge diesen ein ohne etwas anderes zu überschreiben.

    -------------------------------------------------------------

    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
    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>
    Die letzten drei Zeilen wurden von mir hinzugefügt.


    Dann suche nach
    Code:
    			<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>
    und kopiere letzten drei Zeilen hinzu

    -------------------
    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
    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>
    Fertig.

    -------------------------------------------------------------

    6. Optional: Bild links ausrichten

    in Datei zu Schritt 1 suche:
    Code:
    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">
    "left" wurde hier für center eingesetzt

    ----------------------------------------------------------------


    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!
    Angehängte Dateien
    Geändert von Chriswr3 (05.03.2011 um 23:11 Uhr) Grund: Tippfehler im Text gefunden und Punkt 3 korrigiert...

  2. Erhielt Danksagungen von:


  3. #2
    Neu an Board
    Registriert seit
    18.01.2011
    Beiträge
    7
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,

    interessante Anltg. Was passiert bei einem Update von Alpha-Registration mit den zusaetzlichen Feldern?

  4. #3
    Neu an Board
    Registriert seit
    21.06.2010
    Beiträge
    72
    Bedankte sich
    24
    1 Danksagung in 1 Beitrag

    Standard

    es werden alle änderungen gelöscht das ist logisch xD

  5. #4
    Neu an Board
    Registriert seit
    06.06.2006
    Beiträge
    41
    Bedankte sich
    4
    Erhielt 7 Danksagungen
    in 3 Beiträgen

    Standard

    ... wenn Du Dir vorher die dateien sicherst, dann kannst Du diese wahrscheinlich nicht 1:1 kopieren, aber viel zeit sparen, da Du nicht neu überlegen muss, sondern "abgucken" kannst ;-)
    Gruß
    Chriswr3

    Joomla 1.5, Alpharegistration, JTC-Horizontal login

  6. #5
    Neu an Board
    Registriert seit
    11.12.2007
    Beiträge
    1
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Kein Eintrag in der Datenbank

    Hallo,

    irgendwie klappt das ganze bei mir nicht so richtig.
    Ich habe alles 1 zu 1 so gemacht wie du es hier beschrieben hast.
    Felder werder auch angezeigt. Nur irgendwie werden die Daten die ich bei der Registrierung bei Vorname eingebe, in der Datenbank nicht übernommen. Woran kann das liegen?

    Danke für die super Anleitung!!!!

    Grüße aus Münster

  7. #6
    Neu an Board
    Registriert seit
    20.03.2011
    Beiträge
    3
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Ausrufezeichen

    Moien,

    das gleiche bei mir, er schreibt alles in die vorhandenen Felder . Nur in die "neu" hinzugefügten schreibt er nix in die DB.

    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();	
    		}
    Zudem habe ich noch eine Frage zu den Errormessages, die bei ein nicht ausgefüllten Feld erscheinen soll. Welche Datei ist das und wo finde ich diese?

    Lg Dave

  8. #7
    Neu an Board
    Registriert seit
    06.06.2006
    Beiträge
    41
    Bedankte sich
    4
    Erhielt 7 Danksagungen
    in 3 Beiträgen

    Standard

    Hallo an colaboy und mr-otin,

    den Code von mr-otin habe ich überprüft, der sieht 1:1 korrekt aus.
    Habt Ihr beide überprüft, ob alle anderen Schritte davor korrekt ausgeführt wurden? Insbesonders auch die Anpassung der MySQL-Tabellen auf dem Server bei Eurem Hoster und dass die Felder durchgängig alle gleich heißen (auch auf GroßKleinschreibung achten).
    Feldlänge beim Vornamen auch überprüfen - Empfehlung 100.
    Gruß
    Chriswr3

    Joomla 1.5, Alpharegistration, JTC-Horizontal login

  9. Erhielt Danksagungen von:


  10. #8
    Neu an Board
    Registriert seit
    20.03.2011
    Beiträge
    3
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo Chriswr3,

    ja alle davorliegenden Felder sowie E-Mail und PAsswort etc. werden korrekt in die DB geschrieben nur halt die neu hinzugefügten werden nicht in die DB übertragen.

    Wie muss ich den die Felder in der jos_users hinzufügen? Ist das egal (ans Ende) oder muss ich sie so in der Tabelle anordnen wie in der default.php die hinzugefügten Felder.

    MfG
    Dave

  11. #9
    Neu an Board
    Registriert seit
    06.06.2006
    Beiträge
    41
    Bedankte sich
    4
    Erhielt 7 Danksagungen
    in 3 Beiträgen

    Standard

    Hi Dave,
    Du kannst die Felder an beliebiger Stelle einfügen, achte nur darauf, keine bestehenden zu überschreiben.
    Den php-Admin Deines Providers nicht per browserfenster einfach schließen, sondern mit OK beenden, ggf. eine andere Tabelle ansehen, dann (doppelt hält besser) nochmal nachsehen, ob Deine Angaben auch wirklich gespeichert sind. Es passiert nämlich schnell, dass man denkt man sei fertig und weitermacht...
    Würde mich freuen, eine Erfolgsmeldung zu lesen.
    Gruß
    Chriswr3

    Joomla 1.5, Alpharegistration, JTC-Horizontal login

  12. #10
    Neu an Board
    Registriert seit
    20.03.2011
    Beiträge
    3
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hello Chriswr3,

    Keine Chance, das Script macht net mit. Habe auch schon im Alphaplug Forum geposted aber leider noch keine Antwort.

    Werd mal die nächsten Tage schauen, da ich im Moment etwas eingespannt bin.

    Lg Dave

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein