Notifications: Added ability to ONLY submit demographics, if desired.

This commit is contained in:
Nate Jones
2014-07-10 00:09:33 +00:00
parent 7f683bba1f
commit c5dfccfe5a
2 changed files with 122 additions and 58 deletions

View File

@@ -130,14 +130,29 @@
$text['message-invalid_recipient']['pt-pt'] = "Inválido Notificação Destinatário";
$text['message-invalid_recipient']['fr-fr'] = "Notification invalide bénéficiaire";
$text['message-demographics_submitted']['en-us'] = "Demographics Submitted";
$text['message-demographics_submitted']['es-cl'] = "Demografía Enviado";
$text['message-demographics_submitted']['pt-pt'] = "Demografia Submetido";
$text['message-demographics_submitted']['fr-fr'] = "Démographie Soumis";
$text['button-save']['en-us'] = "Save";
$text['button-save']['es-cl'] = "Guardar";
$text['button-save']['pt-pt'] = "Guardar";
$text['button-save']['fr-fr'] = "Sauvegarder";
$text['message-disclaimer']['en-us'] = "<u>Disclosure:</u> Enabling Project Notifications is consent to the collection of <i>anonymous</i> and <i>general</i> demographic information about your installation environment. Information requested consists of the following: 1) FusionPBX version, 2) PHP version, 3) web server and version, 4) voice switch version, 5) database type and version, 6) operating system platform and version, and 7) public IP address. If you do not wish for this information to be submitted, simply leave Project Notifications disabled, and no information will be submitted about your system.";
$text['message-disclaimer']['es-cl'] = "<u>Divulgación:</u> Habilitación del proyecto Notificaciones es el consentimiento a la recopilación de <i> anónimo </ i> y generales <i> </ i> la información demográfica sobre su entorno de instalación. La información solicitada se compone de los siguientes: 1) FusionPBX versión, 2) la versión de PHP, 3) del servidor web y la versión 4) Versión conmutador de voz, 5) el tipo de base de datos y la versión 6) plataforma de sistema operativo y versión, y 7) IP pública dirección. Si usted no desea que esta información sea presentada, simplemente deje de Proyecto Notificaciones deshabilitado, y ninguna información se presentará sobre su sistema.";
$text['message-disclaimer']['pt-pt'] = "<u>Divulgação:</u> A habilitação do projeto Notificações é o consentimento para a coleta de <i> anônimo </ i> e geral <i> </ i> informações demográficas sobre o seu ambiente de instalação. As informações solicitadas consiste no seguinte: 1) versão FusionPBX, 2) versão PHP, 3) servidor web e versão, 4) versão interruptor de voz, 5) Tipo de banco de dados e versão, 6) plataforma de sistema operacional e versão, e 7) IP público endereço. Se você não deseja que esta informação ser submetida, basta deixar Projeto Notificações desativada, e nenhuma informação será apresentada sobre o sistema.";
$text['message-disclaimer']['fr-fr'] = "<u>Divulgation:</u> Activation des notifications projet est consentement à la collecte de <i> anonyme </ i> et générale <i> </ i> des informations démographiques sur l'environnement d'installation. Les informations demandées se compose de ce qui suit: 1) FusionPBX version 2) version de PHP, 3) le serveur web et la version 4) Version commutateur vocal, 5) type de base de données et la version 6) plate-forme de système d'exploitation et sa version, et 7) IP publique adresse. Si vous ne souhaitez pas que cette information soit présentée, laissez simplement Notifications projet désactivé, et aucune information ne sera soumis à votre système.";
$text['message-disclaimer']['en-us'] = "<u>Disclosure</u>: Enabling Project Notifications is consent to the collection of <i>anonymous</i> and <i>general</i> demographic information about your installation environment. Information requested consists of the following: 1) FusionPBX version, 2) PHP version, 3) web server and version, 4) voice switch version, 5) database type and version, 6) operating system platform and version, and 7) public IP address. If you do not wish for this information to be submitted, simply leave Project Notifications disabled, and no information will be submitted about your system.";
$text['message-disclaimer']['es-cl'] = "<u>Divulgación</u>: Habilitación del proyecto Notificaciones es el consentimiento a la recopilación de <i>anónimo</i> y <i>generales</i> la información demográfica sobre su entorno de instalación. La información solicitada se compone de los siguientes: 1) FusionPBX versión, 2) la versión de PHP, 3) del servidor web y la versión 4) Versión conmutador de voz, 5) el tipo de base de datos y la versión 6) plataforma de sistema operativo y versión, y 7) IP pública dirección. Si usted no desea que esta información sea presentada, simplemente deje de Proyecto Notificaciones deshabilitado, y ninguna información se presentará sobre su sistema.";
$text['message-disclaimer']['pt-pt'] = "<u>Divulgação</u>: A habilitação do projeto Notificações é o consentimento para a coleta de <i>anônimo</i> e <i>geral</i> informações demográficas sobre o seu ambiente de instalação. As informações solicitadas consiste no seguinte: 1) versão FusionPBX, 2) versão PHP, 3) servidor web e versão, 4) versão interruptor de voz, 5) Tipo de banco de dados e versão, 6) plataforma de sistema operacional e versão, e 7) IP público endereço. Se você não deseja que esta informação ser submetida, basta deixar Projeto Notificações desativada, e nenhuma informação será apresentada sobre o sistema.";
$text['message-disclaimer']['fr-fr'] = "<u>Divulgation</u>: Activation des notifications projet est consentement à la collecte de <i>anonyme</i> et <i>générale</i> des informations démographiques sur l'environnement d'installation. Les informations demandées se compose de ce qui suit: 1) FusionPBX version 2) version de PHP, 3) le serveur web et la version 4) Version commutateur vocal, 5) type de base de données et la version 6) plate-forme de système d'exploitation et sa version, et 7) IP publique adresse. Si vous ne souhaitez pas que cette information soit présentée, laissez simplement Notifications projet désactivé, et aucune information ne sera soumis à votre système.";
$text['message-demographics']['en-us'] = "<u>Note</u>: If you wish to help the project by submitting the demographic information described above <i>without</i> subscribing to Project Notifications, simply ";
$text['message-demographics']['es-cl'] = "";
$text['message-demographics']['pt-pt'] = "";
$text['message-demographics']['fr-fr'] = "";
$text['message-demographics_click_here']['en-us'] = "click here";
$text['message-demographics_click_here']['es-cl'] = "haga clic aquí";
$text['message-demographics_click_here']['pt-pt'] = "clique aqui";
$text['message-demographics_click_here']['fr-fr'] = "cliquez ici";
?>

View File

@@ -56,7 +56,97 @@ else {
}
unset($sql, $prep_statement);
if (count($_POST) > 0) {
if (count($_REQUEST) > 0) {
// prepare demographic information **********************************************
// fusionpbx version
$software_ver = $software_version;
// php version
$php_ver = phpversion();
// webserver name & version
$web_server = $_SERVER['SERVER_SOFTWARE'];
// switch version
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$switch_result = event_socket_request($fp, 'api version');
}
$switch_ver = trim($switch_result);
// database name & version
switch ($db_type) {
case "pgsql" : $db_ver_query = "select version() as db_ver;"; break;
case "mysql" : $db_ver_query = "select version() as db_ver;"; break;
case "sqlite" : $db_ver_query = "select sqlite_version() as db_ver;"; break;
}
$prep_statement = $db->prepare($db_ver_query);
if ($prep_statement) {
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$database_version = $row["db_ver"];
break; // limit to 1 row
}
}
unset($db_ver_query, $prep_statement);
$db_ver = $database_version;
// operating system name & version
$os_platform = PHP_OS;
$os_info_1 = php_uname("a");
if ($os_platform == "Linux") {
$os_info_2 = shell_exec("cat /etc/*{release,version}");
$os_info_2 .= shell_exec("lsb_release -d -s");
}
else if (substr(strtoupper($os_platform), 0, 3) == "WIN") {
$os_info_2 = trim(shell_exec("ver"));
}
// **************************************************************************
// check for demographic only submit
if (isset($_GET["demo"])) {
// update remote server record with new values
$url = "https://".$software_url."/app/notifications/notifications_manage.php";
$url .= "?demo";
$url .= "&id=".$software_uuid;
$url .= "&software_ver=".urlencode($software_ver);
$url .= "&php_ver=".urlencode($php_ver);
$url .= "&web_server=".urlencode($web_server);
$url .= "&switch_ver=".urlencode($switch_ver);
$url .= "&db_type=".urlencode($db_type);
$url .= "&db_ver=".urlencode($db_ver);
$url .= "&os_platform=".urlencode($os_platform);
$url .= "&os_info_1=".urlencode($os_info_1);
$url .= "&os_info_2=".urlencode($os_info_2);
if (function_exists('curl_version')) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
curl_close($curl);
}
else if (file_get_contents(__FILE__) && ini_get('allow_url_fopen')) {
$response = file_get_contents($url);
}
// parse response
$response = json_decode($response, true);
if ($response['result'] == 'submitted') {
// set message
$_SESSION["message"] = $text['message-demographics_submitted'];
}
header("Location: notification_edit.php");
exit;
}
// retrieve submitted values
$project_notifications = check_str($_POST["project_notifications"]);
@@ -126,55 +216,6 @@ else {
}
}
// collect demographic information **********************************************
// fusionpbx version
$software_ver = $software_version;
// php version
$php_ver = phpversion();
// webserver name & version
$web_server = $_SERVER['SERVER_SOFTWARE'];
// switch version
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$switch_result = event_socket_request($fp, 'api version');
}
$switch_ver = trim($switch_result);
// database name & version
switch ($db_type) {
case "pgsql" : $db_ver_query = "select version() as db_ver;"; break;
case "mysql" : $db_ver_query = "select version() as db_ver;"; break;
case "sqlite" : $db_ver_query = "select sqlite_version() as db_ver;"; break;
}
$prep_statement = $db->prepare($db_ver_query);
if ($prep_statement) {
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$database_version = $row["db_ver"];
break; // limit to 1 row
}
}
unset($db_ver_query, $prep_statement);
$db_ver = $database_version;
// operating system name & version
$os_platform = PHP_OS;
$os_info_1 = php_uname("a");
if ($os_platform == "Linux") {
$os_info_2 = shell_exec("cat /etc/*{release,version}");
$os_info_2 .= shell_exec("lsb_release -d -s");
}
else if (substr(strtoupper($os_platform), 0, 3) == "WIN") {
$os_info_2 = trim(shell_exec("ver"));
}
// **************************************************************************
// update remote server record with new values
$url = "https://".$software_url."/app/notifications/notifications_manage.php";
$url .= "?id=".$software_uuid;
@@ -397,8 +438,19 @@ $page["title"] = $text['title-notifications'];
echo $text['description-project_notification_recipient']."\n";
echo " </td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td colspan='2' align='right'>\n";
echo " <td colspan='2' class='vtable' style='padding: 15px;' align='right'>\n";
echo " ".$text['message-disclaimer']."\n";
echo " <br /><br />\n";
echo " ".$text['message-demographics']." <a href='?demo'>".$text['message-demographics_click_here']."</a>.\n";
echo " </td>\n";
echo " </tr>\n";
echo "</table>\n";
echo "<table cellpadding='6' cellspacing='0' width='100%' border='0'>\n";
echo " <tr>\n";
echo " <td align='right'>\n";
echo " <input type='submit' name='submit' class='btn' value='".$text['button-save']."'>\n";
echo " </td>\n";
echo " </tr>";
@@ -407,9 +459,6 @@ $page["title"] = $text['title-notifications'];
echo "</form>\n";
echo "<br><br>";
echo "<div align='left'>".$text['message-disclaimer']."</div>";
echo "</td>";
echo "</tr>";
echo "</table>";