Advertisement
Guest User

Untitled

a guest
Jan 11th, 2018
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.22 KB | None | 0 0
  1. <?PHP
  2. defined('SYS') or exit('Access Denied!');
  3. /*
  4. * Warpsite MVC Framework version 1.0
  5. * Author : Jauhari Malik
  6. */
  7.  
  8. // Error Reporting
  9. error_reporting(E_ALL);
  10. class Database{
  11. private $mysqli;
  12. public function __construct($host, $user, $pass, $db){
  13. $this->mysqli = new mysqli($host, $user, $pass, $db);
  14. if(mysqli_connect_errno()) {
  15. echo "Error: Database sedang tidak tersedia !!. ";
  16. exit;
  17. }
  18. }
  19.  
  20. /**
  21. * Dapatkan Kategori untuk artikel ini
  22. * @since v5
  23. */
  24. public function _get_category($cat){
  25. $jumlah_category = substr_count($cat,",");
  26. $cat_a = explode(',',$cat);
  27. $j_cat = 0;
  28. $cat_result = "";
  29. while ($j_cat <= $jumlah_category){
  30. $cat_me = $cat_a["$j_cat"];
  31. $cat_link2 = strtolower($cat_me);
  32. $cat_link2 = str_replace(" ", "-", $cat_link2);
  33. $cat_result .= "<a href='".APP_URL."/".uri_category."/$cat_link2'> $cat_me</a> , ";
  34. $j_cat++;
  35. }
  36. return $cat_result;
  37. }
  38.  
  39.  
  40. /**
  41. * Dapatkan author postingan ini
  42. * @since v5
  43. */
  44. public function _author_this_post($article_id){
  45. $sql = "select user from article where id='$article_id'";
  46. $data = $this->fetch($sql);
  47. $user_id = $data['user'];
  48. $sql2 = "select name, link from admin where id='$user_id'";
  49. $data2 = $this->fetch($sql2);
  50. return "<a target='_blank' href='$data2[link]'>$data2[name]</a>";
  51. }
  52.  
  53. /**
  54. * mendapatkan data article berdasarkan link article
  55. * @since v5
  56. */
  57. public function get_article_by_link($link_article=''){
  58. $link_article = mysqli_real_escape_string($this->mysqli,$link_article);
  59. $query = "SELECT * FROM article where link='$link_article'";
  60. $row = $this->fetch($query);
  61. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  62. return $row;
  63. }
  64. //alias version for => get_article_by_link to -> detail_artikel ====> untuk indonesia tercinta :D
  65. public function detail_artikel($link_article){
  66. return $this->get_article_by_link($link_article);
  67. }
  68.  
  69.  
  70. public function get_produk_by_link($link_produk=''){
  71. $link_produk = mysqli_real_escape_string($this->mysqli,$link_produk);
  72. $query = "SELECT * FROM produk where link='$link_produk'";
  73. $row = $this->fetch($query);
  74. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  75. return $row;
  76. }
  77. //alias version for => get_article_by_link to -> detail_artikel ====> untuk indonesia tercinta :D
  78. public function detail_produk($link_produk){
  79. return $this->get_produk_by_link($link_produk);
  80. }
  81.  
  82. public function get_pelanggan_by_link($link_produk=''){
  83. $link_produk = mysqli_real_escape_string($this->mysqli,$link_produk);
  84. $query = "SELECT * FROM aktivitas_pelanggan where link='$link_produk'";
  85. $row = $this->fetch($query);
  86. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  87. return $row;
  88. }
  89. //alias version for => get_article_by_link to -> detail_artikel ====> untuk indonesia tercinta :D
  90. public function get_pelanggan($link_produk){
  91. return $this->get_pelanggan_by_link($link_produk);
  92. }
  93.  
  94. public function get_aktivitas_by_link($link_produk=''){
  95. $link_produk = mysqli_real_escape_string($this->mysqli,$link_produk);
  96. $query = "SELECT * FROM aktivitas_vanectro where link='$link_produk'";
  97. $row = $this->fetch($query);
  98. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  99. return $row;
  100. }
  101. //alias version for => get_article_by_link to -> detail_artikel ====> untuk indonesia tercinta :D
  102. public function get_aktivitas($link_produk){
  103. return $this->get_aktivitas_by_link($link_produk);
  104. }
  105.  
  106. public function get_perlengkapan_by_link($link_perlengkapan=''){
  107. $link_perlengkapan = mysqli_real_escape_string($this->mysqli,$link_perlengkapan);
  108. $query = "SELECT * FROM perlengkapan where link='$link_perlengkapan'";
  109. $row = $this->fetch($query);
  110. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  111. return $row;
  112. }
  113. //alias version for => get_article_by_link to -> detail_artikel ====> untuk indonesia tercinta :D
  114. public function detail_perlengkapan($link_perlengkapan){
  115. return $this->get_perlengkapan_by_link($link_perlengkapan);
  116. }
  117. public function get_sparepart_by_link($link_produk=''){
  118. $link_produk = mysqli_real_escape_string($this->mysqli,$link_produk);
  119. $query = "SELECT * FROM sparepart where link='$link_produk'";
  120. $row = $this->fetch($query);
  121. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  122. return $row;
  123. }
  124. //alias version for => get_article_by_link to -> detail_artikel ====> untuk indonesia tercinta :D
  125. public function detail_sparepart($link_produk){
  126. return $this->get_sparepart_by_link($link_produk);
  127. }
  128. /**
  129. * mendapatkan data pages (laman) berdasarkan link pages (lamannya)
  130. * @since v5
  131. */
  132. public function get_pages_by_link($link_pages=''){
  133. $link_pages = mysqli_real_escape_string($this->mysqli,$link_pages);
  134. $query = "SELECT * FROM pages where link='$link_pages'";
  135. $row = $this->fetch($query);
  136. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  137. return $row;
  138. }
  139. //alias version for => get_pages_by_link to -> detail_pages ====> untuk indonesia tercinta :D
  140. public function detail_pages($link_pages){
  141. return $this->get_pages_by_link($link_pages);
  142. }
  143.  
  144. /**
  145. * mendapatkan data user berdasarkan id dan data apa yang ingin di tampilkan
  146. * @since v5
  147. */
  148. public function get_detail_user($id, $what='*'){
  149. $row = $this->fetch("select $what from admin where id='$id'");
  150. if (empty($row)){header("location:".APP_URL."/error.php?error=404");exit();}
  151. return $row;
  152. }
  153. //alias version for => get_detail_user to -> user_detail ====> untuk indonesia tercinta :D
  154. public function user_detail($id, $what='*'){
  155. return $this->get_detail_user($id, $what);
  156. }
  157.  
  158. /**
  159. * mendapatkan semua data article terbaru berdasarkan page dan limit yang di minta
  160. * @since v5
  161. */
  162. public function get_newtest_article($page=1, $limit=10){
  163. $calc = $limit * $page;
  164. $start = $calc - $limit;
  165. $query = "select * from article order by article.date DESC, article.time DESC Limit $start, $limit";
  166. $rows = $this->fetch_multiple($query);
  167. foreach ($rows as $row){$data[]=$row;}
  168. if (empty($data)){header("location:".APP_URL."/error.php?error=404");exit();}
  169. return $data;
  170. }
  171. //alias version for => get_newtest_article to -> artikel_terbaru ====> untuk indonesia tercinta :D
  172. public function artikel_terbaru($page=1, $limit=10){
  173. return $this->get_newtest_article($page, $limit);
  174. }
  175.  
  176. /**
  177. * mendapatkan semua article berdasarkan category nya -> di butuhkan submit data page dan limit
  178. * @since v5
  179. */
  180. public function get_article_by_category($category='', $page=1, $limit=10){
  181. $category=mysqli_real_escape_string($this->mysqli,$category);
  182. $calc = $limit * $page;
  183. $start = $calc - $limit;
  184. $query = "select * from article where category like '%$category%' order by article.date DESC, article.time DESC limit $start, $limit";
  185. $rows = $this->fetch_multiple($query);
  186. foreach ($rows as $row){$data[]=$row;}
  187. if (empty($data)){header("location:".APP_URL."/error.php?error=404");exit();}
  188. return $data;
  189. }
  190. //alias version for => get_article_by_category to -> artikel_per_category ====> untuk indonesia tercinta :D
  191. public function artikel_per_kategori($category='', $page=1, $limit=10){
  192. return $this->get_article_by_category($category, $page, $limit);
  193. }
  194.  
  195. /**
  196. * engine search article : mendapatkan semua article berdasarkan keyword nya -> di butuhkan submit data page dan limit
  197. * @since v5
  198. */
  199. public function get_article_by_keyword($keyword='', $page=1, $limit=10){
  200. $keyword=mysqli_real_escape_string($this->mysqli,$keyword);
  201. $calc = $limit * $page;
  202. $start = $calc - $limit;
  203. $q = $keyword;
  204. $query = "select * from article where title like '%$q%' or content like '%$q%' or category like '%$q%' order by article.date DESC, article.time DESC Limit $start, $limit";
  205. $rows = $this->fetch_multiple($query);
  206. foreach ($rows as $row){$data[]=$row;}
  207. if (empty($data)){header("location:".APP_URL."/error.php?error=404");exit();}
  208. return $data;
  209. }
  210. //alias version for => get_article_by_keyword to -> cari_artikel ====> untuk indonesia tercinta :D
  211. public function cari_artikel($keyword='', $page=1, $limit=10){
  212. return $this->get_article_by_keyword($keyword, $page, $limit);
  213. }
  214.  
  215.  
  216. /**
  217. * untuk menghitung hasil jumlah article berdasarkan query where yang di jalankan
  218. * @since v5
  219. */
  220. public function count_article($where=''){
  221. $where=str_replace('where','',$where);
  222. if (empty($where)){
  223. $query="select id from article";
  224. }else{
  225. $query="select id from article where $where";
  226. }
  227. $total = $this->num_rows($query);
  228. return $total;
  229. }
  230. //alias version for => count_article to -> hitung_artikel ====> untuk indonesia tercinta :D
  231. public function hitung_artikel($where=''){
  232. return $this->count_article($where);
  233. }
  234.  
  235. /**
  236. * random article : mendapatkan semua article secara random -> di butuhkan submit data start dan limit
  237. * @since v5
  238. */
  239. public function random_article($start=1, $limit=10){
  240. $query = "select * from article order by rand() limit $start, $limit";
  241. $rows = $this->fetch_multiple($query);
  242. foreach ($rows as $row){$data[]=$row;}
  243. if (empty($data)){header("location:".APP_URL."/error.php?error=404");exit();}
  244. return $data;
  245. }
  246. //alias version for => random_article to -> artikel_acak ====> untuk indonesia tercinta :D
  247. public function artikel_acak($start=1, $limit=10){
  248. return $this->random_article($start, $limit);
  249. }
  250.  
  251. /**
  252. * popular article : mendapatkan semua article secara berdasarkan yang terpopuler -> di butuhkan submit data start dan limit
  253. * @since v5
  254. */
  255. public function popular_article($start=1, $limit=10){
  256. $query = "select * from article order by article.hits DESC limit $start, $limit";
  257. $rows = $this->fetch_multiple($query);
  258. foreach ($rows as $row){$data[]=$row;}
  259. if (empty($data)){header("location:".APP_URL."/error.php?error=404");exit();}
  260. return $data;
  261. }
  262. //alias version for => popular_article to -> artikel_terpopuler ====> untuk indonesia tercinta :D
  263. public function artikel_terpopuler($start=1, $limit=10){
  264. return $this->popular_article($start, $limit);
  265. }
  266.  
  267. /**
  268. * run select : run query select
  269. * @since v5
  270. */
  271. public function select($table, $rows = "*", $where = null, $order = null, $limit = null){
  272. $q = 'SELECT '.$rows.' FROM '.$table;
  273. if($where != null){
  274. $q .= ' WHERE '.$where;
  275. }
  276. if($order != null){
  277. $q .= ' ORDER BY '.$order;
  278. }
  279. if ($limit != null){
  280. $q .= ' LIMIT '.$limit;
  281. }
  282. $result = mysqli_query($this->mysqli,$q);
  283. while ($row = mysqli_fetch_assoc($result)){
  284. $data[] = $row;
  285. }
  286. return $data;
  287. }
  288. public function select2($table, $rows = "*", $where = null, $where2 = null, $order = null, $limit = null){
  289. $q = 'SELECT '.$rows.' FROM '.$table;
  290. if($where != null){
  291. $q .= ' WHERE '.$where.'AND ' .$where;
  292. }
  293. if($order != null){
  294. $q .= ' ORDER BY '.$order;
  295. }
  296. if ($limit != null){
  297. $q .= ' LIMIT '.$limit;
  298. }
  299. $result = mysqli_query($this->mysqli,$q);
  300. while ($row = mysqli_fetch_assoc($result)){
  301. $data[] = $row;
  302. }
  303. return $data;
  304. }
  305.  
  306. /**
  307. * run insert : run query insert
  308. * @since v5
  309. */
  310. private function quote($string,$param=''){
  311. if(empty($param)){
  312. return "'$string'";
  313. }
  314. return $string;
  315. }
  316. public function insert($table,$insert,$parameters=array()){
  317. $param="";
  318. $val="";
  319. //Build Query
  320. $query="INSERT INTO $table";
  321. if(is_array($insert)){
  322. $count=count($insert);
  323. $i=0;
  324. foreach ($insert as $key => $value) {
  325. $param.="`$key`";
  326. $val.=$this->quote($value,$parameters);
  327. if(++$i != $count) {
  328. $param.=",";
  329. $val.=",";
  330. }
  331. }
  332. $query.=" ($param) VALUES ($val)";
  333. }
  334. $sql = $this->query($query);
  335. if ($sql){
  336. return true;
  337. }else{
  338. return false;
  339. }
  340. }
  341.  
  342. /**
  343. * run select : cek artikel
  344. * @since v5
  345. */
  346. public function check_article($id){
  347. if (logged != 0){ //jika dia udah login maka lanjutkan aja
  348. // check siapa user pembuat artikel ini
  349. $data_cek = $this->fetch("select user from article where id='$id'");
  350. $uid_this_article = $data_cek['user'];
  351. //selesai bro cek siapa usernya dengan variable uid_this_article
  352. #lanjut ke tahap ke dua pengecekan apakah user yang ngerequest itu pas ama hasil uid_this_article nya
  353. if ($uid_this_article == logged){
  354. return true;
  355. }else{
  356. return false;
  357. }
  358. }
  359. }
  360.  
  361. /**
  362. * mysqli shortcut
  363. * @since v5
  364. */
  365. public function query($sql){
  366. $result = mysqli_query($this->mysqli,$sql);
  367. return $result;
  368. }
  369. public function fetch($sql){
  370. $result = mysqli_query($this->mysqli,$sql);
  371. $data = mysqli_fetch_array($result);
  372. return $data;
  373. }
  374. public function fetch_multiple($sql){
  375. $result = mysqli_query($this->mysqli,$sql);
  376. while($row = mysqli_fetch_array($result)){
  377. $data[] = $row;
  378. }
  379. return $data;
  380. }
  381. public function num_rows($sql){
  382. $result = mysqli_query($this->mysqli,$sql);
  383. $data = mysqli_num_rows($result);
  384. return $data;
  385. }
  386. public function escape_string($string){
  387. return mysqli_real_escape_string($this->mysqli,$string);
  388. }
  389.  
  390. /**
  391. * activation for reset password admin
  392. * @since v5
  393. */
  394. public function get_activation_key($email_or_username){
  395. $sql = "select * from admin where email='$email_or_username' or username='$email_or_username'";
  396. if ($this->num_rows($sql) == 0){
  397. echo "Username atau email yang anda masukan tidak terdaftar sebagai member di situs ini!.";
  398. exit();
  399. }
  400. $data = $this->fetch($sql);
  401. $id = $data['id'];
  402. $name = $data['name'];
  403. $email = $data['email'];
  404. $pswd = $data['pswd'];
  405. $image = $data['image'];
  406. $bio = $data['bio'];
  407. $link = $data['link'];
  408. $level = $data['level'];
  409. $today = date("Y-m-d");
  410. $time = date("H:i:s");
  411. $total_art = $this->num_rows("select id from article where user='$id'");
  412. $total_page = $this->num_rows("select id from pages where user='$id'");
  413. $total_files = $this->num_rows("select id from files where user='$id'");
  414. $activation_key = md5($id.$name.$email.$pswd.$email.$image.$bio.$link.$level.$today.$total_art.$total_page.$total_files);
  415. $this->email=$email;
  416. $this->name=$name;
  417. return $activation_key;
  418. }
  419.  
  420. //mengirim kode dan link aktivasi , untuk program forget password
  421. //since version 5
  422. public function send_activation($email_or_username){
  423. $activation_key = $this->get_activation_key($email_or_username);
  424. $sql = "select * from admin where email='$email_or_username' or username='$email_or_username'";
  425. if ($this->num_rows($sql) == 0){
  426. echo "Username atau email yang anda masukan tidak terdaftar sebagai member di situs ini!.";
  427. exit();
  428. }
  429. $data = $this->fetchfetch($sql);
  430. $id = $data['id'];
  431. $name = $data['name'];
  432. $email = $data['email'];
  433. $today = date("Y-m-d");
  434. $time = date("H:i:s");
  435. $activation_link = APP_URL.$system."/forgot.php?act=recover&email=$email&activation=$activation_key";
  436. $c_url = APP_URL;
  437. $c_admin_url = "$c_url/$system";
  438. $messages = "
  439. you has send a request for reset your password at <a target='_blank' href='$c_url'>$c_url</a> with detail<br>
  440. Email : $email<br>
  441. Username : $name<br>
  442. Date : $today - $time<br>
  443. <p>
  444. and if you really has send a request for reset your password at $c_url, so you can use this activation code for reset your password :
  445. <br>
  446. <b>Activation Code</b> : <i>$activation_key</i>
  447. </p>
  448. if you didn't request this action, so ignore this message or delete this message.
  449. ";
  450. $send = $this->send_email($email, "Activation Link For Reset Your Password at $c_url", $messages);
  451. if ($send == true){
  452. return "$email";
  453. exit();
  454. }else{
  455. echo "Failed! can't send email to $email";
  456. }
  457. }
  458.  
  459. //send mail
  460. public function send_email($email, $subject, $messages){
  461. $email_from = "admin@warpsite.ga";
  462. $headers = "From: Tim Warpsite CMS <$email_from>" . PHP_EOL;
  463. $headers .= "Reply-To: $email_from" . PHP_EOL;
  464. $headers .= "MIME-Version: 1.0" . PHP_EOL;
  465. $headers .= "Content-type: text/html; charset=utf-8" . PHP_EOL;
  466. $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
  467. if (mail($email, $subject, $messages, $headers)){
  468. return true;
  469. }else{
  470. return false;
  471. }
  472. }
  473. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement