Code

Moved getxls
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 14 Apr 2008 08:37:40 +0000 (08:37 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 14 Apr 2008 08:37:40 +0000 (08:37 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@10388 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-core/html/getxls.php [deleted file]
gosa-plugins/ldapmanager/html/getxls.php [new file with mode: 0644]

diff --git a/gosa-core/html/getxls.php b/gosa-core/html/getxls.php
deleted file mode 100644 (file)
index e75660e..0000000
+++ /dev/null
@@ -1,519 +0,0 @@
-<?php
-/*
- * This code is part of GOsa (http://www.gosa-project.org)
- * Copyright (C) 2003  Cajus Pollmeier
- * Copyright (C) 2005  Guillaume Delecourt
- * Copyright (C) 2005  Vincent Seynhaeve
- * Copyright (C) 2005  Benoit Mortier
- *
- * ID: $$Id$$
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-require_once "../include/utils/excel/class.writeexcel_workbook.inc.php";
-require_once "../include/utils/excel/class.writeexcel_worksheet.inc.php";
-
-function dump_ldap ($mode= 0)
-{
-  global $config;
-  $ldap= $config->get_ldap_link();
-  $display = "";
-
-
-  if($mode == 2){      // Single Entry Export !
-
-    /* Get required attributes */
-    $d =  base64_decode($_GET['d']);
-    $n =  base64_decode($_GET['n']);
-
-    /* Create dn to search entries in */
-    $dn=$d.$n;
-
-    /* Create some strings */
-    $date=date('dS \of F Y ');
-    $fname = tempnam("/tmp", "demo.xls");
-
-    /* Create xls workbench */
-    $workbook= new writeexcel_workbook($fname);
-
-    /* Create some styles to generate xls */
-    $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#');
-
-
-    /* If the switch reaches default (it should not), 
-        this will be set to false, so nothig will be created ... */
-    $save = true;
-
-    /* Check which type of data was requested */
-    switch ($d){
-
-
-      /* PEOPLE 
-          Get all peoples from this $dn 
-          and put them into the xls work sheet */
-      case get_people_ou() : 
-
-        $user    =  $ldap->gen_xls($dn,"(objectClass=*)",array("uid","dateOfBirth","gender","givenName","preferredLanguage"));
-        $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', 51);
-
-        $user_nbr =  count($user);
-        $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)
-            $worksheet->write('A'.$r++,"");
-          $worksheet->write('A'.$r++,_("User ID").": ".$user[$i][0],$title_bold);
-
-          for($j=1;$j<5;$j++)
-          {
-            $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++,"");
-        }
-      break;
-
-
-      /* GROUPS 
-          Get all groups from th $dn 
-          and put them into the xls work sheet */
-      case get_groups_ou(): 
-
-        /* Get group data */
-        $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', 51);
-
-        //count number of groups
-        $groups_nbr=count($groups);
-        $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);
-          for($j=1;$j<=2;$j++)
-          {
-            $r++;
-            $worksheet->write('A'.$r,$intitul[$j-1]);
-            for($k=0;$k<= $groups[$i][$j]['count'];$k++)
-            {
-              $worksheet->write('B'.$r,$groups[$i][$j][$k]);
-              $r++;
-            }
-          }
-        }
-     break;
-
-
-     /* SYSTEMS 
-        Get all systems from th $dn
-        and put them into the xls work sheet */
-     case get_ou('systemsou'): 
-
-       $name_section=_("Servers");
-       $computers= $ldap->gen_xls($dn,"(&(objectClass=*)(cn=*))",array("cn","description","uid"));
-
-       $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;
-       for($i=1;$i<$computers_nbr;$i++)
-       {
-         if($i>1)
-           $worksheet->write('A'.$r++,"");
-         $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++,"");
-       }
-    break;
-
-     /* SYSTEMS 
-       Get all systems from th $dn
-       and put them into the xls work sheet */
-     case get_ou('serverou'): $servers= $ldap->gen_xls($dn,"(objectClass=*)",array("cn"));
-       $intitul=array(_("Server name").":");
-
-       //name of the xls file
-       $name_section=_("Servers");
-
-       $worksheet = $workbook->addworksheet(_("Servers"));
-       $worksheet->set_column('A:B', 51);
-
-       //count number of servers
-       $servers_nbr=count($servers);
-       $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++)
-       {
-         for($j=0;$j<1;$j++)
-         {
-           $r++;
-           $worksheet->write('A'.$r,$intitul[$j]);
-           $servers[$i][$j]=utf8_decode ($servers[$i][$j]);
-           $worksheet->write('B'.$r,$servers[$i][$j]);
-         }
-       }
-     break;
-
-     case "dc=addressbook,": //data about addressbook
-
-       /* ADDRESSBOOK 
-        Get all addressbook entries from  $dn
-         and put them into the xls work sheet */
-
-       $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")."/"._("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', 51);
-
-       //count number of entries
-       $address_nbr=count($address);
-       $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)
-           $worksheet->write('A'.$r++,"");
-         $worksheet->write('A'.$r++,_("Common Name").": ".$address[$i][0],$title_bold);
-         for($j=1;$j<19;$j++)
-         {
-           $r++;
-           $worksheet->write('A'.$r,$intitul[$j]);
-           $address[$i][$j]=utf8_decode ($address[$i][$j]);
-           $worksheet->write('B'.$r,$address[$i][$j],$f_phone);
-         }
-         $worksheet->write('A'.$r++,"");
-       }
-
-     break;
-     default:
-
-        $save = false; 
-        echo "Specified parameter '".$d."' was not found in switch-case.";
-   }
-
-   if($save){
-     $workbook->close();
-   }
-
-   // We'll be outputting a xls
-   header('Content-type: application/x-msexcel');
-
-   // It will be called demo.xls
-   header('Content-Disposition: attachment; filename=xls_export_'.$name_section.".xls");
-
-   // The source is in original.xls
-   readfile($fname);
-   unlink ($fname);
-  }
-  elseif($mode == 3){ // Full Export !
-    $dn =  base64_decode($_GET['dn']);
-
-    //data about users
-    $user= $ldap->gen_xls( get_people_ou().$dn,"(objectClass=*)",array("uid","dateOfBirth","gender","givenName","preferredLanguage"));
-    $user_intitul=array(_("Day of birth").":",_("Sex").":",_("Surname")."/"._("Given name").":",_("Language").":");
-    //data about groups
-    $groups= $ldap->gen_xls(get_groups_ou().$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").":");
-    //data about servers
-    $servers= $ldap->gen_xls(get_ou('serverou').$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",_("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"));
-    $worksheet2 = $workbook->addworksheet(_("Groups"));
-    $worksheet3 = $workbook->addworksheet(_("Servers"));
-    $worksheet4 =$workbook->addworksheet(_("Computers"));
-    $worksheet5 = $workbook->addworksheet(_("Adressbook"));
-
-    $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,
-          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#');
-
-    //count number of users
-    $user_nbr=count($user);
-    $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)
-        $worksheet->write('A'.$r++,"");
-      $worksheet->write('A'.$r++,_("User ID").": ".$user[$i][0],$title_bold);
-      for($j=1;$j<5;$j++)
-      {
-        $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++,"");
-    }
-
-    //count number of groups
-    $groups_nbr=count($groups);
-    $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);
-      for($j=1;$j<=2;$j++)
-      {
-        $r++;
-        $worksheet2->write('A'.$r,$group_intitul[$j-1]);
-        for($k=0;$k<= $groups[$i][$j]['count'];$k++)
-        {
-          $worksheet2->write('B'.$r,$groups[$i][$j][$k]);
-          $r++;
-        }
-      }
-    }
-
-    //count number of servers
-    $servers_nbr=count($servers);
-    $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++)
-    {
-      for($j=0;$j<1;$j++)
-      {
-        $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);
-    $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);
-      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++,"");
-    }
-
-    //count number of entries
-    $address_nbr=count($address);
-    $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);
-      for($j=1;$j<19;$j++)
-      {
-        $r++;
-        $worksheet5->write('A'.$r,$address_intitul[$j]);
-        $address[$i][$j]=utf8_decode ($address[$i][$j]);
-        $worksheet5->write('B'.$r,$address[$i][$j],$f_phone);
-      }
-      $worksheet5->write('A'.$r++,"");
-    }
-    $workbook->close();
-
-
-    // We'll be outputting a xls
-    header('Content-type: application/x-msexcel');
-
-    // It will be called demo.xls
-    header('Content-Disposition: attachment; filename='.$name_section.".xls");
-
-    readfile($fname);
-
-    unlink ($fname);
-  }
-  elseif($mode == 4){ // IVBB LDIF Export
-    $dn =  base64_decode($_GET['dn']);
-    /*$display= $ldap->gen_ldif($dn,"(objectClass=ivbbentry)",array(
-      "GouvernmentOrganizationalUnit","houseIdentifier","vocation",
-      "ivbbLastDeliveryCollective","gouvernmentOrganizationalPersonLocality",
-      "gouvernmentOrganizationalUnitDescription","gouvernmentOrganizationalUnitSubjectArea",
-      "functionalTitle","role","certificateSerialNumber","userCertificate","publicVisible",
-      "telephoneNumber","seeAlso","description","title","x121Address","registeredAddress",
-      "destinationIndicator","preferredDeliveryMethod","telexNumber","teletexTerminalIdentifier",
-      "telephoneNumber","internationaliSDNNumber","facsimileTelephoneNumber","street",
-      "postOfficeBox","postalCode","postalAddress","physicalDeliveryOfficeName","ou",
-      "st","l","audio","businessCategory","carLicense","departmentNumber","displayName",
-      "employeeNumber","employeeType","givenName","homePhone","homePostalAddress",
-      "initials","jpegPhoto","labeledURI","mail","manager","mobile","o","pager","photo",
-      "roomNumber","secretary","userCertificate","x500uniqueIdentifier","preferredLanguage",
-      "userSMIMECertificate","userPKCS12"));*/
-
-    echo $display;
-  }
-}
-
-
-/* Basic setup, remove eventually registered sessions */
-@require_once ("../include/php_setup.inc");
-@require_once ("functions.inc");
-session::start();
-session::set('errorsAlreadyPosted',array());
-
-/* Logged in? Simple security check */
-if (!session::is_set('ui')){
-  new log("security","all/all","",array(),"Error: getxls.php called without session") ;
-  header ("Location: index.php");
-  exit;
-}
-$ui     = session::get('ui');
-$config = session::get('config');
-
-
-/* Check ACL's */
-$dn ="";
-if(isset($_GET['n'])){
-  $dn =  base64_decode($_GET['n']);
-}elseif(isset($_GET['dn'])){
-  $dn =  base64_decode($_GET['dn']);
-}
-$acl = $ui->get_permissions($dn,"ldapmanager/xlsexport");
-if(!preg_match("/r/",$acl)){
-       msg_dialog::display(_("Permission error"),_("You have no permission to do LDAP exports!"),FATAL_ERROR_DIALOG);
-  exit();
-}
-
-header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-header("Cache-Control: no-cache");
-header("Pragma: no-cache");
-header("Cache-Control: post-check=0, pre-check=0");
-
-header("Content-type: text/plain");
-
-switch ($_GET['ivbb']){
-  case 2: dump_ldap (2);
-          break;
-
-  case 3: dump_ldap (3);
-          break;
-
-  case 4: dump_ldap (4);
-          break;
-
-  default:
-          echo "Error in ivbb parameter. Request aborted.";
-}
-// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
-?>
diff --git a/gosa-plugins/ldapmanager/html/getxls.php b/gosa-plugins/ldapmanager/html/getxls.php
new file mode 100644 (file)
index 0000000..e75660e
--- /dev/null
@@ -0,0 +1,519 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003  Cajus Pollmeier
+ * Copyright (C) 2005  Guillaume Delecourt
+ * Copyright (C) 2005  Vincent Seynhaeve
+ * Copyright (C) 2005  Benoit Mortier
+ *
+ * ID: $$Id$$
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+require_once "../include/utils/excel/class.writeexcel_workbook.inc.php";
+require_once "../include/utils/excel/class.writeexcel_worksheet.inc.php";
+
+function dump_ldap ($mode= 0)
+{
+  global $config;
+  $ldap= $config->get_ldap_link();
+  $display = "";
+
+
+  if($mode == 2){      // Single Entry Export !
+
+    /* Get required attributes */
+    $d =  base64_decode($_GET['d']);
+    $n =  base64_decode($_GET['n']);
+
+    /* Create dn to search entries in */
+    $dn=$d.$n;
+
+    /* Create some strings */
+    $date=date('dS \of F Y ');
+    $fname = tempnam("/tmp", "demo.xls");
+
+    /* Create xls workbench */
+    $workbook= new writeexcel_workbook($fname);
+
+    /* Create some styles to generate xls */
+    $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#');
+
+
+    /* If the switch reaches default (it should not), 
+        this will be set to false, so nothig will be created ... */
+    $save = true;
+
+    /* Check which type of data was requested */
+    switch ($d){
+
+
+      /* PEOPLE 
+          Get all peoples from this $dn 
+          and put them into the xls work sheet */
+      case get_people_ou() : 
+
+        $user    =  $ldap->gen_xls($dn,"(objectClass=*)",array("uid","dateOfBirth","gender","givenName","preferredLanguage"));
+        $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', 51);
+
+        $user_nbr =  count($user);
+        $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)
+            $worksheet->write('A'.$r++,"");
+          $worksheet->write('A'.$r++,_("User ID").": ".$user[$i][0],$title_bold);
+
+          for($j=1;$j<5;$j++)
+          {
+            $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++,"");
+        }
+      break;
+
+
+      /* GROUPS 
+          Get all groups from th $dn 
+          and put them into the xls work sheet */
+      case get_groups_ou(): 
+
+        /* Get group data */
+        $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', 51);
+
+        //count number of groups
+        $groups_nbr=count($groups);
+        $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);
+          for($j=1;$j<=2;$j++)
+          {
+            $r++;
+            $worksheet->write('A'.$r,$intitul[$j-1]);
+            for($k=0;$k<= $groups[$i][$j]['count'];$k++)
+            {
+              $worksheet->write('B'.$r,$groups[$i][$j][$k]);
+              $r++;
+            }
+          }
+        }
+     break;
+
+
+     /* SYSTEMS 
+        Get all systems from th $dn
+        and put them into the xls work sheet */
+     case get_ou('systemsou'): 
+
+       $name_section=_("Servers");
+       $computers= $ldap->gen_xls($dn,"(&(objectClass=*)(cn=*))",array("cn","description","uid"));
+
+       $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;
+       for($i=1;$i<$computers_nbr;$i++)
+       {
+         if($i>1)
+           $worksheet->write('A'.$r++,"");
+         $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++,"");
+       }
+    break;
+
+     /* SYSTEMS 
+       Get all systems from th $dn
+       and put them into the xls work sheet */
+     case get_ou('serverou'): $servers= $ldap->gen_xls($dn,"(objectClass=*)",array("cn"));
+       $intitul=array(_("Server name").":");
+
+       //name of the xls file
+       $name_section=_("Servers");
+
+       $worksheet = $workbook->addworksheet(_("Servers"));
+       $worksheet->set_column('A:B', 51);
+
+       //count number of servers
+       $servers_nbr=count($servers);
+       $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++)
+       {
+         for($j=0;$j<1;$j++)
+         {
+           $r++;
+           $worksheet->write('A'.$r,$intitul[$j]);
+           $servers[$i][$j]=utf8_decode ($servers[$i][$j]);
+           $worksheet->write('B'.$r,$servers[$i][$j]);
+         }
+       }
+     break;
+
+     case "dc=addressbook,": //data about addressbook
+
+       /* ADDRESSBOOK 
+        Get all addressbook entries from  $dn
+         and put them into the xls work sheet */
+
+       $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")."/"._("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', 51);
+
+       //count number of entries
+       $address_nbr=count($address);
+       $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)
+           $worksheet->write('A'.$r++,"");
+         $worksheet->write('A'.$r++,_("Common Name").": ".$address[$i][0],$title_bold);
+         for($j=1;$j<19;$j++)
+         {
+           $r++;
+           $worksheet->write('A'.$r,$intitul[$j]);
+           $address[$i][$j]=utf8_decode ($address[$i][$j]);
+           $worksheet->write('B'.$r,$address[$i][$j],$f_phone);
+         }
+         $worksheet->write('A'.$r++,"");
+       }
+
+     break;
+     default:
+
+        $save = false; 
+        echo "Specified parameter '".$d."' was not found in switch-case.";
+   }
+
+   if($save){
+     $workbook->close();
+   }
+
+   // We'll be outputting a xls
+   header('Content-type: application/x-msexcel');
+
+   // It will be called demo.xls
+   header('Content-Disposition: attachment; filename=xls_export_'.$name_section.".xls");
+
+   // The source is in original.xls
+   readfile($fname);
+   unlink ($fname);
+  }
+  elseif($mode == 3){ // Full Export !
+    $dn =  base64_decode($_GET['dn']);
+
+    //data about users
+    $user= $ldap->gen_xls( get_people_ou().$dn,"(objectClass=*)",array("uid","dateOfBirth","gender","givenName","preferredLanguage"));
+    $user_intitul=array(_("Day of birth").":",_("Sex").":",_("Surname")."/"._("Given name").":",_("Language").":");
+    //data about groups
+    $groups= $ldap->gen_xls(get_groups_ou().$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").":");
+    //data about servers
+    $servers= $ldap->gen_xls(get_ou('serverou').$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",_("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"));
+    $worksheet2 = $workbook->addworksheet(_("Groups"));
+    $worksheet3 = $workbook->addworksheet(_("Servers"));
+    $worksheet4 =$workbook->addworksheet(_("Computers"));
+    $worksheet5 = $workbook->addworksheet(_("Adressbook"));
+
+    $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,
+          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#');
+
+    //count number of users
+    $user_nbr=count($user);
+    $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)
+        $worksheet->write('A'.$r++,"");
+      $worksheet->write('A'.$r++,_("User ID").": ".$user[$i][0],$title_bold);
+      for($j=1;$j<5;$j++)
+      {
+        $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++,"");
+    }
+
+    //count number of groups
+    $groups_nbr=count($groups);
+    $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);
+      for($j=1;$j<=2;$j++)
+      {
+        $r++;
+        $worksheet2->write('A'.$r,$group_intitul[$j-1]);
+        for($k=0;$k<= $groups[$i][$j]['count'];$k++)
+        {
+          $worksheet2->write('B'.$r,$groups[$i][$j][$k]);
+          $r++;
+        }
+      }
+    }
+
+    //count number of servers
+    $servers_nbr=count($servers);
+    $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++)
+    {
+      for($j=0;$j<1;$j++)
+      {
+        $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);
+    $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);
+      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++,"");
+    }
+
+    //count number of entries
+    $address_nbr=count($address);
+    $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);
+      for($j=1;$j<19;$j++)
+      {
+        $r++;
+        $worksheet5->write('A'.$r,$address_intitul[$j]);
+        $address[$i][$j]=utf8_decode ($address[$i][$j]);
+        $worksheet5->write('B'.$r,$address[$i][$j],$f_phone);
+      }
+      $worksheet5->write('A'.$r++,"");
+    }
+    $workbook->close();
+
+
+    // We'll be outputting a xls
+    header('Content-type: application/x-msexcel');
+
+    // It will be called demo.xls
+    header('Content-Disposition: attachment; filename='.$name_section.".xls");
+
+    readfile($fname);
+
+    unlink ($fname);
+  }
+  elseif($mode == 4){ // IVBB LDIF Export
+    $dn =  base64_decode($_GET['dn']);
+    /*$display= $ldap->gen_ldif($dn,"(objectClass=ivbbentry)",array(
+      "GouvernmentOrganizationalUnit","houseIdentifier","vocation",
+      "ivbbLastDeliveryCollective","gouvernmentOrganizationalPersonLocality",
+      "gouvernmentOrganizationalUnitDescription","gouvernmentOrganizationalUnitSubjectArea",
+      "functionalTitle","role","certificateSerialNumber","userCertificate","publicVisible",
+      "telephoneNumber","seeAlso","description","title","x121Address","registeredAddress",
+      "destinationIndicator","preferredDeliveryMethod","telexNumber","teletexTerminalIdentifier",
+      "telephoneNumber","internationaliSDNNumber","facsimileTelephoneNumber","street",
+      "postOfficeBox","postalCode","postalAddress","physicalDeliveryOfficeName","ou",
+      "st","l","audio","businessCategory","carLicense","departmentNumber","displayName",
+      "employeeNumber","employeeType","givenName","homePhone","homePostalAddress",
+      "initials","jpegPhoto","labeledURI","mail","manager","mobile","o","pager","photo",
+      "roomNumber","secretary","userCertificate","x500uniqueIdentifier","preferredLanguage",
+      "userSMIMECertificate","userPKCS12"));*/
+
+    echo $display;
+  }
+}
+
+
+/* Basic setup, remove eventually registered sessions */
+@require_once ("../include/php_setup.inc");
+@require_once ("functions.inc");
+session::start();
+session::set('errorsAlreadyPosted',array());
+
+/* Logged in? Simple security check */
+if (!session::is_set('ui')){
+  new log("security","all/all","",array(),"Error: getxls.php called without session") ;
+  header ("Location: index.php");
+  exit;
+}
+$ui     = session::get('ui');
+$config = session::get('config');
+
+
+/* Check ACL's */
+$dn ="";
+if(isset($_GET['n'])){
+  $dn =  base64_decode($_GET['n']);
+}elseif(isset($_GET['dn'])){
+  $dn =  base64_decode($_GET['dn']);
+}
+$acl = $ui->get_permissions($dn,"ldapmanager/xlsexport");
+if(!preg_match("/r/",$acl)){
+       msg_dialog::display(_("Permission error"),_("You have no permission to do LDAP exports!"),FATAL_ERROR_DIALOG);
+  exit();
+}
+
+header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
+header("Cache-Control: no-cache");
+header("Pragma: no-cache");
+header("Cache-Control: post-check=0, pre-check=0");
+
+header("Content-type: text/plain");
+
+switch ($_GET['ivbb']){
+  case 2: dump_ldap (2);
+          break;
+
+  case 3: dump_ldap (3);
+          break;
+
+  case 4: dump_ldap (4);
+          break;
+
+  default:
+          echo "Error in ivbb parameter. Request aborted.";
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>