/** * Mostrar o formulário de inclusão e edição do registro * * @param int|null $md ID do módulo dessa funcionalidade * @param bool|null $mst Nome da página mestra a ser carregada * @param int|null $pk Valor da PK do registro a ser selecionado */ protected function mostrarForm($pk = null, $md = null, $mst = null) { $inc = $this->formPadrao('func', 'modulos/funcionalidades/salvar', 'modulos/funcionalidades/salvar', null, $pk); # Visão $this->carregarHTML('comum/visoes/titulo_h2'); $this->carregarHTML('form_funcs', $mst); $this->visao->setTitulo($inc ? sprintf(TXT_PAGINA_TITULO_CADASTRAR_NOVA, $this->nome) : sprintf(TXT_PAGINA_TITULO_EDITAR_ESSA, $this->nome)); # Grupos de usuários $mgu = new AdminM\GrupoUsuario(); $lgu = $mgu->carregarSelect('grupo_usuario_publicar = 1', false); # Parâmetros $this->visao->adParam('grupos', $lgu); $this->visao->adParam('modulo', $md); if ($inc) { # Módulos $mf = new DevM\Modulo($md); $this->modelo->setClasse($mf->nomeClasse()); $this->visao->adParam('modulo-classe', $this->modelo->getClasse()); } // Fim if $classe = $this->modelo->getClasse(); /* * Obter a lista completa de todos os métodos existentes na classe especificada */ if (class_exists($classe)) { $rfx = new \ReflectionClass($classe); $metodos = preg_grep('~^_{2}~', array_column(array_map(function ($m) use($classe) { if ($m->class === $classe) { return (array) $m; } // Fim if }, (array) $rfx->getMethods(\ReflectionMethod::IS_PROTECTED)), 'name'), PREG_GREP_INVERT); sort($metodos); $this->visao->adParam('lista-metodos', $metodos); } // Fim if }