mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 08:14:38 +02:00
#12137 visual refactoring for main agent view
This commit is contained in:
parent
b0d12c8a18
commit
340288d785
@ -4738,7 +4738,7 @@ function get_resume_agent_concat($id_agente, $all_groups, $agent)
|
|||||||
$secondary_groups = enterprise_hook('agents_get_secondary_groups', [$id_agente]);
|
$secondary_groups = enterprise_hook('agents_get_secondary_groups', [$id_agente]);
|
||||||
$secondaryLinks = [];
|
$secondaryLinks = [];
|
||||||
if (empty($secondary_groups['for_select']) === true) {
|
if (empty($secondary_groups['for_select']) === true) {
|
||||||
$secondaryLinks[] = '<em>'.__('N/A').'</em>';
|
$secondaryLinks = [];
|
||||||
} else {
|
} else {
|
||||||
foreach ($secondary_groups['for_select'] as $id => $name) {
|
foreach ($secondary_groups['for_select'] as $id => $name) {
|
||||||
$secondaryLinks[] = html_print_anchor(
|
$secondaryLinks[] = html_print_anchor(
|
||||||
@ -4797,22 +4797,22 @@ function get_resume_agent_concat($id_agente, $all_groups, $agent)
|
|||||||
'content' => groups_get_name($agent['id_grupo']),
|
'content' => groups_get_name($agent['id_grupo']),
|
||||||
],
|
],
|
||||||
true
|
true
|
||||||
);
|
).' '.ui_print_group_icon($agent['id_grupo'], true, '', '', true, false, false, '', true);
|
||||||
$table_contact->data[] = $data;
|
$table_contact->data[] = $data;
|
||||||
|
|
||||||
// Secondary groups.
|
// Secondary groups.
|
||||||
$data = [];
|
$data = [];
|
||||||
|
if (!empty($secondaryLinks) === true) {
|
||||||
$data[0] = '<b>'.__('Secondary groups').'</b>';
|
$data[0] = '<b>'.__('Secondary groups').'</b>';
|
||||||
$data[1] = implode(', ', $secondaryLinks);
|
$data[1] = implode(', ', $secondaryLinks);
|
||||||
$table_contact->data[] = $data;
|
$table_contact->data[] = $data;
|
||||||
|
}
|
||||||
|
|
||||||
// Parent agent line.
|
// Parent agent line.
|
||||||
if (enterprise_installed() === true) {
|
if (enterprise_installed() === true) {
|
||||||
|
if ((int) $agent['id_parent'] !== 0) {
|
||||||
$data = [];
|
$data = [];
|
||||||
$data[0] = '<b>'.__('Parent').'</b>';
|
$data[0] = '<b>'.__('Parent').'</b>';
|
||||||
if ((int) $agent['id_parent'] === 0) {
|
|
||||||
$data[1] = '<em>'.__('N/A').'</em>';
|
|
||||||
} else {
|
|
||||||
$data[1] = html_print_anchor(
|
$data[1] = html_print_anchor(
|
||||||
[
|
[
|
||||||
'href' => 'index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_parent'],
|
'href' => 'index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_parent'],
|
||||||
@ -4820,10 +4820,10 @@ function get_resume_agent_concat($id_agente, $all_groups, $agent)
|
|||||||
],
|
],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
$table_contact->data[] = $data;
|
$table_contact->data[] = $data;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Last status change line.
|
// Last status change line.
|
||||||
$data = [];
|
$data = [];
|
||||||
@ -4831,6 +4831,81 @@ function get_resume_agent_concat($id_agente, $all_groups, $agent)
|
|||||||
$data[1] = $time_elapsed;
|
$data[1] = $time_elapsed;
|
||||||
$table_contact->data[] = $data;
|
$table_contact->data[] = $data;
|
||||||
|
|
||||||
|
$has_remote_conf = enterprise_hook(
|
||||||
|
'config_agents_has_remote_configuration',
|
||||||
|
[$agent['id_agente']]
|
||||||
|
);
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
if ((bool) $has_remote_conf) {
|
||||||
|
$data[0] = __('Remote configuration');
|
||||||
|
$data[1] = '<spam style="position: relative;top: -10%; margin-right: 10px;">'.__('Enabled').'</spam>';
|
||||||
|
$data[1] .= html_print_menu_button(
|
||||||
|
[
|
||||||
|
'href' => ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=remote_configuration&id_agente='.$agent['id_agente'].'&disk_conf=1'),
|
||||||
|
'image' => 'images/remote-configuration@svg.svg',
|
||||||
|
'title' => __('Edit remote config'),
|
||||||
|
],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$satellite_server = (int) db_get_value_filter(
|
||||||
|
'satellite_server',
|
||||||
|
'tagente',
|
||||||
|
['id_agente' => $id_agente]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (empty($satellite_server) === false) {
|
||||||
|
$satellite_name = db_get_value_filter(
|
||||||
|
'name',
|
||||||
|
'tserver',
|
||||||
|
['id_server' => $satellite_server]
|
||||||
|
);
|
||||||
|
|
||||||
|
$data[0] = __('Satellite server');
|
||||||
|
$data[1] = $satellite_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$table_contact->data[] = $data;
|
||||||
|
|
||||||
|
// Optional data
|
||||||
|
// Position Information.
|
||||||
|
if ((bool) $config['activate_gis'] === true) {
|
||||||
|
$data = [];
|
||||||
|
|
||||||
|
$dataPositionAgent = gis_get_data_last_position_agent(
|
||||||
|
$agent['id_agente']
|
||||||
|
);
|
||||||
|
if (is_array($dataPositionAgent) === true && $dataPositionAgent['stored_longitude'] !== '' && $dataPositionAgent['stored_latitude'] !== '') {
|
||||||
|
$data[0] = __('Position (Long, Lat)');
|
||||||
|
|
||||||
|
$dataOptionalOutput = html_print_anchor(
|
||||||
|
[
|
||||||
|
'href' => 'index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=gis&id_agente='.$id_agente,
|
||||||
|
'content' => $dataPositionAgent['stored_longitude'].', '.$dataPositionAgent['stored_latitude'],
|
||||||
|
],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
if (empty($dataPositionAgent['description']) === false) {
|
||||||
|
$dataOptionalOutput .= ' ('.$dataPositionAgent['description'].')';
|
||||||
|
}
|
||||||
|
|
||||||
|
$data[1] = $dataOptionalOutput;
|
||||||
|
}
|
||||||
|
|
||||||
|
$table_contact->data[] = $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Timezone Offset.
|
||||||
|
if ((int) $agent['timezone_offset'] !== 0) {
|
||||||
|
$data = [];
|
||||||
|
$data[0] = __('Timezone Offset');
|
||||||
|
$data[1] = $agent['timezone_offset'];
|
||||||
|
$table_contact->data[] = $data;
|
||||||
|
}
|
||||||
|
|
||||||
$agent_contact = html_print_div(
|
$agent_contact = html_print_div(
|
||||||
[
|
[
|
||||||
'class' => 'agent_details_header',
|
'class' => 'agent_details_header',
|
||||||
|
@ -13503,38 +13503,47 @@ function reporting_tiny_stats(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($modern === true) {
|
if ($modern === true) {
|
||||||
$out .= '<div id="bullets_modules">';
|
|
||||||
if (isset($fired_count) && $fired_count > 0) {
|
if (isset($fired_count) && $fired_count > 0) {
|
||||||
|
$out .= '<div class="bullets_modules">';
|
||||||
$out .= '<div><div id="fired_count_'.$uniq_id.'" class="forced_title bullet_modules orange_background"></div>';
|
$out .= '<div><div id="fired_count_'.$uniq_id.'" class="forced_title bullet_modules orange_background"></div>';
|
||||||
$out .= '<span class="font_12pt">'.$fired_count.'</span></div>';
|
$out .= '<span class="font_12pt">'.$fired_count.'</span></div>';
|
||||||
|
$out .= '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($critical_count) && $critical_count > 0) {
|
if (isset($critical_count) && $critical_count > 0) {
|
||||||
|
$out .= '<div class="bullets_modules">';
|
||||||
$out .= '<div><div id="critical_count_'.$uniq_id.'" class="forced_title bullet_modules red_background"></div>';
|
$out .= '<div><div id="critical_count_'.$uniq_id.'" class="forced_title bullet_modules red_background"></div>';
|
||||||
$out .= '<span class="font_12pt">'.$critical_count.'</span></div>';
|
$out .= '<span class="font_12pt">'.$critical_count.'</span></div>';
|
||||||
|
$out .= '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($warning_count) && $warning_count > 0) {
|
if (isset($warning_count) && $warning_count > 0) {
|
||||||
|
$out .= '<div class="bullets_modules">';
|
||||||
$out .= '<div><div id="warning_count_'.$uniq_id.'" class="forced_title bullet_modules yellow_background"></div>';
|
$out .= '<div><div id="warning_count_'.$uniq_id.'" class="forced_title bullet_modules yellow_background"></div>';
|
||||||
$out .= '<span class="font_12pt">'.$warning_count.'</span></div>';
|
$out .= '<span class="font_12pt">'.$warning_count.'</span></div>';
|
||||||
|
$out .= '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($unknown_count) && $unknown_count > 0) {
|
if (isset($unknown_count) && $unknown_count > 0) {
|
||||||
|
$out .= '<div class="bullets_modules">';
|
||||||
$out .= '<div><div id="unknown_count_'.$uniq_id.'" class="forced_title bullet_modules grey_background"></div>';
|
$out .= '<div><div id="unknown_count_'.$uniq_id.'" class="forced_title bullet_modules grey_background"></div>';
|
||||||
$out .= '<span class="font_12pt">'.$unknown_count.'</span></div>';
|
$out .= '<span class="font_12pt">'.$unknown_count.'</span></div>';
|
||||||
|
$out .= '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($not_init_count) && $not_init_count > 0) {
|
if (isset($not_init_count) && $not_init_count > 0) {
|
||||||
|
$out .= '<div class="bullets_modules">';
|
||||||
$out .= '<div><div id="not_init_count_'.$uniq_id.'" class="forced_title bullet_modules blue_background"></div>';
|
$out .= '<div><div id="not_init_count_'.$uniq_id.'" class="forced_title bullet_modules blue_background"></div>';
|
||||||
$out .= '<span class="font_12pt">'.$not_init_count.'</span></div>';
|
$out .= '<span class="font_12pt">'.$not_init_count.'</span></div>';
|
||||||
|
$out .= '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($normal_count) && $normal_count > 0) {
|
if (isset($normal_count) && $normal_count > 0) {
|
||||||
|
$out .= '<div class="bullets_modules">';
|
||||||
$out .= '<div><div id="normal_count_'.$uniq_id.'" class="forced_title bullet_modules green_background"></div>';
|
$out .= '<div><div id="normal_count_'.$uniq_id.'" class="forced_title bullet_modules green_background"></div>';
|
||||||
$out .= '<span class="font_12pt">'.$normal_count.'</span></div>';
|
$out .= '<span class="font_12pt">'.$normal_count.'</span></div>';
|
||||||
}
|
|
||||||
|
|
||||||
$out .= '</div>';
|
$out .= '</div>';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Classic ones.
|
// Classic ones.
|
||||||
$out .= '<b><span id="total_count_'.$uniq_id.'" class="forced_title" >'.$total_count.'</span>';
|
$out .= '<b><span id="total_count_'.$uniq_id.'" class="forced_title" >'.$total_count.'</span>';
|
||||||
|
@ -6,6 +6,10 @@ div#bullets_modules span {
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.bullets_modules span {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
div.agent_details_agent_caption {
|
div.agent_details_agent_caption {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
@ -6037,18 +6037,18 @@ div.switch_radio_button label:last-of-type {
|
|||||||
margin-top: -2px;
|
margin-top: -2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
div#bullets_modules {
|
|
||||||
display: flex;
|
|
||||||
margin-left: 2em;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
div#bullets_modules div {
|
div#bullets_modules div {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.bullets_modules div {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin: 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
.orange_background {
|
.orange_background {
|
||||||
background: #ffa631;
|
background: #ffa631;
|
||||||
}
|
}
|
||||||
@ -6309,6 +6309,7 @@ div#status_pie {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.agent_details_agent_data {
|
.agent_details_agent_data {
|
||||||
@ -6338,23 +6339,45 @@ div#status_pie {
|
|||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.agent_details_bullets .bullets_modules {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
.agent_details_bullets_cluster #bullets_modules {
|
.agent_details_bullets_cluster #bullets_modules {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.agent_details_bullets_cluster .bullets_modules {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
.agent_details_bullets_cluster #bullets_modules > div {
|
.agent_details_bullets_cluster #bullets_modules > div {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.agent_details_bullets_cluster .bullets_modules > div {
|
||||||
|
padding: 0px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.agent_details_bullets #bullets_modules > div {
|
.agent_details_bullets #bullets_modules > div {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding-bottom: 20px;
|
padding-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.agent_details_bullets .bullets_modules > div {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
#agent_contact_main tr td img {
|
#agent_contact_main tr td img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
@ -6406,6 +6429,11 @@ div#status_pie {
|
|||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.white_table_graph_header div.bullets_modules {
|
||||||
|
display: flex;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
.white_table_graph_header img,
|
.white_table_graph_header img,
|
||||||
.white_table_graph_header span {
|
.white_table_graph_header span {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
@ -124,8 +124,15 @@ foreach ($addresses as $k => $add) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (empty($address) === false) {
|
if (empty($address) === false) {
|
||||||
|
$address_text = '<span class="bolder" >'.$address.'</span>';
|
||||||
|
if (!empty($addresses) === true) {
|
||||||
|
foreach ($addresses as $sec_address) {
|
||||||
|
$address_text .= '<br/><span class="italic">'.$sec_address.'</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$table_status->data['ip_address'][0] = __('IP address');
|
$table_status->data['ip_address'][0] = __('IP address');
|
||||||
$table_status->data['ip_address'][1] = (empty($address) === true) ? '<em>'.__('N/A').'</em>' : $address;
|
$table_status->data['ip_address'][1] = (empty($address) === true) ? '<em>'.__('N/A').'</em>' : $address_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
$table_status->data['agent_version'][0] = __('Agent Version');
|
$table_status->data['agent_version'][0] = __('Agent Version');
|
||||||
@ -134,34 +141,6 @@ $table_status->data['agent_version'][1] = (empty($agent['agent_version']) === tr
|
|||||||
$table_status->data['description'][0] = __('Description');
|
$table_status->data['description'][0] = __('Description');
|
||||||
$table_status->data['description'][1] = (empty($agent['comentarios']) === true) ? '<em>'.__('N/A').'</em>' : $agent['comentarios'];
|
$table_status->data['description'][1] = (empty($agent['comentarios']) === true) ? '<em>'.__('N/A').'</em>' : $agent['comentarios'];
|
||||||
|
|
||||||
$has_remote_conf = enterprise_hook(
|
|
||||||
'config_agents_has_remote_configuration',
|
|
||||||
[$agent['id_agente']]
|
|
||||||
);
|
|
||||||
|
|
||||||
if ((bool) $has_remote_conf) {
|
|
||||||
$table_status->data['remote_config'][0] = __('Remote configuration');
|
|
||||||
$table_status->data['remote_config'][1] = __('Enabled');
|
|
||||||
|
|
||||||
$satellite_server = (int) db_get_value_filter(
|
|
||||||
'satellite_server',
|
|
||||||
'tagente',
|
|
||||||
['id_agente' => $id_agente]
|
|
||||||
);
|
|
||||||
|
|
||||||
if (empty($satellite_server) === false) {
|
|
||||||
$satellite_name = db_get_value_filter(
|
|
||||||
'name',
|
|
||||||
'tserver',
|
|
||||||
['id_server' => $satellite_server]
|
|
||||||
);
|
|
||||||
|
|
||||||
$table_status->data['remote_config'][0] = __('Satellite server');
|
|
||||||
$table_status->data['remote_config'][1] = $satellite_name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$table_agent = $agentStatusHeader.'
|
$table_agent = $agentStatusHeader.'
|
||||||
<div class="agent_details_content">
|
<div class="agent_details_content">
|
||||||
<div class="agent_details_graph">
|
<div class="agent_details_graph">
|
||||||
@ -189,11 +168,12 @@ $data_opcional->class = 'floating_form';
|
|||||||
// Gis and url address.
|
// Gis and url address.
|
||||||
$agentAdditionalContent = '';
|
$agentAdditionalContent = '';
|
||||||
// Position Information.
|
// Position Information.
|
||||||
if ((bool) $config['activate_gis'] === true) {
|
/*
|
||||||
|
if ((bool) $config['activate_gis'] === true) {
|
||||||
$dataPositionAgent = gis_get_data_last_position_agent(
|
$dataPositionAgent = gis_get_data_last_position_agent(
|
||||||
$agent['id_agente']
|
$agent['id_agente']
|
||||||
);
|
);
|
||||||
if (is_array($dataPositionAgent) === true && $dataPositionAgent['stored_longitude'] !== '' && $dataPositionAgent['stored_longitude'] !== '') {
|
if (is_array($dataPositionAgent) === true && $dataPositionAgent['stored_longitude'] !== '' && $dataPositionAgent['stored_latitude'] !== '') {
|
||||||
$data_opcional->data['agent_position'][0] = __('Position (Long, Lat)');
|
$data_opcional->data['agent_position'][0] = __('Position (Long, Lat)');
|
||||||
|
|
||||||
$dataOptionalOutput = html_print_anchor(
|
$dataOptionalOutput = html_print_anchor(
|
||||||
@ -210,10 +190,11 @@ if ((bool) $config['activate_gis'] === true) {
|
|||||||
|
|
||||||
$data_opcional->data['agent_position'][1] = $dataOptionalOutput;
|
$data_opcional->data['agent_position'][1] = $dataOptionalOutput;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// If the url description is set.
|
// If the url description is set.
|
||||||
if (empty($agent['url_address']) === false) {
|
/*
|
||||||
|
if (empty($agent['url_address']) === false) {
|
||||||
$data_opcional->data['url_address'][0] = __('Url address');
|
$data_opcional->data['url_address'][0] = __('Url address');
|
||||||
$data_opcional->data['url_address'][1] = html_print_anchor(
|
$data_opcional->data['url_address'][1] = html_print_anchor(
|
||||||
[
|
[
|
||||||
@ -222,11 +203,12 @@ if (empty($agent['url_address']) === false) {
|
|||||||
],
|
],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
// Other IP address and timezone offset.
|
// Other IP address and timezone offset.
|
||||||
if (empty($addresses) === false) {
|
/*
|
||||||
|
if (empty($addresses) === false) {
|
||||||
$data_opcional->data['other_ip_address'][0] = __('Other IP addresses');
|
$data_opcional->data['other_ip_address'][0] = __('Other IP addresses');
|
||||||
$data_opcional->data['other_ip_address'][1] = html_print_div(
|
$data_opcional->data['other_ip_address'][1] = html_print_div(
|
||||||
[
|
[
|
||||||
@ -235,13 +217,14 @@ if (empty($addresses) === false) {
|
|||||||
],
|
],
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
// Timezone Offset.
|
// Timezone Offset.
|
||||||
if ((int) $agent['timezone_offset'] !== 0) {
|
/*
|
||||||
|
if ((int) $agent['timezone_offset'] !== 0) {
|
||||||
$data_opcional->data['timezone_offset'][0] = __('Timezone Offset');
|
$data_opcional->data['timezone_offset'][0] = __('Timezone Offset');
|
||||||
$data_opcional->data['timezone_offset'][1] = $agent['timezone_offset'];
|
$data_opcional->data['timezone_offset'][1] = $agent['timezone_offset'];
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// Custom fields.
|
// Custom fields.
|
||||||
$fields = db_get_all_rows_filter(
|
$fields = db_get_all_rows_filter(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user