Minggu, 25 Oktober 2015

Belajar Cara Cepat Framework YII


Teman2 .....mungkin tertarik dengan Yii...namun sulit untuk mempraktekannya....Baiklah saya cuba sharing beberapa pengalaman saya belajar YII dengan cara cepat..

Download Materi Kursus YII Hari1 lp2maray

Cukup 30 menit fokus ...Kita sudah bisa membuat CRUD(Create Read Update Delete) padaYII Framework

Sebagai berikut langkah2 dan hasilnya...semoga bisa membantu....Amiin.....


Belajar YII
 Sebelumnya Download Dulu ya source code nya…lalu di copas ke Xampp/htdocs masing2…juga databsenya kasih aja dengan nama yiibuku lalu import….yiibuku.sql(ada di link tsb juga)
Lalu mulai deh setting2…..

Konfigurasi index Header
C:\xampp\htdocs\yiibuku\protected\views\layouts\main.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />

<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/screen.css" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/print.css" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/main.css" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/form.css" />

<title><?php echo CHtml::encode($this->pageTitle); ?></title>
</head>

<body>
<div class="container" id="page">
                <div id="header">
                                <div id="logo">LP2MARAY YII <?php echo CHtml::encode(Yii::app()->name); ?></div>
                </div><!-- header -->

<div id="mainmenu">
<?php $this->widget('zii.widgets.CMenu',
array('items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
array('label'=>'Buku', 'url'=>array('/buku/index')),//index.php?r=buku
array('label'=>'Admin', 'url'=>array('/admin/index')),//index.php?r=buku
),)); ?>

</div>
               
<?php if(isset($this->breadcrumbs)):?>
<?php $this->widget('zii.widgets.CBreadcrumbs', array('links'=>$this->breadcrumbs,)); ?>
<?php endif?>


<?php echo $content; ?>
<div class="clear"></div>

<div id="footer">
Copyright &copy; <?php echo date('Y'); ?> by lp2maray.com.<br/>
All Rights Reserved.<br/>
<?php echo Yii::powered(); ?>
</div><!-- footer -->
</div><!-- page -->

</body>
</html>



Konfigurasi index Body
<?php $this->pageTitle=Yii::app()->name; ?>

<h1>Welcome to LP2M ARAY <i><?php echo CHtml::encode(Yii::app()->name); ?></i></h1>
<p>Congratulations! You have successfully created your Yii application.</p>
<p>You may change the content of this page by modifying the following two files:</p>

<ul>
                <li>View file: <tt><?php echo __FILE__; ?></tt></li>
                <li>Layout file: <tt><?php echo $this->getLayoutFile('main'); ?></tt></li>
</ul>

<p>For more details on how to further develop this application, please read the <a href="http://www.yiiframework.com/doc/">documentation</a>.

Feel free to ask in the <a href="http://www.yiiframework.com/forum/">forum</a>,
should you have any questions.</p>





Lalu Buat database: yiibuku
CREATE TABLE IF NOT EXISTS `tb_admin` (
  `kode_admin` varchar(8) COLLATE latin1_general_ci NOT NULL,
  `username` varchar(25) COLLATE latin1_general_ci NOT NULL,
  `password` varchar(25) COLLATE latin1_general_ci NOT NULL,
  `telepon` varchar(15) COLLATE latin1_general_ci NOT NULL,
  `email` varchar(50) COLLATE latin1_general_ci NOT NULL,
  `gambar` varchar(50) COLLATE latin1_general_ci NOT NULL,
  `status` varchar(15) COLLATE latin1_general_ci NOT NULL,
  PRIMARY KEY (`kode_admin`)) ;


Copas aplikasi yiibuku ke htdocs pada xampp
Missal:C:\xampp\htdocs\


3.Setting koneksi , buka file C:\xampp\htdocs\yiibuku\protected\config\main.php
Sesuaikan formula koneksi nya:
'db'=>array(
                                                'connectionString' => 'mysql:host=localhost;dbname=yiibuku',
                                                'emulatePrepare' => true,
                                                'username' => 'root',
                                                'password' => '',
                                                'charset' => 'utf8',
                                ),

5.Buat folder admin dan letakkan di path : C:\xampp\htdocs\yiibuku\protected\views\admin
Tiga file tsb al:
                lihat.php
                baru.php
                ubah.php


file lihat.php
<?php
echo CHtml::link(CHtml::encode("Tambah Data"), array('create'));
?></p>
<table style="border-collapse: collapse; border:solid 1px #000; " border="1">
<tr style="border: 1px solid;" bgcolor="#999999">
          <th>no</th>
          <th>kode_admin</th>
                      <th>username</th>
                      <th>password</th>
                    <th>telepon</th>
                      <th>email</th>
                      <th>gambar</th>
                    <th>status</th>
                      <th>menu</th>        
                </tr>

                <?php
                $no=0;
                foreach ($data as $model):
                $no++;
                $color="#eeeeee";
                if($no %2==0){$color="#dddddd";}
                                $kode_admin=$model->kode_admin;
                                $username=$model->username;
                                $password=$model->password;
                                $telepon=$model->telepon;
                                $email=$model->email;
                                $gambar=$model->gambar;
                                $status=$model->status;
               
$ubh=CHtml::link(CHtml::encode("Update"),array('update', 'kode_admin'=>$model->kode_admin));
$hps=CHtml::link(CHtml::encode("Delete"),array('admin/delete', 'kode_admin'=>$model->kode_admin));
               
                echo"<tr bgcolor='$color'><td>$no</td>";
                echo"
                <td>$kode_admin</td>
                <td>$username</td>
                <td>$password</td>
                <td>$telepon</td>
                <td>$email</td>
                <td>$gambar</td>
                <td>$status</td>
                <td>$ubh | $hps</td>
                </tr>
                ";            
               
                endforeach;      
                ?>
</table>






file baru.php
<div class="form">
            <?php
                        echo CHtml::beginForm(array('create'));
                        echo CHtml::errorSummary($model);
            ?>      
            <div class="row">
                        <?php echo CHtml::activeLabel($model,'kode_admin'); ?>
                        <?php echo CHtml::activeTextField($model,"kode_admin",""); ?>
            </div>

            <div class="row">
                        <?php echo CHtml::activeLabel($model,'username'); ?>
                        <?php echo CHtml::activeTextField($model,"username",""); ?>
            </div>

            <div class="row">
                        <?php echo CHtml::activeLabel($model,'password'); ?>
                        <?php echo CHtml::activeTextField($model,"password",""); ?>
            </div>
           
    <div class="row">
                        <?php echo CHtml::activeLabel($model,'telepon'); ?>
                        <?php echo CHtml::activeTextField($model,"telepon",""); ?>
            </div>
           
    <div class="row">
                        <?php echo CHtml::activeLabel($model,'email'); ?>
                        <?php echo CHtml::activeTextField($model,"email",""); ?>
            </div>
           
    <div class="row">
                        <?php echo CHtml::activeLabel($model,'gambar'); ?>
                        <?php echo CHtml::activeTextField($model,"gambar",""); ?>
            </div>
           
    <div class="row">
                        <?php echo CHtml::activeLabel($model,'status'); ?>
                        <?php echo CHtml::activeTextField($model,"status",""); ?>
            </div>
           
            <div class="row buttons">
                        <?php echo CHtml::submitButton('Submit'); ?>
                <?php echo CHtml::endForm();?>
            </div>
</div>




File ubah.php
<div class="form">
  <?php
      echo CHtml::beginForm(array('update','kode_admin'=>$model->kode_admin));
    ?>   
           
    <div class="row">
      <?php echo CHtml::activeLabel($model,'kode_admin'); ?>
      <?php echo CHtml::activeTextField($model,"kode_admin","");?>             
    </div>

    <div class="row">
      <?php echo CHtml::activeLabel($model,'username'); ?>
      <?php echo CHtml::activeTextField($model,"username","");?>     
    </div>

    <div class="row">
      <?php echo CHtml::activeLabel($model,'password'); ?>
      <?php echo CHtml::activeTextField($model,"password","");?>      
    </div>

   <div class="row">
                        <?php echo CHtml::activeLabel($model,'telepon'); ?>
                        <?php echo CHtml::activeTextField($model,"telepon",""); ?>
            </div>
           
    <div class="row">
                        <?php echo CHtml::activeLabel($model,'email'); ?>
                        <?php echo CHtml::activeTextField($model,"email",""); ?>
            </div>
           
    <div class="row">
                        <?php echo CHtml::activeLabel($model,'gambar'); ?>
                        <?php echo CHtml::activeTextField($model,"gambar",""); ?>
            </div>
           
    <div class="row">
                        <?php echo CHtml::activeLabel($model,'status'); ?>
                        <?php echo CHtml::activeTextField($model,"status",""); ?>
    </div>
       
<div class="row buttons">
  <?php echo CHtml::submitButton('Update'); ?>
  <?php echo CHtml::endForm();?>
</div>




Membuat Model: AdminModel.php (character A huruf besar)
Pada path: C:\xampp\htdocs\yiibuku\protected\models
Sehingga jadinya adalah sbb: C:\xampp\htdocs\yiibuku\protected\models\AdminModel.php
<?php
class AdminModel extends CActiveRecord{
public static function model($className=__CLASS__){
                                return parent::model($className);
                }
public function tableName(){return 'tb_admin';}
                public function attributeLabels(){
                                return array(
                                                'kode_admin' => 'kode_admin',
                                                'username' => 'username',
                                                'password'=>'password',
                                                'telepon'=>'telepon',
                                                'email'=>'email',
                                                'gambar'=>'gambar',
                                                'status'=>'status',
                                );
                }
}
?>

Buat file AdminController.php (character A dan C huruf besar)
Diletakkan ke C:\xampp\htdocs\yiibuku\protected\controllers\
Sehingga terdapat file baru menjadi : C:\xampp\htdocs\yiibuku\protected\controllers\AdminController.php

Sesuaikan isinya AdminController.php:
<?php
class AdminController extends Controller{
public $layout="column1";
const INDEX="index";
public function actionIndex(){                                                                   
$data = AdminModel::model()->findAll();
$this->render('lihat',array('data'=>$data));
                }
function actionCreate(){                                                                                              
$model=new AdminModel;
                if(isset($_POST['AdminModel'])){
                                                $model->kode_admin=$_POST['AdminModel']['kode_admin'];
                                                $model->username=$_POST['AdminModel']['username'];
                                                if($model->save()){$this->redirect(array('index'));}        
                                }
                                $this->render('baru',array('model'=>$model,));                               
                }
 public function actionUpdate($kode_admin){
    $model=AdminModel::model()->findByPk($kode_admin);
    if(isset($_POST['AdminModel'])){
                                                $model->kode_admin=$_POST['AdminModel']['kode_admin'];
                                                $model->username=$_POST['AdminModel']['username'];
                                            if($model->save()){$this->redirect(array('index'));}
    }
    $this->render('ubah',array('model'=>$model,));
  }

  public function actionDelete($kode_admin){  
    if(AdminModel::model()->deleteByPk($kode_admin)){
        $this->redirect(array(self::INDEX));
    }else{     
        throw new CHttpException(404,'The requested page  does not exist.');
           }
  }
}
?>
               
bisa ditulis juga sebagai:
darinya akan diarahkan ke AdminController ActionIndex
jadi class AdminController dipanggil sebagai admin

Inti link ubah dan hapus adalah untuk menjalankan linksbb:



Hasil Akhirya:



NB.Materi di atas adalah Materi Hari pertama kursus YII di lp2maray,
Dengan silabus urutannya adalah sbb:
Hari1:
Instalasi YII CLI dan GUI
Pembuatan database dan table mysql
Pengenalan MVC
Penjelasan dan membuat Views lihat+baru+ubah
Penjelasan dan membuat Model Tabel dan Field
Penjelasan dan membuat Controller ActionIndex, ActionCreate, ActionUpdate, ActionDelete, Render index
Penjelasan dan membuat index header dan index body serta halaman statis about

Hari2:
Praktik penggunaan Radio
Praktik penggunaan Combobox
Praktik relasi Combobox YII
Praktik penggunaan Image pada YII
Praktik Upload Image pada YII
Studi Kasus

Hari3
Penjelasan dan Praktek Validasi Form
Penjelasan dan Praktek Ajax Validasi
Penjelasan dan Praktek Widget Form YII
CJuiDatePicker /Kalender Tanggal
Studi Kasus

Hari4
Login dan HaK Akses
Filter User Untuk Hak Akses Halaman
Relasi Antar Tabel
Studi Kasus

Hari5
Praktek Tata Letak
Praktek GII :YII CodeGenerator
Studi Kasus Aplikasi



Info Lebih:
http://www.Lp2maray.com
cp:adi 085279959498
021-92771708/021-78889003