Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Pages: 1
#1 2009-04-28 18:29:19
- gfdesign
- Member
- From: Argentina
- Registered: 2009-04-20
- Posts: 401
[es-es] Pasar variable a un bloque
Basicamente la idea es la siguiente:
Quisiera diseñar una seccion en la cual se listen los articulos y una vez seleccionado uno, cargue el articulo invididual pero con un video asociado a ese articulo.
El codigo del bloque que reproduciría el video es el siguiente:
<div id="player"></div>
<script type="text/javascript">
var so = new SWFObject('player.swf','','264','177','8');
so.addVariable("file", "video.flv"); <!-- este es el valor que quisiera pasarle al bloque, un archivo asociado al articulo que estoy mostrando -->
so.write('player');
</script>
En la página que muestra el articulo lo llamaría así:
<txp:output_form form="video" />
pero no conozco manera de indicarle el archivo asociado.
Es posible hacer esto con TxP ?
Saludos y gracias
Offline
Re: [es-es] Pasar variable a un bloque
gfdesign wrote:
Es posible hacer esto con TxP ?
Es posible hacer esto y mucho más ;)
Una forma de hacerlo (ya que hay varias, y todas tienen su gustito en particular, además de sus pro y sus contra) es utilizar un custom field.
Para ello, en “Contenido -> Escribir”, hacés clic en “Opciones avanzadas”.
Vas a ver que te aparecen dos custom fields. Por default, te vienen habilitados esos dos (custom_1 y custom_2), pero podés habilitar más custom fields en “Administración -> Preferencias avanzadas”, y además, ponerles un nombre más amigable.
En los custom fields podés poner pedacitos de información que después te puedan resultar útiles para el artículo.
En este caso, deberías poner el nombre del archivo, o un identificador único o lo que te parezca que haya que poner.
Siguiendo tu ejemplo, deberías poner “video.flv” (o tan solo, “video”, o lo que te parezca).
Ahora vas a ver por qué.
En tu código:
(...)
so.addVariable("file", "<txp:custom_field name="custom_1" />"); <!-- este es el valor que quisiera pasarle al bloque, un archivo asociado al articulo que estoy mostrando -->
(...)
Aquí estamos aprovechando (o (ab)usando) una ventaja de TXP (que viene desde la versión 4.0.4):
TXP “sabe” que está mostrando el artículo individual, entonces TXP puede renderear tags de artículos (<txp:title />
, <txp:body />
, <txp:custom_field />
, etc), sin necesidad de que estén envueltos en [o en un form llamado por…] <txp:article />
o <txp:article_custom />
.
¿Me seguís?
Espero que sí.
Hay otras posibilidades, sin necesidad de “malgastar” un custom field. Bueno, no lo estás malgastando, pues para esto que te muestro es que se inventaron, pero tal vez necesites “ahorrar” custom fields si tenés muchos, ya que actualmente TXP tiene un límite de 10 custom fields. Yo nunca me quedé corto, pero otras gentes han necesitado varios más (para lo cual hay un plugin). Entiendo que se han hecho cambios para quitar este límite en la próxima versión de TXP.
Bueno, la cuestión es que si querés, podrías imponerte la siguiente convención: que los videos que subís, se llamen video-XYZ.flv (donde XYZ es el ID del artículo al cual va a estar asociado el video, para lo cual te conviene primero escribir y grabar el artículo, así tenés el ID antes de subir el archivo).
En ese caso, podrías hacer esto:
(...)
so.addVariable("file", "video-<txp:article_id />.flv"); <!-- este es el valor que quisiera pasarle al bloque, un archivo asociado al articulo que estoy mostrando -->
(...)
Como verás, estamos usando video-<txp:article_id />.flv
, lo cual ya armaría el identificador único que necesitás para llamar al video correcto.
En fin, ésta es una de las varias posibilidades que tenés (aunque en esencia, todas son similares).
Saludos!
Offline
#3 2009-04-28 19:11:00
- gfdesign
- Member
- From: Argentina
- Registered: 2009-04-20
- Posts: 401
Re: [es-es] Pasar variable a un bloque
Excelente Julián. Más claro imposible.
Voy a tratar de ponerlo en práctico.
Saludos
(Que bueno haber encontrado un CMS tan generoso como sus usuarios)
Offline
Pages: 1