Posted by leon2004 on September 7, 2011 at 8:18pm
Hola a todos, en este caso lo que me ocurre es que quiero poner un teaser en un field del texto en mi contenido , este me lo hace automáticamente en el body pero hay no lo quiero ¿como lo puedo situar en un field ? tengo varios field_reparto ect.. con contenido de texto y en uno de ellos quiero ponerle que sea teaser para poder darle una vista de resumen.
Gracias por adelantado

Comments
¿En un view?
Hola!
No sé si te entendí bien:
¿Quieres hacer una vista que muestre algún field (no necesariamente el body) y que en lugar de mostrar ese field completo sólo muestre algunos caracteres, como si fuera el resumen de todo lo que incluye ese campo? Y que, por ejemplo, ¿ya que hagas clic en el resumen te mande a la vista completa del nodo ahora sí?
¿Esto es lo que quieres lograr o es otra cosa?
Saludos!
Personalmente desconozco si
Personalmente desconozco si existe un módulo que haga eso, pero entiendo que el teaser es un atributo más del node, por lo tanto se podría hacer un campo que se llame field_reparto_teaser, pero creo que sería mejor revisar el “<!--break-->” que se coloca en el campo texto, esto ayuda a identificar el fin del “teaser”, quizás con esto puedas solucionar tu problema sin la necesidad de crear un campo nuevo.
Saludos
Esto tiene node.module para
Esto tiene node.module para el node_teaser
<?php
if (!isset($size)) {
$size = variable_get('teaser_length', 600);
}
// Find where the delimiter is in the body
$delimiter = strpos($body, '<!--break-->');
// If the size is zero, and there is no delimiter, the entire body is the teaser.
if ($size == 0 && $delimiter === FALSE) {
return $body;
}
// If a valid delimiter has been specified, use it to chop off the teaser.
if ($delimiter !== FALSE) {
return substr($body, 0, $delimiter);
}
?>
Por lo tanto si reemplazamos $body por $node->field_reparto[0]['value'] se estaría solucionando tu requerimiento.
a algo como esto:
<?php
$texto = $node->field_reparto[0]['value'];
$delimiter = strpos($texto, '<!--break-->');
//Si no se puso el break, imprime el texto completo
if ($delimiter === FALSE) {
return $node->$texto;
}
// En caso contrario, imprime el texto hasta donde estaba el break que sería el resumen
if ($delimiter !== FALSE) {
return substr($texto, 0, $delimiter);
}
?>
Saludos
Gracias es mas sencillo
Simplemente en views elegimos el field y tiene una opcion para que recorte su longitud.
Gracias
Pense que querías tener un
Pense que querías tener un teaser controlado para los campos.
Saludos