Joomla.it Forum
Non solo Joomla... => Sviluppo => : christazio 12 Apr 2007, 16:29:04
-
Ciao ragazzi io dovrei aggiungere dei campi alla form di registrazione di joomla.
ho modificato il file registration.html.php e nel sito vedo i campi aggiunti.
nel db ho creato il campo con lo stesso nome.
ma se compilo il campo, no mi tiene il valore inserito nel pannello di controllo...come devo fare?
Non ditemi di installare CB perchè non voglio farlo.
-
Devi anche modificare lo script che preleva i dati del form e li memorizza nel db.
-
Non ditemi di installare CB perchè non voglio farlo.
Purtroppo è la prima risposta che mi viene da dare... :-[
Vediamo se invece la seconda te la da il mitico Napo ;D
-
Grande Napo :)
-
cavolo sono un grafico non un programmatore :-X
non è che mi postereste cosa inserire e in che file?
Esempio voglio che passi il campo cognome al db (il campo cognome nel db l'ho già aggiunto)
PAGINA RAGISTRATION.PHP
<?php
/**
* @version $Id: registration.php 4572 2006-08-19 16:39:43Z friesengeist $
* @package Joomla
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
global $mosConfig_frontend_login;
require_once( $mainframe->getPath( 'front_html' ) );
if ( $mosConfig_frontend_login != NULL && ($mosConfig_frontend_login === 0 || $mosConfig_frontend_login === '0')) {
echo _NOT_AUTH;
return;
}
switch( $task ) {
case 'lostPassword':
lostPassForm( $option );
break;
case 'sendNewPass':
sendNewPass( $option );
break;
case 'register':
registerForm( $option, $mosConfig_useractivation );
break;
case 'saveRegistration':
saveRegistration();
break;
case 'activate':
activate( $option );
break;
}
function lostPassForm( $option ) {
global $mainframe;
$mainframe->SetPageTitle(_PROMPT_PASSWORD);
HTML_registration::lostPassForm($option);
}
function sendNewPass( $option ) {
global $database;
global $mosConfig_live_site, $mosConfig_sitename;
global $mosConfig_mailfrom, $mosConfig_fromname;
// simple spoof check security
josSpoofCheck();
$_live_site = $mosConfig_live_site;
$_sitename = $mosConfig_sitename;
// ensure no malicous sql gets past
$checkusername = mosGetParam( $_POST, 'checkusername', '' );
$checkusername = $database->getEscaped( $checkusername );
$confirmEmail = mosGetParam( $_POST, 'confirmEmail', '');
$confirmEmail = $database->getEscaped( $confirmEmail );
$query = "SELECT id"
. "\n FROM #__users"
. "\n WHERE username = '$checkusername'"
. "\n AND email = '$confirmEmail'"
;
$database->setQuery( $query );
if (!($user_id = $database->loadResult()) || !$checkusername || !$confirmEmail) {
mosRedirect( "index.php?option=$option&task=lostPassword&mosmsg="._ERROR_PASS );
}
$newpass = mosMakePassword();
$message = _NEWPASS_MSG;
eval ("\$message = \"$message\";");
$subject = _NEWPASS_SUB;
eval ("\$subject = \"$subject\";");
mosMail($mosConfig_mailfrom, $mosConfig_fromname, $confirmEmail, $subject, $message);
$newpass = md5( $newpass );
$sql = "UPDATE #__users"
. "\n SET password = '$newpass'"
. "\n WHERE id = $user_id"
;
$database->setQuery( $sql );
if (!$database->query()) {
die("SQL error" . $database->stderr(true));
}
mosRedirect( 'index.php?option=com_registration&mosmsg='. _NEWPASS_SENT );
}
function registerForm( $option, $useractivation ) {
global $mainframe;
if (!$mainframe->getCfg( 'allowUserRegistration' )) {
mosNotAuth();
return;
}
$mainframe->SetPageTitle(_REGISTER_TITLE);
HTML_registration::registerForm($option, $useractivation);
}
function saveRegistration() {
global $database, $acl;
global $mosConfig_sitename, $mosConfig_live_site, $mosConfig_useractivation, $mosConfig_allowUserRegistration;
global $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_mailfrom, $mosConfig_fromname;
if ( $mosConfig_allowUserRegistration == 0 ) {
mosNotAuth();
return;
}
// simple spoof check security
josSpoofCheck();
$row = new mosUser( $database );
if (!$row->bind( $_POST, 'usertype' )) {
mosErrorAlert( $row->getError() );
}
mosMakeHtmlSafe($row);
$row->id = 0;
$row->usertype = '';
$row->gid = $acl->get_group_id( 'Registered', 'ARO' );
if ( $mosConfig_useractivation == 1 ) {
$row->activation = md5( mosMakePassword() );
$row->block = '1';
}
if (!$row->check()) {
echo "<script> alert('".html_entity_decode($row->getError())."'); window.history.go(-1); </script>\n";
exit();
}
$pwd = $row->password;
$row->password = md5( $row->password );
$row->registerDate = date('Y-m-d H:i:s');
if (!$row->store()) {
echo "<script> alert('".html_entity_decode($row->getError())."'); window.history.go(-1); </script>\n";
exit();
}
$row->checkin();
$name = $row->name;
$email = $row->email;
$username = $row->username;
$subject = sprintf (_SEND_SUB, $name, $mosConfig_sitename);
$subject = html_entity_decode($subject, ENT_QUOTES);
if ($mosConfig_useractivation == 1){
$message = sprintf (_USEND_MSG_ACTIVATE, $name, $mosConfig_sitename, $mosConfig_live_site."/index.php?option=com_registration&task=activate&activation=".$row->activation, $mosConfig_live_site, $username, $pwd);
} else {
$message = sprintf (_USEND_MSG, $name, $mosConfig_sitename, $mosConfig_live_site);
}
$message = html_entity_decode($message, ENT_QUOTES);
// check if Global Config `mailfrom` and `fromname` values exist
if ($mosConfig_mailfrom != '' && $mosConfig_fromname != '') {
$adminName2 = $mosConfig_fromname;
$adminEmail2 = $mosConfig_mailfrom;
} else {
// use email address and name of first superadmin for use in email sent to user
$query = "SELECT name, email"
. "\n FROM #__users"
. "\n WHERE LOWER( usertype ) = 'superadministrator'"
. "\n OR LOWER( usertype ) = 'super administrator'"
;
$database->setQuery( $query );
$rows = $database->loadObjectList();
$row2 = $rows[0];
$adminName2 = $row2->name;
$adminEmail2 = $row2->email;
}
// Send email to user
mosMail($adminEmail2, $adminName2, $email, $subject, $message);
// Send notification to all administrators
$subject2 = sprintf (_SEND_SUB, $name, $mosConfig_sitename);
$message2 = sprintf (_ASEND_MSG, $adminName2, $mosConfig_sitename, $row->name, $email, $username);
$subject2 = html_entity_decode($subject2, ENT_QUOTES);
$message2 = html_entity_decode($message2, ENT_QUOTES);
// get email addresses of all admins and superadmins set to recieve system emails
$query = "SELECT email, sendEmail"
. "\n FROM #__users"
. "\n WHERE ( gid = 24 OR gid = 25 )"
. "\n AND sendEmail = 1"
. "\n AND block = 0"
;
$database->setQuery( $query );
$admins = $database->loadObjectList();
foreach ( $admins as $admin ) {
// send email to admin & super admin set to recieve system emails
mosMail($adminEmail2, $adminName2, $admin->email, $subject2, $message2);
}
if ( $mosConfig_useractivation == 1 ){
echo _REG_COMPLETE_ACTIVATE;
} else {
echo _REG_COMPLETE;
}
}
function activate( $option ) {
global $database, $my;
global $mosConfig_useractivation, $mosConfig_allowUserRegistration;
if($my->id) {
// They're already logged in, so redirect them to the home page
mosRedirect( 'index.php' );
}
if ($mosConfig_allowUserRegistration == '0' || $mosConfig_useractivation == '0') {
mosNotAuth();
return;
}
$activation = mosGetParam( $_REQUEST, 'activation', '' );
$activation = $database->getEscaped( $activation );
if (empty( $activation )) {
echo _REG_ACTIVATE_NOT_FOUND;
return;
}
$query = "SELECT id"
. "\n FROM #__users"
. "\n WHERE activation = '$activation'"
. "\n AND block = 1"
;
$database->setQuery( $query );
$result = $database->loadResult();
if ($result) {
$query = "UPDATE #__users"
. "\n SET block = 0, activation = ''"
. "\n WHERE activation = '$activation'"
. "\n AND block = 1"
;
$database->setQuery( $query );
if (!$database->query()) {
echo "SQL error" . $database->stderr(true);
}
echo _REG_ACTIVATE_COMPLETE;
} else {
echo _REG_ACTIVATE_NOT_FOUND;
}
}
?>
PAGINA RESISTRATION.HTML.PHP
<?php
/**
* @version $Id: registration.html.php 4343 2006-07-27 19:28:05Z rmuilwijk $
* @package Joomla
* @subpackage Users
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
/**
* @package Joomla
* @subpackage Users
*/
class HTML_registration {
function lostPassForm($option) {
// used for spoof hardening
$validate = josSpoofValue();
?>
<form action="index.php" method="post">
<div class="componentheading">
<?php echo _PROMPT_PASSWORD; ?>
</div>
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">
<tr>
<td colspan="2">
<?php echo _NEW_PASS_DESC; ?> </td>
</tr>
<tr>
<td>
<?php echo _PROMPT_UNAME; ?> </td>
<td>
<input type="text" name="checkusername" class="inputbox" size="40" maxlength="25" /> </td>
</tr>
<tr>
<td>
<?php echo _PROMPT_EMAIL; ?> </td>
<td>
<input type="text" name="confirmEmail" class="inputbox" size="40" /> </td>
</tr>
<tr>
<td> </td>
<td><input name="submit" type="submit" class="button" value="<?php echo _BUTTON_SEND_PASS; ?>" /></td>
</tr>
</table>
<input type="hidden" name="option" value="<?php echo $option;?>" />
<input type="hidden" name="task" value="sendNewPass" />
<input type="hidden" name="<?php echo $validate; ?>" value="1" />
</form>
<?php
}
function registerForm($option, $useractivation) {
// used for spoof hardening
$validate = josSpoofValue();
?>
<script language="javascript" type="text/javascript">
function submitbutton_reg() {
var form = document.mosForm;
var r = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-]", "i");
// do field validation
if (form.name.value == "") {
alert( "<?php echo html_entity_decode(_REGWARN_NAME);?>" );
} else if (form.username.value == "") {
alert( "<?php echo html_entity_decode(_REGWARN_UNAME);?>" );
} else if (r.exec(form.username.value) || form.username.value.length < 3) {
alert( "<?php printf( html_entity_decode(_VALID_AZ09_USER), html_entity_decode(_PROMPT_UNAME), 2 );?>" );
} else if (form.email.value == "") {
alert( "<?php echo html_entity_decode(_REGWARN_MAIL);?>" );
} else if (form.password.value.length < 6) {
alert( "<?php echo html_entity_decode(_REGWARN_PASS);?>" );
} else if (form.password2.value == "") {
alert( "<?php echo html_entity_decode(_REGWARN_VPASS1);?>" );
} else if ((form.password.value != "") && (form.password.value != form.password2.value)){
alert( "<?php echo html_entity_decode(_REGWARN_VPASS2);?>" );
} else if (r.exec(form.password.value)) {
alert( "<?php printf( html_entity_decode(_VALID_AZ09), html_entity_decode(_REGISTER_PASS), 6 );?>" );
} else {
form.submit();
}
}
</script>
<img src="templates/dd_olive/images/registrazione.jpg" alt="" />
<form action="index.php" method="post" name="mosForm">
<table cellpadding="0" cellspacing="2" border="0" width="100%" class="contentpane">
<tr>
<td colspan="2"><font color="#FF0000"><?php echo _REGISTER_REQUIRED; ?></font></td>
</tr>
<tr>
<td width="33%">
<?php echo _REGISTER_NAME; ?> * </td>
<td width="67%">
<input type="text" name="name" size="40" value="" class="inputbox" maxlength="50" /> </td>
</tr>
<tr>
<td><?php echo _REGISTER_COGNOMEREALE; ?> *</td>
<td><input name="cognomereale" type="text" class="inputbox" id="cognomereale" value="" size="30" /></td>
</tr>
<tr>
<td>
<?php echo _REGISTER_UNAME; ?> * </td>
<td>
<input type="text" name="username" size="40" value="" class="inputbox" maxlength="25" /> </td>
</tr>
<tr>
<td>
<?php echo _REGISTER_EMAIL; ?> * </td>
<td>
<input type="text" name="email" size="40" value="" class="inputbox" maxlength="100" /> </td>
</tr>
<tr>
<td>
<?php echo _REGISTER_PASS; ?> * </td>
<td>
<input class="inputbox" type="password" name="password" size="40" value="" /> </td>
</tr>
<tr>
<td>
<?php echo _REGISTER_VPASS; ?> * </td>
<td>
<input class="inputbox" type="password" name="password2" size="40" value="" /> </td>
</tr>
<tr>
<td colspan="2" align="center"><div align="center">--------------------------------------------------------------------------------------------------------</div></td>
</tr>
<tr>
<td><?php echo _REGISTER_INDIRIZZO; ?></td>
<td><input name="indirizzo" type="text" class="inputbox" id="indirizzo" value="" size="30" /></td>
</tr>
<tr>
<td><?php echo _REGISTER_TELEFONO; ?></td>
<td><input name="telefono" type="text" class="inputbox" id="telefono" value="" size="30" /></td>
</tr>
<tr>
<td><?php echo _REGISTER_HCP; ?></td>
<td><input class="inputbox" type="text" name="password23" size="5" value="" /></td>
</tr>
<tr>
<td><?php echo _REGISTER_CIRCOLO; ?></td>
<td><input name="circolo" type="text" class="inputbox" id="circolo" value="" size="30" /></td>
</tr>
<tr>
<td><?php echo _REGISTER_SKYPE; ?></td>
<td><input name="skype" type="text" class="inputbox" id="skype" value="" size="30" /></td>
</tr>
<tr>
<td colspan="2" align="center"> </td>
</tr>
<tr>
<td colspan="2" align="center">Con l'invio di questa form autorizzo Golf&Turismo al trattamento dei miei dati personali in osservanza del D.Lgs. n. 196/2003</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input name="button" type="button" class="button" onclick="submitbutton_reg()" value="<?php echo _BUTTON_SEND_REG; ?>" /></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan=2> </td>
</tr>
</table>
<input type="hidden" name="id" value="0" />
<input type="hidden" name="gid" value="0" />
<input type="hidden" name="useractivation" value="<?php echo $useractivation;?>" />
<input type="hidden" name="option" value="<?php echo $option; ?>" />
<input type="hidden" name="task" value="saveRegistration" />
<input type="hidden" name="<?php echo $validate; ?>" value="1" />
</form>
<?php
}
}
?>
-
ok perfetto sistemato!!! ;D
-
potresti scrivere come hai fatto a sistemarlo?? sai.. farebbe comodo anche a me modificare quel file senza CB :)
-
e dai, dici come hai risolto
-
dal vangelo II napo manuale dello sviluppatore e cerca mosGetParam
-
scusate non sono riuscito a capire come fare! qualcuno potrebbe aiutarmi? grazie.
-
Ciao a tutti..
Io sono a metà passo ho creato una colonna chiamata $Cognome
(http://i42.tinypic.com/95r39g.jpg)
e sono riuscito anche a visualizzarla sul pannello di amministrazione
(http://i39.tinypic.com/2442zdk.jpg)
Qualcuno sa dirmi come proseguire pervisualizzarla sul front end? ???
Grazie