You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
<?php |
|
/** |
|
* Functionality for the navigation tree |
|
*/ |
|
|
|
declare(strict_types=1); |
|
|
|
namespace PhpMyAdmin\Navigation\Nodes; |
|
|
|
use PhpMyAdmin\Html\Generator; |
|
use PhpMyAdmin\Url; |
|
|
|
use function __; |
|
|
|
/** |
|
* Represents a node that is a child of a database node |
|
* This may either be a concrete child such as table or a container |
|
* such as table container |
|
*/ |
|
abstract class NodeDatabaseChild extends Node |
|
{ |
|
/** |
|
* Returns the type of the item represented by the node. |
|
* |
|
* @return string type of the item |
|
*/ |
|
abstract protected function getItemType(); |
|
|
|
/** |
|
* Returns HTML for control buttons displayed infront of a node |
|
* |
|
* @return string HTML for control buttons |
|
*/ |
|
public function getHtmlForControlButtons(): string |
|
{ |
|
$ret = ''; |
|
$relationParameters = $this->relation->getRelationParameters(); |
|
if ($relationParameters->navigationItemsHidingFeature !== null) { |
|
$db = $this->realParent()->realName; |
|
$item = $this->realName; |
|
|
|
$params = [ |
|
'hideNavItem' => true, |
|
'itemType' => $this->getItemType(), |
|
'itemName' => $item, |
|
'dbName' => $db, |
|
]; |
|
|
|
$ret = '<span class="navItemControls">' |
|
. '<a href="' . Url::getFromRoute('/navigation') . '" data-post="' |
|
. Url::getCommon($params, '', false) . '"' |
|
. ' class="hideNavItem ajax">' |
|
. Generator::getImage('hide', __('Hide')) |
|
. '</a></span>'; |
|
} |
|
|
|
return $ret; |
|
} |
|
}
|
|
|