Возникла задача - сделать интерфейс для редактора сайта, позволяющий выполнять импорт данных из файла CSV в материалы Друпала. Проще всего для этого использовать модуль Feeds, имеющий массу полезных расширений.
Сделаем форму загрузки файла для редактора сайта:
function module_form($form,&$form_state){$form['info']=array('#markup'=>'<div class="rinfo">Выберите файл CSV, загрузите его и нажмите "Обновить".</div>',);$form['reg_file']=array('#type'=>'managed_file','#title'=>'Файл CSV','#required'=>TRUE,'#upload_location'=>'public://registry','#upload_validators'=>array('file_validate_size'=>array(10*1024*1024),'file_validate_extensions'=>array('csv'),),);$form['submit']=array('#type'=>'submit','#value'=>'Обновить',);return$form;}
В #upload_location указан путь, по которому будет записан файл, в #upload_validators заданы ограничения: формат csv и максимальный размер 10 Мб. В остальном, обычная форма.
Часто перед импортом, надо проделать какие-то манипуляции с файлом CSV. Например, старые версии Excel не умели сохранять CSV в формате UTF-8. А может быть, требуется выкинуть какие-то строки из заголовка таблицы.
Сделам это в функции отправки формы.
function module_form_submit($form,&$form_state){// Создаем объект Друпала для загруженного редактором файла$src= file_load($form_state['values']['reg_file']);// Создаем временный файл, который будем использовать для импорта$dest= drupal_tempnam(file_directory_temp(),'reg');// Открываем исходный файл для чтения$fsrc=fopen($src->uri,"r");if($fsrc){// а временный - для записи$fdest=fopen($dest,"w");if($fdest){$i=0;while(($line=fgets($fsrc))!==false){// делаем что нам надо с каждой строкой. к примеру - меняем кодировку, // удаляем выборочно строки и т.д. $line=mb_convert_encoding($line,'utf-8');fputs($fdest,$line);}fclose($fdest);}fclose($fsrc);
file_delete($src);}// А теперь запускаем импорт. Здесь importer - это имя сценария импорта из списка feeds// по адресу /admin/structure/feeds $source= feeds_source("importer");// Загружаем конфигурацию сборщика$fetcher_config=$source->getConfigFor($source->importer->fetcher);// подсовываем ему наш csv файл$fetcher_config['source']=$dest;// и назначаем измененную конфигурацию$source->setConfigFor($source->importer->fetcher,$fetcher_config);$source->save();// поехали$source->startImport();}
В итоге, редактор сайта получает простую и ясную форму, через которую он может выбрать файл и синхронизировать содержание сайта с файлом CSV.
Выполним профессиональную фотосъемку вашей продукции, офиса, производства, участка или любых других объектов.
Оплата услуг
Оплатить услуги разработки, модернизации, поддержки и размещения сайтов можно любыми удобными вам способами как в интернете, так и оффлайн. Оформляются все бухгалтерские документы.
+7 (927) 207-18-20
info@formatix.ru
formatix.ru
telegram: @formatix
Недавние проекты
Сайт компании "Спецгидротехника"
Сайт компании "Спецгидротехника", занимающейся производством мобильных земснарядов и выполненнием гидротехнических работ.
Без-лжи.рф
Запущен сайт Центра психофизиологических исследований "Авангард", предлагающего услуги по тестированию на детекторе лжи. На сайте Вы можете найти описание услуг центра и заказать выездную проверку.
Сайт группы компаний "Аудитэкоконс"
Разработан сайт для межрегиональной фирмы "Аудитэкоконс", занимающей ведущие позиции на рынке аудитoрcких и консалтинговых услуг. Компания входит в ТОП 50 крупнейших аудиторских фирм России и предлагает услуги консалтинга на всей территории Российской Федерации.
Все новости
Веб-почта
Вход в веб-почту для клиентов Formatix Labs
Так же, Вы можете установить и настроить почтовую программу на компьютере или смартфоне.
Поделитесь ссылкой:
Сайты наших клиентов расположены на надежном сервере в современном дата-центре в Москве.
Добавить комментарий
Программный импорт с помощью feeds
Возникла задача - сделать интерфейс для редактора сайта, позволяющий выполнять импорт данных из файла CSV в материалы Друпала. Проще всего для этого использовать модуль Feeds, имеющий массу полезных расширений.
Сделаем форму загрузки файла для редактора сайта:
В #upload_location указан путь, по которому будет записан файл, в #upload_validators заданы ограничения: формат csv и максимальный размер 10 Мб. В остальном, обычная форма.
Часто перед импортом, надо проделать какие-то манипуляции с файлом CSV. Например, старые версии Excel не умели сохранять CSV в формате UTF-8. А может быть, требуется выкинуть какие-то строки из заголовка таблицы.
Сделам это в функции отправки формы.
В итоге, редактор сайта получает простую и ясную форму, через которую он может выбрать файл и синхронизировать содержание сайта с файлом CSV.
Размещение и поддержка сайтов на Drupal
Предлагаем услуги по размещению и поддержке сайтов, разработанных как в нашем бюро, так в других веб-студиях.
Мы готовы взять на себя все работы по поддержке вашего сайта или электронного магазина и гарантируем его доступность и безопасность.
Подробнее ...
Предметная фотосъемка
Выполним профессиональную фотосъемку вашей продукции, офиса, производства, участка или любых других объектов.
Подробнее ...
Оплата услуг
Оплатить услуги разработки, модернизации, поддержки и размещения сайтов можно любыми удобными вам способами как в интернете, так и оффлайн. Оформляются все бухгалтерские документы.
Оплатить ...