Webform: вывод загруженного изображения
Как разработать форму обратной связи с прикреплением файла и последующей отправкой файла на почту? Читайте :) 27 December, 12:03
5520
0
Создание формы обратной связи через Webform с возможностью прикрепления файлов. |
Задача:У пользователя есть возможность загружать графические файлы через формы, созданные модулем webform. Функционал не сложный по реализации - стандартный компонент File. Есть один минус из коробки - все загруженные файлы выводятся просто как ссылка на файл. Наша задача - вывести загруженное изображение как картинку (причем вывести не только в админке сайта, но и в отправляемых письмах) Решение:Для тех, кто не любит много букв, ответ простой - нужно переопределить функцию theme_webform_display_file. А теперь пример реализации данной задачи в своем модуле. Шаг первый: /** * Реализация hook_theme_registry_alter(). */ function ИМЯМОДУЛЯ_theme_registry_alter(&$theme_registry) { $theme_registry['webform_display_file']['function'] = 'frz_tweaks_webform_display_file_custom'; }
Шаг второй: /** * Новая функция темизации. */ function frz_tweaks_webform_display_file_custom($variables) { $element = $variables['element']; $file = $element['#value']; $url = !empty($file) ? webform_file_url($file->uri) : t('no upload'); if(!empty($file)){ $url = webform_file_url($file->uri); $link = l($file->filename, $url); $basename = basename($url); if (strrpos($basename, '.')!== false ) { $file_extension = substr($basename, strrpos($basename, '.')+1); } else { $file_extension = ''; } if(in_array($file_extension, array('jpg', 'bmp', 'jpeg', 'gif'))){ //У нас картинка. Выводим как изображение $variables = array( 'path' => $url, 'alt' => 'Foto', 'attributes' => array(), ); $img = theme_image($variables); $link = l($img, $url, array('attributes' => array( 'target'=> '_blank'), 'html' => TRUE)); } }else{ $url = t('no upload'); } return !empty($file) ? ($element['#format'] == 'text' ? $url : $link) : ' '; }
Причем мы сохраняем стандартный функционал - если файл не является изображением, мы будем выводить просто ссылку на него. Теперь в админке сайта будет выводится загруженное изображение.
|
Ключевые теги
Рекомендуем прочитать:
Подписаться на новые статьи
Свежие записи
-
09 November
-
09 October
-
30 August