Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Joomla (http://www.forosdelweb.com/f119/)
-   -   Tutorial: Cómo introducir código PHP en tu Joomla (http://www.forosdelweb.com/f119/tutorial-como-introducir-codigo-php-joomla-437996/)

metacortex 26/10/2006 22:17

Tutorial: Cómo introducir código PHP en tu Joomla
 
A veces nos frustramos un poco porque queremos asignar determinada función dinámica a nuestro portal y se nos hace difícil construir un módulo que la ejecute. Hay un módulo fabricado que nos quita ese peso de encima, permitiéndonos incluir contenidos u objetos rápidamente, con lo cual nos queda más tiempo para dedicarnos al diseño.

En esta explicación pondré un ejemplo de cómo importar los últimos tópicos respondidos de SMF, pero en realidad el módulo se puede utilizar para lo que sea.

1) Lo primero que haremos será -por supuesto- descargar el módulo Jumi. Éste se encuentra en la página de extensiones de Joomla:

http://extensions.joomla.org/compone...023/Itemid,35/

2) Lo instalamos (Panel >> Instaladores > Módulos). ¿Qué es lo que se instala? El mod con su correspondiente XML, y un directorio extra que contiene -entre otras cosas- un archivo de ejemplo del cual nos vamos a fijar para hacer los nuestros.

3) En nuestra lista de módulos se agregó mod_jumi, el cual vamos a analizar:

http://img236.imageshack.us/img236/8055/jumiax8.png

a) Cambiamos el título y definimos la posición, tal como los demás módulos.

b) La clase del módulo. Puedes dejarla en blanco o definirla en la hoja de estilos y anotarla ahí.

c) Allí vas a colocar la ruta donde están los archivos que utilizará Jumi. Puedes dejarla como está o modificarla si te parece conveniente. Por supuesto la ruta debe corresponder con un directorio real.

d) Aquí colocas el nombre del archivo sin la extensión *.php. Puedes crear tantos archivos te convengan para los módulos que desees. ¿Para qué sirven esos archivos guardados en la carpeta mod_jumi_files?. Esos son los que contendrán el código PHP que va a ser llamado desde el módulo que ahora estás configurando. Más adelante lo explicamos mejor.

e) Supuestamente en esta parte se colocan los argumentos que afectarán el funcionamiento del archivo, pero hasta ahora no he trasteado con esto y hasta ahora todo funciona bien. De todas formas esta parte está pendiente de actualizarse cuando descubra para qué sirve exactamente y cómo nos beneficia.

f) Es un block de notas para que escribas lo que sea que tengas que recordar con ese módulo.

Ya revisado esto, procedamos con un ejemplo de las muchas cosas que podemos hacer con Jumi.



Ejemplo de uso: Traer las últimas réplicas del foro SMF a nuestro portal


1) Bajamos Jumi, y lo instalamos como se explicó.

2) Vamos al directorio donde está nuestro foro y encontraremos un archivo llamado ssi_examples.php. Ejecútalo desde el navegador: http://tusitio.com/tuforo/ssi_examples.php. Allí vas a ver varios snippets (pedazos de línea de código) que puedes aplicar a tu web y qué es lo que resulta. Puedes ver que se encuentran los tópicos más recientes, los más respondidos, estadísticas, encuestas, datos de usuarios, etc.. Puedes incluir toda esa información en tu Joomla de manera fácil. En este caso tomaremos el códigos de los últimos temas respondidos o posts recientes:

<?php ssi_recentPosts(); ?>

3) Crea un archivo llamado miprueba.php. A ese archivo le agregarás lo siguiente:

Código:

<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
?>

Eso sirve para que no se pueda acceder a él directamente. Es decir, estarás protegiendo la información que hay allí.

4) Luego agregas la línea mencionada: <?php ssi_recentPosts(); ?> . El resultado debe ser algo como esto:

Código:

<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
?>

<?php ssi_recentPosts(); ?>

Eso es todo. Guarda y cierra el archivo.

5) Antes de entrar de lleno con el módulo y las modificaciones debes hacer algo. Cuando traes contenido de otro software o plataforma, debes decirle a Joomla de qué se trata para que te lo pueda aceptar. Fíjate en tu archivo ssi_examples.php. Hay una línea parecida a esto:

Cita:

To use SSI.php in your page add at the very top of your page before the <html> tag on line 1:
<?php require("/home/usuario/tusitio.com/foros/SSI.php"); ?>
Esa línea (en rojo) es lo que vas a copiar/pegar en la primera línea del index de tu template. En otras palabras, lo pegarás en la línea 1. Con eso le estarás informando a Joomla de dónde viene el código y cuáles son los parámetros que debe leer. Vamos a los módulos.

6) Copia el módulo de Jumi desde tu panel (Lo marcas y presionas Copiar en el botón grande de arriba). Dale click para entrar a la configuración y sigue los pasos anteriormente mencionados en el gráfico (Dale la posición Left). Recuerda poner el nombre de tu archivo "miprueba" sin la extensión *.php. Publícalo.

7) Refresca tu página de inicio. Verás que el módulo responde bien. Ya la información se puede ver perfectamente, pero seguramente quedó HORROROSO en la maquetación, cierto?. Es decir, algo como esto:

http://img209.imageshack.us/img209/3658/1ex9.png

Lo cambiaremos a esto:

http://img120.imageshack.us/img120/4026/2rv6.png

El archivo SSI.php (El que nos da el contenido) viene con una estructura html predeterminada. Todo lo que tenemos que hacer es mover unas cuantas piezas de lugar:

8) Con un editor de textos entra a tu archivo http://www.tusitio.com/tuforo/SSI.php.

Busca (Aprox. en la línea 406)

Código HTML:

echo '
                <table border="0" class="ssi_table">';
        foreach ($posts as $post)
                echo '
                        <tr>
                                <td align="right" valign="top" nowrap="nowrap">
                                        [', $post['board']['link'], ']
                                </td>
                                <td valign="top">
                                        <a href="', $post['href'], '">', $post['subject'], '</a>
                                        ', $txt[525], ' ', $post['poster']['link'], '
                                        ', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt[302] . '" border="0" /></a>', '
                                </td>
                                <td align="right" nowrap="nowrap">
                                        ', $post['time'], '
                                </td>
                        </tr>';
        echo '
                </table>';

Reemplázalo por esto:

Código HTML:

        foreach ($posts as $post)
                echo '
                        <div>
                                <ul>
                                        <li>
                                                <a href="', $post['href'], '">', $post['subject'], '</a>
                                        </li>
                                </ul>
                        </div>';

Listo. Ya tienes los últimos temas respondidos en el index de tu portal.

Esto fue sólo con el ejemplo de SMF, pero con Jumi puedes colocar cualquier tipo de contenido, bien sea html, flash, javascript, banners, galerías externas, etc, etc.. Esta página te da algunos archivos demo para que sepas cómo introducir los códigos.

Recuerda siempre diseñar de acuerdo a los estándares. Haz tus webs accesibles y estéticas a la vez. Nunca te conformes con códigos mal hechos, y si te viene algo malo trata de arreglarlo hasta donde puedas. Verás que la satisfacción y la recompensa es grande, y tus trabajos serán los mejores.

Saludos.

SICK-BOY 27/10/2006 14:30

Metacortex siempre te luces con tus tutoriales brother, que bueno ke lo publicaste ya me habian preguntado varias veces otros usuarios como hacerlo pero por el msn es complicado explicar y terminaban rindiendoce, pero ahora ya con tu tutorial ya se a donde referirlos..

Gracias de parte de la comunidad Joomla!

elbar 06/11/2006 14:20

1 Archivos Adjunto(s)
Habia dejado un mensaje en Joomla, buscando justamente esto..
:aplauso:

La descarga te lleva a una pagina rusa, polaca o no se en que idioma esta...despues de varias volteretas, pude descargarlo.
Los subo aca, por si a alguien le es util..
Descargo sin nombre, pero me imagino que Joomla lo identifica igual.

Muy bueno, Metacortex..!

elbar 06/11/2006 17:42

Me quedo una duda...
El archivo miprueba.php va en la carpeta "modules" de joomla ?

metacortex 06/11/2006 17:57

Por defecto debería ir en modules/mod_jumi_files/ pero el directorio lo puedes configurar en el lugar que desees dentro del campo de texto correspondiente a "pathway" desde el panel de módulos. Hay que crear físicamente el directorio primero. Dentro de éste van los .php.

elbar 06/11/2006 17:59

Ahhh...Ok....
Gracias...!

Edito:
Al colocar el archivo nuevo en modules/mod_jumi_files, me funcona sin la llamada en el index.php del template:
<?php require("/......./public_html/foro/SSI.php"); ?>

Pero en la admin del foro...Config del servidor...Feature Configuration, hay que actvar:
Usar cookies independientes de subdominio

Y desactivar:
Activar el almacenamiento local de cookies
(SSI no funcionará aún con esto activado.)


Funciona de maravillas..!

metacortex 07/11/2006 12:04

Cita:

Iniciado por elbar (Mensaje 1768769)
Ahhh...Ok....
Gracias...!

Edito:
Al colocar el archivo nuevo en modules/mod_jumi_files, me funcona sin la llamada en el index.php del template:
<?php require("/......./public_html/foro/SSI.php"); ?>

Pero en la admin del foro...Config del servidor...Feature Configuration, hay que actvar:
Usar cookies independientes de subdominio

Y desactivar:
Activar el almacenamiento local de cookies
(SSI no funcionará aún con esto activado.)


Funciona de maravillas..!

Yo no tuve ese problema. ¿Será que haciendo la llamada en el index de joomla (template) no es necesario hacer las configuraciones en el panel de SMF?

elbar 07/11/2006 13:01

Podria ser...
Al cambiar la config del smf, no hice a llamada al ssi, como se hace habitualmente y funciona perfecto...

metacortex 07/11/2006 13:58

Ahora estoy probando a crear un módulo con el texto de introducción de SMF aprovechando las ventajas del SSI y usando Jumi, a fin de que los artículos del foro (Sólo el subforo que asignemos para eso) aparezcan en el index de Joomla. Lo que quiero lograr es cortar el primer párrafo del post para que sólo aparezca éste y no el texto completo. Algo así como el boardnews de MKP pero en Joomla. Ya casi lo tengo listo.

elbar 07/11/2006 14:10

Yo hice asi:

Código:

<?php

ssi_boardNews($board = 3.0, $limit = 5, $start = null, $length = 250, $output_method = 'echo');

?>

$board = 3.0 : Foro a mostrar
$limit = 5 : Cantidad de noticias
$start = null : Queda asi
$length = 250 : Cantidad de caracteres a mostrar (la imagenes ocupan espacio)

Aqui hay tres tutoriales con distintos niveles, para utlizar SSI, sin editar el SSI.php y mantenerlo siempre igual.

Al colocarlo asi, se puede hacer muchos bloques con el mismo Jumi, apuntando a distintos espacios del sitio...

metacortex 07/11/2006 14:17

Sí, pero éste te gustará más porque no limitarás los caracteres a cierto número, (eso nunca me gustó) sino que cortarás el párrafo donde más convenga :arriba:

LauRiTa-C 10/03/2008 15:27

Re: Tutorial: Cómo introducir código PHP en tu Joomla
 
Hola, me ocurre un problema al hacer esto. Funcionar funciona, pero no bien. Resulta que al hacer todo lo que decís en la portada de Joomla me aparecen caracteres extraños en los módulos. Me podéis decir como arreglarlo? Gracias

wcorpos 12/01/2010 04:13

Respuesta: Tutorial: Cómo introducir código PHP en tu Joomla
 
hola metacortex
he visto tu post y esta muy interesante. soy muy nuevo en joomla y uso la version 1.5. puede ser una pregunta tonta pero ¿donde esta el archivo ssi_examples.php?
otra pregunta ¿donde se guarda el archivo miprueba.php?
¿cuando mencionas al index de tu template te regieres al archivo templateDetails.xml?
recuerda qeu uso el joomla 1.5
muchas gracias por tus respuestas

jdelrioj 12/01/2010 06:32

Respuesta: Tutorial: Cómo introducir código PHP en tu Joomla
 
Yo ya lo habia usado, para mostrar datos es estupendo, lo malo es que tengas un hipervinculo, me explico
como tengas un hipervinculo dentro de la pagina con jumi al darle click se salde de la plantilla de joomla y te lo pone como una pagina nueva en el destino y ya esta probado todos los target, yo al final cuando quiero hacer algo de eso creo un modulo y en el contenido estatico lo cargo
pero oye muy buen aporte !!!

tetosan 08/04/2010 13:31

Respuesta: Tutorial: Cómo introducir código PHP en tu Joomla
 
Hola jdelrioj, creo que lo que tuc omentas es lo que estoy intentando hacer yo. A lo que te refieres es que creas un articulo y le asignas el modulo verdad?

como haces esto?

Larenz 09/04/2010 11:38

Respuesta: Tutorial: Cómo introducir código PHP en tu Joomla
 
Cita:

Iniciado por wcorpos (Mensaje 3235871)
hola metacortex
he visto tu post y esta muy interesante. soy muy nuevo en joomla y uso la version 1.5. puede ser una pregunta tonta pero ¿donde esta el archivo ssi_examples.php?
otra pregunta ¿donde se guarda el archivo miprueba.php?
¿cuando mencionas al index de tu template te regieres al archivo templateDetails.xml?
recuerda qeu uso el joomla 1.5
muchas gracias por tus respuestas

Cita:

Iniciado por jdelrioj (Mensaje 3235956)
Yo ya lo habia usado, para mostrar datos es estupendo, lo malo es que tengas un hipervinculo, me explico
como tengas un hipervinculo dentro de la pagina con jumi al darle click se salde de la plantilla de joomla y te lo pone como una pagina nueva en el destino y ya esta probado todos los target, yo al final cuando quiero hacer algo de eso creo un modulo y en el contenido estatico lo cargo
pero oye muy buen aporte !!!

Cita:

Iniciado por tetosan (Mensaje 3355648)
Hola jdelrioj, creo que lo que tuc omentas es lo que estoy intentando hacer yo. A lo que te refieres es que creas un articulo y le asignas el modulo verdad?

como haces esto?

Deberían de crear un nuevo tema. ¿Se dan cuenta de la fecha de creación de este post? Es más, ni siquiera yo sé si aún metacortex sigue siendo miembro activo del foro... tengo meses de no saber de él, a menos que se haya cambiado para otro foro y haya dejado el Foro de Joomla a un lado pero no lo he visto.

...No importa como sea pero no es bueno revivir post antiguos. Estos deberían de ser tomados como referencias pero no para hacer nuevas consultas.

narhaliga 04/11/2010 16:08

Respuesta: Tutorial: Cómo introducir código PHP en tu Joomla
 
olle yo tengo un rpoblema al trabajar con el jumi en mi servidor local de joomla si lo coge bien y en el servidor real no hace nada. me pregunto si tiene algo que ver un componente llamado cje que tambien tengo instalado???? agradeceria me pudieras ayudar


La zona horaria es GMT -6. Ahora son las 05:56.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.