Valider 97316855 rédigé par tcharlss@bravecassine.com's avatar tcharlss@bravecassine.com
Parcourir les fichiers

Formulaire de logo : on considère que les vieux logos sont des rôles attribués...

Formulaire de logo : on considère que les vieux logos sont des rôles attribués (et donc on ne propose pas ces rôles dans le formulaire d'ajout). On permet de saisir plusieurs rôles également lors de l'ajout de documents (sauf pour les logos évidemment).
parent b1202faa
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+22 −14
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -90,24 +90,31 @@ function formulaires_editer_logo_charger_dist($objet, $id_objet, $retour = '', $
	$logos = array();
	$config = array(
		'logo'        => lire_config('activer_logos'),
		'on'          => lire_config('activer_logos'),
		'logo_survol' => lire_config('activer_logos_survol'),
		'off'         => lire_config('activer_logos_survol'),
	);
	$chercher_logo = charger_fonction('chercher_logo', 'inc');

	// 1) Cherchons d'abord les logos historiques
	$etats = array('on', 'off');
	foreach($etats as $etat) {
		if ($config[$etat] == 'oui'
	$etats_vers_roles = array(
		'on'  => 'logo',
		'off' => 'logo_survol',
	);
	$etats_attribues = array();
	foreach(array_keys($etats_vers_roles) as $etat) {
		$role = $etats_vers_roles[$etat];
		if ($config[$role] == 'oui'
			and $logo = $chercher_logo($id_objet, $id_table_objet, $etat)
		) {
			$logos[] = $logo;
			$etats_attribues[] = $role;
		}
	}

	// 1) Cherchons ensuite les documents avec des rôles de logos
	$roles_logos = roles_documents_presents_sur_objet($objet, $id_objet, 0, true); // Tableau des rôles attribués ou non
	// 2) Cherchons ensuite les documents avec des rôles de logos
	$roles_logos = roles_documents_presents_sur_objet($objet, $id_objet, 0, true);
	// On ajuste la liste avec les vieux logos et leurs états
	$roles_logos['attribues'] = array_merge($roles_logos['attribues'], $etats_attribues);
	$roles_logos['attribuables'] = array_diff($roles_logos['attribuables'], $etats_attribues);
	foreach ($roles_logos['attribues'] as $role) {
		// Vérifier la config de certains rôles connus
		$config_actif = (!in_array($role, array_keys($config)) or (in_array($role, array_keys($config)) and $config[$role] == 'oui'));
@@ -138,7 +145,8 @@ function formulaires_editer_logo_charger_dist($objet, $id_objet, $retour = '', $
		'logos'              => $logos,
		'objet'              => $objet,
		'id_objet'           => $id_objet,
		'role'        => '', // le rôle qui sera sélectionné
		'roles'              => '', // le rôle qui sera sélectionné
		'roles_attribuables' => $roles_logos['attribuables'], // rôles attribuables
		'_options'           => $options,
		'editer_logo'        => true, // Un flag pour identifier le contexte
	);
+5 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -24,7 +24,7 @@
#SET{cle, document-#ENV{id_document}-#ENV{objet}-#ENV{id_objet}}
#SET{roles, #ENV{objet}|roles_documents_presents_sur_objet{#ENV{id_objet}, #ENV{id_document}, #ENV{principaux}}}
#SET{role_unique, #GET{roles/attribues}|count|=={1}}
#SET{no_dropdown, #GET{role_unique}|et{#GET{roles/non_attribues}|non}}
#SET{no_dropdown, #GET{role_unique}|et{#GET{roles/attribuables}|non}}

<BOUCLE_dropdown(CONDITION){si #GET{no_dropdown}|non}>
<div class="btn-group">
@@ -45,19 +45,19 @@
			</button>
		</li>
		</BOUCLE_roles_attribues>
		[(#GET{roles/non_attribues}|oui)<li class="divider"></li>]
		[(#GET{roles/attribuables}|oui)<li class="divider"></li>]
		</B_roles_attribues>

		[(#REM) Les rôles non attribués ]
		<B_roles_non_attribues>
		<B_roles_attribuables>
		<li class='dropdown-header'><:roles:ajouter_role:></li>
		<BOUCLE_roles_non_attribues(DATA){source table,#GET{roles/non_attribues}}>
		<BOUCLE_roles_attribuables(DATA){source table,#GET{roles/attribuables}}>
		<li>
			<button type="submit" name="ajouter_lien\[#GET{cle}-#VALEUR\]" class="link btn btn-mini delete">
			[(#CHEMIN_IMAGE{inserer-8.png}|balise_img{'+'})] [(#VALEUR|role{document})]
			</button>
		</li>
		</BOUCLE_roles_non_attribues>
		</BOUCLE_roles_attribuables>

	</ul>

+21 −8
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -2,18 +2,31 @@

	Sélection d'un role à attribuer à un document

	Paramètres :
	**obligatoire
	*conseillé

		- roles : rôle(s) sélectionné(s)
		- **roles_attribuables : liste des rôles pour peupler le select
		- multiple : 'oui' pour permettre une sélection de plusieurs rôles
		- readonly : 'oui' pour interdire l'édition
]
<B_selecteur_roles>
#SET{multiple, #ENV{multiple}|?{multiple}}
#SET{readonly, #ENV{readonly}|?{readonly}}

<div class="selecteur-role">

	<B_select_roles>
	<label for="role"><:roles_documents:champ_role_logo_label:>&nbsp;:</label>
	#SET{readonly, #TOTAL_BOUCLE|=={1}|?{readonly}}
	<select name="role" id="role" class="select"[ readonly="(#GET{readonly})"]>
		<BOUCLE_select_roles(DATA){source table, #ENV{roles}}>
	<label for="roles">[(#GET{multiple}|?{<:roles_documents:champ_roles_label:>,<:roles_documents:champ_role_label:>})]&nbsp;:</label>
	
	<select name="[(#GET{multiple}|?{roles\[\],roles})]" id="roles" class="select[(#GET{multiple}|oui) chosen]"[ readonly="(#GET{readonly})"][ multiple="(#GET{multiple})"]>

		<BOUCLE_selecteur_roles(DATA){source table, #ENV{roles_attribuables}}>
		#SET{selected, #VALEUR|=={#ENV{role}}|?{selected}}
		<option value="#VALEUR"[ selected="(#GET{selected})"]>[(#VALEUR|role{document})]</option>
		</BOUCLE_select_roles>
		</BOUCLE_selecteur_roles>

	</select>
	</B_select_roles>

</div>
</B_selecteur_roles>
 No newline at end of file
+2 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -12,7 +12,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
	'bouton_iconifier_logo' => 'Convertir en document',

	// C
	'champ_role_logo_label' => 'Rôle',
	'champ_role_label' => 'Rôle',
	'champ_roles_label' => 'Rôles',

	// M
	'media_logos' => 'Logos',
+4 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -41,7 +41,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 *     Tableau associatif avec 3 clés
 *     - possibles : tous les rôles possibles
 *     - attribués : ceux attribués
 *     - non_attribues : ceux non attribues
 *     - attribuables : ceux non attribues
 */
function roles_documents_presents_sur_objet($objet, $id_objet, $id_document=0, $principaux = null) {
	static $done = array();
@@ -75,7 +75,7 @@ function roles_documents_presents_sur_objet($objet, $id_objet, $id_document=0, $
	$roles_attribues = array_column($res, 'role');

	// Liste des rôles non attribués
	$roles_non_attribues = array_diff($roles_possibles, $roles_attribues);
	$roles_attribuables = array_diff($roles_possibles, $roles_attribues);

	// On filtre éventuellement les rôles principaux (=logos)
	if (!is_null($principaux)
@@ -85,14 +85,14 @@ function roles_documents_presents_sur_objet($objet, $id_objet, $id_document=0, $
		$filtrer = ($principaux ? 'array_intersect' : 'array_diff');
		$roles_possibles = $filtrer($roles_possibles, $roles_principaux);
		$roles_attribues = $filtrer($roles_attribues, $roles_principaux);
		$roles_non_attribues = $filtrer($roles_non_attribues, $roles_principaux);
		$roles_attribuables = $filtrer($roles_attribuables, $roles_principaux);
	}

	// On retourne le détail
	$roles = array(
		'possibles'     => $roles_possibles,
		'attribues'     => $roles_attribues,
		'non_attribues' => $roles_non_attribues,
		'attribuables' => $roles_attribuables,
	);

	return $done[$hash] = $roles;
Chargement en cours