Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2010-11-20 04:00:29

gfdesign
Member
From: Argentina
Registered: 2009-04-20
Posts: 401

[es-es] Listado de artículos agrupados por categorias

Esto lo pregunté pero en un post anterior, pero para los enlace. Ahora quiero hacer lo mismo pero listar los artículos de una determinada sección y que estos se agrupen por categoría.

Quisiera que el resultado fuese algo así:

<h2>Nombre de la Categoría 1 de artículos</h2>
<ul>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
</ul>

<h2>Nombre de la Categoría 2 de artículos</h2>
<ul>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
</ul>

<h2>Nombre de la Categoría 3 de artículos</h2>
<ul>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
<li><a href="#">Nombre del articulo</a></li>
</ul>

Saludos y gracias

Offline

#2 2010-11-20 18:21:16

juanjonavarro
Plugin Author
From: Valencia, Spain
Registered: 2005-05-16
Posts: 485
Website

Re: [es-es] Listado de artículos agrupados por categorias

Hola, el problema de lo que quieres hacer es que un artículo puede tener más de una categoría. ¿Qué ocurre si un artículo está listado en más de una categoría? ¿Debe aparecer en dos listados?

En cualquier caso, la base de esto es utilizar el article_custom, que te permite especificar todo esto. Ejemplo:

<txp:article_custom section="nombre_seccion" category="nombre_categoria" limit="99999"/>

Se trataría de que pusieses varios tags de este tipo, uno por categoría.

Un saludo.

Offline

#3 2010-11-20 21:55:04

gfdesign
Member
From: Argentina
Registered: 2009-04-20
Posts: 401

Re: [es-es] Listado de artículos agrupados por categorias

Gracias Juanjo por responder. Tu solución es válida si hablamos de categorias que conocemos de antemano.
El problema es que no sé cuantas categorías va a haber, ni cuales serán los nombres. Simplemente necesitaría listar los artículos de una determinada sección y que estos se agrupen por las categorías que tienen asignadas.

…el problema de lo que quieres hacer es que un artículo puede tener más de una categoría…
(sólo quiero utilizar la categoría 1)

Saludos y gracias.

Offline

#4 2010-11-20 22:17:20

juanjonavarro
Plugin Author
From: Valencia, Spain
Registered: 2005-05-16
Posts: 485
Website

Re: [es-es] Listado de artículos agrupados por categorias

Pues entonces lo que deberías hacer es algo como:

<txp:article_custom section="nombre_seccion" sort="Category1" limit="99999"/>

Esto te muestra todos los artículos de la sección, ordenados por categoría. Luego, dentro del form, puedes jugar con el txp:if_different para mostrar un encabezado con cada categoría.

Un saludo.

Offline

#5 2010-11-20 22:27:48

maniqui
Member
From: Buenos Aires, Argentina
Registered: 2004-10-10
Posts: 3,070
Website

Re: [es-es] Listado de artículos agrupados por categorias

Hola gfdesign,

Se me ocurren 2 maneras.
Te dejo lo básico de ambas para que empieces a jugar:

Método 1:

<txp:article_custom section="nombre_seccion" category='<txp:category_list break="," />' limit="99999" />

<txp:category_list /> va a listar dinámicamente las categorías, y separalas con una coma (catA, catB, catC, etc) sin necesidad de conocerlas de antemano.
Sin embargo, a priori, con este método, te va a resultar difícil llegar al markup que estás buscando, básicamente porque estás iterando por artículos…

Método 2:

<txp:category_list>
  <h2><txp:category title="1" /></h2>
  <txp:article_custom section="nombre_seccion" category='<txp:category />' limit="99999" wraptag="ul" break="li">
  <a href="<txp:permalink />"><txp:title /></a>
  </txp:article_custom>
</txp:category_list>

Acá hacemos algo parecido. Iteramos sobre la lista de categorías, y luego “rellenamos” el atributo category, con la categoría de la iteración actual.
Este puede llegar a ser un poco más intenso en cuanto al uso de recursos, porque llama a article_custom varias veces (una por cada categoría), pero seguramente te va a permitir el markup que estás buscando.
Si querés más control sobre el markup de cada <li>, entocnes poné break="" y hardcodea el <li>.
Así:

<txp:article_custom section="nombre_seccion" category='<txp:category />' limit="99999" wraptag="ul" break="">
 <li class="blabla"><a href="<txp:permalink />"><txp:title /></a></li>
</txp:article_custom>

Divertido, no?


La música ideas portará y siempre continuará

TXP Builders – finely-crafted code, design and txp

Offline

#6 2010-11-20 22:33:10

maniqui
Member
From: Buenos Aires, Argentina
Registered: 2004-10-10
Posts: 3,070
Website

Re: [es-es] Listado de artículos agrupados por categorias

Ops, olvidé que los querías ordenado por categoría.
En el método 2 no hace falta, ya que <txp:category_list /> escupe las categorías por orden alfabético (sort="name asc", por defecto). Podés jugar con ese atributo si querés cambiar el orden.

En el método 1, ya lo dijo Juanjo en el mensaje anterior.
Igual, insisto que con el método 1 vas a tener dificultades en generar el markup necesario, incluso usando <txp:if_different>, como Juanjo sugiere.
El problema radica en que no va a ser fácil “wrappear” el listado de artículos en un <ul> al tiempo que dejás el <h2> por fuera de dicho listado.
Poder se puede, pero vas a tener que jugar con más condicionales, o seteando variables. También podés probar sumando algún plugin como chh_if_data o adi_wrap a la mezcla….


La música ideas portará y siempre continuará

TXP Builders – finely-crafted code, design and txp

Offline

#7 2010-11-20 22:45:22

gfdesign
Member
From: Argentina
Registered: 2009-04-20
Posts: 401

Re: [es-es] Listado de artículos agrupados por categorias

Muchísimas gracias gente.
En cuanto lo ponga en práctica vuelvo a poster si tuve el resultado.
(Esperenme unos días que estoy recien en la etapa de maquetado y no quería avanzar hasta saber si era posible resolverlo).
:-)

Offline

#8 2010-11-20 23:52:26

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

Re: [es-es] Listado de artículos agrupados por categorias

Una solución casi idéntica a la de Julián, la cual propuse por primera vez aquí:

<txp:category_list break="">
	<h2><txp:category title="1" /></h2>
	<txp:article_custom section="nombre de la sección" category='<txp:category />' limit="999" sort="Posted desc" wraptag="ul">

		<li<txp:if_article_id id='<txp:article limit="1" sort="Posted desc"><txp:article_id /></txp:article>'> class="actual"><txp:title /><txp:else />><a href='<txp:permlink />'><txp:title /></a></txp:if_article_id></li>

	</txp:article_custom>
</txp:category_list>

Las diferencias son:

  • break="" en category_list
  • sin break="" en article_custom
  • class="actual" en caso de que se trate de una navegación y el artículo seleccionado sea visible.

Aunque sort="Posted desc" es el valor por defecto, lo puse en caso que se pone otro valor. Éste debe coincidir con los valores del atributo en otros <txp:article_custom> o <txp:article> vinculados.

Last edited by GugUser (2010-11-20 23:53:10)

Offline

#9 2010-11-23 12:17:30

gfdesign
Member
From: Argentina
Registered: 2009-04-20
Posts: 401

Re: [es-es] Listado de artículos agrupados por categorias

Perfecto funciona! Pero tengo 2 problemas:
1. Me está trayendo categorias que utilizo para otras secciones. ¿Como puedo evitarlas?
2. ¿Hay alguna manera que no aparezcan las categorias que están vacias?
Gracias por las respuestas.

Offline

#10 2010-11-23 12:26:39

gfdesign
Member
From: Argentina
Registered: 2009-04-20
Posts: 401

Re: [es-es] Listado de artículos agrupados por categorias

Listo gente. Pude resolverlo con chh_if_data.
El código quedó así:

<txp:category_list break="">
<txp:chh_if_data>
<h4><txp:category title="1" /></h4>
<txp:article_custom section="nombre sección" category='<txp:category />' limit="999" sort="Posted desc" />
</txp:chh_if_data>
</txp:category_list>

Gracias a todos por las respuestas y disculpen las molestias ;)

Offline

#11 2010-11-23 13:10:53

maniqui
Member
From: Buenos Aires, Argentina
Registered: 2004-10-10
Posts: 3,070
Website

Re: [es-es] Listado de artículos agrupados por categorias

Testeaste con alguna categoría vacía (es decir, sin artículos asignados)?
Me parece que si tenés una categoría sin artículos (donde article_custom no te devuelve nada), igualmente se te va a renderear el título (<h4><txp:category title="1" /></h4>). Bueno, claro, estoy asumiendo que no querés el título si article_custom no devuelve nada…


La música ideas portará y siempre continuará

TXP Builders – finely-crafted code, design and txp

Offline

#12 2010-11-23 16:46:19

gfdesign
Member
From: Argentina
Registered: 2009-04-20
Posts: 401

Re: [es-es] Listado de artículos agrupados por categorias

Si, probé y funciona perfecto.
Lo que sí, es que no devuelve artículos sin una categoría asigndada. Pero por un lado mejor, asi el cliente le tiene que asignar si o si una categoría para que lo visualice en el front.

Offline

Board footer

Powered by FluxBB