<?php
/**
 * Plugin Name:       Mairie Affiche Information
 * Plugin URI:        https://wordpress.org/plugins/mairie-affiche-information
 * Description:       Generate the recurring town hall notices - office closure and council meeting - by filling in a date, and save them straight to the Media Library. Access is limited to the roles you choose.
 * Version:           1.2.0
 * Author:            Verturin
 * License:           GPL-2.0-or-later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       mairie-affiche-information
 * Domain Path:       /languages
 * Requires at least: 6.2
 * Tested up to:      7.0
 * Requires PHP:      7.4
 */

defined( 'ABSPATH' ) || exit;

define( 'MAIRIE_AFFICHE_INFORMATION_VERSION', '1.2.0' );
define( 'MAIRIE_AFFICHE_INFORMATION_FILE', __FILE__ );
define( 'MAIRIE_AFFICHE_INFORMATION_DIR', plugin_dir_path( __FILE__ ) );
define( 'MAIRIE_AFFICHE_INFORMATION_URL', plugin_dir_url( __FILE__ ) );

/** Capacité requise pour générer une affiche. */
define( 'MAIRIE_AFFICHE_INFORMATION_CAP', 'mairie_affiche_information_generer' );

/** Clé de l'option de réglages. */
define( 'MAIRIE_AFFICHE_INFORMATION_OPTION', 'mairie_affiche_information_reglages' );

require_once MAIRIE_AFFICHE_INFORMATION_DIR . 'includes/class-mairie-affiche-information-reglages.php';
require_once MAIRIE_AFFICHE_INFORMATION_DIR . 'includes/class-mairie-affiche-information-capacites.php';
require_once MAIRIE_AFFICHE_INFORMATION_DIR . 'includes/class-mairie-affiche-information-generateur.php';
require_once MAIRIE_AFFICHE_INFORMATION_DIR . 'includes/class-mairie-affiche-information-conseil.php';
require_once MAIRIE_AFFICHE_INFORMATION_DIR . 'includes/class-mairie-affiche-information-mediatheque.php';
require_once MAIRIE_AFFICHE_INFORMATION_DIR . 'includes/class-mairie-affiche-information-admin.php';
require_once MAIRIE_AFFICHE_INFORMATION_DIR . 'includes/class-mairie-affiche-information-ajax.php';

/**
 * Démarrage.
 */
function mairie_affiche_information_init() {
	Mairie_Affiche_Information_Admin::init();
	Mairie_Affiche_Information_Ajax::init();
}
add_action( 'plugins_loaded', 'mairie_affiche_information_init' );

/*
 * Pas d'appel à load_plugin_textdomain() : depuis WordPress 4.6 les traductions
 * sont chargées automatiquement (en-tête Domain Path pour les fichiers fournis,
 * translate.wordpress.org pour les autres). Plugin Check signale l'appel manuel
 * comme déconseillé.
 */

/**
 * Activation : attribue la capacité aux rôles retenus (administrateur par défaut).
 */
function mairie_affiche_information_activation() {
	$reglages = Mairie_Affiche_Information_Reglages::get();
	Mairie_Affiche_Information_Capacites::synchroniser( $reglages['roles'] );
}
register_activation_hook( __FILE__, 'mairie_affiche_information_activation' );

/**
 * Désactivation : retire la capacité de tous les rôles.
 */
function mairie_affiche_information_desactivation() {
	Mairie_Affiche_Information_Capacites::retirer_partout();
}
register_deactivation_hook( __FILE__, 'mairie_affiche_information_desactivation' );

/**
 * L'utilisateur courant peut-il générer une affiche ?
 *
 * @return bool
 */
function mairie_affiche_information_utilisateur_autorise() {
	return current_user_can( MAIRIE_AFFICHE_INFORMATION_CAP ) || current_user_can( 'manage_options' );
}
