J3.x

Membuat sebuah modul sederhana/Menggunakan Basisdata

From Joomla! Documentation

< J3.x:Creating a simple module
This page is a translated version of the page J3.x:Creating a simple module/Using the Database and the translation is 96% complete.

Other languages:
English • ‎español • ‎français • ‎Bahasa Indonesia • ‎Nederlands • ‎português do Brasil • ‎русский
Joomla! 
3.x
Tutorial
Membuat sebuah modul sederhana

Ini adalah sebuah multi seri artikel tentang bagaimana caranya membuat sebuah modul untuk Joomla! Versi Joomla 3.x. Anda dapat menavigasikan artikel-artikel di dalam seri ini dengan menggunakan menu dropdown navigasi.

Mulai dengan Pendahuluan, dan navigasikan artikel di dalam seri ini dengan menggunakan tombol navigasi yang ada pada bagian bawah atau kotak di sebelah kanan (Artikel dalam seri ini).



Banyak modul di Joomla mewajibkan penggunaan sebuah basisdata. Diasumsikan di dalam tutorial ini bahwa Anda sudah mengerti tentang dasar menggunakan kelas JDatabase. Jika belum, silahkan baca dokumentasi di mengakses basisdata dengan menggunakan JDatabase sebelum melanjutkan tutorial ini.

Membuat sebuah tabel pada pemasangan

Untuk membuat tabel xml pada pemasangan kita akan menambahkan baris-baris berikut ini ke dalam mod_helloworld.xml:

<install>
     <sql>
         <file driver="mysql" charset="utf8">sql/mysql/install.mysql.utf8.sql</file>
         <file driver="sqlazure" charset="utf8">sql/sqlazure/install.sqlazure.utf8.sql</file>
     </sql>
</install>

<uninstall>
     <sql>
         <file driver="mysql" charset="utf8">sql/mysql/uninstall.mysql.utf8.sql</file>
         <file driver="sqlazure" charset="utf8">sql/sqlazure/uninstall.sqlazure.utf8.sql</file>
     </sql>
</uninstall>

<update> 
    <schemas>
        <schemapath type="mysql">sql/mysql/updates</schemapath> 
	<schemapath type="sqlazure">sql/sqlazure/updates</schemapath> 
    </schemas> 
</update>

Terdapat 3 bagian untuk kode ini:

  • Tagar install menambahkan tabel basisdata.
  • Tagar uninstall membuang tabel basisdata apabila modul tersebut sudah dilepaskan. Catat bahwa tidak semua modul akan menginginkan pemakaian fitur ini (dan ini tidak wajib).
  • Tagar update akan memperbarui basisdata apabila sebuah basisdata memerlukan perubahan ketika memperbarui modul tersebut.

Next you should specify the folder tag in the files section to ensure that the sql files are copied from your installation zip package:

<folder>sql</folder>

Catat bahwa kita memiliki skema untuk MySQL dan Microsoft SQL - sekali lagi, Anda dapat memilih sesuai modul Anda untuk salah satu atau kedua sistem ini.

Dalam contoh ini kami hanya akan menunjukkan berkas-berkas contoh untuk basisdata MySQL. Membuat Server Microsoft SQL akan ditinggalkan sebagai latihan bagi pembaca.

Di berkas install.mysql.utf8.sql kita akan membuat tabel dan meletakkan beberapa hello ke dalamnya.

CREATE TABLE IF NOT EXISTS `#__helloworld` (
	`id` int(10) NOT NULL AUTO_INCREMENT,
	`hello` text NOT NULL,
	`lang` varchar(25) NOT NULL,

  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hello World', 'en-GB');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hola Mundo', 'es-ES');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Bonjour tout le monde', 'fr-FR');

Di dalam berkas pelepasan kita kan membuang tabelnya.

DROP TABLE IF EXISTS `#__helloworld`

Akhirnya kita letakkan sebuah placeholder di berkas pembaruan. Ada sebuah berkas SQL untuk setiap versi komponen. Masing-masing nama harus cocok dengan string versinya di dalam berkas manifes versi tersebut. Joomla menggunakan string ini untuk menentukan berkas-berkas SQL mana saja yang akan dieksekusi, dan dalam urutan apa mereka akan dieksekusi.

Penting untuk diingat: Berkas-berkas ini juga dipakai untuk mengatur angka versi di tabel #__schemas. Angka versi ini harus mewakili versi komponen saat ini agar berkas-berkas SQL baru dapat berjalan selama pembaruan. Sebagai contoh, jika Anda memiliki versi 1.0 dan sedang memperbarui ke versi 1.1, maka berkas sql 1.1 tidak akan dieksekusi apabila tidak ada berkas sql 1.0 di dalam rilis 1.0. Untuk alasan ini, adalah suatu praktek yang baik untuk memiliki berkas pembaruan SQL masing-masing versi, bahkan jika tidak ada SQL yang berubah di dalam versi tersebut.

# Placeholder file for database changes for version 1.0.0

Membuat permintaan di berkas helper

Sekarang pada pemasangan modul kita harus temukan bahwa ada sebuah basisdata helloworld yang dibuat di skema basisdata dengan hello di dalamnya. Kita harus mendapatkan ini dari basisdata untuk menampilkannya kepada pengguna. Kita sekarang akan merubah fungsi getHello yang kita letakkan di berkas helper pada bagian terakhir.

Untuk saat ini kita akan abaikan penggunaan kolom formulir untuk memilih sebuah hello dan hanya mendapatkan teriakan Inggris-nya saja.

// Obtain a database connection
$db = JFactory::getDbo();
// Retrieve the shout
$query = $db->getQuery(true)
            ->select($db->quoteName('hello'))
            ->from($db->quoteName('#__helloworld'))
            ->where('lang = ' . $db->Quote('en-GB'));
// Prepare the query
$db->setQuery($query);
// Load the row.
$result = $db->loadResult();
// Return the Hello
return $result;

Kesimpulan

Menggunakan modul-modul dengan hubungan basisdata untuk Joomla! adalah cukup sederhana, proses langsung ke tujuan. Menggunakan teknik-teknik yang dijelaskan di dalam tutorial ini, banyak modul dapat dikembangkan dengan sedikit usaha, dengan pembaruan yang mudah dikelola.