Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Pages: 1
[es-es] Listado de artículos
Hola a todos.
Me gustaría preguntaros como resolveríais esto en Textpattern: se trata de hacer un listado de artículos (por ejemplo, de cine) ordenados por categorías (en el ejemplo, cine bélico, etc…) y por otro custom_field (siguiendo con el ejemplo, director de la película). ¿Qué tendría que hacer para listar los resultados en una tabla? Vamos, algo así, teniendo en cuenta que cada director sólo puede tener un artículo en cada género:
| Director | Cine bélico | Cine romántico | Cine de autor |
|---|---|---|---|
| Clint Eastwood | Cartas desde Iwo Jima | Los puentes de Madison | Los bingueros |
A mí se ocurrió la chapuza de considerar al director como el autor del artículo… ¿Se os ocurre algo más decente?
Offline
Re: [es-es] Listado de artículos
Bueno, se me ocurrió que también podría crear dos campos personalizados (autor y categoría) y listarlo luego así:
<table><tr>
<td><txp:custom_field name="director" /></td>
<td>
<txp:if_custom_field name="categoria" val="belico">
<txp:permlink><txp:title /></txp:permlink>
</txp:if_custom_field>
</td>
<td>
<td>
<txp:if_custom_field name="categoria" val="romantico">
<txp:permlink><txp:title /></txp:permlink>
</txp:if_custom_field>
</td>
<td>
<td>
<txp:if_custom_field name="categoria" val="cineautor">
<txp:permlink><txp:title /></txp:permlink>
</txp:if_custom_field>
</td>
<td>
</tr></table>
Bueno, funciona; no sé si es demasiado elegante, pero vale.
Offline
#3 2007-03-01 21:03:25
- milosevic
- Member

- From: Madrid, Spain
- Registered: 2005-09-19
- Posts: 390
Re: [es-es] Listado de artículos
Pues si así te funciona no seré yo quién te diga que no lo montes así. Yo lo habría montado muy parecido, algo así:
<table>
<tr>
<th>Director</th><th>Cine bélico</th><th>Cine romántico</th><th>Cine de autor</th>
</tr>
<txp:article_custom sort=“director asc” form=“generos” />
</table>
<tr>
<td><txp:if_different><txp:custom_field name=“director” /><txp:if_different></td>
<td><txp:if_custom_field name=“categoria” val=“belico”><txp:permlink><txp:title /></txp:permlink> </txp:if_custom_field></td>
<td><txp:if_custom_field name=“categoria” val=“romantico”> <txp:permlink><txp:title /></txp:permlink></txp:if_custom_field></td>
<td><txp:if_custom_field name=“categoria” val=“cineautor”> <txp:permlink><txp:title /></txp:permlink></txp:if_custom_field></td>
</tr>
Jugando a maquetar un poco, también podrías hacer que cuando salga el nombre del director ocupe toda la fila y meterle una gracieta gráfica para darle ritmo a la lista:
“generos” opción2:
<txp:if_different>
<tr>
<th colspan=“4” style=“text-align:left; border-bottom:2px solid black;”><txp:custom_field name=“director” /></th>
</tr>
<txp:if_different>
<tr>
<td><!—aquí ya no sale nunca el director—></td>
<td><txp:if_custom_field name=“categoria” val=“belico”><txp:permlink><txp:title /></txp:permlink> </txp:if_custom_field></td>
<td><txp:if_custom_field name=“categoria” val=“romantico”> <txp:permlink><txp:title /></txp:permlink></txp:if_custom_field></td>
<td><txp:if_custom_field name=“categoria” val=“cineautor”> <txp:permlink><txp:title /></txp:permlink></txp:if_custom_field></td>
</tr>
(No me tomes el código al pide de la letra que no lo he podido probar)
Ahora bien, la jugada de qué cosa debería ser un custom_field y qué otra ser una categoría, deberías verla tú mismo que sabes de qué va el web y que otras cosas tiene, cómo se va a navegar, etc. esas decisiones son más “estratégico” que “técnicas”.
Last edited by milosevic (2007-03-01 21:14:37)
<txp:rocks/>
Offline
Re: [es-es] Listado de artículos
Jorge, muchas gracias por la ayuda; no conocía la etiqueta txp:if_different y me parece muy útil.
Sobre lo de usar categoría o campo personalizado, había optado por los campos personalizados por ignorancia: no conocía txp:if_article_category. Lo había intentado con txp:if_category y no funcionaba, lógicamente; por eso había optado por crear campos personalizados y usar txp:if_custom_field.
Lo único que tendría que conseguir ahora —aunque no veo cómo— es que los resultados de las distintas entradas de un «director» (en el ejemplo) se mostrasen en una sola fila. ¿Crees que se podría conseguir con txp:if_different?
Gracias por la ayuda otra vez y un saludo.
Offline
#5 2007-03-02 20:56:05
- milosevic
- Member

- From: Madrid, Spain
- Registered: 2005-09-19
- Posts: 390
Re: [es-es] Listado de artículos
“…que los resultados de las distintas entradas de un «director» (en el ejemplo) se mostrasen en una sola fila”
No termino de entender lo que quieres hacer ¿podrías “pintarlo” para hacerme una idea mejor?
<txp:rocks/>
Offline
Re: [es-es] Listado de artículos
Me refería a algo así:
| Director | Cine bélico | Cine romántico | Cine de aventuras |
|---|---|---|---|
| Clint Easwood | x | nada | x |
| Woody Allen | x | x | nada |
Donde la x sería un enlace al artículo; escribí «nada» porque no soy capaz de dejar una celda en blanco con textile :(
O sea, más que un listado de artículos ordenados por director y categoría, debería ser un listado de directores en el que se muestran las películas realizadas en cada categoría. No sé si me explico bien.
Last edited by juanjo (2007-03-03 15:31:30)
Offline
#7 2007-03-04 23:45:42
- milosevic
- Member

- From: Madrid, Spain
- Registered: 2005-09-19
- Posts: 390
Re: [es-es] Listado de artículos
Pues sí que se puede hacer, pero se complica la cosa muchísimo. Tendrías que hacer un listado ordenando por la categoría1-directores por la categoría2-géneros, controlando con if_different los cambios de director y género para ir cerrando y abriendo celdas y filas:
<table>
<tr>
<td>Director</td><td>Cine bélico</td><td>Cine romántico</td><td>Cine de autor
<txp:article_custom sort=“category1 category2 asc” form=“pelis” />
</tr>
</table>
(Esto te ordenará por directores y, dentro de cada director, por genero.)
en el formulario “pelis” tienes que detectar el cambio de director y de género para ir cerrando/abriendo celdas y filas:
<txp:if_different> <<<< si cambio de categoría1-director cierro celda, ciero fila, pinto fila nombre director, y abro fila nueva + celda para el género.
</td></tr><tr><th colspan=4”><txp:category1/></th></tr><tr><td>
</txp:if_different>
<txp:if_different>
<!—<txp:category2 />—> <<<< si cambio de categoría2-género (comentada para que no la pinte) cierro la celda (columna) donde esté, abro la siguiente y pinto peli y salto de línea.
</td><td>
<txp:permalink><txp:title></txp:permlink><br/>
<txp:else> <<<< si no cambio de género, pinto la peli y salto de linea.
<txp:permalink><txp:title></txp:permlink><br/>
</txp:if_different>
Creo que así (o parecido que no lo he probado) funcionaría.
<txp:rocks/>
Offline
Re: [es-es] Listado de artículos
Buf, qué locura: he estado dándole vueltas y no lo consigo… Bien. El código que estoy utilizando es éste, teniendo en cuenta que director está categorizado como category1 y los géneros como category2:
En la página:
<table cellspacing="0">
<thead>
<tr>
<th>Director</th>
<th>Cine bélico</th>
<th>Cine de aventuras</th>
<th>Comedias</th>
</tr>
</thead>
<tbody><txp:article_custom sort="Category1,Category2 asc" form="películas" /></tbody></table>
Y en el formulario «películas»
<txp:if_different>
<tr><td><txp:category1 /></td>
</txp:if_different>
<txp:if_different>
<!--<txp:category2 />-->
<td><txp:permlink><txp:title /></txp:permlink></td>
<txp:else />
<td></td></tr>
</txp:if_different>
Lo que yo entiendo que dice este código es que escriba la categoría1 (el director) en la misma celda mientras la crítica de la película sea del mismo director y que a continuación escriba la categoría2 (género cinematográfico); y que, en caso contrario, pinte una celda vacía: pero, claro, el problema es que el else nunca se da, porque siempre cada película estará listada en alguna de las categorías2, con lo que no puede escribir la celda necesaria: así la fila de un director del que se haya escrito críticas sobre películas suyas en las tres categorías aparece correctamente, pero si sólo hay una crítica de una película en una categoría, sólo muestra esa celda, y no las otras dos vacías, no se si me explico bien, (o si estoy diciendo una estupidez).
Bueno, de todas formas, no sé si utilizaré esto alguna vez, pero la ocurrencia me ha hecho descubrir txp:if_different, con lo que ya me doy por satisfecho.
Offline
#9 2007-03-06 15:43:42
- milosevic
- Member

- From: Madrid, Spain
- Registered: 2005-09-19
- Posts: 390
Re: [es-es] Listado de artículos
Nos estamos comiendo la cabeza con esto y seguro que algún “gafotas” se ha currado un plugin para estas cosas ¿lo ha mirado?
<txp:rocks/>
Offline
Re: [es-es] Listado de artículos
Tienes razón, voy a echar un vistazo y si encuentro algo, lo coloco por aquí.
Offline
Pages: 1