/**
  * Mostrar o formulário de inclusão e edição do registro
  *
  * @param int  $pk  ID do registro a ser selecionado
  * @param bool $mst Nome da página mestra a ser carregada
  */
 protected function mostrarForm($pk = null, $mst = null)
 {
     $inc = $this->formPadrao('grupo', 'grupos-de-usuarios/salvar', 'grupos-de-usuarios/salvar', 'admin/grupos-de-usuarios', $pk);
     # Visão
     $this->carregarHTML('comum/visoes/titulo_h2');
     $this->carregarHTML('form_grupo', $mst);
     # Sub-módulos
     $mm = new DevM\Modulo();
     $ls = $mm->listar('M.modulo_publicar = 1 AND M.modulo_pai IS NOT NULL', 'M.modulo_ordem, M.modulo_nome', 'M.modulo_id, M.modulo_pai, M.modulo_nome, M.modulo_descr, M.modulo_link');
     # Funcionalidades
     $mf = new DevM\ModuloFunc();
     $lf = $mf->listar(null, 'func_modulo, func_modulo_descr', 'func_modulo, func_modulo_id, func_modulo_descr');
     # Parâmetros
     $this->visao->adParam('sub-modulos', $ls);
     $this->visao->adParam('funcs', $lf);
     # Usuário que está logado não pode alterar as permissões do seu próprio grupo, exceção apenas para o root
     $this->visao->adParam('mostrar-perms?', $inc || ($this->modelo->id != $_SESSION['usuario_info_grupo'] || $_SESSION['usuario_id'] == -1));
     if (!$inc) {
         # Membros do grupo
         $mu = new AdminM\Usuario();
         $lu = $mu->listar("usuario_info_grupo = {$this->modelo->id}", 'usuario_info_nome', 'usuario_info_nome');
         # Parâmetros
         $this->visao->adParam('membros', $lu);
     }
     // Fim if
 }
 public function __construct($m, $nm, $nc)
 {
     parent::__construct($m, $nm, $nc);
     # Alterar o tema utilizado
     $this->visao->setPgMestra($_SESSION['tema_pagina_mestra']);
     $this->visao->adParam('conf-site', ['tema_diretorio' => $_SESSION['tema_diretorio'], 'tema_pagina_mestra' => $_SESSION['tema_pagina_mestra']]);
     # Carregar o menu
     $this->carregarHTML('comum/visoes/menu');
     # Selecionar os módulos e sub-módulos
     $mm = new DevM\Modulo();
     $lm = $mm->listar('M.modulo_publicar = 1 AND M.modulo_pai IS NULL', 'M.modulo_ordem, M.modulo_nome', 'M.modulo_id, M.modulo_nome, M.modulo_descr, M.modulo_link');
     $ls = $_SESSION['usuario_id'] != -1 ? $mm->listarMenu('M.modulo_publicar = 1 AND M.modulo_pai IS NOT NULL', 'M.modulo_ordem, M.modulo_nome', 'M.modulo_id, M.modulo_pai, M.modulo_nome, M.modulo_descr, M.modulo_link, M.modulo_ordem') : $mm->listar('M.modulo_publicar = 1 AND M.modulo_menu = 1 AND M.modulo_pai IS NOT NULL', 'M.modulo_ordem, M.modulo_nome', 'M.modulo_id, M.modulo_pai, M.modulo_nome, M.modulo_descr, M.modulo_link, M.modulo_ordem');
     # Adicionar alguns links específicos do Painel-DL
     $this->visao->aux_links->novoLink('publicar', ['data-ajax' => true, 'data-ajax-msg' => TXT_AJAX_PUBLICANDO_REGISTRO, 'data-acao' => 'publicar-registro', 'class' => 'com-icone -publicar']);
     $this->visao->aux_links->novoLink('excluir-registro', ['data-ajax' => true, 'data-ajax-msg' => TXT_AJAX_EXCLUINDO_REGISTROS, 'data-acao' => '', 'class' => 'com-icone -excluir']);
     $this->visao->aux_links->novoLink('ocultar', ['data-ajax' => true, 'data-ajax-msg' => TXT_AJAX_PUBLICANDO_REGISTRO, 'data-acao' => 'ocultar-registro', 'class' => 'com-icone -nao-publicar']);
     $this->visao->aux_links->novoLink('detalhes', ['class' => 'com-icone -detalhes']);
     $this->visao->aux_links->novoLink('lista', ['class' => 'com-icone -lista']);
     $this->visao->aux_links->novoLink('bloquear', ['data-ajax' => true, 'data-ajax-msg' => TXT_AJAX_BLOQUEANDO_USUARIOS, 'data-acao' => 'bloquear-usuarios', 'class' => 'com-icone -bloquear']);
     $this->visao->aux_links->novoLink('desbloquear', ['data-ajax' => true, 'data-ajax-msg' => TXT_AJAX_DESBLOQUEANDO_USUARIOS, 'data-acao' => 'desbloquear-usuarios', 'class' => 'com-icone -desbloquear']);
     $this->visao->aux_links->novoLink('testar-email', ['data-ajax' => true, 'data-ajax-msg' => TXT_AJAX_ENVIANDO_EMAIL, 'data-acao' => 'testar-email', 'class' => 'com-icone -email']);
     $this->visao->aux_links->novoLink('voltar', ['class' => 'com-icone -voltar']);
     $this->visao->aux_links->novoLink('incluir-funcionalidades-padrao', ['class' => 'com-icone -nova-pasta', 'data-acao' => 'criar-funcionalidades']);
     $this->visao->aux_links->novoLink('configuracoes', ['class' => 'com-icone -configuracoes']);
     # Botões
     $this->visao->aux_form->novoBotao('excluir-registro', ['type' => 'button', 'data-ajax' => true, 'data-ajax-msg' => TXT_AJAX_EXCLUINDO_REGISTROS, 'data-acao' => 'excluir-registro', 'class' => 'botao -excluir']);
     # Dados do usuário
     $mus = new AdminM\Usuario($_SESSION['usuario_id']);
     # Parâmetros
     $this->visao->adParam('menu-modulos', $lm);
     $this->visao->adParam('menu-submodulos', $ls);
     $this->visao->adParam('usr-foto', $mus->mostrarFoto(\DL3::$dir_relativo, 'p'));
     $this->visao->adParam('mostrar-filtro-menu?', $_SESSION['usuario_pref_filtro_menu']);
     /*
      * Se a classe chamada for Login\Controle\Login, ainda não é necessário verificar o permissionamento
      */
     if (get_called_class() !== 'Login\\Controle\\Login') {
         $this->visao->adParam('perm-usr-senha?', \DL3::$autent->verificarPerm('Admin\\Controle\\Usuario', 'formAlterarSenha') && $_SESSION['usuario_id'] > 0);
         $this->visao->adParam('perm-usr-conta?', \DL3::$autent->verificarPerm('Admin\\Controle\\Usuario', 'minhaConta') && $_SESSION['usuario_id'] > 0);
     }
     // Fim if
 }
 /**
  * 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
 }
 /**
  * Mostrar o formulário de inclusão e edição do registro
  */
 protected function mostrarForm()
 {
     $this->formPadrao('config', null, 'configuracoes/salvar', 'website/configuracoes', 1);
     # Visão
     $this->carregarHTML('comum/visoes/titulo_h2');
     $this->carregarHTML('form_configuracao');
     $this->visao->setTitulo(TXT_PAGINA_TITULO_CONFIGURACAOSITE);
     # Selecionar os temas
     $mtm = new DevM\Tema();
     $ltm = $mtm->carregarSelect('tema_publicar = 1', false);
     # Selecionar os formatos de datas
     $mfd = new DevM\FormatoData();
     $lfd = $mfd->carregarSelect('formato_data_publicar = 1', false);
     # Selecionar as configurações de envio de e-mails
     $mce = new AdminM\ConfigEmail();
     $lce = $mce->carregarSelect(null, false, 'id', 'titulo');
     # Verificar se o módulo de fotos está ativo
     $mmd = new DevM\Modulo(7);
     # Parâmetros
     $this->visao->adParam('temas', $ltm);
     $this->visao->adParam('formatos-data', $lfd);
     $this->visao->adParam('confs-email', $lce);
     $this->visao->adParam('albuns-de-fotos?', $mmd->getPublicar());
 }