12 public function run(): string
14 dbx()->get_include_obj(
'dbxInstallationService',
'dbxSetup');
18 $db =
dbx()->get_system_obj(
'dbxDB');
20 $bindings = is_array(
$config[
'dd_server_bindings'] ??
null)
24 $serverOptions = array();
25 foreach ((array)(
$config[
'db'] ?? array()) as $name => $serverConfig) {
26 if (is_array($serverConfig)
27 &&
$db->db_server_config_is_active((
string)$name, $serverConfig)
29 $type = strtoupper((
string)($serverConfig[
'type'] ??
'DB'));
30 $serverOptions[(string)$name] = (
string)$name .
' · ' . $type;
34 $form =
dbx()->get_system_obj(
'dbxForm');
35 $form->init(
'admin-dd-server-bindings',
'dd-server-bindings');
36 $form->_fd =
'dbxAdmin|dd-server-bindings';
37 $form->load_fd_messages();
38 $form->_action =
'?dbx_modul=dbxAdmin&dbx_run1=dd_bindings&dbx_page=admin';
39 $form->_msg_info =
$form->get_fd_message(
'intro');
40 $form->_data = array_merge(
$form->_data, array(
'binding_save' => 1));
41 $form->add_fld(
'binding_save',
'dbx|hidden', rules:
'int', dd:
'');
44 $allowedValues = array();
46 $ddRef = (string)$record[
'dd'];
47 $info =
$db->get_dd_server_binding_info($ddRef);
48 $declared = (string)($info[
'declared_server'] ??
'');
49 $field =
'binding_' . substr(hash(
'sha256', $ddRef), 0, 16);
53 '__default__' =>
$form->format_fd_message(
55 array(
'server' => $declared)
58 if ($declared !==
'' && !isset(
$options[$declared])) {
59 $options[$declared] = $declared .
' · DB3/DD';
61 $current = (string)($bindings[$ddRef] ??
'__default__');
62 if ($current !==
'__default__' && !isset(
$options[$current])) {
63 $options[$current] = $current .
' · ' .
$form->get_fd_message(
'custom_binding');
65 $allowedValues[
$field] = array_fill_keys(array_keys(
$options),
true);
70 'select-single-label',
74 tooltip:
$form->format_fd_message(
77 'table' => (
string)
$db->get_dd_table($ddRef),
78 'server' => $declared,
86 $newBindings = array();
93 if (
$value ===
'__default__') {
99 $form->get_fd_message(
'binding_invalid')
103 $newBindings[$ddRef] =
$value;
107 if (!
$form->errors()) {
110 'dd_server_bindings',
113 $form->set_error(
$form->get_fd_message(
'save_error'));
115 $form->_msg_success =
$form->format_fd_message(
116 'save_success_count',
117 array(
'count' => count($newBindings))
119 $bindings = $newBindings;
125 'bar_title' =>
$form->get_fd_message(
'bar_title'),
126 'bar_subtitle' =>
$form->get_fd_message(
'bar_subtitle'),
127 'bar_icon' =>
'bi-database-gear',
129 'bar_class' =>
'dbx-module-bar',
130 'bar_title_class' =>
'dbx-module-bar-titleblock',
131 'bar_title_pre' =>
'',
132 'bar_title_heading_attrs' =>
'',
135 'bar_actions_class' =>
'dbx-module-bar-actions',
139 $form->add_rep(
'save_label',
$form->get_fd_message(
'save_label'));
140 $form->add_rep(
'binding_count', (
string)count($bindings));
142 'binding_count_label',
143 $form->get_fd_message(
'binding_count_label')
146 $form->add_rep(
'dd_count_label',
$form->get_fd_message(
'dd_count_label'));