Views


View adalah sebuah halaman web, seperti header, footer, sidebar, dan lain-lain. View ini tidak tampil secara langsung, melainkan harus di load melalui controller.

Cara meloadnya melalui controller dengan menggunakan fungsi berikut ini:

$this->load->view(‘nama_file_view’);

Dimana nama_file_view adalah nama file view anda. Catatan: Extensi .php tidak perlu disebutkan. Sebagai contoh misalnya anda memiliki file view dengan nama view.php maka untuk meloadnya seperti berikut ini:

$this->load->view(‘view’).

Agar anda lebih paham, saya jelaskan lebih rinci lagi. Misalkan anda membuat file controller dengan nama artikel.php (application/controllers/artikel.php) dimana didalamnya anda meload file view dengan nama view_artikel.php (application/views/view_artikel.php). Misalnya file controllernya seperti terlihat pada skrip dibawah ini:

<?php
class Artikel extends CI_Controller
{
function __construct()
{
parent::__construct();
}

function index()
{
$this->load->view(‘view_artikel’);
}
}
?>

Kemudian file view_artikel nya sebagai berikut:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt;
<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>View Artikel</title>
</head>

<body>
Tampil artikel
</body>
</html>

Jika kita mengakses lewat URL seperti terlihat pada URL berikut, maka file view_artikel akan diload dan ditampilkan pada browser :

localhost/[nama_direktori_codeigniter_anda]/index.php/artikel/

Loading Multiple Views

Codeigniter dapat menangani pemanggilan secara multiple melalui controller. Contohnya seperti berikut:

<?php
class Artikel extends CI_Controller
{
function __construct()
{
parent::__construct();
}

function index()
{
$this->load->view(‘view_header’);
$this->load->view(‘view_artikel’);
$this->load->view(‘view_footer’);
}
}
?>

Menyimpan View Kedalam Sub-folder

Apabila anda menyimpan file view kedalam sub-folder, maka untuk meload view, kita harus mengikut sertakan nama foldernya. Contohnya file view kita simpan ke dalam folder template.

<?php
class Artikel extends CI_Controller
{
function __construct()
{
parent::__construct();
}

function index()
{
$this->load->view(‘template/view_header’);
$this->load->view(‘template/view_artikel’);
$this->load->view(‘template/view_footer’);
}
}
?>

Menambahkan Data Dinamis Kedalam View

Data dilewatkan dari controller untuk ditampilkan ke file view dengan array atau sebuah objek pada parameter kedua dari fungsi load view. Berikut merupakan contoh penggunaan array:

Misalnya anda membuat file controller dengan nama artikel.php. Skripnya seperti berikut:

<?php
class Artikel extends CI_Controller
{
function __construct()
{
parent::__construct();
}

function index()
{
$data = array(‘title’ => ‘Title’,
‘heading’ => ‘Heading’,
‘message’ => ‘Message’);
$this->load->view(‘view_artikel’, $data);
}
}
?>

Controller artikel.php dapat juga ditulis seperti berikut:

<?php
class Artikel extends CI_Controller
{
function __construct()
{
parent::__construct();
}

function index()
{
$data[‘title’] = ‘Title’;
$data[‘heading’] = ‘Heading’;
$data[‘message’] = ‘Message’;

$this->load->view(‘view_artikel’, $data);
}
}
?>

Kemudian file view nya adalah view_artikel.php, dengan skrip seperti berikut ini:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt;
<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title><?php echo $title; ?></title>
</head>

<body>
<h2><?php echo $heading; ?></h2>
<p><?php echo $message; ?></p>
</body>
</html>

Membuat Perulangan

Kita dapat juga melewatkan data array multi dimensi kedalam file view kemudian menampilkannya dalam bentuk perulangan. Misalkan anda mempunyai file controller dengan nama artikel.php, skripnya seperti berikut:

<?php
class Artikel extends CI_Controller
{
function __construct()
{
parent::__construct();
}

function index()
{
$data[‘title’] = ‘Title’;
$data[‘heading’] = ‘Heading’;
$data[‘message’] = ‘Message’;
$data[‘list’] = array(‘PHP‘, ‘HTML‘, ‘CSS‘, ‘AJAX‘);

$this->load->view(‘view_artikel’, $data);
}
}
?>

Kemudian File view nya dengan nama view_artikel.php, skripnya seperti berikut:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”&gt;
<html xmlns=”http://www.w3.org/1999/xhtml”&gt;
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title><?php echo $title; ?></title>
</head>

<body>
<h2><?php echo $heading; ?></h2>
<p><?php echo $message; ?></p>
<p>
<?php
foreach($list as $row)
{
echo “- $row <br />”;
}
?>
</p>
</body>
</html>

Kemudian setelah itu diakses dengan URL:

localhost/[nama_direktori_codeigniter_anda]/index.php/artikel

Hasilnya data yang dilewatkan kedalam file view akan ditampilkan, sedangkan $data[‘list’] = array(..) datanya akan ditampilkan berulang! Sesuai dengan fungsi foreach yang ada dalam file view_artikel.php.

Mengembalikan View Sebagai Data

Terdapat tiga parameter pilihan yang dapat digunakan untuk mengubah perilaku fungsi, sehingga dapat mengembalikan data sebagai string daripada mengirimkannya kepada browser. Hal ini sangat berguna jika anda ingin memproses data dalam beberapa cara. Jika anda mengatur parameter menjadi TRUE (boolean) maka akan mengembalikan data. Defaultnya perilaku data diseting FALSE, yang mengirimkannya ke browser anda. Perlu diingat apabila anda ingin mengembalikan data maka settingannya harus diubah menjadi TRUE. Contohnya seperti berikut:

$string = $this->load->view(‘file_view’, ”, TRUE);