Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2006, 22:17
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 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.