Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Joomla »

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

Estas en el tema de Tutorial: Cómo introducir código PHP en tu Joomla en el foro de Joomla en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/10/2006, 22:17
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
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:



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:



Lo cambiaremos a esto:



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.
  #2 (permalink)  
Antiguo 27/10/2006, 14:30
 
Fecha de Ingreso: octubre-2005
Mensajes: 419
Antigüedad: 18 años, 5 meses
Puntos: 0
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!
__________________
GraficasWeb.com / Diseño y Desarrollo Web en Mexico
info @ graficasweb.com E-mail / MSN
  #3 (permalink)  
Antiguo 06/11/2006, 14:20
Avatar de elbar
Colaborador
 
Fecha de Ingreso: enero-2004
Ubicación: Buenos Aires
Mensajes: 1.406
Antigüedad: 20 años, 2 meses
Puntos: 8
Habia dejado un mensaje en Joomla, buscando justamente esto..


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..!
Archivos Adjuntos
Tipo de Archivo: zip _1[1].0.zip (3,2 KB (Kilobytes), 101 visitas)
  #4 (permalink)  
Antiguo 06/11/2006, 17:42
Avatar de elbar
Colaborador
 
Fecha de Ingreso: enero-2004
Ubicación: Buenos Aires
Mensajes: 1.406
Antigüedad: 20 años, 2 meses
Puntos: 8
Me quedo una duda...
El archivo miprueba.php va en la carpeta "modules" de joomla ?
  #5 (permalink)  
Antiguo 06/11/2006, 17:57
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
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.
  #6 (permalink)  
Antiguo 06/11/2006, 17:59
Avatar de elbar
Colaborador
 
Fecha de Ingreso: enero-2004
Ubicación: Buenos Aires
Mensajes: 1.406
Antigüedad: 20 años, 2 meses
Puntos: 8
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..!

Última edición por elbar; 06/11/2006 a las 18:07
  #7 (permalink)  
Antiguo 07/11/2006, 12:04
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Cita:
Iniciado por elbar Ver Mensaje
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?
  #8 (permalink)  
Antiguo 07/11/2006, 13:01
Avatar de elbar
Colaborador
 
Fecha de Ingreso: enero-2004
Ubicación: Buenos Aires
Mensajes: 1.406
Antigüedad: 20 años, 2 meses
Puntos: 8
Podria ser...
Al cambiar la config del smf, no hice a llamada al ssi, como se hace habitualmente y funciona perfecto...
  #9 (permalink)  
Antiguo 07/11/2006, 13:58
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
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.
  #10 (permalink)  
Antiguo 07/11/2006, 14:10
Avatar de elbar
Colaborador
 
Fecha de Ingreso: enero-2004
Ubicación: Buenos Aires
Mensajes: 1.406
Antigüedad: 20 años, 2 meses
Puntos: 8
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...
  #11 (permalink)  
Antiguo 07/11/2006, 14:17
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
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
  #12 (permalink)  
Antiguo 10/03/2008, 15:27
Avatar de LauRiTa-C  
Fecha de Ingreso: marzo-2008
Mensajes: 9
Antigüedad: 16 años, 1 mes
Puntos: 0
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

Última edición por LauRiTa-C; 11/03/2008 a las 05:40
  #13 (permalink)  
Antiguo 12/01/2010, 04:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
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
  #14 (permalink)  
Antiguo 12/01/2010, 06:32
Avatar de jdelrioj  
Fecha de Ingreso: julio-2008
Ubicación: La Rambla , Córdoba -> Andalucía
Mensajes: 340
Antigüedad: 15 años, 9 meses
Puntos: 13
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 !!!
  #15 (permalink)  
Antiguo 08/04/2010, 13:31
 
Fecha de Ingreso: marzo-2010
Ubicación: España
Mensajes: 21
Antigüedad: 14 años
Puntos: 1
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?
  #16 (permalink)  
Antiguo 09/04/2010, 11:38
Avatar de Larenz
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: Nicaragua
Mensajes: 1.398
Antigüedad: 17 años, 3 meses
Puntos: 55
Respuesta: Tutorial: Cómo introducir código PHP en tu Joomla

Cita:
Iniciado por wcorpos Ver Mensaje
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 Ver Mensaje
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 Ver Mensaje
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.
__________________
¡No lo sé todo! Pero comencé como tú, ¡sin saber nada!
Encuéntrame en Facebook: Perfil + Página
  #17 (permalink)  
Antiguo 04/11/2010, 16:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:22.