Galette's documentation¶
Galette is a Free/Libre Open Source membership management web application dedicated towards non profit organizations.
Installation manual¶
Galette installation is quite simple, really :) Just a few graphical steps to follow once the prerequisites are met.
First, download latest Galette release from official repository:
Then, uncompress the archive. If you are running Windows, you will have to install a file archiver software supporting the TAR archive format, such as 7zip. If you are using Linux, run the following commands (adapt the version if needed):
$ cd /var/www/html/
$ wget https://download.tuxfamily.org/galette/galette-0.9.6.1.tar.bz2
$ tar xjvf galette-0.9.6.1.tar.bz2
The current stable version of Galette is 0.9.6.1. A nightly archive is build each night from the development branch, and you can also retrieve Galette development version.
Alternatively, Hiob has created a community repository to provide Galette as a Docker image.
Prerequisites and hosting¶
To install Galette, you will need to meet the following requirements :
- a web server (like Apache),
- PHP 7.2 or more recent,
- gd PHP module,
- PDO module and mysql ou postgresql for PDO,
- curl PHP module,
- intl PHP module,
- SSL support,
- gettext PHP module (optional).
- A database server, MariaDB (or MySQL) 5.5 minimum, or PostgreSQL 9.1 minimum.
Galette is tested continuously with recent versions of these components. If you encounter issues with a recent version, please let us know ;)
Galette does not work on the following hostings:
- Free,
- Olympe Networks.
Preparation¶
You have to follow some preparation steps for Galette installation. The way to go differs on what you want to achieve.
File permissions¶
Warning
A commonly used hack is to give all rights to everyone recursively on the directory (chmod 777
). This is a very very bad idea from a security point of view. Please do not use that hack, you've been warned ;)
Some Galette directories need specific rights. The application will need to write in some of them, you have to ensure it will be possible. Here are directories that need a write access:
config [1],
data/attachments,
data/cache,
data/exports,
data/files,
data/imports,
data/logs,
data/photos,
data/tempimages,
data/templates_c
[1] | write access on config directory is only needed for Galette installation, we advice you to remove the write access once Galette has been installed :) |
Web server directory exposition¶
New in version 0.9.
Galette installation may consists in copying a complete directory to a location the web server can read. This method may work, but this exposes from the web files and directories that should not be available this way.
It is possible to limit that by exposing only the webroot
directory. All other directories are more safe: it is not possible to reach them from the web server!
Warning
Exposing only webroot
directory is the recommended, and only secured way.
Using a subdomain¶
Here is a virtual host configuration example, including the hide of index.php:
<VirtualHost *:80>
ServerName galette.localhost
#https - add *:443 in the <VirtualHost>
#SSLEngine on
#SSLProtocol all -SSLv2 -SSLv3
#Header always add Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
#SSLCertificateFile /etc/pki/tls/certs/galette.localhost.crt
#SSLCertificateChainFile /etc/pki/tls/certs/galette.localhost.chain.crt
#SSLCertificateKeyFile /etc/pki/tls/private/galette.localhost.key
DocumentRoot /var/www/galette/galette/webroot/
<Directory /var/www/galette/galette/webroot/>
RewriteEngine On
#You may need to set RewriteBase if you setup
#rewritting in a .htaccess file for example.
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
Nginx would be:
server {
#http
listen 80;
listen [::]:80;
# https
#listen 443 ssl http2;
#listen [::]:443 ssl http2;
#ssl_certificate /etc/ssl/certs/galette.localhost.pem;
#ssl_certificate_key /etc/ssl/private/galette.localhost.key;
server_name galette.localhost;
root /var/www/galette/galette/webroot;
index index.html index.php;
location / {
try_files $uri $uri/ @galette;
}
location @galette {
rewrite ^(.*)$ /index.php last;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# You may have to adapt this path, depending on your distribution.
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
location ~ /(data|config|lib)/ {
deny all;
}
}
Using an alias¶
An alternative secured configuration, if you do not have a specific subdomain for Galette is to use an alias
in your existing virtual host:
<VirtualHost *:80>
ServerName mydomain.tld
DocumentRoot /var/www/mydomain.tld
Alias /mygalette/ /var/www/galette/galette/webroot/
<Directory /var/www/galette/galette/webroot/>
RewriteEngine On
#You need to set RewriteBase to Alias path
RewriteBase /mygalette/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
Do not forget with that solution you have to setup correctly your RewriteBase
directive.
Linux/Unix¶
Installing Galette on Linux implies you have an access to the terminal on the server and required ACLs on directories.
As an example, on Fedora, you will run (as root):
# cd /var/www/galette/
# chown -R apache:apache config data
Under Debian, we'll replace apache:apache
with www-data:www-data
.
On SELinux enabled systems, we'll also add:
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/galette/config(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/galette/data(/.*)?'
# restorecon -R -v /var/www/html/galette/
You will also have to authorize webserver to connect to the network, with a SELinux boolean:
# setsebool httpd_can_network_connect on
FTP¶
Warning
Some archive or FTP softwares may corrupt files... It is strongly adviced if you use windows that you use 7zip to uncompress and FileZilla for TFP transferts.
Once source code has been retrived locally, use tar xjvf galette.tar.bz2
command under Linux/Unix/MacOS or a graphical tool under Windows.
Just copy the uncompressed directory obtained, and all its sub directories and files, with your FTP client.

Specific cases¶
Ionos¶
If you're hosted on Ionos; and want to use a specific subdomain for Galette, you must create your subdomain from their UI, and make it points to the webroot
directory. You also have to edit the .htaccess
file it contains, and uncomment the RewriteBase /
directive.
OVH¶
This hosting compay offers to change PHP version you use from your customer account.
Additionnal information are available at: https://docs.ovh.com/fr/fr/web/hosting/configurer-le-php-sur-son-hebergement-web-mutu-2014/
Warning
Many users have display images or emargement list issues on OVH hosts. The solution to this issue is to create a .ovhconfig
file at your hosting root with the following contents:
app.engine=phpcgi
Nginx¶
Nginx webserver configuration is different from Apache one (see Nginx documentation for a more complete explanation).
So you have to convert restriction access files in Nginx configuration, as for example:
location ~ /(data|config|lib)/ {
deny all;
}
Windows¶
Installation described here rely on XAMPP; other installation methods exist but are not listed here.
First of all, download XAMPP on your computer. Let's install it under C:\xampp
.

Launch the xampp-control
executable (you can find it in C:\xampp
), so you can start Apache and MySQL services.

Once those steps done, download galette and move it to C:\wampp\htdocs\galette
, web application will be available from http://127.0.0.1/galette/. Just visit this URL so the installation process begin.
Note
Enabling PHP modules under XAMPP is done in xampp/php/php.ini
. Most of the required extensions are already present, but commented (line begins with a ";"), just uncomment them and restart XAMPP.
openssl extension is missing in the file, to activate it just add the following to your php.ini: extension=php_openssl.dll
التنصيب¶
Galette installation is a web based process (once preparation steps are done). Go to http://localhost/galette. Update process is documented separately.
You should rely on latest stable release, but it is also possible (if your know what you are doing, this is more complex for non developers!) grab it from source code
Checks¶
Please check the following if you want Galette to install without problems:
- your PHP version is high enough,
- PHP timezone is set (required since PHP 5.3),
- all required PHP extensions are installed and loaded,
- some directories requires write access.
If one of the mandatory extensions is missing or if the timezone is not set, please ask you system administrator. Galette does not require any "exotic" extension.
The very first installation step will check those points, and will warn you if something gets wrong.

If all the installation steps has been properly followed, directories ACLs should be correct, please refer to files ACLs section and refresh page in your browser.
Installation type¶
Next screen ask you for installation type. You'll choose beetween "New installation" or "Update". Several of the steps that will follow will be specific to the type you will choose here.

قاعدة البيانات¶
First of all, make sure the database exists, and prepare all required information:
- host name
- database user name
- database user password
- database name
- database type (MariaDB/MySQL or PostgreSQL)
Create database¶
Note
Never use database root user!
For security reasons, it is stongly advised to rely on a specific user for Galette database, and give him only requested access on the single Galette database.
For the example, we will use a database named mygalette with a user mygaletteuser with mypass as password.
MariaDB
$ mysql -u root -p mysql> CREATE DATABASE mygalette; mysql> GRANT ALL ON magalette.* to ->'mygaletteuser'@'localhost' IDENTIFIED BY 'mypass';
PostgreSQL
$ su - # su - postgres $ createuser -P mygaletteuser $ createdb -O mygaletteuser mygalette
Those commands may vary, please refer to MariaDB or PostgreSQL documentations, or use a graphical tool:
- phpMyAdmin for MariaDB ;
- phpPgAdmin or PgAdmin for PostgreSQL.
Database parameters¶
On that screen, select your database type, and enter hostname, database name, user name and password. Tables prefix is usefull if you do not have a Galette dedicated database, default proposal should be ok but you can choose what you want :)

This step is the same for installation and update processes. If a configuration file already exists, Galette will grab the information to pre fill the form (not for the password). When upgrading, double check the prefix fit the existing one.
Checks¶
Next screen will try to connect to the database using provided elements, than it will check database rights are correct (user can add/remove/alter tables, and can add/remove/edit rows, ...).

If there is a connexion error, go back to previous step, fix your setup and try again. If you see rights issues, get them fixed on your server and use the "Refresh" button.
Create tables¶
Note
Those instructions are only for installation. When updating, a database already exists.
If a connection can be established to the database, and all is correct; installer will now create the tables, and insert default values. You can show created tables from any graphical tool or in command line:
MariaDB:
mysql> use mygalette; mysql> show tables;
PostgreSQL:
postgres=# \c mygalette postgres=# \dt

Admin parameters¶
Note
This screen is displayed from installation only. When updating, super admin user is already existing.
Next screen will ask you for information to create the Galette super admin user. Using Galette, you can set some members as administrators, but the one created at installation time is not a member, cannot be removed, and has some extra rights.

Initialize¶
The last step will write the configuration file if needed, and initialyse some values in your fresh database, as exemple:
- add Galette default preferences
- add default contributions and status types,
- fields configuration and permissions,
- texts for administrative emails,
- members default titles,
- default PDF models
- ...
When updating, only the missing preferences and the new default data if any will be handled.
Installation end¶
Installation is now finished, congratulations!

You can now login to Galette, using super admin information you used at installation time. You can now go to the Galette user manual.

Happy Galette!
Post installation¶
Various tasks¶
One Galette properly installed, you still have one thing to do:
- remove write access to the
config
directory.
Configure paths¶
Some galette paths may be changed from a configuration parameter, such as exports, photos, etc
By default, Galette provides all those directories inside installation directory. That way, if installation is located at /var/www/galette
, exports will be in /var/www/galette/data/exports
, photos in /var/www/galette/data/photos/
, and so on.
Default configuration is done in config/paths.inc.php
file that should not be changed.
Instead, you may override some or all of the values in a config/local_paths.inc.php
, with paths you want declared as PHP constants. For exemple, to define a different path for photos:
<?php define('GALETTE_PHOTOS_PATH', '/path/to/photos_dir/'); ?>
All paths that originally resides in data
directory must stay accessible read/write for the web server. All other directories should be set as read only, the web server should not have to write in them. Here is the complete list:
- GALETTE_CONFIG_PATH : path to Galette configuration files,
- GALETTE_DATA_PATH : path to Galette data directory (since 0.8),
- GALETTE_LOGS_PATH : Galette logs path, change it as you want,
- GALETTE_COMPILE_DIR : path for Smarty templating system compilation,
- GALETTE_CACHE_DIR : caching directory for a few cases,
- GALETTE_EXPORTS_PATH : path to the directory to store CSV exports,
- GALETTE_IMPORTS_PATH : path to the directory that contains CSV files to import,
- GALETTE_ATTACHMENTS_PATH : path to attached documents in mailing,
- GALETTE_FILES_PATH : path to the dynamic files directory storage (from dynamic fields),
- GALETTE_PHOTOS_PATH : path to store members photos and logos.
Data security¶
You and your members will login to Galette, using a login and a password. You must be aware that those information are transmitted as is to the server; and someone may intercept and read them sniffing your exchanges.
This problem is recurrent hen you have to send data over the internet, and this is why you must check if you are on a HTTPS secured page (your browser will tell you), when you enter any sensitive information such as login, passwords, credit card number, ...
And this is the same for Galette, you can use it walong with SSL, no problem. All data that will be transmitted to the server will be a bit more confident and secured :)
Updating¶
If you are using an old Galette release, it's time to update.
Warning
An update is often not something lite, your data may be modified. So, please make sure you made a backup of your current database, or you may lost all or a part of your data.
A backup of all Galette files is also recommended it would be helpfull if you find a bug that prevent you to migrate and have to restore an old version;
Note
Migrating a pre 0.7 release is theorically supported, but this is not tested (those releases are more than 10 years old!), and it is possible your attempt fail.
Nothing is really made to make such a time travel ;) If this is your case, you should first migrate to Galette 0.7.8; and do another migration to the latest version.
Updating files¶
First, logout from your instance, and make sure to use a maintenance mode to prevent other users to reach the instance.
Then, download latest Galette version and replace the files. For more information on files installation, refer to the prepare installation section.
Some directories keep data and/or configurations and should be copied back to the new instance:
config/config.inc.php
. If this file is missing, Galette update process will ask you the information and create a new one. If the file is present, it will be used to fill information excepted database password. It is the only file that can be edited during update process,data/photos
your members photos and logos,data/exports
contains CSv exports,data/files
contains files from dynamic fields of type file,data/attachments
contains mailing attached documents.plugins
your current plugins. It is a good idea to check if new plugins versions are available ;)
Once files are updated, go to your Galette instance. It will ask you if needed to proceed to the update of your database.
If so, visit the install URL /installer.php
(ex: https://your.domain.name/installer.php) and choose Update when your are asked for the type of installation.
If it asks you nothing you're just done already ;)
Updating database¶
Warning
Installing a new Galette release does not strictly means a database update will be required! Sometimes, only updating the files will be enough; even for a major release.
Galette will tell you if an update is needed, no need to "force" an update.
Update process is very similar to Galette installation process, with some steps that change. All is motly transparent, information are provided on each step.
Database information¶
At "Installation type" step, you'll have to choose "update". Database information page will be pre filled with existing information, excepting password. Other information should not be changed.
Note
Note it is important that database name and prefixed used in previous database correspond to configuration.
Previous version selection¶
Next step is the choice of the previous Galette version. Installation process will try to "guess" what version it as, and will select this one per default (the one that will be displayed as bold text).

If you try to update but your database version seems already correct, you will be warned. No entry will be displayed as bold text, please make sure to choose the right one:

Once update scripts have run, a summary will be displayed.
User manual¶
Welcome to Galette user manual :) Following pages will guide you into Galette screens and features to manage your association.
Just after login screen, you will reach Galette dashboard:

Main dashboard part propose you a quick access to main Galette features :)
Generalities¶
Rights¶
We can see several rights level in Galette, allowing access to different parts and features of the application. Levels are:
- super administrator is a special user (the only one that is not a member) created at installation,
- administrators are members for who the "administrator" checkbox has been checked,
- staff members have a specific status (President, Treasurer, Secretary, ...),
- groups managers have only rights on the groups they manage,
- up to date members are members whose account are active, and whose subscription are up to date,
- members are members whose account is inactive or whose subscriptions are not up to date,
- simple visitors.
Staff members, administrators as well as the super administrator can create, edit and remove members, contributions, transactions, send emailings, ...
Administrators have also access to the application configuration, excepted super admin information.
The super administrator has a full access to the application, but not to all features. Indeed, this is not a member account, and it cannot have some of required informations. He of course can change its own login informations from application preferences.
Members can change their own informations, and can see their contributions and transactions (as read only).
Visitors can - if this is parameted in preferences - access to public pages (trombinoscope, public members list) but can also register :)
Group managers¶
With the stricter configuration, groups managers can show and search on members of their groups, and see accessible data for members. On members and cards, you can configure which fields are accessible.
From the preferences, you can also give groups managers extra rights, like editing or creating members.
Management rules¶
Due dates are calculated by day. If a member pay into before the end of his membership, duration of this membership will be added to remaining days. Example:
Roger subscribed on 2004-01-01 for one year,if he pays into for a year on 2004-12-13,his due date will become 2006-01-01.No day will be forget.
At the contrary, if a member renew his membership late, we evaluate again his membership duration:
Roger subscribed on 2004-01-01 for one year,if he pays into for a year on 2006-01-13,his due date will become 2006-01-13.
He is not an up to date member from 2006-01-01 to 2006-01-13... On paper at least :)
Those rules are flexible because you can freely change membership dates on contributions, if you have rights to add or update them. We can imagine an association who stores all contributions on the first day of the next month (offering its members a longer membership time).
Interface¶
We do our best for the Galette interface to be:
- logical and consistent (you will always find icons at familiar places),
- web standards compliant (HTML and CSS valid),
- HTML semantic respectful,
- working even if Javascript is disabled (as possible, but really you should enable Javascript to really take advantage of Galette),
- accessible (without any WCAG, WAI or equivalent tests run).
If you find places where one of those points is incorrect, do not hesitate to tell us on the tracker or on the mailing list!
New in version 0.9.
Galette provide a "mobile compatible" UI, but it has not been designed for that. Therefore, it may be difficult or worst to use; in this case we do our best, but all devices cannot be tested!
Mobile display is currently a plus and not a fundation of the UI. Improvements can be done, this will just not be a priority. Note that we have in mind to rework the whole UI, with a better support.
Telemetry¶
New in version 0.9.
Galette propose to send some telemetry informations:
- entirely anonymous: no information about your association or your members is sent,
- deliberately blurred: we retrieve an estimation of members count, never a real count,
- sent by a secured way (HTTPS) on https://telemetry.galette.eu.
Sending telemetry data is a manual process, nothing will be send until you explicitely ask it. With those informations, we can have a better knwownledge of different usages of Galette, their number of member or contributions, plugins used, ...
Those informations are useful for the project development and promotion. When you send those informations, you can review data that would be sent.

After data has been sent once, Galette will propose to send an update from time to time. You can also send them from Galette preferences.

It is also possible to register your association on the website, of course, not anonymously, but it is not possible to link telemetry and registration. New references are moderated.
You can update your registration informations from Galette preferences. The form will be blank (because it is not possible to retrieve data you've sent) but all data will be updated because your instance has a unique registration identifier designed for that.

A new panel has been added on Galette dashboard to send telemetry informations and/or register your instance. Once those steps has been completed, the panel will dissapear. You aslo can choose to just disable it.

إدارة الأعضاء¶
One of the first contact with Galette interface after the installation, login and dashboard will be members list, main part of the system. Of course, this list will be empty for now :)
Note
You can use the "Generate fake data" from the "Configuration" menu to add demonstration data in your instance.
Let's start by creating a new member. As everywhere in Galette, mandatory fields are displayed with a red border; all other are optionnal. Different parts of the page (Identity, Contact informations, Galette related data and maybe Dynamic fields) can be retracted clicking on their respective title.


On date fields, you can access a calendar:

When storing a member (or any other object in Galette), page will be reloaded with all informations you've entered (excepting passwords).
قائمة الأعضاء¶
Members list allows you to:
- filter and order members,
- display members card,
- removals,
- send mailings,
- generate PDF labels,
- generate PDF emargement lists,
- generate PDF members cards,
- CSV exports,
- mass changes.
Each possible action per member is grouped at the end of the line, actions designed to be applied on a selection are at the bottom of the list. Plugins may add entries in both cases.
Filter and select members¶
Filtering members list is documented in search section. All possibilities can be used with actions on selection.
Mass changes¶
New in version 0.9.1.
Members selected in list can be edited (partially) at once.

Only fields with a checked checkbox at the beginning of the line will be changed. A summary will be displayed.

Ordering¶
It is possible to order members list on following fields:
- name,
- nickname,
- status,
- contribution status,
- modification date.
Most of the times, the result is transparent. Just note ordering on status will use status priority and ordering on contribution status will use creation date, contribution exemption and due date;
Configure CSV fields¶
Per default, CSV export for a members selection will provide same fields as the ones that are displayed on screen. It is possible to change this behavior specifiying yourself which fields must be exported in the galette/config/local_export_fields.inc.php
file. If for example you only want identifier, first and last member names, the content of the file will be:
<?php
$fields = array(
'id_adh', 'nom_adh', 'prenom_adh'
);
E-Mailing¶
Warning
Mailings in Galette are designed to work from the members list.
Direct mailing creation will work without problems, but members selection is harder.
From Galette, you can send mailings to a selection of members. Each sent mailing is stored in order to be reused, so you can select a stored mailing to be used as a template, retrieving selected members list, mailing subject and contents.
To send a new mailing, select members from the list and then use the Send an email button at the bottom of the list. If some of selected members does not have an email address, Galette will propose you to print corresponding labels.

Note
Selecting members in the list must be done on one page only. Filtering features, as well as the possibility to display all members will be useful ;)
New in version 0.9.1.
You can choose a sender for each mailing:
- from Galette preferences (default value): this will use informations stored in preferences,
- current logged-in user: will use the name and the email of the current logged-in user (not available for super admin),
- other: you can set any name and email address you want.

Once the subject has been filled, you can work on the contents. You can send email in text only, or in HTML (keep in mind sending HTML messages by mail is often not the way to go). A simple HTML WYSIWYG editor is provided.
Once the HTML editor is enabled, the checkbox to handle HTML tags is automatically checked, remember to check the box if you do not use the editor but want to send HTML!
Warning
Even if Galette is able to send HTML emails, this is discouraged. Messages lenght will be way larger (for almost nothing), and some (like me!) read their emails as text only. That is why Galette will always provide a text version of HTML emails.
It is also possible to add attachements, just click on the Browse button in that attachements section. If your browser is compatible, you can add several files at once (using Shift and Ctrl keys). All attachements are stored on disk, under a directory named with the mailing identifier (automatically defined from database).
Preview button let you preview your message before sending it.

Any started emailings will be stored in your session to be retrieved in the future. An icon will be displayed in pages titles when a mailing is progress and will provide a link to go to it.
If you want, you can cancel this mailing using the Cancel mailing button, it will be deleted from your session. If you want to store it for a longer time, you can add the Save button. It will then be stored in the mailings list, and you will be able to grab it later.
Mailings history¶
Note
When you start a mailing, it is stored into your session. Session ends when users log out, or on a server defined timeout. Mailing history stores the mailing in the database, this ensure it will always be available in the future.
Every sent mailing is stored into the database, and can be used as a template to write a new one. In this case, a new mailing will be created using informations from the history, and the original one will be kept as is.
Mailings can be stored before they are sent. In this case, it is possible to continue it later. When you use history on a draft mailing, original entry will be replaced on sending.
When you use an existing history entry, here are the informations that will be used:
- recipients,
- attachements,
- subject,
- message,
- html/text flag.
CSV imports¶
It is possible to import member data from a predefined model. A default model is provided, but you can configure it to suits your needs, using the Imports menu entry.
Model¶
Import model defines fields and their order in a CSV file. When importing, current model will be used to check your CSV file intergity.
To configure the model, click on the Configure button from the UI.

If proposed model is not ok for you, click on Edit model and choose your fields:

Once you have selected your fields, click on the Store new model button.
When in the current model tab, you can download an empty model from the Generate an empty CSV file button. Of course, you can change model if you want, or remove it to get the default model back.
Import¶
Once you have retrieved and fill the empty file, you have to send it using the form Send a new file. At this step, Galette will check your file extension is csv
(or txt
) and it size does not exceed maximum upload file size (2Mio per default in PHP).
Note
If you want to import a huge file, you can put it from your FTP client in the galette/data/imports
directory, or split it into several smaller files you can import one by one.
Sent files are listed in the Existing files section. You can show, remove or import it:

The dry run checkbox (checked per default) is designed to test your file data are valid (mandatory fields filled, data formatting is correct, ...) without storing anything in the database.
When you import a CSV file, if one line is incorrect, previous ones may be stored in the database already; so it is advised to use the dry-run before to get error fixed.
You will have error messages than something went wrong (in dry-run mode or not):
Note
You may see mandatory missing fields even if import is ok. This may happen when all the fields you set as required in Galette configuration are not listed in your import model.
Links beetween members¶
New in version 0.8.2.
You can link several members to a "parent" one. This may be used to store families for exemple, or members of a same compagny. You can access children members from the parent, and parent from the children.
You can add as many child as you want for a member, but a child cannot become a parent.
The other interesting point of this system is you can retrieve some informations from the parent when sending mailings or labels. In the children members, email and postal addresses automatically become optionnal, whatever the configuration says. If any of those informations is missing, it will be retrieved from the parent.
Note
Members without email adresses cannot use the "retrieve password" feature. This does not affect the unicity email constraint in the database.
Impersonnating¶
New in version 0.9.
Some issues may be related to a particular account, because of its ACLs, groups, ... In this case, it is unfortuntely frequent to see some credentials sent by insecure emails; which should really be avoid.
As super admininistrator user, you wil see an extra icon in the members list, allowing you to log in as selected user without his credentials. Once you've impersonnated the user, you can reproduce the issue and fix it or get all required informations to report the issue upstream.
بحث¶
Every executed search will be conserved during your session. You can change a parameter or else, and come back to the list, you will find all your previous search parameters.
Filtering members list¶
The form at the top of the members list allow you to make some search among members. The advanced search provides more cireria and possibilities.

You can filter on:
- a full text search on one of the following informations:
- name (first name, last name and nickname),
- company name,
- address (address, address continuation, zipcode, town and country),
- email and instant messaging addresses (email address, website URL, and all direct messenging addresses),
- job position,
- informations (public informations and - for administrators only - pivate informations).
- a member status:
- all members,
- up to date members,
- closes expiries (members whose membership expires in 30 days)
- latecomers,
- members whose never had a membership,
- staff members,
- administrators.
- a status of the account:
- all accounts,
- active accounts,
- inactive accounts.
- group affiliation,
- presence or absence of an email address.
All filters can be combined, giving you the ability to search among your active members whose have an email address and whose name contains a "a" ;)
البحث المتقدم¶
Advanced search can be found in the main menu and propose an certain amount of fields types, related to members or their membership. The screen is separated into four parts (you can reduce individually):
- simple search which recall all filters present in the members list,
- advanced search which proposes extra fields on members that can be of use,
- search in contributions allowing search on members contributions,
- free search which allow to select any member field possible, including dynamic fields, and which will automatically adapt to selected field. You can add and remove lines to refine search.

عمليات البحث المحفوظة¶
New in version 0.9.3.
Every search on members can be stored (with a name) in order to be executed again later. They are accessible only for their author.
After you proceed a search ("simple" or "advanced"), just click on the "Save" button, and pick up a name.

You can find saved searches in the list:

From this list, you will be able to remove or execute again searches, and also see a detail of used criteria.
إدارة الإشتراكات¶
Galette allows you to manage contributions sent from your members. There are several types of contributions, and transactions are also proposed.
A transaction? What's that? Well, a simple example is better than a long text... We will use three members of a same association: Marc, Julie and Zac. Each one is member, independently of which group or else they are affected to, that does not matters.
Zac send you a check to pay his own membership, Marc and Julie ones and also a donation to the association. In this case, Zac's check will be handled in a transaction attached to his account, and which will be distributed in four contributions, each one attached to corresponding member.
Another example: Pierre pays his own contribution, his transaction will only contains his membership and will be distributed in only one contribution.
If Pierre, Zac, Julie or Marc are late, you can send them a reminder :p
الإشتراكات¶
A contribution can be a membership, a donation, a gift, ... Galette allows you to store all of that for each member.
نوع الإشتراك¶
Contributions are entirely configurable. There are two main types of contributions in Galette:
- the ones that extends a membership (a montly or yearly membership for example),
- the ones that do not extends membership, like donations.
Contribution types management allows you to define a label, and if it extends the memebrship or not.
المفكرات¶
Emails models to remind due dates are available from the emails contents ("Impending due date" and "Late due date").
The reminder button from the dashboard or the reminders entry of the menu will give you access to the reminders management interface.

Two categories can be selected:
- members whose due date is close,
- members whose due date is in the past.
Per default (this is currently not configurable), reminders are sent one month, then seven days before the due date; and then one and two months after the due date expiration. Reminders are stored in the database, if you never sent any reminder, all matching members will be reminded.
Galette will tell you if some members do not have an email address, you can print labels for those ones.
Finally, it is possible to automate reminders with a cron task which will call the galette/reminder.php
file. If you want reminders to be sent every day at 8:30 AM, then you can add a /etc/cron.d/galette
file (on Fedora and similar, look at your system documentation to know how to add a crontab) with the following content:
30 8 * * * apache /usr/bin/php -f /var/www/galette/reminder.php
Invoices and receipts¶
In the contributions list, there is a PDF icon which is designed to generate invoice ou receipt for one contribution.
You can customize the PDF using PDF models.
التعاملات¶
As seen in the example from this chapter introduction, a transaction is a global payment for a member.
Only a few informations are required to add a new transaction:
- a description,
- the originator,
- the date (current date per default),
- the amount.

Each transaction is dispatched among contributions, in the limit of the transaction amount. A transaction has itself no effect on members due dates.

After adding a new transaction, you will be redirected to a new contribution creation. If this new contribution does not dispatch the remaning amount of the transaction, galette will propose you to create another one. Per default, the amount of a new contribution from a transaction will be the remaning amount of the transaction.

Of course, it is also possible to edit a transaction:

You can also attach an existing contribution instead of creating a new one.

Members selection¶
The dropdown list to choose a member is available from contributions and transactions (as well as from several plugins) displays only a few members, for performances reasons.
You can display more members using the "Load following memebrs..." link, and you can also try to search entering any text (this will search in first name, last name and identifiers).
Fields Configuration¶
List fields¶
New in version 0.9.4.
You can choose which fields will appears on Galette members list and the order they will appear with a drag & drop interface. Related access rights can be set from core fields configuration (see below).
Note
Two fields are mandatory and cannot be moved: member number and name.
It is not possible to set access rights on id column, and parent will be accessible for staff members only.

Mandatory fields and access rights¶
When you create or edit a member, some fields are mandatory. Default configuration may not suit your needs, but you can configure some elements easily ;)
From the Configuration, Core fields menu, you will get access to all fields available for members, and choose for each one if it is mandatory or not, as well as associated access rights:
- inaccessible will make the field inaccessible for everyone,
- administrator will make the field readable and writeable for administrators only,
- staff members will make the field readable and writable for staff members and administrators,
- groups managers will make the field readable and writable for groups managers on the memebrs of groups they own, and for staff memebrs and administrators,
- read/write will make the field readable and writeable for member, groups managers, staff members and administrators,
- read only will make the field read only for the members, but writable for groups managers, staff members and administrators.

حقول ديناميكية¶
Galette comes per default with many fields for members, contributions and transactions. Some of them will be useless, but you may need fields that does not exists...
In this case, that is quite simple : just add a new dynamic field with a label, define if it is mandatory or not, and that's all : Galette will handle them automatically, just show the result ;)
There are several types of dynamic fields:
- separator: just a label, like a part title,
- free text: multiline text area,
- single line: one line text,
- choice: a dropdown list,
- date: a date field with a selector,
- boolean: a checkbox,
- file: add files.
While creating a new field (or editing an existing one); you also can:
- mark it as required,
- define access rights, the same as for core fields,
- add extra information to help users.

Some field types like separators, dates and booleans, does not need any extra information; for others:
- free text:
- width: define number of columns,
- height: define number of rows.
- single line:
- width: field width,
- size: number of characters,
- repeat: number of possible ocurences.
- choice:
- values: possible values for the dropdown.
- file:
- size: maximum file size, in Kio (this size is limited to the one for the PHP configuration).
Labels translation¶
Galette handle several languages, but when you add a new dynamic field, there is only one value possible. Galette proposes an interface to translate those labels in each available language.
Note that each new label will be added with current Galette lang.
Emails contents¶
Depending on your configuration (see preferences), administrative emails cans be sent to users and/or administrators, when you add a new member or a new contribution, or from the lost password feature for example.
Defaults are provided, but you can change them.
Note
It is important to note that those textes contain variables - of the {VARIABLE}
form - that will be replaced automatically on sending. Be carefull to not forget any of those, that could cause sending issues.

An email will be send to member when:
- he self subscribes. This mail contains authentication informations,
- his card is added or edited by someone else (if the corresponding box is checked),
- he uses lost password feature,
- a new contribution is attache to his account (if the corresponding box is checked).
An email will be send to administrators when:
- a new member is added or self subscribes,
- a new contribution is attached to his account.
Of course, emails will be sent ony if Galette configuration allows it (and the setup is correct). Sending messages to administrators is configured globally from the preferences, while sending emails to members is conditionned on a checkbox from the user interface, excepting for self subscription messages that will always be send.
Several variables - automatically replaced on sending - are available for both subject and contents. Some of them may be used in all messages, but others will be only on some conditions. Refer to the inline help on Galette interface to know more.
PDF models¶
PDF models are provided for several outputs : an invoice model, a receipt model and a membership from model are currently available. All of them inherits from a Global model.

Models inheritance¶
The global model defines three distincts parts:
- header,
- footer,
- CSS styles.
Each model which inherits from Global will automatically obtain same header and footer except if the new model redefines them, in which case only specific values will be applied.
For CSS properties it is a bit different: Global model properties will always be applied, and specific model properties will be appended (jsut like real CSS stylesheets).
Generalities¶
In addition of header, footer and CSS styles, a model defines a title, a sub title and a body.
Each of those fields can take some replacement values, refer to the inline help from the user interface to get details. They also can contains internationnalized texts like _T("My text") that relies on Galette standard translation capacities.
Models rely on HTML and CSS styles, but keep in mind we are building a PDF file, and not displaying a page in a recent brower; there are many limitations.
Invoices and receipts¶
Invoice and receipt models are the same, excepting their titles.

As you can see in the above screenshot, invoice model does not define any header, footer or CSS styles, the ones form the Global model are used.
Membership form¶
It is a model that can be used to print a membership form. It can be empty (to print some of them for any event for example) or filled with one member informations.
Since there are many limitation, you may use the FullCard plugin that will replace this model. It is more complex to change, but you can do many more with it. You can also create your own plugin based on FullCard.
Galette preferences¶
You can configure several aspects of Galette from the preferences.
General¶
This tab defines some parameters related to your association:

- Name: name of the association,
- Description: a short description,
- Footer text: a text (HTML is allowed) to display in the footer of each page (to add a link to particular legal notices as example),
- Logo: set your own logo,
- Address,
- Zipcode,
- Town,
- Country,
- Postal address: choose which postal address will be used:
- either from the preferences to use the one entered in the form,
- either from a member to use address from a staff member,
- Website: website URL,
- Telemetry date: date on which telemetry infomations was sent,
- Registration date: date of registration of your Galette instance
Parameters¶
Galette related parameters:

- Default lang: default instance lang (can be changed many ways by the user),
- Lines / page: number of lines to display on lists for pagination,
- After member creation: defines action to execute after a member has been added:
- create a new contribution,
- create a new transaction,
- create another member,
- show member,
- go to members list,
- go to main page,
- Logging: handles internal history:
- Enabled,
- Disabled,
- Default membership status: the status to affect to all new created users (can be changed on creation form if current user have rights),
- Default account filter: default account filter to apply on members list,
- Default membership extension: membership extension in months,
- Beginning of membership: beginning date of the financial period,
- Public pages enabled: enable or disable public pages,
- Show public pages for: defines who can see public pages:
- Everyone, including simple visitors,
- Up to date members,
- Administrators and staff members,
- Self subscription enabled: enable or disable self subscription feature,
- Post new contribution script URI: URI of a script that will be called after a new contribution has been added. Several prefixes are handled:
- galette://: call a script provided by Galette that will be called with the HTTP POST method. Path must be relative to your Galette installation. For example, the URI for the
galette/post_contribution_test.php
example script would be galette://post_contribution_test.php. - get:// or post://: use HTTP GET or POST method to call a web address, prefix will be replaced with
http://
, - file://: call a file on the web server, full path must be provided. Destination script must be executable, and should define a shellbang if necessary. An email that contains contribution information and script return (if any) will be sent to the administrator if an error occurs. The behavior is the same as cron : if the script outputs something, a mail is sent.
- galette://: call a script provided by Galette that will be called with the HTTP POST method. Path must be relative to your Galette installation. For example, the URI for the
Warning
Using file://
method can be dangerous, Galette just call the provided script, usage and security of the script is under your own responsability.
- RSS feed URL: link to the RSS feed to display on dashboard,
- Galette base URL: Galette instance URL, if the one proposed is incorrect,
Warning
This URL should be changed only if there are issues, this may cause instability.
A contextual help is provided, check it for more information.
- Show identifiers: display database identifiers instead of simple counts on lists.
Rights¶
Define few extra rights:
- Can members create child? if you enable this settings, any logged in member can create another members that will be attached to him as children.
- Can group managers edit their groups? groups manager can edit their owned groups information (name, parent, order).
- Can group managers create members? groups managers can create members attached to their groups.
- Can group managers edit members? groups managers can edit member of their groups information.
- Can group managers send mailings? groups manager can send mailings.
- Can group managers do exports? groups managers cen export groups as PDF, generate attendance sheets, cards, labels and CSV exports for members of their groups.

E-Mail¶
Sending email parameters:

- Sender name: name of the sender,
- Sender email: email address of the sender,
- Reply-to email: reply email address. If empty, sender email will be used,
- Members administrator email: email address on which inscription notifications will be send, you can set several addresses separated with comas,
- Send emails to administrators: whether to send emails to administrators on subscription,
- Wrap text emails: automatically wraps long lines in emails. If you disable this options, make sure to wrap yourself,
- Activate HTML editor: activate HTML format when sending emails (discouraged),
- Emailing method: method used to send emails:
- Emailing disabled: no email will be send from Galette,
- PHP mail function: uses the PHP
mail()
fonctions and related parameters (recommended when possible), - Using a SMTP server: uses an external SMTP server to configure (will be slower than PHP
mail()
function), - Using GMail as SMTP: same as SMTP server, but GMail specific (will also be slower than PHP
mail()
function), - Using sendmail server: uses local server sendmail,
- Using qmail server: uses local server qmail,
- Mail signature: signature added to all sent emails. Available variables are displayed in the inline help from the application.
When using GMail as SMTP, you will have to configure user name and password to use.
SMTP configuration is a bit more complexe :
- SMTP server: server address, required,
- SMTP port: server port, required,
- Use SMTP authentication: if your server requires an authentication. In this case, you will also have to set username and password,
- Use TLS for SMTP: enable SSL support (always on for GMail),
- Allow unsecure TLS: on some cases, SSL certificate may be invalid (self signed for example).
The Test mail settings button will send a test message to the email currently stored as members administrator.
Labels¶

البطاقات¶

الحماية¶
New in version 0.9.4.
Warning
Complex password rules are not user friendly; but security is mainly never :)
Of course, all passwords should be as secure as possible, but this is especially true for all accounts that have privileges (staff, admin, super-admin); you may explain your users why this is important.
You can enforce some rules for members (and super-admin) passwords:
- minimum length (6 characters or more),
- minimum "strength",
- blacklist,
- no personal information.

Length is still the only rule that is active per default, just configure the number of characters required. On passwords fields, failures will be displayed on the fly; as well as a "strength meter" displayed for information.
Note
If you enable password checks, it is not possible to know if some of existing ones does not respect them. Galette will display a warning at login if checks are not respected, but login will still be possible!
But wait... Password security is important, but Galette does not enforce nothing! Isn't that dumb? Well, not really. For tests or entirely private instances, security may be less important; and in some cases, being too restrictive may be an issue for your users; that's why this is up to you to secure as needed; just like using SSL or not :)
Password strength¶
Password strength calculation is quite simple. It is based on 4 rules:
- contains lower case characters,
- contains upper case characters,
- contains number,
- contains special characters.
You can choose between 5 values for strength configuration:
- none: (default): disables strength checks and check for personal information,
- weaker: enables check for personal information, only one of the rule is mandatory,
- medium: two rules are mandatory,
- strong: three rules are mandatory,
- very strong: the four rules are mandatory.
Blacklisted passwords¶
A default list of 500 common passwords is provided as a blacklist you can enable, "galette" is also blacklisted.
Note
The galette/data/blacklist.txt
file is used to list blacklisted terms (one per line). You can provide your own file, we advice you to complete the existing one.
Personal information as password¶
This check rely on strength activation (all but none level). For the super-admin account, this will just ensure you are not using login as password. For standard accounts, there are several information involved:
- name,
- surname,
- nickname,
- login,
- email,
- birthdate,
- town
Basically, user cannot use verbatim any of those information as password. Some possible combinations are also checked, like surname and name couple (or name and surname), first letter of surname with name, etc. Birthdate will be checked in different formats as well (localized, international, and some variants).
Experimented users¶
Warning
Use only following instructions if you know what you are doing... "The management is not responsable for any case of [...]" :D
Adapt to your graphical chart¶
If you are comfortable with CSS stylesheets, you can adapt Galette CSS to fit your own colors. To achieve that, it is strongly discouraged to edit Galette CSS files, but rather the specific mecanism desinged for that. Create a galette_local.css
file in your webroot/themes/default
directory with your styles, it will be automatically included.
Try to keep things as simple as possible. For example, if you want to change association name color (displayed under pages titles), you will find in Galette the CSS rule #asso_name that defines several parameters including the color. Then, in your stylesheet, you will just need the following:
#asso_name {
color: red;
}
This will be enough to display your association name in red. Note that local CSS file and all issues it may cause will not be took into account by the Galette team, no support will be provided.
You also can override the print stylesheet, just create a galette_local_print.css
file.
Add and change strings¶
It is possible if needed to customize translated strings in Galette - without editing any Galette source file. Just create a galette_{mylang}_local_lang.php
file (where {mylang} must be replaced with the language, like fr_FR.utf8 or en_US) in the lang
directory. This file must contains a simple PHP array with the original string (the one in Galette source code) as index.
As example, we want to change the "Password" string on the login page in french, translated as Mot de passe :. The original string is Password: (see galette/templates/default/index.tpl
), its french translation is Mot de passe : and we want to replace it with Secret :; so we will create the galette_fr_FR.utf8_local_lang.php
with the following contents:
<?php
$lang['Password:'] = 'Secret :';
return $lang;
Since Galette uses a cache system for translations, changes may not be visible immediately; you may have to restart PHP (or to clear cache). It is important to take the original string verbatim, punctuation included; and take care to escape single quotes (with a backslash) in all the strings.
You also can override langs for plugins using the sam method, just place the file in plugins lang directory and name it {plugin}_{mylang}_local_lang.php
where {plugin} is the routing name you can find in the _define.php
file.
Note
This will work only if you use Galette translation features, and not with native gettext.
Change session lifetime¶
Per default, Galette will create session with default lifetime duration (and it seems browsers acts differently in this case). You can anyways define a constant named GALETTE_TIMEOUT
to change session lifetime using behavior configuration:
<?php
//see https://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime
define('GALETTE_TIMEOUT', 0);
Log IP addresses behind a proxy¶
If your Galette instance is behind a proxy, IP address stored in history will be the proxy one, and not the user one :(
To fix that, use behavior configuration to create a constant named GALETTE_X_FORWARDED_FOR_INDEX
like:
<?php
define('GALETTE_X_FORWARDED_FOR_INDEX', 1);
Each proxy server will add its own address on the list, example above will work only if there is only one proxy server.
Warning
For security reasons, do not use this if your instance is not behind a proxy!
External stats¶
New in version 0.9.
Many statistics plaftforms relies on an extra Javascript block to work. You can create a tracking.js
file under webroot/themes/default
directory, it will be automatically included.
Galette uses Javascript to work. If the code you add in the tracking.js
file is incorrect, this may break Galette!
Cards size and count¶
New in version 0.9.
Galette preferences allows to specify spacing for cards, but not their with, nor the number of lines and columns. You can use behavior configuration to configure cards`, following constants are provided:
Note
Changing those values may cause gaps; change them with caution, and do not forget to test the result ;)
GALETTE_CARD_WIDTH
defines cards width,GALETTE_CARD_HEIGHT
defines cards height,GALETTE_CARD_COLS
defines the number of columns,GALETTE_CARD_ROWS
defines the number of lines.
CSV exports¶
Changed in version 1.0.0: You can setup paremeters exports with a YAML file instead of an XML one.
Galette provides a parameted CSV exports system. Only one parameted export is provided, but you can add your own to the config/exports.yaml
file.
Note
Legacy XML configuration file is still supported; if a duplicate identifier is found, YAML file takes precedence.
Let's examine existing "cotisations" parameted export:
- cotisations:
name: Cotisations
description: Export de l'état des cotisations pour l'ensemble des adhérents" filename="galette_cotisations.csv
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: "
- each array entry is a unique identifier, lowercase without spaces or special character
- name and description are mandatory as used to display each parameted export in the user interface
- filename sets the filename for output file
- query is the query to execute, it's mandatory. There is no other limitation than the SQL engine ones, expect you cannot send them any parameters
- headers manages columns titles:
- like in the above example, an array of columns titles of your own
- if not present, Galette fields names will be exported. You can use named columns in your SQL query (
SELECT nom_adh AS "Column title" FROM ...
) - set to false (
headers: false
) to disable column headers output
- separator is the CSV separator that will be used. Possible values are:
- semicolon (
;
) - default - comma (
,
) - tabulation character (
\t
)
- semicolon (
- quote either double quote - default - or simple quote character
- to disable an export, you can add
inactive: true
الأدوات الإدارية¶
Warning
All the admin tools operation are destructive, use it with cautions, and make sure you did a database backup before!
There are a few tools provided for Galette admin that permits to:
- reinitialize mailings contents will reset all emails contents to default values,
- reinitialize fields configuration will reset all members core fields to their default value. This does not imply dynamic fields,
- reinitialize PDF models will reset ll PDF models to default values,
- generate empty logins and passwords those informations are required to improve security, but sometimes missing (if you import a CSV for example). This feature will set random values as login and password fields that would be empty in database.
Frequently Asked Question (FAQ)¶
What if Galette does not work?¶
Sometimes, after an update, a change on hosting, or a simple bug - even minor ones - may cause a fail in Galette. You may observe:
- a simple error message id displayed,
- a blank page,
- a page with a backtace (usually, not in production mode),
- ...
In all cases, you must check the logs. Most of errors are stored in those files, it is a very good start point to understand the problem and potentially solve it.
There are two types of log files: Galette ones, and system ones.
Galette logs are stored in the galette/data/log
per default.
Server logs are another subject. On shared webservers, they are often not accessible to you :( On a dedicated webserver, their location change with server configuration; it is related to the operating system used, PHP and/or web server configuration, ...
- with
php-fpm
service logs are in/var/log/php-fpm/www-error.log
(for GNU/Linux Red Hat like distributions), - with (the deprecated)
mod_php
, you'll find them in/var/log/httpd/error_log
(on other GNU/Linux distributions, httpd may be named apache), - on Windows/MacOS with XAMPP like solutions, there is at least one log directory in installation; you may find what you look for there.
How to report a bug or ask for a feature?¶
Bugs reports as well as RFE (Request For Enhancement) must be done on the Galette tracker, for Galette itself, all official plugins and also documentation.
Note
Unless you are sure you know, please de not attribute the ticket and do not set target version. It will be done when it will be took into account.
If you have doubts, feel free to ask your questions on mailing lists ;)
Report a bug¶
Please, do not forget to:
- tell us the Galette version you are using,
- be clear and consise,
- to provide all required information in order to reproduce the issue
- to provide related logs entries.
Request For Enhancement¶
Make sure to be precise as well on RFEs. Developers may not guess what you have in mind, you have to explain them, event if this seems obvious to you ;) Requested enhancements are tagged as "Souhaits" (whishes, in french), and moved by developers when work begins most of the time.
Once you made your whishes, you can submit it to a vote, most wanted features may catch devs attention.
How to search in lists archives?¶
Mailing lists are the main communication channel for Galette, from its beginnings.
As a reminder, since 2017, two lists are available:
- users discussion list : general talks, help, ...
- development discussion list : technical discussions, tickets triaging, ...
If you are looking for archives before 2017, see:
Unfortunately, there is no search mechanism in any of those lists archives. The alternative is to use the site: keyword from your favorite search engine (most of them supports that keyword):
site:https://listengine.tuxfamily.org/lists.galette.eu/users plugin
Above search will look for "plugin" in archives of users mailing list. Just adapt the URL to the list/period and keywords you want ;)
To improve the search, refer to your search engine documentation.
How to use same email address for several members?¶
This is a very frequent question; many would love to do that...
This is not possible.
Indeed, mail addresses must be unique in the database. It is a choice for the project on which several features are built:
- lost password (since... always or almost),
- login (since Galette 0.9),
- ...
Making them non uniques is not a solution we want to rely on. This would be complicated, and should be source of many bugs.
However, it is possible in Galette to link several members. That way, some information such as email and postal addresses will be retrieved from the parent member if missing.
This allows finally to use a unique email address for several members in database; but they are not duplicates in database.
الإضافات¶
Plugins system allows to extend Galette with specific features that would not be useful for most of the users. Incompatible plugins will automatically be disabled, in which case you should consider upgrading to a more recent version.
Each plugin is a simple directory in {galette}/plugins/
, then refer to the plugin documentation to install it.
You can disable a plugin creating a _disabled
file in its directory.
Official Plugins¶
Official plugins are developed and maintained by the Galette team. Available official plugins are:
بايبال¶
This plugin provides:
- possibility to associate an amount to a contribution type,
- create a Paypal payment form,
- an history,
- automatic transaction storage once validated.



Warning
Due to the way Paypal payments are handled, especially the payment confirmation, your instance must be publically accessible.
التنصيب¶
First of all, download the plugin:
Extract the downloaded archive in Galette plugins
directory.
For example, under linux (replacing {url} and {version} with correct values):
$ cd /var/www/html/galette/plugins
$ wget {url}
$ tar xjvf galette-plugin-Paypal-{version}.tar.bz2
تهيئة قاعدة البيانات¶
In order to work, this plugin requires several tables in the database. See Galette plugins management interface.
And this is finished; Paypal plugin is installed :)
Plugin configuration¶
Once plugin has been installed, a Paypal group is added to the menu, with some new entries:
- Payment form: the payment form itself, which is accessible as a public page,
- Preferences: plugin preferences, accessible for administrators and staff members.
In order to work properly, you need to fill a very important value: your Paypal account code. You can either use the email address associated with your Paypal account (but you will need to chang it in Galette if it changes on Paypal) or your merchant identifier. To find your merchant identifiant, log in to Paypal and you will find it in your account preferences. Changing identifier is only allowed for administrators.
Preferences screen also permit to edit amount related to contributions types, and to hide some types.
After that, any user can choose the contribution type, adjust the amount and pay from his Paypal account. If the user is a logged in member, and if the contribution type is a membershop extension, its membership wil be recalculated when the payment will be confirmed.
Fullcard¶
This plugin was developed for Borsalinux-fr (previously Fedora-Fr). It generates a PDF member card that can be empty (to be used during events, etc) or filled with a member informations (that can be joined with a check for a membership as example).
Note
Since Galette 0.8.3, a PDF member card based on PDF models is provided. Installing Fullcard 1.6 or newer will replace this model.
التنصيب¶
First of all, download the plugin:
Extract the downloaded archive in Galette plugins
directory.
For example, under linux (replacing {url} and {version} with correct values):
$ cd /var/www/html/galette/plugins
$ wget {url}
$ tar xjvf galette-plugin-fullcard-{version}.tar.bz2
الخرائط¶
This plugin provides:
- possibility to store geogaphical coordinates for members (latitude and longitude),
- a public map displaying up to date members that have choosen to be publically visible.
التنصيب¶
First of all, download the plugin:
Extract the downloaded archive in Galette plugins
directory.
For example, under linux (replacing {url} and {version} with correct values):
$ cd /var/www/html/galette/plugins
$ wget {url}
$ tar xjvf galette-plugin-maps-{version}.tar.gz
تهيئة قاعدة البيانات¶
In order to work, this plugin requires several tables in the database. See Galette plugins management interface.
And this is finished; Maps plugin is installed :)
Plugin usage¶
When the plugin is installed, a group Maps is added to Galette menu when a member is logged in, which contains My location entry. This page allow member to store its location.
A Geolocalize button is also added when displaying a member, that allows administrators to set member coordinates.
Also, a Map entry is added in public pages list, that displays geolocalized members that are up to date. Administrators and staff members will see all members, while simple members and visitors will only see up to date public ones.
First of all, members will enter their location coordinates. Several options are provided:
- if town has been set in member informations, a list of possible places will be proposed (via Nominatim online service),
- additionnaly, a search zone (provided from OpenStreetMap),
- and also a geolocalize button using browser capacities.
The search zone can be used when saving members location, and when displaying the maps.

A member can define its location (with the precision he wants) on the map selecting one of the propositions:

Using the geolocalization button will define its position from the browser:

Then, member location is displayed on map, and can be removed:

Auto¶
This plugin provides vehicles management for automobile clubs, you can manage:
- vehicles (owner, several informations, photo, etc),
- vehicle history modification (owner, color, ...),
- العلامات التجارية،
- النماذج،
- transmission types,
- body types,
- الألوان،
- finitions,
- states.
This plugin has been initially developed in collaboration with Anatole from Club 404, and François from club Fiat 500. A big thanks to them for their precious help during plugin development :)
التنصيب¶
First of all, download the plugin:
Extract the downloaded archive in Galette plugins
directory.
For example, under linux (replacing {url} and {version} with correct values):
$ cd /var/www/html/galette/plugins
$ wget {url}
$ tar xjvf galette-plugin-auto-{version}.tar.bz2
تهيئة قاعدة البيانات¶
In order to work, this plugin requires several tables in the database. See Galette plugins management interface.
And this is finished; Auto plugin is installed :)
There is no particular setup required, you can just enter data in the database.
Configure required fields¶
When adding a new vehicle in database, there are several fields that are required, but that may not fit your needs. In such case, you can define your own required fields: just create a local_auto_required.inc.php
file in your Galette config
directory and declare an array of the fields you want to require. As example, if you just want to require name and model for a car, you will need:
<?php
return array(
'name' => 1,
'model' => 1
);
Events¶
This plugin provides:
- events management,
- associate activities with events,
- booking management.
التنصيب¶
Warning
This plugin requires Galette 0.9.1 to work!
First of all, download the plugin:
Extract the downloaded archive in Galette plugins
directory.
For example, under linux (replacing {url} and {version} with correct values):
$ cd /var/www/html/galette/plugins
$ wget {url}
$ tar xjvf galette-plugin-events-{version}.tar.gz
تهيئة قاعدة البيانات¶
In order to work, this plugin requires several tables in the database. See Galette plugins management interface.
And this is finished; Events plugin is installed :)
Plugin usage¶
When the plugin is installed, an Events group is added to Galette menu when a user is logged in. There are various possibilities that change depending on user profile (simple member, group manager, administrator, ...).
النشاطات¶
You can define as much activities as you want, and associate them to an event. An activity may be an organized trip, a meal, a housing, ...

An activity is composed with a name, a status and an optionnal comment.
To add a new activity, just click on "New activity" link:

Events¶
Events are the main goal of the plugin. You can define several informations, like a name, begin and ending dates, location, ...

Name, begin date and town are mandatory. All other informations are entirely optionnal.
Events that are not linked to a group will be available for all members. If a group is set, only members and managers of this group will have access.
Note
When a group manager creates a new event, he must choose one of the groups he owns!
You can attach one or several activities to each event, and for each one set if it is available, not available or even mandatory. Choose the activity to add, and click the button.

Warning
Adding or removing activity from an event will reload the page and ask you to fill mandatory informations. Nonetheless (and this is specified each time), the event will not be stored during this operation.
Ensure you save the event :)
From Events list, you can edit or remove entries, access to booking list ou export bookings as CSV.

Bookings¶
Bookings can be registered for each event. As we said before, simple members and groups managers will be limited to their groups events, ou to the events that are not restricted to a group.
Adding a new booking can be achieved from the menu "New booking" or from the event bookings list.

Bookings are closed once the event is marked as close, or when the begin date is over. Administrators and staff members can always add new bookings.
Activities list is retrieved from the event; mandatory ones must of course be checked during booking.

You can filter bookings list per event, payment type or payment status. You can then send a mailing to booked members, using the standard Galette mailing mechanism.
Objects lend¶
This plugin provides:
- objects management (description, size, lenght, price, ...)
- groups objects by categories,
- manage object state, and their presence in stock or not,
- manage lending and/or renting objects,
- contribution generation,
- ...
التنصيب¶
First of all, download the plugin:
Extract the downloaded archive in Galette plugins
directory.
For example, under linux (replacing {url} and {version} with correct values):
$ cd /var/www/html/galette/plugins
$ wget {url}
$ tar xjvf galette-plugin-objectslend-{version}.tar.gz
تهيئة قاعدة البيانات¶
In order to work, this plugin requires several tables in the database. See Galette plugins management interface.
And this is finished; ObjectsLend plugin is installed :)
Plugin usage¶
Once plugin has been installed, a Object lend group is added to Galette menu.
Defaults status are provided at installation, but they can not fit your needs, you can of course define your own.

Define status, create categories and objects; users can lend objects with a reason, then give them back with location.
A lend history is provided for administrators and staff members from object page.
Preferences¶
Several preferences allows to change plugin behavior.



From this screen, you can define if members can lend objects or not, if it should create a new contribution (and its type and description), if image should be displayed in objects list, and thumbnails size.
New in version 0.5.
It is possible to activate the fullsize photo display.
Note
Photos sent with previous plugin version were always resized, only the thumbnail was stored. If you want to get fullsize display, you will have to send photos again.
Third party plugins¶
Third party plugins are developed and maintained by community members. Some of them may not be translated, or available on only one database engine.
- oAuth2 (Galette act as an oAuth2 provider), developped by Manuel,
- Stripe (handle Stripe payments), developped by Mathieu,
- Aéroclub (base management of a flying club), developed by Mélissa (no longer maintained),
- QRCodes (QRCodes generation), developed by Frédéric (no longer maintained),
- Grades (evaluations management), developed by Frédéric (no longer maintained).
A Github community has been created to manage third party plugins, if you want to add your plugin.
Third party plugins community¶
A Gitub organisation name galette-community has been created. Its goal is to centralize plugins that are not developed by Galette team, to provide them a source code repository, a ticket management system, a website, ... And possibly get punctual help from Galette team.
Prerequisites¶
For a plugin to be accepted, it must fit some prerequisites:
- be a Galette plugin,
- be licensed under a license compatible with Galette (GPLv3 or compatible) and respect it,
- be compatible with a "decent" Galette version.
Plugins should (this is a strong recommandation, not an obligation) be localized and respect Galette coding conventions.
Join community¶
Github organization system does not allow to request inclusion, you will have to contact Galette team from mailing lists, giving them your Github account name. An invitation will then be send to you.
Add a plugin¶
Once the invitation has been accepted, you will get right to create a repository for your plugin.
If your plugin does not yet exist, just create it. If it already exist on github, you can transfer ownership to the organization from your existing repository settings.
موقع الويب¶
A website ala Github can be added to your project. Concretely, configuration and contents will be stored in a specific branch of the repository name gh-pages
that will only be used for the website.
The goal is to have a certain unicity on all third party plugins website. Galette team may help you for the initial setup of the website; contents and updates are in charge of the author.
Plugins management interface¶
A plugins management interface is provided, you will find it from the dashboard or in the configuration menu. After you have downloaded plugin(s) in Galette plugins
directory, a list will be displayed:

If web server has read access to your plugins directory, then you can enable or disable any plugin from the related icon.
If plugin requires a database to work, you can play installation and update scripts from the interface.
Database ACLs will then be checked. Unlike Galette, no information will be asked to you, since all is already available from your current instance.
Changelog¶
0.9.6.1 -> 1.0.0¶
Added¶
Fixed¶
- Update issues (not defined constants) (#1615)
- Fatal error when cookie not set after login (#1617)
- Sort members by status (#1618)
- Several PHP 8.1 compatibility fixes (#1629, #1655)
- Groups manager cannot edit their own information (#1635)
- Inconsistent count and display of reminders members (#1491)
- Minimum PHP version not displayed on compat page (#1682)
- Simple members can't access their list of contributions (#1675)
- Contributions mass removal (#1661)
- Disable inline images in mailings (#1659)
- Issue editing members with wrong values imported in dynamic choice fields (#1650)
- Parent group removed when a manager edit a group (#1648)
- Fix logo size on member card (#1626)
Legacy versions¶
0.9.6 => 0.9.6.1¶
0.9.5.2 => 0.9.6¶
- Social networks/contact externalization (#1585)
- Add member number (#190)
- Export contributions as CSV (#1581)
- Drop group name uniqueness at same level (#366)
- Add information to display for dynamic fields (#1190)
- Add preferences for groups manager to edit, create members, edit groups, send mailing and perform exports (#499)
- Fix various XSS issues
- Fix possible SQL injection
- Add CSRF protection
- Fix address escaping at display (#1592)
- Prevent issue creating contribution with an empty amount (#1593)
- Fix undefined index when locale is missing on system
- Fix issue reusing a saved search from advanced search
- Update translations
0.9.5.1 => 0.9.5.2¶
- Update translations
- Work on PHP 8.1 compatibility and tests improvements (#1570)
- Fix members list issue with titles column displayed (#1584)
- Fix members list ordering (#1586)
- Fix missing emails texts insertion (#1587)
- Drop duplicate check on saved searches
- Fix some silent errors
- Some data were missing checking passwords against personal data
- Fix gateway timeout sending emails with SSL SMTP (#1591)
0.9.5 => 0.9.5.1¶
Added¶
- Add a preference to send emails to member by default (#1536)
- Add a preference to always send contributions emails (#1481)
- Mass change dynamic fields (#1194)
- Mass add contributions (#1381)
- Add a preference to choose default payment type (#1578)
- Members can manage their children and create new ones (if preference is on) (#946)
- Prevent installation page access if Galette is already installed (#1574)
Fixed¶
- Fix overlapping menu in mobile (#1559)
- Adjust members state of dues chart (#1558)
- Rely on more powerfull WYSIWYG html editor in emails (#1568)
- Replace jQuery Cookie with JS Cookie (#1569)
- Fix close expiries filter and impending reminders (#1566)
- Fix address with a quote (#1567)
- Fix undefined constant on Alpine (#1572)
- Fix transactions list (#1576)
- Fix advanced search with dynamic fields (#1575)
- Fix new user registration email (#1577)
- Fix contributions ordered on payment type (#1579)
- Fix public list ordering (#1580)
0.9.4.2 => 0.9.5¶
This release contains security fixes; updating is highly recommended!
The security issues that has been reported is an XSS injection, issued as CVE-2021-21319.
- PHP8 compatibility (#1492),
- Cannot create new members (#1523)
- Inactive accounts can renew their password (#1529)
- Error on removing contribution type (#1531)
- Cannot cascade remove groups (#1533)
- Ability to order on contributions and transactions ID (#1502)
- Variables available in emails and PDF are now the same, dynamic fields has been added, ... (#1445, #1393, #1520)
- Fix late reminders PDF labels (#1506)
- Third party dependencies has been updated and cleaned (#1515, #1299), some for security reasons
- Add dynamic files on contributions and transactions, fixes (#1552, #1548, #1546)
- Improve self subscription captcha (#1516)
- Few fixes on members views (#1512)
- Fix auto generated logins that contains @ (#1542)
- Change some database fields so they can store more characters (#1499, #1534)
- Under the hood, the dependency management system has been changed (#1372). This unfortunately affects all plugins, none of them will be compatible.
Dependency management changes unfortunately makes all plugins incompatible with this release.
0.9.4.1 => 0.9.4.2¶
- Issues on mailing instantiation, in core and plugins (#1495)
- Fix issues on mailings attachmments (#1497)
- Post contribution script was called too early (#1496)
- Fix cards colors on new installations (#1508)
- First and last name were inverted in core PDF member card
- Print logo was the one used, but not the one displayed in preferences
0.9.4 => 0.9.4.1¶
Added¶
- Many improvements on string translations (add support for plurals, contexts and comments, #1444
- Use events to send administrative emails (account creation, edition, contribution added)
- Many locales updates thantks to Weblate translators!
Fixed¶
- Fix displayed version number (#1446)
- Missing "Next" button in members dynamic dropdown (#1449)
- Error creating dynamic field with empty name (#1452)
- Pagination was missing on public pages (#1453)
- Fix reminders wrong count (#1454)
- Members cannot print their own cards (#1462)
- Fix direct links to download documents (#1463)
- Fix compagnies/natural persons graph (#1465)
- Do not notify member on contribution change (#1467)
- Cannot print labels or change members in mailings (#1468)
- Fix search on dates in contributions list (#1469)
- Unable to unset booleans on mass change (#1471)
- Unable to unset booleans on dynamic fields (#1472)
- Captcha issue on self subscritpion page (#1478)
- Wrong JS action in mailings (#1482)
- SQL error on invoices/receipt direct download (#1483)
- Issues with images in dynamic files (#1486)
- Fix several issues sending reminders (#1487, #1455)
- Change log in URL (#1447)
- Do not display inactive members as late (#1451)
- Fix several issues in distribued archive (remove symlinks, fix tar format, ... - #1448)
0.9.3.1 -> 0.9.4¶
Note
A very big thanks to APiCy for their donation to support this release by including direct links to members cards, invoices and receipts!
Added¶
- Configurable password security enforcement (on strength, blacklist, ...) (#1039)
- Import dynamic fields from CSV (#940)
- Handle already encrypted passwords on imports (#1215)
- Manage members list displayed fields (#979)
- Emit events when members, contributions or transactions are added, edited or removed (#1400 - thanks to Nicolas B.)
- Add direct download links to member card, invoice/receipt in sent emails (#1004)
- Advanced search on groups with AND/OR (experimental) (#907 - thanks to Alain C.)
- Handle RTL on PDF (#1430)
- Administrative emails can now be translated in all available languages (and are present on translation platform) (#1330)
- Offer last months when using beginning of membership date (#1407 -thanks to Manuel H.)
- Members can print their own invoices/receipts (#1409 - thanks to Nicolas B.)
- Send member and contribution IDs to post script (#1406)
- Possibility to use member's deadline instead of year in PDF cards (#1425)
Fixed¶
- Fix member card with PHP 7.4 (#1423)
- Fix contribution PDF on some cases (#1411 - thanks to Manuel H.)
- Fix date calculation issue with new contributions types (#1410 - thanks to Manuel H.)
- Fix wrong value in history creating new member (#1405)
- Several fixes on CSV imports (#1403)
- Fix some issues using MySQL (#1219)
- Fix some issues on member duplication (#1432)
0.9.3 -> 0.9.3.1¶
- Use new icons in titles management (#1375)
- Ensure PHP 7.4 is supported
- Handle properly and test sequences in PostgreSQL for titles, payment types, PDF models, texts and fields categories (#1374, #1378)
- Fix Telemetry from PostgreSQL instances (#1376)
- Fix dynamic translations removal
- Check for session extension presence (#1380)
- Redo multiple status selection in advanced search (#1390)
- Fix user search by nickname in dropdowns (#1383)
0.9.2.1 -> 0.9.3¶
Added¶
- New translations has been added!
- Galette translation are now done on weblate platform
- Save searches (#691)
- Ability to use several admins email addresses from preferences (#643)
- Send a mail to admins when a member edit his card (#756)
- Flexible redirect after member creation (#1136)
- Add current date variable (
DATE_NOW
) in PDF models (#1260)
Fixed¶
- Fix translation issue on memebrs page fieldsets (#1125)
- Fix dynamic date fields check (#1213)
- Fix blank page at install on some environments (#1236)
- Fix javascript escaping on mailings (#1247)
- Fix groups members removal error (#1251)
- Fix pagination on trombinoscope (#1252)
- Fix logo path on some web server configurations (#1255)
- Dynamic fields order was not stored (#1262)
- Various fixes related to new dropdowns (#1263, #1264, #1265)
- Add missing date fields changes on mysql (#1266)
- Missing date selectors on advanced search and dynamic fields (#1267)
- Fix PDF extension and content type (#1271)
- Fix upper case removal from composed names (#1272)
- Remove company name when checkbox is unchecked (#1277)
- Fix call from wrong object in mailing (#1280)
- Reply-to in preferences was not used (#1349)
- Fix issues with HTTP 2.0 servers (#1342, #1343, #1348, #1347)
- Use PDF models header and footer on emargement lists (#1346)
0.9.2 -> 0.9.2.1¶
- Unable to store Galette URL in preferences (#1246)
- Fix dropdowns filtering (#1234)
- Imcompatible locales files (#1232)
- Fix required fields on children cards (#1230 and #1229)
- Fix contributions storage (#1228)
- Fix distribution type in transaction (#1227)
- Redirection issues (#1226)
- Rework PHP version and extensions checks (#1225)
- Fix members search when adding a new contribution (#1224)
- Remove routes translations (#1223)
0.9.1.2 -> 0.9.2¶
Note
A very big thanks to Danielle C. and "Les Amis de la Gendarmerie" for their generous donation to support this release!
Added¶
- Add a variable for the identifier in PDF models and emails texts (#1222)
- Search (name, email, id, ...) for members when adding transactions and contributions (#1218)
- PHP 7.1 minimum,
- Manage payment types (#1084)
- Remove passwords in emails (#1171)
- Duplicate members (#633)
- Configure default account filter (#345)
- Rework translation system, which now requires the PHP intl extension
- Display count for members and managers in groups
Fixed¶
- Dry run mode of imports has been reworked to fix several issues
- Fix version detection when updating
- Document PDF models variables (#1066)
- Admit more than 100 years old members (#452)
- Fix birth dates range
- Add checks on birthdate when storing
- Fix contributions list filtering (#1185)
- Use sender information on preview (#1188)
- Fix mail sender storage in history (#1188)
- Remove "not translated" message on dynamic fields labels
- Fix search on boolean dynamic fields (#1186)
- Fix contributions mass removal (#1192)
- Remove dynamic field content when it is removed (#1191)
- Fix PostgreSQL update script
- Fix redirection issues on some cases (mainly when using proxies)
- Dynamic fields now works in PDF forms (thanks to Jérôme B.!)
- Fix Csv fields configuration (#1208)
- Fix rights on dynamic fields (#1201)
Under the hood...¶
- Use InnoDB engine for all tables (#1006)
- Automatic send of telemetry
- Use of Zanata for translations
- Use of Zend Translator
- Update third party libraries
0.9.1.1 -> 0.9.1.2¶
0.9.1 -> 0.9.1.1¶
0.9 -> 0.9.1¶
Note
Thanks to the "Association Bretonne des Amis de Saint Jacques de Compostelle" who has sponsorised sender choice!
Added¶
Fixed¶
- Check PDF models are present (#1134)
- Take into account logs preferences (#440)
- Update a dynamic field now updates member's modification date (#1002)
- GPG key field was too short (#1032)
- Fix differences beetween MySQL and PostgreSQL schemas (#1072)
- Clean data from 0.9RC (#1093)
- Change email field size to suits standards (#1121)
- Fix update issues
- Fix contribution end date calculation (#1144)
- Fix redirection after creating a new contribution (#1145)
- Fix dynamic fields on transactions and contributions (#1146)
- Fix static resources path on some configurations (#1152)
- Admin information fields was emptied when a member was edited from a non admin account (#1154)
- Fix required dynamic file fields updating member (#1160)
- Fix security Checks generating PDF members cards (#1164)
- Add expiration on RSS feed calls to prevent freezes (#989)
0.8.3.4 -> 0.9¶
Added¶
- Use two steps removal everywhere; with a real confirmation required (not relying on a Javascript event)
- Cascade removal on groups children
- Change all URLs (#417), and translate them
- Super admin can impersonate another account without its authentication information
- Responsive display
- Configure connection delay
- Test mail parameters from preferences (#588)
- Check for duplicates created using imports dry-run (#729)
- Check statuses using imports dry-run (#999)
- Preview attached files on mailing preview (#735)
- Select all and reverse selection on top and bottom of list (#795)
- Statuses are no longer uniques (#887)
- Authenticate from email address (#919)
- Handle reverse proxy on logs (#997 and #1029 - thanks to Georges R.!)
- Autocomplete towns, zip codes, countries and birth places (#1005)
- A behavior configuration file whith some examples has been added in
config
directory (#1011) - Warning message when application is configured to display errors (#1011)
- Handle non secure SMTP connections (self-signed certificates, etc. #1020)
- Minimum PHP version is now 5.6
- It is possible to expose only a sub directory (
webroot
, whith limited contents) on the web server - Type free search fields (thanks to Guillaume R.!)
- Improve access control on fields by adding new roles (thanks to Guillaume R.!)
- Integrate AdminTools plugin (#1071)
- Free search on status texts (#1061)
- Improve fields management in free search (thanks to Guillaume R.!)
- Script for extrernal statistics (#787)
- Send telemetry information and registration :)
Fixed¶
- Better PDF errors management (#249)
- Add version number to sessions (#315)
- Missing translation in messages headers (#673)
- Members listed several times when searching on groups (final fix for #687)
- Error on calculated late days in some cases (#902)
- Parent group was lost when a group manager edit a group (#990)
- Remove parent field from fields configuration (#1033)
- Error sending reminder mail (#1046)
0.8.3.3 -> 0.8.3.4¶
0.8.3.1 -> 0.8.3.2¶
- Correction d'un régréssion introduite dans la version précédente
0.8.3 -> 0.8.3.1¶
- Corrections de bogues relatifs au mode strict de MySQL 5.7
- Correction de l'adresse dans les PDF des fiches des membres
0.8.2.3 -> 0.8.3¶
Fixed¶
- Améliorations sur la gestion des groupes (merci à Remi),
- Validation des données sur les champs cachés (#958)
- Corrections visuelles mineures
- Désactivation du champ mot de passe (#957)
- Pas d'ajout de contribution sur la création d'un adhérent exempt (#966)
- Correction d'un problème MySQL survenant parfois sous Windows (#954)
- Affichage des adhérents exempts actifs uniquement sur le spages publiques (#971)
- Certains champs n'étaient pas marqués comme étant requis (#974)
- Correction sur certains types de données dans la configuration des champs
Added¶
- Fiche adhérent PDF modifiable via les modèles
- Ajout d'une addresse multi-ligne pour les modèles PDF
- Support des champs dynamiques dans les modèles PDF
- Support RSS pour les news (#956)
- Remplacement de chaînes dans les modèles PDF
- Utilisation de l'adresse postale de la fiche parente si celle de l'adhérent n'est pas renseignée
- Utilisation de l'adresse email de la fiche parent (suite et fin)
- Modification des nom, prénom, genre et titre par l'adhérent lui même
0.8.2.2 -> 0.8.2.3¶
0.8.2.1 -> 0.8.2.2¶
0.8.2 -> 0.8.2.1¶
- Problème avec le champs "Autres infos (admin)"
0.8.1 -> 0.8.2¶
Note
Merci à Hélène de l'association Le Pic qui a subventionné cette version !
Fixed¶
- Mots de passe de base de données contenant le caractère « $ » (entre autres)
- Mise à jour des plugins
- Génération des identifiants vides
- Stockage des images des membres manquantes dans la base de données
- Guillemets dans le script de mise à jour PostgreSQL
- Suppression des caractères « : » dans les en-têtes des exports CSV
- Exclusion des dons dans le calcul des dates de fin de cotisation
- Import des sociétés depuis un fichier CSV
- Soumission du formulaire de recherche avancée après sélection d'un groupe
Added¶
- Formulaire adhérent dynamique et paramétrable
- Attachement d'adhérents
- Numéro adhérent
- Suppression des anciens fichiers de log
- Affichage des membres d'un groupe par nom d'adhérent
- Suppression du support SQLite.
- Export des groupes sélectionnés ainsi que leurs sous groupes
- Utilisation du filtre courant pour naviguer entre les fiches adhérents
- Ajout du mode maintenance
Under the hood...¶
- Mise à jour des bilitohèques tierces
- Ajout d'un paramètre pour régler les problèmes d'encodage sur certaines instances utilisant MySQL
0.8 -> 0.8.1¶
Note
Merci à Danielle qui a subventionné cette version !
- Ajout des groupes de l'adhérent dans les modèles PDF,
- Correction du nom de la table des champs dynamique de type liste,
- Correction du bouton retour lors de l'ajout d'une contribution,
- Un brin de nettoyage,
- Correction de l'initialisation des catégories de champs,
- Correction des champs dynamiques de type fichier,
- Utilisation des traits PHP pour les ficheirs, images et imports CSV,
- Les valeurs des champs dynamiques de type liste n'étaient pas affichées,
- Correction de la détection de la classe SMTP pour l'envoi de courriels,
- Suppression de l'entrée "Tous" dans les préférences pour le nombre d'enregistrements affichés,
- Correction de champs dynamiques marqués répétables mais qui ne le sont pas,
- Amélioration du thème, notamment pour les formulaires,
- Correction de HTML invalide,
- Correction de problèmes sur la page d'auto adhésion,
- Ajout d'un flux RSS configurable.
0.7.8 -> 0.8¶
Note
Cette nouvelle version met fin au support des versions 0.7 de Galette, qui auront été fort utiles :-)
Fixed¶
- Le champ "genre" ne pouvait être désactivé,
- Suppression de la fonction SQL NOW() iconnue de SQLite,
- Corrections cosmétiques,
- Droits sur les champs dynamiques,
- Courriels multiples envoyés pour relance,
- Problème d'encodage de caractères lors de mises à jour depuis Galette 0.6x,
- Message d'avertissements dans la fenêtre de recherche avancée.
Added¶
- Refonte complète du système d'installation et de mise à jour,
- Relocalisation des données dans un répertoire commun,
- Actions combinées sur les membres pour les plugins,
- Utilisation du logo dans les modèles PDF (merci à Guillaume R.),
- Augmentation de la taille des étiquettes des status et des types de cotisations,
- Choix de la date lors du filtrage des contributions,
- Filtrage des transactions par date,
- Compatibilité IPV6,
- Changement du pictogramme des messages d'erreur (merci à Daniela D.),
- Étiquettes ordonnées par noms et prénoms,
- Possibilité de scinder ou non les versions texte des courriels par configuration,
- Prévisualisation des courriels textes scindés,
- Affichage des adresses courriel dans la liste publique des membres pour les adhérents connectés,
- Textes de courriels pour les dons,
- Date de naissance dans la recherche avancée,
- Détection des types de fichiers si les fonctions relatives de PHP sont désactivées,
- Possibilité de modifier la date de saisie d'une contribution,
- Support de champs dynamiques de type fichier (merci à Guillaume R.),
- Amélioration de la fenêtre de sélection des membres (utilisée dans les mailings, la gestion des groupes, le plugin auto, ...),
- Suppression de groupes non vides.
Under the hood...¶
Quelques modifications, d'ordre un peu plus technique ont également été apportées :
- Compatible PHP 5.4 et supérieurs,
- Utilisation de Zend DB version 2 - en lieu et place de la version 1 - pour la gestion des bases de données.
0.7.7 -> 0.7.8¶
Note
Merci à Roland qui a subventionné cette version (ainsi que la mise à jour consécutive des plugins Maps et Paypal) !
0.7.6.1 -> 0.7.7¶
Note
Merci à l'association Club 404 qui a subventionné cette version ainsi que la première version officielle du plugin Auto :-)
- Ajouts de pièces jointes aux mailings (#187)
- Amélioration du système de génération de mots de passe et login aléatoires, pour éviter les doublons (#731)
- Affichage d'un message explicatif lorsque l'on tente un import CSV avec un statut inexistant (#739)
- Les données des graphiques n'avaient pas toujours le bon type (#742)
- Correction des champs dynamiques des transactions (#745)
- Correction d'un problème de date de création lors de l'import CSV
0.7.6 -> 0.7.6.1¶
0.7.5.5 -> 0.7.6¶
Note
Un très grand merci à Loïs Taulelle, qui a subventionné cette Galette 0.7.6 :-)
- Imports CSV (#176)
- Filtrage des non membres (#677)
- PostgreSQL est désormais requis en version 9.1 au minimum (#693)
- Suppression de la méthode de stockage des mots de passe pour les vieilles versions de PHP (#694)
- Le décompte des jours n'est plus affiché pour les comptes désactivés (#716)
- Correction d'une incohérence lors de la vérification de l'unicité des champs dynamiques (#642)
- Un échec (voulu ou non) lors de la tentative de suppression d'un membre ne donnait pas lieu à un message dans l'interface (#680)
- L'activation du bouton de création de la carte de membre se basait sur l'état des cotisations de l'adhérent connecté, et non celui consulté (#725)
0.7.5.3 -> 0.7.5.4¶
- Restriction de l'affichage des dossiers tempimages et templates_c depuis le serveur web
- Une contrainte en base Postgres qui n'éxistait pas était supprimée (#681)
- Correction d'une anomalie sur le filtrage par groupe des responsables de groupes (#712)
- Restriction des boutons de gestion des membres et responsables de groupes, ainsi que le bouton de création de nouveaux groupes aux administrateurs et membres du bureau (#709)
- Correction de divers problèmes relatifs aux droits des responsables de groupes (#686, #499)
- Correction d'une inversion causant un bogue dans les champs dynamiques
- La résolution de l'anomalie #687 bloquait la liste des membres sous PostgreSQL et a été supprimée
0.7.5.2 -> 0.7.5.3¶
- Le bouton d'ajout de membres ou de responsables à un groupe avait disparu (#707)
- Un membre appartenant à plusieurs sous groupes d'un même parent était affiché plusieurs fois si l'on cherchait le groupe parent (#687)
- Les responsables de groupes ne pouvaient éditer la fiche d'un membre (#686)
- Les responsables de groupes ne pouvaient visualiser la photo d'un membre
0.7.5.1 -> 0.7.5.2¶
- Correction d'un problème Javascript lors de l'ajout des champs dynamiques aux contributions ou aux transactions
- Ajout du login au remplacement possibles dans les rappels
- Correction de la license de deux fichiers utilisés par les traductions
0.7.5 -> 0.7.5.1¶
- Correction d'una page blanche à l'export PDF des groupes (#676)
- Correction du script de mise à jour MySQL (#678)
- Correction du chemin de l'interpréteur dans le script de test post contribution
- Typos
- Le sujet des textes était trop court dans l'interface
- Correction de notices PHP au lancement du script cron
- Amélioration des données JSON du script post contribution (#682)
- Correction du script d'installation SQLite
0.7.4.5 -> 0.7.5¶
Note
Un très grand merci à Debian France, qui a subventionné cette version 0.7.5 :-)
Fixed¶
Added¶
- Modèles de courriels de rappel d'échéance (#376)
- Envoi automatique de courriels de rappel d'échéance de cotisation (#368)
- Automatisation (via cron) des rappels d'échéance (#377)
- Édition de factures et de reçus, avec possibilité de personnaliser les modèles (#394)
- Appel d'un script après l'enregistrement d'une nouvelle contribution (pour un enregistrement en comptabilité par exemple - #490)
- L'envoi de courriels comporte toujours un destinataire (pour éviter d'être bloqué par certains système de listes de diffusion par exemple - #595)
- Ajout des montants et types de contribution sur les courriels automatiques (#620)
- Ajout de champs dynamiques de type date (#191) - Merci à Guillaume R. !
- Ajout de champs dynamiques de type booléen (#624) - Merci à Guillaume R. !
- Possibilité de surcharger la feuille CSS d'impression (#634)
- Suppression des nouvelles Twitter et Google+ sur le tableau de bord
0.7.4.4 -> 0.7.4.5¶
- La suppression d'un adhérent se faisait sans confirmation (#638)
- Mise à jour des biliothèques tierces dans leurs dernières versions
0.7.4.3 -> 0.7.4.4¶
- Attribution de groupes impossible depuis la fiche adhérent (#625)
- Amélioration de la feuille CSS pour l'impression (#631)
- De multiples messages étaient affichés lorsque l'on cliquait sur le bouton supprimer sans avoir sélectionné d'adhérents (#627)
- Désactivation de la carte adhérents pour les membres qui ne sont pas à jour de cotisation (#546)
- Utilisation de la chaîne non traduite lors de l'édition des types de contributions (#630)
0.7.4.2 -> 0.7.4.3¶
- Le type de contribution n'était pas correctement sélectionné dans la seconde étape (#618)
- La recherche avancée dans plusieurs champs dynamiques de type choix provoquait une erreur (#619)
- Vérification de l'existance de la langue lors du chargement de textes (#621)
- Le contributions qui se chevauchent ne doivent pas être enregistrées (#622)
0.7.4.1 -> 0.7.4.2¶
0.7.4 -> 0.7.4.1¶
- Taille incorrecte du mot de passe temporaire (#587)
- Correction d'une erreur HTML sur le sélecteur de date de fin de contribution dans l'interface de recherche avancée (#600)
- La liste des adhérents pour les rappels n'était plus filtrée (#599)
- L'export de la liste des membres filtrée se limite aux champs de la table des adhérents
- Correction d'erreurs sur les exports CSV de la liste des membres sous MySQL
- Implémentation d'une méthode moins sécurisée de stockage des mots de passe pour les vielles versions de PHP (#597)
- Les titres dans la tables des adhérents doivent être optionnels (merci à Raphaël)
- Les modules PHP requis et manquants n'étaient pas affichés (#598)
- Vérification de la présence du module PHP mcrypt à l'installation (#596)
- Vérification du support de la méthode de stockage du mot de passe à l'installation
- L'Affichage de la requête après une recherche avancée ne fonctionnait que si l'on obtenait des résultats
- Erreur SQL sur certaines recherches avancées (merci à Raphaël)
- Correction de bogues mineurs HTML dans la page des préférences
- Lors de la mise à jour d'une base existante, les adhérents ayant pour titre mademoiselle se retrouvaient du troisième sexe (#572)
- Problèmes de booléens false sous PostgreSQL
- Les mailings en cours n'étaient plus détectés (#591)
- Modification du séparateur CSV par défaut (le défaut est désormais le point-virgule ; Excel n'aime pas les virgules apparemment...)
- L'export CSV de la liste filtrée ne prenait pas compte du filtre (#584)
- Le chemin de téléchargement suite à un export était incorrect (#589)
- Ré-écriture des procédures de vérification et de réinitialisation de la configuration des champs (#577)
- Suppression du bouton pour enlever les titres fixes (#570)
- Type de colonne incorrect pour la visiblité des champs sous PostgreSQL (#577)
- Certains champs étaient requis, mais désactivés (#571)
- Problèmes SQL lors de l'installation sous MySQL (#575)
- Les versions longues des titres étaient incorrectes sous MySQL (#569)
0.7.3.2 -> 0.7.4¶
Note
Un très grand merci de nouveau à Exsequenda, qui a de nouveau subventionné cette version :-)
Fixed¶
- Suppression du statut non membre (#455)
- Calcul de la date de fin d'adhésion erroné après suppression de toutes les contributions d'un membre (#515)
- Suppression d'un adhérent impossible (#520)
- Amélioration de l'interface de saisie des contributions si aucun adhérent n'existe (#534)
- Les informations de l'utilisateur authentifié n'étaient pas accessibles pour les plugins (#449)
- Les champs dynamiques n'étaient pas enregistrés lorsque l'adhérent d'inscrivait lui même (#539)
- Le lien dans la courriel de perte de mot de passe utilisait invariablement le protocole HTTP (#557)
- Récupération des champs requis lors de la mise à jour en 0.7.3 (#523)
Added¶
- Gestion des civilités (subventionné - #174)
- Recherche des adhérents via leurs contributions (subventionné - #498)
- Export CSV de la liste des membres filtrée (subventionné - #501)
- Support SQLite (#482)
- Sécurité du stockage des mot de passe accrue (#487)
- Suppression des exports générés (#271)
- Possibilité d'utiliser séparément les nom et prénom de l'adhérent dans les textes des courriels (#312)
- Navigation entre les fiches en mode édition (#456)
- Tri des listes de contributions et de transactions par ordre chronologique inversé (#465)
- Génération de graphiques (#157)
- Liste PDF des adhérents par groupes (#484)
- Affichage des informations sur le status des cotisations de l'adhérent (#545)
0.7.3.1 -> 0.7.3.2¶
0.7.3 -> 0.7.3.1¶
0.7.2.9 -> 0.7.3¶
Note
Un très grand merci à Exsequenda, qui a subventionné cette version :-)
Added¶
0.7.2.8 -> 0.7.2.9¶
- Champs complémentaires des contributions non enregistrés et/ou non chargés (#396)
- L'upload de fichiers avec une extension en majuscules générati des fichiers vides (#450)
- Les photos des adhérents sont requises pour de la génération des cartes (#461)
- Régénération de l'image depuis la base donnait parfois un fichier vide (#463)
- Impossible d'enregistrer une fiche adhérent (entre autres), les définitions de champs étaient manquantes (#466)
- Les rappels ne doivent pas inclure les comptes inactifs (#462)
- Les liens des nouveaux exports étaient incorrects
0.7.2.7 -> 0.7.2.8¶
- Diverses améliorations des performances lors de la récupération de listes de membres (#458)
0.7.2.6 -> 0.7.2.7¶
0.7.2.5 -> 0.7.2.6¶
0.7.2.1 -> 0.7.2.3¶
0.7.2.1 -> 0.7.2.2¶
- Le filtrage des groupes est désormais effectifs sur les enfants directs du groupe (#301)
0.7.2 -> 0.7.2.1¶
0.7.1 -> 0.7.2¶
Note
Un très grand merci à l'AFUL, qui a subventionné cette version :-)
Fixed¶
Added¶
- Amélioration de l'interface des champs complémentaires multiples (#289)
- Présentation des champs dynamiques contenant une URL ou une adresse courriel sous forme d'hyperlien (#355)
- Modification des tailles minimales des identifiants (désormais, respectivement 2 et 6 caractères pour le login et le mot de passe - #374)
- Ajout d'un bouton au tableau de bord pour effectuer des relances facilement vers les adhértents en retard (#375)
0.7 -> 0.7.1¶
Fixed¶
- Problèmes lors de l'envoi de logo transparent ou de types non supportés (#164, #165),
- Chemin parfois incorect dans les entrées de menu des plugins (#203),
- Envoi de mailings via la fonction mail() de PHP (#215),
- Le chemin de téléchargement des exports CSV était incorrect,
- Les informations dans l'interface d'administration des plugins n'étaient pas remises à jour après l'activation ou la désactivation d'un plugin (#210),
- Amélioration de la conversion texte automatique des mailings HTML (#218),
- Correction de différents problèmes liés à l'internationnalisation des dates, notamment avec l'interface en anglais (#161),
- Correction de problèmes aléatoires avec les images (photos et logos),
- Suppression d'une certaine ambiguité lors de la demande d'un nouveau mot de passe (#252),
- Modification de la taille de certains champs : les nom et prénom de l'adhérent peuvent désormais contenir 50 caractères, 200 pour la raison sociale, et 150 pour les descriptions de transactions (#263),
- Les prénoms composés prenaient une majuscule sur la toute première lettre uniquement (#319).
Added¶
- Filtrage de la liste des adhérents par groupe (#169),
- Test de la présence des modules PHP requis et conseillés à l'installation (#172),
- Refonte de l'affichage des pages d'installation (#235),
- Vérification de la compatibilité des plugins (#241),
- Limitation des différents rôles du bureau à une seule instance. Il n'est plus possible d'avoir deux présidents :) (#177),
- Ajout de la description des transactions lors du rappel dans les contributions ; ainsi qu'un lien vers la transaction depuis la liste des contributions (#255, #256),
- Affichage d'un message lorsqu'un mailing est déjà en cours pour le reprendre ou de l'annuler (#276),
- Affichage de la raison sociale dans la liste des membres ; et recherche dans les raison sociales également lors d'une recherche sur le nom (#286),
- Enregistrement des erreurs PHP dans les logs de Galette, pour pallier le manque d'informations sur les hébergements dédiés (#207),
- Ajout d'une page d'informations système utiles lors de la déclaration de bogues (#257).
Under the hood...¶
Quelques modifications, d'ordre un peu plus technique ont également été apportées :
- Implémentation d'un mode démo qui bloque certaines fonctionnalités (l'envoi de mails, certaines directives de configuration, ...) (#205),
- Chargement dynamique des classes PHP à la demande (#206),
- Réorganisation des classes métier et utilisation des espaces de nom PHP,
- Mise à jour de phpMailer en version 5.2.1 (#216),
- Remplacement de PEAR::Log par KLoger (modifié pour l'occasion) et suppression des bibliothèques PEAR qui ne sont plus utiles,
- Passage à Smarty 3 (#238),
- Compatibilité des différents fichiers
.htaccess
pour Apache 2.4.
0.64 -> 0.7¶
Added and changed¶
- Refonte complète de l'interface,
- Validation HTML 5 et CSS 3,
- Nouvelle gestion de l'historique,
- Gestion de mailings (avec historique),
- Gestion de groupes,
- Intégration d'un tableau de bord (avec affichage des dernières news du projet),
- Pages publiques (liste des membres et trombinoscope),
- Système de plugins (voir la liste des plugins disponibles),
- Export au format CSV des tables de la base courante et/ou export de requêtes paramétrées (https://download.tuxfamily.org/galette/listes-galette/mail.gna.org/public/galette-devel/2009-02/msg00006.html),
- Paramétrage des champs obligatoires pour l'enregistrement et la modification d'adhérents,
- Gestion multilingue des sujets et messages des mails envoyés automatiquement par Galette (inscription, perte de mot de passe, ...),
- Gestion des statuts utilisateur,
- Gestion des types de contributions,
- Refonte de la gestion des transactions,
- Refonte de l'interface d'envoi d'e-mailings,
- Intégration de JQuery UI pour améliorer l'interface (menus, onglets dans les préférences, date/color picker, ...),
- Impression de cartes de membres,
- ...
Removals¶
- Suppression du support IE6 et IE7,
- Suppression de l'espagnol (qui n'est plus maintenu :'( )
Under the hood...¶
Quelques modifications, d'ordre un peu plus technique ont également été apportées :
- Compatible PHP 5.3 et supérieurs,
- Ré-écriture de la presque totalité du code en POO,
- Utilisation de la bibliothèque PEAR::LOG,
- Utilisation de Zend DB pour la gestion des bases de données en lieu et place de AdoDB,
- Utilisation de la bibliothèque phpMailer pour l'envoi des emails (support https, gmail, etc),
- Mise en place de relations dans la base de données pour assurer l'intégrité référentielle.
Plugins¶
Quelques plugins sont dores et déjà disponibles pour Galette !
- Auto : Gestion d'associations automobiles (gestion des véhicules et de l'historique des modifications).
- Paypal : Gestion des différents montants de cotisation, formulaire de paiement ; à venir : ajout de la contribution dans la base Galette lorsque le paiement est validé par Paypal.
- Fiche Adhérent : Génération au format PDF d'une fiche adhérent avec les principales informations pré-remplies.
- TinyMCE : Éditeur HTML WYSIWYG complet en remplacement du plus simple éditeur fourni par défaut.
- Sport (à venir) : Intégration des fonctionnalités supplémentaires existantes dans galette-sport
0.63.3 -> 0.64¶
- Prise en charge de la fonction 'stripos' lorsqu'elle est manquante afin d'assurer le support php4 pour Galette 0.63.x
- Mise à jour de Adodb en 4992
- Mise à jour de Smarty en 2.6.22, remplacement des anciens hacks pour les traductions par un plus élégant plugin
- Remplacement de la bibliothèque phppdflib par tcpdf
- Suppression du lien symbolique adodb, on utilise maintenant un fichier php qui définit les versions des bibliothèques utilisées
- Amélioration de la pagination : seules 20 pages apparaissent désormais, au lieu de l'intégralité
- Suppression de l'espagnol qui n'est plus maintenu depuis longtemps
- Utilisation de l'encodage UTF-8 pour les fichiers de traduction
- Correction d'un bogue dans le calcul de la date de fin d'adhésion lors de l'utilisation d'une date de début d'exercice dans les préférences
- Suppression des pages « publiques » qui ne sont ni fonctionnelles, ni utilisées
- Suppression de fichiers inutilisés
- Prise en charge de la fonction 'mb_strtoupper' lorsqu'elle est manquante pour éviter des erreurs lors de la génération des étiquettes si l'extension php mb n'est pas présente
- Déplacement du fichier de configuration du dossier includes vers le dossier config. Les droits en écriture sur le dossier includes ne sont désormais plus requis à l'installation
- Seul le super-administrateur peut désormais changer ses propres identifiant et mot de passe. Les administrateurs standards ne peuvent désormais plus faire cela
0.63.2 -> 0.63.3¶
- Correction d'un problème de sécurité qui permettait à un tiers d'envoyer des fichiers PHP divers sur certains serveurs
- Lorsque le formulaire d'adhésion était invalide, les lignes des champs dynamiques étaient répétées (bogue #10187)
- Quelques problèmes d'encodage ont été remarqués sur certains serveurs MySQL en UTF-8. La connexion est désormais forcée en LATIN1 (merci à Cédric)
- Des espaces insécables apparaissaient sur certains courriels non html (merci à Cédric)
- L'utilisation de caractères XML dans le sujet d'un mailing causait des erreurs d'analyse XML sur la page de prévisualisation (bogue #14571)
- Des informations inutiles étaient stockées dans les logs (et n'étaient pas au bon endroit) lors de l'envoi de courriels (bogue #14569)
- Des erreurs d'analyse XML étaient rencontrées sur les pages de l'historique quand la carte de membre contenait des caractères réservés (bogue #14561)
- Les balises html lors de la prévisualisation de mailings ne s'affichaient pas sous Firefox (bogue #14465)
0.63.1 -> 0.63.2¶
- La fin de l'adhésion était incorrecte pour une année fiscale (bogue #13010)
- Les donation n'apparaissaient pas avec la bonne couleur dans le tableau (bogue #13009)
- Les entrées de l'historique ne comprenaient pas le login de l'adhérent lors de l'ajout ou de l'édition des contributions ou de la fiche adhérent (bogue #13011)
- Sous windows, certains caractères n'étaient pas correctement interprétés (bogue #14162)
- Lors de la sauvegarde d'une photo (au format PNG), le canal alpha n'était pas conservé, l'image prenait ainsi une couleur de fond par défaut (bogue #14327)
- Les restrictions d'affichage des images (depuis la 0.63.1) empêchaient l'affichage du logo personnalisé (bogue #14442)
- Lorsque l'on modifiait la langue d'un utilisateur, la langue de la session était changée également (bogue #14443)
- Certains caractères - comme les guillemets simples - étaient mal encodés dans les sujets des mailings (bogue #14449)
- L'envoi de mails était toujours actif, même s'il était désactivé dans les préférences (bogue #14450)
0.63 -> 0.63.1¶
- Certaines préférences n'étaient pas mises à jour lors de l'installation
- Sur certains services d'hébergement, les fonctions exif ne sont pas disponibles. Dans ce cas, on utilise désormais GD (bogue #12836)
- Le XHTML était parfois mal formé à cause des sessions PHP (bogue #13071)
- Correction de notices PHP dans l'historique (patch #1133)
- Suppression des fonctions posix qui sont supprimées dans PHP 5.3
- Ajout d'un fichier .htaccess pour empêcher l'affichage direct des photos envoyées
0.62 -> 0.63¶
- Project leader has changed :-)
- Add transactions management
- Add dynamic fields, to add extra fields to members, as well as their label translation
- Members can now self subscribe
- Use Smarty templating system to generate pages. This causes the rewriting of all pages to XHTML
- Update ADODB from 4.7.1 to 4.9.2
- Use gettext capabilities for translations
- Add spanih translation (all strings are not yet translated)
- Capacity to use a custom logo
- Fix of numerous bugs
0.62.1 -> 0.62.2¶
- change adodb framework due to security alert : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0410
- use x.y.z naming convention (0.62a == 0.62.1)
0.62 -> 0.62.1¶
- correct bug #590 : date before 1970 [Frédéric Jacquot]
- Typos fixed [Roland Telle]
- replace logo by new one [Frédéric Jacquot]
- add an empty config.inc.php [Loïs Taulelle]
0.61 -> 0.62¶
- More documentation
- Typos fixed
- Recoded the html_entity_decode() function to preserve compatibility with pre-4.3 PHP
- Defined a maxsize for the text fields (preferences)
- First version of the Upgrade documentation using a Linux shell (in French)
- Font size for table headers defined
- "Update complete" string translated
- Errors on DROP and RENAME operations can now be safely be ignored
- Structure of the 'preferences' table enhanced
- Font size defined for form labels
- Bugfix concerning a call to imagegif when the function wasn't available (reported by Vincent Bossuet)
- Fixed a bug reported by Lois Taulelle. Membership ending date wasn't updated when removing the "Freed of dues" attribute
- Added the possibility to be visible or not in the members list (if you wan't to list members outside from Galette). Courtesy of Stephane Sales
- Removed many PHP warnings (Galette should be running fine when error_reporting = E_ALL)
- The log can now be sorted
0.60 -> 0.61¶
- Bugfix in member edition form (admin)
- Merged ajouter_adherent.php and gestion_contributions.php (member edition)
- Table prefixes are now allowed
- Removed all eval() functions (potentially dangerous)
- Picture resizing if GD is available
- HTML equivalents in members' names were badly displayed
- Go back to the member's contributions after adding one
- "1 days left" was not correct ;)
- Date filter added in contribution listing
- Correction of a few spelling mistake
- Navigation links when on a member's contributions list added
- Clicking on a member's name in the contributions list shows his contributions intead of his profile
- Lost password recovery added
- Removed the Galette acronym meaning
- Header corrections
- Better language file detection
- Bugfix in thumbnail display
- DROP permission wasn't checked during install process
- English translation
Galette source code¶
All Galette sources are stored in their own Git repository hosted by Tuxfamily (big thanks to them!). A Galette organization is also available on github, in which all repositories are mirrored.
All GIT repositories follow the same development model, therefore you will find two branches on each repository:
master
: this is always the latest stable release,develop
: the development version, may be unstable.
Project | Tuxfamily | Github |
---|---|---|
Galette core | git.tuxfamily.org/gitroot/galette/galette.git
|
https://github.com/galette/galette |
Documentation | git.tuxfamily.org/gitroot/galette/galettedoc.git
|
https://github.com/galette/galettedoc |
Website | git.tuxfamily.org/gitroot/galette/website.git
|
https://github.com/galette/website |
Auto plugin | git.tuxfamily.org/gitroot/galette/plugin-auto.git
|
https://github.com/galette/plugin-auto |
Events plugin | git.tuxfamily.org/gitroot/galette/plugin-events.git
|
https://github.com/galette/plugin-events |
Paypal plugin | git.tuxfamily.org/gitroot/galette/plugin-paypal.git
|
https://github.com/galette/plugin-paypal |
Objectslend plugin | git.tuxfamily.org/gitroot/galette/plugin-objectslend.git
|
https://github.com/galette/plugin-objectslend |
Maps plugin | git.tuxfamily.org/gitroot/galette/plugin-maps.git
|
https://github.com/galette/plugin-maps |
To clone one repository, use the following along with your Tuxfamily credentials:
$ git clone ssh://YOURUSER@git.tuxfamily.org/gitroot/galette/galette.git
Or as anonymous user:
$ git clone git://git.tuxfamily.org/gitroot/galette/galette.git
The galette
directory will then contain a working copy of Galette's source code.
Third party librarires¶
Galette's third party dependencies are not included in the repository. Instead, PHP dependencies are handled with Composer dependency manager and Javascript ones with Node Package Manager (npm) and gulpjs.
Once composer is installed on your workstation, just go in Galette sources directory and run:
$ cd galette.git
$ ./bin/install_deps
About Galette¶
The Galette project is kindly hosted by TuxFamily:
- Galette website,
- a GIT repository to manage Galette source code,
- mailing lists,
- ...
There are also a few external services:
- a bug tracker, to declare issues or to ask for evolutions,
- a wonderfull :p documentation, you are currently reading,
- a voting system, you can vote for features,
- a Github organization, used to run unit tests or documentation on readthedocs, among others,
- a continous integration system, that runs a bunch of tests each time a commit is done on the github mirror.
- a Telemetry application which handles and displays Telemetry data received from volunteer Galette instances.
Galette documentation is released under the terms of the Attribution-ShareAlike 3.0 Unported license, written using reStructuredText and built with Sphinx documentation builder.
Sphinx allows to build documentation in various formats from the same sources. Galette's documentation is therefore available as HTML, PDF and EPUB formats; thanks to Read the docs.
Social networks¶
Manage social networks of your association. This may be used in PDF or emails as variables (see inline doc on related parts).