/** * fungsi standar buat update value, * * ex : * * $this->update( * 'nama_tabel', * array( 'kolom1', 'kolom2' ), * array( 'nilai1', 'nilai2' ), * array( * array( '', 'kolom1', 'kondisi1' ), -> operator untuk array 1 dikosongkan * array( 'AND', 'kolom2', 'kondisi' ) * ) * ) * * * @author Zaf * @param string $table * @param array $column * @param array $value * @param array $condition * @return bool $res */ function update($table, $column, $value, $condition) { $c_column = count($column); $c_value = count($value); $c_condition = count($condition); $cr_condition = count($condition, COUNT_RECURSIVE); // recursive /** * karena strukturnya multidimensi array */ $is_condition_multi = $c_condition != $cr_condition; /** * sama seperti insert, pastikan jumlah kolom dan nilai tiap value sama */ if ($c_column != $c_value || !$is_condition_multi && 2 != $c_condition && !is_array($condition)) { lrs_exit('Error while execute `update` function, invalid params or column and value count mismatch.'); } /** * query dasar */ $query = 'UPDATE `' . $table . '` SET'; /** * bentuk query */ foreach ($column as $k => $c) { $query .= ' `' . $c . '` = "' . $value[$k] . '"' . ($c != end($column) ? ', ' : ''); } /** * kondisi-kondisi */ $query .= ' WHERE'; if ($is_condition_multi) { foreach ($condition as $d) { $query .= ' ' . $d[0] . ' `' . $d[1] . '` = "' . $d[2] . '"'; } } else { $query .= ' `' . $condition[0] . '` = "' . $condition[1] . '"'; } $result = mysql_query($query); $result || error_log(mysql_error()); return $result; }
/** * berfungsi untuk me-redirect ke halaman tertentu, * dengan mengeksekusi exit() di akhir untuk memastikan * tidak ada program yang berjalan selanjutnya * * @param string $target */ function lrs_redirect($target = LRS_URI_PATH) { header('Location: ' . $target); lrs_exit(); }
/** * @param $params */ function parse_page($params) { /** init tingkat yang ada di params */ $this->init_tingkat($params); $view_path = LRS_VIEW_ABS_PATH; $file_to_include = $view_path . DS . self::page_404; /** kondisi untuk halaman publik utama atau beranda */ if (!$this->has_tingkat(1) || $this->get_tingkat(1) == self::view_beranda) { $file_to_include = $view_path . DS . self::page_index; /** untuk kondisi pertama, tentukan jenis nya terlebih dahulu */ } else { $has_view = true; /** untuk tingkat 1 dari jenis view, langsung tampilkan index */ switch ($this->get_tingkat(1)) { case self::view_admin: Contents::get_instance()->set_view(self::view_admin); break; case self::view_staff: Contents::get_instance()->set_view(self::view_staff); break; default: $has_view = false; } /** jika kondisi diatas memenuhi diantara view yang telah ditentukan */ if ($has_view) { /** * kondisi pertama jika memang yang diinginkan adalah halaman * index dari tiap view */ $condition1 = Contents::get_instance()->get_view_path() . DS . self::page_index; /** * kondisi kedua jika sub page dari tiap view tidak ketemu * gunakan index dari tiap view */ $condition2 = Contents::get_instance()->get_view_path() . DS . (!$this->has_tingkat(2) ? self::page_index : $this->get_tingkat(2) . self::script_ext); /** * lakukan pengecekan */ $file_to_include = is_readable($condition2) ? $condition2 : $condition1; /** jika memang tidak ada di daftar view */ } else { /** * coba eksekusi tingkat1.php jika ada */ $file_to_include = $view_path . DS . $this->get_tingkat(1) . self::script_ext; /** * dan apabila memang tidak ada, langsung berikan halaman 404 */ is_readable($file_to_include) || ($file_to_include = $view_path . DS . self::page_404); /** * jika memang file untuk di-include tidak ditemukan * bersihkan variabel view yang sudah kedung tersimpan * di objek Contents */ Contents::get_instance()->remove_view(); } } //lrs_exit( $file_to_include ); /** mulai meng-include */ if (is_readable($file_to_include)) { include $file_to_include; } else { lrs_exit('Script yang side eksekusi belum ada.', 'alert'); } }