Користувачі, що брали участь в експериментах

Попередження

Користуйтеся тільки слідуючи вказівкам, якщо ви знаєте, що робите … «Керівництво не несе відповідальності за будь-який випадок […]»: D

Пристосування до вашого графіку

Якщо ви вмієте працювати з таблицями стилів CSS, ви можете пристосувати Galette CSS під свої власні кольори. Для цього настійно не пораджено редагувати файли Galette CSS, а краще використовувати спеціальний механізм, призначений для цього. Створіть файл galette_local.css у вашому каталозі webroot/themes/default зі своїми стилями, їх буде автоматично увімкнено.

Постарайтеся зробити все якомога простіше. Наприклад, якщо ви хочете змінити колір назви товариства (відображається під заголовками сторінок), ви знайдете в Galette CSS-правило #asso_name, яке визначає кілька параметрів, включно з кольором. Потім, у вашій таблиці стилів, вам знадобиться тільки наступне:

#asso_name {
    color: red;
}

Цього буде достатньо для показу назви вашого товариства червоним кольором. Запримітьте, що локальний CSS файл і всі проблеми, які він може викликати, не будуть прийняті до уваги командою Galette, підтримка не буде надана.

Ви також можете перевизначити таблицю стилів друку, просто створіть файл galette_print_local.css.

Додавання та змінення рядків

За необхідності можна налаштувати перекладені рядки в Galette - без змінення будь-якого вихідного файлу Galette. Просто створіть файл galette_ {mylang} _local_lang.php (де {mylang} повинен бути замінений на мову, наприклад fr_FR.utf8 або en_US) в каталозі lang. Цей файл повинен містити простий PHP-масив з вихідним рядком (тим, що у вихідному коді Galette) в якості індексу.

Наприклад, ми хочемо змінити рядок «Password» на сторінці входу в систему українською мовою, перекладену як Пароль:. Оригінальний рядок - Password: (див. galette/templates/default/pages/index.html.twig), його український переклад - Пароль: і ми хочемо замінити його на Гасло: `; тому ми створимо galette_fr_FR.utf8_local_lang.php з наступним змістом:

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

Оскільки Galette використовує систему кешування для перекладів, зміни можуть бути видні не відразу; можливо, вам доведеться перезапустити PHP (або очистити кеш). Важливо сприймати вихідний рядок дослівно, включаючи пунктуацію, і стежити за тим, щоб у всіх рядках були одинарні лапки (зі зворотною скісною рискою).

Ви також можете перевизначити мови для розширень, використовуючи метод sam, просто помістіть файл в каталог plugins lang і назвіть його {plugin}_{mylang}_local_lang.php де {plugin} - назва маршруту, яку ви можете знайти в файлі _define.php.

Примітка

Це буде працювати тільки за використання функцій перекладу Galette, але не за використання рідного gettext.

Зміна тривалості сеансу

Змінено в версії 1.3.0: The session lifetime is a setting stored in database, pref_session_timeout, reachable from the advanced configuration page. The GALETTE_TIMEOUT constant still works and still wins over it.

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

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

Запис IP-адрес за проксі-сервером

Якщо ваш зразок Galette знаходиться за проксі-сервером, IP-адреса, збережена в історії, буде проксі-адресою, а не призначеною для користувача :(

Змінено в версії 1.3.0: The proxy depth is a setting stored in database, pref_x_forwarded_for_index, reachable from the advanced configuration page. The GALETTE_X_FORWARDED_FOR_INDEX constant still works and still wins over it.

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

Попередження

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

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

Зовнішня статистика

Нове в версії 0.9.

Багато статистичних платформ покладаються на додатковий блок JavaScript для роботи. Ви можете створити файл tracking.js у каталозі webroot/themes/default, його буде автоматично включено.

Для роботи Galette використовує Javascript. Якщо код, який ви додасте в файл tracking.js, буде неправильним, це може привести до зламання Galette!

Експорти CSV

Змінено в версії 1.0.0: Ви можете налаштувати експорт параметрів за допомогою файлу YAML замість XML.

Galette надає систему експорту CSV з параметрами. Надається тільки один параметричний експорт, але ви можете додати свій власний в файл config / exports.yaml.

Примітка

Застарілий файл конфігурації XML все ще підтримується; якщо знайдено повторюваний ідентифікатор, пріоритет має файл YAML.

Давайте розглянемо існуючий параметризований експорт «cotisations»:

- cotisations:
  # Model: List all cotisations amounts, begin and end dates with adherent name and town
  name: Cotisations
  description: Export de l'état des cotisations pour l'ensemble des adhérents
  filename: galette_cotisations.csv
  query: |-
    SELECT nom_adh, prenom_adh, ville_adh, montant_cotis, date_debut_cotis, date_fin_cotis
      FROM galette_cotisations
      INNER JOIN galette_adherents
        ON (galette_cotisations.id_adh=galette_adherents.id_adh)
  headers:
    - Name
    - Surname
    - Town
    - Amount
    - Begin date
    - End date
  separator: ;
  quote: \"
  • кожен запис масиву є унікальним ідентифікатором, малими літерами без пробілів або спеціальних символів

  • name та description є обов’язковими для відображення кожного параметрованого експорту в інтерфейсі користувача

  • filename встановлює назву файлу для вихідного файлу

  • query – це запит для виконання, він є обов’язковим. Немає жодних інших обмежень, окрім обмежень механізму SQL, очікуйте, що ви не можете надіслати їм жодних параметрів

  • headers керує заголовками стовпців:

    • як у наведеному вище прикладі, масив власних заголовків стовпців

    • якщо їх немає, імена полів Galette будуть експортовані. Ви можете використовувати іменовані стовпці у своєму запиті SQL (SELECT nom_adh AS "Column title" FROM ...)

    • встановіть значення false (headers: false), щоб вимкнути виведення заголовків стовпців

  • separator – це роздільник CSV, який буде використано. Можливі значення:

    • крапка з комою (;) - за замовчуванням

    • кома (,)

    • символ таблиці (\t)

  • quote або подвійна лапка (за замовчуванням) або простий символ лапки

  • щоб вимкнути експорт, ви можете додати inactive: true

Засоби адміністрування

Попередження

Всі засоби адміністратора є небезпечними, використовуйте їх з обережністю, і переконайтеся, що ви зробили резервну копію бази даних перед використанням!

Для адміністратора Galette передбачено кілька засобів, що дозволяють:

  • повторна ініціалізація вмістів розсилань поверне вміст всіх листів до типових значень,

  • повторна ініціалізація конфігурацій полів скине всі поля ядра членів в типові значення. Це не включає динамічні поля,

  • повторна ініціалізація моделей PDF скине моделі PDF до типових значень,

  • утворити порожні логіни і паролі ці дані необхідні для підвищення безпеки, але іноді відсутні (наприклад, при імпорті CSV). Ця функція встановить випадкові значення в поля логіна і пароля, які будуть порожніми в базі даних.

  • Виправити формат дат динамічних полів перетворить усі дати динамічних полів у новий формат (див. dynamic fields).

Advanced configuration

Нове в версії 1.3.0.

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

Попередження

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

Galette advanced configuration

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

Password asked before the advanced configuration page opens

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

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

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

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

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

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

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

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

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

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

The statuses a setting can carry

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

A locked setting, and an editable one

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

Constants behavior.inc.php understands

Режими Галетта

У Galette передбачено кілька режимів, які можна налаштувати за допомогою константи GALETTE_MODE (see Galette behavior configuration). Ця директива може приймати такі значення:

  • PROD: робочий режим (невиробничий екземпляр має бути в іншому режимі). Це режим за замовчуванням для випусків, але він може змінитися в розробці.

  • DEMO: демонстраційний режим, такий самий, як PROD, але з вимкненими деякими функціями, як-от надсилання електронних листів, зміна даних суперадміністратора, …

  • TEST: зарезервовано для модульних тестів.

  • MAINT: режим обслуговування. Лише суперадміністратор зможе увійти.

Налагодження Galette

Нове в версії 1.1.0.

Щоб увімкнути режим налагодження, можна використовувати спеціальну постійну назву GALETTE_DEBUG. При включеному режимі:

  • нестабільні/недороблені частини будуть активовані,

  • деякі дані не зберігатимуться в сесії,

  • рівень журналу за замовчуванням встановлено на DEBUG,

  • новини не будуть кешуватися,

  • перевірка версії бази даних не проводитиметься.

Конфігурація поведінки

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

Наприклад:

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

Змінено в версії 1.3.0: Only the settings Galette needs before it can reach database are still declared here. The others became regular settings, editable from the advanced configuration page.

The following settings can be set:

  • GALETTE_DEBUG: enable debug mode, see Galette debug,

  • GALETTE_MODE: instance mode, see Galette modes,

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

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

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

Settings that moved

Нове в версії 1.3.0: Three settings that used to be declared here are now stored in database, and edited from the advanced configuration page:

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

Примітка

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