#ahah példát szeretnék kérni

Keveqiah képe

Estét.
szeretnék egy egyszerű példát, vagy útmutatást kérni egy #ahah fájl feltöltés formra.
Amit eddig találtam és próbáltam, az vagy nem csinált semmit, vagy hibával megállt.

Egy node típus formját egészítettem ki az alábbival:

		$form['#attributes'] = array('enctype' => "multipart/form-data");
 
		$form['kep'] = array(
			'#type' => 'fieldset',
			'#title' => t('<b>Kép(ek)</b>'),
			'#collapsible' => true,
			'#collapsed' => false,
			'#weight' => 1,
			);
 
		$form['kep']['box'] = array(
			'#type' => 'markup',
			'#prefix' => '<div id="box">',
			'#suffix' => '</div>',
			'#value' => '&nbsp;',
		);
 
		$form['kep']['picture'] = array(
			'#type' => 'file',
			'#title' => t('Kép'),
			);
		$form['kep']['p_submit']	= array(
			'#type' => 'submit',
			'#value' => t('Feltölt'),
			'#submit' => array('ms_upload_picture'),
			'#ahah' => array(
				'path' => 'admin/xyz/upload',
				'wrapper' => 'box',
				)
			);

Az oldal

	$items['admin/xyz/upload'] = array(
		'page callback' => 'ms_upload_picture',
		'access arguments' => array('upload'),
		'type' => MENU_CALLBACK,
		'file' => 'ms_upload.inc',
	);

és a függvény

function ms_upload_picture()
{
	$output = 'valami'
 
	print drupal_json(array('status' => TRUE, 'data' => $output));
	exit();
}
függvény azért is csak ilyen rövid, mivel nem tudom hogyan érhetném el a $_FILES tömböt, vagy bármit ami a feltöltéshez kapcsolódna.

Ha tudnátok egy nagyon egyszerű példát adni, hogyan lehet ezt megvalósítani és esetlegesen validálni is, annak nagyon örülnék.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Keveqiah képe

Holnap átnézem. Ha valami kínom lesz, sikítok. :)
Googléval megtaláltam már ezt az oldalt, de akkor 404-et írt rá. (gondolom régi bejegyzés lehetett)

0
0
Keveqiah képe

Az oldal hasznos lenne, ha a tartalmak elérhetőek és teljesek lennének. Körülbelüli leírásokkal és a semmibe vezető linkekkel sajnos nem megyek sokra.
Valamint szimpla adatküldést meg tudok valósítani #ahah val, csak a file mező értékét nem érem el (vagy nem tudom hogyan érhetném el), így nem tudok felöltést készíteni.
Ha bárkinek van még tippje #ahah feltöltésre, az kérem ossza meg velem :)

0
0
aboros képe

ott a filefield modul maga, mint "példaprogram". egyszer pptol hallottam, hogy az (is) a jó az ópenszószba, hogy ha nem tudod hogy működik valami, megnézed.

0
0

-
clear: both;

Keveqiah képe

Tisztában vagyok vele, hogy ott van, néztem is, de egy nagyon alap, mindentől mentes feltöltés példa kellene.
Kezdésként pl, hogy hogyan kapom meg az #ahah által meghívott függvényből a form file típusú mező tartalmát.

Jelenleg ez van a függvényben:

  $field = content_fields($field_name, $type_name);
 
  // Build the new form.
  $form_state = array('submitted' => FALSE);
  $form_build_id = $_POST['form_build_id'];
  $form = form_get_cache($form_build_id, $form_state);
 
  if(empty($form['files']['picture']))
  {
    drupal_set_message(t('Nincs fájl kiválasztva'), 'error');
    print drupal_to_js(array('data' => theme('status_messages')));
    exit;
  }
 
  print drupal_to_js(array('status' => TRUE, 'data' => theme_item_list($form['post'])));
  exit;

Ez addig jó is, hogyha üres a file mező, akkor hiba. FF firebug konzol XHR fülön szépen meg is jelenik a kérés és a Post adatok között ott vigyorog a "files[picture]" mező üresen.
Viszont ha már választok ki fájlt, a kérés nem teljesül.

Tényleg ennyire bonyolult dolgot kértem, vagy mindenki csak a már meglévő modulokat használja és kopipaszte módon szerkesztgeti?

0
0
Keveqiah képe

Csináltam egy mini modult, hogy azon teszteljem a feltöltést. Működik is, viszont szeretném bővíteni azzal, hogy a feltöltés után az feltöltött fájl bizonyos adatait kiírja.
Csak épp azt nem tudom, hogyan kell(ene) bővíteni hozzá a formot vagy az ahah függvényt.

Ha átnéznétek és/vagy javítanátok, azt megköszönném, akár anyagi honorálással is.
A modul:
upload_example.zip

És az elérhetőségem, ha úgy gondolja valaki, hogy anyagi juttatásért bővítené ki.
kisb[@]vipmail[.]hu

0
0
silversk8r képe

Adj' Isten!
köszi a modult, pár hete nekem is nagyon jól jött volna :)
talán mág mindig keresed a választ, és másoknak is jól jöhet. Az alábbi kódot tedd az $output = theme('status_messages') . drupal_render($form); elé

    //drupal_set_message(var_export($_FILES, true));
    if ($_FILES['files']['error']['up_field'] == 0 && $_FILES['files']['size']['up_field'] > 0) {
      $fileinfo = 'Feltöltött fájl neve: \''. $_FILES['files']['name']['up_field'] .'\', mérete: '. $_FILES['files']['size']['up_field'];
      drupal_set_message($fileinfo);
      //avagy
      $form['aha']['#prefix'] .= $fileinfo;
    }

nem volt jobb ötletem mint a php $_FILES tömbjéből elővenni az adatokat.

ahah fájlfeltöltés működése: http://drupal.org/node/399676#comment-1451556

0
0