MINI
C:
/
xampp
/
htdocs
/
hnj
/
htdocs
/
htdocs
/
.library
/
Upload File:
files >> C:/xampp/htdocs/hnj/htdocs/htdocs/.library/crud.php
<?php class CRUD{ static function ShowInTable($tableclass = '', $table, $fields=array(), $where='') { try{ $q = "SELECT "; if(!isset($fields) || empty($fields)){ $q .= ' * '; $q_column = CRUD::sql_connect()->query("SHOW COLUMNS FROM ".$table); $column = $q_column->fetchAll(PDO::FETCH_ASSOC); } else { $qid = array(); foreach ($fields as $row){ $qid[] = $row['f']; } $q .= implode(", ",$qid); $fx = implode("', '",$qid); $q_column = CRUD::sql_connect()->query("SHOW COLUMNS FROM ".$table." WHERE FIELD IN ('".$fx."')"); $column = $q_column->fetchAll(PDO::FETCH_ASSOC); } $q .=" FROM ".$table; if(isset($where) && !empty($where)){ $q .= ' WHERE '.$where; } $q_data = CRUD::sql_connect()->prepare($q); $q_data->execute(); $rows = $q_data->fetchAll(PDO::FETCH_ASSOC); if(count($rows)<=0){ $output ='<h1>Data not found</h1>'; }else{ $output = "<table class=\"".$tableclass."\"><tr>"; foreach ($column as $row){ $output .= "<th>".strtoupper(str_replace("_"," ",$row['Field']))."</th>"; } $output .= "</tr>"; foreach ($rows as $row){ $output .="<tr>"; foreach(array_keys($row) as $key){ $output .="<td>".$row[$key]."</td>"; } $output .="</tr>"; } $output .="</table>"; } }catch(PDOException $e){ $output = 'Select Failed: ' .$e->getMessage(); } return $output; } static function TableView($fields=array()) { $output = '<table id="example" class="table table-striped table-bordered" cellspacing="0" width="100%"> <thead> <tr>'; foreach ($fields as $row){ if(array_key_exists("label",$row)) { $output .= '<th>'.$row["label"].'</th>'; } else if(array_key_exists("name",$row)) { $output .= '<th>'.str_replace("_"," ",strtoupper($row["name"])).'</th>'; } else { $output .= '<th>'.$row["field"].'</th>'; } } $output .='</tr> </thead> <tbody> </tbody> <tfoot> <tr>'; foreach ($fields as $row){ if(array_key_exists("label",$row)) { $output .= '<th>'.$row["label"].'</th>'; } else if(array_key_exists("name",$row)) { $output .= '<th>'.str_replace("_"," ",strtoupper($row["name"])).'</th>'; } else { $output .= '<th>'.$row["field"].'</th>'; } } $output .='</tr> </tfoot> </table>'; return $output; } static function ModalAddForm($modalhead,$fields=array(),$size='') { try{ if($size!=''){ $output .= '<div class="modal-dialog modal-'.$size.'">'; } else{ $output .= '<div class="modal-dialog">'; } $output .= ' <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">'.$modalhead.'</h4> </div> <div class="modal-body"> <form id="add" name="add" method="post" class="form-horizontal" action="">'; foreach ($fields as $row){ $type = array_key_exists("type",$row) ? $type = $row['type'] : 'text'; $labelcol = array_key_exists("labelcol",$row) ? $labelcol = $row['labelcol'] : 4; $fieldcol = array_key_exists("fieldcol",$row) ? $sf = $row['fieldcol'] : 4; $label = array_key_exists("label",$row) ? $label = $row['label'] : ucwords(strtolower(str_replace("_"," ",$row['name']))); $placeholder = array_key_exists("placeholder",$row) ? $placeholder = $row['placeholder'] : ucwords(strtolower(str_replace("_"," ",$label))); $validation = array_key_exists("validation",$row) ? $validation = $row['validation'] : ''; $row['skipinsert'] = array_key_exists("skipinsert",$row) ? $row['skipinsert'] : $row['skipinsert']=false; if(array_key_exists("name",$row) && array_key_exists("type",$row) && !$row['skipinsert']){ if($type=='select_static'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'"> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ foreach($row['options'] as $options){ $output .='<option value="'.$options['value'].'" >'.$options['label'].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='select_dynamic'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.' select2" style="width:100%"> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ $filter = array_key_exists("filter",$row['options']) ? $filter = ' WHERE '.$row['options']['filter'] : ''; $q = 'SELECT * FROM '.$row['options']['table'].' '.$filter; $q_data = CRUD::sql_connect()->prepare($q); $q_data -> execute(); while($data = $q_data -> fetch(PDO::FETCH_ASSOC)){ $output .='<option value="'.$data[$row['options']['value']].'" '; if(array_key_exists("data",$row['options'])){ foreach($row['options']['data'] as $datas){ $output .='data-'.$datas['dname'].'="'.$data[$datas['dvalue']].'" '; } } $output .='>'.$data[$row['options']['label']].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='password'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="password" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div> </div>'; } elseif($type=='checkbox'){ $value = array_key_exists("defaultvalue",$row) ? $value = $row['defaultvalue']: ''; $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class=" col-lg-'.$fieldcol.'"> <div class="checkbox"> <label> <input type="checkbox" name="'.$row['name'].'" id="'.$row['name'].'" value="'.$value.'"> </label> </div> </div> </div>'; } elseif($type=='text'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div> </div>'; } elseif($type =='textarea'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <textarea name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'" rows="3" placeholder="'.$placeholder.'"></textarea> </div> </div>'; } elseif($type=='tanggal'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" onkeydown="return false"> </div> </div>'; } elseif($type=='tanggalint'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" onkeydown="return false"> </div> </div>'; } elseif($type=='uang'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="0.00"> </div> </div>'; } elseif($type=='angka'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'; if($row['decimal'] && $row['decimal']>0){ $output .='0.'.str_pad('',$row['decimal'],0,STR_PAD_LEFT); } else{ $output .='0'; } $output .='""> </div> </div>'; } } } $output .=' </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> <button id="save" type="button" class="btn btn-default">Save</button> </div> </div> </div> '; }catch(PDOException $e){ $output = 'Error rendering form<br/>' .$e->getMessage(); } return $output; } static function ModalEditForm($modalhead,$tabel,$id,$idvalue,$idtype,$fields=array(),$size='') { try{ $IdType = "int" ? $IdType = PDO::PARAM_INT : PDO::PARAM_STR; $querye = "SELECT * FROM ".$tabel." WHERE ".$id."=:".$id; $q_odata = CRUD::sql_connect()->prepare($querye); $q_odata->bindValue(':'.$id, $idvalue, $IdType); $q_odata->execute(); $odata= $q_odata->fetch(PDO::FETCH_ASSOC); if($size!=''){ $output .= '<div class="modal-dialog modal-'.$size.'">'; } else{ $output .= '<div class="modal-dialog">'; } $output .= ' <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">'.$modalhead.'</h4> </div> <div class="modal-body"> <form id="edit" name="edit" method="post" class="form-horizontal" action="">'; foreach ($fields as $row){ //DEFAULT LABEL SIZE $type = array_key_exists("type",$row) ? $type = $row['type'] : 'text'; $labelcol = array_key_exists("labelcol",$row) ? $labelcol = $row['labelcol'] : 4; $fieldcol = array_key_exists("fieldcol",$row) ? $sf = $row['fieldcol'] : 4; $label = array_key_exists("label",$row) ? $label = $row['label'] : ucwords(strtolower(str_replace("_"," ",$row['name']))); $placeholder = array_key_exists("placeholder",$row) ? $placeholder = $row['placeholder'] : ucwords(strtolower(str_replace("_"," ",$label))); $validation = array_key_exists("validation",$row) ? $validation = $row['validation'] : ''; //SKIP UPDATE $row['skipupdate'] = array_key_exists("skipupdate",$row) ? $row['skipupdate'] : $row['skipupdate']=false; if(array_key_exists("name",$row) && array_key_exists("type",$row) && !$row['skipupdate']){ if($type=='select_static'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'"> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ foreach($row['options'] as $options){ $output .='<option value="'.$options['value'].'" '; if($odata[$row['name']]==$options['value']){ $output .='SELECTED'; } $output .='>'.$options['label'].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='select_dynamic'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.' select2" style="width:100%""> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ $filter = array_key_exists("filter",$row['options']) ? $filter = ' WHERE '.$row['options']['filter'] : ''; $q = 'SELECT * FROM '.$row['options']['table'].' '.$filter; $q_data = CRUD::sql_connect()->prepare($q); $q_data -> execute(); while($data = $q_data -> fetch(PDO::FETCH_ASSOC)){ $output .='<option value="'.$data[$row['options']['value']].'" '; if($odata[$row['name']]==$data[$row['options']['value']]){ $output .=' SELECTED '; } if(array_key_exists("data",$row['options'])){ foreach($row['options']['data'] as $datas){ $output .='data-'.$datas['dname'].'="'.$data[$datas['dvalue']].'" '; } } $output .='>'.$data[$row['options']['label']].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='password'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="password" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div> </div>'; } elseif($type=='checkbox'){ $value = array_key_exists("defaultvalue",$row) ? $value = $row['defaultvalue']: ''; $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class=" col-lg-'.$fieldcol.'"> <div class="checkbox"> <label> <input type="checkbox" name="'.$row['name'].'" id="'.$row['name'].'" value="'.$value.'"'; if($odata[$row['name']]==$value){ $output .=' checked '; } $output .='> </label> </div> </div> </div>'; } elseif($type=='text'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.$odata[$row['name']].'"> </div> </div>'; } elseif($type =='textarea'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <textarea name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'" rows="3" placeholder="'.$placeholder.'">'.str_replace("<br/>","\n",$odata[$row['name']]).'</textarea> </div> </div>'; } elseif($type=='tanggal'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.date("Y-m-d",strtotime($odata[$row['name']])).'" onkeydown="return false"> </div> </div>'; } elseif($type=='tanggalint'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'"'; if($odata[$row['name']]>0){ $output .='" value="'.date("Y-m-d",$odata[$row['name']]).'"'; }else{ $output .='" value=""'; } $output .='" onkeydown="return false"> </div> </div>'; } elseif($type=='uang'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="0.00" value="'.number_format($odata[$row['name']],2).'"> </div> </div>'; } elseif($type=='angka'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'; if($row['decimal'] && $row['decimal']>0){ $output .='0.'.str_pad('',$row['decimal'],0,STR_PAD_LEFT); } else{ $output .='0'; } $output .='" value="'.number_format($odata[$row['name']],$row['decimal']).'"> </div> </div>'; } } } $output .=' </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> <button id="save" type="button" class="btn btn-default">Save</button> </div> </div> </div> '; }catch(PDOException $e){ $output = 'Error rendering form<br/>' .$e->getMessage(); } return $output; } static function ModalDeleteForm($modalhead,$tabel,$id,$idvalue,$idtype,$fields=array(),$size='') { try{ $IdType = "int" ? $IdType = PDO::PARAM_INT : PDO::PARAM_STR; $querye = "SELECT * FROM ".$tabel." WHERE ".$id."=:".$id; $q_odata = CRUD::sql_connect()->prepare($querye); $q_odata->bindValue(':'.$id, $idvalue, $IdType); $q_odata->execute(); $odata= $q_odata->fetch(PDO::FETCH_ASSOC); if($size!=''){ $output .= '<div class="modal-dialog modal-'.$size.'">'; } else{ $output .= '<div class="modal-dialog">'; } $output .= ' <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">'.$modalhead.'</h4> </div> <div class="modal-body"> <form id="delete" name="edit" method="post" class="form-horizontal" action="">'; foreach ($fields as $row){ //DEFAULT LABEL SIZE $type = array_key_exists("type",$row) ? $type = $row['type'] : 'text'; $labelcol = array_key_exists("labelcol",$row) ? $labelcol = $row['labelcol'] : 4; $fieldcol = array_key_exists("fieldcol",$row) ? $sf = $row['fieldcol'] : 4; $label = array_key_exists("label",$row) ? $label = $row['label'] : ucwords(strtolower(str_replace("_"," ",$row['name']))); $placeholder = array_key_exists("placeholder",$row) ? $placeholder = $row['placeholder'] : ucwords(strtolower(str_replace("_"," ",$label))); $validation = array_key_exists("validation",$row) ? $validation = $row['validation'] : ''; //SKIP UPDATE $row['skipupdate'] = array_key_exists("skipupdate",$row) ? $row['skipupdate'] : $row['skipupdate']=false; if(!$row['skipupdate']){ if($type=='select_static'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'" disabled="disabled"> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ foreach($row['options'] as $options){ $output .='<option value="'.$options['value'].'" '; if($odata[$row['name']]==$options['value']){ $output .='SELECTED'; } $output .='>'.$options['label'].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='select_dynamic'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.' select2" style="width:100%" disabled="disabled"> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ $filter = array_key_exists("filter",$row['options']) ? $filter = ' WHERE '.$row['options']['filter'] : ''; $q = 'SELECT * FROM '.$row['options']['table'].' '.$filter; $q_data = CRUD::sql_connect()->prepare($q); $q_data -> execute(); while($data = $q_data -> fetch(PDO::FETCH_ASSOC)){ $output .='<option value="'.$data[$row['options']['value']].'" '; if($odata[$row['name']]==$data[$row['options']['value']]){ $output .=' SELECTED '; } if(array_key_exists("data",$row['options'])){ foreach($row['options']['data'] as $datas){ $output .='data-'.$datas['dname'].'="'.$data[$datas['dvalue']].'" '; } } $output .='>'.$data[$row['options']['label']].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='password'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="password" class="form-control '.$validation.'" placeholder="'.$placeholder.'" disabled="disabled"> </div> </div>'; } elseif($type=='checkbox'){ $value = array_key_exists("defaultvalue",$row) ? $value = $row['defaultvalue']: ''; $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class=" col-lg-'.$fieldcol.'"> <div class="checkbox"> <label> <input type="checkbox" name="'.$row['name'].'" id="'.$row['name'].'" value="'.$value.'"'; if($odata[$row['name']]==$value){ $output .=' checked '; } $output .=' disabled="disabled"> </label> </div> </div> </div>'; } elseif($type=='text'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.$odata[$row['name']].'" disabled="disabled"> </div> </div>'; } elseif($type =='textarea'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <textarea name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'" rows="3" placeholder="'.$placeholder.'" disabled="disabled">'.$odata[$row['name']].'</textarea> </div> </div>'; } elseif($type=='tanggal'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.date("Y-m-d",strtotime($odata[$row['name']])).'" onkeydown="return false" disabled="disabled"> </div> </div>'; } elseif($type=='tanggalint'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'"'; if($odata[$row['name']]>0){ $output .='" value="'.date("Y-m-d",$odata[$row['name']]).'"'; }else{ $output .='" value=""'; } $output .='" onkeydown="return false" disabled="disabled"> </div> </div>'; } elseif($type=='uang'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="0.00" value="'.number_format($odata[$row['name']],2).'" disabled="disabled"> </div> </div>'; } elseif($type=='angka'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'; if($row['decimal'] && $row['decimal']>0){ $output .='0.'.str_pad('',$row['decimal'],0,STR_PAD_LEFT); } else{ $output .='0'; } $output .='" value="'.number_format($odata[$row['name']],$row['decimal']).'" disabled="disabled"> </div> </div>'; } } } $output .=' </form> <h4>Yakin akan menghapus data ini?</h4> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button id="save" type="button" class="btn btn-danger">Delete</button> </div> </div> </div> '; }catch(PDOException $e){ $output = 'Error rendering form<br/>' .$e->getMessage(); } return $output; } static function FHide($fields=array()) { $query= implode(",", array_map(function($a){ return $a["dt"]; }, array_filter($fields,function($a){ return (array_key_exists("fhide",$a) && $a['fhide']==true); } ) ) ); echo $query; } static function HWrap($fields=array()) { $query= implode(",", array_map(function($a){ return $a["dt"]; }, array_filter($fields,function($a){ return ((!array_key_exists("fwrap",$a)) || (array_key_exists("fwrap",$a) && $a['fwrap']==true )); } ) ) ); echo $query; } static function HCenter($fields=array()) { $query= implode(",", array_map(function($a){ return $a["dt"]; }, array_filter($fields,function($a){ return (!array_key_exists("hcenter",$a) && $a['hcenter']==false); } ) ) ); echo $query; } static function HRight($fields=array()) { $query= implode(",", array_map(function($a){ return $a["dt"]; }, array_filter($fields,function($a){ return (!array_key_exists("hright",$a) && $a['hright']==false); } ) ) ); echo $query; } static function FWrap($fields=array()) { $query= implode(",", array_map(function($a){ return $a["dt"]; }, array_filter($fields,function($a){ return ((!array_key_exists("fwrap",$a)) || (array_key_exists("fwrap",$a) && $a['fwrap']==true )); } ) ) ); echo $query; } static function FCenter($fields=array()) { $query= implode(",", array_map(function($a){ return $a["dt"]; }, array_filter($fields,function($a){ return ((array_key_exists("fcenter",$a) && $a['fcenter']==true )); } ) ) ); echo $query; } static function FRight($fields=array()) { $query= implode(",", array_map(function($a){ return $a["dt"]; }, array_filter($fields,function($a){ return ((array_key_exists("fright",$a) && $a['fright']==true )); } ) ) ); echo $query; } static function ModalForm($modalhead,$tabel,$id,$idvalue,$idtype,$fields=array(),$size="",$split=1,$mode="add") { if($mode == "add") { $IdType = "int" ? $IdType = PDO::PARAM_INT : PDO::PARAM_STR; $querye = "SELECT * FROM ".$tabel." WHERE ".$id."=:".$id; $q_odata = CRUD::sql_connect()->prepare($querye); $q_odata->bindValue(':'.$id, $idvalue, $IdType); $q_odata->execute(); $odata= $q_odata->fetch(PDO::FETCH_ASSOC); } else if($mode == "edit") { $IdType = "int" ? $IdType = PDO::PARAM_INT : PDO::PARAM_STR; $querye = "SELECT * FROM ".$tabel." WHERE ".$id."=:".$id; $q_odata = CRUD::sql_connect()->prepare($querye); $q_odata->bindValue(':'.$id, $idvalue, $IdType); $q_odata->execute(); $odata= $q_odata->fetch(PDO::FETCH_ASSOC); } if($size!=''){ $sizex .= 'modal-'.$size; } else{ $sizex .= ''; } $output .= ' <div class="modal-dialog '.$sizex.'"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">'.$modalhead.'</h4> </div> <div class="modal-body"> <form id="edit" name="edit" method="post" class="form-horizontal" action="">'; foreach ($fields as $row){ //DEFAULT LABEL SIZE $type = array_key_exists("type",$row) ? $type = $row['type'] : 'text'; $labelcol = array_key_exists("labelcol",$row) ? $labelcol = $row['labelcol'] : 4; $fieldcol = array_key_exists("fieldcol",$row) ? $sf = $row['fieldcol'] : 4; $label = array_key_exists("label",$row) ? $label = $row['label'] : ucwords(strtolower(str_replace("_"," ",$row['name']))); $placeholder = array_key_exists("placeholder",$row) ? $placeholder = $row['placeholder'] : ucwords(strtolower(str_replace("_"," ",$label))); $validation = array_key_exists("validation",$row) ? $validation = $row['validation'] : ''; //SKIP UPDATE $row['skipupdate'] = array_key_exists("skipupdate",$row) ? $row['skipupdate'] : $row['skipupdate']=false; $row['skipinsert'] = array_key_exists("skipinsert",$row) ? $row['skipinsert'] : $row['skipinsert']=false; if(array_key_exists("name",$row) && array_key_exists("type",$row) && !$row['skipupdate']){ if($type=='select_static'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'"> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ foreach($row['options'] as $options){ $output .='<option value="'.$options['value'].'" '; if($odata[$row['name']]==$options['value']){ $output .='SELECTED'; } $output .='>'.$options['label'].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='select_dynamic'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.' select2" style="width:100%"> <option value="">- Select '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ $filter = array_key_exists("filter",$row['options']) ? $filter = ' WHERE '.$row['options']['filter'] : ''; $q = 'SELECT * FROM '.$row['options']['table'].' '.$filter; $q_data = CRUD::sql_connect()->prepare($q); $q_data -> execute(); while($data = $q_data -> fetch(PDO::FETCH_ASSOC)){ $output .='<option value="'.$data[$row['options']['value']].'" '; if($odata[$row['name']]==$data[$row['options']['value']]){ $output .=' SELECTED '; } if(array_key_exists("data",$row['options'])){ foreach($row['options']['data'] as $datas){ $output .='data-'.$datas['dname'].'="'.$data[$datas['dvalue']].'" '; } } $output .='>'.$data[$row['options']['label']].'</option>'; } } $output .='</select> </div> </div>'; } elseif($type=='password'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="password" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div> </div>'; } elseif($type=='checkbox'){ $value = array_key_exists("defaultvalue",$row) ? $value = $row['defaultvalue']: ''; $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class=" col-lg-'.$fieldcol.'"> <div class="checkbox"> <label> <input type="checkbox" name="'.$row['name'].'" id="'.$row['name'].'" value="'.$value.'"'; if($odata[$row['name']]==$value){ $output .=' checked '; } $output .='> </label> </div> </div> </div>'; } elseif($type=='tanggal'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.date("Y-m-d",strtotime($odata[$row['name']])).'" onkeydown="return false"> </div> </div>'; } elseif($type=='tanggalint'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'"'; if($odata[$row['name']]>0){ $output .='" value="'.date("Y-m-d",$odata[$row['name']]).'"'; }else{ $output .='" value=""'; } $output .='" onkeydown="return false"> </div> </div>'; } elseif($type=='uang'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="0.00" value="'.number_format($odata[$row['name']],2).'"> </div> </div>'; } elseif($type=='angka'){ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'; if($row['decimal'] && $row['decimal']>0){ $output .='0.'.str_pad('',$row['decimal'],0,STR_PAD_LEFT); } else{ $output .='0'; } $output .='" value="'.number_format($odata[$row['name']],$row['decimal']).'"> </div> </div>'; } else{ $output .=' <div class="form-group"> <label class="control-label col-lg-'.$labelcol.'">'.$label.'</label> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.$odata[$row['name']].'"> </div> </div>'; } } } $output .=' </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> <button id="save" type="button" class="btn btn-default">Save</button> </div> </div> </div> '; //$output = 'Error rendering form<br/>' .$e->getMessage(); return $output; } static function ModalAddForm2($modalhead,$tabel,$id,$idvalue,$idtype,$fields=array(),$size="",$split=1) { $splitx = 12/$split; $isix = count($fields); $percol = ceil($isix/$split); $fieldx = array_filter($fields,function($a){ return (array_key_exists("name",$a)); } ); $output = ' <div class="modal-dialog modal-'.$size.'">'; $output .= ' <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">'.$modalhead.'</h4> </div> <div class="modal-body"> <form id="add" name="add" method="post" action="" class=""> <div class="row">'; for($i = 1; $i <= $split; $i++) { $output .=' <div class="col-md-'.$splitx.'">'; foreach($fieldx as $key => $row){ $type = array_key_exists("type",$row) ? $type = $row['type'] : 'text'; $labelcol = array_key_exists("labelcol",$row) ? $labelcol = $row['labelcol'] : 4; $fieldcol = array_key_exists("fieldcol",$row) ? $sf = $row['fieldcol'] : 4; $label = array_key_exists("label",$row) ? $label = $row['label'] : ucwords(strtolower(str_replace("_"," ",$row['name']))); $placeholder = array_key_exists("placeholder",$row) ? $placeholder = $row['placeholder'] : ucwords(strtolower(str_replace("_"," ",$label))); $validation = array_key_exists("validation",$row) ? $validation = $row['validation'] : ''; //SKIP UPDATE $row['skipinsert'] = array_key_exists("skipinsert",$row) ? $row['skipinsert'] : $row['skipinsert']=false; if($key >= ($i-1)*$percol && $key <= ($percol*$i)-1) { if(array_key_exists("name",$row) && array_key_exists("type",$row) && !$row['skipinsert']){ if($type=='select_static'){ $output .=' <div class="form-group"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'"> <option value="">- Pilih '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ foreach($row['options'] as $options){ $output .='<option value="'.$options['value'].'" >'.$options['label'].'</option>'; } } $output .='</select> </div>'; } elseif($type=='select_dynamic'){ $output .=' <div class="form-group"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.' select2" style="width:100%"> <option value="">- Pilih '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ $filter = array_key_exists("filter",$row['options']) ? $filter = ' WHERE '.$row['options']['filter'] : ''; $order = array_key_exists("order",$row['options']) ? $order = ' ORDER BY '.$row['options']['order'] : ''; $q = 'SELECT * FROM '.$row['options']['table'].' '.$filter. $order; $q_data = CRUD::sql_connect()->prepare($q); $q_data -> execute(); while($data = $q_data -> fetch(PDO::FETCH_ASSOC)){ $output .='<option value="'.$data[$row['options']['value']].'" '; if(array_key_exists("data",$row['options'])){ foreach($row['options']['data'] as $datas){ $output .='data-'.$datas['dname'].'="'.$data[$datas['dvalue']].'" '; } } $output .='>'.$data[$row['options']['label']].'</option>'; } } $output .='</select> </div>'; } elseif($type=='password'){ $output .=' <div class="form-group"> <div class="col-lg-'.$fieldcol.'"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="password" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div>'; } elseif($type=='checkbox'){ $value = array_key_exists("defaultvalue",$row) ? $value = $row['defaultvalue']: ''; $output .=' <div class="form-group"> <div class="checkbox"> <label> <input type="checkbox" name="'.$row['name'].'" id="'.$row['name'].'" value="'.$value.'">'.$label.' </label> </div> </div>'; } elseif($type=='text'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div>'; } elseif($type =='textarea'){ $output .=' <div class="form-group"> <textarea name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'" rows="2" placeholder="'.$placeholder.'"></textarea> </div>'; } elseif($type=='tanggal'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" onkeydown="return false"> </div>'; } elseif($type=='tanggalint'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" onkeydown="return false"> </div>'; } elseif($type=='uang'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div>'; } elseif($type=='angka'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'; if($row['decimal'] && $row['decimal']>0){ $output .='0.'.str_pad('',$row['decimal'],0,STR_PAD_LEFT); } else{ $output .='0'; } $output .='""> </div>'; } } } } $output .=' </div>'; } $output .=' </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> <button id="save" type="button" class="btn btn-default">Save</button> </div> </div> </div>'; echo $output; } static function ModalEditForm2($modalhead,$tabel,$id,$idvalue,$idtype,$fields=array(),$size="",$split=1) { $splitx = 12/$split; $isix = count($fields); $percol = ceil($isix/$split); $fieldx = array_filter($fields,function($a){ return (array_key_exists("name",$a)); } ); $IdType = "int" ? $IdType = PDO::PARAM_INT : PDO::PARAM_STR; $querye = "SELECT * FROM ".$tabel." WHERE ".$id."=:".$id; $q_odata = CRUD::sql_connect()->prepare($querye); $q_odata->bindValue(':'.$id, $idvalue, $IdType); $q_odata->execute(); $odata= $q_odata->fetch(PDO::FETCH_ASSOC); $output = ' <div class="modal-dialog modal-'.$size.'">'; $output .= ' <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">'.$modalhead.'</h4> </div> <div class="modal-body"> <form id="edit" name="edit" method="post" action="" class=""> <div class="row">'; for($i = 1; $i <= $split; $i++) { $output .=' <div class="col-md-'.$splitx.'">'; foreach($fieldx as $key => $row){ //DEFAULT LABEL SIZE $type = array_key_exists("type",$row) ? $type = $row['type'] : 'text'; $labelcol = array_key_exists("labelcol",$row) ? $labelcol = $row['labelcol'] : 4; $fieldcol = array_key_exists("fieldcol",$row) ? $sf = $row['fieldcol'] : 4; $label = array_key_exists("label",$row) ? $label = $row['label'] : ucwords(strtolower(str_replace("_"," ",$row['name']))); $placeholder = array_key_exists("placeholder",$row) ? $placeholder = $row['placeholder'] : ucwords(strtolower(str_replace("_"," ",$label))); $validation = array_key_exists("validation",$row) ? $validation = $row['validation'] : ''; //SKIP UPDATE $row['skipupdate'] = array_key_exists("skipupdate",$row) ? $row['skipupdate'] : $row['skipupdate']=false; if($key >= ($i-1)*$percol && $key <= ($percol*$i)-1) { if(array_key_exists("name",$row) && array_key_exists("type",$row) && !$row['skipupdate']){ if($type=='select_static'){ $output .=' <div class="form-group"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'"> <option value="">- Pilih '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ foreach($row['options'] as $options){ $output .='<option value="'.$options['value'].'" '; if($odata[$row['name']]==$options['value']){ $output .='SELECTED'; } $output .='>'.$options['label'].'</option>'; } } $output .='</select> </div>'; } elseif($type=='select_dynamic'){ $output .=' <div class="form-group"> <select name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.' select2" style="width:100%"> <option value="">- Pilih '.$placeholder.' -</option>'; if(array_key_exists('options',$row)){ $filter = array_key_exists("filter",$row['options']) ? $filter = ' WHERE '.$row['options']['filter'] : ''; $order = array_key_exists("order",$row['options']) ? $order = ' ORDER BY '.$row['options']['order'] : ''; $q = 'SELECT * FROM '.$row['options']['table'].' '.$filter. $order; $q_data = CRUD::sql_connect()->prepare($q); $q_data -> execute(); while($data = $q_data -> fetch(PDO::FETCH_ASSOC)){ $output .='<option value="'.$data[$row['options']['value']].'" '; if($odata[$row['name']]==$data[$row['options']['value']]){ $output .=' SELECTED '; } if(array_key_exists("data",$row['options'])){ foreach($row['options']['data'] as $datas){ $output .='data-'.$datas['dname'].'="'.$data[$datas['dvalue']].'" '; } } $output .='>'.$data[$row['options']['label']].'</option>'; } } $output .='</select> </div>'; } elseif($type=='password'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="password" class="form-control '.$validation.'" placeholder="'.$placeholder.'"> </div> </div>'; } elseif($type=='checkbox'){ $value = array_key_exists("defaultvalue",$row) ? $value = $row['defaultvalue']: ''; $output .=' <div class="form-group"> <div class="checkbox"> <label> <input type="checkbox" name="'.$row['name'].'" id="'.$row['name'].'" value="'.$value.'"'; if($odata[$row['name']]==$value){ $output .=' checked '; } $output .='>'.$label.' </label> </div> </div>'; } elseif($type=='text'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.$odata[$row['name']].'"> </div>'; } elseif($type =='textarea'){ $output .=' <div class="form-group"> <textarea name="'.$row['name'].'" id="'.$row['name'].'" class="form-control '.$validation.'" rows="3" placeholder="'.$placeholder.'">'.str_replace("<br/>","\n",$odata[$row['name']]).'</textarea> </div>'; } elseif($type=='tanggal'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'" value="'.date("Y-m-d",strtotime($odata[$row['name']])).'" onkeydown="return false"> </div>'; } elseif($type=='tanggalint'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'.$placeholder.'"'; if($odata[$row['name']]>0){ $output .='" value="'.date("Y-m-d",$odata[$row['name']]).'"'; }else{ $output .='" value=""'; } $output .='" onkeydown="return false"> </div>'; } elseif($type=='uang'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="0.00" value="'.number_format($odata[$row['name']],2).'"> </div>'; } elseif($type=='angka'){ $output .=' <div class="form-group"> <input name="'.$row['name'].'" id="'.$row['name'].'" type="text" class="form-control '.$validation.'" placeholder="'; if($row['decimal'] && $row['decimal']>0){ $output .='0.'.str_pad('',$row['decimal'],0,STR_PAD_LEFT); } else{ $output .='0'; } $output .='" value="'.number_format($odata[$row['name']],$row['decimal']).'"> </div>'; } } } } $output .=' </div>'; } $output .=' </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> <button id="save" type="button" class="btn btn-default">Save</button> </div> </div> </div>'; echo $output; } static function DeleteData($tabel,$id,$idvalue,$idtype) { try{ if(isset($idtype) && strtoupper($idtype)=='INT'){ $parameter = PDO::PARAM_INT; } else{ $parameter = PDO::PARAM_STR; } $query = 'DELETE FROM '.$tabel.' WHERE '.$id.'=:'.$id.' LIMIT 1'; $q_ddata = CRUD::sql_connect()->prepare($query); $q_ddata -> bindValue(':'.$id, $idvalue, $parameter); $q_ddata -> execute(); echo json_encode( array( "status" => "success", "message" => "Success delete data" ) ); }catch(PDOException $e){ CRUD::fatal( "Delete Failed, ".$e->getMessage() ); } } static function InsertData($table, $fields=array()) { try{ $query= "INSERT INTO ".$table." (".implode(",", array_map(function($a){ return $a["name"]; }, array_filter($fields,function($a){ return (!array_key_exists("skipinsert",$a) || (array_key_exists("skipinsert",$a) && $a['skipinsert']==false)); } ) ) ).") VALUES (".implode(",", array_map(function($a){ return ":".$a["name"]; }, array_filter($fields,function($a){ return (!array_key_exists("skipinsert",$a) || (array_key_exists("skipinsert",$a) && $a['skipinsert']==false)); } ) ) ).")"; $q_idata = CRUD::sql_connect()->prepare($query); foreach($fields as $row){ $row['skipinsert'] = array_key_exists("skipinsert",$row) ? $row['skipinsert'] : $row['skipinsert']=false; if(!array_key_exists("skipinsert",$row) || (array_key_exists("skipinsert",$row) && $row['skipinsert']==false)){ if(array_key_exists("param",$row) && strtoupper($row['param'])=='INT'){ $parameter = PDO::PARAM_INT; } else{ $parameter = PDO::PARAM_STR; } if($row['type']=='checkbox'){ if(!isset($_POST[$row['name']])){${$row['name']}=0;}else{${$row['name']}=$_POST[$row['name']];} } elseif($row['type']=='password'){ ${$row['name']}=password_hash($_POST[$row['name']], PASSWORD_DEFAULT); } elseif($row['type']=='tanggal'){ ${$row['name']}=date("Y-m-d",strtotime($_POST[$row['name']])); } elseif($row['type']=='tanggalint'){ ${$row['name']}=strtotime($_POST[$row['name']]); } elseif($row['type']=='uang'){ ${$row['name']}=CRUD::Uang($_POST[$row['name']]); } elseif($row['type']=='textarea'){ ${$row['name']}=CRUD::TextArea($_POST[$row['name']]); } else{ ${$row['name']}=$_POST[$row['name']]; } $q_idata -> bindValue(':'.$row['name'],${$row['name']},$parameter); } } $q_idata -> execute(); echo json_encode( array( "status" => "success", "message" => "Success add data into database" ) ); }catch(PDOException $e){ CRUD::fatal( "Insert Failed, ".$e->getMessage() ); } } static function UpdateData($tabel,$id,$idvalue,$idtype,$fields=array()) { try{ $IdType = "int" ? $IdType = PDO::PARAM_INT : PDO::PARAM_STR; foreach($fields as $row){ //SKIP UPDATE $row['skipupdate'] = array_key_exists("skipupdate",$row) ? $row['skipupdate'] : $row['skipupdate']=false; if((array_key_exists("skipupdate",$row) && $row['skipupdate']==false)){ if($row['type']=='checkbox'){ if(!isset($_POST[$row['name']])){${$row['name']}=0;}else{${$row['name']}=$_POST[$row['name']];} } elseif($row['type']=='password'){ ${$row['name']}=password_hash($_POST[$row['name']], PASSWORD_DEFAULT); } elseif($row['type']=='tanggal'){ ${$row['name']}=date("Y-m-d",strtotime($_POST[$row['name']])); } elseif($row['type']=='tanggalint'){ ${$row['name']}=strtotime($_POST[$row['name']]); } elseif($row['type']=='uang'){ ${$row['name']}=CRUD::Uang($_POST[$row['name']]); } elseif($row['type']=='textarea'){ ${$row['name']}=CRUD::TextArea($_POST[$row['name']]); } else{ ${$row['name']}=$_POST[$row['name']]; } } } $query= "UPDATE ".$tabel." SET ".implode(",", array_map(function($a){ return $a["name"]."=:".$a["name"]; }, array_filter($fields,function($a){ return $a['skipupdate']==false; } ) ) )." WHERE ".$id."=:".$id; $q_udata = CRUD::sql_connect()->prepare($query); foreach($fields as $row){ if(array_key_exists("param",$row) && strtoupper($row['param'])=="INT"){ $parameter = PDO::PARAM_INT; } else{ $parameter = PDO::PARAM_STR; } //SKIP UPDATE $row['skipupdate'] = array_key_exists("skipupdate",$row) ? $row['skipupdate'] : $row['skipupdate']=false; if((array_key_exists("skipupdate",$row) && $row['skipupdate']==false)){ $q_udata -> bindValue(':'.$row['name'],${$row['name']},$parameter); } } $q_udata -> bindValue(':'.$id, $idvalue, $IdType); $q_udata -> execute(); echo json_encode( array( "status" => "success", "message" => "Success update data" ) ); }catch(PDOException $e){ CRUD::fatal( "Update Failed, ".$e->getMessage() ); } } static function sql_connect() { global $sql_details; try { $db = @new PDO( "mysql:host={$sql_details['host']};dbname={$sql_details['db']}", $sql_details['user'], $sql_details['pass'], array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ) ); $db->query("SET NAMES 'utf8'"); } catch (PDOException $e) { CRUD::fatal( "An error occurred while connecting to the database. ". "The error reported by the server was: ".$e->getMessage() ); } return $db; } static function CleanId($datax) { $hasil =''; $ReplaceX = Array( "\0" => "", "'"=> "", '"'=> "" ); $hasil = trim(strip_tags(htmlentities(str_replace(array_keys($ReplaceX), $ReplaceX, $datax)))); return $hasil; } static function Uang($nominalx) { $hasil =''; $ReplaceX = Array( "\0" => "", ","=> "" ); $hasil = trim(str_replace(array_keys($ReplaceX), $ReplaceX, $nominalx)); return $hasil; } static function TextArea($textx) { $hasil =""; $striptags = strip_tags(str_replace("\n","<br/>",$textx),'<br>'); $hasil = str_replace("\0", '', $striptags); return $hasil; } static function fatal ( $msg ) { echo json_encode( array( "status" => "error", "message" => $msg ) ); exit(0); } //DATA TABLES ============================================================================================================ static function data_output ( $columns, $data, $isJoin = false ) { $out = array(); for ( $i=0, $ien=count($data) ; $i<$ien ; $i++ ) { $row = array(); for ( $j=0, $jen=count($columns) ; $j<$jen ; $j++ ) { $column = $columns[$j]; if ( isset( $column['formatter'] ) ) { $row[ $column['dt'] ] = ($isJoin) ? $column['formatter']( $data[$i][ $column['field'] ], $data[$i] ) : $column['formatter']( $data[$i][ $column['db'] ], $data[$i] ); } else { $row[ $column['dt'] ] = ($isJoin) ? $data[$i][ $columns[$j]['field'] ] : $data[$i][ $columns[$j]['db'] ]; } } $out[] = $row; } return $out; } static function limit ($columns ) { $limit = ''; if ( isset($_POST['start']) && $_POST['length'] != -1 ) { $limit = "LIMIT ".intval($_POST['start']).", ".intval($_POST['length']); } return $limit; } static function order ($columns, $isJoin = false ) { $order = ''; if ( isset($_POST['order']) && count($_POST['order']) ) { $orderBy = array(); $dtColumns = CRUD::pluck( $columns, 'dt' ); for ( $i=0, $ien=count($_POST['order']) ; $i<$ien ; $i++ ) { $columnIdx = intval($_POST['order'][$i]['column']); $requestColumn = $_POST['columns'][$columnIdx]; $columnIdx = array_search( $requestColumn['data'], $dtColumns ); $column = $columns[ $columnIdx ]; if ( $requestColumn['orderable'] == 'true' ) { $dir = $_POST['order'][$i]['dir'] === 'asc' ? 'ASC' : 'DESC'; $orderBy[] = ($isJoin) ? $column['db'].' '.$dir : ''.$column['db'].' '.$dir; } } $order = 'ORDER BY '.implode(', ', $orderBy); } return $order; } static function filter ($columns, &$bindings, $isJoin = false ) { $globalSearch = array(); $columnSearch = array(); $dtColumns = CRUD::pluck( $columns, 'dt' ); if ( isset($_POST['search']) && $_POST['search']['value'] != '' ) { $str = $_POST['search']['value']; for ( $i=0, $ien=count($_POST['columns']) ; $i<$ien ; $i++ ) { $requestColumn = $_POST['columns'][$i]; $columnIdx = array_search( $requestColumn['data'], $dtColumns ); $column = $columns[ $columnIdx ]; if ( $requestColumn['searchable'] == 'true' ) { $binding = CRUD::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR ); $globalSearch[] = ($isJoin) ? $column['db']." LIKE ".$binding : "".$column['db']." LIKE ".$binding; } } } for ( $i=0, $ien=count($_POST['columns']) ; $i<$ien ; $i++ ) { $requestColumn = $_POST['columns'][$i]; $columnIdx = array_search( $requestColumn['data'], $dtColumns ); $column = $columns[ $columnIdx ]; $str = $requestColumn['search']['value']; if ( $requestColumn['searchable'] == 'true' && $str != '' ) { $binding = CRUD::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR ); $columnSearch[] = ($isJoin) ? $column['db']." LIKE ".$binding : "".$column['db']." LIKE ".$binding; } } $where = ''; if ( count( $globalSearch ) ) { $where = '('.implode(' OR ', $globalSearch).')'; } if ( count( $columnSearch ) ) { $where = $where === '' ? implode(' AND ', $columnSearch) : $where .' AND '. implode(' AND ', $columnSearch); } if ( $where !== '' ) { $where = 'WHERE '.$where; } return $where; } static function simple ($sql_details, $table, $primaryKey, $columns, $joinQuery = NULL, $extraWhere = '', $groupBy = '') { $bindings = array(); $db = CRUD::sql_connect( $sql_details ); $limit = CRUD::limit($columns ); $order = CRUD::order($columns, $joinQuery ); $where = CRUD::filter($columns, $bindings, $joinQuery ); if($extraWhere) $extraWhere = ($where) ? ' AND '.$extraWhere : ' WHERE '.$extraWhere; $groupBy = ($groupBy) ? ' GROUP BY '.$groupBy .' ' : ''; if($joinQuery){ $col = CRUD::pluck($columns, 'db', $joinQuery); $query = "SELECT SQL_CALC_FOUND_ROWS ".implode(", ", $col)." $joinQuery $where $extraWhere $groupBy $order $limit"; }else{ $query = "SELECT SQL_CALC_FOUND_ROWS ".implode(", ", CRUD::pluck($columns, 'db'))." FROM $table $where $extraWhere $groupBy $order $limit"; } $data = CRUD::sql_exec( $db, $bindings,$query); $resFilterLength = CRUD::sql_exec( $db, "SELECT FOUND_ROWS()" ); $recordsFiltered = $resFilterLength[0][0]; $resTotalLength = CRUD::sql_exec( $db, "SELECT COUNT({$primaryKey}) FROM $table" ); $recordsTotal = $resTotalLength[0][0]; return array( "draw" => intval( $_POST['draw'] ), "recordsTotal" => intval( $recordsTotal ), "recordsFiltered" => intval( $recordsFiltered ), "data" => CRUD::data_output( $columns, $data, $joinQuery ) ); } static function sql_exec ( $db, $bindings, $sql=null ) { if ( $sql === null ) { $sql = $bindings; } $stmt = $db->prepare( $sql ); if ( is_array( $bindings ) ) { for ( $i=0, $ien=count($bindings) ; $i<$ien ; $i++ ) { $binding = $bindings[$i]; $stmt->bindValue( $binding['key'], $binding['val'], $binding['type'] ); } } try { $stmt->execute(); } catch (PDOException $e) { CRUD::fatal( "An SQL error occurred: ".$e->getMessage() ); } return $stmt->fetchAll(); } static function bind ( &$a, $val, $type ) { $key = ':binding_'.count( $a ); $a[] = array( 'key' => $key, 'val' => $val, 'type' => $type ); return $key; } static function pluck ( $a, $prop, $isJoin = false ) { $out = array(); for ( $i=0, $len=count($a) ; $i<$len ; $i++ ) { $out[] = ($isJoin && isset($a[$i]['as'])) ? $a[$i][$prop]. ' AS '.$a[$i]['as'] : $a[$i][$prop]; } return $out; } }
Copyright ©2021 || Defacer Indonesia