Módulo de visualización en múltiples posiciones.


8

¿Es posible mostrar un módulo en múltiples posiciones, preferiblemente de forma nativa, o mediante una extensión de terceros?

Sé que hay soluciones alternativas ...

  • clone el módulo y cambie la posición, sin embargo, esto es agotador si el módulo contiene, por ejemplo, HTML personalizado y es probable que esto cambie con frecuencia.
  • usa la loadsintaxis para soltar el módulo donde quieras, pero aún así los módulos se crean simplemente para contener otros módulos

pero ambos crean un trabajo de mantenimiento adicional que preferiría renunciar.

Respuestas:


1

Puede usar módulos que no sean números en cualquier lugar.

http://www.nonumber.nl/extensions/modulesanywhere/userguide

A diferencia de la versión de carga que se encuentra en el núcleo, también se puede usar en un módulo y no solo en un artículo. Entonces podría hacer un segundo módulo html personalizado y luego llamar a la primera posición. Básicamente, esto le daría una copia de la posición, pero cualquier configuración que cambie en el primer módulo también se aplicará en el segundo "clon".


Saludos por echar un vistazo a @Jordan, pero puede hacerlo sin módulos en cualquier lugar; consulte docs.joomla.org/How_do_you_put_a_module_inside_an_article%3F (el módulo HTML personalizado acepta la loadsintaxis si configura Preparar contenido en 'Sí'), por lo que queda bajo mi Segunda solución alternativa.
codinghands

hmm, buena nota, mi experiencia ha sido que eso no funcionó, podría haber sido un error en la versión específica en la que lo probé. Realmente no lo he intentado desde entonces.
Jordan Ramstad

El problema con los módulos en cualquier lugar es que no almacena en caché (vea nuestra experiencia aquí: itoctopus.com/… ). Esto significa que para módulos pesados ​​siempre se volverán a crear de nuevo y no solo se tomarán del caché (incluso si existe un archivo de caché para ese archivo).
itoctopus

1

Sugiero crear un complemento simple y usar algo como esto para publicar el módulo en varias posiciones (usando un bucle):

$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
for ($x=0; $x<=5; $x++) {
     $position   = 'myPosition' . $x;
     echo $renderer->render($position, $options, null);
}
// Repeat for each module position, changing only $position

(No probado)

Veré si puedo armar algo más completo hoy más tarde.


1

En un nivel simple puedes probar esto:

Si va a ser un módulo único y ya ha definido dónde desea mostrarlo, puede crear una posición de módulo especial en su plantilla y hacer 2 o tantas llamadas como sea necesario para él, en las ubicaciones que desee en el modelo. Cargará los módulos de esa posición donde lo llame.

Si hay más módulos y para más posiciones desea aplicar esto, el enfoque anterior aún puede estar bien, a menos que necesite más control o apariencias complejas de los módulos, algo que podría requerir la creación "más inteligente" de posiciones de módulos y requiere Los módulos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.