Valider 871e588c rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Amelioration du #FORMULAIRE_DATER a qui on peut passer explicitement le champ...

Amelioration du #FORMULAIRE_DATER a qui on peut passer explicitement le champ date et le champ date_redac que l'on veut utiliser ainsi que les labels associes, ce qui permet d'en etendre l'usage et la reutilisation possible
parent 4301bcd2
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<div class="formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{objet}-#ENV{id,nouveau}">
<div class="formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{objet}-#ENV{id,nouveau}[ (#ENV{_class})]">
	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
	[(#ENV{editable})
@@ -30,7 +30,7 @@
			<BOUCLE_editer_date_anterieure(CONDITION){si #ENV{_editer_date_anterieure}|oui}>
				#SET{name,date_redac}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
				<div class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
					<label for="#GET{name}"><:texte_date_publication_anterieure:> #AIDER{artdate_redac}</label>[
					<label for="#GET{name}">[(#ENV{_label_date_redac,<:texte_date_publication_anterieure:>})] #AIDER{artdate_redac}</label>[
					<span class='erreur_message'>(#GET{erreurs})</span>
					]
					<span class="affiche"[(#ENV{_saisie_en_cours}|oui)style="display:none;"]>[(#ENV*{afficher_#GET{name}}|affdate|sinon{<:jour_non_connu_nc:>})]</span>
@@ -45,7 +45,7 @@
							<input type="checkbox" name="sans_redac" value="1"[(#ENV{sans_redac}|oui)checked="checked"] id="sans_redac"
								onclick="jQuery(this).blur();"
								onchange="if (jQuery(this).prop('checked')) {jQuery(this).parent().siblings().hide('fast');$(this).parents('form').find('.editer_date_redac label[for=date_redac]').hide(); } else { jQuery(this).parent().siblings().show('fast'); ;$(this).parents('form').find('.editer_date_redac label[for=date_redac]').show('fast'); }"
							/><label for="sans_redac"><:texte_date_publication_anterieure_nonaffichee:></label>
							/><label for="sans_redac">[(#ENV{_texte_sans_date_redac,<:texte_date_publication_anterieure_nonaffichee:>})]</label>
						</span>
					</BOUCLE_editable1>
					</span>
+39 −6
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -34,6 +34,12 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 *     Options. Si string, unserialize pour obtenir un tableau.
 *
 *     - date_redac : Permet de modifier en plus la date de rédaction antérieure
 *     - champ_date : permet de preciser le champ date qu'on utilise
 *     - label_date : label optionnel pour la saisie du champ date
 *     - champ_date_redac : permet de preciser le champ date_redac qu'on utilise
 *     - label_date_redac : label optionnel pour la saisie du champ date_redac
 *     - texte_sans_date_redac : texte optionnel affiche pour vider la date_redac
 *     - class : une classe ajoutable au formulaire pour le distinguer si on a plusieurs occurences
 * @return array
 *     Environnement du formulaire
 **/
@@ -58,6 +64,9 @@ function formulaires_dater_charger_dist($objet, $id_objet, $retour = '', $option
	}

	$champ_date = $desc['date'] ? $desc['date'] : 'date';
	if (isset($options['champ_date']) and $options['champ_date']) {
		$champ_date = $options['champ_date'];
	}
	if (!isset($desc['field'][$champ_date])) {
		return false;
	}
@@ -70,11 +79,15 @@ function formulaires_dater_charger_dist($objet, $id_objet, $retour = '', $option


	$select = "$champ_date as date";
	if (isset($desc['field']['date_redac'])) {
		$select .= ',date_redac';
	$champ_date_redac = 'date_redac';
	if (isset($options['champ_date_redac']) and $options['champ_date_redac']) {
		$champ_date_redac = $options['champ_date_redac'];
	}
	if (isset($desc['field'][$champ_date_redac])) {
		$select .= ",$champ_date_redac as date_redac";
	}
	if (isset($desc['field']['statut'])) {
		$select .= ',statut';
		$select .= ",statut";
	}


@@ -133,6 +146,19 @@ function formulaires_dater_charger_dist($objet, $id_objet, $retour = '', $option
	}
	$valeurs['_label_date'] = (($statut == 'publie') ?
		_T('texte_date_publication_objet') : _T('texte_date_creation_objet'));
	if (isset($options['label_date']) and $options['label_date']) {
		$valeurs['_label_date'] = $options['label_date'];
	}
	if (isset($options['label_date_redac']) and $options['label_date_redac']) {
		$valeurs['_label_date_redac'] = $options['label_date_redac'];
	}
	if (isset($options['texte_sans_date_redac']) and $options['texte_sans_date_redac']) {
		$valeurs['_texte_sans_date_redac'] = $options['texte_sans_date_redac'];
	}
	if (isset($options['class']) and $options['class']) {
		$valeurs['_class'] = $options['class'];
	}

	$valeurs['_saisie_en_cours'] = (_request('_saisie_en_cours') !== null or _request('date_jour') !== null);

	// cas ou l'on ne peut pas dater mais on peut modifier la date de redac anterieure
@@ -261,6 +287,9 @@ function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '', $option
		} #impossible en principe

		$champ_date = $desc['date'] ? $desc['date'] : 'date';
		if (isset($options['champ_date']) and $options['champ_date']) {
			$champ_date = $options['champ_date'];
		}

		$set = array();

@@ -278,9 +307,13 @@ function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '', $option
			$set[$champ_date] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
		}

		if (isset($desc['field']['date_redac']) and $v['_editer_date_anterieure']) {
		$champ_date_redac = 'date_redac';
		if (isset($options['champ_date_redac']) and $options['champ_date_redac']) {
			$champ_date_redac = $options['champ_date_redac'];
		}
		if (isset($desc['field'][$champ_date_redac]) and $v['_editer_date_anterieure']) {
			if (!_request('date_redac_jour') or _request('sans_redac')) {
				$set['date_redac'] = sql_format_date(0, 0, 0, 0, 0, 0);
				$set[$champ_date_redac] = sql_format_date(0, 0, 0, 0, 0, 0);
			} else {
				if (!$d = dater_recuperer_date_saisie(_request('date_redac_jour'), 'date_redac')) {
					$d = array(date('Y'), date('m'), date('d'));
@@ -288,7 +321,7 @@ function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '', $option
				if (!$h = dater_recuperer_heure_saisie(_request('date_redac_heure'))) {
					$h = array(0, 0);
				}
				$set['date_redac'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
				$set[$champ_date_redac] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
			}
		}