1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/phpmyadmin_ynh.git synced 2024-09-03 19:56:46 +02:00
phpmyadmin_ynh/sources/libraries/schema/Export_Relation_Schema.class.php
2014-01-14 12:28:06 +01:00

251 lines
5.8 KiB
PHP

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
*
* @package PhpMyAdmin
*/
if (! defined('PHPMYADMIN')) {
exit;
}
/**
* This class is inherited by all schema classes
* It contains those methods which are common in them
* it works like factory pattern
*
* @package PhpMyAdmin
*/
class PMA_Export_Relation_Schema
{
private $_pageTitle;
public $showGrid;
public $showColor;
public $tableDimension;
public $sameWide;
public $withDoc;
public $showKeys;
public $orientation;
public $paper;
public $pageNumber;
/**
* Set Page Number
*
* @param integer $value Page Number of the document to be created
*
* @return void
*
* @access public
*/
public function setPageNumber($value)
{
$this->pageNumber = isset($value) ? $value : 1;
}
/**
* Set Show Grid
*
* @param boolean $value show grid of the document or not
*
* @return void
*
* @access public
*/
public function setShowGrid($value)
{
$this->showGrid = (isset($value) && $value == 'on') ? 1 : 0;
}
/**
* Sets showColor
*
* @param string $value 'on' to set the the variable
*
* @return void
*/
public function setShowColor($value)
{
$this->showColor = (isset($value) && $value == 'on') ? 1 : 0;
}
/**
* Set Table Dimension
*
* @param boolean $value show table co-ordinates or not
*
* @return void
*
* @access public
*/
public function setTableDimension($value)
{
$this->tableDimension = (isset($value) && $value == 'on') ? 1 : 0;
}
/**
* Set same width of All Tables
*
* @param boolean $value set same width of all tables or not
*
* @return void
*
* @access public
*/
public function setAllTablesSameWidth($value)
{
$this->sameWide = (isset($value) && $value == 'on') ? 1 : 0;
}
/**
* Set Data Dictionary
*
* @param boolean $value show selected database data dictionary or not
*
* @return void
*
* @access public
*/
public function setWithDataDictionary($value)
{
$this->withDoc = (isset($value) && $value == 'on') ? 1 : 0;
}
/**
* Set Show only keys
*
* @param boolean $value show only keys or not
*
* @return void
*
* @access public
*/
public function setShowKeys($value)
{
$this->showKeys = (isset($value) && $value == 'on') ? 1 : 0;
}
/**
* Set Orientation
*
* @param string $value Orientation will be portrait or landscape
*
* @return void
*
* @access public
*/
public function setOrientation($value)
{
$this->orientation = (isset($value) && $value == 'P') ? 'P' : 'L';
}
/**
* Set type of paper
*
* @param string $value paper type can be A4 etc
*
* @return void
*
* @access public
*/
public function setPaper($value)
{
$this->paper = isset($value) ? $value : 'A4';
}
/**
* Set title of the page
*
* @param string $title title of the page displayed at top of the document
*
* @return void
*
* @access public
*/
public function setPageTitle($title)
{
$this->_pageTitle=$title;
}
/**
* Set type of export relational schema
*
* @param string $value can be pdf,svg,dia,eps etc
*
* @return void
*
* @access public
*/
public function setExportType($value)
{
$this->exportType=$value;
}
/**
* get all tables involved or included in page
*
* @param string $db name of the database
* @param integer $pageNumber page no. whose tables will be fetched in an array
*
* @return Array an array of tables
*
* @access public
*/
public function getAllTables($db, $pageNumber)
{
global $cfgRelation;
// Get All tables
$tab_sql = 'SELECT table_name FROM '
. PMA_Util::backquote($GLOBALS['cfgRelation']['db']) . '.'
. PMA_Util::backquote($cfgRelation['table_coords'])
. ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
. ' AND pdf_page_number = ' . $pageNumber;
$tab_rs = PMA_queryAsControlUser(
$tab_sql, null, PMA_DatabaseInterface::QUERY_STORE
);
if (! $tab_rs || ! $GLOBALS['dbi']->numRows($tab_rs) > 0) {
$this->dieSchema('', __('This page does not contain any tables!'));
}
//Fix undefined error
$alltables = array();
while ($curr_table = @$GLOBALS['dbi']->fetchAssoc($tab_rs)) {
$alltables[] = PMA_Util::sqlAddSlashes($curr_table['table_name']);
}
return $alltables;
}
/**
* Displays an error message
*
* @param integer $pageNumber ID of the chosen page
* @param string $type Schema Type
* @param string $error_message The error mesage
*
* @global array the PMA configuration array
* @global string $db the current database name
*
* @access public
*
* @return void
*/
function dieSchema($pageNumber, $type = '', $error_message = '')
{
global $db;
echo "<p><strong>" . __("SCHEMA ERROR: ") . $type . "</strong></p>" . "\n";
if (!empty($error_message)) {
$error_message = htmlspecialchars($error_message);
}
echo '<p>' . "\n";
echo ' ' . $error_message . "\n";
echo '</p>' . "\n";
echo '<a href="schema_edit.php?' . PMA_URL_getCommon($db)
. '&do=selectpage&chpage=' . htmlspecialchars($pageNumber)
. '&action_choose=0'
. '">' . __('Back') . '</a>';
echo "\n";
exit;
}
}
?>