summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: d0093a6)
raw | patch | inline | side by side (parent: d0093a6)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 31 Oct 2006 10:16:54 +0000 (10:16 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 31 Oct 2006 10:16:54 +0000 (10:16 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4971 594d385d-05f5-0310-b6e9-bd551577e9d8
html/getxls.php | patch | blob | history |
diff --git a/html/getxls.php b/html/getxls.php
index 1b88b8ce0c1e77ca70a570e80203dcbdc18a7954..34c9936ba1ab49a6f96d7bc18e3d775b9d66ba76 100644 (file)
--- a/html/getxls.php
+++ b/html/getxls.php
{
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);
- $title_title=& $workbook->addformat(array(
+ /* Create some styles to generate xls */
+ $title_title= $workbook->addformat(array(
bold => 1,
color => 'green',
size => 11,
font => 'Helvetica'
));
- $title_bold=& $workbook->addformat(array(
+ $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#');
+
+ # 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){
- case "ou=people," :
- $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;
- case "ou=groups,": $groups= $ldap->gen_xls($dn,"(objectClass=*)",array("cn","memberUid"),TRUE,1);
- $intitul=array(_("Members").":");
+ /* PEOPLE
+ Get all peoples from this $dn
+ and put them into the xls work sheet */
+ case "ou=people," :
- //name of the xls file
- $name_section=_("Groups");
+ $user = $ldap->gen_xls($dn,"(objectClass=*)",array("uid","dateOfBirth","gender","givenName","preferredLanguage"));
+ $intitul = array(_("Birthday").":", _("Sex").":", _("Surname")."/"._("Given name").":",_("Language").":");
- $worksheet =& $workbook->addworksheet(_("Groups"));
- $worksheet->set_column('A:B', 51);
+ // name of the xls file
+ $name_section = _("Users");
+ $worksheet = $workbook->addworksheet(_("Users"));
+ $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++)
+ $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++)
{
- $r++;
- $worksheet->write('A'.$r,$intitul[$j-1]);
- for($k=0;$k<= $groups[$i][$j]['count'];$k++)
+ if($i>1)
+ $worksheet->write('A'.$r++,"");
+ $worksheet->write('A'.$r++,_("User ID").": ".$user[$i][0],$title_bold);
+
+ for($j=1;$j<5;$j++)
{
- $worksheet->write('B'.$r,$groups[$i][$j][$k]);
$r++;
+ $worksheet->write('A'.$r,$intitul[$j-1]);
+ $user[$i][$j]=utf8_decode ($user[$i][$j]);
+ $worksheet->write('B'.$r,$user[$i][$j]);
}
- }
- }
- break;
-
- case "ou=computers,": $computers= $ldap->gen_xls($dn,"(objectClass=*)",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;
- case "ou=servers,ou=systems,": $servers= $ldap->gen_xls($dn,"(objectClass=*)",array("cn"));
- $intitul=array(_("Server name").":");
- //name of the xls file
- $name_section=_("Servers");
+ /* GROUPS
+ Get all groups from th $dn
+ and put them into the xls work sheet */
+ case "ou=groups,":
- $worksheet =& $workbook->addworksheet(_("Servers"));
- $worksheet->set_column('A:B', 51);
+ /* Get group data */
+ $groups = $ldap->gen_xls($dn,"(objectClass=*)",array("cn","memberUid"),TRUE,1);
+ $intitul = array(_("Members").":");
- //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
- $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"));
+ //name of the xls file
+ $name_section=_("Groups");
- $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(_("Groups"));
+ $worksheet->set_column('A:B', 51);
- $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++)
+ //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++)
{
- $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++,_("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++;
+ }
+ }
}
- $worksheet->write('A'.$r++,"");
- }
-
- break;
-
- default: echo "error!!";
- }
-
- $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");
-
- // The source is in original.xls
- readfile($fname);
- unlink ($fname);
+ break;
+
+
+ /* SYSTEMS
+ Get all systems from th $dn
+ and put them into the xls work sheet */
+ case "ou=systems,":
+
+ $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 "ou=servers,ou=systems,": $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']);
$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",_("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").":");
+ $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");
$worksheet4->set_column('A:B', 51);
$worksheet5->set_column('A:B', 51);
- $title_title=& $workbook->addformat(array(
+ $title_title= $workbook->addformat(array(
bold => 1,
color => 'green',
size => 11,
font => 'Helvetica'
));
- $title_bold =& $workbook->addformat(array(
+ $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#');
+# 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);