J3.x

Creating a simple module/Adding Form Fields/id: Difference between revisions

From Joomla! Documentation

Created page with "id"
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
(56 intermediate revisions by one other user not shown)
Line 1: Line 1:
<noinclude><languages /></noinclude>
<noinclude><languages /></noinclude>
{{J3.x:Creating_a_simple_module/id}}
{{J3.x:Creating_a_simple_module/id}}
Form fields give a great deal of customisation in Joomla and for modules are the sole way of allowing the user to tweak the module to the needs of their site.
Bidang formulir memberikan keuntungan hebat dalam penyesuaian Joomla dan bagi modul ini adalah satu-satunya cara pengguna dapat mengubah modul sesuai kebutuhan website mereka.


== Adding Form Fields to the module ==
<div class="mw-translate-fuzzy">
In this case we are going to extend our previous example using the database to provide a list of languages for the user to select from. To allow this to happen we will use the SQL form field type (full details for this on the [[S:MyLanguage/SQL_form_field_type|SQL Form Field]] docs page).
== Menambahkan Bidang Formulir ke modul ==
</div>
<div class="mw-translate-fuzzy">
Dalam contoh ini, kita akan mengembangkan contoh sebelumnya yaitu di database dengan menyediakan daftar bahasa untuk dipilih oleh pengguna. Untuk melakukan ini, kita akan gunakan jenis bidang formulir SQL (rincian selengkapnya untuk ini bisa ditemukan di halaman dokumentasi [[S:MyLanguage/SQL_form_field_type|Bidang Formulir SQL]]).
</div>


First of all we are going to add a form field into our xml file. Remember those config tags that we added in earlier? Well now inside these tags we are going to add the following code:
<div class="mw-translate-fuzzy">
Pertama sekali, kita akan menambahkan bidang formulir ke dalam file xml. Masih ingat mengenai tag konfigurasi yang ditambahkan sebelumnya? Nah, sekarang di dalam tag tersebut kita akan tambahkan kode berikut:
</div>


<source lang="xml">
<source lang="xml">
Line 21: Line 27:
</source>
</source>


This selects the languages from the database table and allows the user to choose which one from a select element.
<div class="mw-translate-fuzzy">
Ini kemudian memilih bahasa-bahasa dari tabel database yang memungkinkan pengguna untuk dapat memilih salah satu diantaranya melalui elemen HTML ''select''.
</div>


If you were to install the module as it is now you would see if you were to access the module in the backend of Joomla that a dropdown had appeared (although picking an option won't affect the module at the moment).
<div class="mw-translate-fuzzy">
Jika anda sudah memasang modul seperti yang ada sekarang, anda akan melihat pada saat mengakses backend Joomla bahwa ada menu dropdown yang muncul (meskipun memilih sesuatu tidak berdampak apa pun ke modul saat ini).
</div>


''Note:'' The form field parameters are stored for each module in the #__modules table under the params field as json encoded string.
<div class="mw-translate-fuzzy">
''Catatan:'' Parameter bidang formulir tersimpan untuk masing-masing modul di dalam tabel #__modules di bidang parameter sebagai string JSON tersandikan.
</div>


Now lets make the form field do something!
<div class="mw-translate-fuzzy">
Sekarang, mari kita tugaskan bidang formulirnya untuk melakukan sesuatu!
</div>


Lets go into the mod_helloworld.php and retrieve the parameter (note you '''cannot''' retrieve the parameter in the helper), and then pass it into the helper function.
<div class="mw-translate-fuzzy">
Kita ke mod_helloworld.php dan dapatkan parameternya (catat bahwa anda '''tidak bisa''' mendapatkan parameter di dalam helper), lalu teruskan ke dalam fungsi helper.
</div>


<source lang="php">
<source lang="php">
/**
/**
   * This retrieves the lang parameter we stored earlier. Note the second part
   * This retrieves the lang parameter we stored earlier. Note the second part
   * which states to use the default value of 1 if the parameter cannot be
   * which assigns the default value of 1 if the parameter cannot be
   * retrieved for some reason
   * retrieved for some reason.
**/
**/
$language = $params->get('lang', '1');
$language = $params->get('lang', '1');
Line 41: Line 57:
</source>
</source>


Now lets edit our database query in the helper file to reflect our parameter choice.
<div class="mw-translate-fuzzy">
Sekarang, mari kita edit kueri database di dalam file helper sesuai dengan pilihan parameter yang kita buat.
</div>


<source lang="php">
<source lang="php">
// Obtain a database connection
// Obtain a database connection.
$db = JFactory::getDbo();
$db = JFactory::getDbo();
// Retrieve the shout - note we are now retrieving the id not the lang field.
// Retrieve the shout. Note that we are now retrieving the id not the lang field.
$query = $db->getQuery(true)
$query = $db->getQuery(true)
             ->select($db->quoteName('hello'))
             ->select($db->quoteName('hello'))
Line 55: Line 73:
// Load the row.
// Load the row.
$result = $db->loadResult();
$result = $db->loadResult();
// Return the Hello
// Return the Hello.
return $result;
return $result;
</source>
</source>


== Conclusion ==
<div class="mw-translate-fuzzy">
Form fields give the user an easy way to customise the module to their sites settings. This allows the modules scope to be increased as well for many languages and applications.
== Kesimpulan ==
Bidang formulir memberi kemudahan bagi pengguna untuk menyesuaikan modul sesuai kebutuhan website mereka. Ini memungkinkan cakupan modul untuk dapat ditingkatkan seperti untuk bagian bahasanya dan aplikasi.
</div>


<div class="row">  
<div class="row">  
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Using_the_Database|Prev: Using the Database|class=expand success}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Using_the_Database|Sebelumnya: Menggunakan Database|class=expand success}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Adding_Auto_Update|Next: Adding Auto Update|class=expand}}</div>
<div class="large-6 columns">{{Basic button|S:MyLanguage/J3.x:Creating_a_simple_module/Adding_Auto_Update|Berikutnya: Menambah Update Otomatis|class=expand}}</div>
</div>
</div>
__NOTOC__
__NOTOC__
<noinclude>
<noinclude>
[[Category:Tutorials]]
[[Category:Tutorials/id|Tutorial]]
[[Category:Tutorials in a Series]]
[[Category:Tutorials in a Series/id|Tutorial dalam Seri]]
[[Category:Module Development]]
[[Category:Module Development/id|Pengembangan Modul]]
[[Category:Beginner Development]]
[[Category:Beginner Development/id|Pengembangan Pemula]]
[[Category:Joomla! 3.x]]
[[Category:Joomla! 3.x/id|Joomla! 3.x]]
[[Category:Joomla! 3.0]]
[[Category:Joomla! 3.0/id|Joomla! 3.0]]
[[Category:Joomla! 3.1]]
[[Category:Joomla! 3.1/id|Joomla! 3.1]]
[[Category:Joomla! 3.2]]
[[Category:Joomla! 3.2/id|Joomla! 3.2]]
[[Category:Joomla! 3.3]]
[[Category:Joomla! 3.3/id|Joomla! 3.3]]
[[Category:Joomla! 3.4]]
[[Category:Joomla! 3.4/id|Joomla! 3.4]]
</noinclude>
</noinclude>

Latest revision as of 13:41, 1 April 2020

Joomla! 
3.x
Tutorial
Membuat modul sederhana

Ini adalah seri artikel mengenai cara membuat modul untuk Joomla! Versi Joomla 3.x. Anda dapat menelusuri artikel-artikel yang terdapat di dalam seri ini melalui menu dropdown.

Mulai dari Pendahuluan, lalu telusuri artikel-artikel di dalam seri ini melalui tombol navigasi di bagian bawah atau dari kotak di samping (Artikel dalam seri ini)




Bidang formulir memberikan keuntungan hebat dalam penyesuaian Joomla dan bagi modul ini adalah satu-satunya cara pengguna dapat mengubah modul sesuai kebutuhan website mereka.

Menambahkan Bidang Formulir ke modul

Dalam contoh ini, kita akan mengembangkan contoh sebelumnya yaitu di database dengan menyediakan daftar bahasa untuk dipilih oleh pengguna. Untuk melakukan ini, kita akan gunakan jenis bidang formulir SQL (rincian selengkapnya untuk ini bisa ditemukan di halaman dokumentasi Bidang Formulir SQL).

Pertama sekali, kita akan menambahkan bidang formulir ke dalam file xml. Masih ingat mengenai tag konfigurasi yang ditambahkan sebelumnya? Nah, sekarang di dalam tag tersebut kita akan tambahkan kode berikut:

<fields name="params">
    <fieldset name="basic">
        <field
               name="lang"
               type="sql"
               default="1"
               label="Select a language"
               query="SELECT id AS value, lang FROM #__helloworld" />
    </fieldset>
</fields>

Ini kemudian memilih bahasa-bahasa dari tabel database yang memungkinkan pengguna untuk dapat memilih salah satu diantaranya melalui elemen HTML select.

Jika anda sudah memasang modul seperti yang ada sekarang, anda akan melihat pada saat mengakses backend Joomla bahwa ada menu dropdown yang muncul (meskipun memilih sesuatu tidak berdampak apa pun ke modul saat ini).

Catatan: Parameter bidang formulir tersimpan untuk masing-masing modul di dalam tabel #__modules di bidang parameter sebagai string JSON tersandikan.

Sekarang, mari kita tugaskan bidang formulirnya untuk melakukan sesuatu!

Kita ke mod_helloworld.php dan dapatkan parameternya (catat bahwa anda tidak bisa mendapatkan parameter di dalam helper), lalu teruskan ke dalam fungsi helper.

/**
  * This retrieves the lang parameter we stored earlier. Note the second part
  * which assigns the default value of 1 if the parameter cannot be
  * retrieved for some reason.
**/
$language = $params->get('lang', '1');
$hello    = modHelloWorldHelper::getHello( $language );

Sekarang, mari kita edit kueri database di dalam file helper sesuai dengan pilihan parameter yang kita buat.

// Obtain a database connection.
$db = JFactory::getDbo();
// Retrieve the shout. Note that we are now retrieving the id not the lang field.
$query = $db->getQuery(true)
            ->select($db->quoteName('hello'))
            ->from($db->quoteName('#__helloworld'))
            ->where('id = '. $db->Quote($params));
// Prepare the query
$db->setQuery($query);
// Load the row.
$result = $db->loadResult();
// Return the Hello.
return $result;

Kesimpulan

Bidang formulir memberi kemudahan bagi pengguna untuk menyesuaikan modul sesuai kebutuhan website mereka. Ini memungkinkan cakupan modul untuk dapat ditingkatkan seperti untuk bagian bahasanya dan aplikasi.