Wie kann ich den Titel kürzen?

am 07.08.2008 - 12:04 Uhr in
Hi,
kann mir von euch jm. vielleicht sagen, wie es mir möglich ist den Titel in einer View mit Liststyle auf eine bestimmte Anzahl an Buchstaben zu kürzen? Das z.B. aus "Wir schreiben über Thema1" "Wir schreiben..." wird ?!
Mit dem Node: Title Argument komm ich nicht weiter.
Vielen Dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
view themen
am 07.08.2008 - 12:46 Uhr
Moin!
Du musst die Augabe Deines Views anpassen (speziell natürlich die Titel der Nodes).
Unter http://drupal.org/node/42597 ist das Handbuch dazu zu finden.
Da Du die nodes als Liste darstellst, ist die Funktion
theme_views_view_list($view, $nodes, $type)
entscheidend. Die musst Du in Deiner template.php überschreiben (mit dem Theme-Wizard wird das automatisch erledigt).hth,
Stefan
hi, dein beitrag hat mir
am 07.08.2008 - 17:06 Uhr
hi,
dein beitrag hat mir jetzt schon sehr geholfen, nur komme ich einfach nicht weiter.
function phptemplate_views_handle_field_Themenpark_Block1_node_title($fields, $field, $data) {
$test = substr($data->node_title, 0, strripos(substr($data->node_title, 0, 20), " "));
return '<a href="'.(hier müsste eine Variable stehen - aber welche? :D).'">'. $test .'</a>';
so habe ich es geschafft, dass der Titel gekürzt wird (danach kommt dafür nur noch unrelavantes). Allerings ist in dem $data feld nicht die url von den nodes enthalten. Wie kann ich es jetzt also anstellen, dass im href die url eines jeden nodes angezeigt wird?
grüße
edit: ENDLICH GESCHAFFT :D
Für alle die es auch interessiert hier die relevante Zeile:
$data->node_title = substr($data->node_title, 0, 35).'...';
so wird alles nach Wunsch realisiert :-)
View theme
am 07.08.2008 - 19:25 Uhr
function phptemplate_views_handle_field_Themenpark_Block1_node_title($fields, $field, $data) {
...
}
Siehst Du, da habe ich auch gleich wieder etwas gelernt (kommt doch noch ab und zu vor :-)).
Das die overrides auch auf Feldbasis funktionieren, wusste ich noch gar nicht (hatte ich auch noch nicht benötigt, aber wer weiss...).
&nsbp;Stefan
:D Man lernt nicht aus...
am 07.08.2008 - 19:56 Uhr
:D Man lernt nicht aus...
An alle anderen:
Wenn man das ganze noch in eine Bedingung reinsteckt, kann man die 3 Punkte die ich anzeigen lasse auch an oder ausblenden lassen:
if(strlen($data->node_title) < 40) {
$info = $fields[$field['fullname']]; }
else {
$data->node_title = substr($data->node_title, 0, 40).'...';
$info = $fields[$field['fullname']];
}
IckZ schrieb
am 07.08.2008 - 21:29 Uhr
if(strlen($data->node_title) < 40) {
$info = $fields[$field['fullname']]; }
else {
$data->node_title = substr($data->node_title, 0, 40).'...';
$info = $fields[$field['fullname']];
}
Mit truncate_utf8 geht das noch komfortabler:
$data->node_title = truncate_utf8($data->node_title, 40, TRUE, TRUE);
Die Zuweisung $info = $fields[$field['fullname']]; macht in den Blöcken der Bedingung keinen Sinn, da sie in beiden Fällen stattfindet.
--
SEO-Expert-Blog.com | Torlaune.de
Ahoi, also ich versteh das
am 18.10.2008 - 04:19 Uhr
Ahoi,
also ich versteh das jetzt nicht so ganz, bei mir gibt es die $data Zeile nicht. ^^
Hier mal mein Code:
function phptemplate_views_view_list_viewname($view, $nodes, $type, $data) {
$fields = _views_get_fields();
$taken = array();
// Set up the fields in nicely named chunks.
foreach ($view->field as $id => $field) {
$field_name = $field['field'];
if (isset($taken[$field_name])) {
$field_name = $field['queryname'];
}
$taken[$field_name] = true;
$field_names[$id] = $field_name;
}
// Set up some variables that won't change.
$base_vars = array(
'view' => $view,
'view_type' => $type,
);
foreach ($nodes as $i => $node) {
$vars = $base_vars;
$vars['node'] = $node;
$vars['count'] = $i;
$vars['stripe'] = $i % 2 ? 'even' : 'odd';
foreach ($view->field as $id => $field) {
$name = $field_names[$id];
$vars[$name] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
if (isset($field['label'])) {
$vars[$name . '_label'] = $field['label'];
}
}
$items[] = _phptemplate_callback('views-list-newsausgabe', $vars);
}
if ($items) {
return implode('', $items);
}
}
Hilfe brauch das echt
am 21.10.2008 - 04:14 Uhr
Hilfe brauch das echt dringend. Weis das niemand?
mh... ist zwar schon etwas
am 22.01.2009 - 11:51 Uhr
mh... ist zwar schon etwas her, aber hast du es hinbekommen?