Ir para o conteúdo

Perguntas frequentes

Estas perguntas frequentes resumem questões recorrentes dos pedidos de suporte MRBS, tanto abertos como encerrados. As respostas foram verificadas para o MRBS 1.12.2; uma solução antiga não é incluída apenas por ter aparecido numa questão.

Como este FAQ foi selecionado

A revisão cobriu questões com pelo menos um destes rótulos: Help, Help from scratch, LDAP help need, Problems with room's capacity, support, spanish help, support request, help wanted, e custom view help.

Em 26 de julho de 2026, só a etiqueta support request abrangia 3.076 questões: 1.590 abertas e 1.486 encerradas. Muitas são casos históricos importados, personalizações pontuais, pedidos de funcionalidades ou perguntas sem resposta confirmada. A lista abaixo inclui apenas perguntas recorrentes cuja resposta continua útil para a versão 1.12.2. As ligações para as questões indicam a origem da informação, mas não substituem a referência da configuração atual.

Instalação e diagnóstico

Porque vejo uma página em branco ou HTTP 500?

Leia primeiro o servidor web e os registos de erros PHP. Uma página em branco é apenas um sintoma visível; o erro útil está normalmente num log. Então verifique:

  1. a versão PHP suportada e as extensões necessárias;
  2. config.inc.php com php -l config.inc.php;
  3. conectividade à base de dados e o driver PDO correspondente;
  4. permissões de ficheiro e configuração ativa PHP; e
  5. se o pedido com falha atingir a instalação MRBS pretendida.

Não ative a apresentação pública de erros PHP num sistema de produção e não cole credenciais num problema. Consulte Solução de problemas. O caso de suporte #1007 original não tinha nenhuma correção específica do produto confirmada, e é por isso que esta resposta começa com evidências dos registos locais.

Por que razão o login da base de dados falha no cPanel ou no alojamento partilhado?

Utilize a base de dados e o nome de utilizador exatos criados pelo painel de controlo de alojamento. O cPanel geralmente prefixa ambos com o nome da conta de alojamento. Verifique também se o utilizador tem privilégios nessa base de dados. SQLSTATE[28000] ou “Acesso negado ao utilizador” é um erro de autenticação ou de concessão de base de dados, não um erro de tabela MRBS.

Mantenha $db_database, $db_login e $db_password consistentes com os valores do painel de controlo. Crie o esquema apenas depois de a ligação ser bem-sucedida. Consulte questão #3801 e Instalação.

Porque é que uma alteração na configuração não tem efeito?

Verifique se editou o config.inc.php carregado por esta implementação e website. Os valores atribuídos posteriormente substituem os anteriores. As configurações guardadas para as áreas existentes residem na base de dados; alterar areadefaults.inc.php altera os padrões apenas para novas áreas. No modo multisite, confirme o site selecionado e a sua configuração. Por fim, limpe ou reinicie a cache opcode do PHP quando aplicável.

Consulte config.inc.php em profundidade e Solução de problemas.

Início de sessão e LDAP

Como posso exigir que os utilizadores iniciem sessão antes de verem o calendário?

Definir:

$auth['deny_public_access'] = true;

Teste a visualização desconectada numa janela privada do navegador. Esta configuração bloqueia o acesso ao calendário público; não escolhe nem configura o método de autenticação. Consulte questão #3979 e Utilizadores e permissões.

Porque é que MRBS diz que a extensão PHP LDAP está em falta?

Instale ou ative a extensão LDAP no ambiente PHP utilizado pelo servidor Web e reinicie o serviço correspondente. O PHP da linha de comandos e o PHP do servidor Web podem carregar ficheiros php.ini diferentes; por isso, verifique o ambiente Web em vez de confiar apenas em php -m. O nome do pacote e o comando de reinício dependem do sistema operativo e da forma como o PHP foi instalado.

Consulte questão #1022 e Autenticação LDAP.

Como encontro o DN base LDAP correto e o DN do utilizador?

Não infira a árvore de diretórios a partir do nome de uma organização. Consulte-o com um cliente LDAP como ldapsearch, utilizando o mesmo servidor, modo TLS, DN base, identidade de pesquisa e atributo de nome de utilizador que MRBS irá utilizar. O Active Directory utiliza normalmente sAMAccountName; O OpenLDAP utiliza normalmente o uid, mas o esquema do diretório é oficial.

Teste a identidade de pesquisa separadamente da ligação do utilizador final e nunca publique palavras-passe de ligação. Um DN errado foi a causa raiz no questão #1083.

Como pode o acesso LDAP ser limitado a um grupo?

Utilize $ldap_filter para decidir qual o diretório a que os utilizadores podem aceder MRBS. Para um layout da Active Directory em que a associação é guardada no objeto de utilizador, um filtro pode corresponder a memberof. Para um layout do estilo OpenLDAP em que a associação é guardada em objetos de grupo, configure $ldap_filter_base_dn, $ldap_filter_user_attr e um $ldap_filter apropriado.

Utilize o DN exato e os nomes de atributos do diretório, teste uma conta permitida e uma rejeitada e confirme como os grupos aninhados se comportam. Estes filtros de acesso estão separados do $ldap_admin_group_dn, que identifica os administradores MRBS. Consulte questão #2033 e Autenticação LDAP.

O início de sessão LDAP funciona; porque não é o utilizador administrador do MRBS?

Quando $ldap_admin_group_dn está definido, MRBS utiliza este grupo em vez de $auth['admin']. Confirmar:

  • o DN completo do grupo;
  • $ldap_group_member_attrib — memberof por defeito;
  • que a identidade de pesquisa LDAP possa ler os atributos de associação do utilizador; e
  • se o diretório retorna associação direta ou aninhada.

Ative temporariamente os diagnósticos LDAP apenas num ambiente de teste protegido e remova-os posteriormente. Em questão #3943, a identidade de pesquisa não conseguiu ler inicialmente as informações de grupo necessárias.

Porque é que LDAP pode falhar após uma atualização MRBS embora a ligação por palavra-passe funcione?

O MRBS atual pode necessitar de pesquisar o DN e os atributos de um utilizador, como o nome de visualização ou o e-mail. Se a pesquisa anónima não estiver disponível, configure:

$ldap_dn_search_attrib = 'sAMAccountName'; // use the directory's real attribute
$ldap_dn_search_dn = 'search-account@example.org';
$ldap_dn_search_password = 'read-from-a-protected-secret';

Dê à identidade de pesquisa apenas as permissões de leitura necessárias. Mantenha a sua palavra-passe fora da raiz do documento e inclua-a num ficheiro de configuração protegido. Consulte questão #3895.

MRBS pode pesquisar mais do que um diretório LDAP?

Sim. Muitas configurações de LDAP, incluindo $ldap_host, $ldap_port, $ldap_base_dn e atributos de pesquisa, podem ser matrizes. Se um parâmetro LDAP com capacidade de matriz for uma matriz, cada parâmetro com capacidade de matriz terá de ter o mesmo número de elementos, um por diretório.

Teste o login, a pesquisa de atributos, os filtros de acesso e o mapeamento do administrador para cada diretório. Consulte questão #3981 e a secção LDAP em systemdefaults.inc.php.

Reservas, salas e permissões

Porque é que um campo de reserva personalizado funciona para uma reserva, mas falha para uma série?

Cada coluna de reserva personalizada deve existir nas tabelas entry e repeat com o mesmo nome, tipo, comprimento, nulidade e padrão. Trate ambas as colunas como uma alteração de esquema.

Consulte questão #3986 e Campos personalizados.

A lotação da sala impede uma reserva com muitos participantes?

O valor da sala capacity são metadados da sala apresentados por MRBS; não é comparado automaticamente com a contagem de participantes de uma reserva. Se um site necessitar de aplicar esta regra, adicione um campo personalizado de contagem de participantes idêntico a entry e repeat e, em seguida, implemente e mantenha a validação do lado do servidor. A validação do lado do cliente por si só é insuficiente.

Se o registo estiver ativado, a sua capacidade de evento controlará o registo desse evento; não seleciona automaticamente uma sala de tamanho adequado. Consulte questão #1055, Áreas e salas e Campos personalizados.

Uma área pode utilizar slots de 30 minutos de manhã e slots de 15 minutos depois?

Não através da configuração normal da área. Cada área tem uma única resolução temporal. Utilize a menor resolução necessária durante todo o dia ou crie áreas separadas se os recursos e o modelo de funcionamento o permitirem. Uma resolução dependente da hora exige uma personalização de código que terá de ser mantida.

Consulte questão #4011.

Porque é que um criador de reservas não consegue ver Editar ou Apagar?

Consulte a política de reservas da área existente através do Salas. Os limites e regras de edição antecipada/futura para reservas anteriores podem remover estas ações até mesmo do criador. Confirme também a identidade do login, a propriedade, o estado do administrador e se o item é uma ocorrência ou uma série.

Alterar areadefaults.inc.php não atualiza uma área existente. Consulte questão #3994 e Políticas de reserva.

Os salas selecionados numa reserva multiroom estão permanentemente vinculados?

Não. MRBS cria entradas de reserva separadas. Se um deles for editado ou eliminado posteriormente, os outros não serão um grupo ligado durável. Não copie uma lista gerada de todas as salas selecionadas em cada descrição, a menos que o site também mantenha essa lista durante as operações de criação, edição e eliminação.

Consulte questão #2223.

Posso adicionar mais níveis de acesso ou conceder acesso apenas ao relatório de uma função personalizada?

A norma MRBS utiliza os níveis de acesso 0, 1 e 2. Funções numéricas adicionais e permissões específicas de página requerem a personalização da autorização local, testes e revisão após cada atualização. Um patch de um problema antigo não é uma opção de configuração compatível.

Prefira a delegação de área/sala padrão e relatórios públicos com listas de permissões restritas onde cumpram os requisitos. Consulte questão #3999 e Utilizadores e permissões.

E-mail, idioma e horário

Porque é que a depuração de e-mail informa “Nenhum destinatário”?

Active pelo menos uma função de destinatário pretendida:

$mail_settings['admin_on_bookings'] = true;
$mail_settings['area_admin_on_bookings'] = true;
$mail_settings['room_admin_on_bookings'] = true;
$mail_settings['booker'] = true;

Para a primeira opção, defina $mail_settings['recipients']. Mantenha atualizados no MRBS os endereços de e-mail dos administradores de área e de sala. Quando o autor da reserva é notificado, os utilizadores LDAP precisam de um atributo de e-mail legível e corretamente mapeado. Teste depois, em separado, a criação, alteração e eliminação de reservas.

Consulte questão #3795 e Notificações por e-mail.

Qual o valor que devo utilizar para $override_locale?

Utilize uma etiqueta de idioma BCP 47, como en, en-GB, de, fr ou es, e não uma string de localidade do sistema operativo. O servidor deve ainda ter dados de localidade adequados. Nos sistemas do tipo Unix, locale -a mostra as localizações instaladas.

Deixe $override_locale vazio para utilizar a seleção automática MRBS. Consulte questão #3984 e Texto e traduções.

Porque é que os horários exibidos exatamente uma hora estão errados?

Verifique, por ordem:

  1. o fuso horário da sala e da área;
  2. o global $timezone;
  3. Fuso horário e pacote de dados de fuso horário de PHP;
  4. a transição para o horário de verão da data afetada; e
  5. se o carimbo de data/hora armazenado ou apenas a sua apresentação está errado.

Utilize um fuso horário IANA como Europe/Berlin, e não um deslocamento UTC fixo. Os problemas antigos mencionam soluções alternativas de formatação específicas da versão; $force_strftime não é uma configuração em MRBS 1.12.2 e não deve ser copiado de questão #3967. Consulte Solução de problemas.

Como posso personalizar ou traduzir a página de Ajuda e o texto da interface?

A página de ajuda da aplicação é carregada em web/site_faq/. Por exemplo, o espanhol utiliza site_faq_es.html; defina $faqfilelang = 'es' quando o idioma deve ser explicitamente selecionado. Mantenha um ficheiro traduzido completo para cada idioma suportado.

Para alterações curtas na interface, utilize $vocab_override[LANG][TOKEN] em config.inc.php em vez de editar web/lang/lang.*. Os campos personalizados da base de dados utilizam tokens como entry.catering.

Consulte questão #2432 e Texto e traduções.

Reporting, multisite e personalização

Como é que um trabalho agendado pode exportar um relatório ou dados do iCalendar?

Os relatórios GET não autenticados estão desativados por defeito. Se as informações puderem ser expostas desta forma, ative-as deliberadamente e restrinja-as com:

$report_unauthenticated_get_enabled = true;
$report_keys_enabled = true;
$report_keys = ['a-long-random-secret'];
$report_open_areas = [1];
$report_open_rooms = [];

Utilize uma chave difícil de adivinhar, uma lista restrita de áreas e salas permitidas, HTTPS e um agendador protegido. Teste o resultado real sem iniciar sessão. O URL de um relatório funciona, na prática, como uma credencial e pode surgir em registos ou no histórico do navegador.

Consulte questão #3742 e Pesquisa e relatórios.

Vários sites MRBS podem partilhar um conjunto de tabelas?

Não, não se as suas reservas e definições precisarem de ser separadas. Cada site necessita das suas próprias tabelas MRBS, seja numa base de dados separada ou com uma $db_tbl_prefix única numa base de dados partilhada. O código pode ser partilhado, mas os conjuntos de tabelas não se devem sobrepor.

Crie as tabelas de cada site com os scripts de esquema MRBS e aplique o seu prefixo de forma consistente. Consulte questão #3917 e Multisite.

Todas as visualizações ou temas solicitados estão disponíveis através de configuração?

Não. Pedidos como inserir texto adicional da sala num layout de calendário específico, ligar reservas que de outra forma seriam independentes, adicionar níveis de acesso ou substituir a arquitetura do tema podem exigir alterações de código. Antes de aplicar um patch de um problema de suporte:

  • verifique se o 1.12.2 já tem configuração ou ponto de extensão;
  • manter a alteração fora dos ficheiros gerados e do fornecedor;
  • adicione testes para criação, edição, eliminação, privacidade e permissões; e
  • registe a personalização para a próxima atualização.

Exemplos incluem problema de visualização personalizada #2223 e pedido de tema #22.