RSS

Pembuatan Module Drupal Sederhana – 2 (Module)

21 Feb

Mari melanjutkan artikel sebelumnya, masih tentang pembuatan module sederhana untuk Drupal. Kali ini saya akan memperdalam dulu tentang konsep hook khususnya pada Drupal.

Sedikit mengulang, hook digunakan untuk mengaitkan fungsi-fungsi pada module kita ke core Drupal itu sendiri, tanpa mengubah core aslinya. Aturan penulisan hook adalah dengan menggunakan nama module untuk menggantikan nama hook itu. Contoh: hook menu pada module guestbook, maka akan ditulis guestbook_module. Oh ya, semua fungsi diletakkan di file .module supaya bisa diakses secara langsung oleh Drupal itu sendiri.

Fungsi-fungsi dan hook pada Drupal dapat dilihat di Drupal API.

Mari masuk ke pembuatan module yang sederhana untuk Drupal 7. untuk Drupal 6 sendiri tidak berbeda jauh.

1. Buat folder baru bernama guestbook dan letakkan di dalam folder Drupal /sites/all/modules atau /sites/default/modules.

2. Di dalam folder guestbook tersebut, buatlah file baru bernama guestbook.info yang berisi

name = GuestBook
description = Guest Book module
package = GuestBook
version = VERSION
core = 7.x

file guestbook.info ini mutlak diperlukan supaya module guestbook ini dikenali oleh Drupal.

3. Buat file baru bernama guestbook.module di dalam folder guestbook tadi dan mari kita masuk ke implementasi hook yang pertama dan yang merupakan dasar dari segala di Drupal yaitu hook menu.

Hook Menu
Sesuai namanya, hook menu digunakan untuk membuat menu baru atau halaman baru. Jadi jika kita ingin membuat suatu halaman baru, maka kita harus menggunakan hook menu.
Contoh:

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

Seperti penjelasan sebelumnya, karena module bernama guestbook, maka hook menu implementasinya adalah guestbook_menu.
Nah pada contoh diatas tersebut, satu halaman dengan alamat guestbook telah diciptakan (cara mengakses contohnya: localhost/drupal/guestbook).

Halaman guestbook tersebut terdiri dari array dengan key nya adalah title, description, page callback, page arguments, access arguments, dan type. Untuk title dan description ya standarlah sesuai dengan namanya.

Page callback digunakan untuk memanggil fungsi yang digunakan pada halaman tersebut, sedangkan access arguments digunakan untuk memberikan argument untuk mengakses halaman tersebut.

Di sinilah salah satu kelebihan Drupal, akses ke halaman tersebut dapat dibatasi agar hanya dapat diakses dengan aturan tertentu dengan menggunakan acces arguments dan access callback (dijelaskan nanti). Type digunakan untuk menandakan tipe/jenis dari halaman tersebut.

Penjelasan lebih lanjut mengenai hook menu dapat dilihat di Drupal API

Pada halaman tersebut akan memanggil fungsi guestbook_helloworld_form, oleh karena itu mari kita buat fungsi baru bernama guestbook_helloworld_form

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

function guestbook_helloworld_form() {
  return "Hello World";
}

lanjut yuk ke langkah ke 4

4. Aktifkan module di modules (localhost/drupal7/admin/modules), cari module guestbook, pilih, dan save. Untuk jaga-jaga, clear cache lewat Configuration>>Performance dan klik clear cache (atau lewat localhost/drupal7/admin/config/development/performance)

Setiap kali kita mengubah hook menu (dan beberapa hook lain) atau mendaftarkan hook baru, kita perlu melakukan clear cache lagi.

5. Akses guestbook yang kita buat melalui localhost/drupal7/guestbook (sesuai path yang kita daftarkan tadi lewat hook menu)

6. Dan…hasilnya akan muncul string “Hello World”😀

Mungkin banyak yang merasa Drupal ini susah dan ribet, tidak seperti php biasa pada umumnya. Tapi jika sudah benar-benar menguasai maka akan benar-benar terasa kemudahan dan manfaat Drupal ini.

Kali ini cukup sekian saja, berikutnya nanti saya akan bahas pengembangan Drupal yang lebih advance, tapi masih yang sederhana saja dulu daripada pusing…:mrgreen:

Terimakasih banyak,
Salam,
Andrew Junior

 
7 Comments

Posted by on 21 February 2013 in Software & Development, Website

 

Tags: , , , ,

7 responses to “Pembuatan Module Drupal Sederhana – 2 (Module)

  1. lev test

    4 March 2013 at 17:40

    Excellent post. I will be facing a few of these issues as well.

    .

     
  2. premiumpress themes

    18 March 2013 at 07:30

    After I initially commented I appear to have clicked the -Notify me when new comments are added- checkbox and from now on each time a
    comment is added I get 4 emails with the exact same comment.
    Perhaps there is an easy method you are able to remove me from that service?

    Many thanks!

     
  3. buy magic of making up

    19 March 2013 at 09:16

    Wow that was strange. I just wrote an very long comment but after I clicked submit my comment didn’t show up. Grrrr… well I’m
    not writing all that over again. Regardless, just wanted to say superb blog!

     
  4. Audrey

    31 March 2013 at 01:33

    Excellent blog you have here.. It’s difficult to find excellent writing like yours nowadays. I truly appreciate people like you! Take care!!

     
  5. nurjalih

    26 June 2013 at 12:17

    pak saya sudah mengikuti tutorial ini, namun ada beberapa kendala yang saya alami, yaitu ketika melakukan pemanggilan url

    jika saya memanggil seperti ini http://localhost/drupal/guestbook halaman langsung ke redirect ke localhost/xampp

    yang kedua jika saya panggil menggunakan parameter seperti ini http://localhost/drupal/?=guestbook

    yang saya dapatkan adalah pesan yang muncul acces denied

    kira-kira pa yang salah ya pa?

     
    • pionize

      26 June 2013 at 12:33

      mungkin step by step pengecekannya bisa seperti ini
      1. apakah module nya sudah diaktifkan?
      2. kemudian pastikan alamat yang diakses sesuai dengan hook_menu nya, beserta isi dari array di hook menu nya..salah sedikit biasanya tidak jalan
      3. kemudian cek juga permissionnya, yaitu access arguments atau access callback dari hook menu
      4. cek juga apakah drupalnya sudah clean url, paling gampang jika menuju halaman admin dll, tidak ada parameter q di url

       
  6. nurjalih

    2 July 2013 at 08:42

    terima kasih pak

     

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: