Block untuk Menampilkan Artikel dan Penulis Populer

druid's picture

Sesudah lama absen karena kesibukan yang sangat padat (ceileh!), Druid kembali berbagi bagaimana cara membuat block di Drupal.

Studi kasusnya adalah sebuah website Drupal dengan module Blog diaktifkan, dimana artikel ditulis oleh banyak author/penulis. Disini kita akan membuat block untuk menampilkan daftar blog populer (jumlah komentar terbanyak) dan penulis populer (jumlah artikel terbanyak).

Saya membuat contoh kode ini sekaligus dapat langsung digunakan sebagai module yang siap-pakai. Nama module adalah "dqs_populer". Jumlah item yang akan dapat ditampilkan dalam block dapat dikonfigurasi. Silakan download module terlampir Smiling

Membuat block ini sangat mudah sekali, cukup dua langkah saja.

Langkah pertama, adalah mendefinisikan block. Dalam module ini, kita akan memiliki 2 block, yaitu: Blog Populer dan Penulis Populer.

Block didefinisikan pada function dqs_populer_block(). Disini akan ditentukan apa saja block yang akan ditampilkan pada halaman Administer Blocks, dan apa function yang akan menghasilkan content setiap block. Struktur kode function ini sedikit membingungkan, tapi tentu saja untuk mudahnya copy paste saja Smiling

function dqs_populer_block($op='list', $delta=0) {
// listing of blocks, such as on the admin/block page
switch ($op) {
case 'list': 
$block[0]["info"] = "Blog Populer";
$block[1]["info"] = "Penulis Populer";
return $block;
case 'view': default:
switch ($delta) {
case 0:
// set up the block
$block['subject'] = 'Blog Populer';
$block['content'] = _populer_blog();
break;
case 1:
// set up the block
$block['subject'] = 'Penulis Populer';
$block['content'] = _populer_penulis();
break;
}
return $block;
}
}

Langkah kedua, tentu mendefinisikan function yang akan mengisi content setiap block. Disini kita bisa mengakses database, dan menampilkannya dengan menggunakan function dengan prefix "theme_". Dalam kasus ini, kita gunakan fungsi theme_item_list untuk menghasilkan list item yang sesuai dengan theme aktif. Contoh kodenya seperti ini:

function _populer_blog() {
$limit = variable_get('dqs_populer_limit', 10);
$sql = "select a.nid, a.title, b.comment_count
from node a, node_comment_statistics b
where 
a.nid=b.nid and
a.type='blog'
order by b.comment_count desc
LIMIT $limit";
$res = db_query($sql);
$rows = array();
while ($data = db_fetch_object($res)) {
$judul = $data->title;
$nid = $data->nid;
$jml = $data->comment_count;		
$rows[] = l("$judul", "node/$nid") . "
$jml comments";
}	  
$output = theme_item_list($rows);
return $output;
}

Selesai! Semoga ini bermanfaat ya!



Tutorial Module Drupal 6

Memenuhi harapan dari member, sekarang seluruh tutorial DQS sudah kompatibel dengan Drupal 6. Klik disini untuk detailnya.

Live Buddies

There are currently 0 users and 1 guest online.

DQS Members

  • Registered Users: 466

Partners

GrowUrl.com - growing your website