Belajar Pemrograman Komputer Mudah dan Menyenangkan

Monday, July 14, 2014

Set Value dari Pilihan Dialog Pada YII Framework

Pernahkan anda menjumpai permasalahan saat menginputkan data pada suatu text dengan ketentuan data itu harus benar berasal dari tabel tertentu? Kemudian dengan cara apa anda menyikapi permasalahan seperti ini? Menggunakan dropdownlist atau autocomplete? Benar, itu merupakan salah satu jalan keluar yang baik tetapi pernahkan anda berfikir apabila data dalam tabel tersebut ada ribuan? Tentu saja akan memusingkan apabila harus memilih data yang ribuan tersebut dalam suatu inputan dropdownlist.
Beberapa tutorial dalam wiki Yii Framework membuat panduan berupa select data dari kotak dialog yang didalamnya itu nanti muncul data dari tabel lain dan terdapat suatu inputan pencarian. Pada contoh berikut ini saya akan membuat tutorial dengan studi kasus aplikasi jurnal dengan data tabel master Dosen sebagai pelaku yang mengisikan data pada aplikasi jurnal tersebut. Berikut ini langkah pembuatannya:
Buatlah form yang terdiri dari textfield NIDN, Nama dan Program Studi seperti pada gambar berikut:

Kemudian buatlah tombol "ubah" untuk memunculkan data tabel dosen dalam dialog seperti pada gambar diatas.
Apabila data Dosen berasal dari tabel yang lain yaitu tabel dosen maka renderlah model tersebut. Contoh disini saya akan merender model dosen dalam action create sebagai berikut:
<?php public function actionCreate()
 {
  $model=new Jurnal;
  $model2=new Dosen('search');
  $model2->unsetAttributes();
  if(isset($_GET['Dosen']))
   $model2->attributes=$_GET['Dosen'];
  if(isset($_POST['Jurnal']))
  {
   $model->attributes=$_POST['Jurnal'];
   $model->save();
  }

  $this->render('create',array(
   'model'=>$model,
   'model2'=>$model2,
  ));
 }
?>
Kemudian pada file protected/view/jurnal/_form.php buatlah form dialog yang berasal dari model dosen sebagai berikut:
<?php 
    $this->beginWidget('zii.widgets.jui.CJuiDialog',array(
 //Nama selector/id
    'id'=>'mydialog',
    // additional javascript options for the dialog plugin
    'options'=>array(
        'title'=>'Klik tanda <code>+</code> untuk memilih NIDN!',
        'autoOpen'=>false,
  //Fokus atau modal diaktifkan
  'modal' => true,
     'show'=>array(
       'effect'=>'blind',
       'duration'=>1000,
       ),
     'hide'=>array(
       'effect'=>'explode',
       'duration'=>500,
     ),
  'width' => 640, 
  'height' => 480
    ),
));?>
<?php $this->widget('bootstrap.widgets.TbGridView',array(
 'id'=>'dosen-grid',
 'dataProvider'=>$model2->search(),
 'type'=>'striped bordered condensed',
 'filter'=>$model2,
 'columns'=>array(
  array(
   'name'=>'nidn',
   'filter'=> CHtml::activeTextField($model2, 'nidn', array('placeholder'=>'Cari NIDN dosen')),
  ),
  array(
   'name'=>'nama',
   'filter'=> CHtml::activeTextField($model2, 'nama', array('placeholder'=>'Cari nama dosen')),
  ),
  array(
          'name'=>'program_studi',
          'type'=>'raw',
    'filter'=>CHtml::listData(Dosen::model()->findAll(array(
    'distinct' => true,
    'order' => 'program_studi ASC'
   )), 'program_studi', 'program_studi'),
        ),
  array(
    'header'=>'PILIH',
    'type'=>'raw',
    'value'=>'CHtml::Button(
          "+"
          , array(
    "class" => "btn submit"
          , "id" => "get_link"
          , "onClick" => "$(\"#mydialog\").dialog(\"close\");$(\"#Jurnal_nidn \").val(\"". $data->nidn."\");
    $(\"#Dosen_nama \").val(\"". $data->nama."\");
    $(\"#Dosen_program_studi \").val(\"". $data->program_studi."\");
    "))',
  ),
 ),
)); ?>
<?php $this->endWidget('zii.widgets.jui.CJuiDialog'); ?>
Pada source code diatas merupakan code untuk membuat pilihan dialog data dari dosen kemudian apabila user sudah memilih salah satu data maka otomatis langsung mengset textfield NIDN, Nama dan Program Studi seperti pada gambar berikut ini:
Setelah button [+] di pilih maka akan menset textfield sebagai berikut ini:
Pada textfield NIDN terdapat button "ubah" source codenya sebagai berikut:
<?php echo $form->textFieldRow($model, 'nidn', array('disabled'=>true, 'class'=>'span2', 'hint' => '<i class="text-info" id="nidn">Klik <a href="#" onclick=$("#mydialog").dialog("open"); return false;><code>ubah</code></a> untuk memilih NIDN.</i>')); ?>
Pada textfield NIDN dipasang action onclick bernama #mydialog untuk menampilkan dialog tersebut.

Apabila muncul pesan error "Undefined variable: model2" maka definisikan model2 dalam file create.php di folder protected/view/jurnal/create.php

Pada contoh ini menggunakan struktur tabel sebagai berikut:

Selesai

Monday, July 7, 2014

Buku-buku YII Framework Gratis dan Mudah di Pahami

Beginning Yii (DEMO | DOWNLOAD)
Dengan pengarang Chris Backhouse dan diterbitkan Packt Publishing bulan september 2013. Buku ini berisi tentang Menjelajahi Yii, Memulai membuat aplikasi Yii, Mulai Pembangunan (Menggunakan IDE), Pengujian Aplikasi Anda, Pengaplikasian album foto, penggunaan UI (Themes, Layout, User Access), Debugging, Logging, Error Handling dan Menyesuaikan Album Antarmuka.
Berikut ini contoh isi buku:


Web Application Development with Yii and PHP (DEMO | DOWNLOAD)
Buku ini di karang oleh Jeffrey Winesett bulan November tahun 2012 lalu, buku ini berisi tentang Auto-generate skeleton web applications as well as CRUD scaffolding for the domain object model using the built-in command-line interface, Use Yii database migrations to version and manage your database changes, Create user-based applications with Yii's authentication model, Enhance your user-based application to control a user's access to feature functionality, Write an administrative console application to extend the features provided by Yii's powerful command-line tools, Integrate other frameworks and libraries into a Yii application to further extend its feature set, Spend less time managing application configuration by taking advantage of Yii's sensible defaults and conventions.

Monday, May 26, 2014

Membuat Barcode pada YII Framework dengan QR Code Generator


Bila kita mengunjungi suatu supermarket atau swalayan sering kita jumpai kode barcode ini pada kemasan suatu produk, dari yang kecil sampai yang besar memiliki kode barcode. Untuk mengetahui isi identitas dari produk tersebut (yang biasanya berbentuk angka) biasanya menggunakan mesin barcode.
Menurut salah satu sumber website wiki terkenal wikipedia menyatakan bahwa barcode atau kode batang adalah suatu kumpulan data optik yang dibaca mesin. Sebenarnya, kode batang ini mengumpulkan data dalam lebar (garis) dan spasi garis paralel dan dapat disebut sebagai kode batang atau simbologi linear atau 1D (1 dimensi). Tetapi juga memiliki bentuk persegi, titik, heksagon dan bentuk geometri lainnya di dalam gambar yang disebut kode matriks atau simbologi 2D (2 dimensi). Selain tak ada garis, sistem 2D sering juga disebut sebagai kode batang.
Dalam YII Framework sudah ada yang membuat extension barcode ini, tinggal kita menggunakannya saja. Ada 2 macam extension (Mei 2014) tentang barcode dalam yii framework salah satunya yaitu qr-code-generator. Extension ini bekerja pada yii versi 1.1 ke atas dan sangat mudah dalam penggunaanya.
Langkah pertama unduh extension tersebut pada alamat: http://www.yiiframework.com/extension/qr-code-generator kemudian ekstrak pada direktori protected/extensions/qrcode.

Copyright © AIMAGU