Submit
Path:
~
/
/
opt
/
psa
/
phpMyAdmin
/
libraries
/
classes
/
Controllers
/
File Content:
NormalizationController.php
<?php declare(strict_types=1); namespace PhpMyAdmin\Controllers; use PhpMyAdmin\Core; use PhpMyAdmin\Normalization; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Url; use function __; use function _pgettext; use function in_array; use function intval; use function json_decode; use function json_encode; use function min; /** * Normalization process (temporarily specific to 1NF). */ class NormalizationController extends AbstractController { /** @var Normalization */ private $normalization; public function __construct(ResponseRenderer $response, Template $template, Normalization $normalization) { parent::__construct($response, $template); $this->normalization = $normalization; } public function __invoke(): void { global $db, $table; if (isset($_POST['getColumns'])) { $html = '<option selected disabled>' . __('Select oneā¦') . '</option>' . '<option value="no_such_col">' . __('No such column') . '</option>'; //get column whose datatype falls under string category $html .= $this->normalization->getHtmlForColumnsList( $db, $table, _pgettext('string types', 'String') ); echo $html; return; } if (isset($_POST['splitColumn'])) { $num_fields = min(4096, intval($_POST['numFields'])); $html = $this->normalization->getHtmlForCreateNewColumn($num_fields, $db, $table); $html .= Url::getHiddenInputs($db, $table); echo $html; return; } if (isset($_POST['addNewPrimary'])) { $num_fields = 1; $columnMeta = [ 'Field' => $table . '_id', 'Extra' => 'auto_increment', ]; $html = $this->normalization->getHtmlForCreateNewColumn($num_fields, $db, $table, $columnMeta); $html .= Url::getHiddenInputs($db, $table); echo $html; return; } if (isset($_POST['findPdl'])) { $html = $this->normalization->findPartialDependencies($table, $db); echo $html; return; } if (isset($_POST['getNewTables2NF'])) { $partialDependencies = json_decode($_POST['pd'], true); $html = $this->normalization->getHtmlForNewTables2NF($partialDependencies, $table); echo $html; return; } if (isset($_POST['getNewTables3NF'])) { $dependencies = json_decode($_POST['pd']); $tables = json_decode($_POST['tables'], true); $newTables = $this->normalization->getHtmlForNewTables3NF($dependencies, $tables, $db); $this->response->disable(); Core::headerJSON(); echo json_encode($newTables); return; } $this->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']); $normalForm = '1nf'; if (isset($_POST['normalizeTo']) && in_array($_POST['normalizeTo'], ['1nf', '2nf', '3nf'])) { $normalForm = $_POST['normalizeTo']; } if (isset($_POST['createNewTables2NF'])) { $partialDependencies = json_decode($_POST['pd'], true); $tablesName = json_decode($_POST['newTablesName']); $res = $this->normalization->createNewTablesFor2NF($partialDependencies, $tablesName, $table, $db); $this->response->addJSON($res); return; } if (isset($_POST['createNewTables3NF'])) { $newtables = json_decode($_POST['newTables'], true); $res = $this->normalization->createNewTablesFor3NF($newtables, $db); $this->response->addJSON($res); return; } if (isset($_POST['repeatingColumns'])) { $repeatingColumns = $_POST['repeatingColumns']; $newTable = $_POST['newTable']; $newColumn = $_POST['newColumn']; $primary_columns = $_POST['primary_columns']; $res = $this->normalization->moveRepeatingGroup( $repeatingColumns, $primary_columns, $newTable, $newColumn, $table, $db ); $this->response->addJSON($res); return; } if (isset($_POST['step1'])) { $html = $this->normalization->getHtmlFor1NFStep1($db, $table, $normalForm); $this->response->addHTML($html); } elseif (isset($_POST['step2'])) { $res = $this->normalization->getHtmlContentsFor1NFStep2($db, $table); $this->response->addJSON($res); } elseif (isset($_POST['step3'])) { $res = $this->normalization->getHtmlContentsFor1NFStep3($db, $table); $this->response->addJSON($res); } elseif (isset($_POST['step4'])) { $res = $this->normalization->getHtmlContentsFor1NFStep4($db, $table); $this->response->addJSON($res); } elseif (isset($_POST['step']) && $_POST['step'] == '2.1') { $res = $this->normalization->getHtmlFor2NFstep1($db, $table); $this->response->addJSON($res); } elseif (isset($_POST['step']) && $_POST['step'] == '3.1') { $tables = $_POST['tables']; $res = $this->normalization->getHtmlFor3NFstep1($db, $tables); $this->response->addJSON($res); } else { $this->response->addHTML($this->normalization->getHtmlForNormalizeTable()); } } }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
Config
---
0755
Database
---
0755
Export
---
0755
Import
---
0755
Preferences
---
0755
Server
---
0755
Setup
---
0755
Sql
---
0755
Table
---
0755
Transformation
---
0755
View
---
0755
AbstractController.php
2590 bytes
0644
BrowseForeignersController.php
2468 bytes
0644
ChangeLogController.php
3647 bytes
0644
CheckRelationsController.php
2301 bytes
0644
CollationConnectionController.php
809 bytes
0644
ColumnController.php
1064 bytes
0644
DatabaseController.php
275 bytes
0644
ErrorReportController.php
6198 bytes
0644
GisDataEditorController.php
5543 bytes
0644
GitInfoController.php
1220 bytes
0644
HomeController.php
17825 bytes
0644
JavaScriptMessagesController.php
37187 bytes
0644
LicenseController.php
940 bytes
0644
LintController.php
2035 bytes
0644
LogoutController.php
421 bytes
0644
NavigationController.php
3278 bytes
0644
NormalizationController.php
5669 bytes
0644
PhpInfoController.php
685 bytes
0644
RecentTablesListController.php
426 bytes
0644
SchemaExportController.php
667 bytes
0644
TableController.php
820 bytes
0644
ThemeSetController.php
1257 bytes
0644
ThemesController.php
772 bytes
0644
UserPasswordController.php
3379 bytes
0644
VersionCheckController.php
1224 bytes
0644
N4ST4R_ID | Naxtarrr