RSS

Pembuatan Module Drupal Sederhana – 4 (Hook Form)

03 Mar

Kali ini saya akan sedikit membahas tentang hook form. Hook form adalah cara yang digunakan Drupal untuk membangun sebuah form. Cara pendeklarasiannya sedikit berbeda dengan HTML biasa. Pada Drupal, kita menggunakan struktur array untuk membangun sebuah form.
Langsung aja deh, kita buat sebuah halaman baru pada hook menu untuk menampilkan form guestbook

<?php 
function guestbook_menu(){   
  $items['guestbook/view'] = array(
	'title' => 'Guest Book',
	'description' => 'Create Guest Book',
	'page callback' => 'drupal_get_form',
	'page arguments' => array('guestbook_helloworld_form'),
	'access arguments' => array('access content'),
	'type' => MENU_CALLBACK,
		);
  return $items;
}

Sebelum melangkah ke cara deklarasi form, saya sedikit jelaskan beberapa point penting untuk code diatas:
1. ‘page callback’ => ‘drupal_get_form’, artinya kita memanggil halaman guestbook/view memanggil fungsi drupal_get_form dimana drupal_get_form adalah fungsi bawaan Drupal untuk mengenali struktur hook form dan menerjemahkan menjadi form HTML.

2. ‘page arguments’ => array(‘guestbook_helloworld_form’), artinya pada fungsi drupal_get_form, kita memanggil fungsi guestbook_helloworld_form yang berisi struktur form secara Drupal. Code ini bisa dibaca demikian: drupal_get_form(‘guestbook_helloworld_form’).

Jangan lupakah hal penting, setelah menambahkan atau mengubah hook_menu, lakukan clear cache Drupal (bukan clear cache Browser) melalui Configuration>>Performance>>Clear Cache, atau lewat url /admin/config/development/performance dan Clear Cache.
Nah berikutnya kita akan menulis code untuk menghasilkan form

<?php
function guestbook_menu(){
  $items['guestbook/view'] = array(
	'title' => 'Guest Book',
	'description' => 'Create Guest Book',
	'page callback' => 'drupal_get_form',
	'page arguments' => array('guestbook_helloworld_form'),
	'access arguments' => array('access content'),
	'type' => MENU_CALLBACK,
		);
  return $items;
}

function guestbook_helloworld_form($node, &amp;$form_state, $item = array()){
	$form['name'] = array(
		'#type' => 'textfield',
		'#title' => t('NAME'),
		'#size' => 50,
		'#required' => TRUE, 	
	);
	$form['description'] = array(
		'#type' => 'textarea',
		'#title' => t('Short Description about yourself'),
	);
	$form['submit'] = array(
		'#type' => 'submit',
		'#value' => t('Save'),
	);
	return $form;
	}

Pada code diatas, kita akan menampilkan sebuah textfield bernama NAME, sebuah textarea bernama Short Description about yourself, dan sebuah button submit bernama Save.

Untuk penjelasan lebih lanjut tentang bagaimana cara membuat form dan input type yang lain beserta attribute-attribute yang digunakan secara Drupal, silahkan baca Drupal API

Sekarang kita panggil halaman /guestbook/view
maka akan muncul tampilan ini (jika benar :mrgreen:)

Guestbook View

Guestbook View

Berikutnya saya akan coba bahas CRUD guestbook dengan cara Drupal, semoga masih ada waktu luang lagi…:mrgreen:

Terimakasih banyak,
Salam,
Andrew Junior

 
4 Comments

Posted by on 3 March 2013 in Software & Development, Website

 

Tags: , , , , , ,

4 responses to “Pembuatan Module Drupal Sederhana – 4 (Hook Form)

  1. lev test

    4 March 2013 at 17:37

    Awesome website you have here but I was wanting to know if you knew of any discussion
    boards that cover the same topics discussed in this article?
    I’d really love to be a part of community where I can get advice from other experienced individuals that share the same interest. If you have any recommendations, please let me know. Many thanks!

     
  2. nurjalih

    2 August 2013 at 13:45

    pak ditunggu update an tutorialnya untuk drupal crud nya 🙂

     
  3. daryusman

    14 October 2014 at 14:30

    pak aplikasi CRUD nya kapan nih…

     
    • pionize

      14 October 2014 at 21:49

      iya nih blm kebikin2 malah..coba weekend ini saya usahakan..
      nanti kalau jadi ya saya updatenya di http://pionize.com

       

Monggo share dimari :D

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: