added PDFTable
This commit is contained in:
parent
4bb9a6d8c5
commit
95b87c003f
|
@ -858,6 +858,32 @@ abstract class baseModule {
|
|||
$result[get_class($this) . '_' . $name] = array('<block><key>' . $label . '</key><value>' . $value . '</value></block>');
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a table entry to the PDF.
|
||||
*
|
||||
* @param array $result result array (entry will be added here)
|
||||
* @param String $name ID
|
||||
* @param PDFTable $table table
|
||||
*/
|
||||
public function addPDFTable(&$result, $name, $table) {
|
||||
$first = true;
|
||||
foreach ($table->rows as $row) {
|
||||
$xml = '<block>';
|
||||
if ($first && !empty($table->label)) {
|
||||
$xml .= '<key>' . $table->label . '</key>';
|
||||
}
|
||||
$xml .= '<tr>';
|
||||
foreach ($row->cells as $cell) {
|
||||
$width = empty($cell->width) ? '' : ' width="' . $cell->width . '"';
|
||||
$content = ($cell->bold) ? '<b>' . $cell->content . '</b>' : $cell->content;
|
||||
$xml .= '<td align="' . $cell->align . '"' . $width . '>' . $content . '</td>';
|
||||
}
|
||||
$xml .= '</tr></block>';
|
||||
$result[get_class($this) . '_' . $name][] = $xml;
|
||||
$first = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array containing all input columns for the file upload.
|
||||
*
|
||||
|
@ -1789,5 +1815,71 @@ abstract class baseModule {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a table for PDF export.
|
||||
*
|
||||
* @package PDF
|
||||
* @author Roland Gruber
|
||||
*/
|
||||
class PDFTable {
|
||||
|
||||
/** optional label of table */
|
||||
public $label = null;
|
||||
/** list of PDFTableRow elements */
|
||||
public $rows = array();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a table row for PDF export.
|
||||
*
|
||||
* @package PDF
|
||||
* @author Roland Gruber
|
||||
*/
|
||||
class PDFTableRow {
|
||||
|
||||
/** list of PDFTableCell */
|
||||
public $cells = array();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a table cell for PDF export.
|
||||
*
|
||||
* @package PDF
|
||||
* @author Roland Gruber
|
||||
*/
|
||||
class PDFTableCell {
|
||||
|
||||
const ALIGN_LEFT = 'L';
|
||||
const ALIGN_RIGHT = 'R';
|
||||
const ALIGN_CENTER = 'C';
|
||||
|
||||
/** content text of cell */
|
||||
public $content = '';
|
||||
/** text alignment */
|
||||
public $align = self::ALIGN_LEFT;
|
||||
/** cell width (e.g. "20%") */
|
||||
public $width = null;
|
||||
/** bold text */
|
||||
public $bold = false;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param String $content cell content
|
||||
* @param String $align cell alignment (default: left)
|
||||
* @param String $width width (e.g. "20%")
|
||||
* @param boolean $bold print in bold
|
||||
*/
|
||||
public function __construct($content, $align = null, $width = null, $bold = false) {
|
||||
$this->content = empty($content) ? ' ' : $content;
|
||||
$this->align = ($align == null) ? self::ALIGN_LEFT : $align;
|
||||
$this->width = $width;
|
||||
$this->bold = $bold;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
|
||||
Copyright (C) 2009 - 2012 Pavel Pozdniak
|
||||
2009 - 2014 Roland Gruber
|
||||
2009 - 2015 Roland Gruber
|
||||
|
||||
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
|
||||
|
@ -817,28 +817,26 @@ class asteriskExtension extends baseModule {
|
|||
$this->addSimplePDFField($return, 'owners', _('Extension owners'), 'member', '; ');
|
||||
// rules
|
||||
$entries = $this->load_extension_parts($extName);
|
||||
$rulePDF = array();
|
||||
$rulePDF[] = '<block><tr><td width="80%"> </td></tr></block>';
|
||||
$rulePDF[] = '<block><tr><td width="80%"> </td></tr></block>';
|
||||
$rulePDF[] = '<block><tr><td width="80%"> </td></tr></block>';
|
||||
$rulePDF[] = '<block><tr>' .
|
||||
'<td width="20%"><b>' . _('Name') . '</b></td>' .
|
||||
'<td width="30%"><b>' . _('Application') . '</b></td>' .
|
||||
'<td width="30%"><b>' . _('Application data') . '</b></td>' .
|
||||
'<td width="20%"><b>' . _('Priority') . '</b></td>' .
|
||||
'</tr></block>';
|
||||
$pdfTable = new PDFTable();
|
||||
$pdfRow = new PDFTableRow();
|
||||
$pdfRow->cells[] = new PDFTableCell(_('Name'), null, '20%', true);
|
||||
$pdfRow->cells[] = new PDFTableCell(_('Application'), null, '30%', true);
|
||||
$pdfRow->cells[] = new PDFTableCell(_('Application data'), null, '30%', true);
|
||||
$pdfRow->cells[] = new PDFTableCell(_('Priority'), null, '20%', true);
|
||||
$pdfTable->rows[] = $pdfRow;
|
||||
for ($i = 0; $i < sizeof($entries); $i++) {
|
||||
$appdata = ' ';
|
||||
if (isset($entries[$i]['astapplicationdata'][0])) {
|
||||
$appdata = $entries[$i]['astapplicationdata'][0];
|
||||
}
|
||||
$rulePDF[] = '<block><tr>' .
|
||||
'<td width="20%" align=\"L\">' . $entries[$i]['cn'][0] . '</td>' .
|
||||
'<td width="30%" align=\"L\">' . $entries[$i]['astapplication'][0] . '</td>' .
|
||||
'<td width="30%" align=\"L\">' . $appdata . '</td>' .
|
||||
'<td width="20%" align=\"L\">' . $entries[$i]['astpriority'][0] . '</td></tr></block>';
|
||||
$appdata = ' ';
|
||||
if (isset($entries[$i]['astapplicationdata'][0])) {
|
||||
$appdata = $entries[$i]['astapplicationdata'][0];
|
||||
}
|
||||
$pdfRow = new PDFTableRow();
|
||||
$pdfRow->cells[] = new PDFTableCell($entries[$i]['cn'][0], null, '20%');
|
||||
$pdfRow->cells[] = new PDFTableCell($entries[$i]['astapplication'][0], null, '30%');
|
||||
$pdfRow->cells[] = new PDFTableCell($appdata, null, '30%');
|
||||
$pdfRow->cells[] = new PDFTableCell($entries[$i]['astpriority'][0], null, '20%');
|
||||
$pdfTable->rows[] = $pdfRow;
|
||||
}
|
||||
$return[get_class($this) . '_rules'] = $rulePDF;
|
||||
$this->addPDFTable($return, 'rules', $pdfTable);
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue