2010-01-19 16:49:34 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
// Pandora FMS - http://pandorafms.com
|
|
|
|
// ==================================================
|
|
|
|
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
|
|
|
|
// Please see http://pandorafms.org for full contribution list
|
|
|
|
|
|
|
|
// This program is free software; you can redistribute it and/or
|
|
|
|
// modify it under the terms of the GNU General Public License
|
|
|
|
// as published by the Free Software Foundation for version 2.
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU General Public License for more details.
|
|
|
|
|
|
|
|
// Load global vars
|
|
|
|
require_once ("include/config.php");
|
|
|
|
|
|
|
|
check_login ();
|
|
|
|
|
|
|
|
require_once ('include/functions_gis.php');
|
2010-01-27 20:52:53 +01:00
|
|
|
require_once ('include/functions_ui.php');
|
2010-01-19 16:49:34 +01:00
|
|
|
|
|
|
|
$opt = get_parameter('opt');
|
|
|
|
|
|
|
|
switch ($opt) {
|
2010-02-10 19:27:24 +01:00
|
|
|
case 'get_data_conexion':
|
|
|
|
$returnJSON['correct'] = 1;
|
|
|
|
$idConection = get_parameter('id_conection');
|
|
|
|
|
|
|
|
$row = get_db_row_filter('tgis_map_connection', array('id_tmap_connection' => $idConection));
|
|
|
|
|
|
|
|
$returnJSON['content'] = $row;
|
|
|
|
|
|
|
|
echo json_encode($returnJSON);
|
|
|
|
break;
|
2010-02-04 11:34:30 +01:00
|
|
|
case 'get_new_positions':
|
|
|
|
$id_features = get_parameter('id_features', '');
|
|
|
|
$last_time_of_data = get_parameter('last_time_of_data');
|
2010-02-17 18:27:25 +01:00
|
|
|
$layerId = get_parameter('layer_id');
|
2010-02-23 13:12:41 +01:00
|
|
|
$agentView = get_parameter('agent_view');
|
2010-02-04 11:34:30 +01:00
|
|
|
|
|
|
|
$returnJSON = array();
|
|
|
|
$returnJSON['correct'] = 1;
|
|
|
|
|
2010-02-23 13:12:41 +01:00
|
|
|
if ($agentView == 0) {
|
2011-03-08 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_html.php, include/functions_messages.php,
include/functions_exportserver.php, include/functions_reporting.php,
include/functions_gis.php, include/functions_networkmap.php,
include/functions_servers.php, include/functions_api.php,
include/fgraph.php, include/functions_agents.php, include/functions_db.php,
include/functions_alerts.php, extensions/module_groups.php,
operation/incidents/incident.php, operation/incidents/incident_detail.php,
operation/search_modules.php, operation/agentes/status_monitor.php,
operation/agentes/export_csv.php,
operation/agentes/estado_ultimopaquete.php,
operation/agentes/alerts_status.php, operation/agentes/estado_agente.php,
operation/agentes/sla_view.php, operation/agentes/ver_agente.php,
operation/servers/view_server_detail.php, operation/menu.php,
operation/search_graphs.php, operation/snmpconsole/snmp_view.php,
operation/gis_maps/ajax.php, operation/events/events_rss.php,
operation/events/events_list.php, operation/search_alerts.php,
operation/search_reports.php, operation/reporting/reporting_xml.php,
operation/reporting/graph_viewer.php, operation/search_maps.php,
operation/search_users.php, mobile/operation/agents/view_agents.php,
mobile/operation/events/events.php, godmode/groups/modu_group_list.php,
godmode/groups/configure_group.php, godmode/groups/group_list.php,
godmode/db/db_main.php, godmode/db/db_purge.php,
godmode/agentes/module_manager_editor_prediction.php,
godmode/agentes/modificar_agente.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/servers/manage_recontask_form.php,
godmode/alerts/alert_list.list.php, godmode/users/configure_user.php,
godmode/massive/massive_edit_modules.php,
godmode/modules/manage_network_templates_form.php,
godmode/modules/manage_network_components_form_wmi.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/reporting_builder.item_editor.php: changed or added in
some cases the SQL queries for to be PostgreSQL standard, and cleaned source
style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4074 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-09 15:26:36 +01:00
|
|
|
$flagGroupAll = get_db_all_rows_sql('SELECT tgrupo_id_grupo
|
|
|
|
FROM tgis_map_layer
|
|
|
|
WHERE id_tmap_layer = ' . $layerId . ' AND tgrupo_id_grupo = 0;'); //group 0 = all groups
|
2010-02-22 17:13:12 +01:00
|
|
|
|
2010-02-23 13:12:41 +01:00
|
|
|
$defaultCoords = get_db_row_sql('SELECT default_longitude, default_latitude
|
|
|
|
FROM tgis_map
|
|
|
|
WHERE id_tgis_map IN (SELECT tgis_map_id_tgis_map FROM tgis_map_layer WHERE id_tmap_layer = ' . $layerId . ')');
|
2010-02-22 17:13:12 +01:00
|
|
|
|
2010-02-23 13:12:41 +01:00
|
|
|
if ($flagGroupAll === false) {
|
2011-03-08 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_html.php, include/functions_messages.php,
include/functions_exportserver.php, include/functions_reporting.php,
include/functions_gis.php, include/functions_networkmap.php,
include/functions_servers.php, include/functions_api.php,
include/fgraph.php, include/functions_agents.php, include/functions_db.php,
include/functions_alerts.php, extensions/module_groups.php,
operation/incidents/incident.php, operation/incidents/incident_detail.php,
operation/search_modules.php, operation/agentes/status_monitor.php,
operation/agentes/export_csv.php,
operation/agentes/estado_ultimopaquete.php,
operation/agentes/alerts_status.php, operation/agentes/estado_agente.php,
operation/agentes/sla_view.php, operation/agentes/ver_agente.php,
operation/servers/view_server_detail.php, operation/menu.php,
operation/search_graphs.php, operation/snmpconsole/snmp_view.php,
operation/gis_maps/ajax.php, operation/events/events_rss.php,
operation/events/events_list.php, operation/search_alerts.php,
operation/search_reports.php, operation/reporting/reporting_xml.php,
operation/reporting/graph_viewer.php, operation/search_maps.php,
operation/search_users.php, mobile/operation/agents/view_agents.php,
mobile/operation/events/events.php, godmode/groups/modu_group_list.php,
godmode/groups/configure_group.php, godmode/groups/group_list.php,
godmode/db/db_main.php, godmode/db/db_purge.php,
godmode/agentes/module_manager_editor_prediction.php,
godmode/agentes/modificar_agente.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/servers/manage_recontask_form.php,
godmode/alerts/alert_list.list.php, godmode/users/configure_user.php,
godmode/massive/massive_edit_modules.php,
godmode/modules/manage_network_templates_form.php,
godmode/modules/manage_network_components_form_wmi.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/reporting_builder.item_editor.php: changed or added in
some cases the SQL queries for to be PostgreSQL standard, and cleaned source
style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4074 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-09 15:26:36 +01:00
|
|
|
$idAgentsWithGISTemp = get_db_all_rows_sql('SELECT id_agente
|
|
|
|
FROM tagente
|
|
|
|
WHERE id_grupo IN
|
2010-02-23 13:12:41 +01:00
|
|
|
(SELECT tgrupo_id_grupo FROM tgis_map_layer WHERE id_tmap_layer = ' . $layerId . ')
|
|
|
|
OR id_agente IN
|
2010-02-19 13:26:54 +01:00
|
|
|
(SELECT tagente_id_agente FROM tgis_map_layer_has_tagente WHERE tgis_map_layer_id_tmap_layer = ' . $layerId . ');');
|
2010-02-23 13:12:41 +01:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
//All groups, all agents
|
|
|
|
$idAgentsWithGISTemp = get_db_all_rows_sql('SELECT tagente_id_agente AS id_agente
|
|
|
|
FROM tgis_data_status
|
|
|
|
WHERE tagente_id_agente');
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach ($idAgentsWithGISTemp as $idAgent) {
|
|
|
|
$idAgentsWithGIS[] = $idAgent['id_agente'];
|
|
|
|
}
|
2010-02-17 18:27:25 +01:00
|
|
|
}
|
2010-02-23 13:12:41 +01:00
|
|
|
else {
|
2010-02-25 13:46:47 +01:00
|
|
|
//Extract the agent GIS status for one agent.
|
2010-02-25 18:27:55 +01:00
|
|
|
$idAgentsWithGIS[] = $id_features;
|
2010-02-22 17:13:12 +01:00
|
|
|
}
|
|
|
|
|
2011-03-08 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_html.php, include/functions_messages.php,
include/functions_exportserver.php, include/functions_reporting.php,
include/functions_gis.php, include/functions_networkmap.php,
include/functions_servers.php, include/functions_api.php,
include/fgraph.php, include/functions_agents.php, include/functions_db.php,
include/functions_alerts.php, extensions/module_groups.php,
operation/incidents/incident.php, operation/incidents/incident_detail.php,
operation/search_modules.php, operation/agentes/status_monitor.php,
operation/agentes/export_csv.php,
operation/agentes/estado_ultimopaquete.php,
operation/agentes/alerts_status.php, operation/agentes/estado_agente.php,
operation/agentes/sla_view.php, operation/agentes/ver_agente.php,
operation/servers/view_server_detail.php, operation/menu.php,
operation/search_graphs.php, operation/snmpconsole/snmp_view.php,
operation/gis_maps/ajax.php, operation/events/events_rss.php,
operation/events/events_list.php, operation/search_alerts.php,
operation/search_reports.php, operation/reporting/reporting_xml.php,
operation/reporting/graph_viewer.php, operation/search_maps.php,
operation/search_users.php, mobile/operation/agents/view_agents.php,
mobile/operation/events/events.php, godmode/groups/modu_group_list.php,
godmode/groups/configure_group.php, godmode/groups/group_list.php,
godmode/db/db_main.php, godmode/db/db_purge.php,
godmode/agentes/module_manager_editor_prediction.php,
godmode/agentes/modificar_agente.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/servers/manage_recontask_form.php,
godmode/alerts/alert_list.list.php, godmode/users/configure_user.php,
godmode/massive/massive_edit_modules.php,
godmode/modules/manage_network_templates_form.php,
godmode/modules/manage_network_components_form_wmi.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/reporting_builder.item_editor.php: changed or added in
some cases the SQL queries for to be PostgreSQL standard, and cleaned source
style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4074 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-09 15:26:36 +01:00
|
|
|
switch ($config["dbtype"]) {
|
|
|
|
case "mysql":
|
|
|
|
$agentsGISStatus = get_db_all_rows_sql('SELECT t1.nombre, id_parent, t1.id_agente AS tagente_id_agente,
|
|
|
|
IFNULL(t2.stored_longitude, ' . $defaultCoords['default_longitude'] . ') AS stored_longitude,
|
|
|
|
IFNULL(t2.stored_latitude, ' . $defaultCoords['default_latitude'] . ') AS stored_latitude
|
|
|
|
FROM tagente AS t1
|
|
|
|
LEFT JOIN tgis_data_status AS t2 ON t1.id_agente = t2.tagente_id_agente
|
|
|
|
WHERE id_agente IN (' . implode(',', $idAgentsWithGIS) . ')');
|
|
|
|
break;
|
|
|
|
case "postgresql":
|
|
|
|
$agentsGISStatus = get_db_all_rows_sql('SELECT t1.nombre, id_parent, t1.id_agente AS tagente_id_agente,
|
|
|
|
COALESCE(t2.stored_longitude, ' . $defaultCoords['default_longitude'] . ') AS stored_longitude,
|
|
|
|
COALESCE(t2.stored_latitude, ' . $defaultCoords['default_latitude'] . ') AS stored_latitude
|
|
|
|
FROM tagente AS t1
|
|
|
|
LEFT JOIN tgis_data_status AS t2 ON t1.id_agente = t2.tagente_id_agente
|
|
|
|
WHERE id_agente IN (' . implode(',', $idAgentsWithGIS) . ')');
|
|
|
|
break;
|
2011-04-11 19:05:20 +02:00
|
|
|
case "oracle":
|
|
|
|
$agentsGISStatus = get_db_all_rows_sql('SELECT t1.nombre, id_parent, t1.id_agente AS tagente_id_agente,
|
|
|
|
COALESCE(t2.stored_longitude, ' . $defaultCoords['default_longitude'] . ') AS stored_longitude,
|
|
|
|
COALESCE(t2.stored_latitude, ' . $defaultCoords['default_latitude'] . ') AS stored_latitude
|
|
|
|
FROM tagente t1
|
|
|
|
LEFT JOIN tgis_data_status t2 ON t1.id_agente = t2.tagente_id_agente
|
|
|
|
WHERE id_agente IN (' . implode(',', $idAgentsWithGIS) . ')');
|
|
|
|
break;
|
2011-03-08 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_html.php, include/functions_messages.php,
include/functions_exportserver.php, include/functions_reporting.php,
include/functions_gis.php, include/functions_networkmap.php,
include/functions_servers.php, include/functions_api.php,
include/fgraph.php, include/functions_agents.php, include/functions_db.php,
include/functions_alerts.php, extensions/module_groups.php,
operation/incidents/incident.php, operation/incidents/incident_detail.php,
operation/search_modules.php, operation/agentes/status_monitor.php,
operation/agentes/export_csv.php,
operation/agentes/estado_ultimopaquete.php,
operation/agentes/alerts_status.php, operation/agentes/estado_agente.php,
operation/agentes/sla_view.php, operation/agentes/ver_agente.php,
operation/servers/view_server_detail.php, operation/menu.php,
operation/search_graphs.php, operation/snmpconsole/snmp_view.php,
operation/gis_maps/ajax.php, operation/events/events_rss.php,
operation/events/events_list.php, operation/search_alerts.php,
operation/search_reports.php, operation/reporting/reporting_xml.php,
operation/reporting/graph_viewer.php, operation/search_maps.php,
operation/search_users.php, mobile/operation/agents/view_agents.php,
mobile/operation/events/events.php, godmode/groups/modu_group_list.php,
godmode/groups/configure_group.php, godmode/groups/group_list.php,
godmode/db/db_main.php, godmode/db/db_purge.php,
godmode/agentes/module_manager_editor_prediction.php,
godmode/agentes/modificar_agente.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/servers/manage_recontask_form.php,
godmode/alerts/alert_list.list.php, godmode/users/configure_user.php,
godmode/massive/massive_edit_modules.php,
godmode/modules/manage_network_templates_form.php,
godmode/modules/manage_network_components_form_wmi.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/reporting_builder.item_editor.php: changed or added in
some cases the SQL queries for to be PostgreSQL standard, and cleaned source
style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4074 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-09 15:26:36 +01:00
|
|
|
}
|
2010-02-25 18:27:55 +01:00
|
|
|
|
2010-02-19 13:26:54 +01:00
|
|
|
if ($agentsGISStatus === false) {
|
|
|
|
$agentsGISStatus = array();
|
2010-02-04 11:34:30 +01:00
|
|
|
}
|
|
|
|
|
2010-02-19 13:26:54 +01:00
|
|
|
$agents = null;
|
|
|
|
foreach ($agentsGISStatus as $row) {
|
2010-02-25 18:27:55 +01:00
|
|
|
$status = get_agent_status($row['tagente_id_agente']);
|
|
|
|
|
2010-02-19 13:26:54 +01:00
|
|
|
$agents[$row['tagente_id_agente']] = array(
|
2010-02-25 18:27:55 +01:00
|
|
|
'icon_path' => get_agent_icon_map($row['tagente_id_agente'], true, $status),
|
|
|
|
'name' => $row['nombre'],
|
|
|
|
'status' => $status,
|
2010-02-19 13:26:54 +01:00
|
|
|
'stored_longitude' => $row['stored_longitude'],
|
2010-02-25 18:27:55 +01:00
|
|
|
'stored_latitude' => $row['stored_latitude'],
|
|
|
|
'id_parent' => $row['id_parent']
|
2010-02-19 13:26:54 +01:00
|
|
|
);
|
2010-02-17 18:27:25 +01:00
|
|
|
}
|
|
|
|
|
2010-02-19 13:26:54 +01:00
|
|
|
$returnJSON['content'] = json_encode($agents);
|
2010-02-04 11:34:30 +01:00
|
|
|
echo json_encode($returnJSON);
|
|
|
|
break;
|
2010-01-27 20:52:53 +01:00
|
|
|
case 'point_path_info':
|
2010-01-19 16:49:34 +01:00
|
|
|
$id = get_parameter('id');
|
2010-02-23 13:12:41 +01:00
|
|
|
$row = get_db_row_sql('SELECT * FROM tgis_data_history WHERE id_tgis_data = ' . $id);
|
2010-01-19 16:49:34 +01:00
|
|
|
|
|
|
|
$returnJSON = array();
|
|
|
|
$returnJSON['correct'] = 1;
|
2010-01-27 20:52:53 +01:00
|
|
|
$returnJSON['content'] = __('Agent') . ': <a style="font-weight: bolder;" href="?sec=estado&sec2=operation/agentes/ver_agente&id_agente=' . $row['tagente_id_agente'] . '">'.get_agent_name($row['tagente_id_agente']).'</a><br />';
|
|
|
|
$returnJSON['content'] .= __('Position (Long, Lat, Alt)') . ': (' . $row['longitude'] . ', ' . $row['latitude'] . ', ' . $row['altitude'] . ') <br />';
|
2010-01-19 16:49:34 +01:00
|
|
|
$returnJSON['content'] .= __('Start contact') . ': ' . $row['start_timestamp'] . '<br />';
|
|
|
|
$returnJSON['content'] .= __('Last contact') . ': ' . $row['end_timestamp'] . '<br />';
|
2010-01-27 20:52:53 +01:00
|
|
|
$returnJSON['content'] .= __('Num reports') . ': '.$row['number_of_packages'].'<br />';
|
2010-01-19 16:49:34 +01:00
|
|
|
if ($row['manual_placemen']) $returnJSON['content'] .= '<br />' . __('Manual placement') . '<br />';
|
|
|
|
|
2010-01-27 20:52:53 +01:00
|
|
|
echo json_encode($returnJSON);
|
|
|
|
|
|
|
|
break;
|
|
|
|
case 'point_agent_info':
|
|
|
|
$id = get_parameter('id');
|
|
|
|
$row = get_db_row_sql('SELECT * FROM tagente WHERE id_agente = ' . $id);
|
2010-02-23 13:12:41 +01:00
|
|
|
$agentDataGIS = getDataLastPositionAgent($row['id_agente']);
|
2010-01-27 20:52:53 +01:00
|
|
|
|
|
|
|
$returnJSON = array();
|
|
|
|
$returnJSON['correct'] = 1;
|
|
|
|
$returnJSON['content'] = __('Agent') . ': <a style="font-weight: bolder;" href="?sec=estado&sec2=operation/agentes/ver_agente&id_agente=' . $row['id_agente'] . '">'.$row['nombre'].'</a><br />';
|
2010-03-05 12:16:20 +01:00
|
|
|
|
|
|
|
//it's positioned in default position of map.
|
|
|
|
if ($agentDataGIS === false) {
|
|
|
|
$returnJSON['content'] .= __('Position (Long, Lat, Alt)') . ': ' . __("Default position of map.") . '<br />';
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$returnJSON['content'] .= __('Position (Long, Lat, Alt)') . ': (' . $agentDataGIS['stored_longitude'] . ', ' . $agentDataGIS['stored_latitude'] . ', ' . $agentDataGIS['stored_altitude'] . ') <br />';
|
|
|
|
}
|
2010-01-27 20:52:53 +01:00
|
|
|
$agent_ip_address = get_agent_address ($id_agente);
|
|
|
|
if ($agent_ip_address || $agent_ip_address != '') {
|
|
|
|
$returnJSON['content'] .= __('IP Address').': '.get_agent_address ($id_agente).'<br />';
|
|
|
|
}
|
|
|
|
$returnJSON['content'] .= __('OS').': '.print_os_icon($row['id_os'], true, true);
|
|
|
|
|
|
|
|
$osversion_offset = strlen($row["os_version"]);
|
|
|
|
if ($osversion_offset > 15) {
|
|
|
|
$osversion_offset = $osversion_offset - 15;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$osversion_offset = 0;
|
|
|
|
}
|
|
|
|
$returnJSON['content'] .= ' ( <i><span title="'.$row["os_version"].'">'.substr($row["os_version"],$osversion_offset,15).'</span></i>)<br />';
|
|
|
|
$agent_description = $row['comentarios'];
|
|
|
|
if ($agent_description || $agent_description != '') {
|
|
|
|
$returnJSON['content'] .= __('Description').': '.$agent_description.'<br />';
|
|
|
|
}
|
|
|
|
$returnJSON['content'] .= __('Group').': '.print_group_icon ($row["id_grupo"], true).' (<strong>'.get_group_name ($row["id_grupo"]).'</strong>)<br />';
|
|
|
|
$returnJSON['content'] .= __('Agent Version').': '.$row["agent_version"].'<br />';
|
2010-03-05 12:16:20 +01:00
|
|
|
$returnJSON['content'] .= __('Last contact') . ": ";
|
2010-01-27 20:52:53 +01:00
|
|
|
if ($row["ultimo_contacto_remoto"] == "0000-00-00 00:00:00") {
|
2010-03-05 12:16:20 +01:00
|
|
|
$returnJSON['content'] .=__('Never') ." <br />";
|
2010-01-27 20:52:53 +01:00
|
|
|
}
|
2010-03-05 12:16:20 +01:00
|
|
|
else {
|
|
|
|
$returnJSON['content'] .= $row["ultimo_contacto_remoto"] ." <br />";
|
|
|
|
}
|
|
|
|
$returnJSON['content'] .= __('Remote').': '. $row["ultimo_contacto"];
|
2010-01-27 20:52:53 +01:00
|
|
|
|
2010-01-19 16:49:34 +01:00
|
|
|
echo json_encode($returnJSON);
|
|
|
|
|
2010-02-24 12:49:03 +01:00
|
|
|
break;
|
|
|
|
case 'get_map_connection_data':
|
|
|
|
$idConnection = get_parameter('id_connection');
|
|
|
|
|
|
|
|
$returnJSON = array();
|
|
|
|
|
|
|
|
$returnJSON['correct'] = 1;
|
|
|
|
|
|
|
|
$returnJSON['content'] = get_db_row_sql('SELECT * FROM tgis_map_connection WHERE id_tmap_connection = ' . $idConnection);
|
|
|
|
|
|
|
|
echo json_encode($returnJSON);
|
2010-01-19 16:49:34 +01:00
|
|
|
break;
|
|
|
|
}
|
2010-04-27 19:43:32 +02:00
|
|
|
?>
|