The Higher Education and Research forge

Home My Page Projects Code Snippets Project Openings MonLabo
Summary Activity Tracker Tasks Docs SCM Files Dokuwiki Continious Integration Listes Sympa

SCM Repository

authorHerve Suaudeau <herve.suaudeau@parisdescartes.fr>
Fri, 2 Oct 2020 21:34:32 +0000 (23:34 +0200)
committerHerve Suaudeau <herve.suaudeau@parisdescartes.fr>
Fri, 2 Oct 2020 21:34:32 +0000 (23:34 +0200)
admin/MonLabo-edit-members.php
changelog.txt
includes/MonLabo-generate-HTML.php

index 5022800..7139441 100644 (file)
@@ -225,7 +225,7 @@ function edit_members_form() {
        // Coordonnées
        //------------
        $retval .= '</fieldset><fieldset><legend>'._x( 'Coordonnées :', 'personne', 'mon-laboratoire' ).'</legend>';
-       $retval .= generate_champ_formulaire_pub( 'mail', false, __( 'E-mail', 'mon-laboratoire' ), get_MonLabo_Members_fields_comments( 'mail' ),
+       $retval .= generate_champ_formulaire_pub( 'mail', false, __( 'E-mail(s)', 'mon-laboratoire' ), get_MonLabo_Members_fields_comments( 'mail' ),
                $member_information->mail );
        $retval .= generate_champ_formulaire_pub( 'room', false, __( 'N° de porte', 'mon-laboratoire' ), get_MonLabo_Members_fields_comments( 'room' ),
                $member_information->room );
index ab7dda5..f0047c9 100644 (file)
@@ -80,7 +80,6 @@ Remember, check_admin_referer alone is not bulletproof security. Do not rely on
 = 3.1 =
 ===> Suppression champs inutiles dans table Persons
 ===> Vérifier que la gestion des logos des équipes, unités et autre sont bien gérés.
-==> plusieurs adresses email dans un champs.
 * EVOL: A person can have several pages
 * CODE : Secure ajax code with a nonce to prevent unauthorized access
 * CODE : Secure all actions that accept POST with a nonce to prevent unauthorized access
@@ -101,6 +100,7 @@ Remember, check_admin_referer alone is not bulletproof security. Do not rely on
 * NEW FUNC: Allows you to customize other shortcode texts ("Room" in team_panel).
 * BUG : Correction of poor display of radio buttons in config interface.
 * DESIGN : Always display customize text config tab. Lighten functionalites config tab.
+* EVOL : Can use several emails for a single person
 
 = 3.0.5 =
 (GIT tag v3.0.5)
index 69ee90e..e2ae6fa 100644 (file)
@@ -5,6 +5,7 @@ defined( 'ABSPATH' ) or die( 'No direct script access allowed' );
 class MonLabo_generate_HTML {
 
        //General LIBRAIRY
+       obsfuscate_emails_separated_by_comma ( $emails )                                                                                                   DONE
        obsfuscate_email ( $email )                                                                                                DONE
 
        //Extract person's items
@@ -37,6 +38,24 @@ class MonLabo_generate_HTML {
        //--------------------------------------------------------------------------------
        // $email   => email to encode
        //--------------------------------------------------------------------------------
+       function obsfuscate_emails_separated_by_comma( $emails ) {
+               // separate out the host and the name
+               $html = "";
+               $emails = str_replace( array( '|', ';', ' '), ',', $emails ); //Pouvoir utiliser d'autres separateur
+               $emails_table = explode( ",", $emails );
+               if( !empty( $emails_table ) ) {
+                       $emails_obfuscated = array();
+                       foreach ($emails_table as $email) {
+                               if( !empty( trim( $email ) ) ) {
+                                       $emails_obfuscated[] = $this->obsfuscate_email( trim ( $email ) );
+                               }
+                       }
+                       $html = implode( ", ",  $emails_obfuscated);
+               }
+               return $html;
+       }
+
+
        function obsfuscate_email( $email ) {
                // separate out the host and the name
                if ( '' != $email ) {
@@ -442,7 +461,7 @@ class MonLabo_generate_HTML {
                                                }
                                        }
                                        $person_array['Equipe'] = $generate_HTML->person_teams_enumeration( $person_information, $language );
-                                       $person_array['Email'] = $this->obsfuscate_email( $person_information->mail );
+                                       $person_array['Email'] = $this->obsfuscate_emails_separated_by_comma( $person_information->mail );
                                        $person_array['Tel'] = MonLaboLib::to_html( MonLaboLib::get_phone_with_prefix( $person_information->phone ) );
                                        $list_array[] = $person_array;
                                }
@@ -683,7 +702,7 @@ class MonLabo_generate_HTML {
 
                        $a_afficher .= '<br /><div class="MonLabo-user-coordonates">';
                        $list_to_display = Array(); //On range les items suivants dans un tableau
-                       if ( $person_information->mail<>'' ) { $list_to_display[] = $MonLabo_generate_HTML->obsfuscate_email( $person_information->mail ); }
+                       if ( $person_information->mail<>'' ) { $list_to_display[] = $MonLabo_generate_HTML->obsfuscate_emails_separated_by_comma( $person_information->mail ); }
                        if ( $person_information->phone<>'' ) { $list_to_display[] = MonLaboLib::to_html( MonLaboLib::get_phone_with_prefix( $person_information->phone ) ); }
                        if ( ( !$is_alumni ) && ( !empty( $person_information->room ) ) ) {
                                $list_to_display[] = MonLaboLib::to_html( MonLabo_translate::translate( 'room', $language ) .' ' . $person_information->room );
@@ -827,7 +846,7 @@ class MonLabo_generate_HTML {
                $room_name = MonLaboLib::to_html( MonLabo_translate::translate( 'room', $language ) );
                $title = MonLaboLib::to_html( $person_information->title );
 
-               $mail = $this->obsfuscate_email( $person_information->mail );
+               $mail = $this->obsfuscate_emails_separated_by_comma( $person_information->mail );
                $phone = MonLaboLib::to_html( MonLaboLib::get_phone_with_prefix( $person_information->phone ) );
                $door = $person_information->room;
                $external_url = $person_information->external_url;