AdityaDees: drupal

Hot

https://publishers.chitika.com/

Contact us for advertising.
Showing posts with label drupal. Show all posts
Showing posts with label drupal. Show all posts

28 October 2012

Genius's Guides to: membuat module Drupal 6 bagian 2

05:14 0

Nah setelah pada posting sebelumnya kita mengenal dasar-dasar coding pada file .module-nya Drupal, kali ini kita akan membahas mengenai file bernama .install yang berisikan definisi dari struktur tabel database untuk kita gunakan pada module. Drupal memungkinkan kita menambahkan atau menghapus tabel-tabel module kita pada struktur database Drupal melalui hook_schema, hook_install dan hook_uninstall.


Pada contoh ini misalnya kita akan membuat sebuah tabel yang nantinya akan kita gunakan sebagai tempat untuk menampung record atau data dari module kita. Jumlah tabel yang kita bisa tambahkan bisa lebih dari satu. Berikut isi dari file .install untuk module Latihan kita:



/**
* Module Latihan
* Copyright AdityaDees (adityadees@gmail.com) 2012
* Licensed under GPL v3
*
*/

/**
* Fungsi ini dijalankan oleh Drupal ketika kita pertama menginstall module Latihan
*/
function latihan_install() {
// Create tables.
drupal_install_schema('latihan');
}

/**
* Fungsi ini dijalankan oleh Drupal melakukan un-install pada Latihan
*/
function latihan_uninstall() {
// Remove tables.
drupal_uninstall_schema('latihan');
}

/**
* Pada fungsi ini kita mendefinisikan struktur tabel2 database yang akan
* kita gunakan untuk menyimpan data2 module Latihan
*/
function latihan_schema() {
$schema['latihan'] = array(
'description' => 'Tabel untuk menyimpan data module Latihan.',
'fields' => array(
'lat_id' => array(
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
'description' => "ID/Key utama tabel latihan"
),
'lat_judul' => array(
'type' => 'varchar',
'length' => '250',
'not null' => TRUE,
'default' => '',
'description' => "Judul konten latihan"
),
'lat_content' => array(
'type' => 'text',
'not null' => TRUE,
'default' => '',
'description' => 'Konten dari tabel latihan.'
)
),
'primary key' => array('lat_id'),
'indexes' => array(
'judul' => array('lat_judul')
)
);

return $schema;
}

Kita bisa lihat pada implementasi hook_schema yaitu pada fungsi latihan_schema, kita mendefinisikan tabel dengan nama "latihan" dengan dua tiga field yaitu "lat_id", "lat_judul" dan "lat_content", dengan primary key-nya adalah "lat_id" dan juga sebuah indeks dengan nama "judul" pada field "lat_judul". Drupal akan menerjamahkan definisi ini menjadi syntax SQL yang akan di-eksekusi pada saat module "Latihan" pertama kali di-aktifkan.


Pertanyaan berikutnya adalah bagaimana kita memasukkan data ke dalam tabel module "Latihan"? Jawaban sederhananya adalah kita harus membuat form untuk memasukkan data tersebut. Terus bagaimana kita buat form di Drupal? Seperti saya pernah sebutkan sebelumnya Drupal sudah menyediakan API yang sangat lengkap, termasuk di dalamnya adalah Form API yang memudahkan kita dalam membuat form serta memproses form, termasuk dalam hal validasi.


Tanpa banyak basa-basi, mari kita tambahkan kode berikut ini pada file latihan.module kita:



/**
* Fungsi ini mendefinisikan struktur form yang akan kita gunakan untuk
* input data
* @return Array array struktur form
*/
function latihan_inputdata_formdata() {
// definisikan elemen form
$form['judul'] = array(
'#type' => 'textfield',
'#title' => t('Judul konten Latihan'),
'#default_value' => '',
'#size' => 60,
'#maxlength' => 250,
'#description' => t('Judul konten latihan yang akan kita masukkan ke dalam database')
);

$form['konten'] = array(
'#type' => 'textarea',
'#title' => t('Isi konten Latihan'),
'#default_value' => '',
'#cols' => 60,
'#rows' => 5,
'#disabled' => false,
'#description' => t('Data konten latihan yang akan kita masukkan ke dalam database')
);

$form['data_tersembunyi'] = array('#type' => 'hidden', '#value' => 'Contoh data form tersembunyi');
$form['submit'] = array('#type' => 'submit', '#value' => t('Save'), '#submit' => array('latihan_inputdata_formdata_submit'));
return $form;
}


/**
* Fungsi ini dipanggil ketika form input data latihan di-submit
* Pada fungsi ini kita memanfaatkan Database API Drupal, yaitu fungsi
* db_query() untuk melakukan query SQL ke database
* Data form yang dikirimkan browser bisa kita akses lewat variabel $form_state['values'],
* misalnya untuk mengakses data form "judul" kita mengaksesnya lewat
* $form_state['values']['judul']
*/
function latihan_inputdata_formdata_submit($form, &$form_state) {
db_query("INSERT INTO {latihan} (lat_judul, lat_content) VALUES ('%s', '%s')",
$form_state['values']['judul'],
$form_state['values']['konten']);
// redirect ke web ke halaman/path "latihan"
$form_state['redirect'] = 'latihan';
drupal_set_message(t('"Latihan" form data has been saved'));
}


/**
* Fungsi dibawah ini berfungsi me-render/menampilkan form yang sudah kita definisikan
* pada fungsi latihan_inputdata_form
*/
function latihan_inputdata() {
return drupal_get_form('latihan_inputdata_formdata');
}

Agar form input data-nya gampang diakses tentunya kita harus menempatkan link yang bisa diklik oler user, maka dari itu jangan lupa tambahkan kode berikut pada fungsi latihan_menu:



$items['latihan/inputdata'] = array(
'title' => 'Input data module Latihan',
'page callback' => 'latihan_inputdata',
'access arguments' => array('membuat konten latihan'),
'type' => MENU_NORMAL_ITEM
);


Apabila semua berjalan lancar, maka kita akan bisa melihat tampilan sebagai berikut pada Drupal kita:




Begitulah kira-kira cara dasar pemrosesan form pada Drupal. Pertanyaan berikutnya adalah bagaimana kemudian kita menampilkan data yang sudah kita masukkan ke database? Bagaiman cara kita membuat data yang sudah kita entry bisa di-edit/diubah? Entar dulu yak ane istirahat dulu, nanti ane tulis di bagian 3 :). Semoga bermanfaat

Read More

27 October 2012

Genius's Guides to: membuat module Drupal 6 bagian 1

08:47 0

Okay, mungkin sebagian besar dari kita sudah tahu apa itu Drupal. Drupal adalah Content Management Framework yang memungkinkan kita membangun website atau aplikasi web dinamis. Lah kalau begitu kenapa engga disebut Content Management System alias CMS aja macem Joomla dsb.? Drupal menggunakan kata "Framework" disitu karena Drupal menyediakan sebuah platform yang sangat memungkinkan kita membangun aplikasi web lain dengan memanfaatkan API-nya yang sangat komprehensif. Saya bilang komprehensif karena API yang disediakan Drupal sangat lengkap kap kap.


Di artikel blog kali ini saya mau berbagi kepada rekan-rekan pembaca blog (kalau ada yang baca hehehee) bagaimana cara kita membuat module Drupal kita sendiri. Dengan module kita bisa meng-extend/memperluas fungsi Drupal sesuai dengan kebutuhan kita sendiri. Sebenarnya ada beberapa module "sakti" yang bisa kita gunakan untuk membangun aplikasi web dengan Drupal, contohnya Views, CCK (Drupal 6) dan Token, tetapi bagi beberapa orang, utamanya developer aplikasi web yang lebih suka coding (dan yang lebih kepingin dibilang geek kaya saya hahahahaa), membuat module lebih disukai.


Untuk tutorial ini saya menggunakan Drupal 6. Loh kenapa bukan Drupal 7 yang lebih baru, jawaban jujur dari lubuk hati yang paling dalam adalah, saya belum sempat mempelajari API Drupal 7, dan saya sudah terbiasa dengan Drupal 6 hehehee.


Ok sebelum tutorial ini saya lanjutkan ada beberapa hal yang perlu saya sampaikan, terutama terkait dengan pengetahuan dan skill yang wajib dan perlu kita kuasai apabila ingin membuat module Drupal. Apa saja?




  1. Pemrograman dengan PHP

  2. Pemrograman SQL dengan database server MySQL atau PostgreSQL

  3. Pemrograman dengan HTML, Javascript dan CSS



Nah sebelum kita mulai coding module Drupal kita, maka beberapa hal harus kita persiapkan terlebih dahulu:



  1. Drupal 6 yang sudah terinstall (maaf untuk instalasi Drupal saya tidak cover di tutorial ini, cara sendiri aja yak, banyak kok tersedia di web)

  2. Editor teks favorit anda, untuk Windows saya selalu pakai Notepad++, kalau lagi pake GNU/Linux saya pakai Geany, dan kalau lagi pakai Mac OSX saya pakai Komodo Edit

  3. Cemilan sama Teh :D



Pada dasarnya semua 3rd party module di Drupal, termasuk yang akan kita buat, diletakan pada direktori sites/all/modules. Apabila direktori modules belum ada pada sites/all maka silahkan anda buat terlebih dahulu. Pada contoh ini kita akan membuat sebuah module Drupal dengan nama "Latihan". Langkah-langkahnya adalah sebagai berikut:


  1. Buatlah sebuah direktori bernama latihan di dalam direktori sites/all/modules

  2. Di dalam direktori latihan buatlah tiga buah file teks baru dengan nama sebagai berikut:

    • latihan.info

    • latihan.module

    • latihan.installl



  3. Buka file latihan.info dengan teks editor anda. File latihan.info adalah file metadata yang mendeskripsikan module Drupal. Di dalam file ada beberapa informasi dasar yang harus kita cantumkan. Untuk module "Latihan" kita akan isi sebagai berikut:

    name = Module Latihan
    description = Module sederhana Drupal untuk latihan
    core = 6.x
    package = "Latihan"


    Simpan file.

  4. Selanjutnya kita akan membuka file latihan.module yang merupakan file utama berisi kode PHP untuk module "Latihan". Sebelum mulai coding saya mau sedikit menjelaskan cara kerja Drupal dalam menjalankan module-modulenya. Drupal menyediakan apa yang disebut sebagai "hook" atau "kaitan". "Hook" adalah fungsi-fungsi dari dipanggil pada saat-saat tertentu oleh Drupal. Misalnya kita akan menemui hook bernama hook_block, yang dipanggil ketika Drupal akan menampilkan "Block" pada halaman web. Untuk module maka nama hook diganti dengan format namamodule_namahook, jadi untuk mengimplementasikan hook_block di module kita, maka kita harus membuat fungsi dengan nama latihan_block.

  5. Untuk snippet kode pertama adalah kita akan melakukan implementasi pada hook_perm. hook_perm adalah hook yang menentukan permission apa saja yang disediakan oleh module kita.

    /**
    * Permission apa saja yang disediakan oleh module Latihan?
    * tentukan pada fungsi ini
    * @return array Array yang mendefinisikan permission
    */
    function latihan_perm() {
    $_perms = array(
    'membuat konten latihan',
    'mengubah konten latihan',
    'melihat konten latihan',
    'menghapus konten latihan',
    'ubah konfigurasi module latihan');
    return $_perms;
    }

    Pada fungsi latihan_perm ini kita mendefinisikan ada lima permission yang disediakan oleh module "Latihan", yaitu "membuat konten latihan" sampai "ubah konfigurasi module latihan", yang didefinisikan dalam bentuk array.


  6. Setelah implementasi hook_perm, selanjutnya adalah kita melakukan implementasi hook_block. Untuk itu kita akan membuat sebuah fungsi lagi dengan nama latihan_block. Kodenya adalah sebagai berikut:

    /**
    * Block adalah konten yang posisi-nya bisa dipindah-pindahkan pada Drupal
    * fungsi ini mendefinisikan konten blok untuk module Latihan
    * @param string $op isi dari variabel argumen ini bisa "list", "view", "save" atau "configure"
    * @param integer $delta kode untuk meng-identifikasi block
    * @param array $edit hanya muncukl apabila argumen $op berisi "save"
    * @return array data semua blok yang disediakan oleh module Latihan
    */
    function latihan_block($op = 'list', $delta = 0, $edit = array()) {
    // array kosong yang akan menyimpan semua data block
    $block = array();

    switch ($op) {
    case "list":
    // operasi list adalah ketika daftar block ditampilkan pada halaman admin/block
    $block[0]["info"] = t('Block module Latihan');
    break;

    case "view":
    // operasi view adalah ketika block ditampilkan sebenarnya
    // subject/judul heading dari block
    $block["subject"] = t("Judul Block Latihan");
    // content/isi dari block
    $block["content"] = '

    Ini adalah konten/isi dari block module Latihan

    ';
    break;

    case "save":
    break;

    case "configure":
    break;
    }

    return $block;
    }



  7. Berikutnya kita akan membuat fungsi yang tugasnya menampilkan konten utama dari module Latihan. Berikut adalah snippet kode-nya:

    /**
    * Fungsi ini menampilkan konten/isi utama dari Module Latihan
    */
    function latihan_main() {
    // definisikan variabel konten kosong untuk inisialisasi
    $content = '';

    // lakukan berbagai macam manipulasi konten pada bagian ini
    // seperti melakukan query dsb.
    $content .= '

    Ini adalah konten sederhana dari module Latihan

    ';

    return $content;
    }



  8. Bagaimana kalau kita mau module kita ada beberapa parameternya yang bisa dikonfigurasikan melalui antar muka web Drupal? Tenang, kita akan membuat sebuah fungsi yang akan menampilkan halaman konfigurasi khusus module Latihan yang kita buat. Berikut kode-nya:

    /**
    * Fungsi ini memungkinkan kita membuat halaman konfigurasi dalam Drupal
    * khusus untuk module Latihan
    * Pada contoh ini kita mendefinisikan 2 item konfigurasi untuk module Latihan
    * @return array Array yang elemen form konfigurasi modul latihan
    */
    function latihan_admin() {
    $form = array();

    // setting 1
    $form['latihan_setting1'] = array(
    '#type' => 'textfield',
    '#title' => t('Setting 1 module Latihan'),
    '#default_value' => variable_get('latihan_setting1', null),
    '#size' => 60,
    '#maxlength' => 250,
    '#description' => t("Contoh setting pertama untuk module Latihan"),
    '#required' => TRUE,
    );

    // setting 2
    $form['latihan_setting2'] = array(
    '#type' => 'textfield',
    '#title' => t('Setting 2 module Latihan'),
    '#default_value' => variable_get('latihan_setting2', null),
    '#size' => 60,
    '#maxlength' => 250,
    '#description' => t("Contoh setting kedua untuk module Latihan"),
    '#required' => TRUE,
    );

    return system_settings_form($form);
    }



  9. Langkah penting berikutnya adalah meng-implementasika hook_menu. hook_menu mendefinisikan URL dan path apa saja yang ada pada module Latihan, sekaligus menetapkan callback (fungsi) apa yang dijalankan ketika URL tersebut dipanggil oleh browser. Kode-nya adalah sebagai berikut:

    /**
    * Fungsi menu mendefinisikan menu atau path page untuk module Latihan
    *
    */
    function latihan_menu() {
    $items = array();

    $items['admin/settings/latihan'] = array(
    'title' => 'Konfigurasi Latihan',
    'description' => 'Halaman untuk menampilkan konfigurasi module Latihan',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('latihan_admin'),
    'access arguments' => array('ubah konfigurasi module latihan'),
    'type' => MENU_NORMAL_ITEM
    );

    $items['latihan'] = array(
    'title' => 'Halaman utama module Latihan',
    'page callback' => 'latihan_main',
    'access arguments' => array('melihat konten latihan'),
    'type' => MENU_NORMAL_ITEM
    );

    return $items;
    }



  10. Nah sampai disitu dulu kode module Drupal kita, untuk kode lengkapnya silahkan anda lihat ke Kode Lengkap module Latihan. Selanjutnya kita akan coba mengaktifkan module Drupal yang baru kita buat dengan masuk ke halaman admin/build/modules pada website Drupal kita. Apabila berhasil maka kita akan melihat module Latihan pada daftar module yang disediakan Drupal seperti pada screenshot berikut:




    Centang pada module "Module Latihan" dan kemudian tekan tombol "Save Configuration".


  11. Apabila proses aktivasi module kita berhasil maka kita akan melihat tampilan-tampilan sebagai berikut pada website Drupal kita:



    Kita bisa melihat menu dengan nama "Halaman utama module Latihan" di bagian sebelah kiri halaman web kita, yang apabila di-klik akan ditujukan ke halaman URL latihan.



    Pada halaman manajemen Block Drupal di admin/build/block kita akan melihat Block dengan nama "Block module Latihan" sudah terdaftar, tinggal kita letakkan di posisi yang kita inginkan.



    Halaman konfigurasi khusus module Latihan juga bisa kita ke akses melalui path URL admin/settings/latihan dan akan menampilkan tampilan seperti di atas.



Sampai disini dulu untuk bagian satu, semoga bisa memberikan gambaran dasar bagaimana membuat module dengan Drupal. Seperti yang sudah saya sebutkan sebelumnya, Drupal menyediakan banyak API yang memudahkan kita dalam mengembangkan module. Untuk daftar lengkap beserta dokumentasi penggunaanya silahkan browsing ke Drupal 6 API.
Read More

https://payclick.com/

Contact us for advertising.