« Kediri Tour | Depan | Shared Database »

MovableType Plugin: SimpleLink

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: &lt;URL&gt; [separator] &lt;TITLE&gt; [separator] &lt;TEXT&gt;</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, sekalian latihan inggris. Syukur kalo ada yang mau koreksi grammarnya :)

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 ^_^

 


Ada 2 komentar

vnuzday pada December 2, 2005 4:09 AM menulis:

Waduh.. kalau disuruh bicara coding-coding-an, gag mudeng blas.

Jadi terimakasih banget buat para Coder yang telah susah2 membuatkan plug-in untik para blogger. :D

Balas Komentar Ini
ferdi pada April 12, 2008 2:26 AM menulis:

ada niatan untuk pake mt, tapi hosting ku sempit, takut diomelin kalo mt nya membebani server. temenku aja katanya wpnya juga mulai membebani.

Aryo:
ya dinaikin paketnya :D

Balas Komentar Ini

Isi Komentar




  Isi Smiley


Pencarian

Komentar Terbaru

December 2021

Mg Sn Sl Rb Km Jm Sb
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Kategori

Arsip

Aryo Sanjaya

Tinggalkan Pesan

Kisah Mahesa Jenar

Kisah dari Tanah Jawa, tentang perjalanan diri Mahesa Jenar.
Download:
Naga Sasra & Sabuk Inten
atau di sini:
download dari SaveFile.com
Theme by: Magic Paper
Didukung oleh
Movable Type 6.3.10


Aryo Sanjaya

Sindikasi