Skip to content
Extraits de code Groupes Projets
Valider b1101086 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Fix #58.

Puisque maintenant le javascript est à part, on peut mettre une case à
cocher pour demander d'afficher explicitement les messages de retour de chaque
traitement si jamais on a défini un message général.
parent 6e794691
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -30,9 +30,9 @@ function formidable_declarer_tables_interfaces($interfaces) {
$interfaces['tables_jointures']['spip_formulaires'][] = 'formulaires_liens';
$interfaces['tables_jointures']['spip_articles'][] = 'formulaires_liens';
$interfaces['tables_jointures']['spip_rubriques'][] = 'formulaires_liens';
$interfaces['exceptions_des_jointures']['spip_formulaires']['vu'] = array('spip_formulaires_liens', 'vu');
$interfaces['table_des_traitements']['MESSAGE_RETOUR']['formulaires']= _TRAITEMENT_RACCOURCIS;
$interfaces['table_des_traitements']['URL_REDIRECT']['formulaires']= 'vider_url(%s)';
......@@ -63,8 +63,8 @@ function formidable_declarer_tables_objets_sql($tables) {
'texte_creer_associer' => 'formidable:liens_creer_associer',
'texte_ajouter' => 'formidable:liens_ajouter',
'champs_editables' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'champs_versionnes' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'champs_editables' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'afficher_message_ok_traitements', 'saisies', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'champs_versionnes' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'saisies', 'afficher_message_ok_traitements', 'traitements', 'public','apres','url_redirect','resume_reponse'),
'field' => array(
'id_formulaire' => 'bigint(21) NOT NULL',
'identifiant' => 'varchar(200)',
......@@ -72,6 +72,7 @@ function formidable_declarer_tables_objets_sql($tables) {
'descriptif' => 'text',
'css' => 'varchar(255) not null default ""',
'message_retour' => "text NOT NULL default ''",
'afficher_message_ok_traitements' => 'varchar(2) NOT NULL default ""',
'saisies' => "longtext NOT NULL default ''",
'traitements' => "text NOT NULL default ''",
'public' => "enum('non', 'oui') DEFAULT 'non' NOT NULL",
......@@ -178,10 +179,10 @@ function formidable_declarer_tables_objets_sql($tables) {
'poubelle' => 'formidable:texte_statut_poubelle'
),
);
// Jointures sur les formulaires pour tous les objets
$tables[]['tables_jointures'][] = 'formulaires_liens';
return $tables;
}
......
......@@ -111,13 +111,17 @@ function formidable_upgrade($nom_meta_base_version, $version_cible) {
$maj['0.23.0'] = array(
array('formidable_saisies_identifier')
);
// Ajouter un champ "vu" pour les liaisons
$maj['1.0.0'] = array(
array('maj_tables', array('spip_formulaires_liens')),
array('formidable_verifier_liens_vu'),
);
// Ajouter un champ masquer_retour_traitements pour les formulaires
$maj['1.3.0'] = array(
array('maj_tables', array('spip_formulaires')),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
......@@ -379,7 +383,7 @@ function formidable_migrer_config() {
function formidable_verifier_liens_vu() {
include_spip('action/editer_liens');
include_spip('formidable_pipelines');
// Chercher tous les liens de form pas marqué comme vu
if ($liens = objet_trouver_liens(array('formulaire' => '*'), array('*' => '*'), array('vu="non"'))) {
foreach ($liens as $lien) {
......@@ -387,10 +391,10 @@ function formidable_verifier_liens_vu() {
$cle = id_table_objet($lien['objet']);
$contenu = sql_fetsel('*', $table, "$cle=".intval($lien['id_objet']));
$contenu = implode(' ', $contenu);
// On cherche les modèles insérés dans les textes du contenu
$formulaires = formidable_trouve_liens($contenu);
// Est-ce qu'on trouve le form de ce lien dans les modèles trouvés
if (isset($formulaires[$lien['id_formulaire']])) {
// On lui ajoute vu=oui
......
......@@ -45,6 +45,15 @@ function formulaires_editer_formulaire_saisies() {
'previsualisation' => 'oui',
)
),
array(
'saisie' => 'case',
'options' => array(
'nom' => 'afficher_message_ok_traitements',
'label_case' => '<:formidable:afficher_message_ok_traitements_label_case:>',
'conteneur_class' => 'pleine_largeur',
'afficher_si' => '@message_retour@',
),
),
array(
'saisie' => 'textarea',
'options' => array (
......@@ -123,7 +132,6 @@ function formulaires_editer_formulaire_verifier($id_formulaire, $nouveau) {
include_spip('inc/editer');
$erreurs = saisies_verifier(formulaires_editer_formulaire_saisies());
if (!isset($erreurs['identifiant'])) {
$identifiant = _request('identifiant');
if (sql_getfetsel('id_formulaire', 'spip_formulaires', 'identifiant = '.sql_quote($identifiant).' AND id_formulaire != '.intval($id_formulaire))) {
......
......@@ -352,6 +352,8 @@ function formulaires_formidable_traiter_dist($id, $valeurs = array(), $id_formul
$formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . $id_formulaire);
$saisies = unserialize($formulaire['saisies']);
$traitements = unserialize($formulaire['traitements']);
$afficher_message_ok_traitements = $formulaire['afficher_message_ok_traitements'];
// On passe les traitements en pipelines, pour s'assurer de l'ordre le cas échéant
$traitements = pipeline(
'formidable_traitements',
......@@ -368,6 +370,7 @@ function formulaires_formidable_traiter_dist($id, $valeurs = array(), $id_formul
$retours['formidable_afficher_apres'] = $formulaire['apres'];
$retours['id_formulaire'] = $id_formulaire;
// Si on a une redirection valide
if ($url_redirect) {
$retours['redirect'] = $url_redirect;
......@@ -430,10 +433,16 @@ function formulaires_formidable_traiter_dist($id, $valeurs = array(), $id_formul
$retours
);
// Collecter les messages de retour afin de les formater correctement par la suite
if (!empty($retours['message_ok'])) {
if (
!empty($retours['message_ok'])
and (
$afficher_message_ok_traitements
or !$formulaire['message_retour']
)
) {
$messages_ok .= wrap(propre($retours['message_ok']),'<div class="message_retour_traitement message_retour_'.$type_traitement.'">');
$retours['message_ok'] = ''; // Inutile de les exposer aux autres traitements
}
$retours['message_ok'] = ''; // Inutile de les exposer aux autres traitements
$messages_ok .= $retours['scripts_ok'];
} else {
// traitement introuvable, ne pas retenter
......
......@@ -177,6 +177,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'liens_retirer_tous_liens_formulaires' => 'Retirer tous les formulaires',
// M
'afficher_message_ok_traitements_label_case' => 'Afficher les messages de retour spécifiques à chaque traitement',
'minutes_secondes' => '@m@min @s@s',
'modele_label_formulaire_formidable' => 'Quel formulaire ?',
'modele_nom_formulaire' => 'un formulaire',
......
......@@ -5,7 +5,7 @@
etat="stable"
compatibilite="[3.1.0;3.2.*]"
logo="images/formidable-64.png"
schema="1.0.0"
schema="1.3.0"
documentation="https://contrib.spip.net/Formidable-le-generateur-de-formulaires"
>
<nom>Formidable</nom>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter