4images Forum & Community

International => Español / Castellano => Topic started by: excitex2 on November 04, 2006, 01:23:25 PM

Title: [TUTORIAL] Pasos a seguir para insertar nuevos campos en el registro
Post by: excitex2 on November 04, 2006, 01:23:25 PM
Saludos,,,

Son muchos los usuarios que están pidiendo ayuda sobre como insertar nuevos campos en el formularios de registro de sus galerías y naturalmente que los datos que se introduzcan en los nuevos campos también se muestren en el perfil del usuario y en el panel de control de dicho usuarios,,, así como en el panel de control de la galería.

Pongamos por ejemplo que un usuarios quiere introducir 5 nuevos campos : Nombre , Apellidos , Edad ,Teléfono y Ciudad.

Paso 1 :

Abrimos includes/db_field_definitions.php

Insertar antes de ?> :

Code: [Select]
$additional_user_fields['user_nombre'] = array($lang['user_nombre'], "text", 1);
$additional_user_fields['user_apellidos'] = array($lang['user_apellidos'], "text", 1);
$additional_user_fields['user_ciudad'] = array($lang['user_ciudad'], "text", 1);
$additional_user_fields['user_edad'] = array($lang['user_edad'], "text", 1);
$additional_user_fields['user_telefono'] = array($lang['user_telefono'], "text", 1);
Nota : el número 1 que está al final de cada array es para lo siguiente : 1 = obligatorio de rellenar ; 0 = no obligatorio osea vuluntario.
            Por lo tanto como lo hemos puesto a 1,,, todo el que se registre tendrá que rellenar ese campo obligatoriamente.

           para un texto = "Text" ,,, para opciones ejemplo si o no = "radio"

Cerrar y guardar cambios.

Paso 2 :


Abrir lang/tu_idioma/main.php  :

Localizar :


Quote
$lang['password'] = "Contraseña:";

Añadir debajo :

Code: [Select]
$lang['user_nombre'] = "Nombre : ";
$lang['user_apellidos'] = "Apellidos : ";
$lang['user_ciudad'] = "Ciudad : ";
$lang['user_edad'] = "Edad";
$lang['user_telefono'] = "Teléfono : ";


Cerrar y guardar cambios

Paso 3 :

Abrir templates/tus_plantillas/register_form.html

Localizar :

Quote
<tr>
            <td class="row1"><b>{lang_user_name}</b></td>
            <td class="row1">
              <input type="text" name="user_name" size="30" value="{user_name}" class="input" />
            </td>
          </tr>

Añadir debajo :

         
Code: [Select]
  <tr>
            <td class="row2"><b>{lang_user_nombre}</b></td>
            <td class="row2">
              <input type="text" name="user_nombre" size="30" value="{user_nombre}" class="input" />
            </td>
          </tr>
          <tr>
            <td class="row1"><b>{lang_user_apellidos}</b></td>
            <td class="row1">
              <input type="text" name="user_apellidos" size="30" value="{user_apellidos}" class="input" />
            </td>
          </tr>
          <tr>
            <td class="row2"><b>{lang_user_ciudad}</b></td>
            <td class="row2">
              <input type="text" name="user_ciudad" size="30" value="{user_ciudad}" class="input" />
            </td>
          </tr>
          <tr>
            <td class="row1"><b>{lang_user_edad}</b></td>
            <td class="row1">
              <input type="text" name="user_edad" size="30" value="{user_edad}" class="input" />
            </td>
          </tr>
          <tr>
            <td class="row2"><b>{lang_user_telefono}</b></td>
            <td class="row2">
              <input type="text" name="user_telefono" size="30" value="{user_telefono}" class="input" />
            </td>
          </tr>

Cerrar y guardar cambios

Paso 4 :

Abrir templates/tus_plantillas/member_profile.html


Localizar :

Quote
<tr>
          <td class="row1"><b>{lang_join_date}</b></td>
          <td class="row1">{user_join_date}</td>
        </tr>

Añadir debajo :

Code: [Select]
<tr>
          <td class="row2"><b>{lang_user_nombre}</b></td>
          <td class="row1">{user_nombre}</td>
        </tr>
<tr>
          <td class="row1"><b>{lang_user_apellidos}</b></td>
          <td class="row1">{user_apellidos}</td>
        </tr>
<tr>
          <td class="row2"><b>{lang_user_ciudad}</b></td>
          <td class="row2">{user_ciudad}</td>
        </tr>
<tr>
          <td class="row1"><b>{lang_user_edad}</b></td>
          <td class="row1">{user_edad}</td>
        </tr>
<tr>
          <td class="row2"><b>{lang_user_telefono}</b></td>
          <td class="row2">{user_telefono}</td>
        </tr>

Cerrar y guardar cambios

Paso 5 :

Abrir templates/tus_plantillas/member_editprofile.html


Localizar :

Quote
<tr>
            <td colspan="2" valign="top" class="head1">{lang_profile_of} {user_name}</td>
          </tr>

Añadir debajo :

Code: [Select]
<tr>
            <td class="row1"><b>{lang_user_nombre}</b></td>
            <td class="row1"><input type="text" name="user_nombre"  size="30" value="{user_nombre}" class="input" /></td>
          </tr>
<tr>
            <td class="row2"><b>{lang_user_apellidose}</b></td>
            <td class="row2"><input type="text" name="user_apellidos"  size="30" value="{user_apellidos}" class="input" /></td>
          </tr>
<tr>
            <td class="row1"><b>{lang_user_ciudad}</b></td>
            <td class="row1"><input type="text" name="user_ciudad"  size="30" value="{user_ciudad}" class="input" /></td>
          </tr>
<tr>
            <td class="row2"><b>{lang_user_edad}</b></td>
            <td class="row2"><input type="text" name="user_edad"  size="30" value="{user_edad}" class="input" /></td>
          </tr>
<tr>
            <td class="row1"><b>{lang_user_telefono}</b></td>
            <td class="row1"><input type="text" name="user_telefono"  size="30" value="{user_telefono}" class="input" /></td>
          </tr>

Cerrar y guardar cambios

Paso 6 :

Abrir member.php


Localizar :

Quote
"user_homepage" => $user_homepage,

Añadir debajo :

Code: [Select]
"user_nombre" => $user_nombre,
"user_apellidos" => $user_apellidos,
"user_ciudad" => $user_ciudad,
"user_edad" => $user_edad,
"user_telefono" => $user_telefono,

Localizar :

Quote
$user_email = (isset($HTTP_POST_VARS['user_email'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_email'])) : "";

Añadir arriba :

Code: [Select]
$user_nombre = (isset($HTTP_POST_VARS['user_nombre'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_nombre'])) : "";
$user_apellidos = (isset($HTTP_POST_VARS['user_apellidos'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_apellidos'])) : "";
$user_ciudad = (isset($HTTP_POST_VARS['user_ciudad'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_ciudad'])) : "";
$user_edad = (isset($HTTP_POST_VARS['user_edad'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_edad'])) : "";
$user_telefono = (isset($HTTP_POST_VARS['user_telefono'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_telefono'])) : "";

Localizar :

Quote
$user_email = $user_info['user_email'];

Añadir arriba :

Code: [Select]
$user_nombre = $user_info['user_nombre'];
$user_apellidos = $user_info['user_apellidos'];
$user_ciudad = $user_info['user_ciudad'];
$user_edad = $user_info['user_edad'];
$user_telefono = $user_info['user_telefono'];

Localizar :

Quote
"user_name" => format_text(stripslashes($user_name), 2),

Añadir debajo :

Code: [Select]
"user_nombre" => format_text(stripslashes($user_nombre), 2),
"user_apellidos" => format_text(stripslashes($user_apellidos), 2),
"user_ciudad" => format_text(stripslashes($user_ciudad), 2),
"user_edad" => format_text(stripslashes($user_edad), 2),
"user_telefono" => format_text(stripslashes($user_telefono), 2),

Cerrar y guardar cambios

Paso 7 :


Y por último se tiene que crear los nuevos campos en la base de datos en la tabla users
los nombre de los campos tienen que ser los siguientes :

nombre del campo : user_nombre  ; tipo de campo : varchar  ; longitud del campo 255 ; nulo : not null
nombre del campo : user_apellidos  ; tipo de campo : varchar  ; longitud del campo 255 ; nulo : not null
nombre del campo : user_ciudad  ; tipo de campo : varchar  ; longitud del campo 255 ; nulo : not null
nombre del campo : user_edad  ; tipo de campo : varchar  ; longitud del campo 10 ; nulo : not null
nombre del campo : user_telefono  ; tipo de campo : varchar  ; longitud del campo 15 ; nulo : not null

Si hay alguien que no sabe como instertar dichos campos en la base de datos,,, os dejo este script que lo hace automáticamente :

Copiarlo en el directorio raiz de tu galería,, donde teneis el config.php,,, nombrais el script como instalar_campos.php y lo ejecutais en el navegador que useis :

Code: [Select]
<?php

define
('ROOT_PATH''./');
include(
ROOT_PATH.'global.php');

$mod_name "Insertar nuevos campos en el registro";
$mod_author "excitex2";
$sql_data = array(

            
"ALTER TABLE `".USERS_TABLE."` ADD `user_nombre` varchar(255)  NOT NULL",
            
"ALTER TABLE `".USERS_TABLE."` ADD `user_apellidos` varchar(255) NOT NULL"
            
"ALTER TABLE `".USERS_TABLE."` ADD `user_ciudad` varchar(255)  NOT NULL",
            
"ALTER TABLE `".USERS_TABLE."` ADD `user_edad` varchar(10)  NOT NULL",
            
"ALTER TABLE `".USERS_TABLE."` ADD `user_telefono` varchar(15)  NOT NULL",
);

$error_log = array();
$error_msg "";


if (
$action == "modinstall") {
?>

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
    <meta content="text/html; charset=windows-1252" http-equiv="Content-Type">
    <link rel="stylesheet" href="admin/cpstyle.css">
    <title>4images Installer</title>
  </head>
  <body leftmargin="20" topmargin="20" marginwidth="20" marginheight="20" bgcolor="#FFFFFF">
    <table cellpadding="0" cellspacing="0" border="0" width="500" align="center">
      <tr><td class="tableborder"><img src="admin/images/logo_installer.gif" width="500" height="45"><br />
          <table cellpadding="3" cellspacing="1" border="0" width="100%">
            <tr class="tablerow2"><td><b>MOD: <?php echo $mod_name?></b>&nbsp;&nbsp;&nbsp;&nbsp;(por <?php echo $mod_author?>)</td></tr>
            <tr class="tablefooter"><td align="center">&nbsp;</td></tr>
    </table>
  <table cellpadding="3" cellspacing="1" border="0" width="100%">
    <tr class="tablerow"><td colspan="2" align="right"></td></tr>
    <tr class="tablerow2"><td colspan="2"><br /><blockquote>
<?php
  $date 
time();
  
$exist 0;
  
$row $site_db->query("SHOW tables");
  while (
$r $site_db->fetch_array($row)) {
   
/* if ($r[0] == ENCUESTAS) {
      $exist = 1;
      break;
    } */
  
}
  if (!
$exist) {
    foreach (
$sql_data as $val){
      echo (
$change) ? "" "Ejecución: <br>";
      echo 
str_replace("\n""<br />"$val)."<br /><br />";
    
if (!$site_db->query($val)) {
    
  $error_log[] = str_replace("\n""<br />"$val);
    
}
    }
  }

  if (empty(
$error_log)) {
    if (
$exist) {
      echo 
"<h4>.<br />No se ha realizado ningun cambio.</h4>";
    }else{
      echo 
"</blockquote><h4>Operación realizada con exito!</h4>";
    }
  }else{
    echo 
"<a href=\"".$self_url."\">Intentarlo otra vez</a><br />";
  }
  echo 
"<a href=\"./\">Volver a la galería</a>";
?>


    </blockquote></td></tr>
   <tr class="tablefooter"><td colspan="2">&nbsp;</td></tr>
          </table>
        </td>
      </tr>
    </table>
  </table>
  <p align="center"> Powered by <b>4images</b> <?php echo SCRIPT_VERSION?><br />Copyright &copy; 2002 <a href="http://www.4homepages.de" target="_blank">4homepages.de</a><br /></p>
  </body>
  </html>
<?php
  
exit;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta content="text/html; charset=windows-1252" http-equiv="Content-Type">
  <link rel="stylesheet" href="admin/cpstyle.css">
  <title>4images Instalador</title>
</head>
<body leftmargin="20" topmargin="20" marginwidth="20" marginheight="20" bgcolor="#FFFFFF">
<form action="<?php echo $self_url?>" name="form" method="post">

  <table cellpadding="0" cellspacing="0" border="0" width="500" align="center">
    <tr><td class="tableborder"><img src="admin/images/logo_installer.gif" width="500" height="45"><br />
        <table cellpadding="3" cellspacing="1" border="0" width="100%">
          <tr class="tablerow2"><td><b>MOD: <?php echo $mod_name?></b>&nbsp;&nbsp;&nbsp;&nbsp;(por <?php echo $mod_author?>)</td></tr>
          <tr class="tablefooter"><td align="center">&nbsp;</td></tr>
  </table>
<table cellpadding="3" cellspacing="1" border="0" width="100%">
  <tr class="tablerow"><td colspan="2" align="right"></td></tr>
  <tr class="tablerow2"><td colspan="2"><center>
  Esta aplicación modificará la base de datos de tu galería, por favor<br><b>
  <font color="#FF0000">HAZ UNA COPIA DE SEGURIDAD DE LA BASE DE DATOS ANTES DE EJECUTAR ESTA APLICACION!</b></font><br><br>
  Por favor comprueba todos los campos que se muestran abajo.<br>
  Si no corresponden con tus datos, por favor<br><b>NO EJECUTES ESTA APLICACION</b>!
  </center></td></tr>
  <tr class="tableheader"><td colspan="2"><b><span class="tableheader">Configuración de la base de datos </span></b></td></tr>
  <tr class="tablerow"><td>Tipo de servidor de la base de datos</td><td><?php echo $db_servertype?></td></tr>
  <tr class="tablerow2"><td>Nombre del servidor donde está instalada la base de datos</td><td><?php echo stripslashes($db_host); ?></td></tr>
  <tr class="tablerow"><td>Nombre de la base de datos</td><td><?php echo stripslashes($db_name); ?></td></tr>
  <tr class="tablerow2"><td>Prefijo de la TABLA en la base de datos</td><td><?php echo stripslashes($table_prefix); ?></td></tr>
  <tr class="tablefooter"><td colspan="2"><center><input type="hidden" name="action" value="modinstall"><input type="submit" value="Iniciar aplicación" class="button" name="submit"></center></td></tr>
        </table>
      </td>
    </tr>
  </table>
</form>
<p align="center"> Powered by <b>4images</b> <?php echo SCRIPT_VERSION ?><br />Copyright &copy; 2006 <a href="http://www.4homepages.de" target="_blank">4homepages.de</a><br /></p>
</body>
</html>

Bueno y eso es todo,,, no lo he probado,, por lo tanto es posible que haya algun error,, si es así,, lo poneis que lo corregiremos.

Estos datos que se insertan en el registro,, es posible sacarlos tambien en los comentarios y en los datos de la imagen,, pero eso es otra historia al registro.

excitex2
Title: Re: [TUTORIAL] Pasos a seguir para insertar nuevos campos en el registro
Post by: pablogross on September 04, 2008, 08:56:08 PM
Hola se podra colocar estos datos instalar_campos.php en install.php o el sea para que ya se instalen al comienzo de la instalacion de la galeria?
Title: Re: [TUTORIAL] Pasos a seguir para insertar nuevos campos en el registro
Post by: Sunny C. on September 04, 2008, 10:17:54 PM
Darf ich mal fragen was das ist?
Title: Re: [TUTORIAL] Pasos a seguir para insertar nuevos campos en el registro
Post by: nobby on September 04, 2008, 10:26:09 PM
Darf ich mal fragen was das ist?

Das ist ein Tutorial um zusätzliche Felder in die Registrierung einzubauen wie: Vorname Nachname Stadt Alter Telefon etc. Angepasst an Spanischer Sprache
Title: Re: [TUTORIAL] Pasos a seguir para insertar nuevos campos en el registro
Post by: Sunny C. on September 05, 2008, 01:32:22 AM
Achso,

danke dir!