From 5bf66662a9bdd62c5bccab15e607cd95cfb8fcab Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Mon, 27 Jul 2020 10:05:23 +0200 Subject: Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my familly --- .../Plugins/Schema/Svg/RelationStatsSvg.php | 140 ---------- .../libraries/classes/Plugins/Schema/Svg/Svg.php | 281 -------------------- .../Plugins/Schema/Svg/SvgRelationSchema.php | 284 --------------------- .../classes/Plugins/Schema/Svg/TableStatsSvg.php | 204 --------------- 4 files changed, 909 deletions(-) delete mode 100644 srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/RelationStatsSvg.php delete mode 100644 srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/Svg.php delete mode 100644 srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/SvgRelationSchema.php delete mode 100644 srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/TableStatsSvg.php (limited to 'srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg') diff --git a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/RelationStatsSvg.php b/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/RelationStatsSvg.php deleted file mode 100644 index 2e323fc..0000000 --- a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/RelationStatsSvg.php +++ /dev/null @@ -1,140 +0,0 @@ -wTick = 10; - parent::__construct( - $diagram, - $master_table, - $master_field, - $foreign_table, - $foreign_field - ); - } - - /** - * draws relation links and arrows shows foreign key relations - * - * @param boolean $showColor Whether to use one color per relation or not - * - * @return void - * @access public - * - * @see PMA_SVG - */ - public function relationDraw($showColor) - { - if ($showColor) { - $listOfColors = [ - '#c00', - '#bbb', - '#333', - '#cb0', - '#0b0', - '#0bf', - '#b0b', - ]; - shuffle($listOfColors); - $color = $listOfColors[0]; - } else { - $color = '#333'; - } - - $this->diagram->printElementLine( - 'line', - $this->xSrc, - $this->ySrc, - $this->xSrc + $this->srcDir * $this->wTick, - $this->ySrc, - 'stroke:' . $color . ';stroke-width:1;' - ); - $this->diagram->printElementLine( - 'line', - $this->xDest + $this->destDir * $this->wTick, - $this->yDest, - $this->xDest, - $this->yDest, - 'stroke:' . $color . ';stroke-width:1;' - ); - $this->diagram->printElementLine( - 'line', - $this->xSrc + $this->srcDir * $this->wTick, - $this->ySrc, - $this->xDest + $this->destDir * $this->wTick, - $this->yDest, - 'stroke:' . $color . ';stroke-width:1;' - ); - $root2 = 2 * sqrt(2); - $this->diagram->printElementLine( - 'line', - $this->xSrc + $this->srcDir * $this->wTick * 0.75, - $this->ySrc, - $this->xSrc + $this->srcDir * (0.75 - 1 / $root2) * $this->wTick, - $this->ySrc + $this->wTick / $root2, - 'stroke:' . $color . ';stroke-width:2;' - ); - $this->diagram->printElementLine( - 'line', - $this->xSrc + $this->srcDir * $this->wTick * 0.75, - $this->ySrc, - $this->xSrc + $this->srcDir * (0.75 - 1 / $root2) * $this->wTick, - $this->ySrc - $this->wTick / $root2, - 'stroke:' . $color . ';stroke-width:2;' - ); - $this->diagram->printElementLine( - 'line', - $this->xDest + $this->destDir * $this->wTick / 2, - $this->yDest, - $this->xDest + $this->destDir * (0.5 + 1 / $root2) * $this->wTick, - $this->yDest + $this->wTick / $root2, - 'stroke:' . $color . ';stroke-width:2;' - ); - $this->diagram->printElementLine( - 'line', - $this->xDest + $this->destDir * $this->wTick / 2, - $this->yDest, - $this->xDest + $this->destDir * (0.5 + 1 / $root2) * $this->wTick, - $this->yDest - $this->wTick / $root2, - 'stroke:' . $color . ';stroke-width:2;' - ); - } -} 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 @@ -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(); - } -} diff --git a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/SvgRelationSchema.php b/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/SvgRelationSchema.php deleted file mode 100644 index 9a18b6e..0000000 --- a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/SvgRelationSchema.php +++ /dev/null @@ -1,284 +0,0 @@ -setShowColor(isset($_REQUEST['svg_show_color'])); - $this->setShowKeys(isset($_REQUEST['svg_show_keys'])); - $this->setTableDimension(isset($_REQUEST['svg_show_table_dimension'])); - $this->setAllTablesSameWidth(isset($_REQUEST['svg_all_tables_same_width'])); - - $this->diagram->setTitle( - sprintf( - __('Schema of the %s database - Page %s'), - $this->db, - $this->pageNumber - ) - ); - $this->diagram->SetAuthor('phpMyAdmin ' . PMA_VERSION); - $this->diagram->setFont('Arial'); - $this->diagram->setFontSize(16); - - $alltables = $this->getTablesFromRequest(); - - foreach ($alltables as $table) { - if (! isset($this->_tables[$table])) { - $this->_tables[$table] = new TableStatsSvg( - $this->diagram, - $this->db, - $table, - $this->diagram->getFont(), - $this->diagram->getFontSize(), - $this->pageNumber, - $this->_tablewidth, - $this->showKeys, - $this->tableDimension, - $this->offline - ); - } - - if ($this->sameWide) { - $this->_tables[$table]->width = &$this->_tablewidth; - } - $this->_setMinMax($this->_tables[$table]); - } - - $border = 15; - $this->diagram->startSvgDoc( - $this->_xMax + $border, - $this->_yMax + $border, - $this->_xMin - $border, - $this->_yMin - $border - ); - - $seen_a_relation = false; - foreach ($alltables as $one_table) { - $exist_rel = $this->relation->getForeigners($this->db, $one_table, '', 'both'); - if (! $exist_rel) { - continue; - } - - $seen_a_relation = true; - foreach ($exist_rel as $master_field => $rel) { - /* put the foreign table on the schema only if selected - * by the user - * (do not use array_search() because we would have to - * to do a === false and this is not PHP3 compatible) - */ - if ($master_field != 'foreign_keys_data') { - if (in_array($rel['foreign_table'], $alltables)) { - $this->_addRelation( - $one_table, - $this->diagram->getFont(), - $this->diagram->getFontSize(), - $master_field, - $rel['foreign_table'], - $rel['foreign_field'], - $this->tableDimension - ); - } - continue; - } - - foreach ($rel as $one_key) { - if (! in_array($one_key['ref_table_name'], $alltables)) { - continue; - } - - foreach ($one_key['index_list'] as $index => $one_field) { - $this->_addRelation( - $one_table, - $this->diagram->getFont(), - $this->diagram->getFontSize(), - $one_field, - $one_key['ref_table_name'], - $one_key['ref_index_list'][$index], - $this->tableDimension - ); - } - } - } - } - if ($seen_a_relation) { - $this->_drawRelations(); - } - - $this->_drawTables(); - $this->diagram->endSvgDoc(); - } - - /** - * Output RelationStatsSvg Document for download - * - * @return void - */ - public function showOutput() - { - $this->diagram->showOutput($this->getFileName('.svg')); - } - - /** - * Sets X and Y minimum and maximum for a table cell - * - * @param TableStatsSvg $table The table - * - * @return void - */ - private function _setMinMax($table) - { - $this->_xMax = max($this->_xMax, $table->x + $table->width); - $this->_yMax = max($this->_yMax, $table->y + $table->height); - $this->_xMin = min($this->_xMin, $table->x); - $this->_yMin = min($this->_yMin, $table->y); - } - - /** - * Defines relation objects - * - * @param string $masterTable The master table name - * @param string $font The font face - * @param int $fontSize Font size - * @param string $masterField The relation field in the master table - * @param string $foreignTable The foreign table name - * @param string $foreignField The relation field in the foreign table - * @param boolean $tableDimension Whether to display table position or not - * - * @return void - * - * @see _setMinMax,Table_Stats_Svg::__construct(), - * PhpMyAdmin\Plugins\Schema\Svg\RelationStatsSvg::__construct() - */ - private function _addRelation( - $masterTable, - $font, - $fontSize, - $masterField, - $foreignTable, - $foreignField, - $tableDimension - ) { - if (! isset($this->_tables[$masterTable])) { - $this->_tables[$masterTable] = new TableStatsSvg( - $this->diagram, - $this->db, - $masterTable, - $font, - $fontSize, - $this->pageNumber, - $this->_tablewidth, - false, - $tableDimension - ); - $this->_setMinMax($this->_tables[$masterTable]); - } - if (! isset($this->_tables[$foreignTable])) { - $this->_tables[$foreignTable] = new TableStatsSvg( - $this->diagram, - $this->db, - $foreignTable, - $font, - $fontSize, - $this->pageNumber, - $this->_tablewidth, - false, - $tableDimension - ); - $this->_setMinMax($this->_tables[$foreignTable]); - } - $this->_relations[] = new RelationStatsSvg( - $this->diagram, - $this->_tables[$masterTable], - $masterField, - $this->_tables[$foreignTable], - $foreignField - ); - } - - /** - * Draws relation arrows and lines - * connects master table's master field to - * foreign table's foreign field - * - * @return void - * - * @see Relation_Stats_Svg::relationDraw() - */ - private function _drawRelations() - { - foreach ($this->_relations as $relation) { - $relation->relationDraw($this->showColor); - } - } - - /** - * Draws tables - * - * @return void - * - * @see Table_Stats_Svg::Table_Stats_tableDraw() - */ - private function _drawTables() - { - foreach ($this->_tables as $table) { - $table->tableDraw($this->showColor); - } - } -} diff --git a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/TableStatsSvg.php b/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/TableStatsSvg.php deleted file mode 100644 index 13b1a82..0000000 --- a/srcs/phpmyadmin/libraries/classes/Plugins/Schema/Svg/TableStatsSvg.php +++ /dev/null @@ -1,204 +0,0 @@ -_setHeightTable($fontSize); - // setWidth must me after setHeight, because title - // can include table height which changes table width - $this->_setWidthTable($font, $fontSize); - if ($same_wide_width < $this->width) { - $same_wide_width = $this->width; - } - } - - /** - * Displays an error when the table cannot be found. - * - * @return void - */ - protected function showMissingTableError() - { - ExportRelationSchema::dieSchema( - $this->pageNumber, - "SVG", - sprintf(__('The %s table doesn\'t exist!'), $this->tableName) - ); - } - - /** - * Sets the width of the table - * - * @param string $font The font size - * @param integer $fontSize The font size - * - * @return void - * @access private - * - * @see PMA_SVG - */ - private function _setWidthTable($font, $fontSize) - { - foreach ($this->fields as $field) { - $this->width = max( - $this->width, - $this->font->getStringWidth($field, $font, $fontSize) - ); - } - $this->width += $this->font->getStringWidth(' ', $font, $fontSize); - - /* - * it is unknown what value must be added, because - * table title is affected by the table width value - */ - while ($this->width - < $this->font->getStringWidth($this->getTitle(), $font, $fontSize) - ) { - $this->width += 7; - } - } - - /** - * Sets the height of the table - * - * @param integer $fontSize font size - * - * @return void - */ - private function _setHeightTable($fontSize) - { - $this->heightCell = $fontSize + 4; - $this->height = (count($this->fields) + 1) * $this->heightCell; - } - - /** - * draw the table - * - * @param boolean $showColor Whether to display color - * - * @access public - * @return void - * - * @see PMA_SVG,PMA_SVG::printElement - */ - public function tableDraw($showColor) - { - $this->diagram->printElement( - 'rect', - $this->x, - $this->y, - $this->width, - $this->heightCell, - null, - 'fill:#007;stroke:black;' - ); - $this->diagram->printElement( - 'text', - $this->x + 5, - $this->y + 14, - $this->width, - $this->heightCell, - $this->getTitle(), - 'fill:#fff;' - ); - foreach ($this->fields as $field) { - $this->currentCell += $this->heightCell; - $fillColor = 'none'; - if ($showColor) { - if (in_array($field, $this->primary)) { - $fillColor = '#aea'; - } - if ($field == $this->displayfield) { - $fillColor = 'none'; - } - } - $this->diagram->printElement( - 'rect', - $this->x, - $this->y + $this->currentCell, - $this->width, - $this->heightCell, - null, - 'fill:' . $fillColor . ';stroke:black;' - ); - $this->diagram->printElement( - 'text', - $this->x + 5, - $this->y + 14 + $this->currentCell, - $this->width, - $this->heightCell, - $field, - 'fill:black;' - ); - } - } -} -- cgit