Code

Added possibility to do notifications. Not used currently.
[gosa.git] / html / getxls.php
index b54d3862816dc25c24f459f53c9baef523113e1a..7bb560e7dfa866e4580e634d87ab52737feb7516 100644 (file)
@@ -34,31 +34,45 @@ function dump_ldap ($mode= 0)
   if($mode == 2){      // Single Entry Export !
     $d =  base64_decode($_GET['d']);
     $n =  base64_decode($_GET['n']);
-    //         print_r($_GET);
     $dn=$d.$n;
-    //         echo $dn ;
+    $date=date('dS \of F Y ');
     $fname = tempnam("/tmp", "demo.xls");
     $workbook=& new writeexcel_workbook($fname);
 
+    $title_title=& $workbook->addformat(array(
+          bold    => 1,
+          color   => 'green',
+          size    => 11,
+          underline => 2,
+          font    => 'Helvetica'
+          ));
+
     $title_bold=& $workbook->addformat(array(
           bold    => 1,
           color   => 'black',
           size    => 10,
           font    => 'Helvetica'
           ));
+   # Create a format for the phone numbers
+   $f_phone =& $workbook->addformat();
+   $f_phone->set_align('left');
+   $f_phone->set_num_format('\0#');
 
 
     switch ($d){
       case "ou=people," : 
         $user=                                    $ldap->gen_xls($dn,"(objectClass=*)",array("uid","dateOfBirth","gender","givenName","preferredLanguage"));
-      $intitul=array(_("Birthday").":", _("Sexe").":", _("Name")."/"._("Firstname").":",_("Language").":");
+      $intitul=array(_("Birthday").":", _("Sex").":", _("Surname")."/"._("Given name").":",_("Language").":");
 
+      //name of the xls file
+      $name_section=_("Users");
+       
       $worksheet=& $workbook->addworksheet(_("Users"));
-      $worksheet->set_column('A:B', 32);
-
+      $worksheet->set_column('A:B', 51);
 
       $user_nbr=count($user);
-      $r=1;
+      $worksheet->write('A1',sprintf(_("User list of %s on %s"),$n,$date),$title_title);
+      $r=3;
       for($i=1;$i<$user_nbr;$i++)
       {
         if($i>1)
@@ -69,6 +83,7 @@ function dump_ldap ($mode= 0)
         {
           $r++;
           $worksheet->write('A'.$r,$intitul[$j-1]);
+          $user[$i][$j]=utf8_decode ($user[$i][$j]);
           $worksheet->write('B'.$r,$user[$i][$j]);
         }
         $worksheet->write('A'.$r++,"");
@@ -77,12 +92,17 @@ function dump_ldap ($mode= 0)
 
       case "ou=groups,": $groups= $ldap->gen_xls($dn,"(objectClass=*)",array("cn","memberUid"),TRUE,1);
       $intitul=array(_("Members").":");
+
+      //name of the xls file
+      $name_section=_("Groups");
+
       $worksheet =& $workbook->addworksheet(_("Groups"));
-      $worksheet->set_column('A:B', 32);
+      $worksheet->set_column('A:B', 51);
 
       //count number of groups
       $groups_nbr=count($groups);
-      $r=1;
+      $worksheet->write('A1', sprintf(_("Groups of %s on %s"), $n, $date),$title_title);
+      $r=3;
       for($i=1;$i<$groups_nbr;$i++)
       {
         $worksheet->write('A'.$r++,_("User ID").": ".$groups[$i][0][0],$title_bold);
@@ -103,7 +123,6 @@ function dump_ldap ($mode= 0)
       $intitul=array(_("Description").":",_("User ID").":");
       $worksheet =& $workbook->addworksheet(_("Computers"));
       $worksheet->set_column('A:B', 32);
-
       //count number of computers
       $computers_nbr=count($computers);
       $r=1;
@@ -111,11 +130,12 @@ function dump_ldap ($mode= 0)
       {
         if($i>1)
           $worksheet->write('A'.$r++,"");
-        $worksheet->write('A'.$r++,_("Common Name").": ".$computers[$i][0],$title_bold);
+        $worksheet->write('A'.$r++,_("Common name").": ".$computers[$i][0],$title_bold);
         for($j=1;$j<3;$j++)
         {
           $r++;
           $worksheet->write('A'.$r,$intitul[$j-1]);
+          $computers[$i][$j]=utf8_decode ($computers[$i][$j]);
           $worksheet->write('B'.$r,$computers[$i][$j]);
         }
         $worksheet->write('A'.$r++,"");
@@ -123,14 +143,18 @@ function dump_ldap ($mode= 0)
       break;
 
       case "ou=servers,ou=systems,": $servers= $ldap->gen_xls($dn,"(objectClass=*)",array("cn"));
-      $intitul=array(_("Server Name").":");
+      $intitul=array(_("Server name").":");
+
+      //name of the xls file
+      $name_section=_("Servers");
 
       $worksheet =& $workbook->addworksheet(_("Servers"));
-      $worksheet->set_column('A:B', 32);
+      $worksheet->set_column('A:B', 51);
 
       //count number of servers
       $servers_nbr=count($servers);
-      $r=1;
+      $worksheet->write('A1',sprintf(_("Servers of %s on %s"), $n, $date),$title_title);
+      $r=3;
       $worksheet->write('A'.$r++,_("Servers").": ",$title_bold);
       for($i=1;$i<$servers_nbr;$i++)
       {
@@ -138,6 +162,7 @@ function dump_ldap ($mode= 0)
         {
           $r++;
           $worksheet->write('A'.$r,$intitul[$j]);
+          $servers[$i][$j]=utf8_decode ($servers[$i][$j]);
           $worksheet->write('B'.$r,$servers[$i][$j]);
         }
       }
@@ -146,14 +171,18 @@ function dump_ldap ($mode= 0)
       case "dc=addressbook,": //data about addressbook
         $address= $ldap->gen_xls($dn,"(objectClass=*)",array("cn","displayName","facsimileTelephoneNumber","givenName","homePhone","homePostalAddress","initials","l","mail","mobile","o","ou","pager","telephoneNumber","postalAddress","postalCode","sn","st","title"));
 
-      $intitul=array(_("Common name").":",_("Display Name").":",_("Fax").":",_("Name")."/"._("Firstname").":",_("Home phone").":",_("Home postal address").":",_("Initials").":",_("Location").":",_("Mail address").":",_("Mobile phone").":",_("City").":",_("Postal address").":",_("Pager").":",_("Phone number").":",_("Adress").":",_("Postal code").":",_("Surename").":",_("State").":",_("Function").":");
+      $intitul=array(_("Common name").":",_("Display name").":",_("Fax").":",_("Name")."/"._("Given name").":",_("Home phone").":",_("Home postal address").":",_("Initials").":",_("Location").":",_("Mail address").":",_("Mobile phone").":",_("City").":",_("Postal address").":",_("Pager").":",_("Phone number").":",_("Address").":",_("Postal code").":",_("Surname").":",_("State").":",_("Function").":");
+      
+      //name of the xls file
+      $name_section=_("Adressbook");
 
       $worksheet =& $workbook->addworksheet(_("Servers"));
-      $worksheet->set_column('A:B', 32);
+      $worksheet->set_column('A:B', 51);
 
       //count number of entries
       $address_nbr=count($address);
-      $r=1;
+      $worksheet->write('A1',sprintf(_("Adressbook of %s on %s"),$n, $date),$title_title);
+      $r=3;
       for($i=1;$i<$address_nbr;$i++)
       {
         if($i>1)
@@ -163,7 +192,8 @@ function dump_ldap ($mode= 0)
         {
           $r++;
           $worksheet->write('A'.$r,$intitul[$j]);
-          $worksheet->write('B'.$r,$address[$i][$j]);
+          $address[$i][$j]=utf8_decode ($address[$i][$j]);
+          $worksheet->write('B'.$r,$address[$i][$j],$f_phone);
         }
         $worksheet->write('A'.$r++,"");
       }
@@ -180,7 +210,7 @@ function dump_ldap ($mode= 0)
     header('Content-type: application/x-msexcel');
 
     // It will be called demo.xls
-    header('Content-Disposition: attachment; filename="demo.xls"');
+    header('Content-Disposition: attachment; filename='.$name_section.".xls");
 
     // The source is in original.xls
     readfile($fname);
@@ -191,21 +221,23 @@ function dump_ldap ($mode= 0)
 
     //data about users
     $user= $ldap->gen_xls("ou=people,".$dn,"(objectClass=*)",array("uid","dateOfBirth","gender","givenName","preferredLanguage"));
-    $user_intitul=array(_("BirthDate").":",_("Sex").":",_("Name")."/"._("Firstname").":",_("Language").":");
+    $user_intitul=array(_("Day of birth").":",_("Sex").":",_("Surname")."/"._("Given name").":",_("Language").":");
     //data about groups
     $groups= $ldap->gen_xls("ou=groups,".$dn,"(objectClass=*)",array("cn","memberUid"),TRUE,1);
     $groups_intitul=array(_("Members").":");
     //data about computers
     $computers= $ldap->gen_xls("ou=computers,".$dn,"(objectClass=*)",array("cn","description","uid"));
-    $computers_intitul=array(_("Description").":",_("Uid").":");
+    $computers_intitul=array(_("Description").":",_("UID").":");
     //data about servers
     $servers= $ldap->gen_xls("ou=servers,ou=systems,".$dn,"(objectClass=*)",array("cn"));
     $servers_intitul=array(_("Name").":");
     //data about addressbook
     $address= $ldap->gen_xls("dc=addressbook,".$dn,"(objectClass=*)",array("cn","displayName","facsimileTelephoneNumber","givenName","homePhone","homePostalAddress","initials","l","mail","mobile","o","ou","pager","telephoneNumber","postalAddress","postalCode","sn","st","title"));
-    $address_intitul=array("cn",_("DisplayName").":",_("Fax").":",_("Name")."/"._("Firstname").":",_("Phone Number").":",_("Postal Adress").":",_("Initials").":",_("City").":",_("Email address").":",_("mobile").":",_("Organization").":",_("Organizational Unit").":",_("Pager").":",_("Phone Number").":",_("Postal Address").":",_("Postal Code").":",_("Sn").":",_("st").":",_("Title").":");
-
+    $address_intitul=array("cn",_("Display name").":",_("Fax").":",_("Surname")."/"._("Given name").":",_("Phone number").":",_("Postal address").":",_("Initials").":",_("City").":",_("Email address").":",_("Mobile").":",_("Organization").":",_("Organizational unit").":",_("Pager").":",_("Phone number").":",_("Postal address").":",_("Postal Code").":",_("Surename").":",_("State").":",_("Title").":");
 
+    //name of the xls file
+    $name_section=_("Full");
+    $date=date('dS \of F Y ');
     $fname = tempnam("/tmp", "demo.xls");
     $workbook =& new writeexcel_workbook($fname);
     $worksheet =& $workbook->addworksheet(_("Users"));
@@ -214,11 +246,18 @@ function dump_ldap ($mode= 0)
     $worksheet4 =& $workbook->addworksheet(_("Computers"));
     $worksheet5 =& $workbook->addworksheet(_("Adressbook"));
 
-    $worksheet->set_column('A:B', 32);
-    $worksheet2->set_column('A:B', 32);
-    $worksheet3->set_column('A:B', 32);
-    $worksheet4->set_column('A:B', 32);
-    $worksheet5->set_column('A:B', 32);
+    $worksheet->set_column('A:B', 51);
+    $worksheet2->set_column('A:B', 51);
+    $worksheet3->set_column('A:B', 51);
+    $worksheet4->set_column('A:B', 51);
+    $worksheet5->set_column('A:B', 51);
+
+    $title_title=& $workbook->addformat(array(
+          bold    => 1,
+          color   => 'green',
+          size    => 11,
+          font    => 'Helvetica'
+          ));
 
     $title_bold =& $workbook->addformat(array(
           bold    => 1,
@@ -227,10 +266,15 @@ function dump_ldap ($mode= 0)
           font    => 'Helvetica'
           ));
 
+   # Create a format for the phone numbers
+   $f_phone =& $workbook->addformat();
+   $f_phone->set_align('left');
+   $f_phone->set_num_format('\0#');
 
     //count number of users
     $user_nbr=count($user);
-    $r=1;
+    $worksheet->write('A1',sprintf(_("User List of %s on %s"), $dn, $date),$title_title);
+    $r=3;
     for($i=1;$i<$user_nbr;$i++)
     {
       if($i>1)
@@ -240,6 +284,7 @@ function dump_ldap ($mode= 0)
       {
         $r++;
         $worksheet->write('A'.$r,$user_intitul[$j-1]);
+        $user[$i][$j]=utf8_decode ($user[$i][$j]);
         $worksheet->write('B'.$r,$user[$i][$j]);
       }
       $worksheet->write('A'.$r++,"");
@@ -247,7 +292,8 @@ function dump_ldap ($mode= 0)
 
     //count number of groups
     $groups_nbr=count($groups);
-    $r=1;
+    $worksheet2->write('A1',sprintf(_("Groups of %s on %s"), $dn, $date),$title_title);
+    $r=3;
     for($i=1;$i<$groups_nbr;$i++)
     {
       $worksheet2->write('A'.$r++,_("User ID").": ".$groups[$i][0][0],$title_bold);
@@ -265,7 +311,8 @@ function dump_ldap ($mode= 0)
 
     //count number of servers
     $servers_nbr=count($servers);
-    $r=1;
+    $worksheet3->write('A1',sprintf(_("Servers of %s on %s"),$dn,$date),$title_title);
+    $r=3;
     $worksheet3->write('A'.$r++,_("Servers").": ",$title_bold);
     for($i=1;$i<$servers_nbr;$i++)
     {
@@ -273,22 +320,25 @@ function dump_ldap ($mode= 0)
       {
         $r++;
         $worksheet3->write('A'.$r,$servers_intitul[$j]);
+        $servers[$i][$j]=utf8_decode ($servers[$i][$j]);
         $worksheet3->write('B'.$r,$servers[$i][$j]);
       }
     }
 
     //count number of computers
     $computers_nbr=count($computers);
-    $r=1;
+    $worksheet4->write('A1',sprintf(_("Computers of %s on %s"),$dn,$date),$title_title);
+    $r=3;
     for($i=1;$i<$computers_nbr;$i++)
     {
       if($i>1)
         $worksheet->write('A'.$r++,"");
-      $worksheet4->write('A'.$r++,_("Common Name").": ".$computers[$i][0],$title_bold);
+      $worksheet4->write('A'.$r++,_("Common name").": ".$computers[$i][0],$title_bold);
       for($j=1;$j<3;$j++)
       {
         $r++;
         $worksheet4->write('A'.$r,$computers_intitul[$j-1]);
+        $computers[$i][$j]=utf8_decode ($computers[$i][$j]);
         $worksheet4->write('B'.$r,$computers[$i][$j]);
       }
       $worksheet4->write('A'.$r++,"");
@@ -296,17 +346,20 @@ function dump_ldap ($mode= 0)
 
     //count number of entries
     $address_nbr=count($address);
-    $r=1;
+    $worksheet5->write('A1',sprintf(_("Adressbook of %s on %s"),$dn, $date),$title_title);
+
+    $r=3;
     for($i=1;$i<$address_nbr;$i++)
     {
       if($i>1)
         $worksheet5->write('A'.$r++,"");
-      $worksheet5->write('A'.$r++,_("Common Name").": ".$address[$i][0],$title_bold);
+      $worksheet5->write('A'.$r++,_("Common name").": ".$address[$i][0],$title_bold);
       for($j=1;$j<19;$j++)
       {
         $r++;
         $worksheet5->write('A'.$r,$address_intitul[$j]);
-        $worksheet5->write('B'.$r,$address[$i][$j]);
+        $address[$i][$j]=utf8_decode ($address[$i][$j]);
+        $worksheet5->write('B'.$r,$address[$i][$j],$f_phone);
       }
       $worksheet5->write('A'.$r++,"");
     }
@@ -317,16 +370,15 @@ function dump_ldap ($mode= 0)
     header('Content-type: application/x-msexcel');
 
     // It will be called demo.xls
-    header('Content-Disposition: attachment; filename="demo.xls"');
+    header('Content-Disposition: attachment; filename='.$name_section.".xls");
 
-    // The PDF source is in original.xl
     readfile($fname);
 
     unlink ($fname);
   }
   elseif($mode == 4){ // IVBB LDIF Export
     $dn =  base64_decode($_GET['dn']);
-    /*$display= $ldap->gen_ldif($dn,"(objectClass=ivbbEntry)",array(
+    /*$display= $ldap->gen_ldif($dn,"(objectClass=ivbbentry)",array(
       "GouvernmentOrganizationalUnit","houseIdentifier","vocation",
       "ivbbLastDeliveryCollective","gouvernmentOrganizationalPersonLocality",
       "gouvernmentOrganizationalUnitDescription","gouvernmentOrganizationalUnitSubjectArea",
@@ -355,7 +407,7 @@ session_start ();
 /* Logged in? Simple security check */
 if (!isset($_SESSION['ui'])){
   gosa_log ("Error: getldif.php called without session");
-  header ("Location: ../index.php");
+  header ("Location: index.php");
   exit;
 }
 $ui= $_SESSION["ui"];
@@ -373,7 +425,7 @@ header("Content-type: text/plain");
 $acl= get_permissions ($config->current['BASE'], $ui->subtreeACL);
 $acl= get_module_permission($acl, "all", $config->current['BASE']);
 if (chkacl($acl, "all") != ""){
-  header ("Location: ../index.php");
+  header ("Location: index.php");
   exit;
 }