In einem Field Text ersetzen
am 29.12.2011 - 10:07 Uhr in
Hallo,
ich würde gerne auf meiner Startseite die Titel eines bestimmten Content-Types kürzen, indem ich Langformen durch Abkürzungen ersetze.
Das soll den Originaltitel jedoch nicht verändern.
Bisher hatte ich mir das Modul "string-overrides" angesehen, dort kann ich jedoch nicht angeben, dass der Text nur auf der Startseite und nur bei diesem Content Type geändert werden soll...
Wäre super, wenn mir jemand weiterhelfen könnte.
Viele Grüße,
Daniel
- Anmelden oder Registrieren um Kommentare zu schreiben

ich kenne kein modul dafür.
am 29.12.2011 - 10:55 Uhr
Ich denke du musst die Begrenzung in deiner .tpl php Datei machen.
Am besten ist wenn du für die Seite eine template php Seite anlegst und dort die standartwerte überschreibst.
Das hört sich schwer an ist aber super einfach.
Schau dir folgendes an : http://www.drupalcenter.de/handbuch/4217
Hier wird genau beschrieben wie das geht : http://www.drupalcenter.de/handbuch/4287
Zitat: Langformen
am 29.12.2011 - 12:49 Uhr
Langformen abkürzen
Das ist recht vage ausgedrückt. Am Besten schreibst du dir in der template.php eine Funktion dafür und teilst da php genau mit, wie was gekürzt und ersetzt wird. Buzzwords: substr(); + str_replace();
Es scheint nicht direkt zu
am 29.12.2011 - 18:06 Uhr
Es scheint nicht direkt zu funktionieren:
Vielleicht noch einmal etwas genauer: Ich habe auf meiner Startseite drei Views, darin werden jeweils Inhaltstypen A und B angezeigt. Inhaltstypen B haben meist eine langen Titel (der nicht in die dazugehörige Zeile passt), der aber abkürzbar wäre (also als Akronym darstellbar).
Die Views geben fields aus den Inhaltstypen aus. Also unter anderem den Titel und ein Summary.
Wie der Vorredner empfohlen hat, hab ich mal mit der node.tpl.php gespielt, bin aber da auch nicht so weiter gekommen, da das anscheinend nur wirklich für die Node-Ansicht Anwendung findet.
Any hints?
Viele Grüße,
Daniel
WENN ES AUS EINER VIEW IST
am 29.12.2011 - 18:13 Uhr
also wenn es aus einer view ist ist es viel einfacher!
du kannst jedes feld was aus einer view kommt trimmen!
wähle die view und unter den feld Einstellungen kannst du es aus ein max wert trimmen!
Der Titel ist so
am 29.12.2011 - 18:20 Uhr
Der Titel ist so aufgebaut:
"Thema - Titel der Serie (Woche / Jahr)"
Trimmen würde dazu führen, dass ich die Woche und das Jahr verliere und den Titel der Serie unkenntlich mache. Daher würde ich gerne eine PHP replace Funktion oder so auf den String benutzen, um den Titel der Serie in seine Kurzform zu verwandeln. Ginge das irgendwie mit dem Field-Rewrite in der View??
Das soll nur in dieser View-Ansicht so sein, da ich in der Node-Ansicht gerne den vollen Titel hätte.
Daniel
Mit dem normalen rewrite ist
am 29.12.2011 - 18:48 Uhr
Mit dem normalen rewrite ist das nicht möglich. Du wirst auf das Modul [do:views_php Views PHP] ausweichen müssen. Dann kannst Du bei den Feldern den Titel weglassen und dafür einen eigenen Titel über ein PHP-Feld bauen.
Beste Grüße
Werner
Soo, guter Tipp. Hab das
am 29.12.2011 - 22:05 Uhr
Soo, guter Tipp. Hab das Modul installiert und bekomme ein Hello per print ausgegeben.
Die Frage ist jetzt nur, wie heißen (oder wo finde ich) die Variablen, auf die ich zugreifen muss. Prinzipiell brauche ich eigentlich nur zwei: content_type und title.
Damit ich schreiben kann:
if content_type == B:
print title.replace('x', 'y')
else:
print title
Aber wie kann ich auf diese Variablen zugreifen?? $title funktioniert auf jeden Fall nicht.
Daniel
Wenn Du im View ein PHP-Feld
am 29.12.2011 - 23:19 Uhr
Wenn Du im View ein PHP-Feld hinzufügst (zu finden unter Global), Kannst Du Code für die Ausgabe dieses Feldes mit PHP schreiben. Dabei hast Du Zugriff auf alle bis dahin definierten Felder im View (also alle, die davor liegen) über das Objekt $data. Da gibt es sogar einen Tab unter dem Code-Eingabefeld der heißt: Available variables. Da hättest Du nur mal drauf klicken müssen. Also: notwendige Felder hinzufügen und von der Anzeige ausschließen, dann kannst Du sie benutzen.
Beste Grüße
Werner
Danke an alle Helfer! Es
am 30.12.2011 - 00:10 Uhr
Danke an alle Helfer!
Es funktioniert. Dieser Code kam dabei heraus, um das Titelfeld in den Views zu ersetzen.
<div class="views-field views-field-title"><span class="field-content"><a href="<?php print drupal_lookup_path('alias',"node/".$row->view_node); ?>"><?php
if ($row->type != "news_item") print $row->title;
else print str_replace("Serienname", "Kurzname", $row->title);
?>
</a></span></div>
Daniel