Duda override
Moderator: hefesto
-
- Joomla! Enthusiast
- Posts: 103
- Joined: Tue Jul 27, 2010 5:13 pm
Duda override
Hola,
Me encuentro con una duda al respeto del override y presentación alternativa.
En una web hay dos categorias creadas (categoria1 y categoria2).
Para cada una de las categorias es requerido un tipo de visualización distinta, esto se puede realizar con override y las presentaciones alternativas, hasta aquí todo bien.
La duda está en que para mostrarlo, el usuario tiene que especificarlo en cada articulo, es decir la pestaña opciones tiene que seleccionar que presentación quiere que se vea, mi pregunta és: ¿Es posible configurar esto de forma automatica, mediante la categoria, sin que el usuario tenga que especificarlo en cada articulo ? (definir en la categoria la vista para los articulos en formato blog y la vista para cada uno de los articulos)
Muchas gracias.
Me encuentro con una duda al respeto del override y presentación alternativa.
En una web hay dos categorias creadas (categoria1 y categoria2).
Para cada una de las categorias es requerido un tipo de visualización distinta, esto se puede realizar con override y las presentaciones alternativas, hasta aquí todo bien.
La duda está en que para mostrarlo, el usuario tiene que especificarlo en cada articulo, es decir la pestaña opciones tiene que seleccionar que presentación quiere que se vea, mi pregunta és: ¿Es posible configurar esto de forma automatica, mediante la categoria, sin que el usuario tenga que especificarlo en cada articulo ? (definir en la categoria la vista para los articulos en formato blog y la vista para cada uno de los articulos)
Muchas gracias.
- willin
- Joomla! Enthusiast
- Posts: 125
- Joined: Wed Jul 09, 2008 9:14 am
- Location: Iquique@Chile
- Contact:
Re: Duda override
Hola Jordi!
Una posible solución sería agregar a la opción de edición del artículo desde el frontend el parámetro para elegir el layout del artículo. Desconozco si a través de una nueva pestaña o dentro de las pestañas ya existentes, pro como te señalo, es una de las alternativas que se me ocurren frente a lo que nos comentas.
Una posible solución sería agregar a la opción de edición del artículo desde el frontend el parámetro para elegir el layout del artículo. Desconozco si a través de una nueva pestaña o dentro de las pestañas ya existentes, pro como te señalo, es una de las alternativas que se me ocurren frente a lo que nos comentas.
Guillermo Bravo O.
-
- Joomla! Enthusiast
- Posts: 103
- Joined: Tue Jul 27, 2010 5:13 pm
Re: Duda override
Dandole vueltas al tema, se me ocurre también hacer lo siguiente:
Dentro del override (template/html/com_content/article/default.php), poner lo siguiente:
Y después del else dejar todo lo que está puesto en el archivo default.php, así si detecta que estamos en la categoria en cuestión muestra la vista segun el archivo especificado sinó muestra el por defecto, a esto creo que también se le podria ir añadiendo mas condicionales con las diferentes categorias que se deseara ..
No sé si esta forma és la correcta o no .. A ver si algún programador me puede asesorar si está bien hecho o no.
Saludos !
Dentro del override (template/html/com_content/article/default.php), poner lo siguiente:
Code: Select all
$categoria_especial = 9; // La ID de la categria deseada
if($this->item->catid == $categoria_especial){
include "nuevo_archivo.php";
}else{
No sé si esta forma és la correcta o no .. A ver si algún programador me puede asesorar si está bien hecho o no.
Saludos !
- phproberto
- Joomla! Apprentice
- Posts: 26
- Joined: Sat Apr 21, 2012 11:06 pm
- Location: Valencia (Spain)
- Contact:
Re: Duda override
Hola Jordi,
creo que vas en la buena dirección pero en vez de intentar aplicar los ids a pelo puedes hacer layouts dependientes del layout de la categoría. Algo como:
De esta forma para una categoría del tipo blog el sistema buscaría una vista de artículo de tipo blog y así para cualquier otro layout que crees para las categorías.
No lo he probado
creo que vas en la buena dirección pero en vez de intentar aplicar los ids a pelo puedes hacer layouts dependientes del layout de la categoría. Algo como:
Code: Select all
$categoryLayout = $params->get('category_layout', '_:default');
$articleLayout = str_replace('_:', '', $categoryLayout);
$layoutPath = __DIR__ . '/' . $articleLayout . '.php';
if ($categoryLayout != '_:default' && file_exists($layoutPath))
{
$this->item->params->set('article_layout', '_:' . $articleLayout);
include $layoutPath;
return;
}
No lo he probado
-
- Joomla! Enthusiast
- Posts: 103
- Joined: Tue Jul 27, 2010 5:13 pm
Re: Duda override
Gracias por la respuesta Roberto !
Este codigo lo pondria al igual que he puesto el mio, en el default.php ?
Este codigo lo pondria al igual que he puesto el mio, en el default.php ?
- phproberto
- Joomla! Apprentice
- Posts: 26
- Joined: Sat Apr 21, 2012 11:06 pm
- Location: Valencia (Spain)
- Contact:
Re: Duda override
Sí, lo ideal sería hacerlo antes de que la página haga nada. Después de:
Como no tendrás acceso al shorcut $params tendría que ser algo así (solo he cambiado $params por $this->item->params ):
De esta forma default.php se convierte en un proxy para cualquier layout además de ser el layout por defecto.
Code: Select all
defined('_JEXEC') or die;
Code: Select all
$categoryLayout = $this->item->params->get('category_layout', '_:default');
$articleLayout = str_replace('_:', '', $categoryLayout);
$layoutPath = __DIR__ . '/' . $articleLayout . '.php';
if ($categoryLayout != '_:default' && file_exists($layoutPath))
{
$this->item->params->set('article_layout', '_:' . $articleLayout);
include $layoutPath;
return;
}
-
- Joomla! Enthusiast
- Posts: 103
- Joined: Tue Jul 27, 2010 5:13 pm
Re: Duda override
Hola Roberto,
Por lo que entiendo, esto sirve para el override de los articulos. Poniendo el codigo que me comentas en el default.php de "template/html/com_content/article" tengo un layout por defecto y luego cada archivo que añada aquí en esta carpeta (ej: "nombre.php") es un nuevo layout que lo puedo selecciono en el backend en las opciones de las categorias.
¿ És correcto ? ¿ Lo he interpretado bien ?
Saludos !
Por lo que entiendo, esto sirve para el override de los articulos. Poniendo el codigo que me comentas en el default.php de "template/html/com_content/article" tengo un layout por defecto y luego cada archivo que añada aquí en esta carpeta (ej: "nombre.php") es un nuevo layout que lo puedo selecciono en el backend en las opciones de las categorias.
¿ És correcto ? ¿ Lo he interpretado bien ?
Saludos !
-
- Joomla! Apprentice
- Posts: 35
- Joined: Sun Sep 02, 2012 3:44 pm
- Location: Argentina
Re: Duda override
hola vieri78
me parece que el codigo de roberto lo que hace es buscar un layout partiendo del nombre que se seleccione en los parametros de la categoria. Por ejemplo si seleccionas el layout llamado categoria1 pues el código intentará cargar un layout llamado categoria1.php en caso de no encontralo buscará default.php
espero te sirva...
me parece que el codigo de roberto lo que hace es buscar un layout partiendo del nombre que se seleccione en los parametros de la categoria. Por ejemplo si seleccionas el layout llamado categoria1 pues el código intentará cargar un layout llamado categoria1.php en caso de no encontralo buscará default.php
espero te sirva...