/** * Método inicial do controle */ public function inicial() { $this->registrarInternacionalizacao($this, $this->visualizacao); $this->gerarMenus(); $this->visualizacao->action = sprintf('?c=%s', definicaoEntidade::controle($this, 'importadorXML')); $this->visualizacao->xml = VComponente::montar('textArea', 'xml', null); $this->visualizacao->xml->passarRows(20); $this->visualizacao->xml->passarCols(70); $this->visualizacao->xml->passarTitle('Preencher o campo de texto com xml para a importação'); $this->visualizacao->xml->passarLimite(1000000); $this->visualizacao->xml->obrigatorio(true); parent::inicial(); }
/** * metodo de apresentação do negocio * @param negocio objeto para a apresentação * @param string tipo de visualização a ser utilizada 'edicao' ou 'visual' */ public function montarApresentacao(negocio $negocio, $tipo = 'edicao') { if ($negocio->valorChave()) { $negocio->carregarAcessos(); } $controlesUsuario = array_flip($negocio->coAcessos->gerarVetorDeAtributo('nmAcesso')); $sistema = dir("."); while (false !== ($diretorio = $sistema->read())) { if (preg_match('/^[^\\.].*/', $diretorio, $res) && is_dir($diretorio = "{$diretorio}/classes")) { $classes = dir($diretorio); while (false !== ($classe = $classes->read())) { if (preg_match('/^[C].*/', $classe, $res) && is_file($classe = "{$diretorio}/{$classe}")) { $controlesSistema[] = $classe; } } } } $sistema->close(); $entidadeControle = ''; $listagem = ''; foreach ($controlesSistema as $controle) { if ($controle) { $controle = substr(basename($controle), 0, -4); $arControle = explode('_', $controle); if ($arControle[0] != $entidadeControle) { $entidadeControle = $arControle[0]; $entidade = definicaoEntidade::entidade($controle) . '<br/>'; $listagem .= "\t\t\t<tr><td colspan='3' >\n\t\t\t\t\t<img alt='marcar' src='usuario/imagens/marcar.png' onclick='javascript:marcar(true,\"{$arControle[0]}\");' />\n\t\t\t\t\t<img alt='desmarcar' src='usuario/imagens/desmarcar.png' onclick='javascript:marcar(false,\"{$arControle[0]}\");' />\n\t\t\t\t\t <b>{$entidade}</b></td></tr>\n"; } $vCheckBox = VComponente::montar('checkbox', 'controle[]', $controle); $vCheckBox->passarChecked(isset($controlesUsuario[$controle])); $vCheckBox = $vCheckBox->__toString(); $vDtInicio = null; #VComponente::montar('data e hora','dtInicio[]',null); $vDtFim = null; VComponente::montar('data e hora', 'dtFim[]', null); $listagem .= "\t\t\t<tr><td></td><td>{$vCheckBox}</td><td>{$arControle[1]}</td><!--<td>{$vDtInicio}</td><td> </td><td>{$vDtFim}</td>--></tr>\n"; } } if ($negocio->pegarIdUsuario()) { $nUsuario = new NUsuario(); $nUsuario->ler($negocio->pegarIdUsuario()); $this->visualizacao->usuario = $nUsuario->pegarNmLogin(); } $this->visualizacao->action = sprintf('?c=%s', definicaoEntidade::controle($this, 'selecionarAcessos')); $this->visualizacao->idUsuario = VComponente::montar('oculto', 'idUsuario', $negocio->pegarIdUsuario()); $this->visualizacao->login = $negocio->pegarNmLogin(); $this->visualizacao->listagem = $listagem; }
/** * Método inicial do controle */ public function inicial() { sessaoSistema::encerrar(); $this->gerarMenuPrincipal(); $this->registrarInternacionalizacao($this, $this->visualizacao); $this->visualizacao->action = sprintf('?c=%s', definicaoEntidade::controle($this, 'validar')); $this->visualizacao->nmLogin = VComponente::montar('caixa de entrada', 'nmLogin', null); $this->visualizacao->nmLogin->passarSize(15); $this->visualizacao->nmLogin->obrigatorio(true); $this->visualizacao->nmLogin->passarTitle('Digite o login do usuário'); $this->visualizacao->nmSenha = VComponente::montar('senha', 'nmSenha', null); $this->visualizacao->nmSenha->passarSize(15); $this->visualizacao->nmSenha->obrigatorio(true); $this->visualizacao->nmSenha->passarTitle('Digite a senha de acesso'); $this->visualizacao->btEnviar = VComponente::montar('confirmar', 'btEnviar', $this->inter->pegarTexto('enviar')); $this->visualizacao->mostrar(); }
/** * Método inicial do controle */ public function inicial() { $this->gerarMenuprincipal(); $this->gerarMenuPrograma(); global $definicoes; $arAmbiente = array('3' => $this->inter->pegarTexto('ambiente3'), '2' => $this->inter->pegarTexto('ambiente2'), '1' => $this->inter->pegarTexto('ambiente1')); $arTiposBancosDisponiveis = array('sqlite' => 'Sqlite', 'postgres' => 'PostgreSQL', 'mysql' => 'MySql', 'oracle' => 'Oracle'); $arBooleano = array('sim' => $this->inter->pegarTexto('sim'), 'nao' => $this->inter->pegarTexto('nao')); $paginaInicial = ($paginaInicial = strval($definicoes->sistema['paginaInicial'])) ? $paginaInicial : 'CControleAcesso_verPrincipal'; $paginaErro = ($paginaErro = strval($definicoes->sistema['paginaErro'])) ? $paginaErro : 'CControleAcesso_erroAcesso'; $liberadoCA = ($liberadoCA = strval($definicoes->controleDeAcesso['liberado'])) ? $liberadoCA : 'sim'; $classeCA = ($classeCA = strval($definicoes->controleDeAcesso['classe'])) ? $classeCA : 'NControleAcesso'; $metodoCA = ($metodoCA = strval($definicoes->controleDeAcesso['metodoLiberacao'])) ? $metodoCA : 'validarAcesso'; $classeMenu = ($classeMenu = strval($definicoes->controleDeMenu['classe'])) ? $classeMenu : 'NControleMenu'; $metodoMenu1 = ($metodoMenu1 = strval($definicoes->controleDeMenu['metodoMenuSite'])) ? $metodoMenu1 : 'menuPrincipal'; $metodoMenu2 = ($metodoMenu2 = strval($definicoes->controleDeMenu['metodoMenuSistema'])) ? $metodoMenu2 : 'menuMenuSistema'; $this->sessao->limpar(); $this->registrarInternacionalizacao($this, $this->visualizacao); //Páginas do sistema $this->visualizacao->paginaInicial = VComponente::montar('input', 'sistema[paginaInicial]', $paginaInicial); $this->visualizacao->paginaErro = VComponente::montar('input', 'sistema[paginaErro]', $paginaErro); $this->visualizacao->ambiente = VComponente::montar('select', 'sistema[ambiente]', $paginaErro, null, $arAmbiente); //Controle de acesso do sistema $this->visualizacao->liberadoCA = VComponente::montar('combobox', 'controleDeAcesso[liberado]', $liberadoCA, null, $arBooleano); $this->visualizacao->classeCA = VComponente::montar('input', 'controleDeAcesso[classe]', $classeCA); $this->visualizacao->metodoCA = VComponente::montar('input', 'controleDeAcesso[metodoLiberacao]', $metodoCA); //Controle de menu do sistema $this->visualizacao->classeMenu = VComponente::montar('input', 'controleDeMenu[classe]', $classeMenu); $this->visualizacao->metodoMenuPrincipal = VComponente::montar('input', 'controleDeMenu[metodoMenuSite]', $metodoMenu1); $this->visualizacao->metodoMenuSistema = VComponente::montar('input', 'controleDeMenu[metodoMenuSistema]', $metodoMenu2); //Bancos $conexao = $tipo = $porta = $nome = $usuario = $senha = array(); $arInputConfig = array('size' => '10', 'style' => 'margin-right: 2px;'); $arSelectConfig = array('style' => 'margin-right: 2px;'); foreach ($definicoes->xpath('/definicoes/bancos/banco') as $banco) { $conexao[] = VComponente::montar('input', 'banco[id][]', $banco['id'], $arInputConfig); $tipo[] = VComponente::montar('select', 'banco[tipo][]', $banco['tipo'], $arSelectConfig, $arTiposBancosDisponiveis); $servidor[] = VComponente::montar('input', 'banco[servidor][]', $banco['servidor'], $arInputConfig); $porta[] = VComponente::montar('input', 'banco[porta][]', $banco['porta'], array('size' => '2')); $nome[] = VComponente::montar('input', 'banco[nome][]', $banco['nome'], $arInputConfig); $usuario[] = VComponente::montar('input', 'banco[usuario][]', $banco['usuario'], $arInputConfig); $senha[] = VComponente::montar('palavra chave', 'banco[senha][]', $banco['senha'], $arInputConfig); $multipla[] = VComponente::montar('combobox', 'banco[conexaoMultipla][]', $banco['conexaoMultipla'] == 'sim' ? 'sim' : 'nao', null, $arBooleano); } $this->visualizacao->conexao = $conexao; $this->visualizacao->tipo = $tipo; $this->visualizacao->servidor = $servidor; $this->visualizacao->porta = $porta; $this->visualizacao->nome = $nome; $this->visualizacao->usuario = $usuario; $this->visualizacao->senha = $senha; $this->visualizacao->multipla = $multipla; //Diretorios foreach ($definicoes->xpath('/definicoes/diretorios/diretorio') as $diretorio) { $dirId[] = VComponente::montar('VHidden', 'diretorios[id][]', $diretorio['id']); $dir[] = VComponente::montar('input', 'diretorios[dir][]', $diretorio['dir'], array('size' => '60px')); $entidade[] = VComponente::montar('combobox', 'diretorios[entidade][]', $diretorio['entidade'] == 'sim' ? 'sim' : 'nao', array('style' => 'width: 80px'), $arBooleano); } $this->visualizacao->dirId = $dirId; $this->visualizacao->dirCaminho = $dir; $this->visualizacao->dirEntidade = $entidade; //Arquivos foreach ($definicoes->xpath('/definicoes/arquivos/arquivo') as $arquivo) { $arqId[] = VComponente::montar('VHidden', 'arquivos[tipo][]', $arquivo['tipo']); $arq[] = VComponente::montar('input', 'arquivos[nome][]', $arquivo['nome'], array('size' => '60px')); } $this->visualizacao->arqId = $arqId; $this->visualizacao->arquivo = $arq; $this->visualizacao->action = '?c=CUtilitario_definirSistema'; $this->visualizacao->mostrar(); }
/** * Método de montagem da tabela */ function montarTabela() { $json = new json(); $conexao = conexao::criar(); $persistente = new PUtilitario($conexao); $desc = $persistente->lerTabela($_GET['tabela']); $sequences = $persistente->lerSequenciasDoBanco($_GET['tabela']); $sequences = array_merge(array('' => ' '), $sequences); if ($sequences) { $this->visualizacao->nomeSequence = VComponente::montar('select', 'nomeSequence', null, null, $sequences); } $mapNegocio['bd']['nomeTabela'] = $_GET['tabela']; $mapNegocio['bd']['nomeSequencia'] = '«Nome da sequência???»'; $mapNegocio['bd']['chavePrimaria'] = ''; $mapNegocio['bd']['ordem'] = array('1' => ''); $mapNegocio['inter']['nome'] = '«Nome da entidade??»'; $mapNegocio['inter']['titulo'] = ''; $mapNegocio['inter']['tituloSistema'] = ''; $mapNegocio['inter']['subtituloSistema'] = ''; foreach ($desc as $indice => $campo) { $tipoDeDado = $campo['tipo_de_dado']; switch ($campo['tipo_de_dado']) { case 'numerico': $campo['tamanho'] = $campo['tamanho'] > 30 ? 20 : $campo['tamanho']; $componente = 'numerico'; break; case 'data': $campo['tamanho'] = ''; $componente = 'data'; break; default: $componente = 'caixa de entrada'; } switch (true) { case $campo['campo_pk']: $mapNegocio['bd']['chavePrimaria'] = $campo['campo_pk']; $componente = 'oculto'; $chaveEstrangeira = false; break; case $campo['campo_fk']: $componente = 'caixa de combinacao'; $chaveEstrangeira = array('tabela' => $campo['esquema_fk'] . '.' . $campo['tabela_fk'], 'campo' => $campo['campo_fk']); break; default: $tipoDeDado = $campo['tipo_de_dado'] == 'numerico' ? 'tnumerico' : $campo['tipo_de_dado']; $chaveEstrangeira = false; } $mapNegocio['entidade'][$indice]['negocio']['propriedade'] = str_replace(' ', '', ucwords(str_replace('_', ' ', $campo['campo']))); $mapNegocio['entidade'][$indice]['negocio']['propriedade'][0] = strtolower($mapNegocio['entidade'][$indice]['negocio']['propriedade'][0]); $mapNegocio['entidade'][$indice]['negocio']['tipo'] = $tipoDeDado; $mapNegocio['entidade'][$indice]['negocio']['campo'] = $campo['campo']; $mapNegocio['entidade'][$indice]['negocio']['obrigatorio'] = $campo['obrigatorio'] ? 'sim' : ''; $mapNegocio['entidade'][$indice]['negocio']['indiceUnico'] = ''; $mapNegocio['entidade'][$indice]['negocio']['dominio'] = ''; $mapNegocio['entidade'][$indice]['negocio']['descritivo'] = ''; $mapNegocio['entidade'][$indice]['negocio']['classeAssociativa'] = $chaveEstrangeira ? '«Classe de Negocio ???»' : ''; $mapNegocio['entidade'][$indice]['negocio']['metodoLeitura'] = $chaveEstrangeira ? 'lerTodos' : ''; $mapNegocio['entidade'][$indice]['controle']['componente'] = $componente; $mapNegocio['entidade'][$indice]['controle']['tamanho'] = ''; $mapNegocio['entidade'][$indice]['controle']['tipo'] = $campo['tipo_de_dado']; $mapNegocio['entidade'][$indice]['controle']['obrigatorio'] = $campo['obrigatorio'] ? 'sim' : ''; $mapNegocio['entidade'][$indice]['controle']['pesquisa'] = ''; $mapNegocio['entidade'][$indice]['controle']['valores'] = array(); $mapNegocio['entidade'][$indice]['controle']['classeAssociativa'] = $chaveEstrangeira ? 'Classe de Negocio ???' : ''; $mapNegocio['entidade'][$indice]['controle']['metodoLeitura'] = $chaveEstrangeira ? 'lerTodos' : ''; $mapNegocio['entidade'][$indice]['controle']['listagem'] = $campo['campo_pk'] ? '1' : ''; $mapNegocio['entidade'][$indice]['controle']['hyperlink'] = $campo['campo_pk'] ? 'sim' : ''; $mapNegocio['entidade'][$indice]['controle']['largura'] = $campo['campo_pk'] ? '10%' : ''; $mapNegocio['entidade'][$indice]['controle']['ordem'] = $campo['campo_pk'] ? 1 : ''; $mapNegocio['entidade'][$indice]['controle']['campoPersonalizado'] = ''; $mapNegocio['entidade'][$indice]['persistente']['nome'] = $campo['campo']; $mapNegocio['entidade'][$indice]['persistente']['tipo'] = $tipoDeDado; $mapNegocio['entidade'][$indice]['persistente']['tamanho'] = $campo['tamanho']; $mapNegocio['entidade'][$indice]['persistente']['obrigatorio'] = ''; $mapNegocio['entidade'][$indice]['persistente']['operadorDeBusca'] = 'igual'; $mapNegocio['entidade'][$indice]['persistente']['chaveEstrangeira'] = $chaveEstrangeira; $mapNegocio['entidade'][$indice]['persistente']['ordem'] = $campo['campo_pk'] ? '1' : ''; $mapNegocio['entidade'][$indice]['inter']['nome'] = ucfirst(str_replace('_', ' ', $campo['campo'])); $mapNegocio['entidade'][$indice]['inter']['abreviacao'] = ucwords(str_replace('_', ' ', $campo['campo'])); $mapNegocio['entidade'][$indice]['inter']['descricao'] = $campo['descricao']; $mapNegocio['entidade'][$indice]['inter']['dominio'] = ''; } $this->visualizacao->dados = $json->pegarJson(array($mapNegocio)); $this->visualizacao->campos = $mapNegocio; $this->visualizacao->acesso = 'Carga de tabela do banco'; $this->visualizacao->travarSugestaoDeNomesPersistente = 'true'; }
/** * Varre o sistema e registra as listagens de respostas no template * @return array */ protected function entidades() { for ($i = 1; $i < 6; $i++) { $niveis[$i] = "nivel de busca {$i}"; } $this->visualizacao->nivel = VComponente::montar(VComponente::caixaCombinacao, 'nivel', isset($_POST['nivel']) ? $_POST['nivel'] : 1, null, $niveis); $this->visualizacao->filtro = VComponente::montar(VComponente::caixaEntrada, 'filtro', isset($_POST['filtro']) ? $_POST['filtro'] : null); $this->visualizacao->pesquisar = VComponente::montar(VComponente::confirmar, 'Pesquisar', 'Pesquisar'); if (!$this->pegarFiltro()) { return $this->visualizacao->listagens = array(); } $d = dir("."); $negocios = new colecao(); $controles = new colecao(); while (false !== ($arquivo = $d->read())) { if (is_dir($arquivo) && $arquivo[0] !== '.') { if (is_file($arquivo . '/classes/N' . ucfirst($arquivo) . '.php')) { $negocio = 'N' . ucfirst($arquivo); $obNegocio = new $negocio(); if ($obNegocio instanceof negocioPadrao) { $ordem[$arquivo] = array('nome' => $obNegocio->pegarInter()->pegarNome(), 'caminho' => $arquivo . '/classes/N' . ucfirst($arquivo) . '.php'); $negocios->{$arquivo} = $obNegocio; } } } } $d->close(); asort($ordem); $this->visualizacao->ordem = $ordem; $listagens = array(); foreach ($ordem as $idx => $arquivo) { $obNegocio = $negocios->pegar($idx); $nome['controle'] = definicaoEntidade::controle($obNegocio, 'verPesquisa'); if ($this->exibirListagem($arquivo)) { $colecao = $obNegocio->pesquisaGeral($this->pegarFiltro(), $this->pegarPagina(), isset($_POST['nivel']) ? $_POST['nivel'] : 1); call_user_func_array("{$nome['controle']}::montarListagem", array($this->visualizacao, $colecao, $this->pegarPagina(), $nome['controle'])); $this->visualizacao->listagem->passarControle($nome['controle']); if ($colecao->contarItens()) { $listagens[$idx]['listagem'] = $this->visualizacao->listagem; $listagens[$idx]['ocorrencias'] = $colecao->contarItens(); $listagens[$idx]['nome'] = $arquivo['nome']; $listagens[$idx]['controlePesquisa'] = $nome['controle']; } } } unset($this->visualizacao->listagem); $this->visualizacao->listagens = $listagens; }