Jumat, 27 April 2012

Komunitas SLiMS @Munas FPPTI 2012

Komunitas SLiMS Jogja @Munas FPPTI di UGM 26 April 2012

Tak disangka, Komunitas SLiMS sebagai komunitas yang berorientasi pada komunitas, para pegiat utamanya mampu "saweran" alias patungan untuk ikut menjadi sponsor pada acara Munas FPPTI 2012.

SLiMS mendapatkan meja yang strategis yaitu tepat didepan pintu/tangga masuk dan juga lorong jalan dari pintu lift menuju ruang acara.

Pagi itu, mas Haris (pegiat SliMS dari Ambon) datang paling awal langsung menghidupkan laptop menata brosur dan stiket SLiMS. Awal acara banyak pengunjung yang datang dan ngobrol bareng. Ada pak Wayan Metaram dari Bali, mas Daniel dari Univ. Machung, mas Miswan dari IAIN Walisongo dan lain sebagainya.

Obrolan tentang Meranti, Nayanes, meranti Mobile Version, migrasi dan berbagai bug fixing mewarnai berbaurnya peserta dengan pegiat SLiMS.

Tak lama kemudian, mas Eddy Subratha datang. Keduanyapun lalu terlibat aktifitas melayani diskusi para pengunjung.

Sore harinya, beberapa pegiat SLiMS yang lain mulai berdatangan. Ada mas Tarto, Aziz, Budhi, Sumaryanto...

Berikut reportase dari mas Eddy Subratha:


dari beberapa peserta seminar yang mampir ke stand SLIMS terbagi menjadi 3 versi, yang sudah menggunakan, baru akan menggunakan dan belum menggunakan SLIMS.
Yang sudah menggunakan SLIMS lebih banyak menceritakan masalah fitur yg belum tersedia di SLIMS, misal mengenai pembuatan custom report yg dibutuhkan utk pelaporan. Ya mirip-mirip report yg dulu pernah didemo Pak Maryanto MUHI. Ada juga yang menjadikan SLIMS sebagai salah satu media pembelajaran mahasiswa jurusan PERPUS (kalo gak salah Pak Widodo dari UNS Solo), namun terkendala masalah akses yang berat ketika proses input data secara bersamaan.
Untuk versi yang baru akan menggunakan SLIMS, kebanyakan masalah migrasi data dari sistem yang lama ke SLIMS. Juga terkendala karena aplikasi perpus mereka terintegrasi SIM Akademik dan pengembangan aplikasi perpus mereka sudah tidak dikembangkan lagi oleh developer yng lama.
Sedangkan yang belum menggunakan SLIMS karena kesulitan utk menginstalasi dan dukungan perangkat komputer yg belum memadai. Juga dikarenakan belum adanya komunitas di daerah setempat yang bisa membantu memberikan semacam pelatihan untuk petugas perpus
Dari beberapa peserta sangat antusias utk melihat SLIMS Meranti misal Pak Daniel dari Universitas Ma Chung Malang yang langsung membuka tabletnya utk melihat SLIMS Meranti Mobile. Juga kekaguman pada fitur OAI dan z39.50 SRU yang sangat mudah. Sayang-nya dikarenakan koneksi internet di sana sedikti macet, sehingga waktu demo SRU banyak terjadi Operation Time Out.
Brosur dan Stiker JogjaLib.NET pun laris manis karena diberikan gratis..*lumayan utk dipasang di Helm atau Motor mereka :)


Selasa, 10 April 2012

SDD @Gunung Geulis Bogor Jawa Barat, 23-25 Maret 2012

Sumber: http://slims.web.id/web/?q=node/62
Teks oleh: Purwoko
Video: by SDC with Samsung Galaxy Tab, edited by Eddy Subratha

SDD atau Senayan Developers Day adalah event bertemunya para pengembang Inti SLiMS dari berbagai tempat di Indonesia. Pengembang SLiMS terdiri dari Lead Developer, Programmer, Documentation Project, dan Community Developement.

Pada SDD kali ini, berkumpul 6 pengembang SLiMS: Hendro Wicaksono, Arie Nugraha, Wardiyono, Eddy Subratha, Arif Syamsudin dan Purwoko.

Saya dan mas Eddy terbang dari Jogja menuju Jakarta dan transit di UI. Malamnya bersama dengan mas Arie dan pak Hendro menuju rumah mas Wardiyono. Kamis malam, sekitar pukul 8, menggunakan Panther Merah milik mas Yono kami menuju Gunung Geulis, sebuah penginapan di daerah Puncak, Bogor, Jawa Barat. Pak Hendro mengatakan, bahwa memilih Bogor agar dapat berkonsentrasi dalam pengembangan SDD kali ini. Malam jumat, sekitar pukul 11 malam kami sampai di tujuan. Tidak langsung istirahat, tapi justru siap-siap tempat serta menikmati makan malam yang sudah disediakan penginapan.

Tepat sekali, GG house ini sangat enak dan nyaman untuk berkegiatan. Ada kolam renang, makanan terjamin dan suasananya dingin diselingi suara air sungai yang mengalir deras. Oia, mushola juga ada loh.





Hari pertama SDD adalah hari Jumat, tanggal 23 Maret 2010. Pagi-pagi semua sudah ada pada posisi mejanya masing-masing dengan laptop yang siap di"panjer" 24 jam. Tidak lupa ada satu buah server bawaan mas Yono yang siap menjadi sarana ujicoba selama SDD.

Setelah dibuka secara tidak resmi oleh pak Jenderal SLiMS, maka semua mulai bekerja. Kerja pertama adalah menyesuaikan diri dengan GITHUB. Beberapa diantaranya adalah meng-clone project, pull project dan juga membuat project baru.

Karena visi ke depan adalah lahirnya SLiMS 5 maka dibuatlah project baru di akun github SLiMS untuk master SLiMS 5, dokumentasi SLiMS 5, dan UCS 2.

Selama 2 hari lebih, para pegiat SLiMS yang tergabung dalam SDD kali ini bergulat dengan source code baik itu php, ajax, jquery, SIMBIO-nya SLiMS, serta LyX. Mas Arie bergulat dengan bug fixing, penambahan marc import, z39.50 SRU. Pak Hendro bergulat dengan bug fixing dan penambahan fitur. Mas Yono sibuk mendisain kartu katalog. Mas Arif bergulat dengan PoEdit untuk penyempurnaan bahasa pengantar SLiMS. Sementara mas Eddy 2 hari terus mematangkan templat baru untuk OPAC dan admin SLiMS.

Templat pada SLiMS 5 mempunyai bentuk dan citarasa berbeda dari templat SLiMS sebelumnya. Keduanya mendobrak pakem templat SLiMS yang sudah ada selama ini.

Pernak-pernik selama SDD



SDD selama berhari-hari ini tentunya membutuhkan tenaga yang besar. Terutama bagi para pegiat yang sebelumnya sudah diforsir pekerjaan utamanya. Pak Hendro bahkan mengatakan sempat mual dan muntah pada malam sabtu.

Ketika suntuk dan jenuh, kadang kami bercanda dan mengeluarkan jurus lucunya masing-masing. Mas Eddy yang ketika bertemu pertama tampak kalem dan bersahaja ternyata kocak habis.




Rekaman lucu ngapak ala Karto Toying dan Kartonom juga memecah suasana selama SDD. Lontaran SODOK, PULL, PUSH, TARIK juga menjadi lontaran wajib ketika ada pembaruan di GITHUB. SODOK/PUSH berarti ada yang baru di GITHUB, rekan lainnya diminta TARIK atau PULL yang berarti mengambil yang sudah ada di GITHUB. Oia, ada lagi ASOLOLEY yang kerap terlontar ketika berhasil melakukan bug fixing atau ada yang baru di GITHUB.

Dengan adanya GITHUB, manajemen source code menjadi lebih mudah, baik source code SLiMS, UCS maupun dokumentasi. Bahkah dengan GIT, Mas Indra di Gorontalo juga ikut "nimbrung" pada SDD kali ini. SDD Jarak Jauh ...

Sabtu sore, adalah waktu yang istimewa. Terutama buat yang lama tidak merasakan renang. Di GG House ternyata ada kolam renang yang dapat digunakan. Akhirnya saya, mas Arie, pak Hendro, dan mas Eddy nyebur di kolam renang sementara bro Arif siap sedia dengan kamera mengabadikan momen yang langka itu ... hua hua. Betapa malunya saya kala itu, karena saya sendiri yang tidak bisa berenang.

Perjalanan Pulang



Minggu pagi adalah hari terakhir. Kami beres-beres pakaian dan lain sebagainya kemudian menuju meja makan. Di sanalah kami bercerita faktor non-teknis dari SDC dan pengembangan SLiMS. Termasuk membicarakan rekan-rekan komunitas yang menjadi penopang keberlanjutan SLiMS. Hormat kami pada para pegiat SLiMS diseantero Nusantara ....

Video lengkap tentang SLiMS ada di http://www.youtube.com/user/senayanslims

Kamis, 22 Maret 2012

Verifikasi Pemesanan Kemeja SLIMS

"Salam SLIMS"
Berikut daftar pemesan kemeja SLIMS yang kami terima.
Silahkan periksa :

  • Nama identitas maksimal 17  karakter misalnya : HENDRO WICAKSONO

  • Nama komunitas Anda

  • Ukuran kemeja

  • Alamat pengiriman dan kode post

  • Pemesanan kami proses setelah pelunasan pembayaran


Kami tunggu konfirmasi Anda sampai tanggal 26 Maret 2012.

Download daftar pemesan kemeja

konfirmasi di nomor :

1. Tarto (08564 3700 331)

2. Budhi Santoso (08574 3090 888)

3. Muhtarom (0813 2800 3445)

Minggu, 18 Maret 2012

"Ngopi Joss", menata revolusi ala Komunitas SLiMS



Suatu waktu, pernah ada seorang teman bertanya, "Wah, nek nge-SLiMS meski jam 12 malam tetap jalan ya Pur?". Saya jawab saja "iya, memang biasanya seperti itu, malam-malam di Kopi Joss selatan Tugu Jogja". Mau? teeeet tooot.....




Hal tersebut di atas, akhirnya terjadi lagi pada tanggal 17 Maret 2012. Saat itu, kebetulan sekali pak Hendro Wicaksono dan Pak Arie Nugraha berada di Jogja. Akhirnya mereka berdua bersama pak Eddy Subratha dan saya (Purwoko) meluncur dari kawasan Club House UIN Sunan Kalijaga ke area Kopi Joss sekitar jam 8 malam. Ternyata di area Kopi Joss-nya pak Man sudah menunggu rekan-rekan dari komunitas SLiMS Jogja, ada Heri Abi, Muhtarom, Tarto, Aziz. Kemudian setelah kami datang, datang pula mas Budhi Santoso, Maryanto, Hadi Pranoto, Fiqru Mafar, Subhan Haris+Istri. Tidak disangka pula, hadir seorang pegiat SliMS yang berasal dari Ambon, namanya Haris. Beliau ini sedang membangun katalog induk beberapa perpustakaan di Ambon dengan domain http://ambonlib.net. Belakangan diketahui, bahwa selain katalog AmbonLib.Net, mas Haris juga membangun sistem pencarian terpadu ke semua SLiMS yang online di internet. Aplikasi pencarian terpadu tersebut ada di url http://search.ambonlib.net.

Sebelum ngobrol mengenai SliMS dan segala sesuatunya, ada acara perkenalan singkat yang saya lakukan terutama untuk pak Haris dari Ambon. Selanjutnya ngobrol kesana-kemari dibarengi dengan menikmati sajian Kopi Joss serta "ubo rampe" ala angkringan Jogja. Terdapat sego kucing, tempe goreng, sate kerang, sate ayam, lumpia, telo goreng, apem, kopi susu, kopi jahe dan semacamnya. Sebagian besar awak komunitas yang datang memesan Kopi Joss sebagai sajian minumnyaa. Dinginnya malam, dibalut dengan suasana khas Jogja menambah semarak acara ngobrol bareng ini, apalagi dengan diselingi para pengamen yang silih berganti.


Pada acara ini, pak Hendro sempat memberitahukan tentang acara SDD/Senayan Developers Day yang akan dilaksanakan pada liburan panjang akhir bulan Maret 2012. Selain itu juga diumumkan beberapa projek "revolusioner" SLiMS dan beberapa aplikasi yang terkait. Sssssst, informasi apa saja aplikasi tersebut masih dirahasiakan di blog ini yak.. :) Emmm, oke dah saya kasih satu bocoran. KopiJoss76, merupakan sebuah paket aplikasi yang akan muncul dalam kaitannya dengan projek SLiMS. KopiJoss76, 76=TG=Tugu, jadi KopiJoss76=Kopi Joss di Tugu Jogja. Aplikasi ini adalah paketan yang berisi UCS SliMS, SliMS itu sendiri, Drupal yang didalamnya terdapat plugin SLiMS. Dengan KopiJoss76 diharapkan perpustakaan yang ingin membangun, atau belajar membuat website yang terintegrasi dengan SliMS dapat terfasilitasi.
Aplikasi lain? ditunggu launchingnya yak..
Ngobrol juga menyentuh hal-hal terkait teknis SLiMS. Beberapa usulan muncul, mulai dari katalog buku, membuat item otomatis (berdasar jumlah), barcode generator, penyempurnaan ucs, desain template, perbaikan bug, penambahan alamat pada lokasi koleksi di ucs, delete image cover, dan lain sebagainya. Ngobrol juga merambah pada etika Opensource. Pak Arie dan Hendro menekankan kembali tentang taat asas pada GPL v.3, khususnya terkait penggunaan SLiMS.



Mas Haris dari Ambon, juga sempat bercerita dan menunjukkan AmbonLib.Net yang sedang dia bangun. Menurutnya, di Ambon sudah ada beberapa perpustakaan yang mulai menggunakan SLiMS, rencananya beliau akan menyatukannya di AmbonLib.Net.

Berbagai pengalaman yang menyenangkan dan kadang membuat gelak tawa muncul dari masing-masing pribadi pegiat SliMS. Ada yang mengaku install slims seharian di bayar 200.000, ada yang di ajak makan sate sebagai tanda terimakasih dan pengalaman menarik lainnya.

Sebagai sebuah tiluna Manajemen Perpustakaan, SLiMS dibangun dengan mengedepankan komunitas sebagai basis pengembangan. Atas dasar hal tersebut, beberapa jargon SliMS kemudian muncul.
SLiMS, Librarian Social Network
SLiMS, tiluna ramah lingkungan
SLiMs, library system for library freedom

Adalah sesuatu yang di luar dugaan, SLiMS dapat menjadi perekat komunitas yang lahir di beberapa daerah. Sebagaimana di Jogja, komunitas SLiMS bangun dengan semangat berbagi dengan tidak didasari oleh kepentingan sesaat. Komunitas SLiMS berusaha bangkit dengan semangat mandiri secara bersama-sama.




Pukul 22:30, para pegiat Slims mulai meninggalkan area KopiJoss. Sebelum bubar, disempatkan foto bersama.

Foto: Budhi Santoso

Teks dan Video: Purwoko

Selasa, 28 Februari 2012

Reportase Kegiatan Pelatihan SLiMS di SMP 1 Bocor Kebumen

Kebumen. Sabtu 25 Februari 2012 Salah satu personil Komunitas SLiMS Jogja Tarto dan TIM Fasilitator Perpustakaan UNY diberi kesempatan untuk mengenalkan slims dan pelatihan SLiMS di SMP N 1 Bocor Kebumen, Peserta 46 orang dari  perpustakaan sekolah disekitar Kebumen. Materi yang diajarkan install Psenayan dan menu system, membership, bibliografi, sirkulasi, pelaporan.

Peserta yang ikut pelatihan sebagian besar Kepala Sekolah dan Guru setempat. Dengan peserta sangat antusias untuk diadakan pelatihan lagi serupa dengan durasi yang lama. Tr

Senin, 27 Februari 2012

Modifikasi Kartu Anggota SLIMS (Senayan versi 3.14)

sumber: di sini

Secara default SLIMS memberikan fasilitas kartu anggota dengan gambar yang terkesan biasa. Agar tampilan kartu anggota lebih baik, caranya adalah sebagai berikut:

1. Modifikasi file member_card_generator.php (file ini berada di folder \admin\modules\membership\)

2. Edit file tersebut dengan source di bawah ini:
<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/

/* Member card print */

// main system configuration
require ‘../../../sysconfig.inc.php’;
// start the session
require SENAYAN_BASE_DIR.’admin/default/session.inc.php’;
require SENAYAN_BASE_DIR.’admin/default/session_check.inc.php’;
require SIMBIO_BASE_DIR.’simbio_GUI/table/simbio_table.inc.php’;
require SIMBIO_BASE_DIR.’simbio_GUI/form_maker/simbio_form_table_AJAX.inc.php’;
require SIMBIO_BASE_DIR.’simbio_GUI/paging/simbio_paging.inc.php’;
require SIMBIO_BASE_DIR.’simbio_DB/datagrid/simbio_dbgrid.inc.php’;
require SIMBIO_BASE_DIR.’simbio_DB/simbio_dbop.inc.php’;

// privileges checking
$can_read = utility::havePrivilege(‘membership’, ‘r’);

if (!$can_read) {
die(‘<div class=”errorBox”>You dont have enough privileges to view this section</div>’);
}

// local settings
$max_print = 10;

// clean print queue
if (isset($_GET['action']) AND $_GET['action'] == ‘clear’) {
// update print queue count object
echo ‘<script type=”text/javascript”>parent.$(\’queueCount\’).update(\’0\’);</script>’;
utility::jsAlert(__(‘Print queue cleared!’));
unset($_SESSION['card']);
exit();
}

if (isset($_POST['itemID']) AND !empty($_POST['itemID']) AND isset($_POST['itemAction'])) {
if (!$can_read) {
die();
}
if (!is_array($_POST['itemID'])) {
// make an array
$_POST['itemID'] = array($_POST['itemID']);
}
// loop array
if (isset($_SESSION['card'])) {
$print_count = count($_SESSION['card']);
} else {
$print_count = 0;
}
// card size
$size = 2;
// create AJAX request
echo ‘<script type=”text/javascript” src=”‘.JS_WEB_ROOT_DIR.’prototype.js”></script>’;
echo ‘<script type=”text/javascript”>’;
// loop array
foreach ($_POST['itemID'] as $itemID) {
if ($print_count == $max_print) {
$limit_reach = true;
break;
}
if (isset($_SESSION['card'][$itemID])) {
continue;
}
if (!empty($itemID)) {
$card_text = trim($itemID);
echo ‘new Ajax.Request(\”.SENAYAN_WEB_ROOT_DIR.’lib/phpbarcode/barcode.php?code=’.$card_text.’&encoding=’.$sysconf['barcode_encoding'].’&scale=’.$size.’&mode=png\’, { method: \’get\’, onFailure: function(sendAlert) { alert(\’Error creating card!\’); } });’.”\n”;
// add to sessions
$_SESSION['card'][$itemID] = $itemID;
$print_count++;
}
}
echo ‘</script>’;
if (isset($limit_reach)) {
$msg = str_replace(‘{max_print}’, $max_print, __(‘Selected items NOT ADDED to print queue. Only {max_print} can be printed at once’)); //mfc
utility::jsAlert($msg);
} else {
// update print queue count object
echo ‘<script type=”text/javascript”>parent.$(\’queueCount\’).update(\”.$print_count.’\');</script>’;
utility::jsAlert(__(‘Selected items added to print queue’));
}
exit();
}

// card pdf download
if (isset($_GET['action']) AND $_GET['action'] == ‘print’) {
// check if label session array is available
if (!isset($_SESSION['card'])) {
utility::jsAlert(__(‘There is no data to print!’));
die();
}
if (count($_SESSION['card']) < 1) {
utility::jsAlert(__(‘There is no data to print!’));
die();
}
// concat all ID together
$member_ids = ”;
foreach ($_SESSION['card'] as $id) {
$member_ids .= ‘\”.$id.’\',’;
}
// strip the last comma
$member_ids = substr_replace($member_ids, ”, -1);
// send query to database
$member_q = $dbs->query(‘SELECT m.member_name, m.member_id, m.birth_date, m.member_image, mt.member_type_name FROM member AS m
LEFT JOIN mst_member_type AS mt ON m.member_type_id=mt.member_type_id
WHERE m.member_id IN(‘.$member_ids.’)');
$member_datas = array();
while ($member_d = $member_q->fetch_assoc()) {
if ($member_d['member_id']) {
$member_datas[] = $member_d;
}
}

// include printed settings configuration file
include SENAYAN_BASE_DIR.’admin’.DIRECTORY_SEPARATOR.’admin_template’.DIRECTORY_SEPARATOR.’printed_settings.inc.php’;
// check for custom template settings
$custom_settings = SENAYAN_BASE_DIR.’admin’.DIRECTORY_SEPARATOR.$sysconf['admin_template']['dir'].DIRECTORY_SEPARATOR.$sysconf['template']['theme'].DIRECTORY_SEPARATOR.’printed_settings.inc.php’;
if (file_exists($custom_settings)) {
include $custom_settings;
}
// chunk cards array
$chunked_card_arrays = array_chunk($member_datas, $card_items_per_row);
// create html ouput
$html_str = ‘<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>’.”\n”;
$html_str .= ‘<html xmlns=”http://www.w3.org/1999/xhtml”><head><title>Member card Label Print Result</title>’.”\n”;
$html_str .= ‘<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />’;
$html_str .= ‘<meta http-equiv=”Pragma” content=”no-cache” /><meta http-equiv=”Cache-Control” content=”no-store, no-cache, must-revalidate, post-check=0, pre-check=0″ /><meta http-equiv=”Expires” content=”Sat, 26 Jul 1997 05:00:00 GMT” />’;
$html_str .= ‘<style type=”text/css”>’.”\n”;
$html_str .= ‘body { padding: 0; margin: 1cm; font-size: 9pt; font-family: ‘.$card_fonts.’; background: #fff; }’.”\n”;
// $html_str .= ‘body { padding: 0; margin: 1cm; font-size: ‘.$card_font_size.’pt; font-family: ‘.$card_fonts.’; background: #fff; }’.”\n”;
$html_str .= ‘.labelStyle { width: ‘.$card_box_width.’cm; height: ‘.$card_box_height.’cm; text-align: center; margin: ‘.$card_items_margin.’cm; border: ‘.$card_border_size.’px solid #666666; background:#bcf48b url(card.png)no-repeat; background-align: bottom; padding: 5px; overflow: hidden;}’.”\n”;
// $html_str .= ‘.labelHeaderStyle { background-color: #CCCCCC; font-weight: bold; padding: 5px; margin-bottom: 5px; }’.”\n”;
$html_str .= ‘#photo { border: 1px solid #666666; float: left; width: ‘.$card_photo_width.’cm; height: ‘.$card_photo_height.’cm; overflow: hidden; }’.”\n”;
$html_str .= ‘#photo img { width: 100%; }’.”\n”;
$html_str .= ‘#bio { float: left; padding-left: 5px; text-align: left; overflow: hidden; width: ‘.($card_box_width-$card_photo_width-0.3).’cm; }’.”\n”;
$html_str .= ‘</style>’.”\n”;
$html_str .= ‘</head>’.”\n”;
$html_str .= ‘<body>’.”\n”;
$html_str .= ‘<a href=”#” onclick=”window.print()”>Print Again</a>’.”\n”;
$html_str .= ‘<table style=”margin: 0; padding: 0;” cellspacing=”0″ cellpadding=”0″>’.”\n”;
// loop the chunked arrays to row
foreach ($chunked_card_arrays as $card_rows) {
$html_str .= ‘<tr>’.”\n”;
foreach ($card_rows as $card) {
$html_str .= ‘<td valign=”top”>’;
$html_str .= ‘<div class=”labelStyle”>’;
if (trim($card_header_text) != ”) { $html_str .= ‘<div class=”labelHeaderStyle”></div>’; }
// if (trim($card_header_text) != ”) { $html_str .= ‘<div class=”labelHeaderStyle”>’.$card_header_text.’</div>’; }
$html_str .= ‘<br>&nbsp;</br>’;
$html_str .= ‘<br>&nbsp;</br>’;
$html_str .= ‘<div id=”photo”>’;
$html_str .= ‘<div style=”text-align: center;”><img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/persons/’.$card['member_image'].’” border=”0″ /></div>’;
// $html_str .= ‘<img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/persons/’.$card['member_image'].’” border=”0″ />’;
$html_str .= ‘</div>’;
$html_str .= ‘<div id=”bio”>’;
$html_str .= ‘<div>’.( $card_include_field_label?__(‘Member ID’).’ : ‘:” ).’<strong>’.$card['member_id'].’</strong></div>’;
$html_str .= ‘<div>’.( $card_include_field_label?__(‘Member Name’).’ : ‘:” ).’<strong>’.$card['member_name'].’</strong></div>’;
$html_str .= ‘<div>’.( $card_include_field_label?__(‘Membership Type’).’ : ‘:” ).’<strong>’.$card['member_type_name'].’</strong></div>’;

$html_str .= ‘<div style=”text-align: left;”><img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/barcodes/’.str_replace(array(‘ ‘), ‘_’, $card['member_id']).’.png” style=”width: 40%; margin-top: 10px;” border=”0″ /></div>’;
// $html_str .= ‘<div style=”text-align: center;”><img src=”‘.SENAYAN_WEB_ROOT_DIR.IMAGES_DIR.’/barcodes/’.str_replace(array(‘ ‘), ‘_’, $card['member_id']).’.png” style=”width: ‘.$card_barcode_scale.’%; margin-top: 10px;” border=”0″ /></div>’;
$html_str .= ‘</div>’;
$html_str .= ‘</div>’;
$html_str .= ‘</td>’;
}
$html_str .= ‘<tr>’.”\n”;
}
$html_str .= ‘</table>’.”\n”;
$html_str .= ‘<script type=”text/javascript”>self.print();</script>’.”\n”;
$html_str .= ‘</body></html>’.”\n”;
// unset the session
unset($_SESSION['card']);
// write to file
$print_file_name = ‘member_card_gen_print_result_’.strtolower(str_replace(‘ ‘, ‘_’, $_SESSION['uname'])).’.html’;
$file_write = @file_put_contents(FILES_UPLOAD_DIR.$print_file_name, $html_str);
if ($file_write) {
// update print queue count object
echo ‘<script type=”text/javascript”>parent.$(\’queueCount\’).update(\’0\’);</script>’;
// open result in window
echo ‘<script type=”text/javascript”>top.openHTMLpop(\”.SENAYAN_WEB_ROOT_DIR.FILES_DIR.’/’.$print_file_name.’\', 800, 500, \”.__(‘Member Card Printing’).’\')</script>’;
} else { utility::jsAlert(‘ERROR! Cards failed to generate, possibly because ‘.SENAYAN_BASE_DIR.FILES_DIR.’ directory is not writable’); }
exit();
}

?>
<fieldset class=”menuBox”>
<div class=”menuBoxInner printIcon”>
<?php echo __(‘Member Card Printing’); ?> – <a target=”blindSubmit” href=”<?php echo MODULES_WEB_ROOT_DIR; ?>membership/member_card_generator.php?action=print” class=”notAJAX headerText2″><?php echo __(‘Print Member Cards for Selected Data’); ?></a>
&nbsp;<a target=”blindSubmit” href=”<?php echo MODULES_WEB_ROOT_DIR; ?>membership/member_card_generator.php?action=clear” class=”notAJAX headerText2″ style=”color: #FF0000;”><?php echo __(‘Clear Print Queue’); ?></a>
<hr />
<form name=”search” action=”<?php echo MODULES_WEB_ROOT_DIR; ?>membership/member_card_generator.php” id=”search” method=”get” style=”display: inline;”><?php echo __(‘Search’); ?>:
<input type=”text” name=”keywords” size=”30″ />
<input type=”submit” id=”doSearch” value=”<?php echo __(‘Search’); ?>” class=”button” />
</form>
<div style=”margin-top: 3px;”>
<?php
echo __(‘Maximum’).’ <font style=”color: #FF0000″>’.$max_print.’</font> ‘.__(‘records can be printed at once. Currently there is’).’ ‘; //mfc
if (isset($_SESSION['card'])) {
echo ‘<font id=”queueCount” style=”color: #FF0000″>’.count($_SESSION['card']).’</font>’;
} else { echo ‘<font id=”queueCount” style=”color: #FF0000″>0</font>’; }
echo ‘ ‘.__(‘in queue waiting to be printed.’); //mfc
?>
</div>
</div>
</fieldset>
<?php
/* search form end */
/* ITEM LIST */
// table spec
$table_spec = ‘member AS m
LEFT JOIN mst_member_type AS mt ON m.member_type_id=mt.member_type_id’;
// create datagrid
$datagrid = new simbio_datagrid();
$datagrid->setSQLColumn(‘m.member_id’,
‘m.member_id AS \”.__(‘Member ID’).’\”,
‘m.member_name AS \”.__(‘Member Name’).’\”,
‘mt.member_type_name AS \”.__(‘Membership Type’).’\”);
$datagrid->setSQLorder(‘m.last_update DESC’);
// is there any search
if (isset($_GET['keywords']) AND $_GET['keywords']) {
$keyword = $dbs->escape_string(trim($_GET['keywords']));
$words = explode(‘ ‘, $keyword);
if (count($words) > 1) {
$concat_sql = ‘ (‘;
foreach ($words as $word) {
$concat_sql .= ” (m.member_id LIKE ‘%$word%’ OR m.member_name LIKE ‘%$word%’”;
}
// remove the last AND
$concat_sql = substr_replace($concat_sql, ”, -3);
$concat_sql .= ‘) ‘;
$datagrid->setSQLCriteria($concat_sql);
} else {
$datagrid->setSQLCriteria(“m.member_id LIKE ‘%$keyword%’ OR m.member_name LIKE ‘%$keyword%’”);
}
}
// set table and table header attributes
$datagrid->table_attr = ‘align=”center” id=”dataList” cellpadding=”5″ cellspacing=”0″‘;
$datagrid->table_header_attr = ‘class=”dataListHeader” style=”font-weight: bold;”‘;
// edit and checkbox property
$datagrid->edit_property = false;
$datagrid->chbox_property = array(‘itemID’, __(‘Add’));
$datagrid->chbox_action_button = __(‘Add To Print Queue’);
$datagrid->chbox_confirm_msg = __(‘Add to print queue?’);
$datagrid->column_width = array(’10%’, ’70%’, ’15%’);
// set checkbox action URL
$datagrid->chbox_form_URL = $_SERVER['PHP_SELF'];
// put the result into variables
$datagrid_result = $datagrid->createDataGrid($dbs, $table_spec, 20, $can_read);
if (isset($_GET['keywords']) AND $_GET['keywords']) {
echo ‘<div class=”infoBox”>’.__(‘Found’).’ ‘.$datagrid->num_rows.’ ‘.__(‘from your search with keyword’).’: “‘.$_GET['keywords'].’”</div>’; //mfc
}
echo $datagrid_result;
/* main content end */

?>

3. Buat desain kartu anggota berukuran 468×237 px menggunakan corel draw, adobe photoshop atau yang lainnya, kemudian save dengan nama card.png (ingat, format file harus *.png untuk menyesuaikan script di atas).

4. Simpan file card.png tersebut di folder files.

5. Semoga berhasil.

Minggu, 26 Februari 2012

Reportase: Sinau Bareng Linux dan SLiMS, 25 Februari 2012

Sebagai kelanjutan dari Seminar minggu sebelumnya, panitia dari KSL UIN Sukijo menyelenggarakan sinau bareng Linux dan SliMS. Kegiatan ini kembali didampingi oleh tim KSL dan Komunitas SLiMS Jogja. Peserta yang datang pada acara ini sangat bervariasi; mulai dari mahasiswa, pustakawan serta umum. Bahkan tampak mahasiswa Ilmu Perpustakaan UNDIP, UNS dan juga UIN SUKA. Tampak pula pegiat SLiMS dari Jepara (Hartoyo) dan para pustakawan sekolah di Jogja yang tertarik dengan SLiMS.

Sesi pertama, sekitar pukul 08.00 sd 13.00 (12.00-13.00 break sholat dhuhur) diisi oleh KSL UIN Sukijo dengan materi instalasi Linux Ubuntu 10.04 (Lucyd Linx) dengan menggunakan Wubi. Ubuntu dipilih karena mudah digunakan dan merupakan distro paling banyak digunakan pegiat Linux. Pada sesi ini, KSL juga menyediakan repo lokal yang dipakai oleh peserta sebagai sarana repo untuk update paket dan install paket. Pada sesi install paket, peserta diberi penjelasan sekaligus praktek bersama instalasi apache, mysql, php dan phpmyadmin pada linux. Tidak hanya peserta yang menjadi audiens sesi ini, beberapa pegiat SLiMS Jogja juga ikut nimbrung. Hal ini disebabkan oleh keinginan mereka untuk ikut juga belajar Linux secara mendalam. Salah satu pegiat SliMS jogja bahkan mengakui bahwa ada beberapa hal terkait Linux yang baru diketahui setelah ikut acara ini.

Sesi berikutnya adalah instalasi SLiMS pada linux Ubuntu 10.04. Sesi ini diampu oleh para pegiat SliMS Jogja: Heri Abiburachman Hakim, Muhtarom, Eddy Subratha, dan juga Abdoel Aziz. Karena para peserta bervariasi sistem operasi yang digunakannya, maka sesi SLiMS dibagi dua. Pertama adalah instalasi SLiMS di Linux dan pada bagian lain ada belajar bersama SLiMS pada Windows.

Pada sesi install SliMS di Linux muncul beberapa masalah yang justru diharap dapat membuat peserta memahami apa itu Linux dan bagaimana instalasi SLiMS di Linux. Misalnya masalah hak akses file dan folder serta hak kepemilikan file dan folder. Peserta dikenalkan dengan perintah konsole CHOWN, CHMOD, LS dan lain sebagainya. Pengenalan ini sebelumnya juga dibahas pada sesi Linux secara lebih jauh.

Alhamdulillah, sesi instalasi SLiMS di Linux selesai dan semua peserta yang membawa laptop yang sebelumnya diinstall Linux berhasil diinstall SLiMS. Pada bagian lain, belajar bersama SLiMS pada windows juga berjalan lancar.

Slide presentasi pelatihan Linux silakan unduh di: [download id="6"]
Untuk cara install SLiMS di Linux, silakan unduh dokumentasi SLiMS di http://slims.web.id