Fix owner deletion on MLs.
[platal.git] / modules / carnet / outlook.inc.php
index 791b15c..8c652e3 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2010 Polytechnique.org                              *
+ *  Copyright (C) 2003-2014 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -25,17 +25,24 @@ class Outlook {
         'fr' => array("Nom","Titre","Prénom","Deuxième prénom","Nom","Suffixe","Surnom","Société ","Service ","Titre","Rue (bureau)","Rue (bureau) 2","Rue (bureau) 3","Ville (bureau)","Dép/Région (bureau)","Code postal (bureau)","Pays (bureau)","Rue (domicile)","Rue (domicile) 2","Rue (domicile) 3","Ville (domicile)","Dép/Région (domicile)","Code postal (domicile)","Pays (domicile)","Rue (autre)","Rue (autre) 2","Rue (autre) 3","Ville (autre)","Dép/Région (autre)","Code postal (autre)","Pays (autre)","Téléphone de l'assistant(e)","Télécopie (bureau)","Téléphone (bureau)","Téléphone 2 (bureau)","Rappel","Téléphone (voiture)","Téléphone société","Télécopie (domicile)","Téléphone (domicile)","Téléphone 2 (domicile)","RNIS","Tél. mobile","Télécopie (autre)","Téléphone (autre)","Récepteur de radiomessagerie","Téléphone principal","Radio téléphone","Téléphone TDD/TTY","Télex","Adresse de messagerie","Type de messagerie","Nom complet de l'adresse de messagerie","Adresse de messagerie 2","Type de messagerie 2","Nom complet de l'adresse de messagerie 2","Adresse de messagerie 3","Type de messagerie 3","Nom complet de l'adresse de messagerie 3","Anniversaire","Anniversaire de mariage ou fête","Autre boîte postale","B.P. professionnelle","Boîte postale du domicile","Bureau","Catégories","Code gouvernement","Compte","Conjoint(e)","Critère de diffusion","Disponibilité Internet","Emplacement","Enfants","Informations facturation","Initiales","Kilométrage","Langue","Mots clés","Nom de l'assistant(e)","Notes","Numéro d'identification de l'organisation","Page Web","Passe-temps","Priorité","Privé","Profession","Recommandé par","Responsable","Serveur d'annuaire","Sexe","Utilisateur 1","Utilisateur 2","Utilisateur 3","Utilisateur 4"),
         );
 
-    private static function add_address(&$adr, &$contact, $adr_type = 'autre') {
+    private static function add_address($adr, $contact, $adr_type = 'autre') {
         $contact['Rue ('.$adr_type.')'] = $adr->text;
         $contact['Code postal ('.$adr_type.')'] = $adr->postalCode;
         $contact['Ville ('.$adr_type.')'] = $adr->locality;
         $contact['Dép/Région ('.$adr_type.')'] = $adr->administrativeArea;
         $contact['Pays ('.$adr_type.')'] = $adr->country;
-        $contact['Téléphone ('.$adr_type.')'] = $adr->fixed_tel;
-        $contact['Télécopie ('.$adr_type.')'] = $adr->fax_tel;
+        $phones = $adr->phones();
+        foreach ($phones as $p) {
+            if ($p->hasType(Profile::PHONE_TYPE_FIXED)) {
+                $contact['Téléphone ('.$adr_type.')'] = $p->display;
+            }
+            if ($p->hasType(Profile::PHONE_TYPE_FAX)) {
+                $contact['Télécopie ('.$adr_type.')'] = $p->display;
+            }
+        }
     }
 
-    private static function profile_to_contact(&$p) {
+    private static function profile_to_contact($p) {
         $contact = array(
             'Prénom' => $p->firstName(),
             'Nom' => $p->lastName(),
@@ -47,15 +54,15 @@ class Outlook {
         // Homes
         $adrs = $p->iterAddresses(Profile::ADDRESS_PERSO);
         if ($adr = $adrs->next()) {
-            Outlook::add_address(&$adr, &$contact, 'domicile');
+            Outlook::add_address($adr, $contact, 'domicile');
         }
         if ($adr = $adrs->next()) {
-            Outlook::add_address(&$adr, &$contact, 'autre');
+            Outlook::add_address($adr, $contact, 'autre');
         }
         // Pro
         $adrs = $p->iterAddresses(Profile::ADDRESS_PRO);
         if ($adr = $adrs->next()) {
-            Outlook::add_address(&$adr, &$contact, 'bureau');
+            Outlook::add_address($adr, $contact, 'bureau');
         }
         $mainjob = $p->getMainJob();
         if ($mainjob && $mainjob->company) {
@@ -84,8 +91,6 @@ class Outlook {
         if ($user) {
             $contact['Adresse de messagerie'] = $user->bestalias;
             $contact['Nom complet de l\'adresse de messagerie'] = $p->fullName().' <'.$user->bestalias.'>';
-            $contact['Adresse de messagerie 2'] = $user->bestalias_alternate;
-            $contact['Nom complet de l\'adresse de messagerie 2'] = $p->fullName().' <'.$user->bestalias_alternate.'>';
             if ($user->bestalias != $user->forlife) {
                 $contact['Adresse de messagerie 3'] = $user->forlife;
                 $contact['Nom complet de l\'adresse de messagerie 3'] = $p->fullName().' <'.$user->forlife.'>';
@@ -105,7 +110,7 @@ class Outlook {
         return $contact;
     }
 
-    private static function protect($t) {
+    private static function protect(&$t) {
         if (empty($t)) {
             return '""';
         }
@@ -113,8 +118,8 @@ class Outlook {
         return '"'.strtr(utf8_decode($t),'"', '\\"').'"';
     }
 
-    public static function output_profiles(&$profiles, $lang) {
-        header("Content-Type: text/plain;charset=iso8859-15");
+    public static function output_profiles($profiles, $lang) {
+        pl_content_headers("text/plain", "iso8859-15");
         $fields =& Outlook::$contact_fields[$lang];
         foreach ($fields as $i => $k) {
             if ($i != 0) {
@@ -124,19 +129,20 @@ class Outlook {
         }
         echo "\r\n";
         foreach ($profiles as &$p) {
-            $values = Outlook::profile_to_contact(&$p);
+            $values = Outlook::profile_to_contact($p);
             foreach ($fields as $i => $k) {
                 if ($i != 0) {
                     echo ',';
                     echo Outlook::protect($values[$k]);
                 } else {
                     // HACK to fix fullname
-                    echo Outlook::protect($p->firstName()." ".$p->lastName());
+                    $fullname = $p->firstName()." ".$p->lastName();
+                    echo Outlook::protect($fullname);
                 }
         }
             echo "\r\n";
         }
     }
 }
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
 ?>