Welcome to Abdul Malik Ikhsan's Blog

WordPress – Create Your Own WordPress Plugin

Posted in tips and tricks, Tutorial PHP by samsonasik on January 30, 2011

WordPress adalah salah satu Open Source CMS yang ramai dipakai saat ini. WordPress mempunyai ribuan plugin yg tersedia dan siap pakai, tinggal unduh, dan tempel. Hanya saja, tentu kita juga sepakat, kalau kebutuhan manusia itu tidak terbatas. Nah, WordPress mempersilakan kita untuk membuat plugin sendiri untuk kebutuhan kita tersebut.

Saya akan mencoba memberi contoh pembuatan plugin sederhana bernama my_plugin. Pertama, kita buat dulu bundle plugin-nya, sederhana saja, kita buat folder bernama my_plugin dan di dalamnya terdapat file my_plugin.php seperti gambar berikut :

Nah, kalau sudah, kita edit file my_plugin.php, beri header comment seperti berikut :

<?php
/*
Plugin Name: My_plugin
Plugin URI: https://samsonasik.wordpress.com
Description: Example purpose
Version: 1.0
License: GPLv2
Author: Abdul Malik Ikhsan
Author URI: https://samsonasik.wordpress.com
*/
?>

Kalau sudah, kita compress ke zip deh folder kita tadi, lalu kita upload di admin CMS WP kita di menu Plugins -> Add New seperti gambar berikut :

Klik Install Now, dan activate setelah install selesai. Nah, sekarang kita punya plugin baru yg terlihat di daftar plugin WP kita, seperti berikut :

Wokeh, saatnya mengedit plugin kita agar bisa dipakai. Kita edit file my_plugin.php kita yang sudah terupload di folder wp-content/plugins/my_plugin :

<?php
/*
Plugin Name: My_plugin
Plugin URI: https://samsonasik.wordpress.com
Description: Example purpose
Version: 1.0
License: GPLv2
Author: Abdul Malik Ikhsan
Author URI: https://samsonasik.wordpress.com
*/
function showsomethingbymyplugin()
{
 echo "this is something rockin' created at ".date('Y-m-d H:i:s')." baby \m/ ";
}

//add shortcode untuk menambahkan shortcode ketika hendak dipanggil di posting
add_shortcode('my_plugin_something', 'showsomethingbymyplugin');
?>

Kalau sudah, cekidot deh kita panggil di posting-an kita atau di salah satu halaman wordpress kita :

Ok, terakhir, kita cek deh di halaman kita, kalau berhasil maka akan tampil seperti berikut :


Referensi  :
http://codex.wordpress.org/Plugins
http://codex.wordpress.org/Writing_a_Plugin
http://en.wikipedia.org/wiki/Wordpress
http://farm5.static.flickr.com/4129/5036291025_2ea3a4c5b6_z.jpg

Advertisements

Zend Framework – Controller Plugin vs Action Helpers

Posted in Tutorial PHP, Zend Framework by samsonasik on January 2, 2011

Zend Framework mempunyai arsitektur Controller yang dapat “me-require” system plugin yang memungkinkan dipanggil pada saat sebelum, sedang, maupun setelah semua action controller berjalan.  Sebut saja routeStartup(), routeShutdown(), dispatchLoopStartup(), preDispatch(), postDispatch(), dispatchLoopShutdown(), mereka adalah event method yang berjalan mulai dari sebelum sampai sesudah action Controller dijalankan. FrontController menggunakan plugin broker sebagai registry, dan plugin broker memastikan event tersebut dipanggil pada saat plugin didaftarkan di FrontController.  Untuk memahami tiap event method, bisa di baca di sini.
Zend Framework juga mempunyai Action Helpers, ia adalah kumpulan fungsi yang bisa dipanggil di action controller manapun. Perbedaan action helpers dengan controller plugin adalah controller plugin otomatis terpanggil pada lifetime controller, sedang action helpers berjalan hanya pada saat dipanggil.
1. Contoh Implementasi Controller Plugin
Misalkan kita ingin mengubah layout default di aplikasi yang kita buat pada saat controller tertentu dipanggil secara otomatis. Kita ingin pengecekan dilakukan oleh controller plugin sebelum controller action dikirim. Contoh kode program bisa dilihat seperti di bawah :

<?php
/**
* Controller plugin untuk layout spesifik pada controller AdminController
* @package Zf_Controlplugin
* @author samsonasik
* @filename library\Zf\Controlplugin.php
*/
class Zf_Controlplugin extends
 Zend_Controller_Plugin_Abstract
{
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
 $control =  $request->getControllerName();
 if ($control == 'admin' ){
 Zend_Layout::startMvc(array(
 'layoutPath' => APPLICATION_PATH."/layoutadmin/scripts",
 'layout' => 'layout'
 ));
 }
 }
}


Setelah itu, kita bisa daftarkan plugin di atas di Bootstrap kita :

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

 function _initAutoload()
 {
 $autoloader = new Zend_Application_Module_Autoloader(
 array('namespace'=>'',
 'basePath'=>APPLICATION_PATH
 )
 );

 return $autoloader;
 }

 public function _initPlugins()
 {
 $front = Zend_Controller_Front::getInstance();
//mendaftarkan plugin
 $front->registerPlugin(new Zf_Controlplugin());
 }
}


2. Contoh Implementasi Action Helpers
Sebuah helper bisa diinisialisasi dengan banyak cara, berikut beberapa cara yang bisa digunakan :

// a. menggunakan method getHelper() secara explisit
$flashMessenger = $this->_helper->getHelper('FlashMessenger');
$flashMessenger->addMessage('We did something in the last request');

//b. menggunakan helper broker's  __get()
$flashMessenger = $this->_helper->FlashMessenger;
$flashMessenger->addMessage('We did something in the last request');

Referensi :
http://stackoverflow.com/questions/2463378/zend-framework-controller-plugins-vs-action-helpers
http://framework.zend.com/manual/en/zend.controller.plugins.html
http://framework.zend.com/manual/en/zend.controller.actionhelpers.html
Gambar :
http://static.zend.com/shop/media/catalog/product/cache/1/image/190x/5e06319eda06f020e43594a9c230972d/z/f/zf-training-fundamentals-store-product-page-190px.gif