aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Navigation/Nodes/NodeColumn.php
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/libraries/classes/Navigation/Nodes/NodeColumn.php
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Navigation/Nodes/NodeColumn.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Navigation/Nodes/NodeColumn.php116
1 files changed, 116 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Navigation/Nodes/NodeColumn.php b/srcs/phpmyadmin/libraries/classes/Navigation/Nodes/NodeColumn.php
new file mode 100644
index 0000000..9c9e605
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Navigation/Nodes/NodeColumn.php
@@ -0,0 +1,116 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Functionality for the navigation tree
+ *
+ * @package PhpMyAdmin-Navigation
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Navigation\Nodes;
+
+use PhpMyAdmin\Util;
+
+/**
+ * Represents a columns node in the navigation tree
+ *
+ * @package PhpMyAdmin-Navigation
+ */
+class NodeColumn extends Node
+{
+ /**
+ * Initialises the class
+ *
+ * @param array $item array to identify the column node
+ * @param int $type Type of node, may be one of CONTAINER or OBJECT
+ * @param bool $isGroup Whether this object has been created
+ * while grouping nodes
+ */
+ public function __construct($item, $type = Node::OBJECT, $isGroup = false)
+ {
+ $this->displayName = $this->getDisplayName($item);
+
+ parent::__construct($item['name'], $type, $isGroup);
+ $this->icon = Util::getImage($this->getColumnIcon($item['key']), __('Column'));
+ $this->links = [
+ 'text' => 'tbl_structure.php?server=' . $GLOBALS['server']
+ . '&amp;db=%3$s&amp;table=%2$s&amp;field=%1$s'
+ . '&amp;change_column=1',
+ 'icon' => 'tbl_structure.php?server=' . $GLOBALS['server']
+ . '&amp;db=%3$s&amp;table=%2$s&amp;field=%1$s'
+ . '&amp;change_column=1',
+ 'title' => __('Structure'),
+ ];
+ }
+
+ /**
+ * Get customized Icon for columns in navigation tree
+ *
+ * @param string $key The key type - (primary, foreign etc.)
+ *
+ * @return string Icon name for required key.
+ */
+ private function getColumnIcon($key)
+ {
+ switch ($key) {
+ case 'PRI':
+ $retval = 'b_primary';
+ break;
+ case 'UNI':
+ $retval = 'bd_primary';
+ break;
+ default:
+ $retval = 'pause';
+ break;
+ }
+ return $retval;
+ }
+
+ /**
+ * Get displayable name for navigation tree (key_type, data_type, default)
+ *
+ * @param array $item Item is array containing required info
+ *
+ * @return string Display name for navigation tree
+ */
+ private function getDisplayName($item)
+ {
+ $retval = $item['name'];
+ $flag = 0;
+ foreach ($item as $key => $value) {
+ if (! empty($value) && $key != 'name') {
+ $flag == 0 ? $retval .= ' (' : $retval .= ', ';
+ $flag = 1;
+ $retval .= $this->getTruncateValue($key, $value);
+ }
+ }
+ $retval .= ')';
+ return $retval;
+ }
+
+ /**
+ * Get truncated value for display in node column view
+ *
+ * @param string $key key to identify default,datatype etc
+ * @param string $value value corresponding to key
+ *
+ * @return string truncated value
+ */
+ public function getTruncateValue($key, $value)
+ {
+ $retval = '';
+
+ switch ($key) {
+ case 'default':
+ strlen($value) > 6 ?
+ $retval .= substr($value, 0, 6) . '...' :
+ $retval = $value;
+ break;
+ default:
+ $retval = $value;
+ break;
+ }
+
+ return $retval;
+ }
+}