Advertisement
sigitsuryono25

silsilah baru tanpa sebagai

Jul 17th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.50 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4. * To change this license header, choose License Headers in Project Properties.
  5. * To change this template file, choose Tools | Templates
  6. * and open the template in the editor.
  7. */
  8.  
  9. /**
  10. * Description of Silsilah
  11. *
  12. * @author sigit
  13. */
  14. class Silsilah extends CI_Controller {
  15.  
  16. //put your code here
  17.  
  18. function addMember() {
  19. $data['parent'] = $this->db->query("SELECT * FROM member_detail WHERE parent_id IS NULL ORDER BY parent_id, member_id ASC")->result();
  20. $this->load->view('add-member', $data);
  21. }
  22.  
  23. function proc_add_member() {
  24. $parentId = empty($this->input->post('parent_id')) ? null : $this->input->post('parent_id');
  25. $nama = $this->input->post('nama');
  26. $sebagai = $this->input->post('sebagai');
  27. $member_img = $this->input->post('member_img');
  28. $berkuasaPhoto = $this->input->post('berkuasa-pada');
  29. $gelar = $this->input->post('gelar');
  30. $jk = $this->input->post("jk");
  31.  
  32. // echo $parentId;
  33.  
  34.  
  35. $dataInsertMember = ['parent_id' => $parentId, 'nama' => $nama, 'member_img' => $member_img, "sebagai" => $sebagai, 'berkuasa_pada' => $berkuasaPhoto, 'gelar' => $gelar];
  36. $res = $this->member->insertDb('member_detail', $dataInsertMember);
  37.  
  38. if ($res > 0) {
  39. redirect('silsilah/addmember', 'refresh');
  40. } else {
  41. echo "Somethin' wrong";
  42. }
  43. }
  44.  
  45. function getFamilyTree() {
  46. header("Access-Control-Allow-Origin: *");
  47. header("Content-Type: application/json; charset=UTF-8");
  48. $res = $this->db->query("SELECT * FROM member_detail ORDER BY member_id")->result();
  49. $data = [];
  50. foreach ($res as $r) {
  51. $tmp = [];
  52. $tmp['memberId'] = $r->member_id;
  53. $tmp['parentId'] = $r->parent_id;
  54. $tmp['nama'] = $r->nama;
  55. $tmp['sebagai'] = $r->sebagai;
  56. $tmp['berkuasa_pada'] = $r->berkuasa_pada;
  57. $tmp['jk'] = $r->jk;
  58. $tmp['gelar'] = $r->gelar;
  59.  
  60. array_push($data, $tmp);
  61. }
  62.  
  63. echo json_encode($data);
  64. }
  65.  
  66. function showFamilyTree() {
  67. $this->load->view("tree-view");
  68. }
  69.  
  70. function showFamilyTreeMobile() {
  71. $this->load->view("tree-view-mobile");
  72. }
  73.  
  74. function showFamilyTreeDesktop() {
  75. $this->load->view("tree-view-desktop");
  76. }
  77.  
  78. function resetTable() {
  79. $this->db->empty_table('member_detail');
  80. redirect('silsilah/addmember', 'refresh');
  81. }
  82.  
  83. function deleteNode($node) {
  84. $where = ['member_id' => $node];
  85. $check = $this->db->query("SELECT * FROM member_detail WHERE parent_id IN ('$node')");
  86. $delete = $this->member->deleteDb('member_detail', $where);
  87. if ($delete > 0) {
  88. if ($check->num_rows() > 0) {
  89. $parentId = ['parent_id' => $node];
  90. $deleteNode = $this->member->deleteDb('member_detail', $parentId);
  91. if ($deleteNode > 0) {
  92. echo json_encode(['code' => 200]);
  93. return;
  94. }
  95. }
  96. echo json_encode(['code' => 200]);
  97. }
  98. }
  99.  
  100. function updateNode() {
  101. $memberId = $this->input->get("member-id");
  102. $selectedParent = $this->input->post("selected-parent-id");
  103.  
  104. $nama = $this->input->post('nama');
  105. $sebagai = $this->input->post('sebagai');
  106. $berkuasaPada = $this->input->post('berkuasa-pada');
  107. $gelar = $this->input->post('gelar');
  108. $jk = $this->input->post("jk");
  109.  
  110. $where = ['member_id' => $memberId];
  111.  
  112. $dataupdate = ['parent_id' => $selectedParent, 'nama' => $nama, 'sebagai' => $sebagai, 'berkuasa_pada' => $berkuasaPada, 'gelar' => $gelar, 'jk' => $jk];
  113.  
  114. $update = $this->member->updateDb('member_detail', $dataupdate, $where);
  115. if ($update > 0) {
  116. $this->output->set_header('refresh:2; url=' . site_url("silsilah/showFamilyTree"));
  117. echo "Update berhasil. Anda akan diarahkan ke halaman family tree dalam 5 detik";
  118. } else {
  119. echo "something wrong";
  120. }
  121. }
  122.  
  123. function formUpdate() {
  124. $parentId = $this->input->get("member-id");
  125. $data['parent'] = $this->db->query("SELECT * FROM member_detail WHERE parent_id IS NULL ORDER BY parent_id, member_id ASC")->result();
  126. $data['member'] = $this->db->query("SELECT * FROM member_detail WHERE member_id IN ('$parentId')")->row();
  127. $parentIdBefore = $data['member']->parent_id;
  128. $data['before'] = $this->db->query("SELECT * FROM member_detail WHERE member_id IN ('$parentIdBefore')")->row();
  129. $this->load->view('edit-member', $data);
  130. }
  131.  
  132. function treeTest() {
  133. $this->load->view('tree-test');
  134. }
  135.  
  136. function test() {
  137. $idNode = $this->input->get('id-node');
  138. echo "<ul class='main-list'>";
  139. $raja = $this->db->query("SELECT * FROM `node_raja` RIGHT JOIN member_detail ON node_raja.member_id=member_detail.member_id WHERE member_detail.id_node IN ('$idNode') AND sebagai IN ('raja', 'ratu')")->result();
  140. foreach ($raja as $r) {
  141. if ($r->sebagai == "Raja") {
  142. echo "<li class='with-pict king male'>";
  143. echo '<div class="pict-wrapp">
  144. <img src="' . base_url('assets/') . 'img/male.jpeg" alt="Raja">
  145. </div>';
  146. } else {
  147. echo "<li class='queen female'>";
  148. }
  149. echo "<h3>$r->nama</h3>";
  150. echo "<span class='member-id' style='display: none'>$r->member_id</span>";
  151. echo '<p class="label-datu">' . $r->gelar . '</p>';
  152. echo '<p class="year">' . $r->berkuasa_pada . '</p>';
  153. echo '<p class="label-title">' . $r->sebagai . '</p>';
  154. if (empty($r->member_id)) {
  155. echo "</li>";
  156. }
  157. }
  158. echo "</ul>";
  159. }
  160.  
  161. function anoterMember($parentId = null, $last = false, $idNode = null) {
  162. $anoterMember = $this->db->query("SELECT * FROM `node_raja` RIGHT JOIN member_detail ON node_raja.member_id=member_detail.member_id WHERE parent_id IN ('$parentId') AND sebagai NOT IN ('ratu', 'raja') ORDER BY member_detail.member_id");
  163.  
  164. $count = $anoterMember->num_rows();
  165. foreach ($anoterMember->result() as $key => $an) {
  166. if ($an->jk == "Laki-Laki" && $an->generasi == 1) {
  167. if ($key == $count - 1) {
  168. $this->anoterMember($an->member_id, true, $idNode);
  169. echo "<li class='child male last'>";
  170. echo "<div class='wrapp'>";
  171. echo "<h3>$an->nama </h3>";
  172. echo "</div>";
  173. echo "</li>";
  174. } else if ($key == 0) {
  175. echo "<li class='child male first'>";
  176. echo "<div class='wrapp'>";
  177. echo "<h3>$an->nama </h3>";
  178. echo "</div>";
  179. $this->anoterMember($an->member_id, false, $idNode);
  180. echo "</li>";
  181. } else {
  182. echo "<li class='child male '>";
  183. echo "<div class='wrapp'>";
  184. echo "<h3>$an->nama </h3>";
  185. echo "</div>";
  186. $this->anoterMember($an->member_id, false, $idNode);
  187. echo "</li>";
  188. }
  189. } else if ($an->jk == "Laki-Laki") {
  190. echo '<div class="main-wrapper child-wrapp">';
  191. echo "<ul class='child-list'>";
  192. if ($count == 1) {
  193. echo "<li class='child male'>";
  194. echo "<div class='wrapp'>";
  195. echo "<h3>$an->nama </h3>";
  196. echo "</div>";
  197. $this->anoterMember($an->member_id, false, $idNode);
  198. echo "</li>";
  199. echo "</ul>";
  200. echo "</div>";
  201. } else {
  202. if ($key == 0) {
  203. echo "<li class='child male first'>";
  204. echo "<div class='wrapp'>";
  205. echo "<h3>$an->nama </h3>";
  206. echo "</div>";
  207. $this->anoterMember($an->member_id, false, $idNode);
  208. echo "</li>";
  209. echo "</ul>";
  210. echo "</div>";
  211. } else if ($key == $count - 1) {
  212. $this->anoterMember($an->member_id, true, $idNode);
  213. echo "<li class='child male last'>";
  214. echo "<div class='wrapp'>";
  215. echo "<h3>$an->nama</h3>";
  216. echo "</div>";
  217. echo "</li>";
  218. echo "</ul>";
  219. echo "</div>";
  220. } else {
  221. echo "<li class='child male '>";
  222. echo "<div class='wrapp'>";
  223. echo "<h3>$an->nama </h3>";
  224. echo "</div>";
  225. $this->anoterMember($an->member_id, false, $idNode);
  226. echo "</li>";
  227. echo "</ul>";
  228. echo "</div>";
  229. }
  230. }
  231. } else if ($an->jk == "Perempuan" && $an->sebagai == "Istri") {
  232. $countMember = $this->db->query("SELECT COUNT(*) as member FROM `node_raja` RIGHT JOIN member_detail ON node_raja.member_id=member_detail.member_id WHERE parent_id IN ('" . $an->member_id . "') AND sebagai NOT IN ('ratu', 'raja') ORDER BY member_detail.member_id");
  233. $counts = $countMember->row()->member;
  234. if ($last == true) {
  235. if ($counts > 1) {
  236. echo "<li class='child female wife last'>";
  237. } else {
  238. echo "<li class='child female wife last tunggal'>";
  239. }
  240. } else {
  241. if ($counts > 1) {
  242. echo "<li class='child female wife first'>";
  243. } else {
  244. echo "<li class='child female wife tunggal'>";
  245. }
  246. }
  247. echo "<div class='wrapp' style=''>";
  248. echo "<h3>$an->nama </h3>";
  249. echo "</div>";
  250. $this->anoterMember($an->member_id, false, $idNode);
  251. echo "</li>";
  252. } else if ($an->jk == "Perempuan" && $an->sebagai == "Anak") {
  253. echo '<div class="main-wrapper child-wrapp">';
  254. echo "<ul class='child-list'>";
  255. if ($count == 0) {
  256. echo "<li class='child female'>";
  257. } else {
  258. if ($key == 0) {
  259. echo "<li class='child female first'>";
  260. } else if ($key == $count - 1) {
  261. echo "<li class='child female last'>";
  262. } else {
  263. echo "<li class='child female '>";
  264. }
  265. }
  266. echo "<div class='wrapp'>";
  267. echo "<h3>$an->nama </h3>";
  268. echo "</div>";
  269. $this->anoterMember($an->member_id, false, $idNode);
  270. echo "</li>";
  271. echo "</ul>";
  272. echo "</div>";
  273. }
  274. }
  275. }
  276.  
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement