Server IP : 103.119.228.120 / Your IP : 216.73.216.45 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els17.x86_64 #1 SMP Mon Feb 24 04:58:14 UTC 2025 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/hendraso/public_html/Core/ |
Upload File : |
<?php class Griddata{ private $table; private $query; private $rowPerPage = 20; private $page; private $totalPages; private $separator; private $maxPages = 5; private $data; private $paging; private $column = '*'; private $totalData = 0; private $limit = 0; private $offset = 0; private $where = ""; private $group = ""; private $order = ""; private $prefix = ""; private $btnAction = ""; private $btnActionUpdate = ""; private $btnActionDelete = ""; private $btnActionView = ""; function setMax($max){ $this->maxPages = $max; return $this; } public function setField($column){ $this->column = $column; return $this; } public function setPrefix($prefix){ $this->prefix = $prefix; return $this; } public function setTable($table) { $this->table = $table; return $this; } public function setWhere($where) { if(empty($where)) { $this->where = ""; }else{ $cond = !preg_match("/WHERE/", $where) ? 'WHERE' : 'AND'; $this->where = $cond . ' ' . $where; } return $this; } public function setGroup($group) { $this->group = $group; return $this; } function setRowpage($row){ $this->rowPerPage = $row; return $this; } function setLimit($limit, $offset){ $this->limit = $limit; $this->offset = $offset; return $this; } public function setOrder($order) { $this->order = $order; return $this; } public function setBtnAction($btnAction){ $this->btnAction = $btnAction; return $this; } public function setBtnActionUpdate($btnActionUpdate){ $this->btnActionUpdate = $btnActionUpdate; return $this; } public function setBtnActionDelete($btnActionDelete){ $this->btnActionDelete = $btnActionDelete; return $this; } public function setBtnActionView($btnActionView){ $this->btnActionView = $btnActionView; return $this; } function execute($count = false, $debug = ''){ $rowsPerPage = $this->rowPerPage; $page=isset($_POST['page']) ? $_POST['page'] : 1; if(isset($_POST['src']) && !empty($_POST['src'])) { parse_str($_POST['src'], $fltr_src); if(empty($this->where)) { $cond = " WHERE "; }else { $cond = (!preg_match("/WHERE/", $this->where)) ? " WHERE " : " AND "; } $adv_filter = ""; foreach($fltr_src as $kfltr => $vfltr) { $fltrField = str_replace("src_", "", $kfltr); $condAdvFilter = empty($adv_filter) ? "" : "AND "; $columnFilter = GeneralFunction::build()->search_field_mapping($this->column, $fltrField); if(isset($this->column[$columnFilter]['data']) && $this->column[$columnFilter]['type'] == 'combo' && !is_array($this->column[$columnFilter]['data'])) { $elm = explode('|', $this->column[$columnFilter]['data']); //if(isset($elm[1])) { $where = " WHERE 1 "; $tableName = $elm[0]; $tableFieldId = $elm[1]; $tableFieldName = $elm[2]; $where .= isset($elm[3]) ? $elm[3] : ""; $order = isset($elm[4]) ? $elm[4] : ""; $condComboValue = !empty($vfltr) ? " LIKE '%{$vfltr}%' " : " = '{$vfltr}' "; $where .= " AND {$tableFieldName} {$condComboValue}"; $sql = "SELECT ".$tableFieldId." FROM ".$tableName." ".$where." ".$order; $data = Database::build()->getSelect($sql); $arrIsiData = array(); foreach($data as $item) { $arrIsiData[$item[$tableFieldId]] = $item[$tableFieldId] ; } if(!empty($arrIsiData)) { $dataIn = implode(",", $arrIsiData); $adv_filter .= "{$condAdvFilter} {$columnFilter} IN ({$dataIn})"; }/*else{ $adv_filter .= " {$condAdvFilter} {$columnFilter} IN ('')"; }*/ /*}else{ $this->where .= $cond . " {$columnFilter} LIKE '%".$txtSearch."%'"; }*/ }elseif(isset($this->column[$columnFilter]['data']) && $this->column[$columnFilter]['type'] == 'combo' && is_array($this->column[$columnFilter]['data'])) { $adv_filter .= " {$condAdvFilter} {$columnFilter} = '{$vfltr}'"; }else{ if($vfltr != '') { $adv_filter .= " {$condAdvFilter} {$columnFilter} LIKE '%{$vfltr}%'"; } } } if(!empty($adv_filter)) { $this->where .= $cond . " ({$adv_filter})"; } //print_r($src); /*if(!empty($txtSearch)) { if(empty($this->where)) { $cond = " WHERE "; }else { $cond = (!preg_match("/WHERE/", $this->where)) ? " WHERE " : " AND "; } $columnFilter = GeneralFunction::build()->search_field_mapping($this->column, $slFilter); // ============= Revision ============= if(isset($this->column[$columnFilter]['data'])) { $elm = explode('|', $this->column[$columnFilter]['data']); if(isset($elm[1])) { $where = " WHERE 1 "; $tableName = $elm[0]; $tableFieldId = $elm[1]; $tableFieldName = $elm[2]; $where .= isset($elm[3]) ? $elm[3] : ""; $order = isset($elm[4]) ? $elm[4] : ""; $where .= " AND {$tableFieldName} LIKE '%{$txtSearch}%'"; $sql = "SELECT ".$tableFieldId." FROM ".$tableName." ".$where." ".$order; $data = Database::build()->getSelect($sql); $arrIsiData = array(); foreach($data as $item) { $arrIsiData[$item[$tableFieldId]] = $item[$tableFieldId] ; } if(!empty($arrIsiData)) { $dataIn = implode(",", $arrIsiData); $this->where .= $cond . " {$columnFilter} IN ({$dataIn})"; }else{ $this->where .= $cond . " {$columnFilter} IN ('')"; } }else{ $this->where .= $cond . " {$columnFilter} LIKE '%".$txtSearch."%'"; } } // ========================================================= //$this->where .= $cond . " {$columnFilter} LIKE '%".$txtSearch."%'"; }*/ if(isset($slAdv) && !empty($slAdv)) { if(empty($this->where)) { $cond = " WHERE "; }else { $cond = " AND "; } $this->where .= $cond . " iproUdafId = '".$slAdv."'"; } if(isset($slPub) && !empty($slPub)) { if(empty($this->where)) { $cond = " WHERE "; }else { $cond = " AND "; } $this->where .= $cond . " iproMpubId = '".$slPub."'"; } } if($count) { $group = empty($this->group) ? "" : $this->group; $column = empty($this->group) ? "" : $this->column; $totalRows = Database::build()->getCount($this->table, $this->where, $group, $column); return $totalRows; }else{ if(empty($debug)){ $this->data = Generaldb::instance() ->column($this->column) ->prefix($this->prefix) ->table($this->table) ->group($this->group) ->where($this->where) ->order($this->order) ->limit($this->limit, $this->offset) ->executeArr(); }else{ $this->data = Generaldb::instance() ->column($this->column) ->prefix($this->prefix) ->table($this->table) ->limit($this->limit, $this->offset) ->debug(); } return $this->data(); } //return $this; } function executeAll($count = false, $debug = ''){ $rowsPerPage = $this->rowPerPage; $page=isset($_POST['page']) ? $_POST['page'] : 1; if(isset($_POST['src']) && !empty($_POST['src'])) { parse_str($_POST['src']); if(!empty($txtSearch)) { if(empty($this->where)) { $cond = " WHERE "; }else { $cond = (!preg_match("/WHERE/", $this->where)) ? " WHERE " : " AND "; } $this->where .= $cond . " " . GeneralFunction::build()->search_field_mapping($this->column, $slFilter) . " LIKE '%".$txtSearch."%'"; } if(isset($slAdv) && !empty($slAdv)) { if(empty($this->where)) { $cond = " WHERE "; }else { $cond = " AND "; } $this->where .= $cond . " iproUdafId = '".$slAdv."'"; } if(isset($slPub) && !empty($slPub)) { if(empty($this->where)) { $cond = " WHERE "; }else { $cond = " AND "; } $this->where .= $cond . " iproMpubId = '".$slPub."'"; } } if($count) { $totalRows = Database::build()->getCount($this->table, $this->where); return $totalRows; }else{ if(empty($debug)){ $this->data = Generaldb::instance() ->column($this->column) ->prefix($this->prefix) ->table($this->table) ->group($this->group) ->where($this->where) ->order($this->order) ->executeArr(1); }else{ $this->data = Generaldb::instance() ->column($this->column) ->prefix($this->prefix) ->table($this->table) ->debug(); } return $this->data(); } //return $this; } public function createPaging(){ $start=((($this->page%$this->maxPages==0) ? ($this->page/$this->maxPages) : intval($this->page/$this->maxPages)+1)-1)*$this->maxPages+1; $end=((($start+$this->maxPages-1)<=$this->totalPages) ? ($start+$this->maxPages-1) : $this->totalPages); $paging=($end < 2) ? '' : '<span>Go to Page </span><input type="text" name="page" id="page" value="'.$this->page.'"><div class="clearfix conditions"></div>'; //$paging=''; if($end > 1) { //$paging.= '<ul>'; if($this->page>1){ $paging.='<a rel="1" title="First page" class="icoFirst"></a>'; //$paging.='<a rel="'.($this->page-1).'" title="Previous page" class="icoBack"></a>'; } if($start>$this->maxPages){ $paging.='<a rel="'.($start-1).'" title="Page '.($start-1).'" class="icoBack"></a></li>'; } for($i=$start;$i<=$end;$i++){ if($this->page==$i){ $paging.='<a href="#" class="active">'.$i.'</a>'; } else{ $paging.='<a rel="'.$i.'" title="Page '.$i.'">'.$i.'</a>'; } } if($end<$this->totalPages){ $paging.='<a rel="'.($end+1).'" title="Page '.($end+1).'" class="icoNext"></a>'; } if($this->page<$this->totalPages){ //$paging.='<a rel="'.($this->page+1).'" title="Next page" class="icoNext"></a>'; $paging.='<a rel="'.$this->totalPages.'" title="Last page" class="icoLast"></a>'; } //$paging.= '<div class="clearfix"></div></ul>'; } $this->paging = $paging; return $this; } public function addTask($task) { //print_R($this->column); foreach($task as $name => $value) { $this->column = array($value => $value) + $this->column; } foreach($this->data as $key=>$val) { foreach($task as $name => $value) { $this->data[$key] = array($value => "<input type='checkbox' name='" .$value. "[]' value='" . $this->data[$key][$name]. "' >") + $this->data[$key]; } } // print_r($this->column); //print_r($task); return $this; } /* untuk set array value*/ public function getOption($arrOption) { foreach($this->data as $key=>$val) { foreach($val as $field => $value) { if(isset($arrOption[$field])) { $this->data[$key][$field] = $arrOption[$field][$value]; }else{ $this->data[$key][$field] = $value; } } } return $this; } function data(){ $arrData = array(); $arrHeader = ($this->btnAction == true) ? array("action" => "Action") : array(); $arrCapsData = array(); foreach($this->column as $key => $val) { if(!empty($val['data'])) { $arrCapsData[$val['field']] = $val['data']; } if(is_array($val)){ if(isset($val['grid']) /*&& !empty($val['grid'])*/ && $val['grid'] == 'true') { if(isset($val['name'])){ $arrHeader[$val['field']] = $val['name']; } } }else{ if(isset($val['grid']) /*&& !empty($val['grid'])*/ && $val['grid'] == 'true') { $arrHeader[] = $val; } } } foreach($this->data as $key => $val) { //Original // if($this->btnAction == true) { // $fieldPrefix = $this->column[$this->prefix]['field']; // $actionBtn = ""; // if($this->btnActionUpdate == true) { // $actionBtn .= '<a class="btn btn-default bg-white text-primary mr-1 editRow" id="'.$val[$fieldPrefix].'" title="Edit"><i class="fa fa-pencil"></i></span>'; // } // if($this->btnActionDelete == true) { // $actionBtn .= '<a class="btn btn-default bg-white text-danger mr-1 deleteRow" id="'.$val[$fieldPrefix].'" title="Delete"><i class="fa fa-trash"></i></span>'; // } // if($this->btnActionView == true) { // $actionBtn .= '<a class="btn btn-default bg-white text-success mr-1 viewRow" id="'.$val[$fieldPrefix].'" title="View"><i class="fa fa-eye"></i></span>'; // } // $val['action'] = $actionBtn; // } if($this->btnAction == true) { $fieldPrefix = $this->column[$this->prefix]['field']; $actionBtn = ""; if($this->btnActionView == true) { $actionBtn .= '<a class="dropdown-item font-md text-mediumgray py-2 viewRow" id="'.$val[$fieldPrefix].'" title="View"><i class="fa fa-eye mr-2"></i> View Detail</span>'; } if($this->btnActionUpdate == true) { $actionBtn .= '<a class="dropdown-item font-md text-mediumgray py-2 editRow" id="'.$val[$fieldPrefix].'" title="Edit"><i class="fa fa-pencil mr-2"></i> Edit</span>'; } if($this->btnActionDelete == true) { $actionBtn .= '<a class="dropdown-item font-md text-mediumgray border-top py-2 deleteRow" id="'.$val[$fieldPrefix].'" title="Delete"><i class="fa fa-trash mr-2"></i> Delete</span>'; } $val['action'] = $actionBtn; } foreach($val as $k => $v) { if(isset($arrHeader[$k])) { if(!empty($arrCapsData[$k])) { if(is_array($arrCapsData[$k])) { $arrCombo = $arrCapsData[$k]; }else{ $arrCombo = $this->generateArrData($arrCapsData[$k]); } $list_dat = explode(",", $v); if(is_array($list_dat)) { $list_val_opt = ""; foreach($list_dat as $kLd => $vLd) { $list_val_opt .= isset($arrCombo[$vLd]) ? "," . $arrCombo[$vLd] : "," ; } $arrData[$key][$k] = substr($list_val_opt, 1); }else{ $arrData[$key][$k] = isset($arrCombo[$v]) ? $arrCombo[$v] : "" ; } }else{ $arrData[$key][$k] = $v; } } } } /*foreach($this->column as $key => $val) { if(is_array($val)){ if(isset($val['name'])){ $arrHeader[] = $val['name']; } }else{ $arrHeader[] = $val; } }*/ $arrData = array("header"=>$arrHeader, "data" => $arrData, "paging" => $this->paging, "pagelabel" => "Showing " . $this->limit . " to " . $this->offset ." of " . $this->totalData ." entries"); //$arrData = array("header"=>$arrHeader, "data" => $this->data, "paging" => $this->paging, "pagelabel" => "Showing " . $this->limit . " to " . $this->offset ." of " . $this->totalData . " entries"); return $arrData; } function generateArrData ($arrData) { $elm = explode('|', $arrData); if(isset($elm[1])) { $tableName = $elm[0]; $tableFieldId = $elm[1]; $tableFieldName = $elm[2]; $where = isset($elm[3]) ? $elm[3] : ""; $order = isset($elm[4]) ? $elm[4] : ""; $sql = "SELECT ".$tableFieldId.", ".$tableFieldName." FROM ".$tableName." ".$where." ".$order; $data = Database::build()->getSelect($sql); $arrIsiData = array(); foreach($data as $item) { $arrIsiData[$item[$tableFieldId]] = $item[$tableFieldName] . " - " . $item[$tableFieldId]; } return $arrIsiData; } } }