View: Verlinkter Benutzername wird abgeschnitten
Eingetragen von cameron1970 (11)
am 09.09.2009 - 19:17 Uhr in
am 09.09.2009 - 19:17 Uhr in
Folgendes Problem: Ich gebe in einem View unter anderem den Benutzernamen aus, der mittels der Views-Feldoption "Dieses Feld mit seinem Benutzer verlinken" auf das entsprechende Benutzer-Profil verweist. Leider wird der Name in der Ausgabe nach 18 Zeichen abgeschnitten (URL bleibt korrekt, Link funktioniert); ich brauche ihn in der Ausgabe aber vollständig. Die Trim-Option ist deaktiviert. Wenn ich ihn nur Text ausgebe und nicht verlinke, wird er, wie gewünscht, vollständig angezeigt. Es scheint also an der Verlinkung zu liegen.
Ideen?
- Anmelden oder Registrieren um Kommentare zu schreiben
theme_username
am 09.09.2009 - 21:55 Uhr
Moin.
Das liegt an der Funktion theme_username.
Diese Funktion gibt nur die ersten 15 Zeichen des Namens aus und ersetzt weitere Zeichen durch "...".
Wenn Du das nicht möchtest, kannst Du die Funktion in der template.php Deines Themes überschreiben und die gewünschte Stelle verändern.
hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Super!
am 10.09.2009 - 00:55 Uhr
Vielen Dank - hat geklappt! Allerdings hab' ich's in der theme.inc gefunden und angepasst.
theme
am 10.09.2009 - 07:14 Uhr
Allerdings hab' ich's in der theme.inc gefunden und angepasst.
Dann öffnest Du die Datei sofort wieder und machst die Änderungen rückgängig!
Im Drupal-Kern wird nicht herumgeschraubt (es sein denn, man erstellt gerade einen Patch auf Basis eines Fehlers oder einer Verbesserung)!
Ich versteh echt nicht, wie man (insbesondere als Drupal-Neuling) immer wieder auf die Idee kommt, einfach mal im Core rumzubasteln ohne sich über mögliche Nebenwirkungen im Klaren zu sein.
Bastelst Du auch an der Elektronik Deines Fernsehers herum, wenn er bestimmte Dinge anders anzeigt als Du es möchtest?
Und hier nochmals der bereits oben erwähnte Link: Overriding themeable output.
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Selbstverständlich!
am 10.09.2009 - 11:37 Uhr
Bastelst Du auch an der Elektronik Deines Fernsehers herum, wenn er bestimmte Dinge anders anzeigt als Du es möchtest?
Ja natürlich. Ich hab auch schon mal - zum großen Ärger des Kabel-"Das gehört verplombt!"-Blockwartteams - den hauseigenen Kabelanschluss auseinandergenommen; das hat sehr viel Zeit, Geld und Nerven gespart. ;-)
Aber ich lerne ja gerne.
Also: Änderung in der theme.inc ist rückgängig gemacht. Funktion ist - umbenannt und mit entsprechender Änderung - in der template.php untergebracht.
Leider tut sich nun aber absolut gar nichts. Der Benutzername wird wieder abgeschnitten.
Geh nach der Änderung der
am 10.09.2009 - 11:50 Uhr
Geh nach der Änderung der template.php mal unter /admin/settings/performance den cache leeren. alternativ auch mal die seite admin/build/themes aufrufen.
gruß pebosi
--
http://www.pebosi.net
gruß pebosi
--
https://pebosi.net
No chance
am 10.09.2009 - 12:44 Uhr
Hallo pebosi,
auch mit den beiden vorgeschlagenen Verfahren: keine Änderung.
Was ich grundsätzlich überhaupt nicht verstehe: Wenn ich in dem View den Benutzernamen nicht auf den Benutzer verlinke, wird er vollständig angezeigt (und zwar auch ohne Änderung der Funktion theme_username). Sobald ich den Verweis einbaue, wird er abgeschnitten.
Andererseits hat's ja mit der Anpassung der Funktion theme_username im Core geklappt ...
Bahnhof über Bahnhof ...
Ich arbeite auf YAML-Grundlage. Gibt's da vielleicht irgend 'ne Besonderheit?
Oder mach' ich beim Einfügen des Codes in die template.php was falsch?
Folgendes hab ich genau so da reingepflügt (Änderungen zum Original nur phptemplate_username statt theme_username und die Werte für die Stringlänge: 50 statt 20 und 35 statt 15):
function phptemplate_username($object) {
if ($object->uid && $object->name) {
// Shorten the name when it is too long or it will break many tables.
if (drupal_strlen($object->name) > 50) {
$name = drupal_substr($object->name, 0, 35) .'...';
}
else {
$name = $object->name;
}
if (user_access('access user profiles')) {
$output = l($name, 'user/'. $object->uid, array('attributes' => array('title' => t('View user profile.'))));
}
else {
$output = check_plain($name);
}
}
else if ($object->name) {
// Sometimes modules display content composed by people who are
// not registered members of the site (e.g. mailing list or news
// aggregator modules). This clause enables modules to display
// the true author of the content.
if (!empty($object->homepage)) {
$output = l($object->name, $object->homepage, array('attributes' => array('rel' => 'nofollow')));
}
else {
$output = check_plain($object->name);
}
$output .= ' ('. t('not verified') .')';
}
else {
$output = check_plain(variable_get('anonymous', t('Anonymous')));
}
return $output;
}