[Gelöst] Button umbenennen
Eingetragen von Roavei (162)
am 05.04.2009 - 13:48 Uhr in
am 05.04.2009 - 13:48 Uhr in
Hallo Leute
Ich will auf meiner Homepage einen Button umbenennen. Jedoch will ich kein "Mini-Modul" erstellen sondern einfach den Code in der template.php einfügen. Wenn ich einen Tab z.B. auf der Profil-Seite umbenennen will, dann mach ich das folgendermaßen:
function sky_preprocess(&$variables, $hook) {
if ($hook == 'page') {
if (arg(0) == 'user') {
$variables['tabs'] = str_replace('Bearbeiten', 'Mein Daten bearbeiten', $variables['tabs']);
}
}
}
Per print_r habe ich herausgefunden, dass der Text den ich ersetzen möchte hier steht:
[links] => Array
(
[comment_add] => Array
(
[title] => Neuen Kommentar schreiben
Wie kann ich das jetzt realisieren?
- Anmelden oder Registrieren um Kommentare zu schreiben
$vars['node']
am 05.04.2009 - 15:48 Uhr
Moin!
Ich hätte jetzt eigentlich darauf getippt, dass
<?php
$vars['node']->links['comment_add']['title'] = 'schreibst Du Kommentar, Alter';
?>
in der preprocess-Funktion funktioniert, jedoch war dem (zumindest bei meinen Tests) nicht so.
Dann halt so:
<?php
function phptemplate_links($links, $attributes = array('class' => 'links')) {
if (isset($links['comment_add'])) {
$links['comment_add']['title'] = 'schreibst Du Kommentar, Alter';
}
return theme_links($links, $attributes);
}
?>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
ich danke dir :) Jedoch hab
am 05.04.2009 - 16:24 Uhr
ich danke dir :)
Jedoch hab ich noch schwierigkeiten. soll ich diese funktion einfach am ende der template.php einfügen (mit unbennen von 'phptemplate' klarerweise?) wenn ja, dann funktionierts bei mir leider noch nicht.
Ich habe gesehen, dass mein theme bereits eine funnktion "_sky_button_links" besitzt. hat die was damit zu tun?
danke nochmals
lg
theme_links
am 05.04.2009 - 18:25 Uhr
soll ich diese funktion einfach am ende der template.php einfügen
Ja. Oder mittendrin.
(mit unbennen von 'phptemplate' klarerweise?)
Wieso?
phptemplate_*
ist ebenso gültig, wie<ThemeName>_*
. Nur nicht speziell auf das Theme beschränkt, sondern mit Bezug auf die Template-Engine.wenn ja, dann funktionierts bei mir leider noch nicht.
Hast Du die Theme-Registry geleert?
Bei mir hat das dann sofort funktioniert. Notfalls lass Dir doch mal
$links
dort in der Funktion ausgeben. Dann siehst Du, ob der Schlüssel überhaupt vorhanden ist.Ich habe gesehen, dass mein theme bereits eine funnktion "_sky_button_links" besitzt. hat die was damit zu tun?
Nö, glaub ich nicht. Jedenfalls ist das keine Standard-Drupal Funktion. Wo wird die denn verwendet/aufgerufen?
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
also ich hab das jetzt mal
am 05.04.2009 - 23:19 Uhr
also ich hab das jetzt mal folgendermaßen ausgetestet:
function phptemplate_links($links, $attributes = array('class' => 'links')) {
if (isset($links['comment_add'])) {
print($links['comment_add']['title']);
$links['comment_add']['title'] = 'schreibst Du Kommentar, Alter';
print($links['comment_add']['title']);
}
return theme_links($links, $attributes);
}
und er gibt mir auch das richtige aus, d.h. beim ersten "Neuen Kommentar hinzufügen" und beim zweiten mal deinen text. daraus schlussfolgere ich, dass das mit dem return'en nicht richtig klappt... ?!
Wieso?
phptemplate_*
ist ebenso gültig, wie<ThemeName>_*
. Nur nicht speziell auf das Theme beschränkt, sondern mit Bezug auf die Template-Engine.interessant... wusste ich nicht, danke :)
lg roavei
lösung gesucht
am 10.04.2009 - 18:01 Uhr
hmm... keiner eine idee?
Lösung
am 10.04.2009 - 22:38 Uhr
Doch. Siehe oben.
Wenn der Titel ausgegeben wird, wird folgerichtig die Funktion auch ausgeführt. Seltsam ist, dass dann anscheinend das
return
keine Wirkung zeigt. Was passiert, wenn Du das mal auskommentierst?Tipp: Beachte die Verhaltensregeln des DrupalCenter.
hmm... es passiert das
am 10.04.2009 - 23:09 Uhr
hmm... es passiert das gleiche nämlich nichts. der button trägt noch immer den alten namen... ?!
Screenshot
am 10.04.2009 - 23:18 Uhr
Kann man sich das mal irgendwo live und in Farbe anschauen? Oder zumindest auf einem Screenshot?
Du sprichst ständig von einer Schaltfläche, meine Lösung behandelt jedoch einen Link (
<a href="">...</a>
).Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
klar... guckst du
am 11.04.2009 - 11:58 Uhr
klar... guckst du hier...
Man beachte: Links oben wird der Text der Links von der template.php zweimal ausgegeben. einmal davor und einmal danach. Den Text den ich ersetzen müsste steht in der "
<em>
".Titel
am 11.04.2009 - 15:48 Uhr
Moin!
Ok, das kann natürlich nicht funktionieren.
Der Link wird ja anscheinend noch vom Template oder einem Modul verändert, so dass in dem
<a>
Tag noch weiteres HTML - und nicht nur der Titel - enthalten ist. Such also mal, wo das zusätzliche HTML in dem Link herkommt, dann kommst Du auch an den Titel ran und kannst ihn ändern.Stefan
PS: ich hab Deinen Beitrag mal repariert: HTML-Tags, die Du anzeigen willst, sollten in <code></code> gepackt werden.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
mhm... an dieser stelle
am 13.04.2009 - 20:37 Uhr
mhm... an dieser stelle wäre es wirklich praktisch wenn man php können würde ;)
der link wird in der template.php verändert, und zwar in der funktion:
function _sky_button_links($links, $attributes)
Hier findet man folgendes:
if (isset($link['href'])) {
$output .= l('<span class="tr"> </span><span class="tl"> </span><em>'. $link['title'] .'</em><span class="bl"> </span><span class="br"> </span>', $link['href'], array(
'attributes' => array(
'class' => 'button',
'title' => $link['attributes']['title'],
),
'query' => $link['query'],
'fragment' => $link['fragment'],
'html' => TRUE,)
);
$link['title'] wäre dann der Text den ich ersetzen müsste...
Linktext
am 13.04.2009 - 22:55 Uhr
Falls das eine Frage war: ja, das ist dann der zu ersetzende Text.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
naja... frage wars
am 14.04.2009 - 12:01 Uhr
naja... frage wars eigentlich keine. bzw. indirekt schon...aber anders als du meinst, und zwar:
"Wie ersetze ich diesen Text jetzt?"
hmm... schaut so aus als
am 16.04.2009 - 07:25 Uhr
hmm... schaut so aus als wär das nicht so einfach? weiß dass wirklich keiner?
Warum übersetzt du es nicht
am 16.04.2009 - 08:20 Uhr
Warum übersetzt du es nicht einfach in was anderes?
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
naja weil ich wenn ich den
am 16.04.2009 - 13:44 Uhr
naja weil ich wenn ich den String übersetze, er dann auf jeder anderen Seite wo dieser Button mit dem Text auch erscheint, ebenfalls anders übersetzt werden würde.
Oder meinst du was anderes...?
Nee schon richtig. Naja dann
am 16.04.2009 - 13:56 Uhr
Nee schon richtig. Aber erscheint aber nur das wo man auch Kommentare abgeben kann. Naja dann mach mal mit deinem hook_links weiter.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Es ist gigantisch wie
am 18.04.2009 - 14:13 Uhr
Es ist gigantisch wie einfach man ein Problem lösen kann wenn man es von einer anderen Seite angeht.
Und zwar hab ich jetzt einfach per CSS - den Button auf diesem Node ausgeblendet und dann im Inhalt des Nodes den HTML - Code für eben diesen Button eingegeben. Somit konnte ich ganz einfach den Text ändern. Nicht sehr schön, aber das ist mir eigentlich egal ;)
Ich möchte an dieser Stelle stBorchert danke sagen, dass er wirklich versucht hat mir zu helfen. Danke nochmal. Solche Leute machen Drupal das zu dem was Drupal ist!