Senin, 19 Desember 2016

CODEIGNITER HMVC MEMBUAT BARCODE DENGAN ZEND FRAMEWORK 2

,
Bagaimanakan membuat atau menampilkan barcode menggunakan codeigniter? Berikut bahan yang diperlukan
  1. Codeigniter (disini saya menggunakan codeigniter yang sudah terintegrasi HMVC sudah dijelaskan di posting  )
  2. Zend Framework (saya menggunakan yg versi 2.4.9) official website untuk medownload sesuai versi yang diinginkan https://framework.zend.com/downloads/archives
Step 1
Buatlah sebuah folder bernama Zend di folder libraries aplikasi kita. Extract hasil download zend framework ZendFramework-2.4.9.zip, buka folder library/Zend lalu pilih folder Barcode, ServiceManager, Stdlib, dan Validator, copy folder tersebut ke folder Zend yang berada di folder libraries project kita sehingga struktur folder aplikasi menjadi seperti berikut
Step 2
Buatlah sebuah file bernama Zend.php di folder libraries aplikasi yang dibuat. Lalu ketikan script berikut

if( ! defined('BASEPATH')) exit('No direct script access allowed');

class Zend {

 public function __construct($class = NULL)
 {
  ini_set('include_path',
  ini_get('include_path'). PATH_SEPARATOR. APPPATH. 'libraries');
 
  if($class)
  {
   require_once(string) $class.'.php';
   log_message('debug', "Zend Class $class Loaded");
  }else
  {
   log_message('debug', "Zend Class Initialized");
  }
 }

 public function load($class)
 {
  require_once(string) $class.'.php';
  log_message('debug', "Zend Class $class Loaded");
 }
}

Step 3
Buatlah sebuah folder bernama barcode di folder assets yang nantinya digunakan sebagai tempat menampung gambar barcode yang telah dibuat.
Buatlah sebuah modul baru saya namakan modul barcode. Di controller barcode saya ketikan script sebagai berikut
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of Barcode
 * @author IMAM SYAIFULLOH
 */
class Barcode extends MX_Controller
{
 
 function __construct()
 {
  parent::__construct();
 }

 public function createbarcode()
 {
 $str = 'IMAM SYAIFULLOH';
 $location = 'assets/barcode/';
        $this->load->library('Zend/Barcode/Barcode');
        $file = Zend\Barcode\Barcode::draw('code128', 'image', array('text' => $str), array());
        $store_image = imagepng($file, FCPATH . $location."{$str}.png");
        $img = $location."{$str}.png";
        $this->load->helper('html');
        echo img($img);
 }
}
Pada script diatas saya hanya menampilkan secara langsung barcode yang telah dibuat ketika dunction create barcode dieksekusi, untuk implementasi lainnya bisa dikembangkan lebih lanjut. Berikut struktur akhir project yang telah dibuat
Berikut hasil barcode setelah aplikasi dijalankan


Referensi :
Read more →

Sabtu, 17 Desember 2016

CODEIGNITER HMVC FORM VALIDATION CALLBACK ISSUE

,
Codeigniter sudah menyediakan library form_validation dimana sudah ada dokumentasinya di User Guide yang telah disediakan. Ketika kita membuat form input data seringkali kita perlu membuat sebuah validasi tertentu diluar validasi yang disediakan di library tersebut, karenanya kita perlu menggunakan fungsi callback. Pada penggembangan codeigniter dengan hmvc yang telah dibahas pada dua postingan sebelumnya fungsi callback ini akan tidak berjalan sebagaimana mestinya, dimana pesan notifikasi kepada pengguna tidak bisa ditampilkan. Berikut pesan error yang dijumpai "Unable to access an error message corresponding to your field name.....................". Berikut script yang saya buat
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of Dashboard
 * @author IMAM SYAIFULLOH
 */
class Dashboard extends MX_Controller
{
    public function __construct()
    {
   parent::__construct();
        $this->load->helper('form');        
        $this->load->library('form_validation');
    }

    public function index(){
     $data['title'] = 'Lesson HMVC';
     $data['content'] = 'Hello World';
     $this->load->view('dashboard_index', $data, FALSE);
    }

    public function login($value='')
    {
        if($_POST){
            $this->form_validation->set_rules('email', 'Email address', 'required|valid_email');
            $this->form_validation->set_rules('password', 'Password', 'required|callback_password_check');
            $this->form_validation->set_error_delimiters('
', '
'); if ($this->form_validation->run() == FALSE) { $page = 'dashboard/dashboard_login'; } else { $page = 'dashboard/dashboard_index'; } } else { $page = 'dashboard/dashboard_login'; } $data['title'] = 'Lesson HMVC'; $data['content_title'] = 'Lesson HMVC Callback Form Validation'; echo modules::run('template/loadview', $data,$page); } public function password_check($pass) { if ($pass == '123456') { $this->form_validation->set_message('password_check', 'The {field} field can not be the word "123456"'); return FALSE; } else { return TRUE; } } }
Ternyata setelah membaca beberapa referensi perlu adanya penambahan script / library agar fungsi callback dapat berjalan sebagaimana mestinya. Berikut langkah-langkahnya
Step 1
Buatlah sebuah library baru bernama MY_Form_validation.php, dengan isi script sebagai berikut
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of MY_Form_validation
 */
class MY_Form_validation extends CI_Form_validation {

    public $CI;

    function run($module = '', $group = '') {
        (is_object($module)) AND $this->CI = &$module;
        return parent::run($group);
    }

}
Step 2
Pada function __construct() perlu ditambahkan satu baris script "$this->form_validation->CI = &$this;" setelah memanggil library form_validation.
Selanjutnya pada script "$this->form_validation->run()" diedit menjadi "$this->form_validation->run($this)" sehingga scriptnya menjadi berikut
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of Dashboard
 * @author IMAM SYAIFULLOH
 */
class Dashboard extends MX_Controller
{
    public function __construct()
    {
   parent::__construct();
        $this->load->helper('form');        
        $this->load->library('form_validation');
        $this->form_validation->CI = &$this;
    }

    public function index(){
     $data['title'] = 'Lesson HMVC';
     $data['content'] = 'Hello World';
     $this->load->view('dashboard_index', $data, FALSE);
    }

    public function login($value='')
    {
        if($_POST){
            $this->form_validation->set_rules('email', 'Email address', 'required|valid_email');
            $this->form_validation->set_rules('password', 'Password', 'required|callback_password_check');
            $this->form_validation->set_error_delimiters('
', '
'); if ($this->form_validation->run($this) == FALSE) { $page = 'dashboard/dashboard_login'; } else { $page = 'dashboard/dashboard_index'; } } else { $page = 'dashboard/dashboard_login'; } $data['title'] = 'Lesson HMVC'; $data['content_title'] = 'Lesson HMVC Callback Form Validation'; echo modules::run('template/loadview', $data,$page); } public function password_check($pass) { if ($pass == '123456') { $this->form_validation->set_message('password_check', 'The {field} field can not be the word "123456"'); return FALSE; } else { return TRUE; } }div> }
Read more →

Kamis, 15 Desember 2016

CODEIGNITER HMVC MEMANGGIL FUNCTION DARI CONTROLLER LAINNYA

,
Melanjutkan postingan sebelumnya yang berjudul CODEIGNITER HMVC MEMBUAT TEMPLATE DENGAN BOOTSTRAP kali ini akan dibahas bagaimana memanggil function lainnya dari controller lain atau modul lain. Disini saya akan mencoba membuat function untuk menampilkan halaman template dan halaman content yang dapat diset dari function yang memanggil dengan tujuan agar tidak terlalu banyak membuat template. Pada postingan sebelumnya saya sudah membuat sebuah modul bernama template dimana digunakan untuk menampilkan template, dari modul itu saya kembangkan dengan menambahkan sebuah function bernama loadview, berikut script hasil pengembangannya
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * Description of Dashboard
 * @author IMAM SYAIFULLOH
 */
class Template extends MX_Controller
{
    public function __construct()
    {
     parent::__construct();
    }

    public function index()
    {
     $data['title'] = 'Lesson HMVC Part 2';     
     $this->load->view('template_header',$data);     
     $this->load->view('template_content',$data);
     $this->load->view('template_footer',$data);
    }

    public function loadview($data=NULL,$page = NULL)
    {
        $this->load->view('template_header',$data);   
        if($page != NULL){
            $this->load->view($page,$data);
        } else {
           $this->load->view('template_content',$data);
        }
        $this->load->view('template_footer',$data);
    }
}
perlu diperhatikan agar suatu function dapat dipanggil dari controller lainnya kedua controller harus extends MX_Controller. Selanjutnya saya ingin membuat sebuah form login dengan template yang dipanggil di function loadview. Saya menambahkan function login pada controller dashboard (modul dashboard) dan didalamnya saya memanggil function loadview untuk menampilkan template. Dari function login diperlukan variabel $data dan $page dimana $page ini menyimpan content yang akan ditampilkan. Berikut hasil script yang dibuat.
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of Dashboard
 * @author IMAM SYAIFULLOH
 */
class Dashboard extends MX_Controller
{
    public function __construct()
    {
   parent::__construct();
    }

    public function index(){
     $data['title'] = 'Lesson HMVC';
     $data['content'] = 'Hello World';
     $this->load->view('dashboard_index', $data, FALSE);
    }

    public function login($value='')
    {
     $data['title'] = 'Lesson HMVC';
        $data['content_title'] = 'Lesson HMVC Login';
     $page = 'dashboard/dashboard_login';
     echo modules::run('template/loadview', $data,$page);
    }
}
Selanjutnya saya buat sebuah view bernama dashboard_login yang disimpan di modul dashboard, berikut scriptnya
selanjutya saya coba memanggil halaman login tersebut dengan mengetikan http://localhost:8080/PROJECT/lesson/index.php/dashboard/login, berikut hasilnya
Lalu bagaiama jika kita ingin membuat sebuah function dimana funcion tersebut khusus untuk melakukan proses, misalnya saya ingin membuat proses perhitungan sederhana saya akan membuat sebuah modul baru bernama calculator yang digunakan untuk menampung function untuk melakukan proses, dan memanggil function tersebut di modul dashboard. Berikut script controller calculator
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of Calculator
 * @author IMAM SYAIFULLOH
 */
class Calculator extends MX_Controller
{
 
 function __construct()
 {
  parent::__construct();
 }

 public function tambah($x = NULL,$y=NULL)
 {
  $result = NULL;
  if($x != NULL && $y != NULL){
   $result = $x+$y;
  }
  return $result;
 }
}
Pada controller dashboard saya menambahkan funtion tambah data untuk menampilkan hasil proses dari function tambah pada function calculator, berikut script di controller dashboard
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of Dashboard
 * @author IMAM SYAIFULLOH
 */
class Dashboard extends MX_Controller
{
    public function __construct()
    {
   parent::__construct();
    }

    public function index(){
     $data['title'] = 'Lesson HMVC';
     $data['content'] = 'Hello World';
     $this->load->view('dashboard_index', $data, FALSE);
    }

    public function login($value='')
    {
     $data['title'] = 'Lesson HMVC';
        $data['content_title'] = 'Lesson HMVC Login';
     $page = 'dashboard/dashboard_login';
     echo modules::run('template/loadview', $data,$page);
    }

    public function tambahdata()
    {
        $x = 5;
        $y = 10;
        $this->load->module('calculator');
        $result = $this->calculator->tambah($x,$y);
        echo $x." + ".$y." = ".$result;
    }
}
maka kita dapat memanggil dibrowser dengan alamat http://localhost:8080/PROJECT/lesson/index.php/dashboard/tambahdata hasilnya
struktur folder akhir menjadi seperti berikut 
referensi https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
 



Read more →

Rabu, 14 Desember 2016

CODEIGNITER HMVC MEMBUAT TEMPLATE DENGAN BOOTSTRAP

,
Melanjutkan postingan sebelumnya yang berjudul CODEIGNITER HMVC  kali ini saya akan membuat sebuah template dengan menggunakan bootstrap. Untuk bahan / pelaralatan yang dibutuhkan yaitu
  1. Codeigniter HMVC (lanjutan dari postingan sebelumnya)
  2. Bootstrap http://getbootstrap.com/ Versi yang saya gunakan adalah versi 3.3.7
  3. Jquery https://jquery.com/
Langkah 1
Buatlah sebuah folder bernama assets di root folder project yang dibuat, di dalamnya buat lagi folder src saya menggunakan folder src sebagai tempat untuk menyimpan source yang sering digunakan sehingga jika nantinya ingin membuat project lainnya dapat dilakukan dengan mengcopy folder src ini. Selanjutnya extract hasil download bootstrap bootstrap-3.3.7-dist.zip dan pindahkan ke folder src tadi. 
Buatlah sebuah folder bernama js di dalam folder src, folder js ini berfungsi untuk menyimpan file javascript / jquery yang akan kita gunakan. Masukan jquery hasil download kedalamnya.
Sehingga struktur foldernya menjadi berikut

Langkah 2
Buatlah sebuah modul baru bernama template (pembuatan modul ada pada postingan sebelumnya), dalam modul template saya membuat sebuah controller dengan nama Template dengan script untuk memanggil view sabagai berikut 

defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * Description of Dashboard
 * @author IMAM SYAIFULLOH
 */
class Template extends MX_Controller
{
    public function __construct()
    {
     parent::__construct();
    }

    public function index($data=NULL,$page = NULL)
    {
     $data['title'] = 'Lesson HMVC Part 2';     
     $this->load->view('template_header',$data);     
     $this->load->view('template_content',$data);
     $this->load->view('template_footer',$data);
    }
}
Langkah 3
Untuk menampilkan halaman saya membuat tiga buah view yaitu template_header, template_content, dan template_footer dengan script sebagai berikut.
template_header

 template_content

template_footer 

 Sehingga struktur foldernya menjadi seperti berikut

Langkah 4
Jalankan project yang kita buat dengan mengetikan alamat http://localhost:8080/PROJECT/lesson/index.php/template di browser

Read more →

CODEIGNITER HMVC

,
HMVC atau hirarki model view controller adalah pengembangan dari MVC. Salah satu keuntungan menggunkan teknik modular HMVC sistem akan dipisahkan berdasarkan modul per-modul, hal ini akan memudahkan pengerjaan, perawaatan dan pembagian tugas dalam kerja tim.
Peralatan / Bahan yang dibutuhkan :
  1. Core Codeigniter https://www.codeigniter.com/ (saya menggunakan versi 3.1.2)
  2. Codeigniter modular extensions hmvc  https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc  
Langkah 1
Setelah keduanya didowonload, extract CodeIgniter-3.1.2.zip dan berinama sesuai dengan nama project yang akan dibuat disini saya memberi nama dengan nama lesson. Lalu copy ke htdocs.
Langkah 2
Extract wiredesignz-codeigniter-modular-extensions-hmvc.zip, di dalam folder hasil extract terdapat dua folder core dan third_party. Copy atau pindahkan kedua folder tersebut ke folder application yang berada di folder project yang telah dibuat pada Langkah 1. Masih dalam folder application, kita akan membuat modul caranya buatlah sebuah folder dengan nama modules. Didalam folder modules inilah nantinya kita memembuat script untuk project kita.

Langkah 3
Pada folder modules kita buat sebuah bernama dashboard dan didalamnya kita tambahkan folder controllers, models, dan views.
Selanjutnya kita tambhakan script untuk menampilakn sebuah halaman. Pertama buat sebuah controller dengan nama Dashboard (sesuai dengan nama modul) berikut script yang saya buat
 
defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * Description of Dashboard
 * @author IMAM SYAIFULLOH
 */
class Dashboard extends MX_Controller
{
    public function __construct()
    {
   parent::__construct();
    }

    public function index(){
     $data['title'] = 'Lesson HMVC';
     $data['content'] = 'Hello World';
     $this->load->view('dashboard_index', $data, FALSE);
    }
}

Selanjutnya buat sebuah view dan saya beri nama dashboard_index, berikut scriptnya
Sehingga struktur folder & filenya menjadi berikut
Sebelum menjalankan project yang telah kita buat jangan lupa setting autoload helper file dan url, base_url, dan arahkan route ke nama modules yang kita buat, sehingga setelah dijalankan menjadi berikut


Read more →