Esempio n. 1
0
 public function __toString()
 {
     $view = new XSmarty();
     //        $output = "";
     //        foreach ( $this->fieldList as $field ) {
     //            $output .= $field ;
     //        }
     //        $view->assign ( 'output' , $output ) ;
     $view->assign('fieldList', $this->fieldList);
     return $view->getDisplay();
 }
Esempio n. 2
0
    public function display()
    {
        try {
            $this->processButtons();
            $smarty_ListaDados = new XSmarty();
            $dadosTabela = array();
            $this->applyFilters();
            $whereList = $this->listaDb->getWhereList();
            if (empty($whereList) && $this->filterRequired) {
                throw new \Xlib\XListaDados\Exception_EmptySearchFilter("Favor forneça ao menos um argumento de busca ");
            }
            if (!empty($this->permission) && !$this->hasPermission()) {
                $message = "Desculpe, você não tem permissão suficiente para acessar o recurso solicitado.";
                return '
                <div style="min-width:500px;background:#FFFAFA;padding:10px;min-height:100px;text-align:center;margin-left:auto;margin-right:auto;text-align:center;color:#F00;font-family:verdana;font-size:12px;margin:10px;">
					<div style="display:block;text-align:left;">
						<pre style="border:2px solid #D00;font-size:1.3em;color:#D00;padding:10px;"> <span class="glyphicon glyphicon-warning-sign"></span> ' . $message . '</pre>
					</div>
				</div>
                ';
            }
            $this->setFiltrosOrdem();
            if ($this->ListaDadosDisplay !== null) {
                return $this->ListaDadosDisplay;
            }
            $this->queryCount = $this->listaDb->queryCount();
            $this->setDados();
            $totalRegistros = $this->queryCount;
            $totalPaginas = ceil($this->queryCount / $this->linhasPorTabela);
            $paginacao['inicio'] = $paginacao['anterior'] = $paginacao['proxima'] = $paginacao['fim'] = '_off';
            if ($this->paginaAtual > 1) {
                $paginacao['inicio'] = $paginacao['anterior'] = '_on';
            }
            if ($this->paginaAtual < $totalRegistros / $this->linhasPorTabela) {
                $paginacao['fim'] = $paginacao['proxima'] = '_on';
            }
            $linha = 0;
            $checkboxValues = array();
            if (!empty($this->dadosQuery)) {
                foreach ($this->dadosQuery as $registro) {
                    $url = '';
                    if (sizeof($this->checkbox) != 0) {
                        $checkboxValues[$linha]['valor'] = $registro[$this->checkbox['valor']];
                        $checkboxValues[$linha]['display'] = 'none';
                        if (!empty($registro[$this->checkbox['campoComparacao']])) {
                            eval("\$condicaoDisplay = '" . $registro[$this->checkbox['campoComparacao']] . "'" . $this->checkbox['condicao'] . ";");
                            if ($condicaoDisplay) {
                                $checkboxValues[$linha]['display'] = '';
                            }
                        }
                    }
                    /**
                     * CRIA OS PARAMETROS PARA ENVIAR PARA O BOTÃO ANTIGO
                     * @TODO: VERIFICAR A NECESSIDADE DO FOREACH ABAIXO E CODIGOS NA SEQUENCIA
                     *
                     */
                    foreach ($this->getCampos() as $campo) {
                        if ($campo->getTipoSaida() != "T") {
                            $url .= $campo->getNome() . "=" . str_replace("'", " ", $registro[$campo->getNome()]) . "&";
                        }
                        if ($campo->getTipoSaida() != "P") {
                            if ($campo->getFormat() == "S") {
                                $dadosTabela[$linha][$campo->getNome()] = number_format($registro[$campo->getNome()], 2, '.', '');
                            } else {
                                $dadosTabela[$linha][$campo->getNome()] = $registro[$campo->getNome()];
                            }
                        }
                        foreach ($this->condicao as $key => $cond) {
                            if (!isset($condicao[$key])) {
                                $condicao[$key]['condicao'] = trim($cond['condicao']);
                                $condicao[$key]['STATUS'] = FALSE;
                            }
                            if (eregi($campo->getNome() . " ", $condicao[$key]['condicao'])) {
                                $condicao[$key]['condicao'] = str_replace($campo->getNome(), "'" . $registro[$campo->getNome()] . "'", $condicao[$key]['condicao']);
                                $condicao[$key]['STATUS'] = TRUE;
                            }
                        }
                    }
                    $dadosTabela[$linha]["Style"] = "";
                    if (!empty($condicao)) {
                        foreach ($condicao as $key => $cond) {
                            if ($cond['STATUS']) {
                                eval("\$resultcon = " . $cond['condicao'] . "; ");
                                if ($resultcon) {
                                    $dadosTabela[$linha]["Style"] = $this->condicao[$key]['style'];
                                    if (is_array($this->condicao[$key]['acao'])) {
                                        $hiddenimg = $this->condicao[$key]['acao'];
                                    }
                                }
                            }
                        }
                    }
                    unset($condicao);
                    foreach ($this->getAcoes() as $acao) {
                        $viewacao = true;
                        if (is_array($hiddenimg) && in_array($acao->getImagem(), $hiddenimg)) {
                            $viewacao = false;
                        }
                        $acao->setParametros(substr($url, 0, strlen($url) - 1));
                        $acaoComLink = new XAcao($acao->getImagem(), $acao->getHref(), $acao->getAlt(), $acao->getLabel(), $acao->getOutros(), $acao->getParametros(), $viewacao);
                        $dadosTabela[$linha]['acoes'][] = $acaoComLink;
                        unset($acaoComLink);
                    }
                    unset($hiddenimg);
                    $linha++;
                }
            }
            foreach ($this->getCampos() as $campo) {
                if ($campo->getTipoSaida() != "P") {
                    $temp = $campo;
                    $camposTabela[] = $temp;
                    $this->incrementTotColum();
                    unset($temp);
                }
            }
            $optionsComboPagina = $this->montaOptionComboPagina($totalPaginas);
            $smarty_ListaDados->assign("UsaPaginacao", $this->paginacao);
            $smarty_ListaDados->assign("ordenacao", $this->ordenacao);
            $smarty_ListaDados->assign("paginacao", $paginacao);
            // seta o status das imagens
            $smarty_ListaDados->assign("listaId", $this->id);
            $smarty_ListaDados->assign("arr_campos_exibicao", $camposTabela);
            $smarty_ListaDados->assign("order", $this->setFiltrosOrdem());
            $smarty_ListaDados->assign("optionsComboPagina", $optionsComboPagina);
            $smarty_ListaDados->assign('comboPagina', $this->comboPagina);
            $smarty_ListaDados->assign('UsaBackgroundIndex', $this->UsaBackgroundIndex);
            $smarty_ListaDados->assign('query', \Xlib\ModelAbstract::queryBeautifier($this->getQuery()));
            //$smarty_ListaDados->assign("corTrue",COR_TRUE);
            //$smarty_ListaDados->assign("corFalse",COR_FALSE);
            //$smarty_ListaDados->assign("corOnMouseOver",COR_OVER);
            $smarty_ListaDados->assign("tableClassList", $this->tableClassList);
            $smarty_ListaDados->assign("tableTitle", $this->tableTitle);
            $smarty_ListaDados->assign("arr_campos_exibicao_values", $dadosTabela);
            $smarty_ListaDados->assign("qry_pag_inicio", $this->paginaAtual);
            $smarty_ListaDados->assign("qry_pag_paginas", ceil($totalPaginas));
            $smarty_ListaDados->assign("qtd_linha", $linha);
            $smarty_ListaDados->assign("qry_pag_registros", $totalRegistros);
            $smarty_ListaDados->assign("checkboxValues", $checkboxValues);
            $smarty_ListaDados->assign("showLineCounter", $this->showLineCounter);
            $checkcol = sizeof($this->checkbox) != 0 ? 1 : 0;
            if (!$this->showLineCounter) {
                $checkcol--;
            }
            $smarty_ListaDados->assign("total_colunas", $this->totColum + $checkcol);
            $smarty_ListaDados->assign("AutoDetalhes", $this->AutoDetalhes);
            $smarty_ListaDados->assign("AutoDetalhesStr", $this->AutoDetalhesStr);
            $smarty_ListaDados->assign("checkbox", $this->checkbox);
            $smarty_ListaDados->assign("createPageLink", $this->createPageLink);
            // link da página de inserir registro caso não tenha sido encontrado nenhum
            $db = \Xlib\ModelAbstract::getDB();
            $pagina = $_SERVER['REQUEST_URI'];
            if (!isset($_GET['paginacao' . $this->id])) {
                $_GET['paginacao' . $this->id] = '1';
            }
            if (!isset($_GET['orderCampo' . $this->id])) {
                $_GET['orderCampo' . $this->id] = '1';
            }
            $hidden = "<input type=\"hidden\" name=\"paginacao" . $this->id . "\" value=\"" . $_GET['paginacao' . $this->id] . "\">" . "<input type=\"hidden\" name=\"orderCampo" . $this->id . "\" value=\"" . $_GET['orderCampo' . $this->id] . "\">";
            foreach ($_GET as $key => $value) {
                if ($key === 'orderCampo' . $this->id || $key === 'paginacao' . $this->id) {
                    continue;
                }
                $hidden .= '<input type="hidden" name="' . $key . '" value="' . $value . '">';
            }
            $javas = '<form action="' . $pagina . '" method="get" name="' . $this->id . '" id="' . $this->id . '">' . $hidden . '</form>' . '<form action="' . $pagina . '" method="get" name="paginacaoform' . $this->id . '" id="paginacao' . $this->id . '">' . $hidden . '</form>
<script language="javascript">

    function ordenacao' . $this->id . '(campo,ordem){
        document.' . $this->id . '.orderCampo' . $this->id . '.value = campo+":"+ordem;
        document.' . $this->id . '.submit();
    }

    function goToPage' . $this->id . '() {
        var paginaAtual = document.paginacaoform' . $this->id . '.paginacao' . $this->getId() . '.value
        var proximaPagina = window.prompt("Digite o número da página" , paginaAtual ) ;

        proximaPagina = proximaPagina.replace(/[^\\d]+/,\'\');
        if ( proximaPagina === "" ) return false ;
        proximaPagina = parseInt ( proximaPagina , 10 );

        if ( paginaAtual === proximaPagina ) return false ;
        if ( proximaPagina <= 0 ) return false ;
        if ( proximaPagina > ' . $totalPaginas . ' ) return false ;

        document.paginacaoform' . $this->id . '.paginacao' . $this->getId() . '.value = proximaPagina;
        document.paginacaoform' . $this->id . '.submit();
    }

    function pagina' . $this->id . ' (variavel){

        var paginaAtual = ' . $this->paginaAtual . ' ;

        if ( variavel === "inicio" ) {
            paginaAtual = 1;
        } else if ( variavel === "anterior" ) {
            paginaAtual--;
            if ( paginaAtual < 1 ) paginaAtual = 1 ;
        } else if ( variavel === "proximo" ) {
            paginaAtual++;
            if ( paginaAtual > ' . $totalPaginas . ' ) paginaAtual = ' . $totalPaginas . ' ;
        } else if ( variavel === "fim" ) {
            paginaAtual = ' . $totalPaginas . ';
        }

        document.paginacaoform' . $this->id . '.paginacao' . $this->getId() . '.value = paginaAtual;
        document.paginacaoform' . $this->id . '.submit();
    }
</script>';
            $smarty_ListaDados->assign("javascriptListaDados", $javas);
            $template = empty($this->template) ? XListaDados::$defaultTemplate : $this->template;
            $ListaDadosDisplay = $smarty_ListaDados->getDisplay(dirname(__FILE__) . "/view/" . $template . ".phtml");
            $this->ListaDadosDisplay = $ListaDadosDisplay;
            return $this->ListaDadosDisplay;
        } catch (\Xlib\XListaDados\Exception_EmptySearchFilter $err) {
            $smarty_ListaDados->assign('mensagem', $err->getMessage());
            return $smarty_ListaDados->getDisplay(dirname(__FILE__) . "/view/XListaDadosEmpty.phtml");
        } catch (Exception $err) {
            $backtrace = $errorMessage = $query = $errorDetail = $dbLastQuery = $dbAccess = $connectorReport = '';
            // $errorMessage = translateError ( $err->getMessage ( ) );
            $errorMessage = $err->getMessage();
            if (DEBUG) {
                $backtrace = print_r(debug_backtrace(), true);
                $errorDetail = $err->getTraceAsString();
                $connectorReport = ModelAbstract::dumpQueries();
                $dbLastQuery = $this->listaDb->getDB()->last_query;
            }
            $smarty_ListaDados->assign('connectorReport', $connectorReport);
            $smarty_ListaDados->assign('dbLastQuery', $dbLastQuery);
            $smarty_ListaDados->assign('debug', DEBUG);
            $smarty_ListaDados->assign('errorMessage', $errorMessage);
            //            $smarty_ListaDados->assign ( 'errorMessage' , translateError ( $errorMessage ) ) ;
            $smarty_ListaDados->assign('errorDetail', $errorDetail);
            $smarty_ListaDados->assign('backtrace', $backtrace);
            return $smarty_ListaDados->getDisplay(dirname(__FILE__) . "/view/XListaDadosException.phtml");
        }
    }
Esempio n. 3
0
 /**
  * to give user feedback messages
  * @return string
  */
 public static function getUserMessage()
 {
     if ($this->session->hasMessage()) {
         $error_messages = XSmarty::getErrorMessagesHTML();
     } else {
         $error_messages = "";
     }
     return $error_messages;
 }