Utilisateurs expérimentés¶
Avertissement
N’utilisez les instructions suivantes que si vous savez ce que vous faites… « La direction décline toute responsabilité en cas de […] » :D
Adaptation à votre charte graphique¶
Si vous êtes à l’aise avec les styles CSS, vous pouvez adapter le CSS de Galette pour suivre votre charte graphique. Pour ce faire, il est fortement déconseillé de modifier les fichiers CSS de Galette, mais plutôt d’utiliser le mécanisme spécifique prévu pour cela ; Créez un fichier galette_local.css dans votre dossier webroot/themes/default avec vos propres styles, il sera inclus automatiquement.
Essayer de faire aussi simple que possible. Par exemple, si vous souhaitez changer la couleur de fond du nom de l’association (affiché sous le titre des pages), vous trouverez dans Galette la règle #asso_name qui définit plusieurs paramètres y compris les couleurs. Donc, dans votre feuille de style, vous aurez juste besoin de :
#asso_name {
color: red;
}
Ce sera suffisant pour afficher le nom de votre association en rouge. Notez que les CSS locales et les problèmes qu’elles pourraient causer ne seront pas prises en compte par l’équipe de Galette, aucun support ne sera fourni.
Vous pouvez également fournir une feuille de style pour l’impression, créez juste un fichier galette_print_local.css.
Ajouter et modifier des chaînes¶
Il est possible au besoin de personnaliser les chaînes traduites dans Galette - sans modifier les sources de Galette. Créez simplement un fichier galette_{mylang}_local_lang.php (où {mylang} doit être remplacé par la langue, comme fr_FR.utf8 ou en_US) dans le dossier lang. Ce fichier doit contenir un simple tableau PHP avec la chaîne originale (celle dans le code source de Galette) en index.
Par exemple, nous souhaiterions modifier la chaîne « Password » sur la page de connexion en fraçais, traduit par Mot de passe :. La chaîne originale est Password: (voir galette/templates/default/pages/index.html.twig), sa traduction française est Mot de passe : et nous voulons la remplacer par Secret : ; donc nous allons créer le fichier galette_fr_FR.utf8_local_lang.php avec le contenu suivant :
<?php
$lang['Password:'] = 'Secret :';
return $lang;
Puisque Galette utilise un système de cache pour les traduction, les modification peuvent ne pas être visible immédiatement ; vous pouvez avoir à redémarrer PHP (ou nettoyer le cache). Il est important de prendra la chaîne d’origine telle quelle, ponctuation incluse ; et de prendre garde d’échapper les guillemets simples (avec un anti-slash) dans toutes les chaînes.
Vous pouvez également surcharger les langues des plugins en utilisant la même méthode, placez juste le fichier dans le dossier lang et nommez le {plugin}_{mylang}_local_lang.php où {plugin} est le nom du routage que vous trouverez dans le fichier _define.php.
Note
Cela ne fonctionnera que si vous utilisez les fonctionnalités de traduction de Galette, pas gettext natif.
Changer la durée de session¶
Modifié dans la version 1.3.0: La durée de vie de la session est un paramètre stocké dans la base de données, pref_session_timeout, accessible depuis la page configuration avancée. La constante GALETTE_TIMEOUT fonctionne toujours et gagne sur le paramètre en base.
Par défaut, Galette va créer une session avec la valeur par défaut pour sa durée (et il semble que les navigateurs agissent différemment dans ce cas). Définissez pref_session_timeout depuis la page configuration avancée pour la modifier ; la valeur est un nombre de secondes, et 0 signifie jusqu’à la fermeture du navigateur.
Si la constante GALETTE_TIMEOUT est toujours déclarée dans la configuration du comportement, elle a priorité et le paramètre apparaît comme verouillé. Retirez-le de ce fichier pour la gérer depuis la page.
Enregistrement des adresses IP derrière un proxy¶
Si votre instance de Galette se trouve derrière un proxy, l’adresse IP enregistrée dans l’historique sera celle du proxy, pas celle de l’utilisateur :(
Modifié dans la version 1.3.0: La profondeur proxy est un paramètre stocké dans la base de données, pref_x_forwarded_for_index, accessible depuis la page configuration avancée. La constante GALETTE_X_FORWARDED_FOR_INDEX fonctionne toujours et gagne sur le paramètre en base.
Pour corriger cela, définissez pref_x_forwarded_for_index sur la page configuration avancée. Chaque serveur proxy ajoute sa propre adresse à l’en-tête, et la valeur est la position à lire à partir de la fin de la liste, à partir de 1. Donc 1 est ce que vous voulez derrière un seul proxy inversé, et 0 - par défaut - désactive la recherche entièrement.
Avertissement
Pour des raisons de sécurité, laissez-le à 0 si votre instance n`est pas derrière un proxy ! N’importe qui pourrait autrement envoyer un en-tête X-Forwarded-For de leur cru pour se connecter à leur adresse.
Si la constante GALETTE_X_FORWARDED_FOR_INDEX est toujours déclarée dans la configuration de comportement, elle a priorité et le paramètre apparaît comme verouillé.
Statistiques externes¶
Nouveau dans la version 0.9.
De nombreux systèmes de statistiques requièrent un bloc Javascript pour fonctionne. Vous pouvez créer un fichier tracking.js dans le dossier webroot/themes/default, il sera inclus automatiquement.
Galette utilise Javascript pour fonctionner. Si le code ajouté dans votre fichier tracking.js est incorrect, cela peut casser Galette !
Exports CSV¶
Modifié dans la version 1.0.0: Vous pouvez configurer des exports paramétrés avec un fichier YAML au lieu d’un fichier XML.
Galette fournit un système d’exports CSV paramétrés. Un seul export paramétré est fourni, mais vous pouvez ajouter les vôtres dans le fichier config/exports.yaml.
Note
L’ancien fichier de configuration XML est toujours supporté ; si un doublon est trouvé, le fichier YAML prend le pas.
Examinons l’export paramétré « cotisations » :
- 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: \"
chaque entrée de tableau est un identifiant unique, en minuscules sans espaces or caractère spécial
name et description sont requis puisque utilisés pour afficher chaque export paramétré dans l’interface utilisateur
filename détermine le nom de fichier de sortie
query est la requête à exécuter, c’est requis. Il n’y a pas d’autre limite que celles du moteur de base de données, à la différence que vous ne pouvez envoyer aucun paramètre
headers gère les titres des colonnes :
comme dans l’exemple ci-dessous, un tableau des titres que vous aurez défini
si ce n’est pas présent, les noms des champs de Galette seront exportés. Vous pouvez utiliser des colonnes nommées dans votre requête SQL (
SELECT nom_adh AS "Column title" FROM ...)mettre à faux (
headers: false) pour désactiver la sortie des en-têtes de colonnes
separator est le séparateur CSV qui sera utilisé. Les valeurs possibles sont :
point-virgule (
;) - défautvirgule (
,)caractère de tabulation (
\t)
quote soit un guillemet double - défaut - soit un guillemet simple
pour désactiver un export, vous pouvez ajouter
inactive: true
Outils d’administration¶
Avertissement
Toutes les opérations administrateurs sont destructives, utilisez les avec parcimonie et assurez-vous de faire une sauvegarde de votre base de données auparavant !
Quelques outils d’administration sont fournis par galette, qui permettent de :
réinitialiser les contenus des courriels réinitialisera tous les contenus des courriels administratifs à leurs valeurs par défaut,
réinitialiser la configuration des champs va remette à zéro les champs du cœur à leurs valeurs par défaut ; Cela n’implique pas les champs dynamiques,
réinitialiser les modèles PDF réinitialisera les modèles PDF à leurs valeurs par défaut,
générer des login et mot de passe vides ces informations sont requises pour améliorer la sécurité, mais elles sont parfois manquantes (si vous importez un CSV par exemple).
Correction des formats de dates des champs dynamiques convertira champs dynamiques date au nouveau format (voir champs dynamiques).
Configuration avancée¶
Nouveau dans la version 1.3.0.
Le formulaire des préférences ne montre qu’un ensemble de réglages. Le menu Configuration > Configuration avancée les liste toutes,une ligne par paramètre, y-compris ceux qui ne sont pas présent sur le formulaire et ceux qui ne peuvent être édités que par la modification d’un fichier PHP.
Avertissement
Cette page peut casser votre installation, soyez très prudent. Les valeurs sont vérifiées, mais un réglage parfaitement valide peut toujours être incorrect pour votre instance, et rien ne vous demande de confirmer avant de le stocker.
Seul le super administrateur peut afficher la page, et son mot de passe est demandé à nouveau avant qu’elle ne s’affiche. La confirmation est conservée pendant quinze minutes ; après cela, ou après un nouveau login, il est demandé de nouveau.
Les paramètres sont sauvegardés un à la fois : chaque ligne a son propre bouton Enregistrer, et un bouton Remise à zéro apparaît dès que la valeur diffère de celle avec laquelle Galette est livrée. Rien n’est soumis pour toute la page, donc une erreur sur une ligne n’en affectera pas d’autres.
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.
Chaque ligne comporte un statut, également rappelé dans la légende de la page :
par défaut : jamais changé, la valeur que Galette embarque,
modifié : modifié par rapport au défaut, ici ou à partir du formulaire de paramètres. Il peut être réinitialisé,
lecture seule : Galette maintient cette valeur elle-même, comme un identifiant généré ou une date qu’elle enregistre. Indiqué pour information seulement,
secret : mot de passe ou jeton. Sa valeur n’est jamais affichée, juste le fait qu’elle soit définie, et est modifiée à partir du formulaire des préférences,
verrouillé : une constante déclarée dans behavior.inc.php a préséance sur la valeur stockée. Retirez-le de ce fichier pour gérer le réglage d’ici,
inconnu : une ligne trouvée dans la base de données que Galette ne décrit pas. Il peut venir d’une version plus ancienne ou d’un plugin. Il est affiché, jamais édité.
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 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.
Modes de galette¶
Plusieurs modes sont fournis dans Galette vous pouvez configurer avec la cnstante GALETTE_MODE (voir la configuration du comportement de Galette). Cette directive peut prendre les valeurs suivantes :
PROD: mode production (aucune instance de production ne devrait être sur un autre mode). C’est le mode par défaut pour les versions, mais il peut changer sur la branche de développement.DEMO: mode démonstration, le même quePRODmais avec certaines fonctionnalités désactivées comme l’envoi de courriels, la modification des informations du super administrateur, …TEST: réservé aux tests unitaires.MAINT: mode maintenance. Seul le super admin pourra se connecter.
Déboguer Galette¶
Nouveau dans la version 1.1.0.
Une constante dédiée nommée GALETTE_DEBUG peut-être utilisée pour activer le mode déboguage. Avec ce mode actif :
les parties non terminées ou instables seront activées,
certaines données ne seront pas stockées en session,
le niveau de verbosité des logs est défini à
DEBUG,les nouvelles ne seront pas mises en cache,
la vérification de la version de la base de données ne sera pas effectuée.
Configuration du comportement¶
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.
Par exemple :
<?php
define('GALETTE_DEBUG', true);
Modifié dans la version 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: activer le mode debug, voir Galette debug,GALETTE_MODEmode de l’instance, : voir les modes de Galette ;GALETTE_LOG_LVL: verbosity of the logs, as an Analog level. Defaults toWARNING, orDEBUGin debug mode,GALETTE_SQL_DEBUG: écris chaque requête SQL dansdata/logs/galette_sql.log. La seule existence de la constante compte, la définir àfalseactive le dump,GALETTE_FEATURE_FLAGS: fonctionnalités de développement à activer, en tableau. Applicable en mode debug uniquement.
Paramètres qui ont été déplacés¶
Nouveau dans la version 1.3.0: Three settings that used to be declared here are now stored in database, and edited from the advanced configuration page:
GALETTE_URIest devenupref_galette_url,GALETTE_X_FORWARDED_FOR_INDEXest devenupref_x_forwarded_for_index, voir log des adresses IP derrière un proxy,GALETTE_TIMEOUTest devenupref_session_timeout.
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.
Note
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.