<?php

/**
 * Plugin CIBLOCE
 * @copyright 2018 MTECT
 * @author Christophe IMBERTI (cf. CPI art L121-1)
 * @license GNU/GPLv3
 */

if (!defined(
	'_ECRIRE_INC_VERSION'
)) {
	return;
}

include_spip('inc/cibloc_commun');
include_spip('inc/cibloc_choix_couleur');

function formulaires_cibloc_config_bouton_charger_dist($type_et_id) {

	if (!autoriser('configurer configuration')
			or !$type_et_id) {
		return false;
	}

	// valeurs actuelles
	$valeurs = cibloc_config_bouton($type_et_id);

	if (substr($type_et_id, -4) == 'vide') {
		$valeurs['bouton_transparent'] = 'oui';
	} else {
		$valeurs['bouton_transparent'] = 'non';
	}

	return $valeurs;
}

function formulaires_cibloc_config_bouton_verifier_dist($type_et_id) {
	$erreurs = [];

	// tableau des couleurs
	$tableau_nom_des_couleurs = cibloc_tableau_nom_des_couleurs();

	// actif
	if (!in_array(_request('statut'), ['active', 'masque', 'desactive'])) {
		$erreurs['statut'] = _T('cibloc:valeur_incorrecte');
	}

	// couleur
	if (!in_array(_request('couleur_bouton'), $tableau_nom_des_couleurs)) {
		$erreurs['couleur_bouton'] = _T('cibloc:valeur_incorrecte');
	}

	// couleur_survol
	if (!in_array(_request('couleur_bouton_survol'), $tableau_nom_des_couleurs)) {
		$erreurs['couleur_bouton_survol'] = _T('cibloc:valeur_incorrecte');
	}

	return $erreurs;
}

function formulaires_cibloc_config_bouton_traiter_dist($type_et_id) {
	$res = [];
	$valeurs_futures = [];
	$valeurs_actuelles = cibloc_config_bouton($type_et_id);
	$ok = false;
	$id = str_replace('bouton_', '', $type_et_id);

	$tableau_nom_champs = ['statut', 'couleur_bouton', 'couleur_bouton_survol'];

	foreach ($tableau_nom_champs as $nom_champ) {
		if ($valeur_saisie = _request($nom_champ)) {
			if ($valeur_saisie != $valeurs_actuelles[$nom_champ]) {
				$valeurs_futures[$nom_champ] = $valeur_saisie;
				$ok = true;
			}
		}
	}

	if ($ok) {
		$row = sql_fetsel('*', 'spip_cibloc_objets', "type='bouton' AND id='" . $id . "'");
		if ($row) {
			sql_updateq('spip_cibloc_objets', $valeurs_futures, "type='bouton' AND id='" . $id . "'");
		} else {
			$valeurs_futures['type'] = 'bouton';
			$valeurs_futures['id'] = $id;
			$valeurs_futures['source'] = 'maj';
			sql_insertq('spip_cibloc_objets', $valeurs_futures);
		}

		include_spip('inc/invalideur');
		suivre_invalideur('1');
		cibloc_purger_cache_css();
	}

	$res['message_ok'] = '';
	$res['redirect'] = generer_url_ecrire('cibloc_config_boutons');

	return $res;
}

function cibloc_config_bouton($type_et_id = '') {
	$return = [];
	$valeurs_defaut = [
		'statut' => 'active',
	];

	if ($type_et_id) {
		$tableau = cibloc_configuration_des_boutons();
		if (isset($tableau[$type_et_id])) {
			$return = $tableau[$type_et_id];

			foreach ($valeurs_defaut as $cle => $valeur) {
				if (!isset($return[$cle])) {
					$return[$cle] = $valeur;
				}
			}
		}
	}

	return $return;
}
