Monday, 10 November 2014

Membuat User Online di YII Framework

Standard
Pada posting ini akan saya paparkan bagaimana cara membuat user online pada yii framework. Fungsi dari user online adalah untuk mengetahui berapa user yang sedang aktif pada sistem informasi yang kita buat.
Berikut langkah membuat user online di yii framework:
1. Membuat user login
Anda bisa membuat user login sendiri atau menggunakan beberapa extension yang disediakan pada laman yii framework (rights, RBAC, yii user) atau bisa langsung klik LINK.
2. Extension DbHttpSession (UNDUH)
Silahkan mengunduh extension DbHttpSession kemudian ekstrak kedalam path: protected/components pada aplikasi anda.
3. Tambahkan code berikut ini pada component dalam file config/main.php

'session' => array (
  'class' => 'application.components.DbHttpSession',
  'connectionID' => 'db',
  'sessionTableName' => 'session',
  'userTableName' => 'user'
),
4. Tambahkan query berikut kedalam database anda. Query ini akan menambahkan field user_id, last_ip, last_activity pada tabel user anda. 

ALTER TABLE user ADD user_id INT(11) NOT NULL, ADD last_ip VARCHAR(100) NOT NULL, ADD last_activity DATETIME NOT NULL
5. Tambahkan method getOnlineUsers pada model user aplikasi protected/model/user.php

public static function getOnlineUsers()
    {
        $sql = "SELECT session.user_id, user.username FROM session LEFT JOIN user ON user.id=session.user_id";
        $command = Yii::app()->db->createCommand($sql);
 
        return $command->queryAll();
    }
6. Pada protected/view/site/index.php tambahkan kode berikut

foreach (User::getOnlineUsers() as $user) {
        echo $user["username"];
    }

Monday, 14 July 2014

Set Value dari Pilihan Dialog Pada YII Framework

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

Live Demo

Pastikan anda menggunakan extension bootstrap atau booster.

Monday, 7 July 2014

Buku-buku YII Framework Gratis dan Mudah di Pahami

Standard
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.
Learn how easy it is to implement a multi-user application by utilizing Yii's authentication and role-based authorization models, Update your code to properly manage the user's last login time and store it in the database. Buku Yii ini bisa anda dapatkan secara gratis dengan mengunduh link download diatas.

Yii Application Development Cookbook (DEMO | DOWNLOAD)
Buku ini dikarang oleh Alexander Makarov dan diterbitkan Packt Publishing pada Mei 2013. Buku ini menyediakan versi ebooknya secara gratis dan dapat anda unduh secara cuma-cuma. Buku ini meliputi 13 BAB/ bahasan. Apabila anda adalah seorang pengembang dan sering menggunakan PHP 5 maka buku ini cocok anda gunakan.
The Yii framework is a rapidly growing PHP5 MVC framework often referred to as Rails for PHP. It has already become a solid base for many exciting web applications such as Stay.com and can be a good base for your developments, too. This book will help you to learn Yii quickly and in more depth for use in for your developments.
"Yii Application Development Cookbook" will show you how to use Yii efficiently. You will learn about taking shortcuts using core features, creating your own reusable code base, using test driven development, and many more topics that will give you a lot of experience in a moderate amount of time.
The second edition fixes all errata found in the first edition and also features new recipes on the client side, HTTP caching, and using Composer with Yii.

Yii Rapid Application Development Hotshot (DEMO | DOWNLOAD)
Buku karangan Lauren O'Meara dan James Hamilton ini diterbitkan oleh Packt Publishing  bulan December 2012 dan tersedia versi ebooknya secara gratis. Buku ini memuat serangkaian proyek untuk membantu Anda mempelajari Yii dan Rapid Application Development. Hal ini dapat digunakan sebagai sebuah buku hebat untuk mencari konsep-konsep kunci, atau bekerja pada proyek-proyek dari awal sampai akhir untuk aplikasi web yang lengkap.
Catapult your application into existence with Yii's scaffolding capabilities, Mobilize your web application with Yii and jQuery Mobile, Lock down areas of your application with access control, Manage users and permission levels, Incorporate Software as a Service into your application, Gamify your data, Mine your information with data query jobs and reporting, Reuse your work as Yii modules.

Menjelajah Yii Framework (DEMO | DOWNLOAD)
Buku karangan salah satu pegawai Badan Pusat Statistik yaitu Sabit Huraira diterbitkan sendiri dalam blog pribadinya. Ebook ini membahas tentang pembuatan forum yang didalamnya menjelaskan instalasi yii, level akses user, thread tebaik, penggunaan yii bootstrap, dll sangat cocok untuk pemula. Ebook ini disertai dengan source code dari pembuatnya.
Prakata dari pengarang sebagai berikut: Bagi rekan-rekan komunitas yang tertarik mempelajari Yii Framework, saya telah membuat sebuah ebook Yii Framework yang isinya adalah beberapa bahasan menyangkut Yii Framework beserta contoh source code pembuatan aplikasi forum menggunakan Yii Framework. Ebook ini sendiri saya tujukan untuk komunitas Yii Framework Indonesia, karena itu isi dari ebook ini sendiri saya kemas dalam bahasa Indonesia agar rekan-rekan dapat lebih mudah mempelajari dan memahami materi di dalamnya. Setahu saya ini adalah ebook PERTAMA Yii Framework yang berbahasa Indonesia. Untuk mendapatkan ebook ini, anda tidak perlu merogoh kocek sedikitpun.

Agile Web Application Development with Yii 1.1 and PHP 5 (DEMO | DOWNLOAD)
This book is a step by step tutorial in developing a real-world application using the incremental and iterative approach to software development. You learn about agile software development by leaning on the agile nature of the Yii application development framework. You touch on each aspect of the software development lifecycle by building a project task management application from concept through production deployment.
After a brief, general introduction to the Yii framework and outlining the software development approach taken throughout the book, the chapters break down in the same way as software development iterations do in real-world projects. After the 1st iteration, you will have a working and tested application with a valid, tested connection to a database.
In the 2nd and 3rd iterations, we flesh out our main database entities and domain object model and become familiar with Yii's object-relational-mapping (ORM) layer, Active Record. We also learn how to lean on Yii's auto-generation tools to automatically build our create/read/update/delete (CRUD) functionality against our newly created model. These iterations also focus on how Yii's form validation and submission model works. By the end of the third iteration you will have a working application that allows you to mange projects and issues (tasks) within those projects.
The 4th and 5th iterations are dedicated to user management. We learn about the built-in authentication model within Yii to assist in application login and logout functionality. We then dive into the authorization model, first taking advantage of a Yii's simple access control model, then implementing the more sophisticated role-based access control (RBAC) framework that Yii provides.

Copyright © AIMAGU. Jasa Pembuatan Website. All Rights Reserved
Design by Automattic | Blogger Theme by NewBloggerThemes | Official: www.aimagu.com