diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-07-27 10:05:23 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-07-27 10:05:23 +0200 |
| commit | 5bf66662a9bdd62c5bccab15e607cd95cfb8fcab (patch) | |
| tree | 39a1a4629749056191c05dfd899f931701b7acf3 /srcs/phpmyadmin/libraries/classes/Navigation/Navigation.php | |
| parent | 5afd237bbd22028b85532b8c0b3fcead49a00764 (diff) | |
| download | ft_server-master.tar.gz ft_server-master.tar.bz2 ft_server-master.zip | |
Removed wordpress and phpmyadmin, my server doesn't handle it well and it brings shame on my famillyHEADmaster
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Navigation/Navigation.php')
| -rw-r--r-- | srcs/phpmyadmin/libraries/classes/Navigation/Navigation.php | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Navigation/Navigation.php b/srcs/phpmyadmin/libraries/classes/Navigation/Navigation.php deleted file mode 100644 index 49d40df..0000000 --- a/srcs/phpmyadmin/libraries/classes/Navigation/Navigation.php +++ /dev/null @@ -1,280 +0,0 @@ -<?php -/* vim: set expandtab sw=4 ts=4 sts=4: */ -/** - * This class is responsible for instantiating - * the various components of the navigation panel - * - * @package PhpMyAdmin-navigation - */ -declare(strict_types=1); - -namespace PhpMyAdmin\Navigation; - -use PhpMyAdmin\Config\PageSettings; -use PhpMyAdmin\DatabaseInterface; -use PhpMyAdmin\Relation; -use PhpMyAdmin\Response; -use PhpMyAdmin\Sanitize; -use PhpMyAdmin\Server\Select; -use PhpMyAdmin\Template; -use PhpMyAdmin\Url; -use PhpMyAdmin\Util; - -/** - * The navigation panel - displays server, db and table selection tree - * - * @package PhpMyAdmin-Navigation - */ -class Navigation -{ - /** - * @var Template - */ - private $template; - - /** - * @var Relation - */ - private $relation; - - /** - * @var DatabaseInterface - */ - private $dbi; - - /** - * @var NavigationTree - */ - private $tree; - - /** - * Navigation constructor. - * @param Template $template Template instance - * @param Relation $relation Relation instance - * @param DatabaseInterface $dbi DatabaseInterface instance - */ - public function __construct($template, $relation, $dbi) - { - $this->template = $template; - $this->relation = $relation; - $this->dbi = $dbi; - $this->tree = new NavigationTree($this->template, $this->dbi); - } - - /** - * Renders the navigation tree, or part of it - * - * @return string The navigation tree - */ - public function getDisplay(): string - { - global $cfg; - - $logo = [ - 'is_displayed' => $cfg['NavigationDisplayLogo'], - 'has_link' => false, - 'link' => '#', - 'attributes' => ' target="_blank" rel="noopener noreferrer"', - 'source' => '', - ]; - - $response = Response::getInstance(); - if (! $response->isAjax()) { - $logo['source'] = $this->getLogoSource(); - $logo['has_link'] = (string) $cfg['NavigationLogoLink'] !== ''; - $logo['link'] = trim((string) $cfg['NavigationLogoLink']); - if (! Sanitize::checkLink($logo['link'], true)) { - $logo['link'] = 'index.php'; - } - if ($cfg['NavigationLogoLinkWindow'] === 'main') { - if (empty(parse_url($logo['link'], PHP_URL_HOST))) { - $hasStartChar = strpos($logo['link'], '?'); - $logo['link'] .= Url::getCommon( - [], - is_bool($hasStartChar) ? '?' : Url::getArgSeparator() - ); - } - $logo['attributes'] = ''; - } - - if ($cfg['NavigationDisplayServers'] && count($cfg['Servers']) > 1) { - $serverSelect = Select::render(true, true); - } - - if (! defined('PMA_DISABLE_NAVI_SETTINGS')) { - $navigationSettings = PageSettings::getNaviSettings(); - } - } - if (! $response->isAjax() - || ! empty($_POST['full']) - || ! empty($_POST['reload']) - ) { - if ($cfg['ShowDatabasesNavigationAsTree']) { - // provide database tree in navigation - $navRender = $this->tree->renderState(); - } else { - // provide legacy pre-4.0 navigation - $navRender = $this->tree->renderDbSelect(); - } - } else { - $navRender = $this->tree->renderPath(); - } - - return $this->template->render('navigation/main', [ - 'is_ajax' => $response->isAjax(), - 'logo' => $logo, - 'is_synced' => $cfg['NavigationLinkWithMainPanel'], - 'is_highlighted' => $cfg['NavigationTreePointerEnable'], - 'is_autoexpanded' => $cfg['NavigationTreeAutoexpandSingleDb'], - 'server' => $GLOBALS['server'], - 'auth_type' => $cfg['Server']['auth_type'], - 'is_servers_displayed' => $cfg['NavigationDisplayServers'], - 'servers' => $cfg['Servers'], - 'server_select' => $serverSelect ?? '', - 'navigation_tree' => $navRender, - 'is_navigation_settings_enabled' => ! defined('PMA_DISABLE_NAVI_SETTINGS'), - 'navigation_settings' => $navigationSettings ?? '', - 'is_drag_drop_import_enabled' => $cfg['enable_drag_drop_import'] === true, - ]); - } - - /** - * Add an item of navigation tree to the hidden items list in PMA database. - * - * @param string $itemName name of the navigation tree item - * @param string $itemType type of the navigation tree item - * @param string $dbName database name - * @param string $tableName table name if applicable - * - * @return void - */ - public function hideNavigationItem( - $itemName, - $itemType, - $dbName, - $tableName = null - ) { - $navTable = Util::backquote($GLOBALS['cfgRelation']['db']) - . "." . Util::backquote($GLOBALS['cfgRelation']['navigationhiding']); - $sqlQuery = "INSERT INTO " . $navTable - . "(`username`, `item_name`, `item_type`, `db_name`, `table_name`)" - . " VALUES (" - . "'" . $this->dbi->escapeString($GLOBALS['cfg']['Server']['user']) . "'," - . "'" . $this->dbi->escapeString($itemName) . "'," - . "'" . $this->dbi->escapeString($itemType) . "'," - . "'" . $this->dbi->escapeString($dbName) . "'," - . "'" . (! empty($tableName) ? $this->dbi->escapeString($tableName) : "" ) - . "')"; - $this->relation->queryAsControlUser($sqlQuery, false); - } - - /** - * Remove a hidden item of navigation tree from the - * list of hidden items in PMA database. - * - * @param string $itemName name of the navigation tree item - * @param string $itemType type of the navigation tree item - * @param string $dbName database name - * @param string $tableName table name if applicable - * - * @return void - */ - public function unhideNavigationItem( - $itemName, - $itemType, - $dbName, - $tableName = null - ) { - $navTable = Util::backquote($GLOBALS['cfgRelation']['db']) - . "." . Util::backquote($GLOBALS['cfgRelation']['navigationhiding']); - $sqlQuery = "DELETE FROM " . $navTable - . " WHERE" - . " `username`='" - . $this->dbi->escapeString($GLOBALS['cfg']['Server']['user']) . "'" - . " AND `item_name`='" . $this->dbi->escapeString($itemName) . "'" - . " AND `item_type`='" . $this->dbi->escapeString($itemType) . "'" - . " AND `db_name`='" . $this->dbi->escapeString($dbName) . "'" - . (! empty($tableName) - ? " AND `table_name`='" . $this->dbi->escapeString($tableName) . "'" - : "" - ); - $this->relation->queryAsControlUser($sqlQuery, false); - } - - /** - * Returns HTML for the dialog to show hidden navigation items. - * - * @param string $database database name - * @param string $itemType type of the items to include - * @param string $table table name - * - * @return string HTML for the dialog to show hidden navigation items - */ - public function getItemUnhideDialog($database, $itemType = null, $table = null) - { - $hidden = $this->getHiddenItems($database, $table); - - $typeMap = [ - 'group' => __('Groups:'), - 'event' => __('Events:'), - 'function' => __('Functions:'), - 'procedure' => __('Procedures:'), - 'table' => __('Tables:'), - 'view' => __('Views:'), - ]; - - return $this->template->render('navigation/item_unhide_dialog', [ - 'database' => $database, - 'table' => $table, - 'hidden' => $hidden, - 'types' => $typeMap, - 'item_type' => $itemType, - ]); - } - - /** - * @param string $database Database name - * @param string|null $table Table name - * @return array - */ - private function getHiddenItems(string $database, ?string $table): array - { - $navTable = Util::backquote($GLOBALS['cfgRelation']['db']) - . "." . Util::backquote($GLOBALS['cfgRelation']['navigationhiding']); - $sqlQuery = "SELECT `item_name`, `item_type` FROM " . $navTable - . " WHERE `username`='" - . $this->dbi->escapeString($GLOBALS['cfg']['Server']['user']) . "'" - . " AND `db_name`='" . $this->dbi->escapeString($database) . "'" - . " AND `table_name`='" - . (! empty($table) ? $this->dbi->escapeString($table) : '') . "'"; - $result = $this->relation->queryAsControlUser($sqlQuery, false); - - $hidden = []; - if ($result) { - while ($row = $this->dbi->fetchArray($result)) { - $type = $row['item_type']; - if (! isset($hidden[$type])) { - $hidden[$type] = []; - } - $hidden[$type][] = $row['item_name']; - } - } - $this->dbi->freeResult($result); - return $hidden; - } - - /** - * @return string Logo source - */ - private function getLogoSource(): string - { - global $pmaThemeImage; - - if (isset($pmaThemeImage) && @file_exists($pmaThemeImage . 'logo_left.png')) { - return $pmaThemeImage . 'logo_left.png'; - } elseif (isset($pmaThemeImage) && @file_exists($pmaThemeImage . 'pma_logo2.png')) { - return $pmaThemeImage . 'pma_logo2.png'; - } - return ''; - } -} |
