Ver versión completa : Dudas sobre estructura de módulos
metacortex
16-03-2006, 06:11 AM
Desde hace un par de semanas me he concentrado en comprender la forma en la cual van situados los distintos módulos en Joomla, específicamente en la página principal. He revisado algunos buenos tutoriales como éste de Proyecto Hispano (http://www.proyectohispano.org/content/view/125/28/) y otros más en los sitios de Joomla en español y sus foros de discusión.
Tengo instalado el Joomla Premium 1.0.8 en español, desarrollado por ustedes. (No me extenderé en el gran alivio que causa ver todo el entorno Joomla en nuestro idioma, razón por la cual la comunidad de webmasters les agradece infinitamente su gran esfuerzo).
Hay un mecanismo dentro de la aplicación que no logro entender y consiste en colocar los módulos de tal manera que cada artículo tenga su justo lugar y luego se muestre en forma de link al ser sustituido por uno nuevo. Hice una gráfica de la estructura planeada para explicar mejor todo lo mencionado:
http://img159.imageshack.us/img159/5816/diag10pt.png
La cuestión es la siguiente: En la parte izquierda hay un artículo relevante con una fotografía grande; éste corresponde al módulo Portada. La parte derecha llevará 2 o 3 artículos principales que serían las Noticias y tendrían unas imágenes más pequeñas.
Abajo a la derecha se puede ver un conjunto de enlaces, que son los artículos que van siendo reemplazados, tanto de Portada como de Noticias. De esta manera los artículos fluyen sin problemas a través de la principal.
Ahora bien, he estado buscando algún tutorial que explique mejor el procedimiento para hacer cosas como ésta. Quizás existe en algún lado pero no he podido dar con él. Decidí abrir el tema para solicitar algún link que pudiese responder a lo mencionado, así como para ir expresando las dudas que se vayan presentando en el proceso, y al final poder dar una explicación detallada de cómo lo hice. Cualquier recomendación al respecto será muy bienvenida y aprovechada.
Saludos.
gustavo
21-03-2006, 01:28 PM
Hola metacortex,
LLegado un punto es necesario meter mano en el codigo de joomla para lograr el efecto deseado.
Caso de ejemplo: Necesitaba lograr un efecto tipo diarios onlines ej:CNN ..
http://www.bahianoticias.com/images/cnn.jpg
Lamentablemente no podia lograrlo con los modulos disponibles de joomla por ende tube que programar un modulo que me permitiria realizar una consulta determinada a la base de datos y mostrar los datos deseados.
http://www.bahianoticias.com/images//hack_bahianoticias.jpg
Fragmento del codigo:
<?php
// MODULO QUE NOS PERMITIRA MOSTAR Y CONFIGURAR SECCIONES ESPECIFICAS
// PROGRAMADO POR GUSTAVO RAUL ARAGON
// FALTA: CONFIGURACION TOTAL DESDE XML
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$query = "SELECT id, title, created"
."\n FROM #__content "
."\n WHERE sectionid=1"
."\n ORDER BY created DESC LIMIT 10"
;
$database->setQuery( $query );
$rows = $database->loadObjectList();
?>
<?php
foreach ($rows as $row) {
$link = 'index.php?option=com_content&task=view&id='. $row->id
?>
<img src="http://127.0.0.1/xampp/gustavoaragon/images/M_images/arrow.png" /> <?php echo htmlspecialchars($row->created);?> <img src="http://127.0.0.1/xampp/gustavoaragon/images/M_images/indent1.png" /> <a href="<?php echo $link; ?>"">
<?php echo htmlspecialchars($row->title);?></a><br />
<?php
}
?>
Espero que mi caso te pueda servir de guia y ejemplo.. ;)
**Nota: el modulo todabia esta en etapa de programacion cuando este terminado y testeado sera liberado.
Saludos y Buen Día
Gustavo Raúl Aragón
metacortex
06-04-2006, 07:12 PM
Gracias por tu respuesta Gustavo, y disculpa la tardanza en esta réplica. He estado intentando algunas peripecias tanto con el index del template como con los módulos. A estas alturas mi objetivo es un poco más modesto dada la dificultad por mi parte en hacer modificaciones tan profundas a Joomla. Lo que he buscado es colocar un módulo con las características y posición de la parte izquierda superior del diagrama que hice más arriba (La que tiene la flecha grande). Ciertamente logré hacer un espacio para ello, pero lo que no logro entender es cómo asociar ese módulo a determinada sección, a fin de que todos los artículos nuevos asignados exclusivamente a la misma salgan publicados en esa zona y con esas características (Título grande, foto y texto introductorio).
Tengo la sospecha de que se requiere instalar un nuevo módulo, pero todo lo que haga en este momento van a ser tiros al aire. He buscado información que responda a este caso específico y hasta el momento no he podido dar con la misma. De todas formas sigo en la búsqueda; si existe alguna info al respecto la agradecería sumamente, y si encuentro la solución la postearé por acá apenas compruebe su efectividad.
Saludos.
pumarfa
10-04-2006, 06:10 PM
Bien. Espero no entrometerme, y que mi respuesta no sea totalmente en vano.
En el último mensaje, se hace referencia a como ligar una sección a la "Portada" del sitio en cuestión.
Bien, en realidad Joomla trabaja completamente a la inversa.
Al manejar los articulos, cualquiera que sea, en la sección que sea, tienes la posibilidad de decirle al sistema que lo publique en la portada del sitio.
En tanto que lo que intentas hacer, según el esquema que veo aquí, no es tan complejo como se espera.
Basicamente hay varios template que manejan la información de esta forma.
Como guia, te puedo decir, que busques e instales la mayor cantidad de templates que te parezcan interesantes, luego explora y compara los archivos "index.php" de cada template (compara también lo que ves en tu navegador cuando ves la página de portada de tu sitio) para saber que funciones o módulos generan que tipo de información. Es un ejercicio largo pero muy educativo.
Espero mi mensaje no moleste....
metacortex
25-04-2006, 07:12 PM
Bien. Espero no entrometerme, y que mi respuesta no sea totalmente en vano.
En el último mensaje, se hace referencia a como ligar una sección a la "Portada" del sitio en cuestión.
Bien, en realidad Joomla trabaja completamente a la inversa.
Al manejar los articulos, cualquiera que sea, en la sección que sea, tienes la posibilidad de decirle al sistema que lo publique en la portada del sitio.
En tanto que lo que intentas hacer, según el esquema que veo aquí, no es tan complejo como se espera.
Basicamente hay varios template que manejan la información de esta forma.
Como guia, te puedo decir, que busques e instales la mayor cantidad de templates que te parezcan interesantes, luego explora y compara los archivos "index.php" de cada template (compara también lo que ves en tu navegador cuando ves la página de portada de tu sitio) para saber que funciones o módulos generan que tipo de información. Es un ejercicio largo pero muy educativo.
Espero mi mensaje no moleste....Hola Pumarfa gracias por contestar. En lo absoluto molesta tu mensaje, más bien los aportes son necesarios. No obstante, lamento decirte que esa no es la solución.
___________________
Bueno a estas alturas creo que estoy logrando algo sólido mediante la modificación del index, los módulos, menús y CSS. Si esto da resultado postearé una descripción detallada de cómo lo hice.
Saludos.
metacortex
30-04-2006, 10:39 AM
Aquí voy de nuevo. Para lograr la estructura que quiero he estado haciendo unas pruebas, sobre todo guiándome por el código que dejó Gustavo. No lo tengo muy claro, pero el asunto podría ir así:
Para lograr la primera consulta (Artículo principal) sería algo como:
SELECT `title`, `introtext` FROM `jos_content` WHERE id= 'LIMIT 0, 1'
Eso me daría el primer artículo. Luego está el segundo que vendría siendo algo así:
SELECT `title`, `introtext` FROM `jos_content` WHERE id= 'LIMIT 1, 2'
Con eso pasaría a la otra columna al ser reemplazado. Finalmente coloco esto para el 3er artículo:
SELECT `title`, `introtext` FROM `jos_content` WHERE id= 'LIMIT 2, 3'
Y los demás links irían con esto:
SELECT `id`, `title` FROM `jos_content` WHERE id= 'LIMIT 3, 15'
Es probable que sea una burrada pero de no ser así, aún no tengo la menor idea de cómo introducirlos, sin embargo desearía saber si voy por buen camino. Claro, con eso me olvido de la foto grande en el primer artículo; de todas formas la maquetación ha cambiado desde que comencé este tema y las fotos de igual tamaño me resultan mejor.
Saludos.
metacortex
01-05-2006, 04:09 AM
Aquí vengo de nuevo con mi fastidio :D . La intención es hacer una maquetación parecida a ésta:
http://img67.imageshack.us/img67/1902/tit7oy.png
Hice este remedo parcial de código basándome en el que suministró Gustavo y también observando algunos módulos de ejemplo:
// Primer artículo:
<div class="texto_1<?php echo $moduleclass_sfx; ?>">
<?php
foreach ( $rows as $row ) {
$query = "SELECT title, introtext"
. "\n FROM #__content"
. "\n WHERE id = 'LIMIT 0, 1'"
. "\n AND componentid = $row->id"
;
$database->setQuery( $query );
$Itemid = $database->loadResult();
?>
</div>
<div class="texto_2<?php echo $moduleclass_sfx; ?>">
// 2do Artículo
<td>
<?php
foreach ( $rows as $row ) {
$query = "SELECT title, introtext"
. "\n FROM #__content"
. "\n WHERE id = 'LIMIT 1, 2'"
. "\n AND componentid = $row->id"
;
$database->setQuery( $query );
$Itemid = $database->loadResult();
?>
</td>
// 3er Artículo
<td>
<?php
foreach ( $rows as $row ) {
$query = "SELECT title, introtext"
. "\n FROM #__content"
. "\n WHERE id = 'LIMIT 2, 3'"
. "\n AND componentid = $row->id"
;
$database->setQuery( $query );
$Itemid = $database->loadResult();
?>
</td>
// 4to Artículo
<td>
<?php
foreach ( $rows as $row ) {
$query = "SELECT title, introtext"
. "\n FROM #__content"
. "\n WHERE id = 'LIMIT 3, 4'"
. "\n AND componentid = $row->id"
;
$database->setQuery( $query );
$Itemid = $database->loadResult();
?>
</td>
</div>
// Los links.
<div class="enlaces<?php echo $moduleclass_sfx; ?>">
<?php
foreach ( $rows as $row ) {
$query = "SELECT a.id, a.title"
. "\n FROM #__content"
. "\n WHERE id = 'LIMIT 4, 15'"
. "\n AND componentid = $row->id"
;
$database->setQuery( $query );
$Itemid = $database->loadResult();
?>
</div>
<?php
}
?>
Esa sección de "Archivos" la coloqué en la imagen pero no en el código. Aún no he probado nada pero esta semana puede que haga algo sólido. Si alguien se inspira pase adelante.
Saludos.
daperos
08-09-2006, 08:39 PM
Mirando la maquetación, yo realicé algo similar en un sitio que estoy montando. la solución que encontré fué la siguiente:
(Pido disculpas si la informacion no se presenta clara, pero no se manejar bien el sistema de edicion del foro)
Utilicé el mismo código que trae la plantilla de joomlaspanish para mostrar sus contenidos del mainBody:
-------------------
<!-- inicia muestras-->
<?php if(mosCountModules('user7') || mosCountModules('user8')) { ?>
<table class="nopad user1user2">
<tr valign="top">
<?php if(mosCountModules('user8')) { ?>
<td width="50%">
<div align="center">
<?php mosLoadModules('user8', -2); ?>
</div></td>
<?php } ?>
<?php if(mosCountModules('user8') && mosCountModules('user7')) { ?>
<td class="greyline"> </td>
<?php } ?>
<?php if(mosCountModules('user7')) { ?>
<td width="50%">
<div align="center">
<?php mosLoadModules('user7', -7); ?>
</div></td>
<?php } ?>
</tr>
</table>
<div id="maindivider"></div>
<?php } ?>
<!-- termina muestras-->
<table height="100%" align="left" class="nopad">
<tr valign="top">
<td><div align="justify">
<?php mosMainBody(); ?>
</div></td>
<?php if(mosCountModules('right')) { ?>
<td class="greyline"> </td>
<td width="170"><div align="justify">
<?php mosLoadModules('right', -2); ?>
</div></td>
<?php } ?>
</tr>
---------------------------
que lo que hace es preguntar si user 8 y nueve existen y si si divide la pagina, y luego si existe algo en la posición Righ.
Lo que hice, fue colocar los modulos que quiero en cada posición y a cada uno en la zona de modulos les definia el estilo css que quiero que muestren.
entonces, para la diagramación que presentas pondría:
1. Articulo en MainBody
2. el modulo mod_newsflash, el cual se deja configurar el numero de archivos que quiero que se muestren (es su caso 3) y la forma de visualizarlos (Horizontal o vertical) para que el mismo modulo se encargue de generar las columnas.
3. coloco el modulo correspondiente en cada posición: por ejemplo el mod_latestnews para el listado de link, y nuevamente un modulo mod_newsflash, pero con la disposición contraria y un estilo css diferente para el lado derecho.
no se si sea claro, pero más o menos esta es la idea.
http://www.elhemisferio.com/personal/carga.jpg
vBulletin® v3.6.8, Copyright ©2000-2010, Jelsoft Enterprises Ltd.