403Webshell
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 :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/hendraso/public_html/Core/Griddata.php
<?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;
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit