Also ich habe joomla installiert und alles funktioniert.
Meine Aufgabe ist das Registrations Formular zu erweitern das heisst 2 neue Felder
Telephone und Fax.
1.Zuerst habe ich das in der Datenbank bei der Tabelle jos_users geändert. Also 2 neue Felder hinzugefügt.
2. Habe ich das File libraries/joomla/database/table/user.php geändert. Habe dort 2 neue Objekttypen hinzugefügt
PHP-Code:
var $id = null;
/**
* The users real name (or nickname)
*
* @var string
*/
var $name = null;
/**
* The login name
*
* @var string
*/
var $username = null;
/**
* The email
*
* @var string
*/
var $email = null;
var $telephone = null;
var $fax = null;
/**
* MD5 encrypted password
*
* @var string
*/
var $password = null;
/**
* Description
*
* @var string
*/
var $usertype = null;
/**
* Description
*
* @var int
*/
var $block = null;
/**
* Description
*
* @var int
*/
var $sendEmail = null;
Also Telephone und Fax sind neu!
3.Das File components/com_user/controller.php
PHP-Code:
// preform security checks
if ($user->get('id') == 0 || $userid == 0 || $userid <> $user->get('id')) {
JError::raiseError( 403, JText::_('Access Forbidden') );
return;
}
//clean request
$post = JRequest::get( 'post' );
$post['username'] = JRequest::getVar('username', '', 'post', 'username');
$post['telephone']= JRequest::getVar('telephone', '', 'post', 'telephone');
$post['fax']= JRequest::getVar('fax', '', 'post', 'fax');
$post['password'] = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW);
$post['password2'] = JRequest::getVar('password2', '', 'post', 'string', JREQUEST_ALLOWRAW);
// get the redirect
$return = JURI::base();
Habe da die Zeile mit telephone und fax hinzugefügt.
4. Habe ich das Formular zur Registrierung geändert components/com_user/views/register/tmpl/default.php
Habe einfach 2 Zeilen hinzugefügt
PHP-Code:
<tr>
<td height="40">
<label id="telephonemsg" for="telephone">
<?php echo JText::_( 'Telephone' ); ?>:
</label>
</td>
<td>
<input type="text" id="telephone" name="telephone" size="40" value="<?php echo $this->escape($this->user->get( 'telephone' ));?>" class="inputbox" maxlength="20" /> *
</td>
</tr>
<tr>
<td height="40">
<label id="faxmsg" for="fax">
<?php echo JText::_( 'Fax' ); ?>:
</label>
</td>
<td>
<input type="text" id="fax" name="fax" size="40" value="<?php echo $this->escape($this->user->get( 'fax' ));?>" class="inputbox" maxlength="20" /> *
</td>
</tr>
5. Nun folgt das Formular, mit dem ein User seine Daten ändern kann
components/com_user/views/user/tmpl/form.php
PHP-Code:
<tr>
<td>
<label for="telephone">
<?php echo JText::_( 'Telephone' ); ?>:
</label>
</td>
<td>
<span><?php echo $this->user->get('telephone');?></span>
</td>
</tr>
<tr>
<td>
<label for="fax">
<?php echo JText::_( 'Fax' ); ?>:
</label>
</td>
<td>
<span><?php echo $this->user->get('fax');?></span>
</td>
</tr>
6.Das ist das Formular für die Benutzerverwaltung aus dem Back-End
administrator/components/com_users/views/user/tmpl/form.php
PHP-Code:
<tr>
<td class="key">
<label for="telephone">
<?php echo JText::_( 'Telephone' ); ?>
</label>
</td>
<td>
<input type="text" name="telephone" id="telephone" class="inputbox" size="40" value="<?php echo $this->user->get('telephone'); ?>" />
</td>
</tr>
<tr>
<td class="key">
<label for="fax">
<?php echo JText::_( 'Fax' ); ?>
</label>
</td>
<td>
<input type="text" name="fax" id="fax" class="inputbox" size="40" value="<?php echo $this->user->get('fax'); ?>" />
</td>
</tr>
So und mein Problem ist das auf meiner localen joomla website nichts passiert. Man sieht kein neues Feld gar nichts. Dann versuchte ich das Feld Email rauszunehmen, also vom PHP Code und speicherte das ganze. Doch dannach sah ich auf der Seite das Feld Email wieter. Sozusagen er übernimmt meine Änderungen gar nicht. An was kann das liegen???
Vielen Dank