Initial commit

This commit is contained in:
root
2026-05-26 08:07:45 +00:00
commit a234e55e64
4263 changed files with 855927 additions and 0 deletions
+191
View File
@@ -0,0 +1,191 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class DynamicModel extends CI_Model {
protected $table;
protected $column_order = [];
protected $column_search = [];
protected $order = [];
public function setTable($table)
{
$this->table = $table;
return $this;
}
public function setColumn($order = [], $search = [], $default_order = [])
{
$this->column_order = $order;
$this->column_search = $search;
$this->order = $default_order;
return $this;
}
// =========================
// BASE QUERY (DATATABLE)
// =========================
private function _get_datatables_query()
{
$this->db->from($this->table);
// SEARCH
if (!empty($_POST['search']['value'])) {
$this->db->group_start();
foreach ($this->column_search as $i => $item) {
if ($i === 0) {
$this->db->like($item, $_POST['search']['value']);
} else {
$this->db->or_like($item, $_POST['search']['value']);
}
}
$this->db->group_end();
}
// ORDER
if (isset($_POST['order'])) {
$col = $_POST['order'][0]['column'];
$dir = $_POST['order'][0]['dir'];
if (isset($this->column_order[$col])) {
$this->db->order_by($this->column_order[$col], $dir);
}
} elseif (!empty($this->order)) {
foreach ($this->order as $key => $val) {
$this->db->order_by($key, $val);
}
}
}
// =========================
// DATATABLE GET
// =========================
public function get_datatables()
{
$this->_get_datatables_query();
if ($_POST['length'] != -1) {
$this->db->limit($_POST['length'], $_POST['start']);
}
return $this->db->get()->result();
}
public function count_filtered()
{
$this->_get_datatables_query();
return $this->db->count_all_results();
}
public function count_all()
{
return $this->db->count_all($this->table);
}
// =========================
// CRUD BASIC
// =========================
public function get_all($orderBy = null, $direction = 'ASC')
{
if ($orderBy) {
$this->db->order_by($orderBy, $direction);
}
return $this->db->get($this->table)->result();
}
public function get_by_id($id, $pk = 'id')
{
return $this->db->where($pk, $id)->get($this->table)->row();
}
public function get_where($where = [])
{
return $this->db->where($where)->get($this->table)->result();
}
public function insert($data)
{
$this->db->insert($this->table, $data);
return $this->db->insert_id();
}
public function insert_batch($data)
{
return $this->db->insert_batch($this->table, $data);
}
public function update($id, $data, $pk = 'id')
{
return $this->db->where($pk, $id)->update($this->table, $data);
}
public function update_where($where, $data)
{
return $this->db->where($where)->update($this->table, $data);
}
public function delete($id, $pk = 'id')
{
return $this->db->where($pk, $id)->delete($this->table);
}
public function delete_where($where)
{
return $this->db->where($where)->delete($this->table);
}
// =========================
// ADVANCED QUERY
// =========================
public function join($table, $on, $type = 'left')
{
$this->db->join($table, $on, $type);
return $this;
}
public function where($where)
{
$this->db->where($where);
return $this;
}
public function like($field, $match)
{
$this->db->like($field, $match);
return $this;
}
public function order_by($field, $direction = 'ASC')
{
$this->db->order_by($field, $direction);
return $this;
}
public function limit($limit, $offset = 0)
{
$this->db->limit($limit, $offset);
return $this;
}
public function get()
{
return $this->db->get($this->table)->result();
}
public function first()
{
return $this->db->get($this->table)->row();
}
public function query($sql, $binds = null)
{
return $this->db->query($sql, $binds)->result();
}
public function find($id, $pk = 'id')
{
return $this->db->where($pk, $id)->get($this->table)->row();
}
}
+39
View File
@@ -0,0 +1,39 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class SiswaModel extends CI_Model {
// Get all siswa
public function getAll()
{
return $this->db
->order_by('nama_kelas', 'ASC')
->order_by('nama', 'ASC')
->get('v_siswa')
->result();
}
// Insert siswa
public function insert($data)
{
return $this->db->insert('siswa', $data);
}
// Cari ID kelas berdasarkan nama kelas
public function getKelasIdByName($nama)
{
$row = $this->db->get_where('kelas', ['nama' => $nama])->row();
return $row ? $row->id : null;
}
// Cari ID kamar berdasarkan nama kamar & nama gedung
public function getKamarIdByName($kamar, $gedung)
{
$row = $this->db->get_where('kamar', [
'nama' => $kamar,
'gedung' => $gedung
])->row();
return $row ? $row->id : null;
}
}
+11
View File
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>