it-swarm-es.tech

Anular una vista de componente para un elemento de menú específico

¿Cómo puedo anular la vista de componentes para un elemento de menú específico?

Para una sobrescritura global, puedo usar template/html/com_xxx/.
Pero, ¿cómo puedo hacerlo solo para un elemento de menú específico?

Ejemplo:

Joomla! tiene una vista de blog para artículos.
¿Cómo puedo cambiar el marcado de esta vista para un elemento de menú específico y mantener el marcado predeterminado para los otros elementos de menú que se vinculan a la misma vista de Blog?

6
Fedik

Método 1:

Use la clase CSS para que funcione de la manera que usted describe.

  1. Agregue la clase al elemento del menú (en la pestaña de visualización de página, escríbala en el campo "Clase de página"). Ejemplo: "página especial" (observe el espacio antes de la clase de página, sin él lo agregará a la salida representada del componente). Recomiendo usar una clase que se pueda usar en más de una situación.
  2. En la anulación, debe hacer una secuencia de comandos del "filtro".

    if(strpos($this->pageclass_sfx, ' special-page') !== false) {
        $templateA = true;
    }
    
    if($templateA){
    (put your customized override here)
    }
    

Método 2:

¡Use una anulación de plantilla para la vista!

  1. En su carpeta HTML para las anulaciones, duplique la vista deseada (por ejemplo, la vista del artículo), debe cambiarle el nombre y tener el archivo .xml con los parámetros (cópielo de las vistas en el componente y asegúrese de que el .xml tiene el mismo nombre que la vista anulada!).

    ejemplo: Cree una vista anulada del artículo, llamémosla "especial", deberá copiar el default.php en su carpeta HTML en su plantilla (y colóquelo en la siguiente estructura de carpetas: com_content/article/ y cámbiele el nombre a special.php). No olvide el .xml (que necesita copiar e incluso adaptar si es necesario) a la misma carpeta que la anulación, y cámbiele el nombre a special.xml

    Actualice la vista con el código/estilo reemplazado, etc.

  2. Luego, vaya al elemento de menú y cámbielo al nuevo tipo de menú (en artículos, elija special), ¡pruébelo!
4
jackJoe

Solución general:

Para cada elemento del menú, puede elegir una plantilla para aplicar a la página vinculada, de modo que pueda duplicar su plantilla y crear su anulación de vista en la plantilla duplicada.

Luego puede elegir la plantilla duplicada en los parámetros de su elemento de menú y la anulación solo será efectiva para ese elemento de menú.

Con K2:

Para su ejemplo, podría usar K2. Con él, puede crear varias modificaciones de vista con diferentes nombres.

Las anulaciones se ven así:

template_name/html/com_k2/override_1
                         /override_2
                         /...

Luego, cuando elige un elemento K2 en los parámetros de su menú, puede elegir la anulación para aplicarlo en esa página específica. Esto evita crear varias plantillas.

3
web-tiki