Node Title automatisch als Image Alt-Tag
Eingetragen von Milcho (10)
am 28.07.2012 - 12:57 Uhr in
am 28.07.2012 - 12:57 Uhr in
Hallo,
leider habe ich bislang keine richtige Lösung auf google oder hier im Forum gefunden. Ich möchte gern das bei einem
verschiedenen Node-Typen immer bei Bildern (im field_images) der Node Titel als Alt-Tag eingefügt wird.
Ich wollte es über die Field_images.tpl.php versuchen leider weis ich nicht wie da die Variable ist für den Node-Titel bzw.
was ich machen muss um den titel dort nutzen zu können.
Ich habe auch verschiedene sachen gefunden das es wohl über eine Funktion in der Template.php gehen soll, jedoch
sind meine PHP-Kenntnisse eher bescheiden =)
Habt Ihr vielleicht bereits eine Lösung oder gibt es ein Modul was dieses für mich ermöglicht?
mfg Milcho
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo Milcho,abgesehen
am 28.07.2012 - 13:40 Uhr
Hallo Milcho,
abgesehen davon, ob es eine Lösung für Dein "Problem" gibt - sowas macht man einfach nicht. Wenn Du auf diese Art den Alt-Attribut bestimmen möchtest, dann verstehst Du nicht im geringsten, welchen Sinn er hat. Er soll keineswegs gleich wie der Nodetitel und auch nicht gleich wie der Bildtitel sein. Er sollte am besten den Inhalt des Bildes in einem kurzen Satz beschreiben, was auf dem Bild zu sehen ist (Stichwort: Barrierefreiheit). Mehr z.B. hier: Wofür gibt es das ALT Attribut überhaupt?
Grüße
Joe
Hallo, mir ist schon bewusst
am 28.07.2012 - 13:54 Uhr
Hallo,
mir ist schon bewusst wie man ALT-Tags benutzt. Ich suche ne Antwort auf meine Frage und diese ist nicht was sind ALT-Tags!
Das ist der Grund warum ich keine Foren mag, ich brauch eine Antwort zu meiner Frage und keine Belehrungen. Wenn du also nichts
zur Lösung beitragen kannst, dann poste doch einfach nichts zu dieser Frage.
Desweiteren ist der Nodes-Titel der Name einer Veranstaltung und das BIld ist der Flyer von dieser. Somit ist der Node-Titel die Beschreibung des BIlds.
Und wenn ich eine Lösung habe wie ich den Notes Titel darein bekomme, kann ich dort dann auch noch Text einfügen wie "Der Flyer von [Node-Titel].
Da die Veranstaltungen vom Enduser gepflegt werden. Möchte ich eine automatische Lösung die dem User Arbeit erspart und sicherstellt das der ALT-Tag
sinnvoll ist.
Aber all diese Infos die ich dir jetzt geben habe, warum ich das so machen will sind für meine eigentliche Frage unnötig.
Milcho schrieb Das ist der
am 28.07.2012 - 14:05 Uhr
Das ist der Grund warum ich keine Foren mag, ich brauch eine Antwort zu meiner Frage und keine Belehrungen.
Wenn Du keine Foren magst, dann poste einfach nicht und suche dir die Lösung für Dein "Problem" selber.
Desweiteren ist der Nodes-Titel der Name einer Veranstaltung und das BIld ist der Flyer von dieser. Somit ist der Node-Titel die Beschreibung des BIlds.
Keinesfalls. Ein Blinder z.B. wird anhand des Names der Veranstaltung nicht verstehen können, was genau auf dem Bild zu sehen ist.
Warum sollte man auch alle
am 28.07.2012 - 14:22 Uhr
Warum sollte man auch alle Infos die bereits in der Node als Text vorhanden sind nochmals in die Beschreibung des Bilds machen.
Das ist unnötig. Weiterhin ist dieses nicht meine Frage. Ich bitte erneut wenn du keine Lösung für mein Problem hast, entsprechend nicht
darauf zu Antworten.
Danke
Du könntest probieren, in der
am 28.07.2012 - 14:59 Uhr
Du könntest probieren, in der template.php deines Themes die
theme_image()
zu überschreiben. Da prüfst du, ob's ein Node-Objekt gibt und setzt dann das Alt-Attribute entsprechend.Z. B. so:
<?php
meintheme_image($path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) {
if ( (arg(0) == 'node') && (is_numeric(arg(1))) ) {
global $node;
$alt = 'Flyer von ' . $node->title;
}
return theme_image($path, $alt, $title, $attributes, $getsize);
}
?>
'meintheme' musst du durch den Namen deines Themes ersetzen.
Ist aber nur eine ungetestete Idee, musst du mal probieren. Und wenn du die template.php geändert hast, solltest du danach den Theme-Cache leeren.
geht leider nicht .. es kommt
am 28.07.2012 - 15:10 Uhr
geht leider nicht .. es kommt immer die Fehlermeldung: "Notice: Trying to get property of non-object in " und er bezieht sich immer auf die Zeile " $alt = 'Flyer von ' . $node->title;"
Mist, dann hat er an der
am 28.07.2012 - 15:31 Uhr
Mist, dann hat er an der Stelle das Node-Objekt noch nicht in den Globals...
In der template.php müsste es eine Variable geben, in der die ganzen Umgebungs-Variablen abgelegt werden. Die heißt meistens $vars, $variables oder so, musst du mal schauen, wie die bei dir heißt und in folgendem Code ersetzen:
<?php
meintheme_image($img_variables) {
if ( (arg(0) == 'node') && (is_numeric(arg(1))) ) {
$img_variables['alt'] = 'Flyer von ' . $vars['node']->title;
}
return theme_image($img_variables);
}
?>
Mhh Ich weis nicht wo ich das
am 28.07.2012 - 15:39 Uhr
Mhh Ich weis nicht wo ich das finde, ich nutze immer das Zen-Theme und dann halt das Sub-Theme davon, das heißt die Template.php meines Themes ist leer.
Ich bin noch realtiv frisch in Drupal, ich hab mich bislang noch nicht viel mit der Template.php beschäftigt. Bis lang habe ich immer nur Felder und Ansichten per
tpl.php umgebaut. Kannst du mir da vllt a Tipp geben wo ich da ne Info bekomme oder was ich machen muss?
Welches Sub-Theme verwendest
am 28.07.2012 - 15:42 Uhr
Welches Sub-Theme verwendest du denn?
nutze dieses Theme dort gibt
am 28.07.2012 - 15:48 Uhr
Zen Theme nutze dieses Theme dort gibt es immer ein Ordner "STARTERKIT" den kopiert man dann in den Theme-Ordner und passt die .Info usw an den gewünschten Theme-Name an und fängt dann halt an alles andere per tpl´s zu überschreiben
function
am 28.07.2012 - 17:10 Uhr
function MYTHEME_image($img_variables) {
if ( (arg(0) == 'node') && (is_numeric(arg(1))) ) {
$title = drupal_get_title();
$img_variables['alt'] = 'Flyer von ' . $title;
}
return theme_image($img_variables);
}
So geht es jedoch leider nur auf der Seite der Nodes, ich lasse aber oft per "Views" Listen erstellen, dort ist dann der "alt" leider nur als "alt" angeben. In der View habe ich eingestellt "Inhalt - Vollständiger Inhalt" kann man das noch irgendwie hin bekommen das er das auch da macht?
Edit also hab jetzt soweit das er es überall macht, jedoch wird dann auf der z.b. auf der Startseite (View -> bestimmte inhaltstyp) dann der Alt-tag auf "Startseite" gesetzt, bekomm es nicht hin das er die Node-Titel Variable findet.
Push, hat jmd noch ne Lösung
am 30.07.2012 - 19:50 Uhr
Push,
hat jmd noch ne Lösung für das Problem mit "Views" und wie ich beim Zen-Theme an den Node Titel komme?