1
0
mirror of https://github.com/vrana/adminer.git synced 2025-08-07 23:27:17 +02:00

Edit foreign plugin

This commit is contained in:
Jakub Vrana
2011-06-23 22:08:08 +02:00
parent f8ae1d6360
commit 08e70e6309
3 changed files with 36 additions and 5 deletions

30
plugins/edit-foreign.php Normal file
View File

@@ -0,0 +1,30 @@
<?php
/** Select foreign key in edit form
* @author Jakub Vrana, http://www.vrana.cz/
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
*/
class AdminerEditForeign {
function editInput($table, $field, $attrs, $value) {
static $foreignTables = array();
static $values = array();
$foreignKeys = &$foreignTables[$table];
if (!isset($foreignKeys)) {
$foreignKeys = column_foreign_keys($table);
}
foreach ((array) $foreignKeys[$field["field"]] as $foreignKey) {
if (count($foreignKey["source"]) == 1) {
$target = $foreignKey["table"];
$id = $foreignKey["target"][0];
$options = &$values[$target][$id];
if (!$options) {
$options = array("" => "") + get_vals("SELECT " . idf_escape($id) . " FROM " . table($target) . " ORDER BY 1");
}
return "<select$attrs>" . optionlist($options, $value) . "</select>";
}
}
}
}