Para blogger sejati, hampir pasti mengenal Blogger Engine ini. Meski masih sedikit penggunanya (di lingkungan sini), namun sangat powerful khasiatnya. Berbeda dengan Blogger Engine yang lain, semisal WordPress atau TextPattern yang menggunakan PHP sebagai script enginenya, MovableType menggunakan PERL. Mungkin hal tersebut yang menyebabkan engine ini lebih powerful, karena memiliki akses yang lebih luas (sebagai CGI - Common Gateway Interface).
Sama dengan Blogger Engine yang lain, MovableType juga menyediakan fitur PlugIn, di mana pengguna dapat menambahkan fungsi baru pada blognya. PlugIn dapat diperoleh dari situs resmi Six Apart, atau dari situs-situs pembuatnya langsung. Kita sebagai programmer, juga dapat membuat sendiri PlugIn impian, dengan syarat yaitu menguasai PERL programming.
Berikut ini akan dibahas cara-cara membuat PlugIn untuk MovableType. Contoh kasus yang dibahas adalah SimpleLink, yaitu untuk menampilkan daftar URL pada blog kita. Ide ini saya buat karena dari usaha pencarian kesana kemari, tidak menemukan PlugIn untuk hal seperti ini.
Untuk membuat PlugIn, cukup dengan membuat satu file PERL, yaitu file Teks biasa dengan ekstensi .PL. Silakan buat satu file teks, lalu isikan baris kode berikut:
package MT::Plugin::SimpleLink;
Itu adalah untuk menandakan bahwa kita membuat satu paket dengan nama SimpleLink pada paket MT::Plugin.
use MT::ConfigMgr;
use MT::Plugin;
use MT::PluginData;
use MT::Template::Context;
Kita perlu mengambil beberapa paket lain untuk mendukung pembuatan PlugIn ini.
my $linkslist = '';
my $separator = '';
my $linkformat = '';
use vars qw( $VERSION %mta_config $plugin %config );
$VERSION = '1.0';
Inisialisasi variabel-variabel.
eval {
$plugin = new MT::Plugin({
name => 'SimpleLink',
version => $VERSION,
author_name => "Aryo Sanjaya",
author_link => "http://www.mahesajenar.com/",
description => "Display list of URLs to be a link exchange.
($VERSION)",
system_config_template => \&sysconf_template,
settings => new MT::PluginSettings([
['linkslist', { Default => '' }],
['separator', { Default => ';' }],
['linkformat', { Default => '<li
class="module-list-item"><a href="<URL>" title="<TITLE>"
target="_blank"><TEXT></a></li>' }],
]),
});
MT->add_plugin($plugin);
};
Baris di atas adalah inti dari PlugIn kita,
yaitu menciptakan obyek baru (MT::Plugin), kemudian mengisi parameter-parameter
yang diperlukan, serta nilai-nilai standar.
Pada baris terakhir blok program di atas, dilakukan pendaftaran obyek $plugin
kepada daftar plugin yang tersedia pada system.
Seperti terlihat pada parameter system_config_template yang merujuk pada sysconf_template, maka kita harus membuat fungsi sysconf_template tersebut. Fungsi ini berisi desain tampilan di mana pengguna dapat melakukan setting PlugIn. Berikut penggalan fungsinya:
sub sysconf_template {
my $tmpl = <<'EOT';
<div class="setting">
<div class="label">
<label for="linkslist">List of Links:</label>
</div>
<div class="field">
<p><textarea name="linkslist" rows="10" cols="50"><TMPL_VAR
NAME=LINKSLIST ESCAPE=HTML></textarea>
<br />Enter the list. Format: <URL> [separator] <TITLE>
[separator] <TEXT></p>
</div>
...
Hasil setting dapat dibaca dengan menggunakan fungsi berikut ini:
sub readconfig {
my $mta_config;
$mta_config = $plugin->get_config_hash('system');
foreach my $key (keys %$mta_config) {
my $v = $mta_config->{$key};
$config{$key} = $v if (defined($v) &&
$v ne '');
}
}
readconfig();
Baris program di atas akan membaca semua setting yang sesuai dengan array $config milik kita, yang kemudian disimpan pada array $config itu sendiri.
Setelah semua setting selesai dilakukan, maka hal terpenting agar PlugIn kita dapat dikenali melalui TAG adalah dengan mendaftarkannya. Berikut ini adalah baris untuk mendaftarkan tag SimpleLink.
MT::Template::Context->add_tag ('SimpleLink',\&display_link_exchange);
Baris di atas menyatakan bahwa semua TAG SimpleLink, akan ditangani oleh
fungsi display_link_exchange. Untuk itu program harus menyediakan fungsi
tersebut. Berikut ini adalah fungsi untuk menangani TAG SimpleLink:
sub display_link_exchange {
@lists = split("\n", $config{linkslist});
$separator = $config{separator};
$linkformat = $config{linkformat};
$links = "";
$nums = scalar(@lists);
for ($c = 0; $c < $nums; $c++)
{
$record = $lists[$c];
($url, $title, $text) =
split(/$separator/, $record, 3);
$item = $linkformat;
$item =~ s/\<URL\>/$url/;
$item =~ s/\<TITLE\>/$title/;
$item =~ s/\<TEXT\>/$text/;
$links .= $item . "\n";
}
return $links;
}
Fungsi di atas akan membaca isi dari setting, lalu memparsing dan mengembalikan teks hasil olahan.
File yang sudah jadi ini, berikan nama SimpleLink.pl, kemudian tinggal dicopykan (diupload) ke direktori plugin milik MovableType. Biasanya ada di direktori /cgi-bin/mt/plugins/.
Buat direktori baru, misalnya SimpleLink, kemudian letakkan file PERL tadi ke direktori ini. Maka PlugIn sudah siap.
Untuk source lengkapnya, silakan download SimpleLink.pl di sini.
Tentang cara penggunaan PlugIn ini, silakan mengacu pada dokumentasi PlugIn. Sengaja saya buat berbahasa inggris, karena memang itu ditujukan untuk kalangan luas :)
Sekian pembahasan kali ini. Terlalu simple memang, untuk disebut sebagai tutorial ^^. Kalo ada pertanyaan, kritik dan masukan, silakan diberikan pada penulis.
Akhirnya, selamat coding dan blogging ^_^
Tes simplelink
hahaha
hahaha
» Google Earth (1)Bagi yang suka perhitungan jawa (neptu), akan terbantu dengan menggunakan aplikasi kecil ini
» Desain Table dengan Excel (2)Menjelajahi bumi dan melihat bentuk permukaannya, melihat kota-kota dan gunung-gunung besar
» Daftar ConnectionString (1)Tips untuk mempermudah dalam melakukan desain tabel melalui Microsoft Excel
» Tips and Trick Membuat ConnectionString (4)Setelah Eko Heri membahas bagaimana membuat UDL, ini adalah daftar lengkap untuk Connection String
Tidak selamanya programmer bisa menghapal ConnectionString. Kalaupun bisa, tentu lebih baik jika ConnectionString disimpan dalam file. Eko Heri membahasnya untuk anda