added host PDFs

This commit is contained in:
Roland Gruber 2003-10-15 18:48:06 +00:00
parent 0b9658c891
commit 5d3ab5976f
3 changed files with 224 additions and 8 deletions

View File

@ -285,6 +285,160 @@ function createUserPDF($accounts) {
return 0; // 0 means everything successful; page(s) printed
}
// creates a PDF with host accounts
// $accounts: array of account
function createHostPDF($accounts) {
// Start PDF file
$pdfFile = new lamHostPDF();
$pdfFile->Open();
// Write some information into the PDF file
$pdfFile->setFont("arial","",12);
$pdfFile->setTitle("LDAP Account Manager");
$pdfFile->setSubject(_("Samba-Host information page"));
$pdfFile->setAuthor("LDAP Account Manager Devel-Team -Roland Gruber-");
$pdfFile->setCreator("LDAP Account Manager (pdf.inc)");
// print host accounts
$pdfFile->addPage();
$k = 0; // used to count the already printed accounts per page
for($i = 0; $i < count($accounts); $i++) {
$k++;
$account = $accounts[$i];
$ypos = $pdfFile->GetY();
$pdfFile->setFont("times","B",16);
$pdfFile->Write(5,$account->general_username);
$pdfFile->Ln(8);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("Description") . ": ");
$pdfFile->setFont("times","B",10);
$pdfFile->Write(5,$account->general_gecos);
$pdfFile->Ln(5);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("UID") . ": ");
$pdfFile->setFont("times","B",10);
$pdfFile->Write(5,$account->general_uidNumber);
$pdfFile->Ln(5);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("Primary group") . ": ");
$pdfFile->setFont("times","B",10);
$pdfFile->Write(5,$account->general_group);
$pdfFile->Ln(5);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("Domain") . ": ");
$pdfFile->setFont("times","B",10);
unset($domain);
if (is_string($account->smb_domain)) {
$domain = $account->smb_domain;
}
else {
$domain = $account->smb_domain->name;
}
$pdfFile->Write(5,$domain);
$pdfFile->Ln(5);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("DN") . ": ");
$pdfFile->setFont("times","B",9);
$pdfFile->Write(5,$account->general_dn);
// print second column
if ($accounts[$i+1]) {
$k++;
$i++;
$account = $accounts[$i];
$pdfFile->SetY($ypos);
$pdfFile->SetX(115);
$pdfFile->setFont("times","B",16);
$pdfFile->Write(5,$account->general_username);
$pdfFile->Ln(7);
$pdfFile->SetX(115);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("Description") . ": ");
$pdfFile->setFont("times","B",10);
$pdfFile->Write(5,$account->general_gecos);
$pdfFile->Ln(5);
$pdfFile->SetX(115);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("UID") . ": ");
$pdfFile->setFont("times","B",10);
$pdfFile->Write(5,$account->general_uidNumber);
$pdfFile->Ln(5);
$pdfFile->SetX(115);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("Primary group") . ": ");
$pdfFile->setFont("times","B",10);
$pdfFile->Write(5,$account->general_group);
$pdfFile->Ln(5);
$pdfFile->SetX(115);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("Domain") . ": ");
$pdfFile->setFont("times","B",10);
unset($domain);
if (is_string($account->smb_domain)) {
$domain = $account->smb_domain;
}
else {
$domain = $account->smb_domain->name;
}
$pdfFile->Write(5,$domain);
$pdfFile->Ln(5);
$pdfFile->SetX(115);
$pdfFile->setFont("times","",10);
$pdfFile->Write(5,_("DN") . ": ");
$pdfFile->setFont("times","B",9);
$pdfFile->Write(5,$account->general_dn);
}
// space between two rows
if ($i < count($accounts) - 1) {
$pdfFile->Ln(12);
}
// new page after twelve accounts
if ($k == 12) {
$k = 0;
$pdfFile->addPage();
}
}
// Close PDF
$pdfFile->Close();
// Delete old PDF older than 3 min
$relpath = $_SESSION['lampath'].'tmp/';
$t=time();
$h=opendir("$relpath");
while ($file=readdir($h)) {
if (substr($file, -4)=='.pdf') {
$path = $relpath.$file;
if ($t-filemtime($path)>180)
@unlink($path);
}
}
closedir($h);
// use timestamp as filename so it should be unique.
$time = time();
$filename = $relpath. $time .'.pdf';
$fileurl = $_SESSION['lamurl'].'templates/getpdf.php?&f='.$_SESSION['lampath'] .'tmp/'. $time .'.pdf';
// Save PDF
$pdfFile->Output($filename);
// Create redirector page
echo $_SESSION['header'];
echo "<html><head><title>";
echo _("PDF File");
echo "</title>\n".
"<link rel=\"stylesheet\" type=\"text/css\" href=\"".$_SESSION['lamurl']."style/layout.css\">\n".
"<meta http-equiv=\"pragma\" content=\"no-cache\">\n".
"<meta http-equiv=\"cache-control\" content=\"no-cache\">\n".
"<meta http-equiv=\"refresh\" content=\"2; URL=$fileurl\">\n".
"</head><body>\n".
"<a href=\"$fileurl\">";
echo _('Please press here if meta-refresh didn\'t work.');
echo "</a></body></html>";
return 0; // 0 means everything successful; page(s) printed
}
// lamPDF class || For defining own a Header and Footer
class lamPDF extends FPDF {
// Print page header
@ -311,3 +465,33 @@ class lamPDF extends FPDF {
$this->Cell(0,5,_("This document was automatically created by LDAP Account Manager"),0,0,"C",0);
}
}
// lamHostPDF class || For defining own a Header and Footer
class lamHostPDF extends FPDF {
// Print page header
function header() {
$imageFile = substr(__FILE__,0,strlen(__FILE__)- 11) . "graphics/printLogo.jpg";
$this->Image($imageFile,10,10,50,20,"JPG");
$this->SetFont("arial","B",22);
$this->Cell(170,5,"LDAP Account Manager",0,1,"R",0);
$this->Ln(3);
$this->SetFont("times","",14);
$this->Cell(170,5,"-" . _("Samba-Host information page") . "-",0,0,"R",0);
$this->SetLineWidth(0.8);
$this->Line(10,35,200,35);
$this->Line(10,37,200,37);
$this->SetY(45);
}
// Print page footer
function footer() {
$this->SetLineWidth(0.8);
$this->Line(10,280,200,280);
$this->Line(10,282,200,282);
$this->SetY(285);
$this->SetFont("arial","B",12);
$this->Cell(0,5,_("This document was automatically created by LDAP Account Manager"),0,0,"C",0);
$this->SetFont("arial","",12);
$this->Cell(0,5,$this->PageNo(),0,1,"R",0);
}
}

View File

@ -25,6 +25,8 @@ $Id$
include_once ("../../lib/config.inc");
include_once ("../../lib/ldap.inc");
include_once ("../../lib/status.inc");
include_once("../../lib/account.inc");
include_once("../../lib/pdf.inc");
// start session
session_save_path("../../sess");
@ -42,19 +44,37 @@ $hst_info = $_SESSION['hst_info'];
$hst_units = $_SESSION['hst_units'];
// check if button was pressed and if we have to add/delete a host
if ($_POST['new_host'] || $_POST['del_host']){
if ($_POST['new_host'] || $_POST['del_host'] || $_POST['pdf_host'] || $_POST['pdf_all']){
// add new host
if ($_POST['new_host']){
metaRefresh("../account/hostedit.php");
exit;
}
// delete host(s)
if ($_POST['del_host']){
elseif ($_POST['del_host']){
// search for checkboxes
$hosts = array_keys($_POST, "on");
$_SESSION['delete_dn'] = $hosts;
metaRefresh("../delete.php?type=host");
}
// PDF for selected hosts
elseif ($_POST['pdf_host']){
// search for checkboxes
$hosts = array_keys($_POST, "on");
$list = array();
// load hosts from LDAP
for ($i = 0; $i < sizeof($hosts); $i++) {
$list[$i] = loadhost($hosts[$i]);
}
if (sizeof($list) > 0) createHostPDF($list);
}
// PDF for all users
elseif ($_POST['pdf_all']){
$list = array();
for ($i = 0; $i < sizeof($_SESSION['hst_info']); $i++) {
$list[$i] = loadhost($_SESSION['hst_info'][$i]['dn']);
}
if (sizeof($list) > 0) createHostPDF($list);
}
exit;
}
@ -268,9 +288,18 @@ echo ("</p>\n");
echo ("<p>&nbsp;</p>\n");
}
// add/delete/PDF buttons
echo ("<p align=\"left\">\n");
echo ("<input type=\"submit\" name=\"new_host\" value=\"" . _("New Host") . "\">\n");
if (sizeof($hst_info) > 0) echo ("<input type=\"submit\" name=\"del_host\" value=\"" . _("Delete Host(s)") . "\">\n");
if (sizeof($hst_info) > 0) {
echo ("<input type=\"submit\" name=\"del_host\" value=\"" . _("Delete Host(s)") . "\">\n");
echo ("<br><br><br>\n");
echo "<fieldset><legend><b>PDF</b></legend>\n";
echo ("<input type=\"submit\" name=\"pdf_host\" value=\"" . _("Create PDF for selected host(s)") . "\">\n");
echo "&nbsp;";
echo ("<input type=\"submit\" name=\"pdf_all\" value=\"" . _("Create PDF for all hosts") . "\">\n");
echo "</fieldset>";
}
echo ("</p>\n");
echo ("</form>\n");

View File

@ -67,7 +67,6 @@ if ($_POST['new_user'] || $_POST['del_user'] || $_POST['pdf_user'] || $_POST['pd
// add new user
if ($_POST['new_user']){
metaRefresh("../account/useredit.php?type=user");
exit;
}
// delete user(s)
elseif ($_POST['del_user']){
@ -348,13 +347,17 @@ if (in_array("gidnumber", $attr_array)) {
echo ("<p>&nbsp;</p>\n");
// new/delete/PDF buttons
echo ("<p align=\"left\">\n");
echo ("<input type=\"submit\" name=\"new_user\" value=\"" . _("New user") . "\">\n");
if ($user_count != 0) {
echo ("<input type=\"submit\" name=\"del_user\" value=\"" . _("Delete user(s)") . "\">\n");
echo ("<br><br>\n");
echo ("<br><br><br>\n");
echo "<fieldset><legend><b>PDF</b></legend>\n";
echo ("<input type=\"submit\" name=\"pdf_user\" value=\"" . _("Create PDF for selected user(s)") . "\">\n");
echo "&nbsp;";
echo ("<input type=\"submit\" name=\"pdf_all\" value=\"" . _("Create PDF for all users") . "\">\n");
echo "</fieldset>";
}
echo ("</p>\n");