Silakan tunggu sedang proses
Selasa Pon 16 April 2024 19:20
learn make rich
share make it perfect
Ayat Suci
Dan jika Kami rasakan kepada manusia suatu rahmat (nikmat) dari Kami, kemudian rahmat itu Kami cabut daripadanya, pastilah dia menjadi putus asa lagi tidak berterima kasih.
(QS. HUD:9)

 otomatis refresh

Javascript ayat
Daftar Fungsi
pasaran
Mencari nama hari dan nama pasaran
pdu2sms
Konversi dari PDU ke Teks SMS
bacarss
Membaca RSS dari beberapa situs
Para Rekan
MyWeblog

MovableType Plugin: SimpleLink

Aryo Sanjaya
Contoh pembuatan PlugIn untuk MovableType, sebuah Blogger Engine dengan menggunakan pemrograman PERL.

Aryo Sanjaya
Kamis Pahing, 1 Desember 2005

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 :)

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

 

Komentar

Aryo Sanjaya

Kamis Kliwon, 22 Juni 2006

Tes simplelink

Aryo Sanjaya

Sabtu Pahing, 24 Juni 2006

hahaha

Aryo Sanjaya

Selasa Kliwon, 27 Juni 2006

hahaha


Mengisi Komentar





untuk kode program, apit dengan tanda [code][/code].
contoh:

[code]
(kode program)
[/code]



Daftar Artikel Lain-lain

» MIDlet: Mencari Neptu dan Pasaran (16)
Jum'at Kliwon, 17 Februari 2006

Bagi yang suka perhitungan jawa (neptu), akan terbantu dengan menggunakan aplikasi kecil ini

» Google Earth (1)
Kamis Pahing, 27 Oktober 2005

Menjelajahi bumi dan melihat bentuk permukaannya, melihat kota-kota dan gunung-gunung besar

» Desain Table dengan Excel (2)
Rabu Wage, 6 Juli 2005

Tips untuk mempermudah dalam melakukan desain tabel melalui Microsoft Excel

» Daftar ConnectionString (1)
Kamis Legi, 23 Juni 2005

Setelah Eko Heri membahas bagaimana membuat UDL, ini adalah daftar lengkap untuk Connection String

» Tips and Trick Membuat ConnectionString (4)
Kamis Legi, 23 Juni 2005

Tidak selamanya programmer bisa menghapal ConnectionString. Kalaupun bisa, tentu lebih baik jika ConnectionString disimpan dalam file. Eko Heri membahasnya untuk anda



Halaman:    1  2  3  ... 5  >  

Artikel Rame
Aplikasi Handphone (250)
Senin Pon, 20 Februari 2006

Mengirim SMS dari PC (208)
Senin Wage, 28 November 2005

Membaca SMS dari PC (162)
Selasa Pahing, 14 Juni 2005

Source SMS Autorespond (66)
Senin Legi, 24 April 2006

Penyembunyian Password di Database (36)
Kamis Kliwon, 2 Juni 2005

Bukutamu
» Imam Izzatir Rizzan
Jum'at Kliwon
7 Juli 2006

» adindri
Selasa Pahing
4 Juli 2006

» Je Malakian
Selasa Pahing
4 Juli 2006

» A.Azis
Jum'at Pon
30 Juni 2006

» zorro
Kamis Pahing
29 Juni 2006


Halaman Bukutamu
Lain-lain
User online: 9
User login: 0

user/passwd: bpuser

Status Y!M
Saya sedang Offline. Silakan gunakan menu Kontak atau tinggalkan pesan di Yahoo! Messenger pada Id: aryo_sanjaya
© 2005-2024 BengkelProgram.com