it-swarm.com.de

Titel und alternativen Text automatisch zum Bild hinzufügen?

Auf meiner Website können Benutzer Inhalte und auch Bilder hochladen.

Mein Ziel ist es, dass, wenn ein Benutzer Inhalte auf die Website und auch ein Bild hochlädt, der Titel des Inhalts auch der Bildtitel und der alternative Text des Bildes ist. Derzeit verwende ich das Kernbildfeld.

Gibt es einen Weg oder ein Modul, das all das erreichen kann?

6
EB84

Der direkteste Weg könnte sein, etwas in diese Richtung in hook_node_presave () in einem benutzerdefinierten Modul zu tun:

function YOURMODULE_node_presave($node) {

  if(isset($node->field_image)) {
    $node->field_image[LANGUAGE_NONE][0]['alt']=$node->title;
    $node->field_image[LANGUAGE_NONE][0]['title']=$node->title;
  }

}

wo field_image ist der tatsächliche Name des Bildfelds, das Sie in Ihrem Knoten haben.

Wenn Sie nicht möchten, dass Ihre Benutzer dies sehen oder versuchen, dies zu ändern, stellen Sie einfach sicher, dass die Kontrollkästchen alt und title im Feld-Setup nicht aktiviert sind, z.

enter image description here

da dies nur für das Feld Widget hinzufügen/bearbeiten im Formular ist; Der obige Code funktioniert auch dann noch, wenn diese Attribute nicht "aktiviert" sind.

10
Jimajamma

Sie können ImageField Tokens verwenden:

Das ImageField-Token-Modul erweitert die Standardfunktionalität von Bildfeldern um die Möglichkeit, Standardwerte anzugeben und Knotentoken im Alt- und Titeltext zu verwenden.

enter image description here

6
milkovsky

Hier ist eine D7-Regel, die ich erstellt habe, um genau das zu tun. Gehen Sie einfach zu Regeln> Importieren und Speichern. Fügt automatisch das [node:title] und [site:name] Token für das Alternativtextfeld, wenn Inhalte gespeichert oder aktualisiert werden:

{ "rules_alt_text_default" : {
    "LABEL" : "Alt Text Default",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "Custom" ],
    "REQUIRES" : [ "rules" ],
    "ON" : { "node_insert" : [], "node_update" : [] },
    "IF" : [
      { "entity_has_field" : { "entity" : [ "node" ], "field" : "field_image" } }
    ],
    "DO" : [
      { "data_set" : {
          "data" : [ "node:field-image:alt" ],
          "value" : "[node:title] - Available at [site:name]"
        }
      }
    ]
  }
} 
1
Bob T.

Es gibt zwei einfache Methoden, um dies zu erreichen:

Methode 1 ist einfacher; Konfigurieren Sie Ihr Dateientitätsmodul und ersetzen Sie in den Attributfeldern alt und title das Token durch [current-page:title], Das auch eines der verfügbaren Token ist

Bitte beachten Sie: Bei dieser obigen Methode werden die Titel- und Attributfelder ersetzt, wenn die Felder leer sind. Wenn zu irgendeinem Zeitpunkt Text in sie eingegeben wird, wird dieser Text stattdessen verwendet.

Methode 2 verwendet Regeln, um dies zu erreichen, und so geht's:

  1. Erstellen Sie Regeln mit folgenden Ereignissen:

    ein. nach dem Speichern neuer Inhalte

    b. nach dem Aktualisieren vorhandener Inhalte

  2. Add condition: "content is of type: (add your content type(s) here.....)" Note: without this condition, rules does not seem to pull out the alt and title attributes from your image field. Sie können auch andere Bedingungen hinzufügen, um zu überprüfen, ob die Felder leer sind oder nicht ("Datenwert ist leer ..."), damit Sie den vorhandenen Text in den Feldern nicht ändern. Dies ergibt eine bessere Kontrolle als Methode 1 oben.

  3. Fügen Sie hier 2 Aktionen hinzu, um Ihre Datenwerte für Alt- und Titelfelder mithilfe des Knotentitels festzulegen.

Für eine noch feinere Steuerung können Sie das Modul " Conditional Rules " installieren, um zu überprüfen, ob beide oder eines der Attribute alt und title ausgefüllt wurden (Beispielszenario lautet "wenn alt NICHT leer ist und title leer ist"). Aktualisiere das Titelattribut "oder", wenn alt leer ist und der Titel NICHT leer ist, aktualisiere das alt-Attribut ... usw.).

Wenn Sie das Modul für bedingte Regeln nicht installieren möchten, aber dennoch eine bessere Kontrolle beim Überprüfen leerer Felder wünschen, erstellen Sie einfach zwei verschiedene Regeln, um beide Felder unabhängig voneinander zu überprüfen.

  1. Speichern Sie Ihre Regel. das ist es.

Sie können diese von mir erstellte Regel auch einfach importieren, indem Sie die oben beschriebenen einfachen Schritte ausführen. Beachten Sie, dass mein Feld "field_image" heißt und mein Inhaltstyp "article" ist:

{ "rules_update_image_alt_and_title_automatically" : {
    "LABEL" : "Update image alt and title automatically",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "node_update" : [], "node_insert" : [] },
    "IF" : [
      { "node_is_of_type" : { "node" : [ "node" ], "type" : { "value" : { "article" : "article" } } } }
    ],
    "DO" : [
      { "data_set" : { "data" : [ "node:field-image:alt" ], "value" : "[node:title]" } },
      { "data_set" : { "data" : [ "node:field-image:title" ], "value" : "[node:title]" } }
    ]
  }
}
0
IT Pro Manager