[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_4_3_1-14143-gf6f133e

Michal Čihař nijel at users.sourceforge.net
Wed Aug 10 14:33:47 CEST 2011


The branch, master has been updated
       via  f6f133eb09532943976cd38d40d794a008bbccc5 (commit)
       via  235e14d41ea6eafd0aa81ea726af5a64346eebb9 (commit)
       via  0d7d007995ab59833b4132e8cee7e1093a07960b (commit)
       via  17cbe2959294811d8fca81d575dbd20b0efe06d7 (commit)
      from  e9ea3b59a37239034b9690a16d86acb1d6166d57 (commit)


- Log -----------------------------------------------------------------
commit f6f133eb09532943976cd38d40d794a008bbccc5
Author: Michal Čihař <mcihar at suse.cz>
Date:   Wed Aug 10 14:33:03 2011 +0200

    Avoid duplicating bookmark code from TCPDF, where it works

commit 235e14d41ea6eafd0aa81ea726af5a64346eebb9
Author: Michal Čihař <mcihar at suse.cz>
Date:   Wed Aug 10 14:29:36 2011 +0200

    Indentaion

commit 0d7d007995ab59833b4132e8cee7e1093a07960b
Author: Michal Čihař <mcihar at suse.cz>
Date:   Wed Aug 10 14:29:22 2011 +0200

    Unify code for PDF footer

commit 17cbe2959294811d8fca81d575dbd20b0efe06d7
Author: Michal Čihař <mcihar at suse.cz>
Date:   Wed Aug 10 14:24:22 2011 +0200

    Start base class for all PDF output

-----------------------------------------------------------------------

Summary of changes:
 libraries/PDF.class.php                        |   51 ++++++++
 libraries/export/pdf.php                       |   36 +-----
 libraries/schema/Pdf_Relation_Schema.class.php |  146 +++---------------------
 3 files changed, 69 insertions(+), 164 deletions(-)
 create mode 100644 libraries/PDF.class.php

diff --git a/libraries/PDF.class.php b/libraries/PDF.class.php
new file mode 100644
index 0000000..719df87
--- /dev/null
+++ b/libraries/PDF.class.php
@@ -0,0 +1,51 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * TCPDF wrapper class.
+ */
+
+require_once './libraries/tcpdf/tcpdf.php';
+
+/**
+ * PDF font to use.
+ */
+define('PMA_PDF_FONT', 'DejaVuSans');
+
+/**
+ * PDF export base class providing basic configuration.
+ */
+class PMA_PDF extends TCPDF
+{
+    var $footerset;
+
+    public function __construct($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding='UTF-8', $diskcache=false)
+    {
+        parent::__construct();
+        $this->SetAuthor('phpMyAdmin ' . PMA_VERSION);
+        $this->AliasNbPages();
+        $this->AddFont('DejaVuSans', '', 'dejavusans.php');
+        $this->AddFont('DejaVuSans', 'B', 'dejavusansb.php');
+        $this->AddFont('DejaVuSerif', '', 'dejavuserif.php');
+        $this->AddFont('DejaVuSerif', 'B', 'dejavuserifb.php');
+        $this->SetFont(PMA_PDF_FONT, '', 14);
+        $this->setFooterFont(array(PMA_PDF_FONT, '', 14));
+    }
+
+    /**
+     * This function must be named "Footer" to work with the TCPDF library
+     */
+    function Footer()
+    {
+        // Check if footer for this page already exists
+        if (!isset($this->footerset[$this->page])) {
+            $this->SetY(-15);
+            $this->SetFont(PMA_PDF_FONT, '', 14);
+            $this->Cell(0, 6, __('Page number:') . ' ' . $this->getAliasNumPage() . '/' .  $this->getAliasNbPages(), 'T', 0, 'C');
+            $this->Cell(0, 6, PMA_localisedDate(), 0, 1, 'R');
+            $this->SetY(20);
+
+            // set footerset
+            $this->footerset[$this->page] = 1;
+        }
+    }
+}
diff --git a/libraries/export/pdf.php b/libraries/export/pdf.php
index 3cc0acf..61c8dce 100644
--- a/libraries/export/pdf.php
+++ b/libraries/export/pdf.php
@@ -30,24 +30,17 @@ if (isset($plugin_list)) {
         );
 } else {
 
-    /**
-     * Font used in PDF.
-     *
-     * @todo Make this configuratble (at least Sans/Serif).
-     */
-    define('PMA_PDF_FONT', 'DejaVuSans');
-    require_once './libraries/tcpdf/tcpdf.php';
+    require_once './libraries/PDF.class.php';
 
     /**
      * Adapted from a LGPL script by Philip Clarke
      * @package phpMyAdmin-Export
      * @subpackage PDF
      */
-    class PMA_PDF extends TCPDF
+    class PMA_Export_PDF extends PMA_PDF
     {
         var $tablewidths;
         var $headerset;
-        var $footerset;
 
         function checkPageBreak($h=0, $y='', $addpage=true) {
             if ($this->empty_string($y)) {
@@ -125,20 +118,6 @@ if (isset($plugin_list)) {
             $this->dataY = $maxY;
         }
 
-        function Footer()
-        {
-            // Check if footer for this page already exists
-            if (!isset($this->footerset[$this->page])) {
-                $this->SetY(-15);
-                //Page number
-                $this->setFooterFont(PMA_PDF_FONT, '', 14);
-                $this->Cell(0, 6, __('Page number:') . ' ' . $this->getAliasNumPage() . '/' .  $this->getAliasNbPages(), 'T', 0, 'C');
-
-                // set footerset
-                $this->footerset[$this->page] = 1;
-            }
-        }
-
         function morepagestable($lineheight=8)
         {
             // some things to set and 'remember'
@@ -354,9 +333,9 @@ if (isset($plugin_list)) {
 
         } // end of mysql_report function
 
-    } // end of PMA_PDF class
+    } // end of PMA_Export_PDF class
 
-    $pdf = new PMA_PDF('L', 'pt', 'A3');
+    $pdf = new PMA_Export_PDF('L', 'pt', 'A3');
 
     /**
      * Finalize the pdf.
@@ -389,13 +368,6 @@ if (isset($plugin_list)) {
         global $pdf_report_title;
         global $pdf;
 
-        $pdf->AddFont('DejaVuSans', '', 'dejavusans.php');
-        $pdf->AddFont('DejaVuSans', 'B', 'dejavusansb.php');
-        $pdf->AddFont('DejaVuSerif', '', 'dejavuserif.php');
-        $pdf->AddFont('DejaVuSerif', 'B', 'dejavuserifb.php');
-        $pdf->SetFont(PMA_PDF_FONT, '', 11.5);
-        $pdf->setFooterFont(array(PMA_PDF_FONT, '', 11.5));
-        $pdf->AliasNbPages();
         $pdf->Open();
 
         $attr=array('titleFontSize' => 18, 'titleText' => $pdf_report_title);
diff --git a/libraries/schema/Pdf_Relation_Schema.class.php b/libraries/schema/Pdf_Relation_Schema.class.php
index a4d1260..f65fcc2 100644
--- a/libraries/schema/Pdf_Relation_Schema.class.php
+++ b/libraries/schema/Pdf_Relation_Schema.class.php
@@ -7,13 +7,7 @@
 
 include_once("Export_Relation_Schema.class.php");
 
-/**
- * Font used in PDF.
- *
- * @todo Make this configuratble (at least Sans/Serif).
- */
-define('PMA_PDF_FONT', 'DejaVuSans');
-require_once './libraries/tcpdf/tcpdf.php';
+require_once './libraries/PDF.class.php';
 
 /**
  * Extends the "TCPDF" class and helps
@@ -22,7 +16,7 @@ require_once './libraries/tcpdf/tcpdf.php';
  * @access public
  * @see TCPDF
  */
-class PMA_PDF extends TCPDF
+class PMA_Schema_PDF extends PMA_PDF
 {
     /**
      * Defines properties
@@ -242,112 +236,8 @@ class PMA_PDF extends TCPDF
     {
         global $with_doc;
         if ($with_doc) {
-            $this->SetY(-15);
-            $this->SetFont($this->_ff, '', 14);
-            $this->Cell(0, 6, __('Page number:') . ' ' . $this->getAliasNumPage() . '/' .  $this->getAliasNbPages(), 'T', 0, 'C');
-            $this->Cell(0, 6, PMA_localisedDate(), 0, 1, 'R');
-            $this->SetY(20);
-        }
-    }
-
-    /**
-     * Add a bookmark
-     */
-    function Bookmark($txt, $level = 0, $y = 0, $page = '')
-    {
-        $this->Outlines[0][] = $level;
-        $this->Outlines[1][] = $txt;
-        $this->Outlines[2][] = $this->page;
-        if ($y == -1) {
-            $y = $this->GetY();
+            parent::Footer();
         }
-        $this->Outlines[3][] = round($this->hPt - $y * $this->k, 2);
-    }
-
-    function _putbookmarks()
-    {
-        if (count($this->Outlines) > 0) {
-            // Save object number
-            $memo_n = $this->n;
-            // Take the number of sub elements for an outline
-            $nb_outlines = sizeof($this->Outlines[0]);
-            $first_level = array();
-            $parent = array();
-            $parent[0] = 1;
-            for ($i = 0; $i < $nb_outlines; $i++) {
-                $level = $this->Outlines[0][$i];
-                $kids = 0;
-                $last = -1;
-                $prev = -1;
-                $next = -1;
-                if ($i > 0) {
-                    $cursor = $i-1;
-                    // Take the previous outline in the same level
-                    while ($this->Outlines[0][$cursor] > $level && $cursor > 0)
-                    $cursor--;
-                    if ($this->Outlines[0][$cursor] == $level) {
-                        $prev = $cursor;
-                    }
-                }
-                if ($i < $nb_outlines-1) {
-                    $cursor = $i + 1;
-                    while (isset($this->Outlines[0][$cursor]) && $this->Outlines[0][$cursor] > $level) {
-                        // Take the immediate kid in level + 1
-                        if ($this->Outlines[0][$cursor] == $level + 1) {
-                            $kids++;
-                            $last = $cursor;
-                        }
-                        $cursor++;
-                    }
-                    $cursor = $i + 1;
-                    // Take the next outline in the same level
-                    while ($this->Outlines[0][$cursor] > $level && ($cursor + 1 < sizeof($this->Outlines[0])))
-                    $cursor++;
-                    if ($this->Outlines[0][$cursor] == $level) {
-                        $next = $cursor;
-                    }
-                }
-                $this->_newobj();
-                $parent[$level + 1] = $this->n;
-                if ($level == 0) {
-                    $first_level[] = $this->n;
-                }
-                $this->_out('<<');
-                $this->_out('/Title (' . $this->Outlines[1][$i] . ')');
-                $this->_out('/Parent ' . $parent[$level] . ' 0 R');
-                if ($prev != -1) {
-                    $this->_out('/Prev ' . ($memo_n + $prev + 1) . ' 0 R');
-                }
-                if ($next != -1) {
-                    $this->_out('/Next ' . ($this->n + $next - $i) . ' 0 R');
-                }
-                $this->_out('/Dest [' . (1 + (2 * $this->Outlines[2][$i])) . ' 0 R /XYZ null ' . $this->Outlines[3][$i] . ' null]');
-                if ($kids > 0) {
-                    $this->_out('/First ' . ($this->n + 1) . ' 0 R');
-                    $this->_out('/Last ' . ($this->n + $last - $i) . ' 0 R');
-                    $this->_out('/Count -' . $kids);
-                }
-                $this->_out('>>');
-                $this->_out('endobj');
-            }
-            // First page of outlines
-            $this->_newobj();
-            $this->def_outlines = $this->n;
-            $this->_out('<<');
-            $this->_out('/Type');
-            $this->_out('/Outlines');
-            $this->_out('/First ' . $first_level[0] . ' 0 R');
-            $this->_out('/Last ' . $first_level[sizeof($first_level)-1] . ' 0 R');
-            $this->_out('/Count ' . sizeof($first_level));
-            $this->_out('>>');
-            $this->_out('endobj');
-        }
-    }
-
-    function _putresources()
-    {
-        parent::_putresources();
-        $this->_putbookmarks();
     }
 
     function SetWidths($w)
@@ -449,7 +339,7 @@ class PMA_PDF extends TCPDF
  * and helps in drawing/generating the Tables in PDF document.
  *
  * @name Table_Stats
- * @see PMA_PDF
+ * @see PMA_Schema_PDF
  */
 class Table_Stats
 {
@@ -481,7 +371,7 @@ class Table_Stats
      * @global object    The current PDF document
      * @global array     The relations settings
      * @global string    The current db name
-     * @see PMA_PDF, Table_Stats::Table_Stats_setWidth,
+     * @see PMA_Schema_PDF, Table_Stats::Table_Stats_setWidth,
           Table_Stats::Table_Stats_setHeight
      */
     function __construct($tableName, $fontSize, $pageNumber, &$sameWideWidth, $showKeys = false, $showInfo = false)
@@ -565,7 +455,7 @@ class Table_Stats
      * @param integer fontSize The font size
      * @global object    The current PDF document
      * @access private
-     * @see PMA_PDF
+     * @see PMA_Schema_PDF
      */
     function _setWidth($fontSize)
     {
@@ -603,7 +493,7 @@ class Table_Stats
      * @param boolean setColor Whether to display color
      * @global object    The current PDF document
      * @access public
-     * @see PMA_PDF
+     * @see PMA_Schema_PDF
      */
     public function tableDraw($fontSize, $withDoc, $setColor = 0)
     {
@@ -661,7 +551,7 @@ class Table_Stats
  * in PDF document.
  *
  * @name Relation_Stats
- * @see PMA_PDF::SetDrawColor,PMA_PDF::PMA_PDF_setLineWidthScale,PMA_PDF::PMA_PDF_lineScale
+ * @see PMA_Schema_PDF::SetDrawColor,PMA_Schema_PDF::PMA_PDF_setLineWidthScale,PMA_Schema_PDF::PMA_PDF_lineScale
  */
 class Relation_Stats
 {
@@ -751,7 +641,7 @@ class Relation_Stats
      * @param integer i The id of the link to draw
      * @global object    The current PDF document
      * @access public
-     * @see PMA_PDF
+     * @see PMA_Schema_PDF
      */
     public function relationDraw($changeColor, $i)
     {
@@ -831,7 +721,7 @@ class PMA_Pdf_Relation_Schema extends PMA_Export_Relation_Schema
      * @global string   The current db name
      * @global array    The relations settings
      * @access private
-     * @see PMA_PDF
+     * @see PMA_Schema_PDF
      */
     function __construct()
     {
@@ -849,18 +739,10 @@ class PMA_Pdf_Relation_Schema extends PMA_Export_Relation_Schema
         $this->setExportType($_POST['export_type']);
 
          // Initializes a new document
-        $pdf = new PMA_PDF($this->orientation, 'mm', $this->paper);
+        $pdf = new PMA_Schema_PDF($this->orientation, 'mm', $this->paper);
         $pdf->SetTitle(sprintf(__('Schema of the %s database - Page %s'), $GLOBALS['db'], $this->pageNumber));
         $pdf->setCMargin(0);
         $pdf->Open();
-        $pdf->SetAuthor('phpMyAdmin ' . PMA_VERSION);
-        $pdf->AliasNbPages();
-        $pdf->AddFont('DejaVuSans', '', 'dejavusans.php');
-        $pdf->AddFont('DejaVuSans', 'B', 'dejavusansb.php');
-        $pdf->AddFont('DejaVuSerif', '', 'dejavuserif.php');
-        $pdf->AddFont('DejaVuSerif', 'B', 'dejavuserifb.php');
-        $pdf->SetFont($this->_ff, '', 14);
-        $pdf->setFooterFont(array($this->_ff, '', 14));
         $pdf->SetAutoPageBreak('auto');
         $alltables = $this->getAllTables($db,$this->pageNumber);
 
@@ -978,9 +860,9 @@ class PMA_Pdf_Relation_Schema extends PMA_Export_Relation_Schema
     /**
      * Draws the grid
      *
-     * @global object  the current PMA_PDF instance
+     * @global object  the current PMA_Schema_PDF instance
      * @access private
-     * @see PMA_PDF
+     * @see PMA_Schema_PDF
      */
     private function _strokeGrid()
     {
@@ -1057,7 +939,7 @@ class PMA_Pdf_Relation_Schema extends PMA_Export_Relation_Schema
      * @global integer  The current page number (from the
      *                    $cfg['Servers'][$i]['table_coords'] table)
      * @access private
-     * @see PMA_PDF
+     * @see PMA_Schema_PDF
      */
     private function _showOutput($pageNumber)
     {


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list