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(); }
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"); } }