aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/Svg.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/Svg.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/Svg.php281
1 files changed, 0 insertions, 281 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/Svg.php b/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/Svg.php
deleted file mode 100644
index 4404574..0000000
--- a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/Svg.php
+++ /dev/null
@@ -1,281 +0,0 @@
-<?php
-/* vim: set expandtab sw=4 ts=4 sts=4: */
-/**
- * Classes to create relation schema in SVG format.
- *
- * @package PhpMyAdmin
- */
-declare(strict_types=1);
-
-namespace PhpMyAdmin\Plugins\Schema\Svg;
-
-use PhpMyAdmin\Core;
-use PhpMyAdmin\Response;
-use XMLWriter;
-
-/**
- * This Class inherits the XMLwriter class and
- * helps in developing structure of SVG Schema Export
- *
- * @package PhpMyAdmin
- * @access public
- * @see https://www.php.net/manual/en/book.xmlwriter.php
- */
-class Svg extends XMLWriter
-{
- public $title;
- public $author;
- public $font;
- public $fontSize;
-
- /**
- * The "PhpMyAdmin\Plugins\Schema\Svg\Svg" constructor
- *
- * Upon instantiation This starts writing the RelationStatsSvg XML document
- *
- * @see XMLWriter::openMemory(),XMLWriter::setIndent(),XMLWriter::startDocument()
- */
- public function __construct()
- {
- $this->openMemory();
- /*
- * Set indenting using three spaces,
- * so output is formatted
- */
-
- $this->setIndent(true);
- $this->setIndentString(' ');
- /*
- * Create the XML document
- */
-
- $this->startDocument('1.0', 'UTF-8');
- $this->startDtd(
- 'svg',
- '-//W3C//DTD SVG 1.1//EN',
- 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'
- );
- $this->endDtd();
- }
-
- /**
- * Set document title
- *
- * @param string $value sets the title text
- *
- * @return void
- */
- public function setTitle($value)
- {
- $this->title = $value;
- }
-
- /**
- * Set document author
- *
- * @param string $value sets the author
- *
- * @return void
- */
- public function setAuthor($value)
- {
- $this->author = $value;
- }
-
- /**
- * Set document font
- *
- * @param string $value sets the font e.g Arial, Sans-serif etc
- *
- * @return void
- */
- public function setFont($value)
- {
- $this->font = $value;
- }
-
- /**
- * Get document font
- *
- * @return string returns the font name
- */
- public function getFont()
- {
- return $this->font;
- }
-
- /**
- * Set document font size
- *
- * @param integer $value sets the font size in pixels
- *
- * @return void
- */
- public function setFontSize($value)
- {
- $this->fontSize = $value;
- }
-
- /**
- * Get document font size
- *
- * @return integer returns the font size
- */
- public function getFontSize()
- {
- return $this->fontSize;
- }
-
- /**
- * Starts RelationStatsSvg Document
- *
- * svg document starts by first initializing svg tag
- * which contains all the attributes and namespace that needed
- * to define the svg document
- *
- * @param integer $width total width of the RelationStatsSvg document
- * @param integer $height total height of the RelationStatsSvg document
- * @param integer $x min-x of the view box
- * @param integer $y min-y of the view box
- *
- * @return void
- *
- * @see XMLWriter::startElement(),XMLWriter::writeAttribute()
- */
- public function startSvgDoc($width, $height, $x = 0, $y = 0)
- {
- $this->startElement('svg');
-
- if (! is_int($width)) {
- $width = intval($width);
- }
-
- if (! is_int($height)) {
- $height = intval($height);
- }
-
- if ($x != 0 || $y != 0) {
- $this->writeAttribute('viewBox', "$x $y $width $height");
- }
- $this->writeAttribute('width', ($width - $x) . 'px');
- $this->writeAttribute('height', ($height - $y) . 'px');
- $this->writeAttribute('xmlns', 'http://www.w3.org/2000/svg');
- $this->writeAttribute('version', '1.1');
- }
-
- /**
- * Ends RelationStatsSvg Document
- *
- * @return void
- * @see XMLWriter::endElement(),XMLWriter::endDocument()
- */
- public function endSvgDoc()
- {
- $this->endElement();
- $this->endDocument();
- }
-
- /**
- * output RelationStatsSvg Document
- *
- * svg document prompted to the user for download
- * RelationStatsSvg document saved in .svg extension and can be
- * easily changeable by using any svg IDE
- *
- * @param string $fileName file name
- *
- * @return void
- * @see XMLWriter::startElement(),XMLWriter::writeAttribute()
- */
- public function showOutput($fileName)
- {
- //ob_get_clean();
- $output = $this->flush();
- Response::getInstance()->disable();
- Core::downloadHeader(
- $fileName,
- 'image/svg+xml',
- strlen($output)
- );
- print $output;
- }
-
- /**
- * Draws RelationStatsSvg elements
- *
- * SVG has some predefined shape elements like rectangle & text
- * and other elements who have x,y co-ordinates are drawn.
- * specify their width and height and can give styles too.
- *
- * @param string $name RelationStatsSvg element name
- * @param int $x The x attr defines the left position of the element
- * (e.g. x="0" places the element 0 pixels from the
- * left of the browser window)
- * @param integer $y The y attribute defines the top position of the
- * element (e.g. y="0" places the element 0 pixels
- * from the top of the browser window)
- * @param int|string $width The width attribute defines the width the element
- * @param int|string $height The height attribute defines the height the element
- * @param string|null $text The text attribute defines the text the element
- * @param string $styles The style attribute defines the style the element
- * styles can be defined like CSS styles
- *
- * @return void
- *
- * @see XMLWriter::startElement(), XMLWriter::writeAttribute(),
- * XMLWriter::text(), XMLWriter::endElement()
- */
- public function printElement(
- $name,
- $x,
- $y,
- $width = '',
- $height = '',
- ?string $text = '',
- $styles = ''
- ) {
- $this->startElement($name);
- $this->writeAttribute('width', (string) $width);
- $this->writeAttribute('height', (string) $height);
- $this->writeAttribute('x', (string) $x);
- $this->writeAttribute('y', (string) $y);
- $this->writeAttribute('style', (string) $styles);
- if (isset($text)) {
- $this->writeAttribute('font-family', (string) $this->font);
- $this->writeAttribute('font-size', $this->fontSize . 'px');
- $this->text($text);
- }
- $this->endElement();
- }
-
- /**
- * Draws RelationStatsSvg Line element
- *
- * RelationStatsSvg line element is drawn for connecting the tables.
- * arrows are also drawn by specify its start and ending
- * co-ordinates
- *
- * @param string $name RelationStatsSvg element name i.e line
- * @param integer $x1 Defines the start of the line on the x-axis
- * @param integer $y1 Defines the start of the line on the y-axis
- * @param integer $x2 Defines the end of the line on the x-axis
- * @param integer $y2 Defines the end of the line on the y-axis
- * @param string $styles The style attribute defines the style the element
- * styles can be defined like CSS styles
- *
- * @return void
- *
- * @see XMLWriter::startElement(), XMLWriter::writeAttribute(),
- * XMLWriter::endElement()
- */
- public function printElementLine($name, $x1, $y1, $x2, $y2, $styles)
- {
- $this->startElement($name);
- $this->writeAttribute('x1', $x1);
- $this->writeAttribute('y1', $y1);
- $this->writeAttribute('x2', $x2);
- $this->writeAttribute('y2', $y2);
- $this->writeAttribute('style', $styles);
- $this->endElement();
- }
-}