Az lenne a cél, hogy kódból hozzunk létre és dolgozzunk is fel (submit) egy űrlapot. Sajnos nem találtam túl sok érdemi infót d7-re, pedig kerestem bőszen. Az alábbi kódrészlet futtatásával próbálkozom, egyelőre csak egy Devel blokkban:
$search_form_state['build_info']['args'] = array(); $search_form = drupal_build_form('search_block_form', $search_form_state); form_set_value($search_form['search_block_form'], 'drupal', $search_form_state); $search_form_state['submitted'] = TRUE; $search_form_state['programmed'] = TRUE; $search_form_state['process_input'] = TRUE; drupal_process_form('search_block_form', $search_form, $search_form_state);
A cél az lenne, hogy a kód hatására fusson le a keresés, vagyis a Drupal hajtson végre egy keresést a „drupal” szóra, és ennek eredménye jelenjen meg, pontosan úgy, mintha a felhasználó begépelte volna ezt a szót a kereső blokkba. A fenti kód eredménye viszont csak egy „Please enter some keywords.” hibaüzenet (és nincs redirect sem), vagyis mintha a drupal_process_form futása a !form_get_errors() résznél elakadna. Ezek szerint a form_set_value()-t nem használom helyesen? Mivel nem állítódik be a keresett kifejezés, pedig a drupal_process_form() hívása előtt mintha jó lenne az érték egy dsm($search_form_state) szerint.
Nem elég?
Nem válasz a kérdésre, de az nem elég, hogy
drupal_goto('search/node/drupal');
?
A drupal_process_form() helyett a drupal_form_submit('search_block_form', $search_form_state) sem irányít át, de legalább nem okoz hibát.
Fox Mulder
drupal_form_submit?
drupal_form_submit?
http://api.drupal.org/api/drupal/includes--form.inc/function/drupal_form...
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Ohh yeah
A jelzett probléma persze a végtelenül leegyszerűsített változat volt. A valós helyzetben - entity_translation modul, a hozzászólások fordítása kódból a Bing Translation API hívogatásával - a drupal_form_submit() használata tényleg a megoldáshoz vezet, bár van még néhány - egyelőre - érthetetlen PHP notice a megoldandó feladatok között, de nagyjából működik.
Kösz.
Rágd meg jól a dolgot, mert
Rágd meg jól a dolgot, mert sok esetben módosítanod kell a $GLOBALS['user']-t és függetleníteni kell magad a $_SESSION-től is.
Minden notice elhárítva
No, minden notice drupalish módon elhárítva, de nem akarok nagyon offolni. A drupal_form_submit() használata valóban A nagybetűs megoldás az eredeti kérdésemre, bár kétségtelen, hogy igen nagy mértékben kell túrni még hozzá, a Drupal forrásától kezdve a doksikon át a fél webet, és nagyon meg kell érteni sokminden egyebet is ahhoz, hogy stabil, működőképes legyen a produktum.
Mutatsz helyes kódrészletet?
Mutatsz helyes kódrészletet?
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
Hogyne