Showing posts with label Tutorial YII Framework. Show all posts
Showing posts with label Tutorial YII Framework. Show all posts

Sunday, January 6, 2019

Upload Gambar ke Server dengan Summernote Editor HTML di YII


Upload Gambar ke Server dengan Summernote Editor HTML di YII - Dalam membuat CMS (Content Management System) biasanya membutuhkan HTML Editor, banyak plugin javascript yang menyediakan fitur WYSWYG (What You See is What You Get) yang biasanya terdapat fungsi upload gambar dalam posting.

Konsep upload gambar dalam sebuah posting, yang dimaksud adalah file gambarnya di upload pada html editor kemudian tersimpan pada direktori server aplikasi, sehingga yang tampil pada html editor tersebut yang sesuai file yang diupload dan disimpen di server. Plugin editor html yang saya gunakan adalah Summernote Editor:

Script untuk Mengaktifkan Fungsi Editor HTML
// START: Summernote
$(document).ready(function() {
  $('.summernote').summernote({
    height: 500,
    tabsize: 4,
    callbacks: {
      onImageUpload: function(files, editor, welEditable) {
        sendFile(files[0], editor, welEditable);
      },
      onMediaDelete : function(target) {
        deleteFile(target[0].src);
      }
    }
  });
  function sendFile(file, editor, welEditable) {
    data = new FormData();
    data.append("file", file);
    $.ajax({
      data: data,
      type: "POST",
      url: "<?php echo YII::app()->baseUrl; ?>"+"/post/uploadimagepost",
      cache: false,
      contentType: false,
      processData: false,
      success: function(url) {
        // swal("Sukses","Berhasil! Upload Gambar, Tambahkan ?");
        $('.summernote').summernote('insertImage', url);
      }
    });
  }
  function deleteFile(src) {
    $.ajax({
      data: {src : src},
      type: "POST",
      url: "<?php echo YII::app()->baseUrl; ?>"+"/post/deleteimagepost",
      cache: false,
      success: function(resp) {
        console.log(resp);
      }
    });
  }
});
// END: Summernote
Script untuk Fungsi Upload File pada Function Aplikasi:
public function actionUploadImagePost(){
if ($_FILES['file']['name']) {
if (!$_FILES['file']['error']) {
$name = md5(rand(100, 200));
$ext = explode('.', $_FILES['file']['name']);
$filename = $name . '.' . $ext[1];
$destination = 'image/posting/' . $filename;
$location = $_FILES["file"]["tmp_name"];
move_uploaded_file($location, $destination);
echo YII::app()->baseUrl . "/image/posting/" . $filename;
}
else
{
echo  $message = 'Maaf, Gagal Upload File:  '.$_FILES['file']['error'];
}
}
}

Sunday, December 17, 2017

Menampilkan Foto Profil di Sidebar (Layout) di YII

Cara Menampilkan Foto Profil di Sidebar (Layout) di YII - Hal pertama yang harus dipersiakan adalah tabel user (di tutorial sebelumnya: cara membuat user login dari database) jika sudah, selanjutnya tinggal lakukan hal berikut untuk menampilkan foto pada layout (sidebar), secara default yii telah menyediakan fungsi untuk menampilkan id dan nama username yang login:
YII::app()->user->id = merupakan fungsi untuk menampilkan ID User
YII::app()->user->name = merupakan fungsi untuk menampilkan Username

Contoh Sidebar dengan Foto Profil di Layout


Tahap Pertama:
Membuat fungsi pada model, untuk menampilkan atribut lain selain ID dan USERNAME, disini kita akan menampilkan atribut IMAGE / FOTO (lihat juga: cara membuat fungsi upload foto di YII)  dari user yang login ke aplikasi, contoh disini akan membuat function di model Users yang terletak pada /protected/model/Users.php
public funcion showImage($id){
        $model= Users::model()->findByPk($id);
        return $model->image;
}

Tahap Kedua:
Memanggil fungsi yang telah dibuat di layout (sidebar), caranya cukup memanggil <?php echo Users::model()->showImage(YII::app()->user->id); ?> dari kode tersebut dapat menampilkan atribut gambar / foto sesuai ID user yang login, tinggal di tambahkan tag html image untuk menampilkan gambar contoh: 
<img src="<?php echo Users::model()->showImage(YII::app()->user->id); ?>" class="img-responsive" />

Tahap Terakhir
Simpan kode diatas pada bagian layout template anda, untuk struktur layout setiap template berbeda jadi tinggal di sesuaikan saja penempatannya, selesai. Apabila ada yang ditanyakan silahkan berkomentar dibawah ini :)

Sunday, October 15, 2017

Show Hide Form Radio Button dengan Jquery di YII

Show Hide Form Radio Button dengan Jquery di YII - Membuat interface untuk menampilkan dan menyembunyikan element tertentu menggunakan bantuan jquery akan mempermudah dalam pengembangan, salahsatu contoh kasus disini adalah apabila radio button tertentu di klik, maka akan menampilkan konten isian selanjutnya, berikut adalah tampilan form radio buttonnya, berikut hasil perbedaannya:
Apabila Klik Radio Button Diterima

Apabila Klik Radio Button Ditolak akan Muncul Form Input Lainnya

Untuk Scriptnya Jquery:
<script type="text/javascript">
$(function () {
$("input[name='Response[status]']").click(function () {
if ($("#Response_status_1").is(":checked")) {
$("#emailReject").show();
} else {
$("#emailReject").hide();
}
});
});
</script>  

Script Form Radio Button di YII:
<?php
echo $form->radioButtonList($model,'status',
array('1'=>'Diterima','2'=>'Ditolak'),
array(
'template'=>'{input}{label}',
'separator'=>'',
'labelOptions'=>array(
'style'=>'padding-right:20px;margin-left:15px'),
)
);
?>  

Bagian Form yang akan di Tampilkan apabila di klik Ditolak
<div id="emailReject" style="display: none">

<div class="form-group">
<?php echo $form->textArea($model,'description_reject',array('class'=>'form-control')); ?>
</div> 

<div class="form-group">
<?php echo $form->textArea($model,'description_email',array('class'=>'form-control')); ?>
</div> 

</div>

Wednesday, July 12, 2017

Login menggunakan Email atau Username di YII

Alternatif Login menggunakan Email atau Username di PHP dengan Framework YII - Pada framework YII sendiri sudah disediakan fungsi untuk mengatur autentikasi dalam hal ini Login, untuk masuk ke aplikasi, berbagai kemudahanpun ditawarkan agar mempermudah user untuk mengakses aplikasi. 
Login menggunakan Email atau Username di YII
Form Login Alternatif Email atau Username YII
Sebelumnya:

Salahsatunya login dengan alternatif, misalnya login dengan pilihan alamat email atau username, untuk konfigurasi di YII sangatlah mudah silahkan buka file UserIdentity.php di direktori folder /protected/components/UserIdentity.php
Login menggunakan Email atau Username di YII
File UserIdentity.php (Sebelumnya)

Replace code pada baris 15 dengan code dibawah ini:
if(strpos($this->username, '@') !== false){
$user = User::model()->findByAttributes(array('email'=>$this->username));
}else{
$user = User::model()->findByAttributes(array('username'=>$this->username));
}

Sehingga menjadi seperti berikut:
Login menggunakan Email atau Username di YII
File UserIdentity.php (Setelah Diedit)

Sekian tutorial singkat soal cara membuat login alternatif dengan username atau email menggunakan framework yii, selain itu bisa juga dipakai atribut lainnya jika dibutuhkan, contoh loginnya dengan nomor hp atau pin dll. Semoga bermanfaat.

Sunday, May 28, 2017

Menghitung dan Menampilkan Selisih Waktu di YII

Menghitung dan Menampilkan Selisih Waktu Dalam Satuan Menit di YII - Cara Mengambil data waktu dari database untuk menghitung selisih waktu antara jam mulai dan jam berakhir dalam satuan menit menggunakan PHP dengan framework YII.

Untuk melakukan perbandingan antara 2 waktu dan menampilkannya dalam satuan menit di YII sangat mudah, caranya hampir sama dengan mekanisme pengkodean di PHP pada umumnya, yaitu menggunakan fungsi strotime, abs dan round.

Langkah Pertama
Membuat fungsi yang dapat menghitung perbandingan tanggal yang disimpan dan diletakan pada model, disini saya akan mengambil study kasus "Menghitung Durasi Waktu Progress Pengerjaan Aktifitas dan Menampilkannya dalam Satuan Menit", seperti preview dibawah ini:



Dapat dijelaskan dalam gambar tersebut merupakan kasus rincian aktivitas pekerjaan dimana ada nama pekerjaan (job), waktu mulai dan waktu selesai (ditampilkan dalam tanggal dan jam), kemudian durasi progress pengerjaan.

Nah disini kita akan menghitung berapa durasi waktu yang dikerjakan berdasarkan dari waktu mulai dan waktu selesai yang ada di database ? Caranya silahkan buka salahsatu model yang telah di buat menggunakan CRUD, sebagai contoh saya menggunakan model dengan nama Projectdetail.php
nama_aplikasi\protected\models\Projectdetail.php

Kemudian sisipkan kode fungsi berikut untuk menghitung perbandingan waktu dalam satuan menit, saya share 2 script fungsi, tinggal pilih salahsatu: 

public function hitungMenit($mulai,$berakhir){
$interval  = abs(strtotime($berakhir) - strtotime($mulai));
$menit   = round($interval / 60);
return 'Durasi: '.$menit.' Menit'; }
atau
public function selisihWaktu($mulai,$berakhir){
$waktu1 = strtotime($mulai);
$waktu2 = strtotime($berakhir);
return 'Durasi: '.round(abs($waktu1 - $waktu2) / 60,2). ' Menit'; }

Langkah Kedua
Bagaimana cara memanggil fungsi tersebut ? Bagaimana cara menampilkannya di View ? Untuk implementasinya bisa di tampilkan di admin.php (tepatnya pada widget CGridview) atau view.php (tepatnya pada widget CDetailview) atau index.php (pada widget CListView)

Sebagai contoh disini saya akan menampilkannya dalam Widget CGridview (bentuk tabel), dan tinggal silahkan sisipkan kode berikut pada bagian CGridview:
  array(
    'header'=>'Progress Pengerjaan',
 'value'=>'Projectdetail::model()->hitungMenit($data->waktu_mulai,$data->waktu_berakhir)',
    ), 

Dapat saya jelaskan dalam script diatas terdapat 2 fungsi, yang pertama ada header (untuk menampilkan judul kolom), ada value (untuk menampilkan nilai yang akan di tampilkan),
Projectdetail::model()->hitungMenit($data->waktu_mulai,$data->waktu_berakhir)
Ini berarti memanggil model dengan nama Projectdetail, kemudian memanggil method dengan nama hitung menit, di tambah fungsi dengan parameter waktu mulai, dan waktu berakhir di tandai dengan $data->waktu_mulai dan $data->waktu_berakhir.

Demikian dapat saya sampaikan apabila ada yang ditanyakan silahkan berkomentar dibawah atau email di mugirachmat@infomugi.com, semoga bermanfaat. 

Thursday, March 30, 2017

Cara Membuat Fungsi Multiple Insert di YII

Cara Membuat Fungsi Multiple Insert di YII - Multiple Insert merupakan salahsatu cara / metode untuk menyimpan data banyak dalam hanya dalam 1 kali proses, dimana kita bisa input data-data hanya 1 kali klik ini ditujukan untuk membuat fungsionalitas agar efektif dan efisien.
Salahsatu cara yang bisa digunakan untuk membuat fungsi multipe insert ini adalah sebagai berikut, salahsatu contoh study kasus disini akan menyimpan 2 data aktivitas saya dalam waktu yang bersamaan ke dalam 1 tabel bernama activity:

Pertama
Membuat Fungsi tambahan di dalam folder component yang ada di YII, dan beri nama multiplemugi.php
<?php
class Multiplemugi
{
    public static function insert($table, $array_columns)
    {
        $connection = Yii::app()->db;
        $sql = '';
        $params = array();
        $i = 0;
        foreach ($array_columns as $columns) {
            $names = array();
            $placeholders = array();
            foreach ($columns as $name => $value) {
                if (!$i) {
                    $names[] = $connection->quoteColumnName($name);
                }
                if ($value instanceof CDbExpression) {
                    $placeholders[] = $value->expression;
                    foreach ($value->params as $n => $v)
                        $params[$n] = $v;
                } else {
                    $placeholders[] = ':' . $name . $i;
                    $params[':' . $name . $i] = $value;
                }
            }
            if (!$i) {
                $sql = 'INSERT INTO ' . $connection->quoteTableName($table)
                . ' (' . implode(', ', $names) . ') VALUES ('
                . implode(', ', $placeholders) . ')';
            } else {
                $sql .= ',(' . implode(', ', $placeholders) . ')';
            }
            $i++;
        }
        $command = Yii::app()->db->createCommand($sql);
        return $command->execute($params);
    }
}
Kedua
Membuat Fungsi di Controller / Model, sebagai contoh disini saya akan membuat function di model untuk menyimpan banyak data hanya dengan 1 kali panggil:
public function actionTesting(){
$rows = array(
    array(
        'created_date' => date('Y-m-d h:i:s'),
        'type' => '1',
        'description' => 'Sip',
        'activity_id' => '1',
        'user_id' => '1',
        'point' => '1',
        'status' => '1',
        ),
    array(
        'created_date' => date('Y-m-d h:i:s'),
        'type' => '2',
        'description' => 'Ok',
        'activity_id' => '2',
        'user_id' => '2',
        'point' => '2',
        'status' => '2',
        ),
    );

Multiplemugi::insert(Activities::model()->tableName(), $rows);
}

Penjelasan: 
Terdapat fungsi yang bernama actionTesting() didalam fungsi ini terdapat aksi untuk menyimpan data berupa array yang dimana fungsi Multiplemugi::insert() memanggil class Multiplemugi dengan method insert() yang berada di folder component tadi.
Kemudian Activities::model()->tableName() merupakan fungsi untuk memanggil nama tabel yang akan disimpan yang cukup memanggil nama modelnya saja. Pada model activity terdapat struktur tabel seperti berikut:

Struktur Tabel Activities

2 Data Masuk ke Database Bersamaan dengan Berbeda ID

Wednesday, March 29, 2017

Membuat dan Memanggil Fungsi Query SQL di YII

3 Langkah Membuat dan Memanggil Fungsi Query SQL di YII - Structure Query Language atau SQL fungsionalitas khusus yang dirancang untuk mengakses data di dalam database yang berelasional. YII telah menyediakan fungsi untuk dapat menggunakan / memanggil query sql yang dapat di simpan di controller / model / views sesuai kebutuhan, untuk penggunaan query SQL ini sangat sederhana seperti berikut, sebagai sample saya menyimpan fungsi ini di model dan menampilkannya di views.

Pertama
Buat Fungsi baru khusus untuk menampilkan data sebagai contoh disini saya berencana menampilkan posting terbaru dan posting terpopuler:

Contoh Query 1: Menampilkan Postingan Terakhir menjadi Terbaru
public static function getLastPost(){
$sql = "SELECT * FROM post ORDER BY created_date DESC LIMIT 3";
$command = YII::app()->db->createCommand($sql);
return $command->queryAll();
}

Contoh Query 2: Menampilkan Postingan Terpopuler berdasarkan Views
public static function getPopular(){
$sql = "SELECT * FROM post ORDER BY views DESC LIMIT 3";
$command = YII::app()->db->createCommand($sql);
return $command->queryAll();
}
Kedua
Anda cukup memanggil fungsi tempat dimana function itu disimpan, untuk contoh fungsi ini saya simpan di model Post, sehingga pemanggilan fungsinya menjadi Post::getLastPost() atau Post::getPopular()

Contoh Pemanggilan Fungsi Query dari Model ke Views
<?php
foreach (Post::getLastPost() as $data) {
$data['title'];
}
?>
<?php
foreach (Post::getPopular() as $data) {
$data['title'];
}
?>

Ketiga
Tinggal tambahkan CSS / template html agar tampilan lebih tampan dan enak dilihat, berikut sample hasil akhir penggunaan fungsi yang di simpan di model dan ditampilkan di views.

Tuesday, November 1, 2016

Modifikasi Pagination pada CActiveDataProvider YII

Cara Modifikasi Pagination pada CActiveDataProvider YII - Pagination merupakan salahsatu hal penting apabila kita mempunyai banyak data, dan ingin membatasi jumlah data yang tampil pada halaman ini, jadi dengan menggunakan Pagination anda bisa menampilkan sebagian atau beberapa data yang dapat di tampilkan pada widget ClistView dan CGridView.

Penerapan Pagination pada yii bisa diimplementasikan pada widget tabel atau list view, dan apabila anda menggunakan CActiveDataProvider untuk menampilkan data dengan widget tersebut anda bisa memberikan ukuran berapa jumlah data yang akan muncul

Secara default, CActiveDataProvider membatasi jumlah data yang tampil sebanyak 10 records, bagaimana jika anda ingin menampilkan 4 data atau bahkan 2000 data per Pagination, berikut ini adalah script function default CActiveDataProvider tanpa modifikasi Pagination

public function actionIndex()
{
$dataProvider=new CActiveDataProvider('Users');
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}

Berikut script yang sudah dimodifikasi, jadi kita hanya menampilkan 4 records saja per halaman, perhatikan tanda yang berwarna merah dibawah ini:
public function actionIndex()
{
$dataProvider=new CActiveDataProvider('Users',array('pagination'=>array(
'pageSize'=>'4',
))
);
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}

Untuk implemtasinya cukup memanggil fungsi pagination dan pagesize dan berikut screenshot sebelum menggunakan pagiation yang belum dimodifikasi
Default, Menampilkan 10 Data per Halaman


Screenshot setelah menggunakan pagiation yang telah dimodifikasi
Hanya menampilkan 4 data per halaman

Tuesday, March 8, 2016

Membuat Model yang Berelasi dapat di Searching, Sorting dan Filter di YII

Cara Membuat Model yang Berelasi dapat di Searching, Sorting dan Filter di YII - Dalam membuat sebuah aplikasi berbasis web, apabila aplikasi yang dibuat sangat kompleks tentunya dibangun tidak hanya dengan satu tabel, melainkan banyak tabel yang berelasi satu sama lainnya.

membuat, relasi, yii, sorting, searching, filtering


Dengan menggunakan yii framework dapat mempermudah melakukan relasi tabel tanpa query sql, salahsatunya adalah dengan memandaatkan model, karena yii mendukung konsep mvc, biasanya kasus ini terjadi dalam cgridview yang berelasi dan ingin data yang berelasi itu dapat di sorting, serching dan filter, berikut adalah tutorial cara membuat model yang berelasi dapat di cari, diurutkan dan di saring:

Pertama
Anda tentukan model yang akan direlasikan, disini saya punya kasus tabel Post dengan tabel Category, berarti untuk di YII dapat melakukan konfigurasi relasi di Model Post, kemudian buka Model Post.php pada folder models

Tabel Post
table, mysql, rancangan tabel, post

Tabel Kategory
table, mysql, rancangan tabel, category
Kedua
cari public function relations(), kemudian tambahkan baris kode berikut, untuk merelasikan model Post dengan Kategori, konfigurasinya pada model Post.php di folder models
'Category'=>array(self::BELONGS_TO,'Category','id_category'),

Ketiga
cari public function rules(), kemudian tambahkan baris kode untuk mencari nama kategori, contohnya disini adalah
array('categoryName', 'safe'),

Keempat
caro public function search(), kemudian anda tambahkan baris kode dibawah ini
$criteria->with = array('Category',);
$criteria->addSearchCondition('Category.name', $this->categoryName);

Kelima
Buka folder views, kemudian cari admin.php, setelah itu pada widget cgridview tambahkan baris kode berikut, agar nama kategori tadi dapat di searching, filter dan sorting
array(
'name' => 'id_category',
'value'=> '$data->Category->name',
'filter' => CHtml::activeTextField($model, 'categoryName'),
),
Menampilkan Nama Kategori pada tabel kategori di Tabel Post
tabel relasi, yii, admin, cgridview

Contoh Hasil Searching di Cgridview pada Model yang Berbeda
table, mysql, rancangan tabel, post

Sunday, December 27, 2015

Cara Mengatasi Error Failed to authenticate on SMTP GMAIL di YII

Cara Mengatasi Error Failed to authenticate on SMTP GMAIL di YII - Failed to authenticate on SMTP server with username "alamatemail@gmail.com" using 2 possible authenticators. Untuk mengatasi permasalah authenticate alamat email pada saat kirim email melalui aplikasi web di yii yang menggunakan extension yii mail dengan smtp gmail.



Solusi untuk mengatasi error tersebut cukup memberikan hak akses terhadap alamat email di gmail dengan mengaktifkan Allow less secure apps: ON. 



Silahkan buka alamat berikut, pastikan akun email anda dalam keadaan login, kemudian aktifkan switch ON pada allow less secure apps.
https://myaccount.google.com/security?pli=1#connectedapps

Friday, December 25, 2015

Cara Mengatasi Error 405 Method Not Allowed YII2

Cara Mengatasi Error 405 Method Not Allowed YII2 - Method Not Allowed. This url can only handle the following request methods: POST di yii2, permasalahan error 405 saat hapus data dan logout user pada yii2, cara untuk mengatasi error method not allowed.

Cara Mengatasi Error 405 Method Not Allowed YII2

Solusi: (Jika Error Muncul saat klik tombol Logout)
Buka SiteController.php 
public function behaviors()
{
return [
    'access' => [
        'class' => AccessControl::className(),
        'rules' => [
            [
                'actions' => ['login', 'error'],
                'allow' => true,
            ],
            [
                'actions' => ['logout', 'index'],
                'allow' => true,
                'roles' => ['@'],
            ],
        ],
    ],
    'verbs' => [
        'class' => VerbFilter::className(),
        'actions' => [
            'logout' => ['post'],
        ],
    ],
];
}

Solusi: (Jika Error Muncul saat klik tombol Hapus)
Buka file controller anda, contoh PenggunaController.php 
public function behaviors()
{
return [
    'verbs' => [
        'class' => VerbFilter::className(),
        'actions' => [
            'delete' => ['post','get'],
        ],
    ],
];
}

perhatikan method post, silahkan rubah menjadi get, atau juga bisa di pake kedua method tersebut sehingga menjadi ['post','get'] simpan konfigurasi dan lihat perubahannya, sederhana bukan cara mengatasi error 405 di yii2 yang tidak bisa muncul ketika logout dan hapus data.

Tuesday, December 1, 2015

Cara Install YII2 Secara Offline

4 Langkah Mudah Install YII 2 Secara Offline - YII 2 merupakan versi framework terbaru dari YII, mengusung tagline fast, secure dan professional yang dapat membantu anda dalam mengembangka aplikasi web secara mudah dan apapun kasusnya. 

YII merupakan framework opensource yang tentunya gratis serta memiliki konsep MVC (Model, View, Controller) yang dapat dijalankan pada PHP versi 5 keatas. Untuk saya yang baru belajar framework yii awalnya kesulitan ketika mencoba migrasi ke YII 2 dari YII 1, karena dari proses instalasi dan struktur filenya sedikit ada diferensiasi, jika anda ingin mencoba yii 2, berikut tutorial cara mudah install yii2 offline tanpa menggunakan composer:

Cara Install YII2 itu ada 2 cara, yang pertama menggunakan composer dan kedua menggunakan langsung arsip file YII2, disini saya akan mencoba melakukan instalasi yii dengan arsip yii-nya langsung:

Langkah Pertama:
Download archive file YII2 melalui link berikut ini:
http://www.yiiframework.com/download
Versi Basic
https://github.com/yiisoft/yii2/releases/download/2.0.6/yii-basic-app-2.0.6.tgz
Versi Advance
https://github.com/yiisoft/yii2/releases/download/2.0.6/yii-advanced-app-2.0.6.tgz

Langkah Kedua:
tutorial yii2, cara install yii versi 2, install yii2 tanpa komposer

Ekstract File tadi dan simpan di htdocs anda, contoh penyimpanan c:/xampp/htdocs/advanced
kemudian buka CMD (Command Prompt) dan ketik
cd /cd xampp/php/php.exe c:/xampp/htdocs/advanced/init

tutorial yii2, cara install yii versi 2, install yii2 tanpa komposer

kemudian akan memunculkan "YII Application Initialization Tool v.1.0", dan pilih 0 untuk "Development" dan pilih kembali yes.

Langkah Ketiga:
Buka http://localhost/phpmyadmin/ buat database baru, silahkan untuk penamaan bebas atau anda bisa beri nama "dbproject_yii2"
tutorial yii2, cara install yii versi 2, install yii2 tanpa komposer

Selanjutnya anda buka file main-local.php, untuk default direktorinya ada di
c:/xampp/htdocs/advanced/common/config/main-local.php
tutorial yii2, cara install yii versi 2, install yii2 tanpa komposer


Langkah Keempat:
Buka kembali CMD-nya, kemudian ketikkan kembali
cd xampp/php/php.exe c:/xampp/htdocs/advanced/yii migrate
tutorial yii2, cara install yii versi 2, install yii2 tanpa komposer


tunggu sampai proses migrasi selesai, kemudian anda cek database dbproject_yii2 apabila terdapat table hasil migrasi di database di localhost, berarti anda sukses melakukan instalasi YII2.

tutorial yii2, cara install yii versi 2, install yii2 tanpa komposer

untuk melihat web yii versi 2, anda bisa menuju alamat berikut 
http://localhost/advanced/frontend/web/

Sunday, September 13, 2015

Cara Membuat User Login dari Database di YII

Cara Membuat User Login Dinamis dari Database di YII - Tutorial kali ini akan membahas bagaimana cara memanfaatkan data user di database agar bisa login di yii, hampir sebagian besar aplikasi yang akan dibangun memiliki pengguna yang lebih dari satu.

Jika defaultnya user hanya bisa di tambah secara statis di UserIdentity, maka tutorial ini akan membahas bagaimana cara membuat user agar dinamis dikelola di aplikasi, bisa melakukan registrasi, update profile, kelola user dan lihat detail user, berikut tutorial cara membuat login dari database di yii:

cara membuat user bisa login dari tabel di yii, login dinamis di yii, cara login dari tabel yii

Langkah Pertama:
Siapkan database user, minimal ada id, username dan password. Anda bisa gunakan query SQL dibawah ini untuk membentuk tabel dengan cepat, biar tidak ribet berikut querynya:

cara membuat user bisa login dari tabel di yii, login dinamis di yii, cara login dari tabel yii

Cara penggunaanya, buat database baru atau database yang sudah ada, masuk ke phpmyadmin, masuk ke databasenya, kemudian akan muncul tab menu SQL, anda tinggal copy paste query tabel dibawah ini ke form kemudian klik GO.
CREATE TABLE IF NOT EXISTS `user` (
`idUser` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`namaLengkap` varchar(255) NOT NULL,
`jenisKelamin` varchar(2) NOT NULL,
`tanggalLahir` date NOT NULL,
`alamat` text NOT NULL,
`email` varchar(30) NOT NULL,
`telephone` varchar(15) NOT NULL,
`level` int(11) DEFAULT '3',
`status` int(2) DEFAULT '0',
PRIMARY KEY (`idUser`)
);

Langkah Kedua:
Apabila telah dibuat selanjutnya generate menggunakan GII tools, di YII sehingga membentuk sebuah CRUD di aplikasi yang anda buat. Kemudian buka UserController di folder
/namaaplikasi/protected/controllers/UserController.php. 

Selanjutnya Cari method actionCreate() dan actionUpdate()

Ganti script default actionCreate() dengan kode actionCreate() dibawah ini:
public function actionCreate()
{
$model=new User('create');
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
$model->password = md5($model->password);
if($model->save())
$this->redirect(array('view','id'=>$model->idUser));
}
$this->render('create',array(
'model'=>$model,
));
}

dan Ganti script default actionUpdate() dengan kode actionUpdate() dibawah ini:
public function actionUpdate($id)
{
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
$model->password = md5($model->password);
if($model->save())
$this->redirect(array('view','id'=>$model->idUser));
}
$this->render('update',array(
'model'=>$model,
));
}

Jangan lupa untuk tambahkan beberapa data user, agar nanti bisa login ke database, melalui hasil CRUD tadi.
cara membuat user bisa login dari tabel di yii, login dinamis di yii, cara login dari tabel yii

Langkah Ketiga:
Buka file UserIdentity di folder
/namaaplikasi/protected/Components/UserIdentity.php. 

Silahkan replace script default UserIdentity dengan kode UserIdentity dibawah ini:
<?php
/**
* UserIdentity represents the data needed to identity a user.
* It contains the authentication method that checks if the provided
* data can identity the user.
*/
class UserIdentity extends CUserIdentity
{
private $_id;

public function authenticate()
{
$username = strtolower($this->username);
$user = User::model()->find('LOWER(username)=?', array($username));
if($user===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($user->password!==md5($this->password))
$this->errorCode = self::ERROR_PASSWORD_INVALID;
else
{
$this->_id = $user->idUser;
$this->username = $user->username;
$this->setState('record', $user);
$this->errorCode = self::ERROR_NONE;
}

return $this->errorCode == self::ERROR_NONE;
}

public function getId()
{
return $this->_id;
}
}
?>

Langkah Keempat:
Silahkan coba running aplikasi anda dengan cara login ke aplikasi 
http://localhost/namaaplikasi/index.php?r=site/login

Friday, September 4, 2015

Cara Membuat Menu Sidebar di YII

Tutorial Cara Membuat Menu Sidebar di YII dengan Bootstrap - Salahsatu persyaratan untuk membuat menu sidebar kali ini adalah aplikasi web anda sudah include bootstrap, menu sidebar biasanya di simpan di bagian kiri konten atau bagian kanan konten tergantung selera, cara menambahkan menu sidebar di yii terbilang cukup mudah, karena anda hanya salin kode script menu sidebar, berikut tutorialnya:

7 Langkah Mudah Membuat Menu Sidebar YII:
1. Pastikan aplikasi bootsrtap anda sudah terinstall / terpasang extension bootstrap seperti yiistrap atau yang lainnya.

2. Pilih menu Themes, pilih folder bootstrap, kemudian folder layout, setelah itu cari file column2.php

3. Tambahkan script tag html untuk membentuk sidebar di file column2.php

4. Masukan kode html berikut ke dalam tag yang mempunyai id sidebar:
<!-- Start: Sidebar - www.infomugi.com -->
<nav class="navbar-default navbar-side" role="navigation">
<div class="sidebar-collapse">
<ul class="nav" id="main-menu">
<li class="text-center">
<img style="padding:15px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVEhBCt0X4fP4wUisXN5ww6vu1RVNNvGqkOw0gG2wpA-JAxyDpeHR7YkSxalkVo0pecnMVye7lfLR5J0m8gKBhs0TiVXhA-yO-_8Dk_1okD1mUQk9Iwin-jp51XglbcCukO2G7y0l7O4xJ/s170/logo-infomugi.png" class="user-image img-responsive">
</li>
<li><a class="active-menu" href="index.php?r=site/index">Dashboard</a></li>
<li><a href="index.php?r=map/create">Add Map</a></li>
<li><a href="index.php?r=map/admin">Manage Map</a></li>
<li><a href="index.php?r=kartu/create">Add Card</a></li>
<li><a href="index.php?r=kartu/">List Card</a></li>  
<li><a href="index.php?r=customer/create">Add Customer</a></li>
<li><a href="index.php?r=customer/">List Customer</a></li>
<li><a href="index.php?r=site/page&amp;view=excel">Export</a></li>              
</ul>
</div>
</nav>
</div>
<!-- End: Sidebar - www.infomugi.com -->
5. Tambahkan File Sidemugi.css berikut ke file folder css di aplikasi anda ( Lokasi file ada di themes/bootstrap/css/Sidemugi.php ):
Download File CSS: Sidemugi.css - 1 KB

6. Buka file main.php, Lokasi file ada di themes/bootstrap/layouts/main.php
 <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->theme->baseUrl; ?>/css/sidemugi.css" />
7. Simpan semua konfigurasi, apabila berhasil tampilan menu akan seperti dibawah ini, selamat mencoba jangan lupa untuk memodiikasi link menu sesuai dengan aplikasi anda.

Saturday, August 29, 2015

Cara Membuat Fungsi Upload File atau Gambar di YII

3 Langkah Sederhana untuk Membuat Fungsi Fasilitas Upload File / Gambar di YII - Kemudahan menggunakan framwork yii didukung oleh fitur yang telah disediakan pada library yii. tutorial kali ini akan membahas bagaimana cara membuat fungsi atau fitur upload di yii.

File yang dapat di upload bisa berupa dokumen seperti doc, docx, xls, pdf dan gambar seperti png, jpg dan gif semua file dapat diupload hanya dengan mengatur konfirgurasi pada rules sehingga file apapun dapat di upload di yii, berikut adalah tutorial cara upload file di yii:

cara upload file di yii, upload gambar dengan yii, tutorial, php

Langkah Pertama (Modifikasi Controller)
Buka Controller yang akan anda tambahkan fitur upload di yii (disini saya menggunakan controller yang sudah di generate oleh GII, dengan nama UseraccountsController.php), kemudian cari method actionCreate() dan secara default (tanpa modifikasi) method akan terlihat seperti berikut:
public function actionCreate()
{
$model=new Useraccounts;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Useraccounts']))
{
$model->attributes=$_POST['Useraccounts'];
if($model->save())
{
$this->redirect(array('view','id'=>$model->id_user));
}
}
$this->render('create',array(
'model'=>$model,
));
}

2. Kemudian Tambahkan Script Upload berikut di dalam controller, pada actionCreate() kodenya seperti berikut
$model->gambar=CUploadedFile::getInstance($model,'gambar');

dan
$model->gambar->saveAs(Yii::getPathOfAlias('webroot').'/image/'.$model->gambar);

tambahkan pada method actionCreate() di controller sehingga menjadi seperti berikut:
public function actionCreate()
{
$model=new Useraccounts;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Useraccounts']))
{
$model->attributes=$_POST['Useraccounts'];
$model->gambar=CUploadedFile::getInstance($model,'gambar');
if($model->save())
{
$model->gambar->saveAs(Yii::getPathOfAlias('webroot').'/image/'.$model->gambar);
$this->redirect(array('view','id'=>$model->id_user));
}
}
$this->render('create',array(
'model'=>$model,
));
}

Langkah Kedua (Modifikasi Model)
Buka model yang akan anda tambahkan fitur / fungsi upload, lagi-lagi disini saya menggunakan model Useraccounts.php 

Kemudian cari method rules() tambahkan potongan script dibawah ini ke dalam kode return array():
array('gambar', 'file', 'types'=>'jpg, gif, png','allowEmpty'=> true,'safe'=>true),

Langkah Ketiga (Modifikasi View)
Buka file _form.php pada fungsi yang akan anda rubah menjadi fitur upload, kemudian cari script textbox seperti dibawah ini
<div class="row"> <?php echo $form->labelEx($model,'gambar'); ?>
<?php echo $form->textField($model,'gambar',array('size'=>50,'maxlength'=>50)); ?>
<?php echo $form->error($model,'gambar'); ?>
</div>

Rubah textfield tersebut menjadi tombol upload dengan cara memanipulasi textField jadi fileField sehingga tampak pada kode dibawah ini
<div class="row"> <?php echo $form->labelEx($model,'gambar'); ?>
<?php echo $form->fileField($model,'gambar',array('size'=>50,'maxlength'=>50)); ?>
<?php echo $form->error($model,'gambar'); ?>
</div>
Masih di file yang sama yaitu _form.php geser kursor ke bagian atas dan anda akan menemukan kode seperti berikut:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'useraccounts-form',
'enableAjaxValidation'=>false,
)); ?>

tambahkan script 
'htmlOptions' => array('enctype' => 'multipart/form-data','autocomplete'=>'off'),

sehingga menjadi seperti berikut
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'useraccounts-form',
'htmlOptions' => array('enctype' => 'multipart/form-data','autocomplete'=>'off'),
'enableAjaxValidation'=>false,
)); ?>

Apabila berhasil tampilan form pada textfield gambar akan merubah menjadi fileupload gambar, selamat mencoba, jangan lupa follow @mugirachmat setiap jam saya update informasi teknologi. 

Thursday, July 23, 2015

Cara Membuat Radio Button di YII

Cara Membuat Radio Button di YII - Tutorial cara mudah membuat radio button di yii, radio button biasanya digunakan pada form sebuah halaman website untuk menentukan opsi satu pilihan, penggunaan radio button diterapkan pada form input data. Script radio button pada yii sangatlah singkat dan mudah untuk dipahami, berikut ada cara menambahkan radio button pada form di yii framwork hanya cukup merubah textfield menjadi radiobutton:

Contoh Pilihan Radio Button di YII: (Kasus: Menentukan Status Prodak)
Cara Membuat Radio Button di YII

Cara Membuat Radio Button di Form YII:
1. Bukan Folder _form yang ada di folder view aplikasi anda contoh:
C:\xampp\htdocs\latihanyii\protected\views\orderTransaksi\_form.php

2.  Perihatikan source code dibawah ini, secara default kode dibawah ini merupakan kode default untuk textbox di YII.
<?php echo $form->textField($model,'ukuran',array('size'=>25,'maxlength'=>25)); ?>

3. Kemudian Ganti dengan Sctipt tadi menjadi dengan kode dibawah ini, script untuk mengganti textbox jadi radio button:
<?php
echo $form->radioButtonList($model,'ukuran',
array('XS'=>'XS','S'=>'S','M'=>'M','L'=>'L','XL'=>'XL','XXL'=>'XXL'),
array(
'template'=>'{input}{label}',
'separator'=>'',
'labelOptions'=>array(
'style'=> '
padding-left:15px;
width: 50px;
float: left;
'),
'style'=>'float:left;',
));
?>
Hasil Textfield dirubah menjadi Radio Button di YII: (Kasus: Memilih ukuran Baju)
Cara Membuat Radio Button di YII

Note:
Silahkan Ganti tulisan yang berwarna biru menjadi attribut di tabel anda dan tulisan yang berwarna merah adalah nilai yang akan di tampilkan dan warna hijau untuk nilai yang akan disimpan di database.

Thursday, January 1, 2015

Cara Membuat Penomoran Otomatis di Cgridview YII

Cara Membuat Penomoran Otomatis di Tabel Cgridview YII - Memberi nomor pada data di tabel yang ada di cgridview yii bukanlah hal yang sulit, anda cukup memasukan source code berikut ini untuk membuat penomoran yang akan di tampilkan di tabel yii, dan secara otomatis setiap data yang berada di tabel yii di berikan nomor (angka) secara terstruktur, dan berikut contoh kode script untuk membuat nomor di yii:

Contoh: Penomoran di CGridview YII
membuat penomora, tabel yii, cgridview

Cara Penggunaan:
Untuk cara penggunaan anda tinggal sisipkan kode dibawah ini dan masuka di dalam source kode admin.php dalam cgridview, kurang lebih nanti hasilnya akan seperti dibawah.
membuat penomora, tabel yii, cgridview


Source Kode:
array(
'header'=>'No',
'value'=>'$this->grid->dataProvider->pagination->currentPage*$this->grid->dataProvider->pagination->pageSize + $row+1',
'htmlOptions'=>array('width'=>'10px',
'style' => 'text-align: center;')),

Tuesday, December 30, 2014

Cara Menggunakan CKEditor di YII

Cara Menggunakan CKEditor di YII - Membuat fasilitas posting di YII bukanlah hal yang sulit, banyaknya extension yang dibuat difungsikan untuk membuat YII lebih menarik, salahsatu bagian dari sebuah project saya adalah membuat fasilitas untuk posting, layaknya blogger atau wordpress dengan ckeditor kita bisa mendapatkan fungsi-fungsi formatting text pada website seperti yang ada di microsoft office, bold, italic, underline dll. Bagaimana di YII bisa, silahkan langsung coba dengan mengikuti langkah praktis berikut:

1. Download Extension CKEditor
  http://www.yiiframework.com/extension/ckeditor/files/ckeditor.zip

2. Simpan Extension di Folder /protected/extension (tentunya sudah di extract terlebih dahuliu)
Cara Menggunakan CKEditor di YII

 3. Buka file form yang ada di view _form.php (salahsatu contohnya sebagai beikut)
Cara Menggunakan CKEditor di YII
Masukan kode berikut, seperti yang nampak di gambar atas
<?php $this->widget('application.extensions.ckeditor.CKEditor',
array('model'=>$model,'attribute'=>'namaatributnya',                            'language'=>'id',                        
 'editorTemplate'=>'full',              
 ));?>


4. Hasil Akhir pemanfaatan CKeditor di YII
Cara Menggunakan CKEditor di YII

Wednesday, December 24, 2014

Cara Membuat Web Penjualan dengan YII

Cara Membuat Situs Toko Online Web Penjualan dengan YII - Membuat ecommerce sekarang bukanlah hal yang sulit, banyaknya CMS gratis dan layanan online shop yang semakin mudah dan murah didapatkan. seperti yang anda tahu yii memiliki banyak extension atau plugin yang bisa di manfaatkan untuk menambah fitur dan mempercantik tampilan salahsatu yang bisa anda manfaatkan adalah extension yii online shop ini:

Cara Menggunakan Extension YII "YIIShop":
1. Install YII Seperti biasa sehingga tampilan awalnya seperti ini, Download Extension YIIShop di http://www.yiiframework.com/extension/yiishop/

membuat toko online, situs penjualan, web ecommerce, gratis, extension yii

2. Konfirguasi di Folder protected/config/main.php, tambahkan baris kode seperti pada gambar, sebelumnya anda harus membuat database terlebih dahulu kemudian setting juga di file main.php
membuat toko online, situs penjualan, web ecommerce, gratis, extension yii

3. Extract dan simpan file yang sudah di download tadi di folder modules/yiishop, dan kemudian panggil file extension tadi dengan cara seperti berikut:
http://localhost/project_yiionlineshop/index.php?r=shop/install
membuat toko online, situs penjualan, web ecommerce, gratis, extension yii

4. Pada tahap selanjutnya anda akan menyiapkan nama-nama tabel untuk membuat online shop yii, anda bisa mengganti nama tabelnya 
membuat toko online, situs penjualan, web ecommerce, gratis, extension yii

5. Apabila sudah selesai anda tinggal klik "Install Webshop"

membuat toko online, situs penjualan, web ecommerce, gratis, extension yii

6. Untuk memanggilnya anda cukup ketikan alamat berikut pada address bar:
http://localhost/project_yiionlineshop/index.php?r=shop/products/index
membuat toko online, situs penjualan, web ecommerce, gratis, extension yii