[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_4_3_1-12838-g8cb1f3a

Michal Čihař nijel at users.sourceforge.net
Tue Aug 2 15:25:40 CEST 2011


The branch, master has been updated
       via  8cb1f3a1cc1a089e53a89c1a4f59cd63a1ddecf8 (commit)
      from  8cb8a3d4c75dc6bf9665d4a3e80a2fea1a1b31eb (commit)


- Log -----------------------------------------------------------------
commit 8cb1f3a1cc1a089e53a89c1a4f59cd63a1ddecf8
Author: Michal Čihař <mcihar at suse.cz>
Date:   Tue Aug 2 15:25:27 2011 +0200

    Fix indentation

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

Summary of changes:
 libraries/export/codegen.php   |  334 +++++++++---------
 libraries/export/csv.php       |  330 +++++++++---------
 libraries/export/htmlword.php  |  546 ++++++++++++++--------------
 libraries/export/json.php      |  242 +++++++-------
 libraries/export/latex.php     |  658 +++++++++++++++++-----------------
 libraries/export/mediawiki.php |  228 ++++++------
 libraries/export/ods.php       |  344 +++++++++---------
 libraries/export/odt.php       |  594 ++++++++++++++++----------------
 libraries/export/pdf.php       |  764 ++++++++++++++++++++--------------------
 9 files changed, 2020 insertions(+), 2020 deletions(-)

diff --git a/libraries/export/codegen.php b/libraries/export/codegen.php
index 357eac0..b8b35d5 100644
--- a/libraries/export/codegen.php
+++ b/libraries/export/codegen.php
@@ -42,188 +42,188 @@ if (isset($plugin_list)) {
         );
 } else {
 
-/**
- * Set of functions used to build exports of tables
- */
-
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter()
-{
-    return true;
-}
-
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader()
-{
-    return true;
-}
-
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db)
-{
-    return true;
-}
-
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db)
-{
-    return true;
-}
-
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db)
-{
-    return true;
-}
+    /**
+     * Set of functions used to build exports of tables
+     */
 
-/**
- * Outputs the content of a table in NHibernate format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
-{
-    global $CG_FORMATS, $CG_HANDLERS, $what;
-    $format = $GLOBALS[$what . '_format'];
-    if (isset($CG_FORMATS[$format])) {
-        return PMA_exportOutputHandler($CG_HANDLERS[$format]($db, $table, $crlf));
-    }
-    return PMA_exportOutputHandler(sprintf("%s is not supported.", $format));
-}
-
-/**
- *
- * @package phpMyAdmin-Export
- * @subpackage Codegen
- */
-class TableProperty
-{
-    public $name;
-    public $type;
-    public $nullable;
-    public $key;
-    public $defaultValue;
-    public $ext;
-    function __construct($row)
-    {
-        $this->name = trim($row[0]);
-        $this->type = trim($row[1]);
-        $this->nullable = trim($row[2]);
-        $this->key = trim($row[3]);
-        $this->defaultValue = trim($row[4]);
-        $this->ext = trim($row[5]);
-    }
-    function getPureType()
-    {
-        $pos=strpos($this->type, "(");
-        if ($pos > 0)
-            return substr($this->type, 0, $pos);
-        return $this->type;
-    }
-    function isNotNull()
-    {
-        return $this->nullable == "NO" ? "true" : "false";
-    }
-    function isUnique()
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter()
     {
-        return $this->key == "PRI" || $this->key == "UNI" ? "true" : "false";
+        return true;
     }
-    function getDotNetPrimitiveType()
-    {
-        if (strpos($this->type, "int") === 0) return "int";
-        if (strpos($this->type, "long") === 0) return "long";
-        if (strpos($this->type, "char") === 0) return "string";
-        if (strpos($this->type, "varchar") === 0) return "string";
-        if (strpos($this->type, "text") === 0) return "string";
-        if (strpos($this->type, "longtext") === 0) return "string";
-        if (strpos($this->type, "tinyint") === 0) return "bool";
-        if (strpos($this->type, "datetime") === 0) return "DateTime";
-        return "unknown";
-    }
-    function getDotNetObjectType()
+
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader()
     {
-        if (strpos($this->type, "int") === 0) return "Int32";
-        if (strpos($this->type, "long") === 0) return "Long";
-        if (strpos($this->type, "char") === 0) return "String";
-        if (strpos($this->type, "varchar") === 0) return "String";
-        if (strpos($this->type, "text") === 0) return "String";
-        if (strpos($this->type, "longtext") === 0) return "String";
-        if (strpos($this->type, "tinyint") === 0) return "Boolean";
-        if (strpos($this->type, "datetime") === 0) return "DateTime";
-        return "Unknown";
+        return true;
     }
-    function getIndexName()
+
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db)
     {
-        if (strlen($this->key)>0)
-            return "index=\"" . htmlspecialchars($this->name, ENT_COMPAT, 'UTF-8') . "\"";
-        return "";
+        return true;
     }
-    function isPK()
+
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db)
     {
-        return $this->key=="PRI";
+        return true;
     }
-    function formatCs($text)
+
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db)
     {
-        $text=str_replace("#name#", cgMakeIdentifier($this->name, false), $text);
-        return $this->format($text);
+        return true;
     }
-    function formatXml($text)
+
+    /**
+     * Outputs the content of a table in NHibernate format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
     {
-        $text=str_replace("#name#", htmlspecialchars($this->name, ENT_COMPAT, 'UTF-8'), $text);
-        $text=str_replace("#indexName#", $this->getIndexName(), $text);
-        return $this->format($text);
+        global $CG_FORMATS, $CG_HANDLERS, $what;
+        $format = $GLOBALS[$what . '_format'];
+        if (isset($CG_FORMATS[$format])) {
+            return PMA_exportOutputHandler($CG_HANDLERS[$format]($db, $table, $crlf));
+        }
+        return PMA_exportOutputHandler(sprintf("%s is not supported.", $format));
     }
-    function format($text)
+
+    /**
+     *
+     * @package phpMyAdmin-Export
+     * @subpackage Codegen
+     */
+    class TableProperty
     {
-        $text=str_replace("#ucfirstName#", cgMakeIdentifier($this->name), $text);
-        $text=str_replace("#dotNetPrimitiveType#", $this->getDotNetPrimitiveType(), $text);
-        $text=str_replace("#dotNetObjectType#", $this->getDotNetObjectType(), $text);
-        $text=str_replace("#type#", $this->getPureType(), $text);
-        $text=str_replace("#notNull#", $this->isNotNull(), $text);
-        $text=str_replace("#unique#", $this->isUnique(), $text);
-        return $text;
+        public $name;
+        public $type;
+        public $nullable;
+        public $key;
+        public $defaultValue;
+        public $ext;
+        function __construct($row)
+        {
+            $this->name = trim($row[0]);
+            $this->type = trim($row[1]);
+            $this->nullable = trim($row[2]);
+            $this->key = trim($row[3]);
+            $this->defaultValue = trim($row[4]);
+            $this->ext = trim($row[5]);
+        }
+        function getPureType()
+        {
+            $pos=strpos($this->type, "(");
+            if ($pos > 0)
+                return substr($this->type, 0, $pos);
+            return $this->type;
+        }
+        function isNotNull()
+        {
+            return $this->nullable == "NO" ? "true" : "false";
+        }
+        function isUnique()
+        {
+            return $this->key == "PRI" || $this->key == "UNI" ? "true" : "false";
+        }
+        function getDotNetPrimitiveType()
+        {
+            if (strpos($this->type, "int") === 0) return "int";
+            if (strpos($this->type, "long") === 0) return "long";
+            if (strpos($this->type, "char") === 0) return "string";
+            if (strpos($this->type, "varchar") === 0) return "string";
+            if (strpos($this->type, "text") === 0) return "string";
+            if (strpos($this->type, "longtext") === 0) return "string";
+            if (strpos($this->type, "tinyint") === 0) return "bool";
+            if (strpos($this->type, "datetime") === 0) return "DateTime";
+            return "unknown";
+        }
+        function getDotNetObjectType()
+        {
+            if (strpos($this->type, "int") === 0) return "Int32";
+            if (strpos($this->type, "long") === 0) return "Long";
+            if (strpos($this->type, "char") === 0) return "String";
+            if (strpos($this->type, "varchar") === 0) return "String";
+            if (strpos($this->type, "text") === 0) return "String";
+            if (strpos($this->type, "longtext") === 0) return "String";
+            if (strpos($this->type, "tinyint") === 0) return "Boolean";
+            if (strpos($this->type, "datetime") === 0) return "DateTime";
+            return "Unknown";
+        }
+        function getIndexName()
+        {
+            if (strlen($this->key)>0)
+                return "index=\"" . htmlspecialchars($this->name, ENT_COMPAT, 'UTF-8') . "\"";
+            return "";
+        }
+        function isPK()
+        {
+            return $this->key=="PRI";
+        }
+        function formatCs($text)
+        {
+            $text=str_replace("#name#", cgMakeIdentifier($this->name, false), $text);
+            return $this->format($text);
+        }
+        function formatXml($text)
+        {
+            $text=str_replace("#name#", htmlspecialchars($this->name, ENT_COMPAT, 'UTF-8'), $text);
+            $text=str_replace("#indexName#", $this->getIndexName(), $text);
+            return $this->format($text);
+        }
+        function format($text)
+        {
+            $text=str_replace("#ucfirstName#", cgMakeIdentifier($this->name), $text);
+            $text=str_replace("#dotNetPrimitiveType#", $this->getDotNetPrimitiveType(), $text);
+            $text=str_replace("#dotNetObjectType#", $this->getDotNetObjectType(), $text);
+            $text=str_replace("#type#", $this->getPureType(), $text);
+            $text=str_replace("#notNull#", $this->isNotNull(), $text);
+            $text=str_replace("#unique#", $this->isUnique(), $text);
+            return $text;
+        }
     }
-}
 
     function cgMakeIdentifier($str, $ucfirst = true)
     {
diff --git a/libraries/export/csv.php b/libraries/export/csv.php
index 19ca573..8b04841 100644
--- a/libraries/export/csv.php
+++ b/libraries/export/csv.php
@@ -35,189 +35,189 @@ if (isset($plugin_list)) {
         );
 } else {
 
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter() {
-    return true;
-}
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter() {
+        return true;
+    }
 
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader() {
-    global $what;
-    global $csv_terminated;
-    global $csv_separator;
-    global $csv_enclosed;
-    global $csv_escaped;
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader() {
+        global $what;
+        global $csv_terminated;
+        global $csv_separator;
+        global $csv_enclosed;
+        global $csv_escaped;
 
-    // Here we just prepare some values for export
-    if ($what == 'excel') {
-        $csv_terminated      = "\015\012";
-        switch($GLOBALS['excel_edition']) {
-        case 'win':
-            // as tested on Windows with Excel 2002 and Excel 2007
-            $csv_separator = ';';
-            break;
-        case 'mac_excel2003':
-            $csv_separator = ';';
-            break;
-        case 'mac_excel2008':
-            $csv_separator = ',';
-            break;
-        }
-        $csv_enclosed           = '"';
-        $csv_escaped            = '"';
-        if (isset($GLOBALS['excel_columns'])) {
-            $GLOBALS['csv_columns'] = 'yes';
-        }
-    } else {
-        if (empty($csv_terminated) || strtolower($csv_terminated) == 'auto') {
-            $csv_terminated  = $GLOBALS['crlf'];
+        // Here we just prepare some values for export
+        if ($what == 'excel') {
+            $csv_terminated      = "\015\012";
+            switch($GLOBALS['excel_edition']) {
+            case 'win':
+                // as tested on Windows with Excel 2002 and Excel 2007
+                $csv_separator = ';';
+                break;
+            case 'mac_excel2003':
+                $csv_separator = ';';
+                break;
+            case 'mac_excel2008':
+                $csv_separator = ',';
+                break;
+            }
+            $csv_enclosed           = '"';
+            $csv_escaped            = '"';
+            if (isset($GLOBALS['excel_columns'])) {
+                $GLOBALS['csv_columns'] = 'yes';
+            }
         } else {
-            $csv_terminated  = str_replace('\\r', "\015", $csv_terminated);
-            $csv_terminated  = str_replace('\\n', "\012", $csv_terminated);
-            $csv_terminated  = str_replace('\\t', "\011", $csv_terminated);
-        } // end if
-        $csv_separator          = str_replace('\\t', "\011", $csv_separator);
+            if (empty($csv_terminated) || strtolower($csv_terminated) == 'auto') {
+                $csv_terminated  = $GLOBALS['crlf'];
+            } else {
+                $csv_terminated  = str_replace('\\r', "\015", $csv_terminated);
+                $csv_terminated  = str_replace('\\n', "\012", $csv_terminated);
+                $csv_terminated  = str_replace('\\t', "\011", $csv_terminated);
+            } // end if
+            $csv_separator          = str_replace('\\t', "\011", $csv_separator);
+        }
+        return true;
     }
-    return true;
-}
 
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db) {
-    return true;
-}
-
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db) {
-    return true;
-}
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db) {
+        return true;
+    }
 
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db) {
-    return true;
-}
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db) {
+        return true;
+    }
 
-/**
- * Outputs the content of a table in CSV format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
-    global $what;
-    global $csv_terminated;
-    global $csv_separator;
-    global $csv_enclosed;
-    global $csv_escaped;
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db) {
+        return true;
+    }
 
-    // Gets the data from the database
-    $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
-    $fields_cnt  = PMA_DBI_num_fields($result);
+    /**
+     * Outputs the content of a table in CSV format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+        global $what;
+        global $csv_terminated;
+        global $csv_separator;
+        global $csv_enclosed;
+        global $csv_escaped;
 
-    // If required, get fields name at the first line
-    if (isset($GLOBALS['csv_columns'])) {
-        $schema_insert = '';
-        for ($i = 0; $i < $fields_cnt; $i++) {
-            if ($csv_enclosed == '') {
-                $schema_insert .= stripslashes(PMA_DBI_field_name($result, $i));
-            } else {
-                $schema_insert .= $csv_enclosed
-                               . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, stripslashes(PMA_DBI_field_name($result, $i)))
-                               . $csv_enclosed;
-            }
-            $schema_insert     .= $csv_separator;
-        } // end for
-        $schema_insert  =trim(substr($schema_insert, 0, -1));
-        if (!PMA_exportOutputHandler($schema_insert . $csv_terminated)) {
-            return false;
-        }
-    } // end if
+        // Gets the data from the database
+        $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+        $fields_cnt  = PMA_DBI_num_fields($result);
 
-    // Format the data
-    while ($row = PMA_DBI_fetch_row($result)) {
-        $schema_insert = '';
-        for ($j = 0; $j < $fields_cnt; $j++) {
-            if (!isset($row[$j]) || is_null($row[$j])) {
-                $schema_insert .= $GLOBALS[$what . '_null'];
-            } elseif ($row[$j] == '0' || $row[$j] != '') {
-                // always enclose fields
-                if ($what == 'excel') {
-                    $row[$j]       = preg_replace("/\015(\012)?/", "\012", $row[$j]);
-                }
-                // remove CRLF characters within field
-                if (isset($GLOBALS[$what . '_removeCRLF']) && $GLOBALS[$what . '_removeCRLF']) {
-                    $row[$j] = str_replace("\n", "", str_replace("\r", "", $row[$j]));
-                }
+        // If required, get fields name at the first line
+        if (isset($GLOBALS['csv_columns'])) {
+            $schema_insert = '';
+            for ($i = 0; $i < $fields_cnt; $i++) {
                 if ($csv_enclosed == '') {
-                    $schema_insert .= $row[$j];
+                    $schema_insert .= stripslashes(PMA_DBI_field_name($result, $i));
                 } else {
-                    // also double the escape string if found in the data
-                    if ('csv' == $what) {
-                        $schema_insert .= $csv_enclosed
-                                   . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, str_replace($csv_escaped, $csv_escaped . $csv_escaped, $row[$j]))
+                    $schema_insert .= $csv_enclosed
+                                   . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, stripslashes(PMA_DBI_field_name($result, $i)))
                                    . $csv_enclosed;
+                }
+                $schema_insert     .= $csv_separator;
+            } // end for
+            $schema_insert  =trim(substr($schema_insert, 0, -1));
+            if (!PMA_exportOutputHandler($schema_insert . $csv_terminated)) {
+                return false;
+            }
+        } // end if
+
+        // Format the data
+        while ($row = PMA_DBI_fetch_row($result)) {
+            $schema_insert = '';
+            for ($j = 0; $j < $fields_cnt; $j++) {
+                if (!isset($row[$j]) || is_null($row[$j])) {
+                    $schema_insert .= $GLOBALS[$what . '_null'];
+                } elseif ($row[$j] == '0' || $row[$j] != '') {
+                    // always enclose fields
+                    if ($what == 'excel') {
+                        $row[$j]       = preg_replace("/\015(\012)?/", "\012", $row[$j]);
+                    }
+                    // remove CRLF characters within field
+                    if (isset($GLOBALS[$what . '_removeCRLF']) && $GLOBALS[$what . '_removeCRLF']) {
+                        $row[$j] = str_replace("\n", "", str_replace("\r", "", $row[$j]));
+                    }
+                    if ($csv_enclosed == '') {
+                        $schema_insert .= $row[$j];
                     } else {
-                        // for excel, avoid a problem when a field contains
-                        // double quotes
-                        $schema_insert .= $csv_enclosed
-                                   . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j])
-                                   . $csv_enclosed;
+                        // also double the escape string if found in the data
+                        if ('csv' == $what) {
+                            $schema_insert .= $csv_enclosed
+                                       . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, str_replace($csv_escaped, $csv_escaped . $csv_escaped, $row[$j]))
+                                       . $csv_enclosed;
+                        } else {
+                            // for excel, avoid a problem when a field contains
+                            // double quotes
+                            $schema_insert .= $csv_enclosed
+                                       . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j])
+                                       . $csv_enclosed;
+                        }
                     }
+                } else {
+                    $schema_insert .= '';
                 }
-            } else {
-                $schema_insert .= '';
-            }
-            if ($j < $fields_cnt-1) {
-                $schema_insert .= $csv_separator;
-            }
-        } // end for
+                if ($j < $fields_cnt-1) {
+                    $schema_insert .= $csv_separator;
+                }
+            } // end for
 
-        if (!PMA_exportOutputHandler($schema_insert . $csv_terminated)) {
-            return false;
-        }
-    } // end while
-    PMA_DBI_free_result($result);
+            if (!PMA_exportOutputHandler($schema_insert . $csv_terminated)) {
+                return false;
+            }
+        } // end while
+        PMA_DBI_free_result($result);
 
-    return true;
-} // end of the 'PMA_getTableCsv()' function
+        return true;
+    } // end of the 'PMA_getTableCsv()' function
 
 }
 ?>
diff --git a/libraries/export/htmlword.php b/libraries/export/htmlword.php
index 6604ac6..707bc77 100644
--- a/libraries/export/htmlword.php
+++ b/libraries/export/htmlword.php
@@ -34,321 +34,321 @@ if (isset($plugin_list)) {
         );
 } else {
 
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter() {
-    return PMA_exportOutputHandler('</body></html>');
-}
-
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader() {
-    global $charset_of_file;
-    return PMA_exportOutputHandler('<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:x="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
-<head>
-    <meta http-equiv="Content-type" content="text/html;charset=' . (isset($charset_of_file) ? $charset_of_file : 'utf-8') . '" />
-</head>
-<body>');
-}
-
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db) {
-    return PMA_exportOutputHandler('<h1>' . __('Database') . ' ' . htmlspecialchars($db) . '</h1>');
-}
-
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db) {
-    return true;
-}
-
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db) {
-    return true;
-}
-
-/**
- * Outputs the content of a table in HTML (Microsoft Word) format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
-{
-    global $what;
-
-    if (! PMA_exportOutputHandler('<h2>' . __('Dumping data for table') . ' ' . htmlspecialchars($table) . '</h2>')) {
-        return false;
-    }
-    if (! PMA_exportOutputHandler('<table class="width100" cellspacing="1">')) {
-        return false;
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter() {
+        return PMA_exportOutputHandler('</body></html>');
     }
 
-    // Gets the data from the database
-    $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
-    $fields_cnt  = PMA_DBI_num_fields($result);
-
-    // If required, get fields name at the first line
-    if (isset($GLOBALS['htmlword_columns'])) {
-        $schema_insert = '<tr class="print-category">';
-        for ($i = 0; $i < $fields_cnt; $i++) {
-            $schema_insert .= '<td class="print"><b>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</b></td>';
-        } // end for
-        $schema_insert .= '</tr>';
-        if (! PMA_exportOutputHandler($schema_insert)) {
-            return false;
-        }
-    } // end if
-
-    // Format the data
-    while ($row = PMA_DBI_fetch_row($result)) {
-        $schema_insert = '<tr class="print-category">';
-        for ($j = 0; $j < $fields_cnt; $j++) {
-            if (! isset($row[$j]) || is_null($row[$j])) {
-                $value = $GLOBALS[$what . '_null'];
-            } elseif ($row[$j] == '0' || $row[$j] != '') {
-                $value = $row[$j];
-            } else {
-                $value = '';
-            }
-            $schema_insert .= '<td class="print">' . htmlspecialchars($value) . '</td>';
-        } // end for
-        $schema_insert .= '</tr>';
-        if (! PMA_exportOutputHandler($schema_insert)) {
-            return false;
-        }
-    } // end while
-    PMA_DBI_free_result($result);
-    if (! PMA_exportOutputHandler('</table>')) {
-        return false;
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader() {
+        global $charset_of_file;
+        return PMA_exportOutputHandler('<html xmlns:o="urn:schemas-microsoft-com:office:office"
+    xmlns:x="urn:schemas-microsoft-com:office:word"
+    xmlns="http://www.w3.org/TR/REC-html40">
+
+    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+    <html>
+    <head>
+        <meta http-equiv="Content-type" content="text/html;charset=' . (isset($charset_of_file) ? $charset_of_file : 'utf-8') . '" />
+    </head>
+    <body>');
     }
 
-    return true;
-}
-
-/**
- * Outputs table's structure
- *
- * @param string  $db           database name
- * @param string  $table        table name
- * @param string  $crlf         the end of line sequence
- * @param string  $error_url    the url to go back in case of error
- * @param bool    $do_relation  whether to include relation comments
- * @param bool    $do_comments  whether to include the pmadb-style column comments
- *                                as comments in the structure; this is deprecated
- *                                but the parameter is left here because export.php
- *                                calls PMA_exportStructure() also for other export
- *                                types which use this parameter
- * @param bool    $do_mime      whether to include mime comments
- * @param bool    $dates        whether to include creation/update/check dates
- * @param string  $export_mode  'create_table', 'triggers', 'create_view', 'stand_in'
- * @param string  $export_type  'server', 'database', 'table'
- * @return  bool      Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $export_mode, $export_type)
-{
-    global $cfgRelation;
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db) {
+        return PMA_exportOutputHandler('<h1>' . __('Database') . ' ' . htmlspecialchars($db) . '</h1>');
+    }
 
-    if (! PMA_exportOutputHandler('<h2>' . __('Table structure for table') . ' ' . htmlspecialchars($table) . '</h2>')) {
-        return false;
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db) {
+        return true;
     }
 
     /**
-     * Get the unique keys in the table
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
      */
-    $keys_query     = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
-    $keys_result    = PMA_DBI_query($keys_query);
-    $unique_keys    = array();
-    while ($key = PMA_DBI_fetch_assoc($keys_result)) {
-        if ($key['Non_unique'] == 0) {
-            $unique_keys[] = $key['Column_name'];
-        }
+    function PMA_exportDBCreate($db) {
+        return true;
     }
-    PMA_DBI_free_result($keys_result);
 
     /**
-     * Gets fields properties
+     * Outputs the content of a table in HTML (Microsoft Word) format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
      */
-    PMA_DBI_select_db($db);
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+    {
+        global $what;
 
-    // Check if we can use Relations
-    if ($do_relation && ! empty($cfgRelation['relation'])) {
-        // Find which tables are related with the current one and write it in
-        // an array
-        $res_rel = PMA_getForeigners($db, $table);
+        if (! PMA_exportOutputHandler('<h2>' . __('Dumping data for table') . ' ' . htmlspecialchars($table) . '</h2>')) {
+            return false;
+        }
+        if (! PMA_exportOutputHandler('<table class="width100" cellspacing="1">')) {
+            return false;
+        }
 
-        if ($res_rel && count($res_rel) > 0) {
-            $have_rel = true;
-        } else {
-            $have_rel = false;
+        // Gets the data from the database
+        $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+        $fields_cnt  = PMA_DBI_num_fields($result);
+
+        // If required, get fields name at the first line
+        if (isset($GLOBALS['htmlword_columns'])) {
+            $schema_insert = '<tr class="print-category">';
+            for ($i = 0; $i < $fields_cnt; $i++) {
+                $schema_insert .= '<td class="print"><b>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</b></td>';
+            } // end for
+            $schema_insert .= '</tr>';
+            if (! PMA_exportOutputHandler($schema_insert)) {
+                return false;
+            }
+        } // end if
+
+        // Format the data
+        while ($row = PMA_DBI_fetch_row($result)) {
+            $schema_insert = '<tr class="print-category">';
+            for ($j = 0; $j < $fields_cnt; $j++) {
+                if (! isset($row[$j]) || is_null($row[$j])) {
+                    $value = $GLOBALS[$what . '_null'];
+                } elseif ($row[$j] == '0' || $row[$j] != '') {
+                    $value = $row[$j];
+                } else {
+                    $value = '';
+                }
+                $schema_insert .= '<td class="print">' . htmlspecialchars($value) . '</td>';
+            } // end for
+            $schema_insert .= '</tr>';
+            if (! PMA_exportOutputHandler($schema_insert)) {
+                return false;
+            }
+        } // end while
+        PMA_DBI_free_result($result);
+        if (! PMA_exportOutputHandler('</table>')) {
+            return false;
         }
-    } else {
-           $have_rel = false;
-    } // end if
+
+        return true;
+    }
 
     /**
-     * Displays the table structure
+     * Outputs table's structure
+     *
+     * @param string  $db           database name
+     * @param string  $table        table name
+     * @param string  $crlf         the end of line sequence
+     * @param string  $error_url    the url to go back in case of error
+     * @param bool    $do_relation  whether to include relation comments
+     * @param bool    $do_comments  whether to include the pmadb-style column comments
+     *                                as comments in the structure; this is deprecated
+     *                                but the parameter is left here because export.php
+     *                                calls PMA_exportStructure() also for other export
+     *                                types which use this parameter
+     * @param bool    $do_mime      whether to include mime comments
+     * @param bool    $dates        whether to include creation/update/check dates
+     * @param string  $export_mode  'create_table', 'triggers', 'create_view', 'stand_in'
+     * @param string  $export_type  'server', 'database', 'table'
+     * @return  bool      Whether it suceeded
+     *
+     * @access  public
      */
-    if (! PMA_exportOutputHandler('<table class="width100" cellspacing="1">')) {
-        return false;
-    }
+    function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $export_mode, $export_type)
+    {
+        global $cfgRelation;
 
-    $columns_cnt = 4;
-    if ($do_relation && $have_rel) {
-        $columns_cnt++;
-    }
-    if ($do_comments && $cfgRelation['commwork']) {
-        $columns_cnt++;
-    }
-    if ($do_mime && $cfgRelation['mimework']) {
-        $columns_cnt++;
-    }
+        if (! PMA_exportOutputHandler('<h2>' . __('Table structure for table') . ' ' . htmlspecialchars($table) . '</h2>')) {
+            return false;
+        }
 
-    $schema_insert = '<tr class="print-category">';
-    $schema_insert .= '<th class="print">' . htmlspecialchars(__('Column')) . '</th>';
-    $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Type')) . '</b></td>';
-    $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Null')) . '</b></td>';
-    $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Default')) . '</b></td>';
-    if ($do_relation && $have_rel) {
-        $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Links to')) . '</b></td>';
-    }
-    if ($do_comments) {
-        $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Comments')) . '</b></td>';
-        $comments = PMA_getComments($db, $table);
-    }
-    if ($do_mime && $cfgRelation['mimework']) {
-        $schema_insert .= '<td class="print"><b>' . htmlspecialchars('MIME') . '</b></td>';
-        $mime_map = PMA_getMIME($db, $table, true);
-    }
-    $schema_insert .= '</tr>';
+        /**
+         * Get the unique keys in the table
+         */
+        $keys_query     = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+        $keys_result    = PMA_DBI_query($keys_query);
+        $unique_keys    = array();
+        while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+            if ($key['Non_unique'] == 0) {
+                $unique_keys[] = $key['Column_name'];
+            }
+        }
+        PMA_DBI_free_result($keys_result);
 
-    if (! PMA_exportOutputHandler($schema_insert)) {
-        return false;
-    }
+        /**
+         * Gets fields properties
+         */
+        PMA_DBI_select_db($db);
 
-    $columns = PMA_DBI_get_columns($db, $table);
-    foreach ($columns as $column) {
+        // Check if we can use Relations
+        if ($do_relation && ! empty($cfgRelation['relation'])) {
+            // Find which tables are related with the current one and write it in
+            // an array
+            $res_rel = PMA_getForeigners($db, $table);
 
-        $schema_insert = '<tr class="print-category">';
-        $type          = $column['Type'];
-        // reformat mysql query output
-        // set or enum types: slashes single quotes inside options
-        if (preg_match('/^(set|enum)\((.+)\)$/i', $type, $tmp)) {
-            $tmp[2]       = substr(preg_replace('/([^,])\'\'/', '\\1\\\'', ',' . $tmp[2]), 1);
-            $type         = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
-            $type_nowrap  = '';
-
-            $binary       = 0;
-            $unsigned     = 0;
-            $zerofill     = 0;
-        } else {
-            $type_nowrap  = ' nowrap="nowrap"';
-            $type         = preg_replace('/BINARY/i', '', $type);
-            $type         = preg_replace('/ZEROFILL/i', '', $type);
-            $type         = preg_replace('/UNSIGNED/i', '', $type);
-            if (empty($type)) {
-                $type     = ' ';
+            if ($res_rel && count($res_rel) > 0) {
+                $have_rel = true;
+            } else {
+                $have_rel = false;
             }
+        } else {
+               $have_rel = false;
+        } // end if
 
-            $binary       = preg_match('/BINARY/i', $column['Type']);
-            $unsigned     = preg_match('/UNSIGNED/i', $column['Type']);
-            $zerofill     = preg_match('/ZEROFILL/i', $column['Type']);
-        }
-        $attribute     = ' ';
-        if ($binary) {
-            $attribute = 'BINARY';
-        }
-        if ($unsigned) {
-            $attribute = 'UNSIGNED';
-        }
-        if ($zerofill) {
-            $attribute = 'UNSIGNED ZEROFILL';
-        }
-        if (! isset($column['Default'])) {
-            if ($column['Null'] != 'NO') {
-                $column['Default'] = 'NULL';
-            }
+        /**
+         * Displays the table structure
+         */
+        if (! PMA_exportOutputHandler('<table class="width100" cellspacing="1">')) {
+            return false;
         }
 
-        $fmt_pre = '';
-        $fmt_post = '';
-        if (in_array($column['Field'], $unique_keys)) {
-            $fmt_pre = '<b>' . $fmt_pre;
-            $fmt_post = $fmt_post . '</b>';
+        $columns_cnt = 4;
+        if ($do_relation && $have_rel) {
+            $columns_cnt++;
         }
-        if ($column['Key'] == 'PRI') {
-            $fmt_pre = '<i>' . $fmt_pre;
-            $fmt_post = $fmt_post . '</i>';
+        if ($do_comments && $cfgRelation['commwork']) {
+            $columns_cnt++;
+        }
+        if ($do_mime && $cfgRelation['mimework']) {
+            $columns_cnt++;
         }
-        $schema_insert .= '<td class="print">' . $fmt_pre . htmlspecialchars($column['Field']) . $fmt_post . '</td>';
-        $schema_insert .= '<td class="print">' . htmlspecialchars($type) . '</td>';
-        $schema_insert .= '<td class="print">' . htmlspecialchars(($column['Null'] == '' || $column['Null'] == 'NO') ? __('No') : __('Yes')) . '</td>';
-        $schema_insert .= '<td class="print">' . htmlspecialchars(isset($column['Default']) ? $column['Default'] : '') . '</td>';
-
-        $field_name = $column['Field'];
 
+        $schema_insert = '<tr class="print-category">';
+        $schema_insert .= '<th class="print">' . htmlspecialchars(__('Column')) . '</th>';
+        $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Type')) . '</b></td>';
+        $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Null')) . '</b></td>';
+        $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Default')) . '</b></td>';
         if ($do_relation && $have_rel) {
-            $schema_insert .= '<td class="print">' . (isset($res_rel[$field_name]) ? htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') : '') . '</td>';
+            $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Links to')) . '</b></td>';
         }
-        if ($do_comments && $cfgRelation['commwork']) {
-            $schema_insert .= '<td class="print">' . (isset($comments[$field_name]) ? htmlspecialchars($comments[$field_name]) : '') . '</td>';
+        if ($do_comments) {
+            $schema_insert .= '<td class="print"><b>' . htmlspecialchars(__('Comments')) . '</b></td>';
+            $comments = PMA_getComments($db, $table);
         }
         if ($do_mime && $cfgRelation['mimework']) {
-            $schema_insert .= '<td class="print">' . (isset($mime_map[$field_name]) ? htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) : '') . '</td>';
+            $schema_insert .= '<td class="print"><b>' . htmlspecialchars('MIME') . '</b></td>';
+            $mime_map = PMA_getMIME($db, $table, true);
         }
-
         $schema_insert .= '</tr>';
 
         if (! PMA_exportOutputHandler($schema_insert)) {
             return false;
         }
-    } // end while
 
-    return PMA_exportOutputHandler('</table>');
-}
+        $columns = PMA_DBI_get_columns($db, $table);
+        foreach ($columns as $column) {
+
+            $schema_insert = '<tr class="print-category">';
+            $type          = $column['Type'];
+            // reformat mysql query output
+            // set or enum types: slashes single quotes inside options
+            if (preg_match('/^(set|enum)\((.+)\)$/i', $type, $tmp)) {
+                $tmp[2]       = substr(preg_replace('/([^,])\'\'/', '\\1\\\'', ',' . $tmp[2]), 1);
+                $type         = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+                $type_nowrap  = '';
+
+                $binary       = 0;
+                $unsigned     = 0;
+                $zerofill     = 0;
+            } else {
+                $type_nowrap  = ' nowrap="nowrap"';
+                $type         = preg_replace('/BINARY/i', '', $type);
+                $type         = preg_replace('/ZEROFILL/i', '', $type);
+                $type         = preg_replace('/UNSIGNED/i', '', $type);
+                if (empty($type)) {
+                    $type     = ' ';
+                }
+
+                $binary       = preg_match('/BINARY/i', $column['Type']);
+                $unsigned     = preg_match('/UNSIGNED/i', $column['Type']);
+                $zerofill     = preg_match('/ZEROFILL/i', $column['Type']);
+            }
+            $attribute     = ' ';
+            if ($binary) {
+                $attribute = 'BINARY';
+            }
+            if ($unsigned) {
+                $attribute = 'UNSIGNED';
+            }
+            if ($zerofill) {
+                $attribute = 'UNSIGNED ZEROFILL';
+            }
+            if (! isset($column['Default'])) {
+                if ($column['Null'] != 'NO') {
+                    $column['Default'] = 'NULL';
+                }
+            }
+
+            $fmt_pre = '';
+            $fmt_post = '';
+            if (in_array($column['Field'], $unique_keys)) {
+                $fmt_pre = '<b>' . $fmt_pre;
+                $fmt_post = $fmt_post . '</b>';
+            }
+            if ($column['Key'] == 'PRI') {
+                $fmt_pre = '<i>' . $fmt_pre;
+                $fmt_post = $fmt_post . '</i>';
+            }
+            $schema_insert .= '<td class="print">' . $fmt_pre . htmlspecialchars($column['Field']) . $fmt_post . '</td>';
+            $schema_insert .= '<td class="print">' . htmlspecialchars($type) . '</td>';
+            $schema_insert .= '<td class="print">' . htmlspecialchars(($column['Null'] == '' || $column['Null'] == 'NO') ? __('No') : __('Yes')) . '</td>';
+            $schema_insert .= '<td class="print">' . htmlspecialchars(isset($column['Default']) ? $column['Default'] : '') . '</td>';
+
+            $field_name = $column['Field'];
+
+            if ($do_relation && $have_rel) {
+                $schema_insert .= '<td class="print">' . (isset($res_rel[$field_name]) ? htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') : '') . '</td>';
+            }
+            if ($do_comments && $cfgRelation['commwork']) {
+                $schema_insert .= '<td class="print">' . (isset($comments[$field_name]) ? htmlspecialchars($comments[$field_name]) : '') . '</td>';
+            }
+            if ($do_mime && $cfgRelation['mimework']) {
+                $schema_insert .= '<td class="print">' . (isset($mime_map[$field_name]) ? htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) : '') . '</td>';
+            }
+
+            $schema_insert .= '</tr>';
+
+            if (! PMA_exportOutputHandler($schema_insert)) {
+                return false;
+            }
+        } // end while
+
+        return PMA_exportOutputHandler('</table>');
+    }
 
 }
 ?>
diff --git a/libraries/export/json.php b/libraries/export/json.php
index e008f0c..860d640 100644
--- a/libraries/export/json.php
+++ b/libraries/export/json.php
@@ -30,144 +30,144 @@ if (isset($plugin_list)) {
     );
 } else {
 
-/**
- * Set of functions used to build exports of tables
- */
+    /**
+     * Set of functions used to build exports of tables
+     */
+
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter()
+    {
+        return true;
+    }
 
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter()
-{
-    return true;
-}
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader()
+    {
+        PMA_exportOutputHandler(
+            '/**' . $GLOBALS['crlf']
+            . ' Export to JSON plugin for PHPMyAdmin' . $GLOBALS['crlf']
+            . ' @version 0.1' . $GLOBALS['crlf']
+            . ' */' . $GLOBALS['crlf'] . $GLOBALS['crlf']
+        );
+        return true;
+    }
 
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader()
-{
-    PMA_exportOutputHandler(
-        '/**' . $GLOBALS['crlf']
-        . ' Export to JSON plugin for PHPMyAdmin' . $GLOBALS['crlf']
-        . ' @version 0.1' . $GLOBALS['crlf']
-        . ' */' . $GLOBALS['crlf'] . $GLOBALS['crlf']
-    );
-    return true;
-}
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db)
+    {
+        PMA_exportOutputHandler('// Database \'' . $db . '\'' . $GLOBALS['crlf'] );
+        return true;
+    }
 
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db)
-{
-    PMA_exportOutputHandler('// Database \'' . $db . '\'' . $GLOBALS['crlf'] );
-    return true;
-}
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db)
+    {
+        return true;
+    }
 
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db)
-{
-    return true;
-}
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db)
+    {
+        return true;
+    }
 
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db)
-{
-    return true;
-}
+    /**
+     * Outputs the content of a table in JSON format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+    {
+        $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+
+        $columns_cnt = PMA_DBI_num_fields($result);
+        for ($i = 0; $i < $columns_cnt; $i++) {
+            $columns[$i] = stripslashes(PMA_DBI_field_name($result, $i));
+        }
+        unset($i);
 
-/**
- * Outputs the content of a table in JSON format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
-{
-    $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+        $buffer = '';
+        $record_cnt = 0;
+        while ($record = PMA_DBI_fetch_row($result)) {
 
-    $columns_cnt = PMA_DBI_num_fields($result);
-    for ($i = 0; $i < $columns_cnt; $i++) {
-        $columns[$i] = stripslashes(PMA_DBI_field_name($result, $i));
-    }
-    unset($i);
+            $record_cnt++;
 
-    $buffer = '';
-    $record_cnt = 0;
-    while ($record = PMA_DBI_fetch_row($result)) {
+            // Output table name as comment if this is the first record of the table
+            if ($record_cnt == 1) {
+                $buffer .= '// ' . $db . '.' . $table . $crlf . $crlf;
+                $buffer .= '[{';
+            } else {
+                $buffer .= ', {';
+            }
 
-        $record_cnt++;
+            for ($i = 0; $i < $columns_cnt; $i++) {
 
-        // Output table name as comment if this is the first record of the table
-        if ($record_cnt == 1) {
-            $buffer .= '// ' . $db . '.' . $table . $crlf . $crlf;
-            $buffer .= '[{';
-        } else {
-            $buffer .= ', {';
-        }
+                $isLastLine = ($i + 1 >= $columns_cnt);
 
-        for ($i = 0; $i < $columns_cnt; $i++) {
+                $column = $columns[$i];
 
-            $isLastLine = ($i + 1 >= $columns_cnt);
+                if (is_null($record[$i])) {
+                    $buffer .= '"' . addslashes($column) . '": null' . (! $isLastLine ? ',' : '');
+                } elseif (is_numeric($record[$i])) {
+                    $buffer .= '"' . addslashes($column) . '": ' . $record[$i] . (! $isLastLine ? ',' : '');
+                } else {
+                    $buffer .= '"' . addslashes($column) . '": "' . addslashes($record[$i]) . '"' . (! $isLastLine ? ',' : '');
+                }
+            }
 
-            $column = $columns[$i];
+            $buffer .= '}';
+        }
 
-            if (is_null($record[$i])) {
-                $buffer .= '"' . addslashes($column) . '": null' . (! $isLastLine ? ',' : '');
-            } elseif (is_numeric($record[$i])) {
-                $buffer .= '"' . addslashes($column) . '": ' . $record[$i] . (! $isLastLine ? ',' : '');
-            } else {
-                $buffer .= '"' . addslashes($column) . '": "' . addslashes($record[$i]) . '"' . (! $isLastLine ? ',' : '');
-            }
+        if ($record_cnt) {
+            $buffer .=  ']';
+        }
+        if (! PMA_exportOutputHandler($buffer)) {
+            return false;
         }
 
-        $buffer .= '}';
-    }
+        PMA_DBI_free_result($result);
 
-    if ($record_cnt) {
-        $buffer .=  ']';
-    }
-    if (! PMA_exportOutputHandler($buffer)) {
-        return false;
+        return true;
     }
 
-    PMA_DBI_free_result($result);
-
-    return true;
-}
-
 }
diff --git a/libraries/export/latex.php b/libraries/export/latex.php
index 080d0ac..1c6064a 100644
--- a/libraries/export/latex.php
+++ b/libraries/export/latex.php
@@ -82,389 +82,389 @@ if (isset($plugin_list)) {
         array('type' => 'end_group');
 } else {
 
-/**
- * Escapes some special characters for use in TeX/LaTeX
- *
- * @param string      the string to convert
- *
- * @return  string      the converted string with escape codes
- *
- * @access  private
- */
-function PMA_texEscape($string) {
-    $escape = array('$', '%', '{', '}',  '&',  '#', '_', '^');
-    $cnt_escape = count($escape);
-    for ($k=0; $k < $cnt_escape; $k++) {
-        $string = str_replace($escape[$k], '\\' . $escape[$k], $string);
+    /**
+     * Escapes some special characters for use in TeX/LaTeX
+     *
+     * @param string      the string to convert
+     *
+     * @return  string      the converted string with escape codes
+     *
+     * @access  private
+     */
+    function PMA_texEscape($string) {
+        $escape = array('$', '%', '{', '}',  '&',  '#', '_', '^');
+        $cnt_escape = count($escape);
+        for ($k=0; $k < $cnt_escape; $k++) {
+            $string = str_replace($escape[$k], '\\' . $escape[$k], $string);
+        }
+        return $string;
     }
-    return $string;
-}
 
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter() {
-    return true;
-}
-
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader() {
-    global $crlf;
-    global $cfg;
-
-    $head  =  '% phpMyAdmin LaTeX Dump' . $crlf
-           .  '% version ' . PMA_VERSION . $crlf
-           .  '% http://www.phpmyadmin.net' . $crlf
-           .  '%' . $crlf
-           .  '% ' . __('Host') . ': ' . $cfg['Server']['host'];
-    if (!empty($cfg['Server']['port'])) {
-         $head .= ':' . $cfg['Server']['port'];
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter() {
+        return true;
     }
-    $head .= $crlf
-           .  '% ' . __('Generation Time') . ': ' . PMA_localisedDate() . $crlf
-           .  '% ' . __('Server version') . ': ' . PMA_MYSQL_STR_VERSION . $crlf
-           .  '% ' . __('PHP Version') . ': ' . phpversion() . $crlf;
-    return PMA_exportOutputHandler($head);
-}
-
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db) {
-    global $crlf;
-    $head = '% ' . $crlf
-          . '% ' . __('Database') . ': ' . (isset($GLOBALS['use_backquotes']) ? PMA_backquote($db) : '\'' . $db . '\''). $crlf
-          . '% ' . $crlf;
-    return PMA_exportOutputHandler($head);
-}
-
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db) {
-    return true;
-}
-
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db) {
-    return true;
-}
-
-/**
- * Outputs the content of a table in LaTeX table/sideways table environment
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
-    $result      = PMA_DBI_try_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
 
-    $columns_cnt = PMA_DBI_num_fields($result);
-    for ($i = 0; $i < $columns_cnt; $i++) {
-        $columns[$i] = PMA_DBI_field_name($result, $i);
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader() {
+        global $crlf;
+        global $cfg;
+
+        $head  =  '% phpMyAdmin LaTeX Dump' . $crlf
+               .  '% version ' . PMA_VERSION . $crlf
+               .  '% http://www.phpmyadmin.net' . $crlf
+               .  '%' . $crlf
+               .  '% ' . __('Host') . ': ' . $cfg['Server']['host'];
+        if (!empty($cfg['Server']['port'])) {
+             $head .= ':' . $cfg['Server']['port'];
+        }
+        $head .= $crlf
+               .  '% ' . __('Generation Time') . ': ' . PMA_localisedDate() . $crlf
+               .  '% ' . __('Server version') . ': ' . PMA_MYSQL_STR_VERSION . $crlf
+               .  '% ' . __('PHP Version') . ': ' . phpversion() . $crlf;
+        return PMA_exportOutputHandler($head);
     }
-    unset($i);
-
-    $buffer      = $crlf . '%' . $crlf . '% ' . __('Data') . ': ' . $table . $crlf . '%' . $crlf
-                 . ' \\begin{longtable}{|';
 
-    for ($index=0;$index<$columns_cnt;$index++) {
-       $buffer .= 'l|';
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db) {
+        global $crlf;
+        $head = '% ' . $crlf
+              . '% ' . __('Database') . ': ' . (isset($GLOBALS['use_backquotes']) ? PMA_backquote($db) : '\'' . $db . '\''). $crlf
+              . '% ' . $crlf;
+        return PMA_exportOutputHandler($head);
     }
-    $buffer .= '} ' . $crlf ;
 
-    $buffer .= ' \\hline \\endhead \\hline \\endfoot \\hline ' . $crlf;
-    if (isset($GLOBALS['latex_caption'])) {
-        $buffer .= ' \\caption{' . PMA_expandUserString($GLOBALS['latex_data_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db))
-                   . '} \\label{' . PMA_expandUserString($GLOBALS['latex_data_label'], NULL, array('table' => $table, 'database' => $db)) . '} \\\\';
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db) {
+        return true;
     }
-    if (!PMA_exportOutputHandler($buffer)) {
-        return false;
+
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db) {
+        return true;
     }
 
-    // show column names
-    if (isset($GLOBALS['latex_columns'])) {
-        $buffer = '\\hline ';
+    /**
+     * Outputs the content of a table in LaTeX table/sideways table environment
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+        $result      = PMA_DBI_try_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+
+        $columns_cnt = PMA_DBI_num_fields($result);
         for ($i = 0; $i < $columns_cnt; $i++) {
-            $buffer .= '\\multicolumn{1}{|c|}{\\textbf{' . PMA_texEscape(stripslashes($columns[$i])) . '}} & ';
-          }
+            $columns[$i] = PMA_DBI_field_name($result, $i);
+        }
+        unset($i);
 
-        $buffer = substr($buffer, 0, -2) . '\\\\ \\hline \hline ';
-        if (!PMA_exportOutputHandler($buffer . ' \\endfirsthead ' . $crlf)) {
-            return false;
+        $buffer      = $crlf . '%' . $crlf . '% ' . __('Data') . ': ' . $table . $crlf . '%' . $crlf
+                     . ' \\begin{longtable}{|';
+
+        for ($index=0;$index<$columns_cnt;$index++) {
+           $buffer .= 'l|';
         }
+        $buffer .= '} ' . $crlf ;
+
+        $buffer .= ' \\hline \\endhead \\hline \\endfoot \\hline ' . $crlf;
         if (isset($GLOBALS['latex_caption'])) {
-            if (!PMA_exportOutputHandler('\\caption{' . PMA_expandUserString($GLOBALS['latex_data_continued_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db)) . '} \\\\ ')) return false;
-        }
-        if (!PMA_exportOutputHandler($buffer . '\\endhead \\endfoot' . $crlf)) {
-            return false;
+            $buffer .= ' \\caption{' . PMA_expandUserString($GLOBALS['latex_data_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db))
+                       . '} \\label{' . PMA_expandUserString($GLOBALS['latex_data_label'], NULL, array('table' => $table, 'database' => $db)) . '} \\\\';
         }
-    } else {
-        if (!PMA_exportOutputHandler('\\\\ \hline')) {
+        if (!PMA_exportOutputHandler($buffer)) {
             return false;
         }
-    }
 
-    // print the whole table
-    while ($record = PMA_DBI_fetch_assoc($result)) {
+        // show column names
+        if (isset($GLOBALS['latex_columns'])) {
+            $buffer = '\\hline ';
+            for ($i = 0; $i < $columns_cnt; $i++) {
+                $buffer .= '\\multicolumn{1}{|c|}{\\textbf{' . PMA_texEscape(stripslashes($columns[$i])) . '}} & ';
+              }
 
-        $buffer = '';
-        // print each row
-        for ($i = 0; $i < $columns_cnt; $i++) {
-            if (isset($record[$columns[$i]])
-             && (! function_exists('is_null') || !is_null($record[$columns[$i]]))) {
-                $column_value = PMA_texEscape(stripslashes($record[$columns[$i]]));
-            } else {
-                $column_value = $GLOBALS['latex_null'];
+            $buffer = substr($buffer, 0, -2) . '\\\\ \\hline \hline ';
+            if (!PMA_exportOutputHandler($buffer . ' \\endfirsthead ' . $crlf)) {
+                return false;
+            }
+            if (isset($GLOBALS['latex_caption'])) {
+                if (!PMA_exportOutputHandler('\\caption{' . PMA_expandUserString($GLOBALS['latex_data_continued_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db)) . '} \\\\ ')) return false;
             }
+            if (!PMA_exportOutputHandler($buffer . '\\endhead \\endfoot' . $crlf)) {
+                return false;
+            }
+        } else {
+            if (!PMA_exportOutputHandler('\\\\ \hline')) {
+                return false;
+            }
+        }
 
-            // last column ... no need for & character
-            if ($i == ($columns_cnt - 1)) {
-                $buffer .= $column_value;
-            } else {
-                $buffer .= $column_value . " & ";
+        // print the whole table
+        while ($record = PMA_DBI_fetch_assoc($result)) {
+
+            $buffer = '';
+            // print each row
+            for ($i = 0; $i < $columns_cnt; $i++) {
+                if (isset($record[$columns[$i]])
+                 && (! function_exists('is_null') || !is_null($record[$columns[$i]]))) {
+                    $column_value = PMA_texEscape(stripslashes($record[$columns[$i]]));
+                } else {
+                    $column_value = $GLOBALS['latex_null'];
+                }
+
+                // last column ... no need for & character
+                if ($i == ($columns_cnt - 1)) {
+                    $buffer .= $column_value;
+                } else {
+                    $buffer .= $column_value . " & ";
+                }
+            }
+            $buffer .= ' \\\\ \\hline ' . $crlf;
+            if (!PMA_exportOutputHandler($buffer)) {
+                return false;
             }
         }
-        $buffer .= ' \\\\ \\hline ' . $crlf;
+
+        $buffer = ' \\end{longtable}' . $crlf;
         if (!PMA_exportOutputHandler($buffer)) {
             return false;
         }
-    }
-
-    $buffer = ' \\end{longtable}' . $crlf;
-    if (!PMA_exportOutputHandler($buffer)) {
-        return false;
-    }
 
-    PMA_DBI_free_result($result);
-    return true;
+        PMA_DBI_free_result($result);
+        return true;
 
-} // end getTableLaTeX
-
-/**
- * Outputs table's structure
- *
- * @param string  $db           database name
- * @param string  $table        table name
- * @param string  $crlf         the end of line sequence
- * @param string  $error_url    the url to go back in case of error
- * @param bool    $do_relation  whether to include relation comments
- * @param bool    $do_comments  whether to include the pmadb-style column comments
- *                                as comments in the structure; this is deprecated
- *                                but the parameter is left here because export.php
- *                                calls PMA_exportStructure() also for other export
- *                                types which use this parameter
- * @param bool    $do_mime      whether to include mime comments
- * @param bool    $dates        whether to include creation/update/check dates
- * @param string  $export_mode  'create_table', 'triggers', 'create_view', 'stand_in'
- * @param string  $export_type  'server', 'database', 'table'
- * @return  bool      Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $export_mode, $export_type)
-{
-    global $cfgRelation;
+    } // end getTableLaTeX
 
     /**
-     * Get the unique keys in the table
+     * Outputs table's structure
+     *
+     * @param string  $db           database name
+     * @param string  $table        table name
+     * @param string  $crlf         the end of line sequence
+     * @param string  $error_url    the url to go back in case of error
+     * @param bool    $do_relation  whether to include relation comments
+     * @param bool    $do_comments  whether to include the pmadb-style column comments
+     *                                as comments in the structure; this is deprecated
+     *                                but the parameter is left here because export.php
+     *                                calls PMA_exportStructure() also for other export
+     *                                types which use this parameter
+     * @param bool    $do_mime      whether to include mime comments
+     * @param bool    $dates        whether to include creation/update/check dates
+     * @param string  $export_mode  'create_table', 'triggers', 'create_view', 'stand_in'
+     * @param string  $export_type  'server', 'database', 'table'
+     * @return  bool      Whether it suceeded
+     *
+     * @access  public
      */
-    $keys_query     = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
-    $keys_result    = PMA_DBI_query($keys_query);
-    $unique_keys    = array();
-    while ($key = PMA_DBI_fetch_assoc($keys_result)) {
-        if ($key['Non_unique'] == 0) {
-            $unique_keys[] = $key['Column_name'];
+    function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $export_mode, $export_type)
+    {
+        global $cfgRelation;
+
+        /**
+         * Get the unique keys in the table
+         */
+        $keys_query     = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+        $keys_result    = PMA_DBI_query($keys_query);
+        $unique_keys    = array();
+        while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+            if ($key['Non_unique'] == 0) {
+                $unique_keys[] = $key['Column_name'];
+            }
         }
-    }
-    PMA_DBI_free_result($keys_result);
+        PMA_DBI_free_result($keys_result);
 
-    /**
-     * Gets fields properties
-     */
-    PMA_DBI_select_db($db);
+        /**
+         * Gets fields properties
+         */
+        PMA_DBI_select_db($db);
 
-    // Check if we can use Relations
-    if ($do_relation && !empty($cfgRelation['relation'])) {
-        // Find which tables are related with the current one and write it in
-        // an array
-        $res_rel = PMA_getForeigners($db, $table);
+        // Check if we can use Relations
+        if ($do_relation && !empty($cfgRelation['relation'])) {
+            // Find which tables are related with the current one and write it in
+            // an array
+            $res_rel = PMA_getForeigners($db, $table);
 
-        if ($res_rel && count($res_rel) > 0) {
-            $have_rel = true;
+            if ($res_rel && count($res_rel) > 0) {
+                $have_rel = true;
+            } else {
+                $have_rel = false;
+            }
         } else {
-            $have_rel = false;
+               $have_rel = false;
+        } // end if
+
+        /**
+         * Displays the table structure
+         */
+        $buffer      = $crlf . '%' . $crlf . '% ' . __('Structure') . ': ' . $table  . $crlf . '%' . $crlf
+                     . ' \\begin{longtable}{';
+        if (!PMA_exportOutputHandler($buffer)) {
+            return false;
         }
-    } else {
-           $have_rel = false;
-    } // end if
-
-    /**
-     * Displays the table structure
-     */
-    $buffer      = $crlf . '%' . $crlf . '% ' . __('Structure') . ': ' . $table  . $crlf . '%' . $crlf
-                 . ' \\begin{longtable}{';
-    if (!PMA_exportOutputHandler($buffer)) {
-        return false;
-    }
-
-    $columns_cnt = 4;
-    $alignment = '|l|c|c|c|';
-    if ($do_relation && $have_rel) {
-        $columns_cnt++;
-        $alignment .= 'l|';
-    }
-    if ($do_comments) {
-        $columns_cnt++;
-        $alignment .= 'l|';
-    }
-    if ($do_mime && $cfgRelation['mimework']) {
-        $columns_cnt++;
-        $alignment .='l|';
-    }
-    $buffer = $alignment . '} ' . $crlf ;
-
-    $header = ' \\hline ';
-    $header .= '\\multicolumn{1}{|c|}{\\textbf{' . __('Column') . '}} & \\multicolumn{1}{|c|}{\\textbf{' . __('Type') . '}} & \\multicolumn{1}{|c|}{\\textbf{' . __('Null') . '}} & \\multicolumn{1}{|c|}{\\textbf{' . __('Default') . '}}';
-    if ($do_relation && $have_rel) {
-        $header .= ' & \\multicolumn{1}{|c|}{\\textbf{' . __('Links to') . '}}';
-    }
-    if ($do_comments) {
-        $header .= ' & \\multicolumn{1}{|c|}{\\textbf{' . __('Comments') . '}}';
-        $comments = PMA_getComments($db, $table);
-    }
-    if ($do_mime && $cfgRelation['mimework']) {
-        $header .= ' & \\multicolumn{1}{|c|}{\\textbf{MIME}}';
-        $mime_map = PMA_getMIME($db, $table, true);
-    }
 
-    // Table caption for first page and label
-    if (isset($GLOBALS['latex_caption'])) {
-        $buffer .= ' \\caption{'. PMA_expandUserString($GLOBALS['latex_structure_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db))
-                   . '} \\label{' . PMA_expandUserString($GLOBALS['latex_structure_label'], NULL, array('table' => $table, 'database' => $db))
-                   . '} \\\\' . $crlf;
-    }
-    $buffer .= $header . ' \\\\ \\hline \\hline' . $crlf . '\\endfirsthead' . $crlf;
-    // Table caption on next pages
-    if (isset($GLOBALS['latex_caption'])) {
-        $buffer .= ' \\caption{'. PMA_expandUserString($GLOBALS['latex_structure_continued_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db))
-                   . '} \\\\ ' . $crlf;
-    }
-    $buffer .= $header . ' \\\\ \\hline \\hline \\endhead \\endfoot ' . $crlf;
-
-    if (!PMA_exportOutputHandler($buffer)) {
-        return false;
-    }
-
-    $fields = PMA_DBI_get_columns($db, $table);
-    foreach ($fields as $row) {
-        $type             = $row['Type'];
-        // reformat mysql query output
-        // set or enum types: slashes single quotes inside options
-        if (preg_match('/^(set|enum)\((.+)\)$/i', $type, $tmp)) {
-            $tmp[2]       = substr(preg_replace('/([^,])\'\'/', '\\1\\\'', ',' . $tmp[2]), 1);
-            $type         = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
-            $type_nowrap  = '';
-
-            $binary       = 0;
-            $unsigned     = 0;
-            $zerofill     = 0;
-        } else {
-            $type_nowrap  = ' nowrap="nowrap"';
-            $type         = preg_replace('/BINARY/i', '', $type);
-            $type         = preg_replace('/ZEROFILL/i', '', $type);
-            $type         = preg_replace('/UNSIGNED/i', '', $type);
-            if (empty($type)) {
-                $type     = ' ';
-            }
-
-            $binary       = preg_match('/BINARY/i', $row['Type']);
-            $unsigned     = preg_match('/UNSIGNED/i', $row['Type']);
-            $zerofill     = preg_match('/ZEROFILL/i', $row['Type']);
+        $columns_cnt = 4;
+        $alignment = '|l|c|c|c|';
+        if ($do_relation && $have_rel) {
+            $columns_cnt++;
+            $alignment .= 'l|';
         }
-        if (!isset($row['Default'])) {
-            if ($row['Null'] != 'NO') {
-                $row['Default'] = 'NULL';
-            }
+        if ($do_comments) {
+            $columns_cnt++;
+            $alignment .= 'l|';
         }
+        if ($do_mime && $cfgRelation['mimework']) {
+            $columns_cnt++;
+            $alignment .='l|';
+        }
+        $buffer = $alignment . '} ' . $crlf ;
 
-        $field_name = $row['Field'];
-
-        $local_buffer = $field_name . "\000" . $type . "\000"
-            . (($row['Null'] == '' || $row['Null'] == 'NO') ? __('No') : __('Yes'))
-            . "\000" . (isset($row['Default']) ? $row['Default'] : '');
-
+        $header = ' \\hline ';
+        $header .= '\\multicolumn{1}{|c|}{\\textbf{' . __('Column') . '}} & \\multicolumn{1}{|c|}{\\textbf{' . __('Type') . '}} & \\multicolumn{1}{|c|}{\\textbf{' . __('Null') . '}} & \\multicolumn{1}{|c|}{\\textbf{' . __('Default') . '}}';
         if ($do_relation && $have_rel) {
-            $local_buffer .= "\000";
-            if (isset($res_rel[$field_name])) {
-                $local_buffer .= $res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')';
-            }
+            $header .= ' & \\multicolumn{1}{|c|}{\\textbf{' . __('Links to') . '}}';
         }
-        if ($do_comments && $cfgRelation['commwork']) {
-            $local_buffer .= "\000";
-            if (isset($comments[$field_name])) {
-                $local_buffer .= $comments[$field_name];
-            }
+        if ($do_comments) {
+            $header .= ' & \\multicolumn{1}{|c|}{\\textbf{' . __('Comments') . '}}';
+            $comments = PMA_getComments($db, $table);
         }
         if ($do_mime && $cfgRelation['mimework']) {
-            $local_buffer .= "\000";
-            if (isset($mime_map[$field_name])) {
-                $local_buffer .= str_replace('_', '/', $mime_map[$field_name]['mimetype']);
-            }
+            $header .= ' & \\multicolumn{1}{|c|}{\\textbf{MIME}}';
+            $mime_map = PMA_getMIME($db, $table, true);
         }
-        $local_buffer = PMA_texEscape($local_buffer);
-        if ($row['Key']=='PRI') {
-            $pos=strpos($local_buffer, "\000");
-            $local_buffer = '\\textit{' . substr($local_buffer, 0, $pos) . '}' . substr($local_buffer, $pos);
+
+        // Table caption for first page and label
+        if (isset($GLOBALS['latex_caption'])) {
+            $buffer .= ' \\caption{'. PMA_expandUserString($GLOBALS['latex_structure_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db))
+                       . '} \\label{' . PMA_expandUserString($GLOBALS['latex_structure_label'], NULL, array('table' => $table, 'database' => $db))
+                       . '} \\\\' . $crlf;
         }
-        if (in_array($field_name, $unique_keys)) {
-            $pos=strpos($local_buffer, "\000");
-            $local_buffer = '\\textbf{' . substr($local_buffer, 0, $pos) . '}' . substr($local_buffer, $pos);
+        $buffer .= $header . ' \\\\ \\hline \\hline' . $crlf . '\\endfirsthead' . $crlf;
+        // Table caption on next pages
+        if (isset($GLOBALS['latex_caption'])) {
+            $buffer .= ' \\caption{'. PMA_expandUserString($GLOBALS['latex_structure_continued_caption'], 'PMA_texEscape', array('table' => $table, 'database' => $db))
+                       . '} \\\\ ' . $crlf;
         }
-        $buffer = str_replace("\000", ' & ', $local_buffer);
-        $buffer .= ' \\\\ \\hline ' . $crlf;
+        $buffer .= $header . ' \\\\ \\hline \\hline \\endhead \\endfoot ' . $crlf;
 
         if (!PMA_exportOutputHandler($buffer)) {
             return false;
         }
-    } // end while
 
-    $buffer = ' \\end{longtable}' . $crlf;
-    return PMA_exportOutputHandler($buffer);
-} // end of the 'PMA_exportStructure' function
+        $fields = PMA_DBI_get_columns($db, $table);
+        foreach ($fields as $row) {
+            $type             = $row['Type'];
+            // reformat mysql query output
+            // set or enum types: slashes single quotes inside options
+            if (preg_match('/^(set|enum)\((.+)\)$/i', $type, $tmp)) {
+                $tmp[2]       = substr(preg_replace('/([^,])\'\'/', '\\1\\\'', ',' . $tmp[2]), 1);
+                $type         = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+                $type_nowrap  = '';
+
+                $binary       = 0;
+                $unsigned     = 0;
+                $zerofill     = 0;
+            } else {
+                $type_nowrap  = ' nowrap="nowrap"';
+                $type         = preg_replace('/BINARY/i', '', $type);
+                $type         = preg_replace('/ZEROFILL/i', '', $type);
+                $type         = preg_replace('/UNSIGNED/i', '', $type);
+                if (empty($type)) {
+                    $type     = ' ';
+                }
+
+                $binary       = preg_match('/BINARY/i', $row['Type']);
+                $unsigned     = preg_match('/UNSIGNED/i', $row['Type']);
+                $zerofill     = preg_match('/ZEROFILL/i', $row['Type']);
+            }
+            if (!isset($row['Default'])) {
+                if ($row['Null'] != 'NO') {
+                    $row['Default'] = 'NULL';
+                }
+            }
+
+            $field_name = $row['Field'];
+
+            $local_buffer = $field_name . "\000" . $type . "\000"
+                . (($row['Null'] == '' || $row['Null'] == 'NO') ? __('No') : __('Yes'))
+                . "\000" . (isset($row['Default']) ? $row['Default'] : '');
+
+            if ($do_relation && $have_rel) {
+                $local_buffer .= "\000";
+                if (isset($res_rel[$field_name])) {
+                    $local_buffer .= $res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')';
+                }
+            }
+            if ($do_comments && $cfgRelation['commwork']) {
+                $local_buffer .= "\000";
+                if (isset($comments[$field_name])) {
+                    $local_buffer .= $comments[$field_name];
+                }
+            }
+            if ($do_mime && $cfgRelation['mimework']) {
+                $local_buffer .= "\000";
+                if (isset($mime_map[$field_name])) {
+                    $local_buffer .= str_replace('_', '/', $mime_map[$field_name]['mimetype']);
+                }
+            }
+            $local_buffer = PMA_texEscape($local_buffer);
+            if ($row['Key']=='PRI') {
+                $pos=strpos($local_buffer, "\000");
+                $local_buffer = '\\textit{' . substr($local_buffer, 0, $pos) . '}' . substr($local_buffer, $pos);
+            }
+            if (in_array($field_name, $unique_keys)) {
+                $pos=strpos($local_buffer, "\000");
+                $local_buffer = '\\textbf{' . substr($local_buffer, 0, $pos) . '}' . substr($local_buffer, $pos);
+            }
+            $buffer = str_replace("\000", ' & ', $local_buffer);
+            $buffer .= ' \\\\ \\hline ' . $crlf;
+
+            if (!PMA_exportOutputHandler($buffer)) {
+                return false;
+            }
+        } // end while
+
+        $buffer = ' \\end{longtable}' . $crlf;
+        return PMA_exportOutputHandler($buffer);
+    } // end of the 'PMA_exportStructure' function
 
 } // end else
 ?>
diff --git a/libraries/export/mediawiki.php b/libraries/export/mediawiki.php
index 8ec3749..d03610d 100644
--- a/libraries/export/mediawiki.php
+++ b/libraries/export/mediawiki.php
@@ -24,136 +24,136 @@ if (isset($plugin_list)) {
         );
 } else {
 
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter() {
-    return true;
-}
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter() {
+        return true;
+    }
 
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader() {
-    return true;
-}
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader() {
+        return true;
+    }
 
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db) {
-    return true;
-}
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db) {
+        return true;
+    }
 
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db) {
-    return true;
-}
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db) {
+        return true;
+    }
 
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db) {
-    return true;
-}
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db) {
+        return true;
+    }
 
-/**
- * Outputs the content of a table in MediaWiki format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
-    $columns = PMA_DBI_get_columns($db, $table);
-    $columns = array_values($columns);
-    $row_cnt = count($columns);
+    /**
+     * Outputs the content of a table in MediaWiki format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+        $columns = PMA_DBI_get_columns($db, $table);
+        $columns = array_values($columns);
+        $row_cnt = count($columns);
 
-    $output = "{| cellpadding=\"10\" cellspacing=\"0\" border=\"1\" style=\"text-align:center;\"\n";
-    $output .= "|+'''" . $table . "'''\n";
-    $output .= "|- style=\"background:#ffdead;\"\n";
-    $output .= "! style=\"background:#ffffff\" | \n";
-    for ($i = 0; $i < $row_cnt; ++$i) {
-        $output .= " | " . $columns[$i]['Field'];
-        if (($i + 1) != $row_cnt) {
-            $output .= "\n";
+        $output = "{| cellpadding=\"10\" cellspacing=\"0\" border=\"1\" style=\"text-align:center;\"\n";
+        $output .= "|+'''" . $table . "'''\n";
+        $output .= "|- style=\"background:#ffdead;\"\n";
+        $output .= "! style=\"background:#ffffff\" | \n";
+        for ($i = 0; $i < $row_cnt; ++$i) {
+            $output .= " | " . $columns[$i]['Field'];
+            if (($i + 1) != $row_cnt) {
+                $output .= "\n";
+            }
         }
-    }
-    $output .= "\n";
+        $output .= "\n";
 
-    $output .= "|- style=\"background:#f9f9f9;\"\n";
-    $output .= "! style=\"background:#f2f2f2\" | Type\n";
-    for ($i = 0; $i < $row_cnt; ++$i) {
-        $output .= " | " . $columns[$i]['Type'];
-        if (($i + 1) != $row_cnt) {
-            $output .= "\n";
+        $output .= "|- style=\"background:#f9f9f9;\"\n";
+        $output .= "! style=\"background:#f2f2f2\" | Type\n";
+        for ($i = 0; $i < $row_cnt; ++$i) {
+            $output .= " | " . $columns[$i]['Type'];
+            if (($i + 1) != $row_cnt) {
+                $output .= "\n";
+            }
         }
-    }
-    $output .= "\n";
+        $output .= "\n";
 
-    $output .= "|- style=\"background:#f9f9f9;\"\n";
-    $output .= "! style=\"background:#f2f2f2\" | Null\n";
-    for ($i = 0; $i < $row_cnt; ++$i) {
-        $output .= " | " . $columns[$i]['Null'];
-        if (($i + 1) != $row_cnt) {
-            $output .= "\n";
+        $output .= "|- style=\"background:#f9f9f9;\"\n";
+        $output .= "! style=\"background:#f2f2f2\" | Null\n";
+        for ($i = 0; $i < $row_cnt; ++$i) {
+            $output .= " | " . $columns[$i]['Null'];
+            if (($i + 1) != $row_cnt) {
+                $output .= "\n";
+            }
         }
-    }
-    $output .= "\n";
+        $output .= "\n";
 
-    $output .= "|- style=\"background:#f9f9f9;\"\n";
-    $output .= "! style=\"background:#f2f2f2\" | Default\n";
-    for ($i = 0; $i < $row_cnt; ++$i) {
-        $output .= " | " . $columns[$i]['Default'];
-        if (($i + 1) != $row_cnt) {
-            $output .= "\n";
+        $output .= "|- style=\"background:#f9f9f9;\"\n";
+        $output .= "! style=\"background:#f2f2f2\" | Default\n";
+        for ($i = 0; $i < $row_cnt; ++$i) {
+            $output .= " | " . $columns[$i]['Default'];
+            if (($i + 1) != $row_cnt) {
+                $output .= "\n";
+            }
         }
-    }
-    $output .= "\n";
+        $output .= "\n";
 
-    $output .= "|- style=\"background:#f9f9f9;\"\n";
-    $output .= "! style=\"background:#f2f2f2\" | Extra\n";
-    for ($i = 0; $i < $row_cnt; ++$i) {
-        $output .= " | " . $columns[$i]['Extra'];
-        if (($i + 1) != $row_cnt) {
-            $output .= "\n";
+        $output .= "|- style=\"background:#f9f9f9;\"\n";
+        $output .= "! style=\"background:#f2f2f2\" | Extra\n";
+        for ($i = 0; $i < $row_cnt; ++$i) {
+            $output .= " | " . $columns[$i]['Extra'];
+            if (($i + 1) != $row_cnt) {
+                $output .= "\n";
+            }
         }
-    }
-    $output .= "\n";
+        $output .= "\n";
 
-    $output .= "|}\n\n\n\n";
-    return PMA_exportOutputHandler($output);
-}
+        $output .= "|}\n\n\n\n";
+        return PMA_exportOutputHandler($output);
+    }
 
 }
 ?>
diff --git a/libraries/export/ods.php b/libraries/export/ods.php
index fa62a96..0c62878 100644
--- a/libraries/export/ods.php
+++ b/libraries/export/ods.php
@@ -30,192 +30,192 @@ if (isset($plugin_list)) {
         );
 } else {
 
-$GLOBALS['ods_buffer'] = '';
-require_once './libraries/opendocument.lib.php';
+    $GLOBALS['ods_buffer'] = '';
+    require_once './libraries/opendocument.lib.php';
 
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter() {
-    $GLOBALS['ods_buffer'] .= '</office:spreadsheet>'
-        . '</office:body>'
-        . '</office:document-content>';
-    if (!PMA_exportOutputHandler(PMA_createOpenDocument('application/vnd.oasis.opendocument.spreadsheet', $GLOBALS['ods_buffer']))) {
-        return false;
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter() {
+        $GLOBALS['ods_buffer'] .= '</office:spreadsheet>'
+            . '</office:body>'
+            . '</office:document-content>';
+        if (!PMA_exportOutputHandler(PMA_createOpenDocument('application/vnd.oasis.opendocument.spreadsheet', $GLOBALS['ods_buffer']))) {
+            return false;
+        }
+        return true;
     }
-    return true;
-}
-
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader() {
-    $GLOBALS['ods_buffer'] .= '<?xml version="1.0" encoding="utf-8"?' . '>'
-        . '<office:document-content '. $GLOBALS['OpenDocumentNS'] . 'office:version="1.0">'
-        . '<office:automatic-styles>'
-            . '<number:date-style style:name="N37" number:automatic-order="true">'
-            . '<number:month number:style="long"/>'
-            . '<number:text>/</number:text>'
-            . '<number:day number:style="long"/>'
-            . '<number:text>/</number:text>'
-            . '<number:year/>'
-          . '</number:date-style>'
-          . '<number:time-style style:name="N43">'
-            . '<number:hours number:style="long"/>'
-            . '<number:text>:</number:text>'
-            . '<number:minutes number:style="long"/>'
-            . '<number:text>:</number:text>'
-            . '<number:seconds number:style="long"/>'
-            . '<number:text> </number:text>'
-            . '<number:am-pm/>'
-          . '</number:time-style>'
-          . '<number:date-style style:name="N50" number:automatic-order="true" number:format-source="language">'
-            . '<number:month/>'
-            . '<number:text>/</number:text>'
-            . '<number:day/>'
-            . '<number:text>/</number:text>'
-            . '<number:year/>'
-            . '<number:text> </number:text>'
-            . '<number:hours number:style="long"/>'
-            . '<number:text>:</number:text>'
-            . '<number:minutes number:style="long"/>'
-            . '<number:text> </number:text>'
-            . '<number:am-pm/>'
-          . '</number:date-style>'
-          . '<style:style style:name="DateCell" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N37"/>'
-          . '<style:style style:name="TimeCell" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N43"/>'
-          . '<style:style style:name="DateTimeCell" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N50"/>'
-        . '</office:automatic-styles>'
-        . '<office:body>'
-        . '<office:spreadsheet>';
-    return true;
-}
-
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db) {
-    return true;
-}
-
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db) {
-    return true;
-}
 
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db) {
-    return true;
-}
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader() {
+        $GLOBALS['ods_buffer'] .= '<?xml version="1.0" encoding="utf-8"?' . '>'
+            . '<office:document-content '. $GLOBALS['OpenDocumentNS'] . 'office:version="1.0">'
+            . '<office:automatic-styles>'
+                . '<number:date-style style:name="N37" number:automatic-order="true">'
+                . '<number:month number:style="long"/>'
+                . '<number:text>/</number:text>'
+                . '<number:day number:style="long"/>'
+                . '<number:text>/</number:text>'
+                . '<number:year/>'
+              . '</number:date-style>'
+              . '<number:time-style style:name="N43">'
+                . '<number:hours number:style="long"/>'
+                . '<number:text>:</number:text>'
+                . '<number:minutes number:style="long"/>'
+                . '<number:text>:</number:text>'
+                . '<number:seconds number:style="long"/>'
+                . '<number:text> </number:text>'
+                . '<number:am-pm/>'
+              . '</number:time-style>'
+              . '<number:date-style style:name="N50" number:automatic-order="true" number:format-source="language">'
+                . '<number:month/>'
+                . '<number:text>/</number:text>'
+                . '<number:day/>'
+                . '<number:text>/</number:text>'
+                . '<number:year/>'
+                . '<number:text> </number:text>'
+                . '<number:hours number:style="long"/>'
+                . '<number:text>:</number:text>'
+                . '<number:minutes number:style="long"/>'
+                . '<number:text> </number:text>'
+                . '<number:am-pm/>'
+              . '</number:date-style>'
+              . '<style:style style:name="DateCell" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N37"/>'
+              . '<style:style style:name="TimeCell" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N43"/>'
+              . '<style:style style:name="DateTimeCell" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N50"/>'
+            . '</office:automatic-styles>'
+            . '<office:body>'
+            . '<office:spreadsheet>';
+        return true;
+    }
 
-/**
- * Outputs the content of a table in ODS format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
-    global $what;
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db) {
+        return true;
+    }
 
-    // Gets the data from the database
-    $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
-    $fields_cnt  = PMA_DBI_num_fields($result);
-    $fields_meta = PMA_DBI_get_fields_meta($result);
-    $field_flags = array();
-    for ($j = 0; $j < $fields_cnt; $j++) {
-        $field_flags[$j] = PMA_DBI_field_flags($result, $j);
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db) {
+        return true;
     }
 
-    $GLOBALS['ods_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '">';
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db) {
+        return true;
+    }
 
-    // If required, get fields name at the first line
-    if (isset($GLOBALS[$what . '_columns'])) {
-        $GLOBALS['ods_buffer'] .= '<table:table-row>';
-        for ($i = 0; $i < $fields_cnt; $i++) {
-            $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
-                . '<text:p>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</text:p>'
-                . '</table:table-cell>';
-        } // end for
-        $GLOBALS['ods_buffer'] .= '</table:table-row>';
-    } // end if
+    /**
+     * Outputs the content of a table in ODS format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+        global $what;
 
-    // Format the data
-    while ($row = PMA_DBI_fetch_row($result)) {
-        $GLOBALS['ods_buffer'] .= '<table:table-row>';
+        // Gets the data from the database
+        $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+        $fields_cnt  = PMA_DBI_num_fields($result);
+        $fields_meta = PMA_DBI_get_fields_meta($result);
+        $field_flags = array();
         for ($j = 0; $j < $fields_cnt; $j++) {
-            if (!isset($row[$j]) || is_null($row[$j])) {
-                $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p>' . htmlspecialchars($GLOBALS[$what . '_null']) . '</text:p>'
-                    . '</table:table-cell>';
-            // ignore BLOB
-            } elseif (stristr($field_flags[$j], 'BINARY')
-                    && $fields_meta[$j]->blob) {
-                $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p></text:p>'
-                    . '</table:table-cell>';
-            } elseif ($fields_meta[$j]->type == "date") {
-                $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="date" office:date-value="' . date("Y-m-d", strtotime($row[$j])) . '" table:style-name="DateCell">'
-                    . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
-                    . '</table:table-cell>';
-            } elseif ($fields_meta[$j]->type == "time") {
-                $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="time" office:time-value="' . date("\P\TH\Hi\Ms\S", strtotime($row[$j])) . '" table:style-name="TimeCell">'
-                    . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
-                    . '</table:table-cell>';
-            } elseif ($fields_meta[$j]->type == "datetime") {
-                $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="date" office:date-value="' . date("Y-m-d\TH:i:s", strtotime($row[$j])) . '" table:style-name="DateTimeCell">'
-                    . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
-                    . '</table:table-cell>';
-            } elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type != 'timestamp' && ! $fields_meta[$j]->blob) {
-                $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="float" office:value="' . $row[$j] . '" >'
-                    . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
-                    . '</table:table-cell>';
-            } else {
+            $field_flags[$j] = PMA_DBI_field_flags($result, $j);
+        }
+
+        $GLOBALS['ods_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '">';
+
+        // If required, get fields name at the first line
+        if (isset($GLOBALS[$what . '_columns'])) {
+            $GLOBALS['ods_buffer'] .= '<table:table-row>';
+            for ($i = 0; $i < $fields_cnt; $i++) {
                 $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                    . '<text:p>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</text:p>'
                     . '</table:table-cell>';
-            }
-        } // end for
-        $GLOBALS['ods_buffer'] .= '</table:table-row>';
-    } // end while
-    PMA_DBI_free_result($result);
+            } // end for
+            $GLOBALS['ods_buffer'] .= '</table:table-row>';
+        } // end if
 
-    $GLOBALS['ods_buffer'] .= '</table:table>';
+        // Format the data
+        while ($row = PMA_DBI_fetch_row($result)) {
+            $GLOBALS['ods_buffer'] .= '<table:table-row>';
+            for ($j = 0; $j < $fields_cnt; $j++) {
+                if (!isset($row[$j]) || is_null($row[$j])) {
+                    $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p>' . htmlspecialchars($GLOBALS[$what . '_null']) . '</text:p>'
+                        . '</table:table-cell>';
+                // ignore BLOB
+                } elseif (stristr($field_flags[$j], 'BINARY')
+                        && $fields_meta[$j]->blob) {
+                    $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p></text:p>'
+                        . '</table:table-cell>';
+                } elseif ($fields_meta[$j]->type == "date") {
+                    $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="date" office:date-value="' . date("Y-m-d", strtotime($row[$j])) . '" table:style-name="DateCell">'
+                        . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                        . '</table:table-cell>';
+                } elseif ($fields_meta[$j]->type == "time") {
+                    $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="time" office:time-value="' . date("\P\TH\Hi\Ms\S", strtotime($row[$j])) . '" table:style-name="TimeCell">'
+                        . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                        . '</table:table-cell>';
+                } elseif ($fields_meta[$j]->type == "datetime") {
+                    $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="date" office:date-value="' . date("Y-m-d\TH:i:s", strtotime($row[$j])) . '" table:style-name="DateTimeCell">'
+                        . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                        . '</table:table-cell>';
+                } elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type != 'timestamp' && ! $fields_meta[$j]->blob) {
+                    $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="float" office:value="' . $row[$j] . '" >'
+                        . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                        . '</table:table-cell>';
+                } else {
+                    $GLOBALS['ods_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                        . '</table:table-cell>';
+                }
+            } // end for
+            $GLOBALS['ods_buffer'] .= '</table:table-row>';
+        } // end while
+        PMA_DBI_free_result($result);
 
-    return true;
-}
+        $GLOBALS['ods_buffer'] .= '</table:table>';
+
+        return true;
+    }
 
 }
 ?>
diff --git a/libraries/export/odt.php b/libraries/export/odt.php
index dba6e1c..e02f8a6 100644
--- a/libraries/export/odt.php
+++ b/libraries/export/odt.php
@@ -62,345 +62,345 @@ if (isset($plugin_list)) {
         array('type' => 'end_group');
 } else {
 
-$GLOBALS['odt_buffer'] = '';
-require_once './libraries/opendocument.lib.php';
+    $GLOBALS['odt_buffer'] = '';
+    require_once './libraries/opendocument.lib.php';
 
-/**
- * Outputs export footer
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter() {
-    $GLOBALS['odt_buffer'] .= '</office:text>'
-        . '</office:body>'
-        . '</office:document-content>';
-    if (!PMA_exportOutputHandler(PMA_createOpenDocument('application/vnd.oasis.opendocument.text', $GLOBALS['odt_buffer']))) {
-        return false;
+    /**
+     * Outputs export footer
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter() {
+        $GLOBALS['odt_buffer'] .= '</office:text>'
+            . '</office:body>'
+            . '</office:document-content>';
+        if (!PMA_exportOutputHandler(PMA_createOpenDocument('application/vnd.oasis.opendocument.text', $GLOBALS['odt_buffer']))) {
+            return false;
+        }
+        return true;
     }
-    return true;
-}
-
-/**
- * Outputs export header
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader() {
-    $GLOBALS['odt_buffer'] .= '<?xml version="1.0" encoding="utf-8"?' . '>'
-        . '<office:document-content '. $GLOBALS['OpenDocumentNS'] . 'office:version="1.0">'
-        . '<office:body>'
-        . '<office:text>';
-    return true;
-}
-
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db) {
-    $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="1" text:style-name="Heading_1" text:is-list-header="true">' . htmlspecialchars(__('Database') . ' ' . $db) . '</text:h>';
-    return true;
-}
-
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db) {
-    return true;
-}
 
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db) {
-    return true;
-}
+    /**
+     * Outputs export header
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader() {
+        $GLOBALS['odt_buffer'] .= '<?xml version="1.0" encoding="utf-8"?' . '>'
+            . '<office:document-content '. $GLOBALS['OpenDocumentNS'] . 'office:version="1.0">'
+            . '<office:body>'
+            . '<office:text>';
+        return true;
+    }
 
-/**
- * Outputs the content of a table in ODT format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
-    global $what;
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db) {
+        $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="1" text:style-name="Heading_1" text:is-list-header="true">' . htmlspecialchars(__('Database') . ' ' . $db) . '</text:h>';
+        return true;
+    }
 
-    // Gets the data from the database
-    $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
-    $fields_cnt  = PMA_DBI_num_fields($result);
-    $fields_meta = PMA_DBI_get_fields_meta($result);
-    $field_flags = array();
-    for ($j = 0; $j < $fields_cnt; $j++) {
-        $field_flags[$j] = PMA_DBI_field_flags($result, $j);
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db) {
+        return true;
     }
 
-    $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="2" text:style-name="Heading_2" text:is-list-header="true">' . htmlspecialchars(__('Dumping data for table') . ' ' . $table) . '</text:h>';
-    $GLOBALS['odt_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '_structure">';
-    $GLOBALS['odt_buffer'] .= '<table:table-column table:number-columns-repeated="' . $fields_cnt . '"/>';
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db) {
+        return true;
+    }
 
-    // If required, get fields name at the first line
-    if (isset($GLOBALS[$what . '_columns'])) {
-        $GLOBALS['odt_buffer'] .= '<table:table-row>';
-        for ($i = 0; $i < $fields_cnt; $i++) {
-            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                . '<text:p>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</text:p>'
-                . '</table:table-cell>';
-        } // end for
-        $GLOBALS['odt_buffer'] .= '</table:table-row>';
-    } // end if
+    /**
+     * Outputs the content of a table in ODT format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) {
+        global $what;
 
-    // Format the data
-    while ($row = PMA_DBI_fetch_row($result)) {
-        $GLOBALS['odt_buffer'] .= '<table:table-row>';
+        // Gets the data from the database
+        $result      = PMA_DBI_query($sql_query, null, PMA_DBI_QUERY_UNBUFFERED);
+        $fields_cnt  = PMA_DBI_num_fields($result);
+        $fields_meta = PMA_DBI_get_fields_meta($result);
+        $field_flags = array();
         for ($j = 0; $j < $fields_cnt; $j++) {
-            if (!isset($row[$j]) || is_null($row[$j])) {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p>' . htmlspecialchars($GLOBALS[$what . '_null']) . '</text:p>'
-                    . '</table:table-cell>';
-            // ignore BLOB
-            } elseif (stristr($field_flags[$j], 'BINARY')
-                    && $fields_meta[$j]->blob) {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p></text:p>'
-                    . '</table:table-cell>';
-            } elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type != 'timestamp' && ! $fields_meta[$j]->blob) {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="float" office:value="' . $row[$j] . '" >'
-                    . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
-                    . '</table:table-cell>';
-            } else {
+            $field_flags[$j] = PMA_DBI_field_flags($result, $j);
+        }
+
+        $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="2" text:style-name="Heading_2" text:is-list-header="true">' . htmlspecialchars(__('Dumping data for table') . ' ' . $table) . '</text:h>';
+        $GLOBALS['odt_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '_structure">';
+        $GLOBALS['odt_buffer'] .= '<table:table-column table:number-columns-repeated="' . $fields_cnt . '"/>';
+
+        // If required, get fields name at the first line
+        if (isset($GLOBALS[$what . '_columns'])) {
+            $GLOBALS['odt_buffer'] .= '<table:table-row>';
+            for ($i = 0; $i < $fields_cnt; $i++) {
                 $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                    . '<text:p>' . htmlspecialchars(stripslashes(PMA_DBI_field_name($result, $i))) . '</text:p>'
                     . '</table:table-cell>';
-            }
-        } // end for
-        $GLOBALS['odt_buffer'] .= '</table:table-row>';
-    } // end while
-    PMA_DBI_free_result($result);
+            } // end for
+            $GLOBALS['odt_buffer'] .= '</table:table-row>';
+        } // end if
 
-    $GLOBALS['odt_buffer'] .= '</table:table>';
+        // Format the data
+        while ($row = PMA_DBI_fetch_row($result)) {
+            $GLOBALS['odt_buffer'] .= '<table:table-row>';
+            for ($j = 0; $j < $fields_cnt; $j++) {
+                if (!isset($row[$j]) || is_null($row[$j])) {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p>' . htmlspecialchars($GLOBALS[$what . '_null']) . '</text:p>'
+                        . '</table:table-cell>';
+                // ignore BLOB
+                } elseif (stristr($field_flags[$j], 'BINARY')
+                        && $fields_meta[$j]->blob) {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p></text:p>'
+                        . '</table:table-cell>';
+                } elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type != 'timestamp' && ! $fields_meta[$j]->blob) {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="float" office:value="' . $row[$j] . '" >'
+                        . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                        . '</table:table-cell>';
+                } else {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p>' . htmlspecialchars($row[$j]) . '</text:p>'
+                        . '</table:table-cell>';
+                }
+            } // end for
+            $GLOBALS['odt_buffer'] .= '</table:table-row>';
+        } // end while
+        PMA_DBI_free_result($result);
 
-    return true;
-}
+        $GLOBALS['odt_buffer'] .= '</table:table>';
 
-/**
- * Outputs table's structure
- *
- * @param string  $db           database name
- * @param string  $table        table name
- * @param string  $crlf         the end of line sequence
- * @param string  $error_url    the url to go back in case of error
- * @param bool    $do_relation  whether to include relation comments
- * @param bool    $do_comments  whether to include the pmadb-style column comments
- *                                as comments in the structure; this is deprecated
- *                                but the parameter is left here because export.php
- *                                calls PMA_exportStructure() also for other export
- *                                types which use this parameter
- * @param bool    $do_mime      whether to include mime comments
- * @param bool    $dates        whether to include creation/update/check dates
- * @param string  $export_mode  'create_table', 'triggers', 'create_view', 'stand_in'
- * @param string  $export_type  'server', 'database', 'table'
- * @return  bool      Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $export_mode, $export_type)
-{
-    global $cfgRelation;
-
-    /* Heading */
-    $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="2" text:style-name="Heading_2" text:is-list-header="true">' . htmlspecialchars(__('Table structure for table') . ' ' . $table) . '</text:h>';
-
-    /**
-     * Get the unique keys in the table
-     */
-    $keys_query     = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
-    $keys_result    = PMA_DBI_query($keys_query);
-    $unique_keys    = array();
-    while ($key = PMA_DBI_fetch_assoc($keys_result)) {
-        if ($key['Non_unique'] == 0) {
-            $unique_keys[] = $key['Column_name'];
-        }
+        return true;
     }
-    PMA_DBI_free_result($keys_result);
 
     /**
-     * Gets fields properties
+     * Outputs table's structure
+     *
+     * @param string  $db           database name
+     * @param string  $table        table name
+     * @param string  $crlf         the end of line sequence
+     * @param string  $error_url    the url to go back in case of error
+     * @param bool    $do_relation  whether to include relation comments
+     * @param bool    $do_comments  whether to include the pmadb-style column comments
+     *                                as comments in the structure; this is deprecated
+     *                                but the parameter is left here because export.php
+     *                                calls PMA_exportStructure() also for other export
+     *                                types which use this parameter
+     * @param bool    $do_mime      whether to include mime comments
+     * @param bool    $dates        whether to include creation/update/check dates
+     * @param string  $export_mode  'create_table', 'triggers', 'create_view', 'stand_in'
+     * @param string  $export_type  'server', 'database', 'table'
+     * @return  bool      Whether it suceeded
+     *
+     * @access  public
      */
-    PMA_DBI_select_db($db);
+    function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false, $export_mode, $export_type)
+    {
+        global $cfgRelation;
 
-    // Check if we can use Relations
-    if ($do_relation && !empty($cfgRelation['relation'])) {
-        // Find which tables are related with the current one and write it in
-        // an array
-        $res_rel = PMA_getForeigners($db, $table);
+        /* Heading */
+        $GLOBALS['odt_buffer'] .= '<text:h text:outline-level="2" text:style-name="Heading_2" text:is-list-header="true">' . htmlspecialchars(__('Table structure for table') . ' ' . $table) . '</text:h>';
 
-        if ($res_rel && count($res_rel) > 0) {
-            $have_rel = true;
-        } else {
-            $have_rel = false;
+        /**
+         * Get the unique keys in the table
+         */
+        $keys_query     = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db);
+        $keys_result    = PMA_DBI_query($keys_query);
+        $unique_keys    = array();
+        while ($key = PMA_DBI_fetch_assoc($keys_result)) {
+            if ($key['Non_unique'] == 0) {
+                $unique_keys[] = $key['Column_name'];
+            }
         }
-    } else {
-           $have_rel = false;
-    } // end if
+        PMA_DBI_free_result($keys_result);
 
-    /**
-     * Displays the table structure
-     */
-    $GLOBALS['odt_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '_data">';
-    $columns_cnt = 4;
-    if ($do_relation && $have_rel) {
-        $columns_cnt++;
-    }
-    if ($do_comments) {
-        $columns_cnt++;
-    }
-    if ($do_mime && $cfgRelation['mimework']) {
-        $columns_cnt++;
-    }
-    $GLOBALS['odt_buffer'] .= '<table:table-column table:number-columns-repeated="' . $columns_cnt . '"/>';
-    /* Header */
-    $GLOBALS['odt_buffer'] .= '<table:table-row>';
-    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-        . '<text:p>' . htmlspecialchars(__('Column')) . '</text:p>'
-        . '</table:table-cell>';
-    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-        . '<text:p>' . htmlspecialchars(__('Type')) . '</text:p>'
-        . '</table:table-cell>';
-    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-        . '<text:p>' . htmlspecialchars(__('Null')) . '</text:p>'
-        . '</table:table-cell>';
-    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-        . '<text:p>' . htmlspecialchars(__('Default')) . '</text:p>'
-        . '</table:table-cell>';
-    if ($do_relation && $have_rel) {
-        $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-            . '<text:p>' . htmlspecialchars(__('Links to')) . '</text:p>'
-            . '</table:table-cell>';
-    }
-    if ($do_comments) {
-        $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-            . '<text:p>' . htmlspecialchars(__('Comments')) . '</text:p>'
-            . '</table:table-cell>';
-        $comments = PMA_getComments($db, $table);
-    }
-    if ($do_mime && $cfgRelation['mimework']) {
-        $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-            . '<text:p>' . htmlspecialchars(__('MIME type')) . '</text:p>'
-            . '</table:table-cell>';
-        $mime_map = PMA_getMIME($db, $table, true);
-    }
-    $GLOBALS['odt_buffer'] .= '</table:table-row>';
+        /**
+         * Gets fields properties
+         */
+        PMA_DBI_select_db($db);
 
-    $columns = PMA_DBI_get_columns($db, $table);
-    foreach ($columns as $column) {
+        // Check if we can use Relations
+        if ($do_relation && !empty($cfgRelation['relation'])) {
+            // Find which tables are related with the current one and write it in
+            // an array
+            $res_rel = PMA_getForeigners($db, $table);
 
-        $field_name = $column['Field'];
-        $GLOBALS['odt_buffer'] .= '<table:table-row>';
-        $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-            . '<text:p>' . htmlspecialchars($field_name) . '</text:p>'
-            . '</table:table-cell>';
-        // reformat mysql query output
-        // set or enum types: slashes single quotes inside options
-        $type = $column['Type'];
-        if (preg_match('/^(set|enum)\((.+)\)$/i', $type, $tmp)) {
-            $tmp[2]       = substr(preg_replace('/([^,])\'\'/', '\\1\\\'', ',' . $tmp[2]), 1);
-            $type         = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
-            $type_nowrap  = '';
-
-            $binary       = 0;
-            $unsigned     = 0;
-            $zerofill     = 0;
-        } else {
-            $type_nowrap  = ' nowrap="nowrap"';
-            $type         = preg_replace('/BINARY/i', '', $type);
-            $type         = preg_replace('/ZEROFILL/i', '', $type);
-            $type         = preg_replace('/UNSIGNED/i', '', $type);
-            if (empty($type)) {
-                $type     = ' ';
+            if ($res_rel && count($res_rel) > 0) {
+                $have_rel = true;
+            } else {
+                $have_rel = false;
             }
+        } else {
+               $have_rel = false;
+        } // end if
 
-            $binary       = preg_match('/BINARY/i', $column['Type']);
-            $unsigned     = preg_match('/UNSIGNED/i', $column['Type']);
-            $zerofill     = preg_match('/ZEROFILL/i', $column['Type']);
+        /**
+         * Displays the table structure
+         */
+        $GLOBALS['odt_buffer'] .= '<table:table table:name="' . htmlspecialchars($table) . '_data">';
+        $columns_cnt = 4;
+        if ($do_relation && $have_rel) {
+            $columns_cnt++;
+        }
+        if ($do_comments) {
+            $columns_cnt++;
         }
+        if ($do_mime && $cfgRelation['mimework']) {
+            $columns_cnt++;
+        }
+        $GLOBALS['odt_buffer'] .= '<table:table-column table:number-columns-repeated="' . $columns_cnt . '"/>';
+        /* Header */
+        $GLOBALS['odt_buffer'] .= '<table:table-row>';
         $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-            . '<text:p>' . htmlspecialchars($type) . '</text:p>'
+            . '<text:p>' . htmlspecialchars(__('Column')) . '</text:p>'
             . '</table:table-cell>';
-        if (!isset($column['Default'])) {
-            if ($column['Null'] != 'NO') {
-                $column['Default'] = 'NULL';
-            } else {
-                $column['Default'] = '';
-            }
-        } else {
-            $column['Default'] = $column['Default'];
-        }
         $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-            . '<text:p>' . htmlspecialchars(($column['Null'] == '' || $column['Null'] == 'NO') ? __('No') : __('Yes')) . '</text:p>'
+            . '<text:p>' . htmlspecialchars(__('Type')) . '</text:p>'
             . '</table:table-cell>';
         $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-            . '<text:p>' . htmlspecialchars($column['Default']) . '</text:p>'
+            . '<text:p>' . htmlspecialchars(__('Null')) . '</text:p>'
+            . '</table:table-cell>';
+        $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+            . '<text:p>' . htmlspecialchars(__('Default')) . '</text:p>'
             . '</table:table-cell>';
-
         if ($do_relation && $have_rel) {
-            if (isset($res_rel[$field_name])) {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p>' . htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') . '</text:p>'
-                    . '</table:table-cell>';
-            }
+            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                . '<text:p>' . htmlspecialchars(__('Links to')) . '</text:p>'
+                . '</table:table-cell>';
         }
         if ($do_comments) {
-            if (isset($comments[$field_name])) {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p>' . htmlspecialchars($comments[$field_name]) . '</text:p>'
-                    . '</table:table-cell>';
-            } else {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p></text:p>'
-                    . '</table:table-cell>';
-            }
+            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                . '<text:p>' . htmlspecialchars(__('Comments')) . '</text:p>'
+                . '</table:table-cell>';
+            $comments = PMA_getComments($db, $table);
         }
         if ($do_mime && $cfgRelation['mimework']) {
-            if (isset($mime_map[$field_name])) {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p>' . htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) . '</text:p>'
-                    . '</table:table-cell>';
-            } else {
-                $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
-                    . '<text:p></text:p>'
-                    . '</table:table-cell>';
-            }
+            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                . '<text:p>' . htmlspecialchars(__('MIME type')) . '</text:p>'
+                . '</table:table-cell>';
+            $mime_map = PMA_getMIME($db, $table, true);
         }
         $GLOBALS['odt_buffer'] .= '</table:table-row>';
-    } // end while
 
-    $GLOBALS['odt_buffer'] .= '</table:table>';
-    return true;
-} // end of the 'PMA_exportStructure' function
+        $columns = PMA_DBI_get_columns($db, $table);
+        foreach ($columns as $column) {
+
+            $field_name = $column['Field'];
+            $GLOBALS['odt_buffer'] .= '<table:table-row>';
+            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                . '<text:p>' . htmlspecialchars($field_name) . '</text:p>'
+                . '</table:table-cell>';
+            // reformat mysql query output
+            // set or enum types: slashes single quotes inside options
+            $type = $column['Type'];
+            if (preg_match('/^(set|enum)\((.+)\)$/i', $type, $tmp)) {
+                $tmp[2]       = substr(preg_replace('/([^,])\'\'/', '\\1\\\'', ',' . $tmp[2]), 1);
+                $type         = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
+                $type_nowrap  = '';
+
+                $binary       = 0;
+                $unsigned     = 0;
+                $zerofill     = 0;
+            } else {
+                $type_nowrap  = ' nowrap="nowrap"';
+                $type         = preg_replace('/BINARY/i', '', $type);
+                $type         = preg_replace('/ZEROFILL/i', '', $type);
+                $type         = preg_replace('/UNSIGNED/i', '', $type);
+                if (empty($type)) {
+                    $type     = ' ';
+                }
+
+                $binary       = preg_match('/BINARY/i', $column['Type']);
+                $unsigned     = preg_match('/UNSIGNED/i', $column['Type']);
+                $zerofill     = preg_match('/ZEROFILL/i', $column['Type']);
+            }
+            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                . '<text:p>' . htmlspecialchars($type) . '</text:p>'
+                . '</table:table-cell>';
+            if (!isset($column['Default'])) {
+                if ($column['Null'] != 'NO') {
+                    $column['Default'] = 'NULL';
+                } else {
+                    $column['Default'] = '';
+                }
+            } else {
+                $column['Default'] = $column['Default'];
+            }
+            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                . '<text:p>' . htmlspecialchars(($column['Null'] == '' || $column['Null'] == 'NO') ? __('No') : __('Yes')) . '</text:p>'
+                . '</table:table-cell>';
+            $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                . '<text:p>' . htmlspecialchars($column['Default']) . '</text:p>'
+                . '</table:table-cell>';
+
+            if ($do_relation && $have_rel) {
+                if (isset($res_rel[$field_name])) {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p>' . htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' (' . $res_rel[$field_name]['foreign_field'] . ')') . '</text:p>'
+                        . '</table:table-cell>';
+                }
+            }
+            if ($do_comments) {
+                if (isset($comments[$field_name])) {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p>' . htmlspecialchars($comments[$field_name]) . '</text:p>'
+                        . '</table:table-cell>';
+                } else {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p></text:p>'
+                        . '</table:table-cell>';
+                }
+            }
+            if ($do_mime && $cfgRelation['mimework']) {
+                if (isset($mime_map[$field_name])) {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p>' . htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])) . '</text:p>'
+                        . '</table:table-cell>';
+                } else {
+                    $GLOBALS['odt_buffer'] .= '<table:table-cell office:value-type="string">'
+                        . '<text:p></text:p>'
+                        . '</table:table-cell>';
+                }
+            }
+            $GLOBALS['odt_buffer'] .= '</table:table-row>';
+        } // end while
+
+        $GLOBALS['odt_buffer'] .= '</table:table>';
+        return true;
+    } // end of the 'PMA_exportStructure' function
 
 } // end else
 ?>
diff --git a/libraries/export/pdf.php b/libraries/export/pdf.php
index 01ffc88..3cc0acf 100644
--- a/libraries/export/pdf.php
+++ b/libraries/export/pdf.php
@@ -30,441 +30,441 @@ 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';
+    /**
+     * Font used in PDF.
+     *
+     * @todo Make this configuratble (at least Sans/Serif).
+     */
+    define('PMA_PDF_FONT', 'DejaVuSans');
+    require_once './libraries/tcpdf/tcpdf.php';
+
+    /**
+     * Adapted from a LGPL script by Philip Clarke
+     * @package phpMyAdmin-Export
+     * @subpackage PDF
+     */
+    class PMA_PDF extends TCPDF
+    {
+        var $tablewidths;
+        var $headerset;
+        var $footerset;
 
-/**
- * Adapted from a LGPL script by Philip Clarke
- * @package phpMyAdmin-Export
- * @subpackage PDF
- */
-class PMA_PDF extends TCPDF
-{
-    var $tablewidths;
-    var $headerset;
-    var $footerset;
-
-    function checkPageBreak($h=0, $y='', $addpage=true) {
-        if ($this->empty_string($y)) {
-            $y = $this->y;
-        }
-        $current_page = $this->page;
-        if ((($y + $h) > $this->PageBreakTrigger) AND (!$this->InFooter) AND ($this->AcceptPageBreak())) {
-            if ($addpage) {
-                //Automatic page break
-                $x = $this->x;
-                $this->AddPage($this->CurOrientation);
-                $this->y = $this->dataY;
-                $oldpage = $this->page - 1;
-                if ($this->rtl) {
-                    if ($this->pagedim[$this->page]['orm'] != $this->pagedim[$oldpage]['orm']) {
-                        $this->x = $x - ($this->pagedim[$this->page]['orm'] - $this->pagedim[$oldpage]['orm']);
-                    } else {
-                        $this->x = $x;
-                    }
-                } else {
-                    if ($this->pagedim[$this->page]['olm'] != $this->pagedim[$oldpage]['olm']) {
-                        $this->x = $x + ($this->pagedim[$this->page]['olm'] - $this->pagedim[$oldpage]['olm']);
+        function checkPageBreak($h=0, $y='', $addpage=true) {
+            if ($this->empty_string($y)) {
+                $y = $this->y;
+            }
+            $current_page = $this->page;
+            if ((($y + $h) > $this->PageBreakTrigger) AND (!$this->InFooter) AND ($this->AcceptPageBreak())) {
+                if ($addpage) {
+                    //Automatic page break
+                    $x = $this->x;
+                    $this->AddPage($this->CurOrientation);
+                    $this->y = $this->dataY;
+                    $oldpage = $this->page - 1;
+                    if ($this->rtl) {
+                        if ($this->pagedim[$this->page]['orm'] != $this->pagedim[$oldpage]['orm']) {
+                            $this->x = $x - ($this->pagedim[$this->page]['orm'] - $this->pagedim[$oldpage]['orm']);
+                        } else {
+                            $this->x = $x;
+                        }
                     } else {
-                        $this->x = $x;
+                        if ($this->pagedim[$this->page]['olm'] != $this->pagedim[$oldpage]['olm']) {
+                            $this->x = $x + ($this->pagedim[$this->page]['olm'] - $this->pagedim[$oldpage]['olm']);
+                        } else {
+                            $this->x = $x;
+                        }
                     }
                 }
+                return true;
             }
-            return true;
-        }
-        if ($current_page != $this->page) {
-            // account for columns mode
-            return true;
-        }
-        return false;
-    }
-
-    function Header()
-    {
-        global $maxY;
-        // Check if header for this page already exists
-        if (!isset($this->headerset[$this->page])) {
-            $fullwidth = 0;
-            foreach ($this->tablewidths as $width) {
-                $fullwidth += $width;
+            if ($current_page != $this->page) {
+                // account for columns mode
+                return true;
             }
-            $this->SetY(($this->tMargin) - ($this->FontSizePt/$this->k)*3);
-            $this->cellFontSize = $this->FontSizePt ;
-            $this->SetFont(PMA_PDF_FONT, '', ($this->titleFontSize ? $this->titleFontSize : $this->FontSizePt));
-            $this->Cell(0, $this->FontSizePt, $this->titleText, 0, 1, 'C');
-            $this->SetFont(PMA_PDF_FONT, '', $this->cellFontSize);
-            $this->SetY(($this->tMargin) - ($this->FontSizePt/$this->k)*1.5);
-            $this->Cell(0, $this->FontSizePt, __('Database') .': ' .$this->currentDb .',  ' .__('Table') .': ' .$this->currentTable, 0, 1, 'L');
-            $l = ($this->lMargin);
-            foreach ($this->colTitles as $col => $txt) {
-                $this->SetXY($l, ($this->tMargin));
-                $this->MultiCell($this->tablewidths[$col], $this->FontSizePt, $txt);
-                $l += $this->tablewidths[$col] ;
-                $maxY = ($maxY < $this->getY()) ? $this->getY() : $maxY ;
-            }
-            $this->SetXY($this->lMargin, $this->tMargin);
-            $this->setFillColor(200, 200, 200);
-            $l = ($this->lMargin);
-            foreach ($this->colTitles as $col => $txt) {
-                $this->SetXY($l, $this->tMargin);
-                $this->cell($this->tablewidths[$col], $maxY-($this->tMargin), '', 1, 0, 'L', 1);
-                $this->SetXY($l, $this->tMargin);
-                $this->MultiCell($this->tablewidths[$col], $this->FontSizePt, $txt, 0, 'C');
-                $l += $this->tablewidths[$col];
-            }
-            $this->setFillColor(255, 255, 255);
-            // set headerset
-            $this->headerset[$this->page] = 1;
+            return false;
         }
 
-        $this->dataY = $maxY;
-    }
+        function Header()
+        {
+            global $maxY;
+            // Check if header for this page already exists
+            if (!isset($this->headerset[$this->page])) {
+                $fullwidth = 0;
+                foreach ($this->tablewidths as $width) {
+                    $fullwidth += $width;
+                }
+                $this->SetY(($this->tMargin) - ($this->FontSizePt/$this->k)*3);
+                $this->cellFontSize = $this->FontSizePt ;
+                $this->SetFont(PMA_PDF_FONT, '', ($this->titleFontSize ? $this->titleFontSize : $this->FontSizePt));
+                $this->Cell(0, $this->FontSizePt, $this->titleText, 0, 1, 'C');
+                $this->SetFont(PMA_PDF_FONT, '', $this->cellFontSize);
+                $this->SetY(($this->tMargin) - ($this->FontSizePt/$this->k)*1.5);
+                $this->Cell(0, $this->FontSizePt, __('Database') .': ' .$this->currentDb .',  ' .__('Table') .': ' .$this->currentTable, 0, 1, 'L');
+                $l = ($this->lMargin);
+                foreach ($this->colTitles as $col => $txt) {
+                    $this->SetXY($l, ($this->tMargin));
+                    $this->MultiCell($this->tablewidths[$col], $this->FontSizePt, $txt);
+                    $l += $this->tablewidths[$col] ;
+                    $maxY = ($maxY < $this->getY()) ? $this->getY() : $maxY ;
+                }
+                $this->SetXY($this->lMargin, $this->tMargin);
+                $this->setFillColor(200, 200, 200);
+                $l = ($this->lMargin);
+                foreach ($this->colTitles as $col => $txt) {
+                    $this->SetXY($l, $this->tMargin);
+                    $this->cell($this->tablewidths[$col], $maxY-($this->tMargin), '', 1, 0, 'L', 1);
+                    $this->SetXY($l, $this->tMargin);
+                    $this->MultiCell($this->tablewidths[$col], $this->FontSizePt, $txt, 0, 'C');
+                    $l += $this->tablewidths[$col];
+                }
+                $this->setFillColor(255, 255, 255);
+                // set headerset
+                $this->headerset[$this->page] = 1;
+            }
 
-    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;
+            $this->dataY = $maxY;
         }
-    }
 
-    function morepagestable($lineheight=8)
-    {
-        // some things to set and 'remember'
-        $l = $this->lMargin;
-        $startheight = $h = $this->dataY;
-        $startpage = $currpage = $this->page;
-
-        // calculate the whole width
-        $fullwidth = 0;
-        foreach ($this->tablewidths as $width) {
-            $fullwidth += $width;
+        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;
+            }
         }
 
-        // Now let's start to write the table
-        $row = 0;
-        $tmpheight = array();
-        $maxpage = $this->page;
+        function morepagestable($lineheight=8)
+        {
+            // some things to set and 'remember'
+            $l = $this->lMargin;
+            $startheight = $h = $this->dataY;
+            $startpage = $currpage = $this->page;
 
-        while ($data = PMA_DBI_fetch_row($this->results)) {
-            $this->page = $currpage;
-            // write the horizontal borders
-            $this->Line($l, $h, $fullwidth+$l, $h);
-            // write the content and remember the height of the highest col
-            foreach ($data as $col => $txt) {
+            // calculate the whole width
+            $fullwidth = 0;
+            foreach ($this->tablewidths as $width) {
+                $fullwidth += $width;
+            }
+
+            // Now let's start to write the table
+            $row = 0;
+            $tmpheight = array();
+            $maxpage = $this->page;
+
+            while ($data = PMA_DBI_fetch_row($this->results)) {
                 $this->page = $currpage;
-                $this->SetXY($l, $h);
-                if ($this->tablewidths[$col] > 0) {
-                    $this->MultiCell($this->tablewidths[$col], $lineheight, $txt, 0, $this->colAlign[$col]);
-                    $l += $this->tablewidths[$col];
-                }
+                // write the horizontal borders
+                $this->Line($l, $h, $fullwidth+$l, $h);
+                // write the content and remember the height of the highest col
+                foreach ($data as $col => $txt) {
+                    $this->page = $currpage;
+                    $this->SetXY($l, $h);
+                    if ($this->tablewidths[$col] > 0) {
+                        $this->MultiCell($this->tablewidths[$col], $lineheight, $txt, 0, $this->colAlign[$col]);
+                        $l += $this->tablewidths[$col];
+                    }
 
-                if (!isset($tmpheight[$row.'-'.$this->page])) {
-                    $tmpheight[$row.'-'.$this->page] = 0;
-                }
-                if ($tmpheight[$row.'-'.$this->page] < $this->GetY()) {
-                    $tmpheight[$row.'-'.$this->page] = $this->GetY();
-                }
-                if ($this->page > $maxpage) {
-                    $maxpage = $this->page;
+                    if (!isset($tmpheight[$row.'-'.$this->page])) {
+                        $tmpheight[$row.'-'.$this->page] = 0;
+                    }
+                    if ($tmpheight[$row.'-'.$this->page] < $this->GetY()) {
+                        $tmpheight[$row.'-'.$this->page] = $this->GetY();
+                    }
+                    if ($this->page > $maxpage) {
+                        $maxpage = $this->page;
+                    }
+                    unset($data[$col]);
                 }
-                unset($data[$col]);
-            }
 
-            // get the height we were in the last used page
-            $h = $tmpheight[$row.'-'.$maxpage];
-            // set the "pointer" to the left margin
-            $l = $this->lMargin;
-            // set the $currpage to the last page
-            $currpage = $maxpage;
-            unset($data[$row]);
-            $row++;
-        }
-        // draw the borders
-        // we start adding a horizontal line on the last page
-        $this->page = $maxpage;
-        $this->Line($l, $h, $fullwidth+$l, $h);
-        // now we start at the top of the document and walk down
-        for ($i = $startpage; $i <= $maxpage; $i++) {
-            $this->page = $i;
-            $l = $this->lMargin;
-            $t = ($i == $startpage) ? $startheight : $this->tMargin;
-            $lh = ($i == $maxpage) ? $h : $this->h-$this->bMargin;
-            $this->Line($l, $t, $l, $lh);
-            foreach ($this->tablewidths as $width) {
-                $l += $width;
+                // get the height we were in the last used page
+                $h = $tmpheight[$row.'-'.$maxpage];
+                // set the "pointer" to the left margin
+                $l = $this->lMargin;
+                // set the $currpage to the last page
+                $currpage = $maxpage;
+                unset($data[$row]);
+                $row++;
+            }
+            // draw the borders
+            // we start adding a horizontal line on the last page
+            $this->page = $maxpage;
+            $this->Line($l, $h, $fullwidth+$l, $h);
+            // now we start at the top of the document and walk down
+            for ($i = $startpage; $i <= $maxpage; $i++) {
+                $this->page = $i;
+                $l = $this->lMargin;
+                $t = ($i == $startpage) ? $startheight : $this->tMargin;
+                $lh = ($i == $maxpage) ? $h : $this->h-$this->bMargin;
                 $this->Line($l, $t, $l, $lh);
+                foreach ($this->tablewidths as $width) {
+                    $l += $width;
+                    $this->Line($l, $t, $l, $lh);
+                }
             }
+            // set it to the last page, if not it'll cause some problems
+            $this->page = $maxpage;
         }
-        // set it to the last page, if not it'll cause some problems
-        $this->page = $maxpage;
-    }
 
-    function setAttributes($attr = array())
-    {
-        foreach ($attr as $key => $val) {
-            $this->$key = $val ;
+        function setAttributes($attr = array())
+        {
+            foreach ($attr as $key => $val) {
+                $this->$key = $val ;
+            }
         }
-    }
 
-    function setTopMargin($topMargin)
-    {
-        $this->tMargin = $topMargin;
-    }
+        function setTopMargin($topMargin)
+        {
+            $this->tMargin = $topMargin;
+        }
 
-    function mysql_report($query)
-    {
-        unset($this->tablewidths);
-        unset($this->colTitles);
-        unset($this->titleWidth);
-        unset($this->colFits);
-        unset($this->display_column);
-        unset($this->colAlign);
-
-        /**
-         * Pass 1 for column widths
-         */
-        $this->results = PMA_DBI_query($query, null, PMA_DBI_QUERY_UNBUFFERED);
-        $this->numFields  = PMA_DBI_num_fields($this->results);
-        $this->fields = PMA_DBI_get_fields_meta($this->results);
-
-        // sColWidth = starting col width (an average size width)
-        $availableWidth = $this->w - $this->lMargin - $this->rMargin;
-        $this->sColWidth = $availableWidth / $this->numFields;
-        $totalTitleWidth = 0;
-
-        // loop through results header and set initial col widths/ titles/ alignment
-        // if a col title is less than the starting col width, reduce that column size
-        for ($i = 0; $i < $this->numFields; $i++) {
-            $stringWidth = $this->getstringwidth($this->fields[$i]->name) + 6 ;
-            // save the real title's width
-            $titleWidth[$i] = $stringWidth;
-            $totalTitleWidth += $stringWidth;
-
-            // set any column titles less than the start width to the column title width
-            if ($stringWidth < $this->sColWidth) {
-                $colFits[$i] = $stringWidth ;
-            }
-            $this->colTitles[$i] = $this->fields[$i]->name;
-            $this->display_column[$i] = true;
-
-            switch ($this->fields[$i]->type) {
-            case 'int':
-                $this->colAlign[$i] = 'R';
-                break;
-            case 'blob':
-            case 'tinyblob':
-            case 'mediumblob':
-            case 'longblob':
-                /**
-                 * @todo do not deactivate completely the display
-                 * but show the field's name and [BLOB]
-                 */
-                if (stristr($this->fields[$i]->flags, 'BINARY')) {
-                    $this->display_column[$i] = false;
-                    unset($this->colTitles[$i]);
+        function mysql_report($query)
+        {
+            unset($this->tablewidths);
+            unset($this->colTitles);
+            unset($this->titleWidth);
+            unset($this->colFits);
+            unset($this->display_column);
+            unset($this->colAlign);
+
+            /**
+             * Pass 1 for column widths
+             */
+            $this->results = PMA_DBI_query($query, null, PMA_DBI_QUERY_UNBUFFERED);
+            $this->numFields  = PMA_DBI_num_fields($this->results);
+            $this->fields = PMA_DBI_get_fields_meta($this->results);
+
+            // sColWidth = starting col width (an average size width)
+            $availableWidth = $this->w - $this->lMargin - $this->rMargin;
+            $this->sColWidth = $availableWidth / $this->numFields;
+            $totalTitleWidth = 0;
+
+            // loop through results header and set initial col widths/ titles/ alignment
+            // if a col title is less than the starting col width, reduce that column size
+            for ($i = 0; $i < $this->numFields; $i++) {
+                $stringWidth = $this->getstringwidth($this->fields[$i]->name) + 6 ;
+                // save the real title's width
+                $titleWidth[$i] = $stringWidth;
+                $totalTitleWidth += $stringWidth;
+
+                // set any column titles less than the start width to the column title width
+                if ($stringWidth < $this->sColWidth) {
+                    $colFits[$i] = $stringWidth ;
+                }
+                $this->colTitles[$i] = $this->fields[$i]->name;
+                $this->display_column[$i] = true;
+
+                switch ($this->fields[$i]->type) {
+                case 'int':
+                    $this->colAlign[$i] = 'R';
+                    break;
+                case 'blob':
+                case 'tinyblob':
+                case 'mediumblob':
+                case 'longblob':
+                    /**
+                     * @todo do not deactivate completely the display
+                     * but show the field's name and [BLOB]
+                     */
+                    if (stristr($this->fields[$i]->flags, 'BINARY')) {
+                        $this->display_column[$i] = false;
+                        unset($this->colTitles[$i]);
+                    }
+                    $this->colAlign[$i] = 'L';
+                    break;
+                default:
+                    $this->colAlign[$i] = 'L';
                 }
-                $this->colAlign[$i] = 'L';
-                break;
-            default:
-                $this->colAlign[$i] = 'L';
             }
-        }
 
-        // title width verification
-        if ($totalTitleWidth > $availableWidth) {
-            $adjustingMode = true;
-        } else {
-            $adjustingMode = false;
-            // we have enough space for all the titles at their
-            // original width so use the true title's width
-            foreach ($titleWidth as $key => $val) {
-                $colFits[$key] = $val;
+            // title width verification
+            if ($totalTitleWidth > $availableWidth) {
+                $adjustingMode = true;
+            } else {
+                $adjustingMode = false;
+                // we have enough space for all the titles at their
+                // original width so use the true title's width
+                foreach ($titleWidth as $key => $val) {
+                    $colFits[$key] = $val;
+                }
             }
-        }
 
-        // loop through the data; any column whose contents
-        // is greater than the column size is resized
-        /**
-          * @todo force here a LIMIT to avoid reading all rows
-          */
-        while ($row = PMA_DBI_fetch_row($this->results)) {
-            foreach ($colFits as $key => $val) {
-                $stringWidth = $this->getstringwidth($row[$key]) + 6 ;
-                if ($adjustingMode && ($stringWidth > $this->sColWidth)) {
-                // any column whose data's width is bigger than the start width is now discarded
-                    unset($colFits[$key]);
-                } else {
-                // if data's width is bigger than the current column width,
-                // enlarge the column (but avoid enlarging it if the
-                // data's width is very big)
-                        if ($stringWidth > $val && $stringWidth < ($this->sColWidth * 3)) {
-                        $colFits[$key] = $stringWidth ;
+            // loop through the data; any column whose contents
+            // is greater than the column size is resized
+            /**
+              * @todo force here a LIMIT to avoid reading all rows
+              */
+            while ($row = PMA_DBI_fetch_row($this->results)) {
+                foreach ($colFits as $key => $val) {
+                    $stringWidth = $this->getstringwidth($row[$key]) + 6 ;
+                    if ($adjustingMode && ($stringWidth > $this->sColWidth)) {
+                    // any column whose data's width is bigger than the start width is now discarded
+                        unset($colFits[$key]);
+                    } else {
+                    // if data's width is bigger than the current column width,
+                    // enlarge the column (but avoid enlarging it if the
+                    // data's width is very big)
+                            if ($stringWidth > $val && $stringWidth < ($this->sColWidth * 3)) {
+                            $colFits[$key] = $stringWidth ;
+                        }
                     }
                 }
             }
-        }
-
-        $totAlreadyFitted = 0;
-        foreach ($colFits as $key => $val) {
-            // set fitted columns to smallest size
-            $this->tablewidths[$key] = $val;
-            // to work out how much (if any) space has been freed up
-            $totAlreadyFitted += $val;
-        }
 
-        if ($adjustingMode) {
-            $surplus = (sizeof($colFits) * $this->sColWidth) - $totAlreadyFitted;
-            $surplusToAdd = $surplus / ($this->numFields - sizeof($colFits));
-        } else {
-            $surplusToAdd = 0;
-        }
+            $totAlreadyFitted = 0;
+            foreach ($colFits as $key => $val) {
+                // set fitted columns to smallest size
+                $this->tablewidths[$key] = $val;
+                // to work out how much (if any) space has been freed up
+                $totAlreadyFitted += $val;
+            }
 
-        for ($i=0; $i < $this->numFields; $i++) {
-            if (!in_array($i, array_keys($colFits))) {
-                $this->tablewidths[$i] = $this->sColWidth + $surplusToAdd;
+            if ($adjustingMode) {
+                $surplus = (sizeof($colFits) * $this->sColWidth) - $totAlreadyFitted;
+                $surplusToAdd = $surplus / ($this->numFields - sizeof($colFits));
+            } else {
+                $surplusToAdd = 0;
             }
-            if ($this->display_column[$i] == false) {
-                $this->tablewidths[$i] = 0;
+
+            for ($i=0; $i < $this->numFields; $i++) {
+                if (!in_array($i, array_keys($colFits))) {
+                    $this->tablewidths[$i] = $this->sColWidth + $surplusToAdd;
+                }
+                if ($this->display_column[$i] == false) {
+                    $this->tablewidths[$i] = 0;
+                }
             }
-        }
 
-        ksort($this->tablewidths);
+            ksort($this->tablewidths);
 
-        PMA_DBI_free_result($this->results);
+            PMA_DBI_free_result($this->results);
 
-        // Pass 2
+            // Pass 2
 
-        $this->results = PMA_DBI_query($query, null, PMA_DBI_QUERY_UNBUFFERED);
-        $this->setY($this->tMargin);
-        $this->AddPage();
-        $this->morepagestable($this->FontSizePt);
-        PMA_DBI_free_result($this->results);
+            $this->results = PMA_DBI_query($query, null, PMA_DBI_QUERY_UNBUFFERED);
+            $this->setY($this->tMargin);
+            $this->AddPage();
+            $this->morepagestable($this->FontSizePt);
+            PMA_DBI_free_result($this->results);
 
-    } // end of mysql_report function
+        } // end of mysql_report function
 
-} // end of PMA_PDF class
+    } // end of PMA_PDF class
 
-$pdf = new PMA_PDF('L', 'pt', 'A3');
+    $pdf = new PMA_PDF('L', 'pt', 'A3');
 
-/**
- * Finalize the pdf.
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportFooter()
-{
-    global $pdf;
+    /**
+     * Finalize the pdf.
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportFooter()
+    {
+        global $pdf;
 
-    // instead of $pdf->Output():
-    if (!PMA_exportOutputHandler($pdf->getPDFData())) {
-        return false;
-    }
+        // instead of $pdf->Output():
+        if (!PMA_exportOutputHandler($pdf->getPDFData())) {
+            return false;
+        }
 
-    return true;
-}
+        return true;
+    }
 
-/**
- * Initialize the pdf to export data.
- *
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportHeader()
-{
-    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);
-    $pdf->setAttributes($attr);
-    $pdf->setTopMargin(45);
-
-    return true;
-}
+    /**
+     * Initialize the pdf to export data.
+     *
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportHeader()
+    {
+        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);
+        $pdf->setAttributes($attr);
+        $pdf->setTopMargin(45);
+
+        return true;
+    }
 
-/**
- * Outputs database header
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBHeader($db)
-{
-    return true;
-}
+    /**
+     * Outputs database header
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBHeader($db)
+    {
+        return true;
+    }
 
-/**
- * Outputs database footer
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBFooter($db)
-{
-    return true;
-}
+    /**
+     * Outputs database footer
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBFooter($db)
+    {
+        return true;
+    }
 
-/**
- * Outputs CREATE DATABASE statement
- *
- * @param string  $db Database name
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportDBCreate($db)
-{
-    return true;
-}
+    /**
+     * Outputs CREATE DATABASE statement
+     *
+     * @param string  $db Database name
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportDBCreate($db)
+    {
+        return true;
+    }
 
-/**
- * Outputs the content of a table in PDF format
- *
- * @param string  $db         database name
- * @param string  $table      table name
- * @param string  $crlf       the end of line sequence
- * @param string  $error_url  the url to go back in case of error
- * @param string  $sql_query  SQL query for obtaining data
- * @return  bool        Whether it suceeded
- *
- * @access  public
- */
-function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
-{
-    global $pdf;
+    /**
+     * Outputs the content of a table in PDF format
+     *
+     * @param string  $db         database name
+     * @param string  $table      table name
+     * @param string  $crlf       the end of line sequence
+     * @param string  $error_url  the url to go back in case of error
+     * @param string  $sql_query  SQL query for obtaining data
+     * @return  bool        Whether it suceeded
+     *
+     * @access  public
+     */
+    function PMA_exportData($db, $table, $crlf, $error_url, $sql_query)
+    {
+        global $pdf;
 
-    $attr=array('currentDb' => $db, 'currentTable' => $table);
-    $pdf->setAttributes($attr);
-    $pdf->mysql_report($sql_query);
+        $attr=array('currentDb' => $db, 'currentTable' => $table);
+        $pdf->setAttributes($attr);
+        $pdf->mysql_report($sql_query);
 
-    return true;
-} // end of the 'PMA_exportData()' function
+        return true;
+    } // end of the 'PMA_exportData()' function
 }
 ?>


hooks/post-receive
-- 
phpMyAdmin




More information about the Git mailing list