Cómo crear campos personalizados en Joomla!
Por Iván Bustos en Joomla!. Actualizado: 29/6/2011. Visitado 2328 veces. Compartir en FacebookTwitterLinkedIn
Dificultad: Avanzado.
Requerimientos: Saber instalar y configurar Joomla!
Tiempo estimado para completar: 25 minutos.
Introducción
Joomla es un excelentísimo Sistema de Gestión de contenidos. Sin embargo, para mucha gente (incluyéndome) que les gusta llevar Joomla al próximo nivel (este sitio está hecho completamente en Joomla) a veces es necesario expandir las posibilidades que nos ofrece Joomla por defecto.
Uno de los casos donde se presenta este tipo de situaciones es cuando queremos ampliar o expandir información acerca de un artículo. Por dar un ejemplo, si queremos crear una tienda virtual donde cada artículo de Joomla representa uno de nuestros productos, sería genial si pudiéramos agregar una caja de texto "precio" donde fácilmente nosotros o nuestro cliente pudiéramos agregar el precio del producto respectivo. Tal y como indica la siguiente figura:

Después de tanta investigación para resolver el problema no encontré suficiente información (o bueno digamos que no supe hacerlo para no quedar mal después) que me pudiera llevar a la solución de este problema. Por esta razón, luego de estudiar lo suficiente el código fuente de Joomla logré desarrollar un método manual (me da pereza hacer un script en PHP) que logra hacer esto relativamente fácil.
El método que planteo en este tutorial implica modificar ligeramente el núcleo de Joomla (Sólo modificaremos un par de líneas). Es claro que esto es una mala práctica pero realmente no supe cómo hacerlo de otra manera y no encontré a nadie que haya documentado una manera supuestamente más correcta. Es importante saber que cualquier actualización de Joomla podría potencialmente reinstalar los archivos del núcleo que tuvimos que modificar dañando por completo nuestro sitio. Lo recomendable si decides hacer lo expuesto en este tutorial es no actualizar Joomla una vez termines o volverle a hacer los cambios a los archivos tan pronto lo hagas. Quedas advertido.
Preparando todo para poder seguir las instrucciones del tutorial
Para empezar con el tutorial me gustaría que pudieras seguir cada instrucción paso a paso. Asumo que tienes tu servidor local instalado (yo uso XAMPP) y listo para instalar Joomla. También asumo que sabes instalar Joomla. Es decir, que sabes crear una base de datos usando PHPMyAdmin (u otra utilidad) y que la sabes configurar durante la instalación de Joomla.
Analicemos lo que queremos hacer; la idea es agregarle una variable precio a todos los artículos. Luego, modificaremos la plantilla beez5 para mostrar los precios a cada uno de los artículos.
Primero que todo, crea una base de datos en tu instalación de MySQL y luego descarga la última versión de Joomla desde http://www.joomla.com e instálala en tu servidor local. ¡Es importante que instales el contenido de ejemplo para poder seguir el tutorial! Nota que para este tutorial usé la versión Joomla 1.6.3. En futuras versiones, puede que técnicas aquí mostradas no apliquen.
Ahora descarga los excelentes paquetes de traducción al español de Joomla disponibles aquí gracias a la generosidad de su creador, Rafa Gómez. Los archivos mencionados son "es-ES_joomla_lang_full_163v1.zip" y "tinymce_lang_pack_es_3.3.9.3_1.6.zip".
Una vez los descargues, dirígete a la consola de administración de Joomla y selecciona "Extension Manager" del menú "Extensions".
Dentro de la viñeta "Install", haz clic en el botón "Browse..." e indica el archivo "es-ES_joomla_lang_full_163v1.zip" que acabas de descargar. Una vez lo hagas no olvides hacer clic en el botón "Upload & Install". Repite este proceso con "tinymce_lang_pack_es_3.3.9.3_1.6.zip".

El siguiente paso es hacer clic en el botón "Language Manager" dentro del menú "Extensions". Ubica el lenguaje "Spanish (ES)" en pantalla y haz un clic en su estrella correspondiente en la columna "default" para hacer de este lenguaje, el lenguaje activo.

Haz clic en el botón "log out" para Cerrar sesión de la consola de administración y volver al formulario de entrada. Esta vez antes de entrar sin embargo, selecciona "Spanish (español)" de la lista de selección "Language".

Una vez ingreses de nuevo a la consola de administración, dirígete al menú "Extensiones" y haz clic en "Gestor de plugins".
De la lista de plugins, ubica "Editor - TinyMCE" y haz clic en su nombre. En las opciones del plugin, cambia el valor del campo "Selección del idioma automático" a "Sí" como muestra la figura:

Haz clic en "Guardar".
Una vez todo esté instalado y que hayas verificado que todo funcione en el menú "Extensiones", selecciona "Gestor de plantillas".
Ubica "Beez5 - Default-Fruit Shop" en la lista de plantillas instaladas y haz clic en su estrella correspondiente en la columna "Predeterminado" para hacer de esta plantilla, la plantilla activa. Verás que el sitio ha cambiado de diseño como se muestra en la siguiente imagen.

Haz lo mismo con la plantilla "Bluestork - Default". Asegúrate que sea la plantilla predeterminada para la localización "Administrador".

Antes de terminar con la primera parte del tutorial, ya que nosotros somos modernos, activaremos el HTML5 de la plantilla del sitio. Para esto, haz clic sobre el nombre de la plantilla "Beez5 - Default-Fruit Shop". En la configuración de la plantilla, asegúrate de seleccionar "HTML5" de la lista de selección "Versión HTML" como se muestra en la siguiente figura.

Una vez lo hagas, haz clic en el botón "Guardar".
Lo único que hemos hecho hasta ahora es traducir Joomla al español y cambiar de plantilla con el fin de que puedas seguir las instrucciones de este tutorial con más facilidad. Es hora de ponernos manos a la obra para poder crear al fin nuestro campo personalizado. Esto lo haremos en la siguiente página de este artículo.
- Anterior
- Siguiente >>
Iván Bustos, un desarrollador web en Colombia con más de 10 años de experiencia en el desarrollo de experiencias en línea, enamorado de los estándares web y del poder de JavaScript. Fundador de Estilocss.com y creador de IBForm.
El 15 de junio de 2011, jaime h dijo:
Felicidades es muy claro tu ejemplo, lo pondre en practica.
El 15 de junio de 2011, jaime h dijo:
Si podras hecharme una mano con lo siguiente
Un sitio en joomla 1.5 esta superlento para guardar un articulo, menos lento al darle Aplicar. segun parece joomla al guardar el archivo hace consultas leyendo todos los campos que conforman un articulo: titulo, fecha, autor etc y esas consultas alentan el sitio.
Leí que si uno oculta algunos campos de los mencionados es mas rapido el despliegue de la lista de articulos en backend y espero acelere el guardar y aplicar de un articulo. Tambien he visto que se pueden optimizar valores de la mysql pero no le se, así que te pregunto si tu sabras qué archivo controla lo qué se muestra en el gestor de articulos .gracias
El 15 de junio de 2011, Iván Bustos dijo:
¡Hola Jaime!
Gracias por tus comentarios y me alegro que el tutorial te haya parecido claro. En cuanto a tu problema, antes que nada te recomendaría actualizar a Joomla! 1.6 ya que las mejoras de la última versión son muy numerosas. Si el problema persiste vuélveme a escribir por acá.
El 15 de junio de 2011, jaime h dijo:
gracias ya encontre el archivo y lo modifique ahora voy a ver como se comporta el sitio.saludos.
El 16 de junio de 2011, Sergio Everlin dijo:
Genial! Felicitaciones Iván. Lo seguí al pie de la letra y funcionó a la perfección.
Ojo, cuando hablas de modificar la línea 162 del archivo componentscom_contentmodelsarticle.php, debería decir componentscom_contentmodelsarticles.php
Una s en semejante tutorial es nada, lo menciono para facilitar la tarea. Un abrazo y nuevamente felicitaciones.
El 16 de junio de 2011, Iván Bustos dijo:
Sergio muchísimas gracias por tu comentario y espero que el tutorial te haya sido útil. Tenías toda la razón acerca del error en el tutorial y me complace decirte que ya fue arreglado. ¡Gracias!
El 4 de octubre de 2011, Germán Madinabeitia dijo:
Muchas gracias, Iván; me has ahorrado mucho tiempo.
Espero que en próximas versiones de Joomla se les ocurra añadir campos personalizados en los artículos.
Fantástico Tutorial.
El 5 de agosto de 2011, jose david dijo:
Muchas gracias por el tutorial aunque me surgue una pequeña duda, si yo lo que quiero es que sean los usuarios de mi pagina quienes puedan modificar un articulo con campos añadidos, ¿como podria hacerlo sin darles acceso como admins?
El 13 de diciembre de 2011, Hernando Diaz dijo:
Buen tutorial. Muy bien escrito y muy util. Muchas gracias!