Dlaczego nie mogę dodać kolejnego dozwolonego rozszerzenia pliku do pola obrazu Drupal 7?

12

Dodałem rozszerzenie pliku SVG do przesyłania obrazów przez admin/structure/types/manage/image/fields/gallery_image, jak widać poniżej:

wprowadź opis zdjęcia tutaj

Ale kiedy idę załadować obraz, nadal nie mogę przesłać SVG.

wprowadź opis zdjęcia tutaj

Zdecydowanie nacisnąłem „Zapisz” na stronie administratora i wyczyściłem pamięć podręczną, a nawet widzę ustawienia, tak jak chciałem, w bazie danych, kiedy sprawdzam field_config_instancetabelę. Musi istnieć inna tabela lub pamięć podręczna, która nie jest aktualizowana. Dowolny pomysł?

Joe Corneli
źródło

Odpowiedzi:

7

Obraz widget pozwala wewnętrznie (i cicho wymusza zakładać Drupal 6) użycie tylko png, gif, jpgi / lub jpegrozszerzeń. Tak więc, chociaż możesz usunąć rozszerzenie z pola, np. Usunąłem gifz większości moich implementacji, aby uniknąć animacji, nie możesz dodać żadnego z tej listy. Wyobrażam sobie, że dzieje się tak, ponieważ sam w sobie wyświetla obraz po przesłaniu i nie chciał zepsuć żadnych wyświetlaczy w starszych przeglądarkach IE w rzeczywistej formie (plus, kto wie, jak działają na nich style obrazów :)

Jimajamma
źródło
Dobra odpowiedź, ale szkoda.
Joe Corneli
2
Dyskusja na temat do jest tutaj: drupal.org/node/1014816
Joe Corneli
2

Możesz po prostu użyć pola pliku i zaimplementować hook_field_formatter_info_alterw module niestandardowym, aby włączyć formatyzator „Obraz” także dla pól plików. Następnie możesz w łatwy sposób przesłać przesłany plik SVG jako osadzony obraz.

/**
 * Implements hook_field_formatter_info_alter().
 */
function MODULNAME_field_formatter_info_alter(&$info) {
  $info['image']['field types'][] = 'file';
}
yannickoo
źródło
2

Jak wspomniano, nie ma łatwego sposobu, aby po prostu pozwolić rdzennemu modułowi obrazu Drupala na akceptację SVG. Zamiast tego możesz skorzystać z dołączonego modułu SVG Embed (niechętnie wybrany w stosunku do pola pliku dla SVG w tej dyskusji ) lub z tego piaskownicy (nie oficjalnie wydany) moduł SVG .

AKTUALIZACJA: Teraz polecam svgimg również w piaskownicy, ale prawdopodobnie wkrótce zostanie wydany. Używam go w produkcji i jest bardzo szczęśliwy.

mlncn
źródło
1

Jest też inny sposób - użycie modułu Media . Po zainstalowaniu można dodać format SVG w admin / structure / file-types, pod obrazem.

Jeśli się nie mylę, Drupal nadal domyślnie nie zezwala na pliki SVG z powodu problemów z kompatybilnością wsteczną (głównie IE8 i poniżej). Jednak od pewnego czasu umieszczam SVG w projektach i jeszcze nie słyszałem skargi.

karolus
źródło
Nie jestem pewien, czy to właściwa ścieżka, ale Media są zdecydowanie rozwiązaniem tego problemu.
digitgopher
Dla
przypomnienia