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:
30
plugins/edit-foreign.php
Normal file
30
plugins/edit-foreign.php
Normal 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>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user