Я пишу пользовательский модуль в drupal.
Цель:
1. Upload a csv file
2. Display its content in a tabular layout.
3. On confirmation, save it in database.
Проблема, с которой я сталкиваюсь:
- Я не могу загрузить ни один файл. Я не получаю ничего в $ _FILES, даже если я загружаю или нет. >> решено
- Как мне разделить процесс? Предположим, мне удалось загрузить файл [действительно с вашей помощью;)], и я сохраняю файл, предположим, в каталоге drupal6 / uploaded_data. Как мне перенаправить на следующую страницу, где я могу прочитать из файла и показать табличные данные для подтверждения.
Коды :)
хуки меню и все
function productsadmin_menu() {
$items['admin/settings/product-administration'] = array(
'title' => 'Product Administration',
'description' => 'Upload products data',
'page callback' => 'productsadmin_form',
'access arguments' => array('access content'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function productsadmin_form() {
return drupal_get_form('productsadmin_my_form');
}
Эта функция передается drupal_get_form()
function productsadmin_my_form() {
$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['csv'] = array(
'#type' => 'file',
'#title' => 'Product Catalog',
'#description' => 'Product catalog in specified csv format',
'#required' => FALSE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;
}
Проверка (часть, которая не работает, комментируется)
function productsadmin_my_form_validate($form, &$form_state) {
if($form_state['values']['csv'] == "") {
form_set_error('csv', t('Please input product catalog csv data'));
}
/* // Check if file is uploaded (Not working)
if ($_FILES['files']['name']['csv'] == '') {
form_set_error('csv', t('Please upload product catalog' . $rahul_vals));
}
*/
}
Отправить действие
function productsadmin_my_form_submit($form, &$form_state) {
/*
1. Move File to uploaded_dir
2. Change the header so that it is redirected to new page
*/
}