Здравствуйте Товарищи !
Не могу решить вроде бы тривиальный задачу !
Имеем: Drupal 7
Необходимо в админке модуля указать путь к текстовому файлу (загружать никуда не надо !), который потом будет парситься в самом модуле. Указывать желательно через кнопку - вызов проводника. Написал такую конструкцию:
<?php
function quote_admin_settings() {
$form['q_path'] = array(
'#type' => 'file',
'#title' => 'Файл цитат',
'#size' => 100,
'#description' => 'Выберите текстовый файл',
'#default_value' => variable_get('q_path'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Сохранить'),
);
$form['run_cron'] = array(
'#type' => 'submit',
'#value' => t('Запустить Крон'),
);
return
$form;
}
function
quote_admin_settings_submit($form, &$form_state) {
variable_set('quote_path', $form_state['values']['q_path']);
if (
$form_state['values']['op'] == t('Запустить Крон')) {
$form_state['redirect'] = 'admin/reports/status/run-cron';
}
else {
drupal_set_message(t('Настройки сохранены'));
}
}
function
theme_quote_admin_settings($form) {
return variable_get('quote_path');
}
?>
Вроде бы после нажатия на субмит в quote_path должен содержаться путь, или хотя бы имя файла, но его там нет, хоть убей, просто пустая строка !
И не могу подходящего примера нигде найти, может плохо искал, не знаю, голова уже не варит.
Уже замучился, помогите пожалуйста !
Комментарии
http://drupalcode.org/project/examples.git/blob/refs/heads/7.x-1.x:/file...
А что содержитьтся в $form_state['values']['q_path']? в функции сабмита..
ничего не содержится, выводит пустую строку.
xxandeadxx за ссылку спасибо, разбираюсь, но пока того что нужно найти не могу там.
Интересно что если использовать textfield то все отлично работает, но textfield не очень устраивает - бить в ручную полностью путь к файлу согласитесь не очень удобно.
Мне бы кусочек кода где решен вопрос, неужели никто не сталкивался...
Все очень просто-))
Вспоминаем, где в друпале имеется форма загрузки файла..
Например загрузка логотипа для темы:
модуль system
файл system.admin.inc
функции
system_theme_settings
system_theme_settings_submit
Так как хочет автор - никак
Спасибо Орион, но там тоже через аплоад сделано. Похоже RxB прав, по другому никак...
В общем через аплоад получилось, но конечно не совсем так как хотелось...
Однако Я не понимаю зачем такой гемморой, по логике $form_state['values']['file'] просто должна возвращать путь к фалу, может конечно у разработчиков были свои причины, но как-то коряво у них получилось, имхо.
Всем спасибо за помощь Мужики.
Пиши, жалуйся http://www.w3.org/