From 503412367a1c3e04df7149e3826820e7cfd2f1e8 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Thu, 23 Jul 2009 15:49:59 +0000 Subject: [PATCH] Apply field name with functions git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@884 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- adminer/edit.inc.php | 4 ++-- adminer/include/adminer.inc.php | 7 +++---- adminer/select.inc.php | 16 ++++++++++------ editor/include/adminer.inc.php | 4 ++-- examples/editor-cds/index.php | 4 ++-- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/adminer/edit.inc.php b/adminer/edit.inc.php index 157d5c5c..22ee2d86 100644 --- a/adminer/edit.inc.php +++ b/adminer/edit.inc.php @@ -3,7 +3,7 @@ $where = (isset($_GET["select"]) ? (count($_POST["check"]) == 1 ? where_check($_ $update = ($where && !$_POST["clone"]); $fields = fields($_GET["edit"]); foreach ($fields as $name => $field) { - if ((isset($_GET["default"]) ? $field["auto_increment"] || ereg('text|blob', $field["type"]) : !isset($field["privileges"][$update ? "update" : "insert"])) || !strlen(adminer_field_name($fields, $name))) { + if ((isset($_GET["default"]) ? $field["auto_increment"] || ereg('text|blob', $field["type"]) : !isset($field["privileges"][$update ? "update" : "insert"])) || !strlen(adminer_field_name($field))) { unset($fields[$name]); } } @@ -73,7 +73,7 @@ if ($fields) { unset($create); echo "\n"; foreach ($fields as $name => $field) { - echo "
" . adminer_field_name($fields, $name); + echo "
" . adminer_field_name($field); $value = (isset($row) ? (strlen($row[$name]) && ($field["type"] == "enum" || $field["type"] == "set") ? intval($row[$name]) : $row[$name]) : ($_POST["clone"] && $field["auto_increment"] ? "" : (isset($_GET["select"]) ? false : $field["default"])) diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index d5814d44..9a0f08b1 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -55,12 +55,11 @@ function adminer_table_name($row) { } /** Field caption used in select and edit -* @param array all fields in table, result of fields() -* @param string column identifier, function calls are not contained in $fields +* @param array single field returned from fields() * @return string */ -function adminer_field_name($fields, $key) { - return call_adminer('field_name', '' . htmlspecialchars($key) . '', $fields, $key); +function adminer_field_name($field) { + return call_adminer('field_name', ($field ? '' . htmlspecialchars($field["field"]) . '' : "*"), $field); } /** Links after select heading diff --git a/adminer/select.inc.php b/adminer/select.inc.php index 745f7009..153188c9 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -18,7 +18,7 @@ $rights = array(); // privilege => 0 $columns = array(); // selectable columns unset($text_length); foreach ($fields as $key => $field) { - $name = adminer_field_name($fields, $key); + $name = adminer_field_name($field); if (isset($field["privileges"]["select"]) && strlen($name)) { $columns[$key] = html_entity_decode(strip_tags($name)); if (ereg('text|blob', $field["type"])) { @@ -288,21 +288,25 @@ if (!$columns) { echo "\n"; echo "\n"; foreach ($descriptions as $n => $row) { $unique_idf = implode('&', unique_idf($row, $indexes)); //! don't use aggregation functions echo '
"; + $names = array(); + reset($select); foreach ($rows[0] as $key => $val) { - $name = adminer_field_name($fields, $key); + $val = $_GET["columns"][key($select)]; + $name = adminer_field_name($fields[$select ? $val["col"] : $key]); if (strlen($name)) { - echo '$name"; + $names[$key] = $name; + echo '' . ($val["fun"] ? strtoupper($val["fun"]) . " $name" : $name) . ""; } + next($select); } echo ($backward_keys ? "" . lang('Relations') : "") . "
' . (count($select) != count($group) || information_schema($_GET["db"]) ? '' : ' ' . lang('edit') . ''); foreach ($row as $key => $val) { - $name = adminer_field_name($fields, $key); - if (strlen($name)) { + if (strlen($names[$key])) { if (strlen($val) && (!isset($email_fields[$key]) || strlen($email_fields[$key]))) { - $email_fields[$key] = (is_email($val) ? $name : ""); //! filled e-mails may be contained on other pages + $email_fields[$key] = (is_email($val) ? $names[$key] : ""); //! filled e-mails may be contained on other pages } $link = ""; if (!isset($val)) { diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php index 3e33d18c..27f75fe2 100644 --- a/editor/include/adminer.inc.php +++ b/editor/include/adminer.inc.php @@ -32,8 +32,8 @@ function adminer_table_name($row) { return call_adminer('table_name', htmlspecialchars(strlen($row["Comment"]) ? $row["Comment"] : $row["Name"]), $row); } -function adminer_field_name($fields, $key) { - return call_adminer('field_name', htmlspecialchars(strlen($fields[$key]["comment"]) ? $fields[$key]["comment"] : $key), $fields, $key); +function adminer_field_name($field) { + return call_adminer('field_name', ($field ? htmlspecialchars(strlen($field["comment"]) ? $field["comment"] : $field["field"]) : "*"), $field); } function adminer_select_links($table_status) { diff --git a/examples/editor-cds/index.php b/examples/editor-cds/index.php index 5a777e3f..0f9c1002 100644 --- a/examples/editor-cds/index.php +++ b/examples/editor-cds/index.php @@ -32,9 +32,9 @@ class Adminer { return htmlspecialchars($row["Comment"]); } - function field_name($fields, $key) { + function field_name($field) { // fields without comments will be ignored - return htmlspecialchars($fields[$key]["comment"]); + return ($field ? htmlspecialchars($field["comment"]) : "*"); } }