domingo, 14 de noviembre de 2010

Agregar campos en el formulario de registro joomla 1.5x

Hace poco tuve la necesidad de agregar más campos un formulario de registro para nuestro joomla 1.5x, entonces como buen investigador me di en la búsqueda de aquella valiosa información y lograr minimizar los costos de mi cliente.

Pues bien, lo que encontré es que se puede hacer mediante un componente que se llama Community Builder, pero a mi modo de ver es un componente muy extenso para solo añadir un par de campos nuevos en nuestro formulario de registro, sin embargo también es una salida.

La solución que vi más viable fue modificar nuestras tablas en la base de datos y en un par de archivos de nuestro gestor de contenidos gracias a un foro que encontré en internet ( http://www.joomlaspanish.org/foros/showthread.php?t=31225 ):


" Hola a todos:
hace unos días tuve que añadir unos cuantos campos al registro de usuarios en Joomla 1.5.7 y tras buscar en el foro vi que no estaba bien documentado para esta versión, pero si para Joomla 1.0.xx.

Despues de navegar un poco por la red encontré como hacerlo y de paso lo he traducido para ponerlo a disposición de quien lo necesite.

Saludos!

Advertencia: El siguiente ejemplo implica modificar el código del núcleo de Joomla. Esto conlleva una serie de riesgos si se realiza mal, como la posible perdida de funcionalidad del componente de registro y la necesaria reconfiguración del sistema para poder recuperarlo. Por eso es absolutamente necesario hacer copias de seguridad de todos los archivos que editemos para poder volver a la situación original en caso de desastre.


Por supuesto, no me hago responsable de posibles fiascos, yo he realizado estos pasos uno a uno y puedo confirmar que funciona en una instalación limpia de Joomla 1.5.7 en mi servidor de pruebas
# Apache 2.0.59
# MySQL 5.0.41
# PHP 5.2.6

Dicho esto, pasamos a la acción.

La página de registro Joomla normalmente contiene suficiente información para la mayoría de sitios web. Ciertos webmaster que desean mejorar la información del usuario, por lo general, usan el component Community Builder que ampliar los campos del registro. Sin embargo, es totalmente posible crear nuevos campos del registro sin necesidad de instalar otros componentes, mediante la modificación de algunas líneas en el código del core de Joomla. Aquí te indicamos cómo hacerlo.

En este ejemplo, vamos a añadir los campos Negocio y Teléfono al formulario de registro de usuarios, sin embargo esto solo es un ejemplo y puedes modificarlo para agregar el campo que quieras

El primer paso es agregar los campos campos a la tabla de usuarios en nuestra base de datos.
Nosotros usaremos el phpMyAdmin para realizarlo, pero puedes realizarlo de otra forma si conoces como. Las siguiente consultas en SQL añaden estos campos:



ALTER TABLE jos_users ADD business VARCHAR (100) NOT NULL AFTER name;


y despues


ALTER TABLE jos_users ADD phone VARCHAR (100) NOT NULL AFTER business;



Una vez que se hayan creado las columnas, verifica que se han creado correctamente y comenzaremos a modificar código de 4 archivos de joomla

Segundo paso, modificar el archivo libraries/joomla/database /table/user.php para insertar los nuevos campos. Un avez abierto buscamos estas lineas de código


var $name = null;

      /**

      * The login name

      *

      * @var string

      */

      var $username = null;



e inmediatamente después añadimos estas dos lineas (en este caso con las variables bussiness y phone, pero ya sabes que podrás usar otras siempre que el mantengas el nombre de las variables para todas las lineas de código que agregues)


var $business = null;

    var $phone = null;



Tercer paso, modificar el código que muestra la página de registro en el archivo components/com_user/views/register/tmpl/default.php Una vez abierto el archivo buscamos el siguiente código:


<tr>

<td width="30%" height="40">

<label id="namemsg" for="name"><?php echo JText::_( 'Name' ); ?>: </label> </td>

<td>

<input type="text" name="name" id="name" size="40" value="<?php echo $this->user->get( 'name' );?>" class="inputbox required" maxlength="50" /> * </td>

</tr>



he inmediatamente despues añadimos:


<tr>

    <td width="30%" height="40">

    <label id="businessmsg" for="business"><?php echo JText::_( 'Business' ); ?>: </label> </td>

    <td>

    <input type="text" name="business" id="business" size="40" value="<?php echo $this->user->get( 'business' );?>" class="inputbox required" maxlength="50" /> * </td>

    </tr>

    <tr>

    <td width="30%" height="40">

    <label id="phonemsg" for="phone"><?php echo JText::_( 'Phone' ); ?>: </label> </td>

    <td>

    <input type="text" name="phone" id="phone" size="40" value="<?php echo $this->user->get( 'phone' );?>" class="inputbox required" maxlength="50" /> * </td>

    </tr>




Cuarto paso, modificamos ahora el archivo components/com_user/views/user/tmpl/form.php, que es el que muestra los campos a rellenar por el usuario al registrarse, buscamos el siguiente código:



<tr>

      <td width="120">

      <label for="name">

      <?php echo JText::_( 'Your Name' ); ?>:

      </label>

      </td>

      <td>

      <input class="inputbox" type="text" id="name" name="name" value="<?php echo $this->user->get('name');?>" size="40" />

      </td>

      </tr>

      <tr>



e inmediatamente despues añadimos:


<td width="120">

    <label for="business">

    <?php echo JText::_( 'Business' ); ?>:

    </label>

    </td>

    <td>

    <input class="inputbox" type="text" id="business" name="business" value="<?php echo $this->user->get('business');?>" size="40" />

    </td>

    </tr>

    <tr>

    <td width="120">

    <label for="phone">

    <?php echo JText::_( 'Phone' ); ?>:

    </label>

    </td>

    <td>

    <input class="inputbox" type="text" id="phone" name="phone" value="<?php echo $this->user->get('phone');?>" size="40" />

    </td>

    </tr>



Quinto paso, ahora vamos a modificar la página que muestra los datos del usuario en el backend, editando el archivo: administrator\components\com_users\views\user\tmpl \form.php en el cual buscamos el siguiente código:


<tr>

                    <td class="key">

                        <label for="email">

                            <?php echo JText::_( 'Email' ); ?>

                        </label>

                    </td>

                    <td>

                        <input class="inputbox" type="text" name="email" id="email" size="40" value="<?php echo $this->user->get('email'); ?>" />

                    </td>

                </tr>



e inmediatamente despues añadimos este otro código:




<tr>

                    <td class="key">

                        <label for="business">

                            <?php echo JText::_( 'Business' ); ?>

                        </label>

                    </td>

                    <td>

                        <input class="inputbox" type="text" name="business" id="business" size="40" value="<?php echo $this->user->get('business'); ?>" />

                    </td>

                </tr>

                <tr>

                    <td class="key">

                        <label for="phone">

                            <?php echo JText::_( 'Tel' ); ?>

                        </label>

                    </td>

                    <td>

                        <input class="inputbox" type="text" name="phone" id="phone" size="40" value="<?php echo $this->user->get('phone'); ?>" />

                    </td>

                </tr>



Eso es todo, para que funcione correctamente, aunque nos falta un pequeño detalle, tanto en la administración como en la página de registro nos salen las etiquetas Business y Phone, por lo que tendremos que acudir a los archivos de idioma para ponerlo en el idioma de Cervantes, Rosalia de Castro, Ausiàs March o el que corresponda...
En mi caso y asta que saquemos la versión andaluza de Joomla, acudo al archivo languages/es-ES/es-ES.com_user.ini y añado estas dos lineas (aquí donde lo coloques es indistinto...)

PHONE=Teléfono
BUSINESS=Negocio

Con lo que en la parte pública ya estaría traducido, después accedemos a

administrator/languages/es-ES/es-ES.com_user.ini y repetimos la acción, así ya tendremos en nuestro idioma tanto la parte pública como la administración


Ahora tienes un par de campos adicionales en la tabla de usuarios, y más información disponible para su uso.

Asegrate de tener copias de seguridad antes de hacer este cambio!

Espero que te sea útil y solo me queda darle las gracias al usuario de joomla.org jtullous por ponerme en el camino para hacerlo y a usuarios de otros foros que me ayudaron a resolver un pequeño problema de sintaxis en la consultas a MySQL

Espero que os sea útil"


A mi me funcionó perfectamente, aunque no son campos requeridos, para esto hay que estudiar más o pagarle al ingeniero. Te recomiendo que hagas los pasos al pie de la letra porque hay cosas que parecen obvias pero al final la terminamos liando. Ahh y obviamente si tienes dudas o comentarios lo puedes hacer en el foro de donde saqué la info: http://www.joomlaspanish.org/foros/showthread.php?t=31225

Como siempre, si te sirvió o gustó no seas desagradecido enlaza el blog ;)

viernes, 12 de noviembre de 2010

Efecto para banners en flash y as2

Hoy vamos a aprender a hacer un interesante efecto que puede ser utilizado en banners o en lo que se les ocurra.

Sobra decir que toca abrir el flash, pero he encontrado gente que nada le parece obvio, así que “por favor ejecute su flash versión 8 en adelante”.
Ahora le decimos “archivo de flash (AS2)” .
Este tutorial lo voy a hacer con cs4, pero como vengo usando el flash en versiones anteriores la verdad no me acostumbro a tenerlo con la nueva interfaz, así que voy a ventana > espacio de trabajo> clásico.
Configuramos el tamaño que queremos, en este caso 230px X 173px:






Importamos una imagen de fondo ctrl+R, presionamos ctrl+k para que nos salga el panel de alineación y le decimos que nos alinee con respecto a la escena tanto vertical como horizontal.:



Creamos una nueva capa:

Ahora hacemos un cuadro del color que queramos y lo convertimos a clip de película con la tecla F8:


Ahora entramos en el clip dándole doble click al cuadro. Señalamos nuevamente el cuadro y lo convertimos nuevamente en clip de película (F8) para poder animar por movimiento.
Vamos al fotograma número 20 y presionamos F6 para poner un fotograma clave. Luego nos situamos entre los dos fotogramas (1 y 20) y presionamos el click derecho y le ponemos crear interpolación clásica. (Si no convertimos el objeto a click de película el programa nos crea automáticamente el clip, pero cuando tenemos un proyecto grande vamos a tener problemas por utilizar esos nombres genéricos que crea el programa, como animar1, animar2 etc.)


Nos paramos en el primer fotograma y le damos click al cuadro para que nos salgan las opciones de estilo, y le ponemos un alpha al 100%:


Luego vamos al último fotograma y hacemos lo mismo, opciones de estilo>alpha, pero esta vez le ponemos 0%.

Si publicamos (Ctrl+enter) vamos a ver un cuadro titilando, así que cerramos y continuamos con el código.
Vamos a pararnos en el primer fotograma y vamos a presionar F9, dejamos presionado la tecla “Esc” y presionamos seguidamente la letra “S” y luego la letra “T” esto con el objetivo de hacer un stop “stop();”, seguidamente vamos a escribir esto:

onRollOver = function(){
gotoAndPlay (2)
}



Bien ahora salimos del clip dándole click a escena 1:


Ya afuera vamos a mantener la tecla “alt” mientras arrastramos nuestro cuadro (para mantener una misma trayectoria en esta copia de instancia dejamos presionada la tecla “shift” luego de arrastar y no soltar). De esta forma vamos a arrastrar y soltar tantas veces sea necesario para cubrir de manera homogénea toda la imagen:
(para señalar varios clips de manera independiente deja presionado el botón “shift” mientras das click en los clips)


Cuando tengamos tapada toda nuestra imagen le damos publicar (ctrl+enter) y vemos k al pasar el mouse por las partes de nuestra película se nos va a descubrir la imagen y nos va a dar un efecto interesante.

Final:


Como siempre espero que te haya gustado y si puedes enlázame el blog ;)
Es importante que pruebes con distintos tamaños, colores y animaciones para que le saques provecho a este humilde tuto.

Hasta pronto.