Sederhanakan Script Berulang - JackMizh/Sisekar GitHub Wiki

1. Penggunaan Session

  • Jika 1 atau 2 session
$data['per_page'] = $this->session->per_page;
  • Jika lebih dari 2 session
private $_list_session;

$this->_list_session = ['status_dasar', 'sex', 'dusun', 'rw', 'rt', 'cari', 'kelas', 'filter', 'id_bos', 'judul_statistik', 'bantuan_keluarga'];

foreach ($this->_list_session as $list)
{
	$data[$list] = $this->session->$list ?: '';	
}
  • Unset session
$this->session->unset_userdata($this->_list_session);

2. Penggunaan Filtering Pada Controller

public function filter($filter)
{
	$value = $this->input->post($filter);
	if ($value != '')
		$this->session->$filter = $value;
	else $this->session->unset_userdata($filter);
	redirect('keluarga');
}

<select class="form-control input-sm" name="status_dasar" onchange="formAction('mainform', '<?=site_url('keluarga/filter/status_dasar')?>')">

3. Penggunaan Filtering Pada Model

$kolom_kode = [
	array('dusun', 'c.dusun'),
	array('rw', 'c.rw'),
	array('rt', 'c.rt'),
	array('sex', 't.sex'),
	array('kelas', 'u.kelas_sosial'),
	array('id_bos', 'id_bos'),
];

foreach ($kolom_kode as $kolom)
{
	$sql .= $this->get_sql_kolom_kode($kolom[0], $kolom[1]);
}

protected function get_sql_kolom_kode($kode_session, $kode_kolom)
{
	$value = $this->session->$kode_session;

	if (isset($value))
	{
		if ($value == BELUM_MENGISI)
			$sql = " AND (".$kode_kolom." IS NULL OR ".$kode_kolom." = '')";
		else
			$sql = " AND ".$kode_kolom." = '$value'";
		return $sql;
	}
}