6 private function action_url($url) {
7 $sep = (strpos((
string)$url,
'?') ===
false) ?
'?' :
'&';
8 return $url . $sep .
'dbx_token=' . rawurlencode(
dbx()->action_token(
'dbxAdmin.missing'));
11 private function check_action_token($work, $oReport) {
12 if (!$work)
return true;
13 $token =
dbx()->get_modul_var(
'dbx_token',
'',
'varchar|max=128');
14 if (
dbx()->check_action_token(
'dbxAdmin.missing', $token))
return true;
15 $oReport->_msg_err =
'Aktion abgelehnt: Sicherheits-Token fehlt oder ist ungueltig.';
16 dbx()->sys_msg(
'security',
'dbxAdmin',
dbx()->user(),
'invalid admin missing action token',
$_SERVER[
'REQUEST_URI'] ??
'');
20 private function delete_table_action():
string {
21 return '<a class="btn btn-sm btn-outline-danger dbxAjax dbxConfirm"'
22 .
' href="' .
dbx()->esc($this->action_url(
'?dbx_modul=dbxAdmin&dbx_run1=missing&dbx_run2=list_missing&dbx_do=delete_tab')) .
'"'
23 .
' title="Missing-Eintraege leeren"'
24 .
' data-confirm-title="<i class=\'bi bi-trash3\'></i> Missing-Eintraege leeren"'
25 .
' data-confirm="Alle Missing-Eintraege wirklich loeschen?"'
26 .
' data-confirm-hint="<small>Die Tabelle dbxMissing wird komplett geleert. Dieser Vorgang kann nicht rueckgaengig gemacht werden.</small>"'
27 .
' data-confirm-buttons="yesno"'
28 .
' role="button"><i class="bi bi-trash3"></i></a>';
31 private function report_missing() {
35 $db =
dbx()->get_system_obj(
'dbxDB');
36 $oReport =
dbx()->get_system_obj(
'dbxReport');
37 $oReport->init(
'report-missing');
39 $oReport->add_rep(
'bar_actions', $this->delete_table_action());
41 $work =
dbx()->get_modul_var(
'dbx_do',
'',
'parameter');
42 $rid =
dbx()->get_modul_var(
'rid', 0,
'int');
43 $actionAllowed = $this->check_action_token($work, $oReport);
45 if ($actionAllowed && $work ==
'row_delete' && $rid) {
46 $ok = $oReport->del_selected($rid);
47 $ok =
$db->delete($dd, $rid);
49 if ( $ok) $oReport->_msg_success =
'Zeile geloescht';
50 if (!$ok) $oReport->_msg_err =
'Zeile konnte nicht geloescht werden';
53 if ($actionAllowed && $work ==
'multi_delete') {
54 $result = $oReport->delete_multi_selected_records($dd);
55 $oReport->apply_multi_delete_result(
$result);
58 if ($actionAllowed && $work ==
'delete_tab') {
59 $ok =
$db->delete_tab($dd);
60 dbx()->debug(
"##delete tab dd=($dd) ok=($ok)");
61 if ( $ok) $oReport->_msg_success =
'Datenbank-Tabelle geleert';
62 if (!$ok) $oReport->_msg_err =
'Datenbank-Tabelle konnte nicht geleert werden';
66 $flds[
'create_date'] =
'Create';
67 $flds[
'update_date'] =
'Update';
68 $flds[
'count'] =
'Count';
69 $flds[
'missing'] =
'Missing';
71 $rformat[
'create_date'] =
'php-datetime-usr';
72 $rformat[
'update_date'] =
'php-datetime-usr';
73 $oReport->_rpt_format = $rformat;
75 $oReport->_action =
'?dbx_modul=dbxAdmin&dbx_run1=missing&dbx_run2=list_missing';
76 $oReport->_action = $this->action_url($oReport->_action);
77 $oReport->_pages =
true;
78 $oReport->_create_row_select =
true;
79 $oReport->_create_row_edit =
false;
80 $oReport->_create_row_delete =
true;
81 $oReport->_create_sel_flds =
true;
82 $oReport->_but_pagination = 5;
84 $oReport->enable_delete_tab($dd);
86 $oReport->add_action(
'rows_delete' ,
'action_button_delete' ,
'&dbx_do=multi_delete');
88 $oReport->create_selection_fields(
'dbxAdmin|rpt-missing-selection');
90 if ($work !=
'delete_tab' && $work !=
'multi_delete' && $work !=
'row_delete' && $oReport->submit()) {
91 if (!$oReport->errors()) {
92 $oReport->_msg_success =
'';
94 $oReport->_msg_err =
'Pruefen sie bitte ihre Eingaben';
98 $rwhere = $oReport->get_fld_val(
'dbx_rwhere' ,
'' ,
'sqlsearch|max=64');
99 $rrows = $oReport->get_fld_val(
'dbx_rrows' , 15 ,
'int');
100 $rpos = $oReport->get_fld_val(
'dbx_rpos' , 0 ,
'int');
101 $rsort = $oReport->get_fld_val(
'dbx_rsort' ,
'update_date',
'parameter');
102 $rdesc = $oReport->get_fld_val(
'dbx_rdesc' ,
'DESC' ,
'parameter');
103 $select = $oReport->get_fld_val(
'dbx_rselect', 0 ,
'int');
110 'like' => array(
'missing'),
111 'mode' =>
'starts_with',
117 if (is_array($rwhere)) {
118 $rwhere =
$db->normalize_where($dd, $rwhere);
121 $rwhere = $oReport->add_rwhere_select($rwhere);
124 $oReport->_rflds = $flds;
125 $oReport->_rrows = $rrows;
126 $oReport->_rpos = $rpos;
127 $oReport->_count_all =
$db->count($dd);
128 $oReport->_rcount =
$db->count($dd, $rwhere);
129 $oReport->_rdata =
$db->select($dd, $rwhere, $flds, $rsort, $rdesc, $rgroup, $rrows, $rpos);
131 $content = $oReport->run();
137 return $this->report_missing();
if(! $db->connect_db_server($server)) $result