28
Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com Manual Ilustrado para clonar componentes de Joomla. Autor: Jesús Piña [email protected] http://www.solucionesopensource.com Joomla Open Source: www.joomla.org Página 1 de 28

Tutorial Para Clonar Componentes de Joomla

  • Upload
    jgabro

  • View
    425

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Manual Ilustrado para clonar componentes de Joomla.

Autor: Jesús Piñ[email protected]://www.solucionesopensource.com

Joomla Open Source:

www.joomla.org

Página 1 de 28

Page 2: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Prefacio:

El término clonación en el ámbito de la ingeniería de software se refiere a hacer una copia de un sistema y modificarla de tal forma que permita complementar el sistema actual.

En fin los motivos pueden ser variados, ya sea porque necesita duplicar las funciones de un componente, o por si desea hacer ingeniería inversa para ver como funciona y hacer algo parecido por usted mismo, como normalmente escribo de forma muy técnica decidí mejor poner imágenes paso a paso para aquellos que no están familiarizados con los términos.

NOTA: Este manual esta desarrollado para componentes instalados en modo local, porque siempre es mejor instalar cualquier módulo, componente o mambot en nuestra computadora, ver su funcionamiento y después subirlo al servidor. para hacerlo a través de internet los pasos son muy parecidos. NOTA: debido a que el autor prefiere la instalación manual de componentes, de optó por hacer también la clonación manual.

Página 2 de 28

Page 3: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Paso 1: Duplicar los archivos para el Administrador.

Estos archivos son los que aparecen en el panel de administración, con ellos puedes administrar el componente. normalmente consiste en añadir, editar y borrar. y algunos otros añaden funciones extra como subir, publicar, no publicar, ayuda, etc.

Debes hacer una copia de la carpeta /administrator/components/com_componenteaclonar en este ejemplo vamos a clonar el componente banners que viene por defecto en joomla, si el componente que deseas clonar viene con los archivos de intalación, debes instalarlo primero en tu computadora y despues hacer la clonación.

Hacemos la copia del componente.

Página 3 de 28

Page 4: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Una vez que lo hemos copiado sobre la misma carpeta, debemos renombrarlo a com_banners2 o como quieras que se llame pero siempre debe llevar el prefijo com_ o de lo contrario no te va a servir, te sugiero el uso de números para evitar que te confundas sobretodo al momento de hacer la parte difícil que es editar los archivos.

Con esta copia se han creado los archivos del panel de administración para este clon.

Página 4 de 28

Page 5: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Paso 2: Duplicar los archivos para el usuario.

se encuentran en la carpeta /components/com_componenteaclonar, estos archivos definen la interfaz para el usuario, es lo que tus visitantes van a poder ver.

Copiamos la carpeta ubicada en /components/com_componenteaclonar que en este caso seria banners y la duplicamos.

Una vez copiada, se renombra igual que en el paso anterior se llamará com_banners2

Con esto ya tenemos los archivos que verá el usuario o el visitante de tu website.

Página 5 de 28

Page 6: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Paso 3: Respaldar la base de datos:

Esto es útil en caso de que algo te salga mal o como simple medida de seguridad, al hacer el respaldo de la base de datos estas guardando toda la información de tu sitio.

Primero entramos en el phpmyadmin de nuestro servidor en modo local, por defecto es:http://localhost/phpmyadmin o http://127.0.0.1/phpmyadmin

del lado derecho aparecen las bases de datos, en este caso seleccionamos la de nuestro sitio que en este ejemplo se llama joomla.

Ahora hacemos click en la opción Exportar que se encuentra en la parte superior.

Página 6 de 28

Page 7: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

En esta pestaña nos da la opción para exportar toda la base de datos de nuestro sitio, así que hacemos click en seleccionar todo (si es que no esta seleccionado y en la parte de abajo seleccionamos la casilla “Enviar (genera un archivo descargable)”

Haciendo esto nos va a generar el archivo SQL con el contenido de los datos.

Página 7 de 28

Page 8: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Ahora solo lo guardamos en donde queramos, y con esto ya tenemos respaldada la base de datos de nuestro sitio.

Una vez que tenemos el respaldo de la base de datos podemos hacer las cosas más serias que son hacer las copias de las tablas, y registrar el componente clonado manualmente.

Página 8 de 28

Page 9: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

4: Duplicar tablas:

Para que tu componente clonado funcione perfectamente y no mezcle datos con el componente original debes también hacer un duplicado de las tablas, para hacerlo abrimos el archivo de la base de datos que acabamos de bajar con cualquier editor que soporte SQL, en lo personal me gusta Geany, o Kate para abrir este tipo de archivos, pero si usan Windows les recomiendo Notepad++, del cual un servidor realizó una versión portable en español la cual pueden descargar en:

http://www.solucionesopensource.com/index.php?option=com_remository&Itemid=27&func=fileinfo&id=7

El editor SourceEdit, también es bueno solo que trae mucha publicidad, en fin, bueno volviendo al tema:

Buscamos las tablas que queremos cambiar, por suerte para nosotros los nombres de las tablas corresponden a los diferentes componentes que tenemos en joomla, si no saben como se llaman las tablas de su componente, solo basta abrir el archivo de instalación que se encuentra dentro del archivo comprimido (.zip, .tar.gz, .tar, .rar o cualquier otra extensión de compresión. el archivo de instalación debe llevar algo como install.xml y ahí aparecen los nombres de las tablas que usa ese componente porque debe decir “CREATE TABLE .... y aqui aparece el nombre de la tabla.

En este ejemplo vamos a usar las tablas que llevan jos_banner, jos porque es el prefijo que viene por defecto en joomla y banner por que son las tablas de este componente.

al ver en el phpmyadmin los nombres de las tablas, nos damos cuenta de que el componente banners usa tres tablas que son: “jos_banners”, “jos_bannerclient” y “jos_bannerfinish”, siempre los nombres de las tablas se relacionan con el componente, así las tablas del componente remository llevan downloads, de virtuemat el prefijo vm, etc.

A través de nuestro editor, vamos a seleccionar el código de las tablas y copiamos desde donde empieza “CREATE TABLE 'Aqui va las tablas del componente que van a clonar” en este caso jos_banners, jos_bannerclient y jos_bannerfinish hasta una línea antes de donde empiece la tabla del siguiente componente que también debe empezar con “CREATE TABLE”, se reconoce porque tiene nombre diferente.

Página 9 de 28

Page 10: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Seleccionamos todas las líneas desde donde empiezan las tablas a clonar hasta la primer línea de la tabla del siguiente componente.

Página 10 de 28

Page 11: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

hasta una línea antes de la tabla del siguiente componente, lo reconocemos porque tiene nombre diferente, en este caso la tabla jos_categories es la que adminstra las categorias del contenido de nuestro sitio.

Una vez que hemos seleccionado todo lo copiamos.

Por norma general en la parte superior izquierda de nuestro editor esta el icono de “Nuevo” o “New”, hacemos click en ese botón para que nos abra una nueva pestaña en blanco, y ahí pegamos lo que acabamos de copiar. Esto es importante porque hay que recordar que estamos trabajando con el respaldo de la base de datos de nuestro sitio y por seguridad debe ser solo para lectura, no debemos escribir en el a menos que sepamos lo que estamos haciendo.

Página 11 de 28

Page 12: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Una vez que hemos pegado el contenido de las tablas, procedemos a modificarlas, al principio del nuevo archivo (o la nueva pestaña que acabamos de crear) debe decir CREATE TABLE `jos_banner` o dependiendo de como se llame la tabla del componente que quieres clonar y le agregamos un 2 al final para que quede CREATE TABLE `jos_banner2`, lo mismo en donde dice:INSERT INTO `jos_banner` se debe cambiar a INSERT INTO `jos_banner2` y así sucesivamente con todas las tablas que tenga ese componente.guardamos el archivo con el nombre componenteclonado.sql

Ahora regresamos a nuestro editor y buscamos la tabla jos_components que se encuentra en el archivo joomla.sql, para evitar andar buscando línea por línea les recomiendo que usen la función buscar que trae incorporado su editor, así solo escribimos components, le damos enter y automáticamente nos posiciona el la línea que contiene components.

Página 12 de 28

Page 13: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Seleccionamos todo el contenido desde CREATE TABLE 'jos_components' hasta una linea antes de que vuelva a decir “CREATE TABLE”. lo copiamos, y ahora regresamos a nuestro archivo componenteclonado.sql, nos posicionamos al final del archivo y ahí pegamos el contenido de la tabla jos_components.

Página 13 de 28

Page 14: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Ahora vamos a editar el archivo componenteclonado.sql nos fijamos en la línea que aparece en CREATE TABLE 'jos_components', debe ser igual a la última línea que se ve en la figura ENGINE = ...., en la parte que dice AUTO_INCREMENT=n en este caso n=53 que es el número que aparece en la figura y es el que se le asignará al siguiente registro de esta tabla. Es probable que lo necesites dependiendo de como quieras que aparezca el componente clonado en el panel de adminstración.

Por ejemplo si quieres que al hacer click en el menú componentes te aparezca dos veces el componente, entonces vas a tener que usar el numero que acabas de anotar en este ejemplo es el 53 y te va a aparecer algo como

banners -> gestion de banners -> clientesbanners2 -> gestion de banners2 ->clientes2

esto es en el caso de que tu componente te aparezca con submenus, en caso

Página 14 de 28

Page 15: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

contrario te aparecera

componenteoriginalcomponenteclonado

en lo personal prefiero tener todo organizado en el mismo menu que sería algo como:

banner->categorias o bien banners->categorias ->clientes ->categorias2 ->categorias2 ->clientes ->clientes2 ->clientes2

Aqui podemos jugar con los valores y nos aparecera en distinto orden, con distinto nombre, etc. Ahora vamos a aprender como jugar con estos valores.

analizamos los registros de la tabla jos_components que se encuentran en nuestro archivo componenteclonado.sql y buscamos las líneas que lleven algo de com_nombredelcomponente a clonar que siguiendo este ejemplo sería com_banners. La forma más rápida de hacerlo es usar la función de búsqueda de nuestro editor.

seleccionamos las líneas de código tal como se muestra en la siguiente figura

Página 15 de 28

Page 16: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Lo cortamos, ahora seleccionamos el resto: que en este caso empezaría desde (4,'Enlaces Web', ...) hasta el final de los registros:

Página 16 de 28

Page 17: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Una vez que hemos seleccionado todos los registros los elmiminamos y nos debe quedar algo asi:

Página 17 de 28

Page 18: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Ahora pegamos los registros que habiamos cortado y nos queda:

Página 18 de 28

Page 19: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

NOTA: observa que el primer registro en realidad no apunta a nada, es solo la categoría, esto nos damos cuenta por que el sexto campo que debe ser la URL a relativa a la que debe apuntar aparece como '' y porque en el quinto campo aparece 0, o sea que no esta relacionado con ningun otro. si queremos que nuestro componente sea registrado sobre la misma categoria (o menu principal) en nuestro panel de administración quitamos esta línea, pero no sin antes ver el ID de este registro que en este caso sería el 1, porque es el primer número que aparece despues del parentesis.

Ahora vamos a jugar con los campos, al eliminar esta línea nos debe quedar algo así:

Página 19 de 28

Page 20: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

en el siguiente registro van a estar los valores del componente clonado, esto es para que el panel de adminstración pueda diferenciar del componente original y del componente clonado o de lo contrario todo lo va a a tomar del componente original.

el numero 2: define el ID del componente, en este caso lo debes sustituir por el valor n que no es otra cosa que el valor que aparece en donde dice AUTO_INCREMENT= que en este ejemplo es el 53, también puedes usar '' pero recomiendo que si no estas muy familiarizados con MySQL le pongas el número que sigue o sea el 53 en este ejemplo.

El segundo campo es el nombre con el que nos va a aparecer en el panel de administración, que puede ser banners2 o banners clonado o administrador de banners o como quieras que se llame esto es algo con lo que tu lo vas a identificar.El tercer campo corresponde al link, en el caso de los submenus no se utiliza y por defecto es ''.El cuarto campo es el ID del menú, hasta el momento no tengo idea para que sirve pero todos los componentes lo registran por defecto como 0, El quinto campo es la relación con la categoría, si aparece 0 es porque no esta

Página 20 de 28

Page 21: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

relacionado con otras categorías o mejor dicho aparece en el menú principal y es todo no cuenta con submenus. el número que aparece es el ID de la categoria con la que esta relacionada, en este caso es la número 1. el 6: campo es el link del administrador, en otras palabra a donde te va a llevar cuando hagas click en esa opción, y aqui si tenemos que editarlo y poner “option=com_banner2” para que nos lleve a la carpeta del componente clonado.el campo 7: es una breve descripción de ese componente, en este caso lo podemos renombar a “banners activos 2” o “banners 2”.

El campo 8: es el nombre de la carpeta en donde se encuentra el componente, en este caso se debe renombrar a com_banners2,

El campo 9: es el orden en el que va a aparecer en el menú. es decir, categorias, categorias2, clientes, clientes2 o como quieran que aparezca. NOTA: no deben repetirse los números para una misma categoria, en este caso como el menú solo trae dos opciones lo debemos cambiar a 3 que seria el orden del nuevo submenu.

El décimo campo define la imagen que va a tener el submenú, por defecto se encuentra en la carpeta /includes/js/ThemeOffice ahí pones el icono que quieras, pero sin el include, por ejemplo js/ThemeOffice/home.png o según el ícono que quieras.

El onceavo campo define si el componente es impresindible en joomla, por defecto es que no, asi que toma el valor de 0

y el doceavo campo son los parámetros en caso de que se requieran.

de esta forma podemos editar el registro de nuestros componentes clonados y nos quedaría algo asi.

Página 21 de 28

Page 22: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

finalmente seleccionamos todo lo que aparece en la siguiente imagen:

Página 22 de 28

Page 23: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

y lo borramos, esto es porque la tabla jos_components ya se encuentra creada en nuestra base de datos y si lo dejamos no podremos ejecutar la consulta en la base de datos y nos va a marcar error.

NOTA: el delimitador en la base de datos por defecto es el ; así que al final del archivo se debe poner “;” justo en la última línea en vez de “,” como se muestra en la figura.

finalmente guardamos el archivo, seleccionamos todo el contenido y lo copiamos.

Ahora solo falta hacer la consulta a la base de datos y subir las tablas que acabamos de modificar.

Esto lo hacemos entrando nuevamente en phpmyadmin, seleccionamos la pestaña

Página 23 de 28

Page 24: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

SQL y nos va a abrir un cuadro de texto como el que se muestra a continuacion:

En este cuadro pegamos el contenido del archivo componenteclonado.sql y le damos click en continuar para ejecutar la consulta, es mucho mejor por este método que por subir el archivo directamente desde la pestaña Importar, ya que si se importa est en función del juego de caractéres que se tenga por defecto en el servidor y nos puede causar problemas con los acentos y las “ñ”.

Página 24 de 28

Page 25: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

Finalmente nos vamos al panel de administración de nuestro sitio y nuestro componente clonado ya aparece tal y como se muestra a continuación

PASO 5: Modificar el código del componente.

Sin embargo esto no significa que esta funcionando correctamente ya que el código del componente clonado apunta a las tablas originales y no a las tablas clonadas por lo que debemos editar los archivos.

Tenemos que editar el código fuente de nuestro componente clonado y esto lo hacemos nuevamente con nuestro editor favorito. en mi caso prefiero el Geany, pero ustedes pueden usar el que quieran.

Primero vamos a buscar las referencias a las tablas originales, algunos editores pueden buscar en toda la carpeta específicada, en caso de que tu editor no tenga estas funciones debes abrir todos los archivos de la carpeta com_componenteclonado en este caso com_banners2 y seleccionar buscar en todos los archivos.

Página 25 de 28

Page 26: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

con esto nos aparece una lista de todos los archivos y las lineas en donde se tienen que hacer modificaciones,

Página 26 de 28

Page 27: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

aquí nos aparece el listado de los archivos que tenemos que cambiar y las líneas a las que les tenemos que hacer cambios, solo basta en hacer click en la línea para que nos lleve de forma automática al archivo y a la línea que necesitamos corregir. aquí cambiamos “option=com_banners” lo cambiamos a “option=com_banners2” esto es para que al hacer click en el enlace nos lleve a la página de edición del componente clonado en vez del componente original.

para cambiar las consultas a la base de dato es exactamente lo mismo.

Página 27 de 28

Page 28: Tutorial Para Clonar Componentes de Joomla

Manual para clonar componentes en Joomla Autor: Jesús Piña: www.solucionesopensource.com

aqui se cambia en donde dice “FROM #__banner” a FROM #__banner2 y así sucesivamente con el resto de las tablas. con esto logramos que el componente clonado tome y haga consultas desde las tablas clonadas, sin que afecte las tablas originales.

NOTA: este ejemplo para editar los archivos solo se muestra para el administrador o sea la carpeta /administrator/components/com_XX donde xx representa el componente clonado. se tiene que hacer lo mismo para los archivos que va a ver el usuario estos se encuentran en /components/com_XX.

Espero que les haya sido de utilidad.

Atentamente:Jesús Piñawww.solucionesopensource.com

Página 28 de 28