Usuários experientes

Aviso

Siga as instruções apenas se souber o que está fazendo… “A gerência não se responsabiliza por quaisquer casos de […]” :D

Adapte ao seu gráfico

Se você tem familiaridade com folhas de estilo CSS, pode adaptar o CSS do Galette para combinar com suas próprias cores. Para isso, é fortemente desencorajado editar os arquivos CSS do Galette, sendo preferível utilizar o mecanismo específico desenvolvido para essa finalidade. Crie um arquivo galette_local.css no diretório webroot/themes/default com seus estilos; ele será incluído automaticamente.

Tente manter as coisas o mais simples possível. Por exemplo, se você quiser alterar a cor do nome da associação (exibida abaixo dos títulos das páginas), encontrará no Galette a regra CSS #asso_name que define vários parâmetros, incluindo a cor. Então, na sua folha de estilo, você precisará apenas do seguinte:

#asso_name {
    color: red;
}

Isso será suficiente para exibir o nome da sua associação em vermelho. Observe que o arquivo CSS local e todos os problemas que ele possa causar não serão levados em consideração pela equipe do Galette, e nenhum suporte será fornecido.

Você também pode sobrescrever a folha de estilo de impressão, basta criar um arquivo galette_print_local.css.

Adicionar e alterar strings

É possível, se necessário, personalizar as strings traduzidas no Galette sem editar nenhum arquivo fonte do Galette. Basta criar um arquivo galette_{mylang}_local_lang.php (onde {mylang} deve ser substituído pelo idioma, como fr_FR.utf8 ou en_US) no diretório lang. Este arquivo deve conter um array PHP simples com a string original (aquela no código fonte do Galette) como índice.

Por exemplo, queremos alterar a string “Password” na página de login em francês, traduzida como Mot de passe :. A string original é Password: (veja galette/templates/default/pages/index.html.twig), sua tradução para francês é Mot de passe : e queremos substituí-la por Secret :; então, criaremos o arquivo galette_fr_FR.utf8_local_lang.php com o seguinte conteúdo:

<?php
$lang['Password:'] = 'Secret :';
return $lang;

Como o Galette utiliza um sistema de cache para traduções, as alterações podem não ser visíveis imediatamente; talvez seja necessário reiniciar o PHP (ou limpar o cache). É importante usar a string original literalmente, incluindo a pontuação, e certificar-se de escapar as aspas simples (com uma barra invertida) em todas as strings.

Você também pode sobrescrever os idiomas dos plugins usando o mesmo método. Basta colocar o arquivo no diretório de idiomas dos plugins e nomeá-lo como {plugin}_{mylang}_local_lang.php, onde {plugin} é o nome da rota que você encontra no arquivo _define.php.

Nota

Isso só funcionará se você usar os recursos de tradução do Galette, e não com o gettext nativo.

Alterar a duração da sessão

Alterado na versão 1.3.0: The session lifetime is a setting stored in database, pref_session_timeout, reachable from the advanced configuration page. The GALETTE_TIMEOUT constant still works and still wins over it.

Per default, Galette will create session with default lifetime duration (and it seems browsers act differently in this case). Set pref_session_timeout from the advanced configuration page to change it; the value is a number of seconds, and 0 means until the browser is closed.

If the GALETTE_TIMEOUT constant is still declared in behavior configuration, it takes precedence and the setting shows as locked. Remove it from that file to manage the lifetime from the page.

Registre os endereços IP por trás de um proxy

Se a sua instância do Galette estiver atrás de um proxy, o endereço IP armazenado no histórico será o do proxy e não o do usuário :(

Alterado na versão 1.3.0: The proxy depth is a setting stored in database, pref_x_forwarded_for_index, reachable from the advanced configuration page. The GALETTE_X_FORWARDED_FOR_INDEX constant still works and still wins over it.

To fix that, set pref_x_forwarded_for_index from the advanced configuration page. Each proxy server appends its own address to the header, and the value is the position to read from the end of the list, starting at 1. So 1 is what you want behind a single reverse proxy, and 0 - the default - disables the lookup entirely.

Aviso

For security reasons, leave it to 0 if your instance is not behind a proxy! Anyone could otherwise send an X-Forwarded-For header of their own and have it logged in place of their address.

If the GALETTE_X_FORWARDED_FOR_INDEX constant is still declared in behavior configuration, it takes precedence and the setting shows as locked.

Estatísticas externas

Novo na versão 0.9.

Muitas plataformas de estatísticas dependem de um bloco Javascript adicional para funcionar. Você pode criar um arquivo tracking.js no diretório webroot/themes/default, que será incluído automaticamente.

O Galette utiliza Javascript para funcionar. Se o código que você adicionar no arquivo tracking.js estiver incorreto, isso pode impedir o funcionamento do Galette!

Exportações em CSV

Alterado na versão 1.0.0: Você pode configurar a exportação de parâmetros com um arquivo YAML <https://yaml.org/> em vez de um arquivo XML.

O Galette oferece um sistema de exportação CSV parametrizado. Apenas uma exportação parametrizada é fornecida, mas você pode adicionar as suas próprias ao arquivo config/exports.yaml.

Nota

O formato de configuração XML legado ainda é suportado; caso seja encontrado um identificador duplicado, o arquivo YAML terá precedência.

Vamos examinar as exportações parametrizadas de “cotizações” existentes:

- cotisations:
  # Model: List all cotisations amounts, begin and end dates with adherent name and town
  name: Cotisations
  description: Export de l'état des cotisations pour l'ensemble des adhérents
  filename: galette_cotisations.csv
  query: |-
    SELECT nom_adh, prenom_adh, ville_adh, montant_cotis, date_debut_cotis, date_fin_cotis
      FROM galette_cotisations
      INNER JOIN galette_adherents
        ON (galette_cotisations.id_adh=galette_adherents.id_adh)
  headers:
    - Name
    - Surname
    - Town
    - Amount
    - Begin date
    - End date
  separator: ;
  quote: \"
  • Cada entrada da matriz é um identificador único, em minúsculas, sem espaços ou caracteres especiais

  • Os campos name e description são obrigatórios, pois são usados para exibir cada exportação parametrizada na interface do usuário

  • filename define o nome do arquivo de saída

  • query é a consulta a ser executada e é obrigatória. Não há outras limitações além das do próprio mecanismo SQL, exceto que você não pode enviar parâmetros para ele

  • headers gerencia os títulos das colunas:

    • Assim como no exemplo acima, uma matriz de títulos de colunas de sua escolha

    • Caso não estejam presentes, os nomes dos campos do Galette serão exportados. Você pode usar colunas nomeadas em sua consulta SQL (SELECT nom_adh AS "Título da coluna" FROM ...)

    • Defina como falso (headers: false) para desativar a exibição dos cabeçalhos das colunas

  • separator é o separador CSV que será usado. Os valores possíveis são:

    • Ponto e vírgula (;) - padrão

    • vírgula (,)

    • Caractere de tabulação (\t)

  • quote pode ser aspas duplas (padrão) ou aspas simples

  • Para desativar uma exportação, você pode adicionar inactive: true

Ferramentas de administração

Aviso

Todas as operações das ferramentas administrativas são destrutivas, use-as com cautela e certifique-se de fazer um backup do banco de dados antes!

Existem algumas ferramentas fornecidas para o administrador do Galette que permitem:

  • Reinicializar o conteúdo dos e-mails irá redefinir o conteúdo de todos os e-mails para os valores padrão,

  • Reinicializar a configuração dos campos redefinirá todos os campos principais dos membros para seus valores padrão. Isso não se aplica a campos dinâmicos,

  • Reinicializar modelos PDF irá redefinir todos os modelos PDF para os valores padrão,

  • Gerar logins e senhas vazios Essas informações são necessárias para melhorar a segurança, mas às vezes estão ausentes (por exemplo, ao importar um arquivo CSV). Este recurso definirá valores aleatórios como campos de login e senha que estariam vazios no banco de dados.

  • Corrigir formato de datas de campos dinâmicos converterá todas as datas dos campos dinâmicos para o novo formato (consulte campos dinâmicos).

Advanced configuration

Novo na versão 1.3.0.

The settings form only shows a curated set of settings. The Configuration > Advanced configuration entry lists them all, one row per setting, including those that have no place on the form and those that used to be reachable only by editing a PHP file.

Aviso

This page can break your installation, be very careful. Values are checked, but a setting that is perfectly valid can still be wrong for your instance, and nothing asks you to confirm before storing it.

Galette advanced configuration

Only the super administrator can reach the page, and the password is asked again before it opens. The confirmation is remembered for fifteen minutes; after that, or after a new login, it is asked again.

Password asked before the advanced configuration page opens

Settings are saved one at a time: each row has its own Save button, and a Reset to default button appears as soon as the value differs from the one Galette ships with. Nothing is submitted for the whole page, so a mistake on one row cannot take the others with it.

A value goes through the very same checks as the settings form, and is refused with the same messages: a number outside its bounds, a malformed email address, but also a change that would break a rule between settings, such as setting both a membership extension and a fixed beginning of membership.

A search field above the table filters the rows on the setting name. It needs Javascript; without it the whole list is displayed.

Each row carries a status, also recalled in the page legend:

  • default: never changed, the value Galette ships with,

  • modified: changed from the default, here or from the settings form. It can be reset,

  • read-only: Galette maintains this value itself, such as a generated identifier or a date it records. It is shown for information only,

  • secret: a password or a token. Its value is never displayed, only whether one is set, and it is changed from the settings form,

  • locked: a constant declared in behavior.inc.php takes precedence over the stored value. Remove it from that file to manage the setting from here,

  • unknown: a row found in database that Galette does not describe. It may come from an older version or from a plugin. It is displayed, never edited.

The statuses a setting can carry

A setting only shows an input when it can be edited from there. In the example below, pref_x_forwarded_for_index is locked by a constant and only displays what applies, while pref_session_timeout, right after it, is editable:

A locked setting, and an editable one

A second table, below the settings, lists the constants behavior.inc.php understands, whether each one is currently declared, and what it is set to. It is there so you can see how the instance is configured without opening the file. A constant a setting now replaces only appears in that table while it is declared, along with a link to the setting it overrides.

Constants behavior.inc.php understands

Modos Galette

O Galette oferece diversos modos que você pode configurar com a constante GALETTE_MODE (:ref:` consulte a configuração de comportamento do Galette <behavior>). Essa diretiva pode assumir os seguintes valores:

  • PROD: Modo de produção (instâncias que não sejam de produção devem estar em outro modo). Este é o modo padrão para versões de lançamento, mas pode mudar na ramificação de desenvolvimento.

  • DEMO: Modo de demonstração, igual ao PROD, mas com algumas funcionalidades desativadas, como o envio de emails, a modificação de dados de superadministrador, …

  • TEST: Reservado para testes unitários.

  • MAINT: Modo de manutenção. Somente o super administrador poderá fazer login.

Depuração de Galette

Novo na versão 1.1.0.

Um nome de constante dedicado, GALETTE_DEBUG, pode ser usado para ativar o modo de depuração. Com esse modo ativado:

  • As partes instáveis/inacabadas serão ativadas,

  • Alguns dados não serão armazenados na sessão,

  • O nível de registro padrão está definido como ``DEBUG`,

  • As notícias não serão armazenadas em cache,

  • A verificação da versão do banco de dados não será realizada.

Configuração de comportamento

Some of Galette behaviors are set by declaring constants in the galette/config/behavior.inc.php file. A commented example of every one of them ships as behavior.inc.php.dist, next to it.

Por exemplo:

<?php
define('GALETTE_DEBUG', true);

Alterado na versão 1.3.0: Only the settings Galette needs before it can reach database are still declared here. The others became regular settings, editable from the advanced configuration page.

The following settings can be set:

  • GALETTE_DEBUG: enable debug mode, see Galette debug,

  • GALETTE_MODE: instance mode, see Galette modes,

  • GALETTE_LOG_LVL: verbosity of the logs, as an Analog level. Defaults to WARNING, or DEBUG in debug mode,

  • GALETTE_SQL_DEBUG: dump every SQL query to data/logs/galette_sql.log. Only the existence of the constant counts, so defining it to false still enables the dump,

  • GALETTE_FEATURE_FLAGS: development features to activate, as an array. They only apply in debug mode.

Settings that moved

Novo na versão 1.3.0: Three settings that used to be declared here are now stored in database, and edited from the advanced configuration page:

Declaring one of them still works, and still takes precedence over the stored value: nothing breaks on upgrade. Galette then writes a warning in its logs, and the advanced configuration page shows the setting as locked, naming the constant responsible. Remove it from behavior.inc.php to manage the setting from the page.

Nota

pref_galette_url is the one setting the reminders cron script cannot do without: it runs with no incoming request, so it has no way of guessing the address of your instance. Set it - or keep the constant - if you automate reminders.