Changeset 111029 in spip-zone


Ignore:
Timestamp:
Jul 8, 2018, 4:22:55 PM (12 months ago)
Author:
rastapopoulos@…
Message:

Nouvelle fonctionnalité : il est possible d'importer un CSV normalisé avec tous les champs d'un profil, donc de plusieurs objets différents à la fois, auteur, orga, coordonnées, etc, et ça crée alors les profils en cascade, et tous les objets de chaque profil ! À priori ça gère aussi quand vous avez des champs extras, comme tout le reste de ce plugin, mais pour l'instant le seul truc que ça ne gère pas, c'est s'il y a des champs extras à valeurs multiples, checkboxes etc, car il faudrait gérer leur liste de valeurs séparées par des virgules dans sa case du CSV par exemple. Mais ça va venir. / En corrolaire, un autre formulaire permet ou plutôt permettra d'exporter tous les profils d'un même type. Pour l'instant ça n'exporte que les colonnes du CSV, ce qui est déjà pas mal car ça permet d'avoir dynamiquement le template de CSV de n'importe quel profil, sans avoir à le créer soi-même !

Location:
_plugins_/profils/trunk
Files:
7 added
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/profils/trunk/formulaires/profil.php

    r110956 r111029  
    2828 * @param int|string $id_ou_identifiant_profil
    2929 *     ID SQL ou identifiant textuel du profil voulu
     30 * @param string $retour
     31 *              URL de redirection une fois terminé
    3032 * @return string
    3133 *     Hash du formulaire
    3234 */
    33 function formulaires_profil_identifier_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '') {
     35function formulaires_profil_identifier_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '', $forcer_admin=false) {
    3436        return serialize(array(intval($id_auteur)));
    3537}
     
    4446 * @param int|string $id_ou_identifiant_profil
    4547 *     ID SQL ou identifiant textuel du profil voulu
     48 * @param string $retour
     49 *              URL de redirection une fois terminé
     50 * @return array
     51 *     Tableau des saisies
     52 */
     53function formulaires_profil_saisies_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '', $forcer_admin=false) {
     54        $saisies = profils_chercher_saisies_profil('edition', $id_auteur, $id_ou_identifiant_profil);
     55       
     56        return $saisies;
     57}
     58
     59/**
     60 * Chargement du formulaire de profil
     61 *
     62 * Déclarer les champs postés et y intégrer les valeurs par défaut
     63 *
     64 * @param int|string $id_auteur
     65 *     Identifiant du compte utilistateur. 'new' pour une création.
     66 * @param int|string $id_ou_identifiant_profil
     67 *     ID SQL ou identifiant textuel du profil voulu
     68 * @param string $retour
     69 *              URL de redirection une fois terminé
    4670 * @return array
    4771 *     Environnement du formulaire
    4872 */
    49 function formulaires_profil_saisies_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '') {
    50         $saisies = profils_chercher_saisies_profil('edition', $id_auteur, $id_ou_identifiant_profil);
    51        
    52         return $saisies;
    53 }
    54 
    55 /**
    56  * Chargement du formulaire de profil
    57  *
    58  * Déclarer les champs postés et y intégrer les valeurs par défaut
    59  *
    60  * @param int|string $id_auteur
    61  *     Identifiant du compte utilistateur. 'new' pour une création.
    62  * @param int|string $id_ou_identifiant_profil
    63  *     ID SQL ou identifiant textuel du profil voulu
    64  * @return array
    65  *     Environnement du formulaire
    66  */
    67 function formulaires_profil_charger_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '') {
     73function formulaires_profil_charger_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '', $forcer_admin=false) {
    6874        include_spip('inc/autoriser');
    6975        $contexte = array();
     
    116122 * @param int|string $id_ou_identifiant_profil
    117123 *     ID SQL ou identifiant textuel du profil voulu
     124 * @param string $retour
     125 *              URL de redirection une fois terminé
    118126 * @return array
    119127 *     Tableau des erreurs
    120128 */
    121 function formulaires_profil_verifier_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '') {
     129function formulaires_profil_verifier_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '', $forcer_admin=false) {
    122130        $erreurs = array();
    123131       
     
    136144 * @param int|string $id_ou_identifiant_profil
    137145 *     ID SQL ou identifiant textuel du profil voulu
     146 * @param string $retour
     147 *              URL de redirection une fois terminé
    138148 * @return array
    139149 *     Retours des traitements
    140150 */
    141 function formulaires_profil_traiter_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '') {
     151function formulaires_profil_traiter_dist($id_auteur = 'new', $id_ou_identifiant_profil = '', $retour = '', $forcer_admin=false) {
    142152        if ($retour) {
    143153                refuser_traiter_formulaire_ajax();
     
    180190                // Si c'est une demande de création, deux cas possibles
    181191                if (!$id_auteur or $id_auteur=='new') {
    182                         // Si personne n'est connecté, c'est alors une inscription
    183                         if (!session_get('id_auteur')) {
     192                        // Si on n'a pas forcé en mode admin ou que personne n'est connecté, c'est alors une inscription de la personne qui a validé
     193                        if (!$forcer_admin and !session_get('id_auteur')) {
    184194                                // Pseudo et email repris des autres champs
    185195                                set_request('mail_inscription', $email_principal);
  • _plugins_/profils/trunk/lang/profil_fr.php

    r110955 r111029  
    5050        'erreur_email_obligatoire' => 'Il doit y avoir un email obligatoire dans les champs ou dans les coordonnées.',
    5151        'errreur_identifiant_existant' => 'Cet identifiant est déjà utilisé',
     52        'exporter_champ_seulement_colonnes_label_case' => 'Ne pas exporter les données, seulement les colonnes',
     53        'exporter_titre' => 'Exportation',
    5254        // I
    5355        'icone_creer_profil' => 'Créer un profil',
    5456        'icone_modifier_profil' => 'Modifier ce profil',
     57        'importer_titre' => 'Importation',
    5558        'info_1_profil' => 'Un profil',
    5659        'info_aucun_profil' => 'Aucun profil',
  • _plugins_/profils/trunk/paquet.xml

    r110969 r111029  
    22        prefix="profils"
    33        categorie="auteur"
    4         version="1.2.2"
     4        version="1.3.0"
    55        schema="1.0.0"
    66        etat="test"
     
    1212       
    1313        <auteur lien='https://www.ldd.fr'>Les Développements Durables</auteur>
     14        <auteur lien='https://www.mukt.fr'>Mukt</auteur>
    1415        <licence>GNU/GPL</licence>
    1516       
    16         <necessite nom="saisies" compatibilite="[2.23.3;]" />
     17        <necessite nom="saisies" compatibilite="[2.26.0;]" />
     18        <necessite nom="spip_bonux" compatibilite="[3.4.6;]" />
    1719        <utilise nom="contacts" compatibilite="[3.1.0;]" />
    1820        <utilise nom="coordonnees" compatibilite="[2.3.28;]" />
     
    2931        <pipeline nom="formulaire_traiter" inclure="profils_pipelines.php" />
    3032        <pipeline nom="affiche_enfants" inclure="profils_pipelines.php" />
     33        <pipeline nom="afficher_config_objet" inclure="profils_pipelines.php" />
    3134
    3235        <menu nom="profils" titre="profil:titre_profils" parent="menu_configuration" icone="images/profil-16.png" action="profils" />
  • _plugins_/profils/trunk/profils_pipelines.php

    r110956 r111029  
    317317        return $flux;
    318318}
     319
     320/**
     321 * Ajouter la liste des comptes d'un profil
     322 *
     323 * @pipeline affiche_enfants
     324 * @param  array $flux Données du pipeline
     325 * @return array       Données du pipeline
     326 */
     327function profils_afficher_config_objet($flux) {
     328        if (
     329                $flux['args']['type'] == 'profil'
     330                and isset($flux['args']['id'])
     331                and $id_profil = $flux['args']['id']
     332        ) {
     333                $importer = recuperer_fond('prive/squelettes/inclure/profil_importer', array('id_profil'=>$id_profil));
     334                $flux['data'] .= $importer;
     335        }
     336       
     337        return $flux;
     338}
Note: See TracChangeset for help on using the changeset viewer.