создание материала (товара)

Главные вкладки

Аватар пользователя _user001_ _user001_ 24 июня 2013 в 18:40

доброго времени!

есть магазин на drupal 6 + ubercart, в нем (магазине, в админке) есть форма добавления товара. с некоторых пор она (стандартная форма) перестала устраивать. написал свой модуль, который делает "упрощенную" форму добавления товара, все работает (проходит валидация, сабмитится как-надо, добавляются/обновляются строки в каких-надо таблицах и т.п.). НО! понадобилось добавление фото (изображений) к товару через "упрощенную" форму Sad через стандартную все прекрасно работает, но не могу пока найти где и как добавляются поля с обработкой изображений.

подскажите, что проще сделать? подогнать стандартную форму добавления товара под себя (скрыть "ненужные" поля) или "прикрутить" к "упрощенной" форме обработку изображений? и главное, как? куда смотреть, в смысле копать?

заранее СПАСИБО за советы!

Комментарии

Аватар пользователя sg85 sg85 24 июня 2013 в 22:00

для того, чтобы прикрутить фото, необходимо сначала добавить сам файл в таблицу files, а затем в поле ноды указать fid этого файла, там код простейший, но с мобилы пример дать проблематично.

Аватар пользователя _user001_ _user001_ 25 июня 2013 в 12:33

sg85, при сабмите формы - upload-им файл, добавляем (изменяем) сроку в таблицу {files}, получаем fid и добавляем его в $form_state ? так получается?

зайди не с мобилы Smile подскажи кодом, плз Smile

Аватар пользователя sg85 sg85 25 июня 2013 в 15:22

да я бы рад, но сейчас я в другой стране и единственная электронная хрень при мне это смартфон. аплодить ничего не надо, на сколько помню, к сабмиту он уже будет на сервере, останется только его обработать, это при условии, что используете form API, так же советую почитать про элемент формы file, на сколько помню там с ним были какие то казусы с загрузкой валидацией и т.д.

Аватар пользователя _user001_ _user001_ 30 июня 2013 в 10:45

вот порылся, покопался Smile
за основу взял этот код:
<?php
function myform() {
$form = array();
// If this #attribute is not present, upload will fail on submit
$form['#attributes']['enctype'] = 'multipart/form-data';
$form['file_upload'] = array(
'#title' => t('Upload file'),
'#type' => 'file',
);
$form['submit_upload'] = array(
'#type' => 'submit',
'#value' => 'Submit'
);
return $form;
}

function myform_submit($form, &$form_state) {
$validators = array();
$dest = 'upload_directory';
$file = file_save_upload('file_upload', $validators, $dest);
//$file will be 0 if the upload doesn't exist, or the $dest directory
//isn't writable
if ($file != 0) {
$dest_path = 'upload_directory/file';
$result = file_copy($file, $dest_path, FILE_EXISTS_RENAME);
if ($result == 1) {
//Success, $file object will contain a different (renamed)
//filename and filepath if the destination existed
}
else {
//Failure
}
}
else {
form_set_error('myform', t("Failed to save the file."));
}
}
?>
отсюда - drupal.org/node/347251

правильно копаю, да? Smile

тут кнопка "обзор" и "сохранить" (сабмит). но везде встречается : "обзор"-"закачать"-"сохранить", и маленькая картинка появляется после "закачать".
будем искать... (с) Smile