Warum kann ich einem Drupal 7-Bildfeld keine weitere zulässige Dateierweiterung hinzufügen?


12

Ich habe die SVG-Dateierweiterung für das Hochladen von Bildern über hinzugefügt admin/structure/types/manage/image/fields/gallery_image, wie Sie unten sehen:

Bildbeschreibung hier eingeben

Aber wenn ich ein Bild hochlade, darf ich immer noch kein SVG hochladen.

Bildbeschreibung hier eingeben

Ich habe auf der Admin-Seite definitiv auf "Speichern" geklickt und den Cache geleert. Wenn ich die field_config_instanceTabelle inspiziere, werden die gewünschten Einstellungen sogar in der Datenbank angezeigt . Es muss eine andere Tabelle oder einen anderen Cache geben, der nicht aktualisiert wird. Irgendeine Idee?

Antworten:


7

Das Bild - Widget intern erlaubt (und leise Enforces Post Drupal 6) die Verwendung von nur die png, gif, jpgund / oder jpegErweiterungen. Während Sie also eine Erweiterung aus einem Feld entfernen können, z. B. habe ich die gifmeisten meiner Implementierungen entfernt, um Animationen zu vermeiden, können Sie dieser Liste keine hinzufügen. Ich würde mir vorstellen, dass dies daran liegt, dass es das Bild nach dem Hochladen selbst anzeigt und keine Anzeige in älteren IE-Browsern in der tatsächlichen Form aufteilen wollte (außerdem, wer weiß, wie Bildstile auch darauf funktionieren würden :)


Gute Antwort, aber schade.
Joe Corneli

2
Eine Diskussion zu do gibt es hier: drupal.org/node/1014816
Joe Corneli

2

Sie können einfach ein Dateifeld verwenden und hook_field_formatter_info_alterin Ihr benutzerdefiniertes Modul implementieren , um den "Bild" -Formatierer auch für Dateifelder zu aktivieren. Dann können Sie das hochgeladene SVG ganz einfach als eingebettetes Bild ausgeben.

/**
 * Implements hook_field_formatter_info_alter().
 */
function MODULNAME_field_formatter_info_alter(&$info) {
  $info['image']['field types'][] = 'file';
}

2

Wie bereits erwähnt, gibt es keine einfache Möglichkeit, dem Drupal-Kernmodul Image die Annahme von SVG zu erlauben. Stattdessen können Sie das beigesteuerte Modul SVG Embed (in dieser Diskussion widerwillig über ein Dateifeld für SVG ausgewählt ) oder dieses Sandbox-SVG-Modul (nicht offiziell veröffentlicht) verwenden .

UPDATE: Ich empfehle jetzt svgimg auch in der Sandbox, aber wahrscheinlich wird es bald veröffentlicht. Verwenden Sie es in der Produktion und sehr glücklich.


1

Es gibt auch einen anderen Weg - das Media- Modul. Sobald dies installiert ist, kann das SVG-Format unter admin / structure / file-types unter image hinzugefügt werden.

Wenn ich mich nicht irre, lässt Drupal SVGs aus Gründen der Abwärtskompatibilität (hauptsächlich IE8 und niedriger) immer noch nicht zu. Ich habe jedoch schon seit einiger Zeit SVGs in Projekten platziert und habe noch keine Beschwerde erhalten.


Ich bin nicht sicher, ob dies der richtige Weg ist, aber Media ist definitiv der richtige Weg, um dieses Problem zu lösen.
Digitgopher

Für die Aufzeichnung habe ich einen neuen Typ namens SVG erstellt, der eine großartige Möglichkeit ist, die Ausgabe anzupassen und eine andere Ausgabe für Bilder zu ermöglichen
shaneonabike
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.