From 681f050a36798bb4ef6bbf40b8c226a93ec79c4b Mon Sep 17 00:00:00 2001 From: mattf Date: Thu, 4 Dec 2014 17:18:21 +0000 Subject: [PATCH] Added Languages admin web screens Added more error checking to agent logins Fixed issues with alternate DB queriesin admin.php Changed timecheck.pl script to not send out alerts for active=N servers git-svn-id: svn://192.168.202.10@2215 3d104415-ff17-0410-8863-d5cf3c621b8a --- agc_2-X/trunk/UPGRADE | 3 + agc_2-X/trunk/bin/AST_timecheck.pl | 8 +- agc_2-X/trunk/docs/LANGUAGES_QXZ_notes.txt | 31 +- .../trunk/extras/MySQL_AST_CREATE_tables.sql | 28 +- agc_2-X/trunk/extras/upgrade_2.10.sql | 26 + agc_2-X/trunk/www/agc/astguiclient.php | 2 +- agc_2-X/trunk/www/agc/call_log_display.php | 2 +- agc_2-X/trunk/www/agc/conf_exten_check.php | 2 +- agc_2-X/trunk/www/agc/dispo_move_list.php | 2 +- agc_2-X/trunk/www/agc/live_exten_check.php | 2 +- agc_2-X/trunk/www/agc/manager_send.php | 2 +- agc_2-X/trunk/www/agc/park_calls_display.php | 2 +- agc_2-X/trunk/www/agc/vdc_db_query.php | 2 +- agc_2-X/trunk/www/agc/vicidial.php | 74 +- agc_2-X/trunk/www/agc/voicemail_check.php | 2 +- .../www/vicidial/AST_CLOSER_service_level.php | 2 +- agc_2-X/trunk/www/vicidial/admin.php | 59 +- agc_2-X/trunk/www/vicidial/admin_header.php | 18 +- .../trunk/www/vicidial/admin_languages.php | 1535 +++++++++++++++++ agc_2-X/trunk/www/vicidial/help.php | 10 +- 20 files changed, 1741 insertions(+), 71 deletions(-) create mode 100644 agc_2-X/trunk/www/vicidial/admin_languages.php diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index 446747a1..8ad3b140 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -100,6 +100,9 @@ OTHER CHANGES: 16. Added campaign option to clear the script after call disposition. +17. Added administrative web interface for managing Languages. The language + features are not active in the agent interface yet. + diff --git a/agc_2-X/trunk/bin/AST_timecheck.pl b/agc_2-X/trunk/bin/AST_timecheck.pl index 8e6623dc..186b4163 100644 --- a/agc_2-X/trunk/bin/AST_timecheck.pl +++ b/agc_2-X/trunk/bin/AST_timecheck.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# AST_timecheck.pl version: 2.8 +# AST_timecheck.pl version: 2.10 # # This script is designed to send an email when an asterisk server is out of sync # @@ -11,6 +11,7 @@ # CHANGES # 130503-1515 - First version # 140509-2214 - Added frozen_server_call_clear system setting +# 141202-1108 - Do not send warning for server set to Active=N # $txt = '.txt'; @@ -207,7 +208,7 @@ if ($sthArows > 0) } $sthA->finish(); -$stmtA = "SELECT su.server_ip,last_update,UNIX_TIMESTAMP(last_update),server_description,UNIX_TIMESTAMP(db_time),server_id FROM server_updater su,servers s where s.server_ip=su.server_ip;"; +$stmtA = "SELECT su.server_ip,last_update,UNIX_TIMESTAMP(last_update),server_description,UNIX_TIMESTAMP(db_time),server_id,active FROM server_updater su,servers s where s.server_ip=su.server_ip;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArowsSERVERS=$sthA->rows; @@ -223,10 +224,11 @@ while ($sthArowsSERVERS > $i) $server_name = $aryA[3]; $Sdb_time = ($aryA[4] + 10); $server_id = $aryA[5]; + $active = $aryA[6]; if ($DBX) {print "Server time: $i - $server_ip($server_id - $server_name) Last time: $s_time($u_time|$aryA[2])\n";} - if ($web_u_time > $u_time) + if ( ($web_u_time > $u_time) and ($active =~ /Y/) ) { if ($DBX) {print "Time sync issue - SERVER: $server_ip($server_name)\n LAST TIME: $s_time($u_time)\n TIME NOW: $timestamp($web_u_time)\n";} $Ealert .= "SERVER: $server_ip($server_name)\n LAST TIME: $s_time($u_time)\n TIME NOW: $timestamp($web_u_time)\n\n"; diff --git a/agc_2-X/trunk/docs/LANGUAGES_QXZ_notes.txt b/agc_2-X/trunk/docs/LANGUAGES_QXZ_notes.txt index 8fb8358f..e288d331 100644 --- a/agc_2-X/trunk/docs/LANGUAGES_QXZ_notes.txt +++ b/agc_2-X/trunk/docs/LANGUAGES_QXZ_notes.txt @@ -1,11 +1,14 @@ -Notes on the non-English language translations(QXZ process) 2014-11-18 +Notes on the non-English language translations(QXZ process) Started: 2014-11-18 Updated: 2014-12-04 Summary: In the 2.10 branch, we started converting from a static build process for non-English languages of the agent and admin web interfaces, to a dynamic load-time process. This necessitated creating a new function in the agent and admin web interface functions.php files to facilitate the printing or echoing of text and image names within PHP. We call this function QXZ. -The end goal, is to complete a new Database schema and Adminsitrative web interface to allow for the dynamic editing of non-English languages within the system. +As of 2014-12-04, the administrative web interface was completed. To enable languages, you need to go to Admin -> System Settings in the admin.php web interface, then set "Enable Languages" to "1" and submit. Then go to your user modify page and set "Modify Languages" to "1" and submit. Now you will be able to go to Admin -> Languages and you can create new languages, copy existing languages, import languages and export languages.(The import and export processes use the existing ||| file format for UTF-8 text that is used for the language translations files currently in the codebase.) + +The last two steps are: To create a flexible way of assigning languages to agents and/or user groups, and creating an efficient way of looking up the phrases to match the selected language on the fly as the dynamic agent and admin web pages are loaded by users. + @@ -22,9 +25,31 @@ The QXZ function allows for up to 9 defined and ordered variables to be placed i Utilities: +/usr/share/astguiclient/ADMIN_www_languages.pl + +ADMIN_www_languages.pl - analyze all php scripts for QXZ functions and contents and insert in DB + +This script is designed to scan all scripts in the agc and vicidial web directories and gather all of the QXZ phrases present, then insert them into the "www_phrases" database table. After that is done, those phrases can be populated into the "vicidial_language_phrases" database table when adding new Languages in the Administration Web Interface. + +/usr/share/astguiclient/ADMIN_www_languages.pl --help + +options: + [--help] = this help screen + [--debug] = verbose debug messages + [--debugX] = extra verbose debug messages + [--agc-only] = only parse the agc directory + [--vicidial-only] = only parse the vicidial directory + [--QXZlines] = print full lines that include QXZ functions + [--QXZvalues] = print only QXZ function values + [--QXZvaronly] = print only QXZ function values with PHP variables in them + [--QXZlengthonly] = print only QXZ function values that include a length spec + [--QXZplaceonly] = print only QXZ function values with placeholder variables in them + [--conffile=/path/from/root] = define astguiclient.conf config file to use + + /usr/share/astguiclient/QXZanalyzer.pl --debug --QXZvalues --QXZvaronly --file=/srv/www/htdocs/agc/astguiclient.php -There is a new utility stored in the /extras/ directory of the source tree called "QXZanalyzer.pl". This perl script can analyze the PHP scripts one at a time and print out various different types of output to help gather the phrases necessary for future translations as well as to help debug any issues with the PHP code itself +There is a utility stored in the /extras/ directory of the source tree called "QXZanalyzer.pl". This perl script can analyze the PHP scripts one at a time and print out various different types of output to help gather the phrases necessary for future translations as well as to help debug any issues with the PHP code itself /usr/share/astguiclient/QXZanalyzer.pl --help QXZanalyzer.pl - analyze php scripts for QXZ functions and contents diff --git a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql index 8a870715..821f185a 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql @@ -622,7 +622,8 @@ pass_hash VARCHAR(100) default '', alter_admin_interface_options ENUM('0','1') default '1', max_inbound_calls SMALLINT(5) UNSIGNED default '0', modify_custom_dialplans ENUM('1','0') default '0', -wrapup_seconds_override SMALLINT(4) default '-1' +wrapup_seconds_override SMALLINT(4) default '-1', +modify_languages ENUM('1','0') default '0' ) ENGINE=MyISAM; CREATE UNIQUE INDEX user ON vicidial_users (user); @@ -1571,7 +1572,8 @@ queuemetrics_pause_type ENUM('0','1') default '0', frozen_server_call_clear ENUM('0','1') default '0', callback_time_24hour ENUM('0','1') default '0', active_modules TEXT, -allow_chats ENUM('0','1') default '0' +allow_chats ENUM('0','1') default '0', +enable_languages ENUM('0','1') default '0' ) ENGINE=MyISAM; CREATE TABLE vicidial_campaigns_list_mix ( @@ -3087,6 +3089,26 @@ source VARCHAR(20) default '', index (phrase_text) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci; +CREATE TABLE vicidial_languages ( +language_id VARCHAR(100) NOT NULL, +language_code VARCHAR(20) default '', +language_description VARCHAR(255) default '', +user_group VARCHAR(20) default '---ALL---', +modify_date TIMESTAMP, +unique index (language_id) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci; + +CREATE TABLE vicidial_language_phrases ( +phrase_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +language_id VARCHAR(100) NOT NULL, +english_text VARCHAR(10000) default '', +translated_text TEXT, +source VARCHAR(20) default '', +modify_date TIMESTAMP, +index (language_id), +index (english_text) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci; + ALTER TABLE vicidial_email_list MODIFY message text character set utf8; @@ -3330,4 +3352,4 @@ UPDATE vicidial_configuration set value='1766' where name='qc_database_version'; UPDATE system_settings set vdc_agent_api_active='1'; -UPDATE system_settings SET db_schema_version='1393',db_schema_update_date=NOW(),reload_timestamp=NOW(); +UPDATE system_settings SET db_schema_version='1394',db_schema_update_date=NOW(),reload_timestamp=NOW(); diff --git a/agc_2-X/trunk/extras/upgrade_2.10.sql b/agc_2-X/trunk/extras/upgrade_2.10.sql index 58e3d39d..b0278ff4 100644 --- a/agc_2-X/trunk/extras/upgrade_2.10.sql +++ b/agc_2-X/trunk/extras/upgrade_2.10.sql @@ -108,3 +108,29 @@ ALTER TABLE vicidial_webservers MODIFY hostname VARCHAR(125) default ''; ALTER TABLE vicidial_urls MODIFY url VARCHAR(255) default ''; UPDATE system_settings SET db_schema_version='1393',db_schema_update_date=NOW() where db_schema_version < 1393; + +ALTER TABLE system_settings ADD enable_languages ENUM('0','1') default '0'; + +ALTER TABLE vicidial_users ADD modify_languages ENUM('1','0') default '0'; + +CREATE TABLE vicidial_languages ( +language_id VARCHAR(100) NOT NULL, +language_code VARCHAR(20) default '', +language_description VARCHAR(255) default '', +user_group VARCHAR(20) default '---ALL---', +modify_date TIMESTAMP, +unique index (language_id) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci; + +CREATE TABLE vicidial_language_phrases ( +phrase_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +language_id VARCHAR(100) NOT NULL, +english_text VARCHAR(10000) default '', +translated_text TEXT, +source VARCHAR(20) default '', +modify_date TIMESTAMP, +index (language_id), +index (english_text) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci; + +UPDATE system_settings SET db_schema_version='1394',db_schema_update_date=NOW() where db_schema_version < 1394; diff --git a/agc_2-X/trunk/www/agc/astguiclient.php b/agc_2-X/trunk/www/agc/astguiclient.php index 860cdfcd..ae28671d 100644 --- a/agc_2-X/trunk/www/agc/astguiclient.php +++ b/agc_2-X/trunk/www/agc/astguiclient.php @@ -274,7 +274,7 @@ if (!$authphone) echo ""._QXZ("Phone Password:")." "; echo "\n"; echo "\n"; - echo "
"._QXZ("VERSION: %1s       BUILD: %2s:",0,'',$version,$build)."\n"; + echo "
"._QXZ("VERSION: %1s BUILD: %2s",0,'',$version,$build)."\n"; echo "\n"; echo "\n\n"; echo "\n\n"; diff --git a/agc_2-X/trunk/www/agc/call_log_display.php b/agc_2-X/trunk/www/agc/call_log_display.php index b42e00fb..119b2386 100644 --- a/agc_2-X/trunk/www/agc/call_log_display.php +++ b/agc_2-X/trunk/www/agc/call_log_display.php @@ -90,7 +90,7 @@ else { if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo _QXZ("Invalid server_ip: |%1s| or Invalid session_name: |%2s|",0,'',$server_ip,$session_name)."\n"; + echo _QXZ("Invalid server_ip: %1s or Invalid session_name: %2s",0,'',$server_ip,$session_name)."\n"; exit; } else diff --git a/agc_2-X/trunk/www/agc/conf_exten_check.php b/agc_2-X/trunk/www/agc/conf_exten_check.php index dd278752..cb7ffbce 100644 --- a/agc_2-X/trunk/www/agc/conf_exten_check.php +++ b/agc_2-X/trunk/www/agc/conf_exten_check.php @@ -175,7 +175,7 @@ else { if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo _QXZ("Invalid server_ip: |%1s| or Invalid session_name: |%2s|",0,'',$server_ip,$session_name)."\n"; + echo _QXZ("Invalid server_ip: %1s or Invalid session_name: %2s",0,'',$server_ip,$session_name)."\n"; exit; } else diff --git a/agc_2-X/trunk/www/agc/dispo_move_list.php b/agc_2-X/trunk/www/agc/dispo_move_list.php index bfa2bed8..83eb6be2 100644 --- a/agc_2-X/trunk/www/agc/dispo_move_list.php +++ b/agc_2-X/trunk/www/agc/dispo_move_list.php @@ -215,7 +215,7 @@ if ($match_found > 0) } else { - $MESSAGE = _QXZ("DONE: no match found within %1s |%2s|",0,'',$lead_id,$new_list_id); + $MESSAGE = _QXZ("DONE: no match found within %1s %2s",0,'',$lead_id,$new_list_id); echo "$MESSAGE\n"; } } diff --git a/agc_2-X/trunk/www/agc/live_exten_check.php b/agc_2-X/trunk/www/agc/live_exten_check.php index 5dc6d338..8abaf8a5 100644 --- a/agc_2-X/trunk/www/agc/live_exten_check.php +++ b/agc_2-X/trunk/www/agc/live_exten_check.php @@ -91,7 +91,7 @@ else { if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo _QXZ("Invalid server_ip: |%1s| or Invalid session_name: |%2s|",0,'',$server_ip,$session_name)."\n"; + echo _QXZ("Invalid server_ip: %1s or Invalid session_name: %2s",0,'',$server_ip,$session_name)."\n"; exit; } else diff --git a/agc_2-X/trunk/www/agc/manager_send.php b/agc_2-X/trunk/www/agc/manager_send.php index 4ee1221b..22e0b6a7 100644 --- a/agc_2-X/trunk/www/agc/manager_send.php +++ b/agc_2-X/trunk/www/agc/manager_send.php @@ -286,7 +286,7 @@ else { if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo _QXZ("Invalid server_ip: |%1s| or Invalid session_name: |%2s|",0,'',$server_ip,$session_name)."\n"; + echo _QXZ("Invalid server_ip: %1s or Invalid session_name: %2s",0,'',$server_ip,$session_name)."\n"; exit; } else diff --git a/agc_2-X/trunk/www/agc/park_calls_display.php b/agc_2-X/trunk/www/agc/park_calls_display.php index 6e7787ca..7e1fe6a6 100644 --- a/agc_2-X/trunk/www/agc/park_calls_display.php +++ b/agc_2-X/trunk/www/agc/park_calls_display.php @@ -79,7 +79,7 @@ else { if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo _QXZ("Invalid server_ip: |%1s| or Invalid session_name: |%2s|",0,'',$server_ip,$session_name)."\n"; + echo _QXZ("Invalid server_ip: %1s or Invalid session_name: %2s",0,'',$server_ip,$session_name)."\n"; exit; } else diff --git a/agc_2-X/trunk/www/agc/vdc_db_query.php b/agc_2-X/trunk/www/agc/vdc_db_query.php index 2b84713c..78fc6601 100644 --- a/agc_2-X/trunk/www/agc/vdc_db_query.php +++ b/agc_2-X/trunk/www/agc/vdc_db_query.php @@ -857,7 +857,7 @@ else { if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo _QXZ("Invalid server_ip: |%1s| or Invalid session_name: |%2s|",0,'',$server_ip,$session_name)."\n"; + echo _QXZ("Invalid server_ip: %1s or Invalid session_name: %2s",0,'',$server_ip,$session_name)."\n"; exit; } else diff --git a/agc_2-X/trunk/www/agc/vicidial.php b/agc_2-X/trunk/www/agc/vicidial.php index ace3b735..e279fa83 100644 --- a/agc_2-X/trunk/www/agc/vicidial.php +++ b/agc_2-X/trunk/www/agc/vicidial.php @@ -457,10 +457,11 @@ # 141125-0100 - Added parked_hangup code # 141125-1235 - Fixed issue with lead info not being updated when Max Dead time is triggered # 141128-0848 - Code cleanup for QXZ functions +# 141204-1211 - Added more error checking on login # -$version = '2.10-428c'; -$build = '141128-0848'; +$version = '2.10-429c'; +$build = '141204-1211'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=80; $one_mysql_log=0; @@ -573,6 +574,11 @@ if ($qm_conf_ct > 0) $email_enabled = $row[15]; $callback_time_24hour = $row[16]; } +else + { + echo _QXZ("ERROR: System Settings missing")."\n"; + exit; + } ##### END SETTINGS LOOKUP ##### ########################################### @@ -2258,13 +2264,23 @@ else while ( ($pb < $phones_auto_ct) and ($pb_force_set < 1) ) { ### find the server_ip of each phone_login - $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + $stmtn="SELECT count(*) from phones where login = '$phones_auto[$pb]';"; if ($DB) {echo "|$stmtx|\n";} if ($non_latin > 0) {$rslt=mysql_to_mysqli("SET NAMES 'UTF8'", $link);} - $rslt=mysql_to_mysqli($stmtx, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $rowx=mysqli_fetch_row($rslt); - + $rslt=mysql_to_mysqli($stmtn, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01XXX',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rown=mysqli_fetch_row($rslt); + if ($rown[0] > 0) + { + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + $rslt=mysql_to_mysqli($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysqli_fetch_row($rslt); + } + else + {$rowx[0]='0.0.0.0';} + ### get number of agents logged in to each server $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]' and extension NOT LIKE \"R%\";"; if ($DB) {echo "|$stmt|\n";} @@ -2279,22 +2295,31 @@ else if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} $rowy=mysqli_fetch_row($rslt); - ### find out if this server has a twin - $twin_not_live=0; - $stmt="SELECT active_twin_server_ip from servers where server_ip = '$rowx[0]';"; + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$rowx[0]' and ((extension='') or (extension is null));"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01070',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $rowyy=mysqli_fetch_row($rslt); - if (strlen($rowyy[0]) > 4) + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01XXX',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowys=mysqli_fetch_row($rslt); + + ### find out if this server has a twin + $twin_not_live=0; + if ($rowy[0] > 0) { - ### find out whether the twin server_updater is running - $stmt="SELECT count(*) from server_updater where server_ip = '$rowyy[0]' and last_update > '$past_minutes_date';"; + $stmt="SELECT active_twin_server_ip from servers where server_ip = '$rowx[0]';"; if ($DB) {echo "|$stmt|\n";} $rslt=mysql_to_mysqli($stmt, $link); - if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01071',$VD_login,$server_ip,$session_name,$one_mysql_log);} - $rowyz=mysqli_fetch_row($rslt); - if ($rowyz[0] < 1) {$twin_not_live=1;} + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01070',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowyy=mysqli_fetch_row($rslt); + if (strlen($rowyy[0]) > 4) + { + ### find out whether the twin server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowyy[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01071',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowyz=mysqli_fetch_row($rslt); + if ($rowyz[0] < 1) {$twin_not_live=1;} + } } ### find out whether the server_updater is running @@ -2304,9 +2329,9 @@ else if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} $rowz=mysqli_fetch_row($rslt); - $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]|$twin_not_live| "; + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowys[0]|$rowz[0]|$twin_not_live| "; - if ( ($rowy[0] > 0) and ($rowz[0] > 0) and ($twin_not_live < 1) ) + if ( ($rowy[0] > 0) and ($rowys[0] > 0) and ($rowz[0] > 0) and ($twin_not_live < 1) ) { if ( ($pllb_grouping == 'ONE_SERVER_ONLY') or ($pllb_grouping == 'CASCADING') ) { @@ -2350,6 +2375,7 @@ else } } } + if ($DB > 0) {echo "($pb_count <> $row[0]) $pb|$pb_force_set|$phones_auto[$pb]|$pb_server_ip|$pb_count| -->\n";} if ($pb_force_set < 1) { if ( ($pb_count >= $row[0]) or (strlen($pb_server_ip) < 4) ) @@ -2364,11 +2390,7 @@ else } - - - - - echo "\n"; + echo "\n"; } ##### END phone login load balancing functions ##### @@ -3044,7 +3066,7 @@ else echo "\n"; echo "\n"; echo "
\n"; - echo ""._QXZ("Sorry, there are no available sessions")."\n"; + echo ""._QXZ("Sorry, there are no available sessions").": |$session_id|$server_ip|$extension|$SIP_user|\n"; echo "
\n"; echo "\n"; echo "\n"; diff --git a/agc_2-X/trunk/www/agc/voicemail_check.php b/agc_2-X/trunk/www/agc/voicemail_check.php index e5e8fa1d..110f8567 100644 --- a/agc_2-X/trunk/www/agc/voicemail_check.php +++ b/agc_2-X/trunk/www/agc/voicemail_check.php @@ -76,7 +76,7 @@ else { if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { - echo _QXZ("Invalid server_ip: |%1s| or Invalid session_name: |%2s|",0,'',$server_ip,$session_name)."\n"; + echo _QXZ("Invalid server_ip: %1s or Invalid session_name: %2s",0,'',$server_ip,$session_name)."\n"; exit; } else diff --git a/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php b/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php index 6ca8ff89..a1fb91d7 100644 --- a/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php +++ b/agc_2-X/trunk/www/vicidial/AST_CLOSER_service_level.php @@ -903,7 +903,7 @@ $MAIN.=""; $MAIN.="\n"; $MAIN.=_QXZ("GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP")."\n"; -$CSV_text.="\n\n\""._QXZ("HOLD TIME; CALL AND DROP STATS")."\"\n"; +$CSV_text.="\n\n\""._QXZ("HOLD TIME, CALL AND DROP STATS")."\"\n"; $CSV_text.="\""._QXZ("GRAPH IN 15 MINUTE INCREMENTS")."\"\n\""._QXZ("OF AVERAGE HOLD TIME FOR CALLS")."\"\n\""._QXZ("TAKEN INTO THIS IN-GROUP")."\"\n"; $k=1; diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index a2a6accd..d57ca6bd 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -1878,6 +1878,10 @@ if (isset($_GET["show_previous_callback"])) {$show_previous_callback=$_GET["s elseif (isset($_POST["show_previous_callback"])) {$show_previous_callback=$_POST["show_previous_callback"];} if (isset($_GET["clear_script"])) {$clear_script=$_GET["clear_script"];} elseif (isset($_POST["clear_script"])) {$clear_script=$_POST["clear_script"];} +if (isset($_GET["modify_languages"])) {$modify_languages=$_GET["modify_languages"];} + elseif (isset($_POST["modify_languages"])) {$modify_languages=$_POST["modify_languages"];} +if (isset($_GET["enable_languages"])) {$enable_languages=$_GET["enable_languages"];} + elseif (isset($_POST["enable_languages"])) {$enable_languages=$_POST["enable_languages"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} @@ -1892,7 +1896,7 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,allow_emails,level_8_disable_add,pass_key,pass_hash_enabled,disable_auto_dial,country_code_list_stats,frozen_server_call_clear,active_modules FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,allow_emails,level_8_disable_add,pass_key,pass_hash_enabled,disable_auto_dial,country_code_list_stats,frozen_server_call_clear,active_modules,enable_languages FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); @@ -1942,6 +1946,7 @@ if ($qm_conf_ct > 0) $SScountry_code_list_stats = $row[40]; $SSfrozen_server_call_clear = $row[41]; $SSactive_modules = $row[42]; + $SSenable_languages = $row[43]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -2214,6 +2219,8 @@ if ($non_latin < 1) $frozen_server_call_clear = preg_replace('/[^0-9]/','',$frozen_server_call_clear); $callback_time_24hour = preg_replace('/[^0-9]/','',$callback_time_24hour); $callback_active_limit = preg_replace('/[^0-9]/','',$callback_active_limit); + $modify_languages = preg_replace('/[^0-9]/','',$modify_languages); + $enable_languages = preg_replace('/[^0-9]/','',$enable_languages); $drop_call_seconds = preg_replace('/[^-0-9]/','',$drop_call_seconds); $timer_alt_seconds = preg_replace('/[^-0-9]/','',$timer_alt_seconds); @@ -3389,12 +3396,13 @@ else # 141124-2226 - Added clear_script campaign option # 141124-2352 - Allow spaces in user custom fields, issue #465 # 141128-0758 - Fixed carrier-related seccurity issue in carrier listings +# 141204-0559 - Fixed Contacts alt-db issue, Added user modify_languages user option and enable_languages system option # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time -$admin_version = '2.10-458a'; -$build = '141128-0758'; +$admin_version = '2.10-459a'; +$build = '141204-0559'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -3573,7 +3581,7 @@ if ( ($qc_auth > 0) and ($auth < 1) ) $qc_only_user=1; } -$stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,callcard_admin,force_change_password,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,modify_contacts,modify_same_user_level,alter_admin_interface_options,modify_custom_dialplans from vicidial_users where user='$PHP_AUTH_USER';"; +$stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,callcard_admin,force_change_password,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,modify_contacts,modify_same_user_level,alter_admin_interface_options,modify_custom_dialplans,modify_languages from vicidial_users where user='$PHP_AUTH_USER';"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $LOGfull_name =$row[3]; @@ -3625,6 +3633,7 @@ $LOGmodify_contacts =$row[81]; $LOGmodify_same_user_level =$row[82]; $LOGalter_admin_interface =$row[83]; $LOGmodify_custom_dialplans =$row[84]; +$LOGmodify_languages =$row[85]; $stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';"; $rslt=mysql_to_mysqli($stmt, $link); @@ -7859,7 +7868,7 @@ if ($ADD=="2A") $pass=''; } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,pass_hash,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,\"$pass_hash\",alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,pass_hash,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,\"$pass_hash\",alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_to_mysqli($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today,group_type) SELECT \"$user\",group_id,group_rank,group_weight,\"0\",group_type from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -10862,8 +10871,7 @@ if ($ADD==291111111111) { if ( (preg_match("/contact_information/",$SStables_use_alt_log_db)) and (strlen($SSalt_log_server_ip)>4) and (strlen($SSalt_log_dbname)>0) ) { - $linkALT=mysql_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass"); - mysql_select_db("$SSalt_log_dbname", $linkALT); + $linkALT=mysqli_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass", "$SSalt_log_dbname"); } else {$linkALT = $link;} @@ -11130,7 +11138,7 @@ if ($ADD=="4A") echo "
"._QXZ("USER MODIFIED - ADMIN").": $user\n"; - $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id',agent_call_log_view_override='$agent_call_log_view_override',callcard_admin='$callcard_admin',agent_choose_blended='$agent_choose_blended',realtime_block_user_info='$realtime_block_user_info',custom_fields_modify='$custom_fields_modify',force_change_password='$force_change_password',agent_lead_search_override='$agent_lead_search',modify_shifts='$modify_shifts',modify_phones='$modify_phones',modify_carriers='$modify_carriers',modify_labels='$modify_labels',modify_statuses='$modify_statuses',modify_voicemail='$modify_voicemail',modify_audiostore='$modify_audiostore',modify_moh='$modify_moh',modify_tts='$modify_tts',preset_contact_search='$preset_contact_search',modify_contacts='$modify_contacts',modify_same_user_level='$modify_same_user_level',admin_hide_lead_data='$admin_hide_lead_data',admin_hide_phone_data='$admin_hide_phone_data',agentcall_email='$agentcall_email',modify_email_accounts='$modify_email_accounts',failed_login_count=0,alter_admin_interface_options='$alter_admin_interface_options',max_inbound_calls='$max_inbound_calls',modify_custom_dialplans='$modify_custom_dialplans',wrapup_seconds_override='$wrapup_seconds_override' $pass_hashSQL where user='$user' $LOGadmin_viewable_groupsSQL;"; + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id',agent_call_log_view_override='$agent_call_log_view_override',callcard_admin='$callcard_admin',agent_choose_blended='$agent_choose_blended',realtime_block_user_info='$realtime_block_user_info',custom_fields_modify='$custom_fields_modify',force_change_password='$force_change_password',agent_lead_search_override='$agent_lead_search',modify_shifts='$modify_shifts',modify_phones='$modify_phones',modify_carriers='$modify_carriers',modify_labels='$modify_labels',modify_statuses='$modify_statuses',modify_voicemail='$modify_voicemail',modify_audiostore='$modify_audiostore',modify_moh='$modify_moh',modify_tts='$modify_tts',preset_contact_search='$preset_contact_search',modify_contacts='$modify_contacts',modify_same_user_level='$modify_same_user_level',admin_hide_lead_data='$admin_hide_lead_data',admin_hide_phone_data='$admin_hide_phone_data',agentcall_email='$agentcall_email',modify_email_accounts='$modify_email_accounts',failed_login_count=0,alter_admin_interface_options='$alter_admin_interface_options',max_inbound_calls='$max_inbound_calls',modify_custom_dialplans='$modify_custom_dialplans',wrapup_seconds_override='$wrapup_seconds_override',modify_languages='$modify_languages' $pass_hashSQL where user='$user' $LOGadmin_viewable_groupsSQL;"; $rslt=mysql_to_mysqli($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -14652,8 +14660,7 @@ if ($ADD==491111111111) { if ( (preg_match("/contact_information/",$SStables_use_alt_log_db)) and (strlen($SSalt_log_server_ip)>4) and (strlen($SSalt_log_dbname)>0) ) { - $linkALT=mysql_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass"); - mysql_select_db("$SSalt_log_dbname", $linkALT); + $linkALT=mysqli_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass", "$SSalt_log_dbname"); } else {$linkALT = $link;} @@ -14790,7 +14797,7 @@ if ($ADD==411111111111111) $custom_dialplanSQL=''; if ($LOGmodify_custom_dialplans > 0) {$custom_dialplanSQL = ",custom_dialplan_entry='$custom_dialplan_entry'";} - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysqli_real_escape_string($link, $webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey',first_login_trigger='$first_login_trigger',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password',admin_modify_refresh='$admin_modify_refresh',nocache_admin='$nocache_admin',generate_cross_server_exten='$generate_cross_server_exten',queuemetrics_addmember_enabled='$queuemetrics_addmember_enabled',queuemetrics_dispo_pause='$queuemetrics_dispo_pause',label_hide_field_logs='$label_hide_field_logs',queuemetrics_pe_phone_append='$queuemetrics_pe_phone_append',test_campaign_calls='$test_campaign_calls',agents_calls_reset='$agents_calls_reset',default_voicemail_timezone='$default_voicemail_timezone',default_local_gmt='$default_local_gmt',noanswer_log='$noanswer_log',alt_log_server_ip='$alt_log_server_ip',alt_log_dbname='$alt_log_dbname',alt_log_login='$alt_log_login',alt_log_pass='$alt_log_pass',tables_use_alt_log_db='$tables_use_alt_log_db',did_agent_log='$did_agent_log',campaign_cid_areacodes_enabled='$campaign_cid_areacodes_enabled',pllb_grouping_limit='$pllb_grouping_limit',did_ra_extensions_enabled='$did_ra_extensions_enabled',expanded_list_stats='$expanded_list_stats',contacts_enabled='$contacts_enabled',call_menu_qualify_enabled='$call_menu_qualify_enabled',admin_list_counts='$admin_list_counts',allow_voicemail_greeting='$allow_voicemail_greeting',queuemetrics_socket='$queuemetrics_socket',queuemetrics_socket_url='$queuemetrics_socket_url',enhanced_disconnect_logging='$enhanced_disconnect_logging',allow_emails='$allow_emails',level_8_disable_add='$level_8_disable_add',queuemetrics_record_hold='$queuemetrics_record_hold',country_code_list_stats='$country_code_list_stats',queuemetrics_pause_type='$queuemetrics_pause_type',frozen_server_call_clear='$frozen_server_call_clear',callback_time_24hour='$callback_time_24hour'$custom_dialplanSQL;"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform',default_webphone='$default_webphone',default_external_server_ip='$default_external_server_ip',webphone_url='" . mysqli_real_escape_string($link, $webphone_url) . "',enable_agc_dispo_log='$enable_agc_dispo_log',queuemetrics_loginout='$queuemetrics_loginout',callcard_enabled='$callcard_enabled',queuemetrics_callstatus='$queuemetrics_callstatus',default_codecs='$default_codecs',admin_web_directory='$admin_web_directory',label_title='$label_title',label_first_name='$label_first_name',label_middle_initial='$label_middle_initial',label_last_name='$label_last_name',label_address1='$label_address1',label_address2='$label_address2',label_address3='$label_address3',label_city='$label_city',label_state='$label_state',label_province='$label_province',label_postal_code='$label_postal_code',label_vendor_lead_code='$label_vendor_lead_code',label_gender='$label_gender',label_phone_number='$label_phone_number',label_phone_code='$label_phone_code',label_alt_phone='$label_alt_phone',label_security_phrase='$label_security_phrase',label_email='$label_email',label_comments='$label_comments',custom_fields_enabled='$custom_fields_enabled',slave_db_server='$slave_db_server',reports_use_slave_db='$reports_use_slave_db',webphone_systemkey='$webphone_systemkey',first_login_trigger='$first_login_trigger',default_phone_registration_password='$default_phone_registration_password',default_phone_login_password='$default_phone_login_password',default_server_password='$default_server_password',admin_modify_refresh='$admin_modify_refresh',nocache_admin='$nocache_admin',generate_cross_server_exten='$generate_cross_server_exten',queuemetrics_addmember_enabled='$queuemetrics_addmember_enabled',queuemetrics_dispo_pause='$queuemetrics_dispo_pause',label_hide_field_logs='$label_hide_field_logs',queuemetrics_pe_phone_append='$queuemetrics_pe_phone_append',test_campaign_calls='$test_campaign_calls',agents_calls_reset='$agents_calls_reset',default_voicemail_timezone='$default_voicemail_timezone',default_local_gmt='$default_local_gmt',noanswer_log='$noanswer_log',alt_log_server_ip='$alt_log_server_ip',alt_log_dbname='$alt_log_dbname',alt_log_login='$alt_log_login',alt_log_pass='$alt_log_pass',tables_use_alt_log_db='$tables_use_alt_log_db',did_agent_log='$did_agent_log',campaign_cid_areacodes_enabled='$campaign_cid_areacodes_enabled',pllb_grouping_limit='$pllb_grouping_limit',did_ra_extensions_enabled='$did_ra_extensions_enabled',expanded_list_stats='$expanded_list_stats',contacts_enabled='$contacts_enabled',call_menu_qualify_enabled='$call_menu_qualify_enabled',admin_list_counts='$admin_list_counts',allow_voicemail_greeting='$allow_voicemail_greeting',queuemetrics_socket='$queuemetrics_socket',queuemetrics_socket_url='$queuemetrics_socket_url',enhanced_disconnect_logging='$enhanced_disconnect_logging',allow_emails='$allow_emails',level_8_disable_add='$level_8_disable_add',queuemetrics_record_hold='$queuemetrics_record_hold',country_code_list_stats='$country_code_list_stats',queuemetrics_pause_type='$queuemetrics_pause_type',frozen_server_call_clear='$frozen_server_call_clear',callback_time_24hour='$callback_time_24hour',enable_languages='$enable_languages'$custom_dialplanSQL;"; $rslt=mysql_to_mysqli($stmt, $link); if ($reload_dialplan_on_servers > 0) @@ -16051,8 +16058,7 @@ if ($ADD==62) if ($queuemetrics_loginout=='CALLBACK') {$QM_LOGOFF = 'AGENTCALLBACKLOGOFF';} - $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); - mysql_select_db("$queuemetrics_dbname", $linkB); + $linkB=mysqli_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass","$queuemetrics_dbname"); $agents='@agents'; $agent_logged_in=''; @@ -17491,8 +17497,7 @@ if ($ADD==691111111111) { if ( (preg_match("/contact_information/",$SStables_use_alt_log_db)) and (strlen($SSalt_log_server_ip)>4) and (strlen($SSalt_log_dbname)>0) ) { - $linkALT=mysql_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass"); - mysql_select_db("$SSalt_log_dbname", $linkALT); + $linkALT=mysqli_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass", "$SSalt_log_dbname"); } else {$linkALT = $link;} @@ -17611,7 +17616,7 @@ if ($ADD==3) echo "\n"; echo "\n"; echo "\n"; - if ($SSallow_emails > 0) { + if ($SSallow_emails > 0) + { echo "\n"; } else @@ -17957,6 +17964,14 @@ if ($ADD==3) echo "\n"; } echo "\n"; + if ($SSenable_languages > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -29346,8 +29361,7 @@ if ($ADD==391111111111) if ( (preg_match("/contact_information/",$SStables_use_alt_log_db)) and (strlen($SSalt_log_server_ip)>4) and (strlen($SSalt_log_dbname)>0) ) { - $linkALT=mysql_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass"); - mysql_select_db("$SSalt_log_dbname", $linkALT); + $linkALT=mysqli_connect("$SSalt_log_server_ip", "$SSalt_log_login", "$SSalt_log_pass", "$SSalt_log_dbname"); } else {$linkALT = $link;} @@ -29598,7 +29612,7 @@ if ($ADD==311111111111111) $ALLagent_count = $rowx[2]; } - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey,first_login_trigger,default_phone_registration_password,default_phone_login_password,default_server_password,admin_modify_refresh,nocache_admin,generate_cross_server_exten,queuemetrics_addmember_enabled,queuemetrics_dispo_pause,label_hide_field_logs,queuemetrics_pe_phone_append,test_campaign_calls,agents_calls_reset,default_voicemail_timezone,default_local_gmt,noanswer_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_agent_log,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,queuemetrics_socket,queuemetrics_socket_url,enhanced_disconnect_logging,allow_emails,level_8_disable_add,pass_hash_enabled,pass_key,pass_cost,disable_auto_dial,queuemetrics_record_hold,country_code_list_stats,reload_timestamp,queuemetrics_pause_type,frozen_server_call_clear,callback_time_24hour from system_settings;"; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform,default_webphone,default_external_server_ip,webphone_url,enable_agc_dispo_log,custom_dialplan_entry,queuemetrics_loginout,callcard_enabled,queuemetrics_callstatus,default_codecs,admin_web_directory,label_title,label_first_name,label_middle_initial,label_last_name,label_address1,label_address2,label_address3,label_city,label_state,label_province,label_postal_code,label_vendor_lead_code,label_gender,label_phone_number,label_phone_code,label_alt_phone,label_security_phrase,label_email,label_comments,custom_fields_enabled,slave_db_server,reports_use_slave_db,webphone_systemkey,first_login_trigger,default_phone_registration_password,default_phone_login_password,default_server_password,admin_modify_refresh,nocache_admin,generate_cross_server_exten,queuemetrics_addmember_enabled,queuemetrics_dispo_pause,label_hide_field_logs,queuemetrics_pe_phone_append,test_campaign_calls,agents_calls_reset,default_voicemail_timezone,default_local_gmt,noanswer_log,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,did_agent_log,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,queuemetrics_socket,queuemetrics_socket_url,enhanced_disconnect_logging,allow_emails,level_8_disable_add,pass_hash_enabled,pass_key,pass_cost,disable_auto_dial,queuemetrics_record_hold,country_code_list_stats,reload_timestamp,queuemetrics_pause_type,frozen_server_call_clear,callback_time_24hour,enable_languages from system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $version = $row[0]; @@ -29725,6 +29739,7 @@ if ($ADD==311111111111111) $queuemetrics_pause_type = $row[121]; $frozen_server_call_clear = $row[122]; $callback_time_24hour = $row[123]; + $enable_languages = $row[124]; if ($pass_hash_enabled > 0) {$pass_hash_enabled = 'ENABLED';} else {$pass_hash_enabled = 'DISABLED';} @@ -29749,6 +29764,7 @@ if ($ADD==311111111111111) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo " 1) - { + { if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} else {$times_sh=''; $times_fc='BLACK';} if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} @@ -1488,6 +1490,8 @@ $SSchat_enabled = $row[6]; else {$audio_sh=''; $audio_fc='BLACK';} if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='languages') {$languages_sh="bgcolor=\"$languages_color\""; $languages_fc="$languages_font";} + else {$languages_sh=''; $languages_fc='BLACK';} if ( preg_match("/avatar/",$SSactive_modules) ) { if ($sh=='avatar') {$avatar_sh="bgcolor=\"$avatar_color\""; $avatar_fc="$avatar_font";} @@ -1546,6 +1550,12 @@ $SSchat_enabled = $row[6]; SIZE=> 0) + { ?> + > + + @@ -1704,6 +1714,10 @@ $SSchat_enabled = $row[6]; ?> > 1) and (strlen($admin_hh) > 1) and ($SSenable_languages > 0) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { diff --git a/agc_2-X/trunk/www/vicidial/admin_languages.php b/agc_2-X/trunk/www/vicidial/admin_languages.php new file mode 100644 index 00000000..22309f86 --- /dev/null +++ b/agc_2-X/trunk/www/vicidial/admin_languages.php @@ -0,0 +1,1535 @@ + LICENSE: AGPLv2 +# +# this screen manages the optional language tables in ViciDial +# +# changes: +# 141203-2126 - First Build +# + +$admin_version = '2.10-1'; +$build = '141203-2126'; + +require("dbconnect_mysqli.php"); +require("functions.php"); + +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (isset($_GET["language_id"])) {$language_id=$_GET["language_id"];} + elseif (isset($_POST["language_id"])) {$language_id=$_POST["language_id"];} +if (isset($_GET["language_code"])) {$language_code=$_GET["language_code"];} + elseif (isset($_POST["language_code"])) {$language_code=$_POST["language_code"];} +if (isset($_GET["language_description"])) {$language_description=$_GET["language_description"];} + elseif (isset($_POST["language_description"])) {$language_description=$_POST["language_description"];} +if (isset($_GET["source_language_id"])) {$source_language_id=$_GET["source_language_id"];} + elseif (isset($_POST["source_language_id"])) {$source_language_id=$_POST["source_language_id"];} +if (isset($_GET["english_text"])) {$english_text=$_GET["english_text"];} + elseif (isset($_POST["english_text"])) {$english_text=$_POST["english_text"];} +if (isset($_GET["translated_text"])) {$translated_text=$_GET["translated_text"];} + elseif (isset($_POST["translated_text"])) {$translated_text=$_POST["translated_text"];} +if (isset($_GET["phrase_id"])) {$phrase_id=$_GET["phrase_id"];} + elseif (isset($_POST["phrase_id"])) {$phrase_id=$_POST["phrase_id"];} +if (isset($_GET["import_data"])) {$import_data=$_GET["import_data"];} + elseif (isset($_POST["import_data"])) {$import_data=$_POST["import_data"];} + +if (isset($_GET["copy_option"])) {$copy_option=$_GET["copy_option"];} + elseif (isset($_POST["copy_option"])) {$copy_option=$_POST["copy_option"];} +if (isset($_GET["ConFiRm"])) {$ConFiRm=$_GET["ConFiRm"];} + elseif (isset($_POST["ConFiRm"])) {$ConFiRm=$_POST["ConFiRm"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if ($ADD=='AJAXtranslateSUBMIT') + { + $PHP_AUTH_USER=$user; + $PHP_AUTH_PW=$pass; + } +else + { + $PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; + $PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + } +$PHP_SELF=$_SERVER['PHP_SELF']; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan,callcard_enabled,admin_modify_refresh,nocache_admin,webroot_writable,allow_emails,active_modules,sounds_central_control_active,qc_features_active,contacts_enabled,enable_languages FROM system_settings;"; +$rslt=mysql_to_mysqli($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysqli_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysqli_fetch_row($rslt); + $non_latin = $row[0]; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; + $SScallcard_enabled = $row[4]; + $SSadmin_modify_refresh = $row[5]; + $SSnocache_admin = $row[6]; + $SSwebroot_writable = $row[7]; + $SSemail_enabled = $row[8]; + $SSactive_modules = $row[9]; + $sounds_central_control_active =$row[10]; + $SSqc_features_active = $row[11]; + $SScontacts_enabled = $row[12]; + $SSenable_languages = $row[13]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if (strlen($DB) < 1) + {$DB=0;} +$modify_refresh_set=0; + +if ($non_latin < 1) + { + $PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_PW); + $user = preg_replace('/[^-_0-9a-zA-Z]/','',$user); + $pass = preg_replace('/[^-_0-9a-zA-Z]/','',$pass); + + $DB = preg_replace('/[^0-9]/','',$DB); + $rank = preg_replace('/[^0-9]/','',$rank); + $level = preg_replace('/[^0-9]/','',$level); + $parent_rank = preg_replace('/[^0-9]/','',$parent_rank); + $phrase_id = preg_replace('/[^0-9]/','',$phrase_id); + + $active = preg_replace('/[^NY]/','',$active); + + $ConFiRm = preg_replace('/[^0-9a-zA-Z]/','',$ConFiRm); + + $language_id = preg_replace('/[^-_0-9a-zA-Z]/','',$language_id); + $source_language_id = preg_replace('/[^-_0-9a-zA-Z]/','',$source_language_id); + $language_code = preg_replace('/[^-_0-9a-zA-Z]/','',$language_code); + $language_description = preg_replace('/[^- _0-9a-zA-Z]/','',$language_description); + $english_text = preg_replace("/\\\\|;/","",$english_text); + $translated_text = preg_replace("/\\\\|;/","",$translated_text); + $import_data = preg_replace("/\\\\|;/","",$import_data); + + $copy_option = preg_replace('/[^_0-9a-zA-Z]/','',$copy_option); + $stage = preg_replace('/[^-_0-9a-zA-Z]/', '',$stage); + $user_group = preg_replace('/[^-_0-9a-zA-Z]/', '',$user_group); + } # end of non_latin +else + { + $PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER); + $PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW); + $user = preg_replace("/'|\"|\\\\|;/","",$user); + $pass = preg_replace("/'|\"|\\\\|;/","",$pass); + $language_id = preg_replace("/'|\"|\\\\|;/","",$language_id); + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +if (strlen($user)<2) + {$user = $PHP_AUTH_USER;} +$US='_'; +$DS='-----'; + +if (file_exists('options.php')) + {require('options.php');} + +$auth=0; +$auth_message = user_authorization($PHP_AUTH_USER,$PHP_AUTH_PW,'',1); +if ($auth_message == 'GOOD') + {$auth=1;} + +if ($auth < 1) + { + $VDdisplayMESSAGE = _QXZ("Login incorrect, please try again"); + if ($auth_message == 'LOCK') + { + $VDdisplayMESSAGE = _QXZ("Too many login attempts, try again in 15 minutes"); + Header ("Content-type: text/html; charset=utf-8"); + echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$auth_message|\n"; + exit; + } + Header("WWW-Authenticate: Basic realm=\"CONTACT-CENTER-ADMIN\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "$VDdisplayMESSAGE: |$PHP_AUTH_USER|$PHP_AUTH_PW|$auth_message|\n"; + exit; + } + +$rights_stmt = "SELECT modify_languages from vicidial_users where user='$PHP_AUTH_USER';"; +if ($DB) {echo "|$stmt|\n";} +$rights_rslt=mysql_to_mysqli($rights_stmt, $link); +$rights_row=mysqli_fetch_row($rights_rslt); +$modify_languages = $rights_row[0]; + +# check their permissions +if ( ($modify_languages < 1) or ($SSenable_languages < 1) ) + { + header ("Content-type: text/html; charset=utf-8"); + echo _QXZ("You do not have permissions to modify languages")."\n"; + exit; + } + +$stmt="SELECT full_name,modify_scripts,user_level,user_group,qc_enabled from vicidial_users where user='$PHP_AUTH_USER';"; +if ($DB) {echo "$stmt\n";} +$rslt=mysql_to_mysqli($stmt, $link); +$row=mysqli_fetch_row($rslt); +$LOGfullname = $row[0]; +$LOGmodify_scripts = $row[1]; +$LOGuser_level = $row[2]; +$LOGuser_group = $row[3]; +$qc_auth = $row[4]; + +$stmt="SELECT allowed_campaigns,allowed_reports,admin_viewable_groups,admin_viewable_call_times from vicidial_user_groups where user_group='$LOGuser_group';"; +if ($DB) {echo "$stmt\n";} +$rslt=mysql_to_mysqli($stmt, $link); +$row=mysqli_fetch_row($rslt); +$LOGallowed_campaigns = $row[0]; +$LOGallowed_reports = $row[1]; +$LOGadmin_viewable_groups = $row[2]; +$LOGadmin_viewable_call_times = $row[3]; + + + +################################################################################ +##### BEGIN update translation from AJAX request processing ##### +if ($ADD=='AJAXtranslateSUBMIT') + { + if ( (strlen($session_name)<2) or (strlen($stage)<3) ) + { + echo _QXZ("ERROR: incomplete input")."\n"; + } + else + { + $phrase_ary = explode('-----',$stage); + $language_id = $phrase_ary[1]; + $phrase_id = $phrase_ary[2]; + $translated_text = addslashes($translated_text); + + $stmt="SELECT count(*) from vicidial_languages where language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] < 1) + {echo _QXZ("LANGUAGE ENTRY DOES NOT EXIST").": $language_id";} + else + { + $stmt="SELECT count(*) from vicidial_language_phrases where language_id='$language_id' and phrase_id='$phrase_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] < 1) + {echo _QXZ("LANGUAGE PHRASE ENTRY DOES NOT EXIST").": $language_id $phrase_id";} + else + { + $stmt="UPDATE vicidial_language_phrases set translated_text='$translated_text',source='$user' where language_id='$language_id' and phrase_id='$phrase_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + + $stmtA="UPDATE vicidial_languages SET modify_date=NOW() where language_id='$language_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_to_mysqli($stmtA, $link); + + echo _QXZ("LANGUAGE PHRASE ENTRY MODIFIED").": $language_id $phrase_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='MODIFY', record_id='$language_id', event_code='ADMIN MODIFY LANGUAGE PHRASE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + } + exit; + } +##### END update translation from AJAX request ##### +################################################################################ + +###################### +# ADD=263411111111 export language phrases +###################### + +if ($ADD==263411111111) + { + if ($modify_languages==1) + { + if ($stage == 'ONLY_UNTRANSLATED') + { + $TXTfilename = "LANGUAGE_UNTRANSLATED_$language_id$US$FILE_TIME.txt"; + $stmt="SELECT english_text,translated_text from vicidial_language_phrases where language_id='$language_id' and ( (translated_text='') or (translated_text is NULL) );"; + } + elseif ($stage == 'ONLY_TRANSLATED') + { + $TXTfilename = "LANGUAGE_TRANSLATED_$language_id$US$FILE_TIME.txt"; + $stmt="SELECT english_text,translated_text from vicidial_language_phrases where language_id='$language_id' and ( (translated_text!='') and (translated_text is not NULL) );"; + } + else + { + $TXTfilename = "LANGUAGE_ALL_$language_id$US$FILE_TIME.txt"; + $stmt="SELECT english_text,translated_text from vicidial_language_phrases where language_id='$language_id';"; + } + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LANGUAGE_101_20141203-121212.txt + header("Content-Disposition: attachment; filename=\"$TXTfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + $rslt=mysql_to_mysqli($stmt, $link); + $phrases_to_print = mysqli_num_rows($rslt); + $o=0; + while ($phrases_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + $english_text = $row[0]; + $translated_text = $row[1]; + + if ($stage == 'ONLY_UNTRANSLATED') + {echo "$english_text\n";} + else + {echo "$english_text|$translated_text||\n";} + $o++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='EXPORT', record_id='$language_id', event_code='ADMIN EXPORT LANGUAGE PHRASES', event_sql=\"$SQL_log\", event_notes='$TXTfilename|$stage|$o records';"; + $rslt=mysql_to_mysqli($stmt, $link); + } + exit; + } +##### END ADD=263411111111 export language phrases ##### +################################################################################ + + + +?> + + + + + + + + + 1) and (preg_match("/^3/",$ADD)) ) + { + $modify_refresh_set=1; + if (preg_match("/^3/",$ADD)) {$modify_url = "$PHP_SELF?$QUERY_STRING";} + echo "\n"; + } +?> + + + +<?php echo _QXZ("ADMINISTRATION: Languages"); ?> +<?php + +################################################################################ +##### BEGIN help section +if ($action == "HELP") + { + ?> + + + +
+
\n"; echo ""; - $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,failed_login_count,last_login_date,last_ip,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override from vicidial_users where user='$user' $LOGadmin_viewable_groupsSQL;"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id,agent_call_log_view_override,callcard_admin,agent_choose_blended,realtime_block_user_info,custom_fields_modify,force_change_password,agent_lead_search_override,modify_shifts,modify_phones,modify_carriers,modify_labels,modify_statuses,modify_voicemail,modify_audiostore,modify_moh,modify_tts,preset_contact_search,modify_contacts,modify_same_user_level,admin_hide_lead_data,admin_hide_phone_data,agentcall_email,modify_email_accounts,failed_login_count,last_login_date,last_ip,alter_admin_interface_options,max_inbound_calls,modify_custom_dialplans,wrapup_seconds_override,modify_languages from vicidial_users where user='$user' $LOGadmin_viewable_groupsSQL;"; $rslt=mysql_to_mysqli($stmt, $link); $row=mysqli_fetch_row($rslt); $user_id = $row[0]; @@ -17719,6 +17724,7 @@ if ($ADD==3) $max_inbound_calls = $row[104]; $modify_custom_dialplans = $row[105]; $wrapup_seconds_override = $row[106]; + $modify_languages = $row[107]; if ( ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) or ( ($LOGmodify_same_user_level < 1) and ($LOGuser_level > 8) and ($user_level > 8) ) ) { @@ -17949,7 +17955,8 @@ if ($ADD==3) echo "
"._QXZ("Modify Shifts").": $NWB#users-modify_sections$NWE
"._QXZ("Modify Phones").": $NWB#users-modify_sections$NWE
"._QXZ("Modify Carriers").": $NWB#users-modify_sections$NWE
"._QXZ("Modify Email Accounts").": $NWB#users-modify_email_accounts$NWE
"._QXZ("Modify Labels").": $NWB#users-modify_sections$NWE
"._QXZ("Modify Languages").": $NWB#users-modify_sections$NWE
"._QXZ("Modify Statuses").": $NWB#users-modify_sections$NWE
"._QXZ("Modify Voicemail").": $NWB#users-modify_sections$NWE
"._QXZ("Modify Audio Store").": $NWB#users-modify_sections$NWE
"._QXZ("Phone Codes").": $pcblinkB$vicidial_phone_codes_count - $vicidial_postal_codes_count - $vicidial_nanpa_prefix_codes_count$pcblinkE - $nanpa_prefix_exchanges_master_count - $nanpa_prefix_exchanges_fast_count - $nanpa_wired_to_wireless_count - $nanpa_wireless_to_wired_count
"._QXZ("Today System Stats").": $ALLtotal_calls - $ALLmax_inbound - $ALLmax_outbound - $ALLchannels_count - $ALLcalls_count - $ALLagent_count
"._QXZ("Use Non-Latin").": $NWB#settings-use_non_latin$NWE
"._QXZ("Enable Languages").": $NWB#settings-enable_languages$NWE
"._QXZ("Webroot Writable").": $NWB#settings-webroot_writable$NWE
"._QXZ("Agent Disable Display").":
>   + SIZE=>
  >   |   >
  >   |   >   |   >   |   >   |   >  
+ + +
+ +
+ - + +
+
+
+ - + +
+
+
+ - + +
+
+
+ - + +
+
+
+ - + +
+
+
+ - + +
+
+
+ - + +
+
+
+ - + + +
+
+
+ - + + +
+ + + \n"; + ?> + + \n"; + echo "\n"; + echo "
\n"; + echo "\n"; + if ( ($SSadmin_modify_refresh > 1) and ($modify_refresh_set < 1) ) + { + $modify_url = "$PHP_SELF?ADD=363211111111&language_id=$language_id"; + $modify_footer_refresh=1; + } + + $displaySQL=''; + if ($action=='NOTTRANSLATED') + { + $displaySQL="and ( (translated_text='') or (translated_text is NULL) )"; + echo _QXZ("ONLY NOT TRANSLATED PHRASES")."
\n"; + } + elseif ($action=='TRANSLATED') + { + $displaySQL="and ( (translated_text!='') or (translated_text is not NULL) )"; + echo _QXZ("ONLY TRANSLATED PHRASES")."
\n"; + } + else + { + echo _QXZ("ALL PHRASES")."
\n"; + } + + echo "\n"; + + $stmt="SELECT count(*) from vicidial_languages where language_id='$language_id' $LOGadmin_viewable_groupsSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $language_exists = $row[0]; + if ($language_exists > 0) + { + $stmt="SELECT phrase_id,english_text,translated_text,source,modify_date from vicidial_language_phrases where language_id='$language_id' $displaySQL $LOGadmin_viewable_groupsSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $phrases_to_print = mysqli_num_rows($rslt); + $o=0; + while ($phrases_to_print > $o) + { + $o++; + $row=mysqli_fetch_row($rslt); + $phrase_id = $row[0]; + $english_text = $row[1]; + $translated_text = $row[2]; + $source = $row[3]; + $modify_date = $row[4]; + + $ttbgcolor='#B6D3FC'; + if (strlen($translated_text) < 1) + {$ttbgcolor='#FFFF99';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "
$o"._QXZ("ID").": $phrase_id"._QXZ("user").": $source"._QXZ("last modified").": $modify_date"._QXZ("delete phrase")."
$english_text
$translated_text"; + echo "   "; + echo "edit
\n"; + } + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + } + echo "\n"; + echo "\n"; + exit; + } + + + + +##### BEGIN Set variables to make header show properly ##### +#$ADD = '100'; +$hh = 'admin'; +$sh = 'languages'; +$LOGast_admin_access = '1'; +$SSoutbound_autodial_active = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$admin_color = '#E6E6E6'; +$languages_color = '#C6C6C6'; +$languages_font = 'BLACK'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +if ( (!isset($ADD)) or (strlen($ADD)<1) ) {$ADD="163000000000";} + +if ($ADD==163111111111) {$hh='admin'; $sh='languages'; echo _QXZ("ADD LANGUAGE ENTRY");} +if ($ADD==163211111111) {$hh='admin'; $sh='languages'; echo _QXZ("COPY LANGUAGE ENTRY");} +if ($ADD==163311111111) {$hh='admin'; $sh='languages'; echo _QXZ("IMPORT LANGUAGE PHRASES");} +if ($ADD==163411111111) {$hh='admin'; $sh='languages'; echo _QXZ("EXPORT LANGUAGE PHRASES");} +if ($ADD==263111111111) {$hh='admin'; $sh='languages'; echo _QXZ("ADDING NEW LANGUAGE ENTRY");} +if ($ADD==263211111111) {$hh='admin'; $sh='languages'; echo _QXZ("COPYING NEW LANGUAGE ENTRY");} +if ($ADD==263311111111) {$hh='admin'; $sh='languages'; echo _QXZ("IMPORT LANGUAGE PHRASES");} +if ($ADD==363111111111) {$hh='admin'; $sh='languages'; echo _QXZ("MODIFY LANGUAGE ENTRY");} +if ($ADD==363211111111) {$hh='admin'; $sh='languages'; echo _QXZ("MODIFY LANGUAGE PHRASE ENTRY");} +if ($ADD==463111111111) {$hh='admin'; $sh='languages'; echo _QXZ("MODIFY LANGUAGE ENTRY");} +if ($ADD==563111111111) {$hh='admin'; $sh='languages'; echo _QXZ("DELETE LANGUAGE ENTRY");} +if ($ADD==663111111111) {$hh='admin'; $sh='languages'; echo _QXZ("DELETE LANGUAGE ENTRY");} +if ($ADD==163000000000) {$hh='admin'; $sh='languages'; echo _QXZ("LANGUAGE LIST");} +if ($ADD==763000000000) {$hh='admin'; $sh='languages'; echo _QXZ("ADMIN LOG");} + + +$NWB = "   \"HELP\""; + + + +##### user group permissions +$admin_viewable_groupsALL=0; +$LOGadmin_viewable_groupsSQL=''; +$whereLOGadmin_viewable_groupsSQL=''; +$valLOGadmin_viewable_groupsSQL=''; +$vmLOGadmin_viewable_groupsSQL=''; +if ( (!preg_match('/\-\-ALL\-\-/i',$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) ) + { + $rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups); + $rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL); + $LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')"; + $whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')"; + $valLOGadmin_viewable_groupsSQL = "and val.user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')"; + $vmLOGadmin_viewable_groupsSQL = "and vm.user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')"; + } +else + {$admin_viewable_groupsALL=1;} +$regexLOGadmin_viewable_groups = " $LOGadmin_viewable_groups "; + +$UUgroups_list=''; +if ($admin_viewable_groupsALL > 0) + {$UUgroups_list .= "\n";} +$stmt="SELECT user_group,group_name from vicidial_user_groups $whereLOGadmin_viewable_groupsSQL order by user_group;"; +if ($DB) {echo "$stmt\n";} +$rslt=mysql_to_mysqli($stmt, $link); +$UUgroups_to_print = mysqli_num_rows($rslt); +$o=0; +while ($UUgroups_to_print > $o) + { + $rowx=mysqli_fetch_row($rslt); + $UUgroups_list .= "\n"; + $o++; + } + + + +require("admin_header.php"); + +if ( ($modify_languages < 1) or ($LOGuser_level < 8) ) + { + echo _QXZ("You are not authorized to view this section")."\n"; + exit; + } + + +###################### +# ADD=163111111111 display the ADD NEW LANGUAGE ENTRY SCREEN +###################### + +if ($ADD==163111111111) + { + if ($modify_languages==1) + { + $stmt="SELECT count(*) from www_phrases;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $gathered_phrases_TOTAL = $row[0]; + + $stmt="SELECT count(*) from www_phrases where php_directory LIKE \"%agc%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $gathered_phrases_AGC = $row[0]; + $gathered_phrases_ADMIN = ($gathered_phrases_TOTAL - $gathered_phrases_AGC); + + echo "
\n"; + echo ""; + + echo "
"._QXZ("ADD NEW LANGUAGE ENTRY")."\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($gathered_phrases_TOTAL > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
"._QXZ("Language ID").": $NWB#languages-language_id$NWE
"._QXZ("Language Description").": $NWB#languages-language_description$NWE
"._QXZ("Language Code").": $NWB#languages-language_code$NWE
"._QXZ("Admin User Group").": $NWB#languages-user_group$NWE
"._QXZ("Populate Language").": $NWB#languages-populate$NWE
\n"; + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + + + + +###################### +# ADD=163211111111 display the COPY NEW LANGUAGE ENTRY SCREEN +###################### + +if ($ADD==163211111111) + { + if ($modify_languages==1) + { + echo "
\n"; + echo ""; + + echo "
"._QXZ("COPY A LANGUAGE ENTRY")."\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
"._QXZ("Language ID").": $NWB#languages-language_id$NWE
"._QXZ("Source Language ID").": $NWB#languages-language_id$NWE
\n"; + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + + + +###################### +# ADD=163311111111 display the IMPORT LANGUAGE PHRASES SCREEN +###################### + +if ($ADD==163311111111) + { + if ($modify_languages==1) + { + echo "
\n"; + echo ""; + + echo "
"._QXZ("IMPORT LANGUAGE PHRASES")."\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
"._QXZ("Language ID").": $NWB#languages-language_id$NWE
"._QXZ("Import Action").": $NWB#languages-import_action$NWE
"._QXZ("Import Data").": $NWB#languages-import_data$NWE
\n"; + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + + + +###################### +# ADD=163411111111 display the EXPORT LANGUAGE PHRASES SCREEN +###################### + +if ($ADD==163411111111) + { + if ($modify_languages==1) + { + echo "
\n"; + echo ""; + + echo "
"._QXZ("EXPORT LANGUAGE PHRASES")."\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
"._QXZ("Language ID").": $NWB#languages-language_id$NWE
"._QXZ("Export Action").": $NWB#languages-export_action$NWE
\n"; + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + + + + +###################### +# ADD=263111111111 adds new language entry to the system +###################### + +if ($ADD==263111111111) + { + if ($add_copy_disabled > 0) + { + echo "
"._QXZ("You do not have permission to add records on this system")." -system_settings-\n"; + } + else + { + echo ""; + $stmt="SELECT count(*) from vicidial_languages where language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] > 0) + {echo "
"._QXZ("LANGUAGE ENTRY NOT ADDED - there is already a language entry in the system with this ID")."\n";} + else + { + if ( (strlen($language_id) < 2) or (strlen($language_description) < 3) ) + {echo "
"._QXZ("LANGUAGE ENTRY NOT ADDED - Please go back and look at the data you entered")."\n";} + else + { + echo "
"._QXZ("LANGUAGE ENTRY ADDED")."\n"; + + $stmt="INSERT INTO vicidial_languages SET language_id='$language_id',language_description='$language_description',language_code='$language_code',user_group='$user_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $affected_rows = mysqli_affected_rows($link); + + if (preg_match("/ALL|AGENT|ADMIN/",$stage)) + { + $www_phraseSQL=''; + if ($stage == 'AGENT') + {$www_phraseSQL='where php_directory LIKE "%agc%"';} + if ($stage == 'ADMIN') + {$www_phraseSQL='where php_directory NOT LIKE "%agc%"';} + $stmtA="INSERT INTO vicidial_language_phrases (language_id,english_text) SELECT '$language_id',phrase_text from www_phrases $www_phraseSQL;"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_to_mysqli($stmtA, $link); + $affected_rowsA = mysqli_affected_rows($link); + + echo "
"._QXZ("POPULATED WITH GATHERED PHRASES").": $affected_rowsA\n"; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='ADD', record_id='$language_id', event_code='ADMIN ADD LANGUAGE', event_sql=\"$SQL_log\", event_notes='$affected_rows|$affected_rowsA';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + } + $ADD=363111111111; + } + + +###################### +# ADD=263211111111 adds copied language entry to the system +###################### + +if ($ADD==263211111111) + { + if ($add_copy_disabled > 0) + { + echo "
"._QXZ("You do not have permission to add records on this system")." -system_settings-\n"; + } + else + { + echo ""; + $stmt="SELECT count(*) from vicidial_languages where language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] > 0) + {echo "
"._QXZ("LANGUAGE ENTRY NOT ADDED - there is already a language entry in the system with this ID")."\n";} + else + { + if ( (strlen($language_id) < 2) or (strlen($language_description) < 3) or (strlen($source_language_id) < 2) ) + {echo "
"._QXZ("LANGUAGE ENTRY NOT ADDED - Please go back and look at the data you entered")."\n";} + else + { + $stmt="SELECT count(*) from vicidial_languages where language_id='$source_language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] < 1) + {echo "
"._QXZ("LANGUAGE ENTRY NOT COPIED - invalid source language")."\n";} + else + { + echo "
"._QXZ("LANGUAGE ENTRY COPIED")."\n"; + + $stmt="INSERT INTO vicidial_languages (language_id,language_description,language_code,user_group) SELECT '$language_id',language_description,language_code,user_group from vicidial_languages where language_id='$source_language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $affected_rows = mysqli_affected_rows($link); + + $stmtA="INSERT INTO vicidial_language_phrases (language_id,phrase_id,english_text,translated_text,source) SELECT '$language_id',phrase_id,english_text,translated_text,source from vicidial_language_phrases where language_id='$source_language_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_to_mysqli($stmtA, $link); + $affected_rowsA = mysqli_affected_rows($link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='COPY', record_id='$language_id', event_code='ADMIN COPY LANGUAGE', event_sql=\"$SQL_log\", event_notes='$source_language_id|$affected_rows|$affected_rowsA';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + } + } + $ADD=363111111111; + } + + +###################### +# ADD=263311111111 processes imported language phrase data in the system +###################### + +if ($ADD==263311111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_languages where language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $stmtLIST = $stmt; + if ($row[0] < 1) + {echo "
"._QXZ("LANGUAGE ENTRY DOES NOT EXIST")."\n";} + else + { + if ( (strlen($import_data) < 2) or (strlen($stage) < 1) ) + {echo "
"._QXZ("LANGUAGE IMPORT NOT PROCESSED - Please go back and look at the data you entered")."\n";} + else + { + $phrase_updates=0; + $phrase_inserts=0; + $import_data_lines = explode("\n",$import_data); + $import_data_lines_ct = count($import_data_lines); + $i=0; + while ($i < $import_data_lines_ct) + { + $import_data_lines_ary = explode('|',$import_data_lines[$i]); + $import_data_lines_ary_ct = count($import_data_lines_ary); + if ($DB > 0) {echo "$i|$import_data_lines_ary_ct|$import_data_lines_ary[0]|$import_data_lines_ary[1]|\n";} + + if ( ($import_data_lines_ary_ct > 0) and (strlen($import_data_lines_ary[0]) > 0) and (!preg_match("/^\#/",$import_data_lines_ary)) ) + { + $import_data_lines_ary[0] = addslashes($import_data_lines_ary[0]); + $stmt="SELECT count(*) from vicidial_language_phrases where language_id='$language_id' and english_text='$import_data_lines_ary[0]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] < 1) + { + if ( ($stage=='ADD') or ($stage=='ADD_UPDATE') ) + { + $import_data_lines_ary[1] = addslashes($import_data_lines_ary[1]); + $stmt="INSERT INTO vicidial_language_phrases set english_text='$import_data_lines_ary[0]',translated_text='$import_data_lines_ary[1]', language_id='$language_id',source='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $stmtLIST .= "|$stmt"; + $phrase_inserts++; + } + } + else + { + if ( ($stage=='UPDATE') or ($stage=='ADD_UPDATE') ) + { + $import_data_lines_ary[1] = addslashes($import_data_lines_ary[1]); + $stmt="SELECT count(*) from vicidial_language_phrases where language_id='$language_id' and english_text='$import_data_lines_ary[0]' and translated_text='$import_data_lines_ary[1]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="UPDATE vicidial_language_phrases set translated_text='$import_data_lines_ary[1]',source='$user' where english_text='$import_data_lines_ary[0]' and language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $stmtLIST .= "|$stmt"; + $phrase_updates++; + } + else + { + if ($DB > 0) {echo "IGNORED(already equal): $i|$import_data_lines_ary_ct|$import_data_lines_ary[0]|$import_data_lines_ary[1]|\n";} + } + } + } + } + else + { + if ($DB > 0) {echo "IGNORED: $i|$import_data_lines_ary_ct|$import_data_lines_ary[0]|$import_data_lines_ary[1]|\n";} + } + + + $i++; + } + + echo _QXZ("PHRASES SUBMITTED").": $i
\n"; + echo _QXZ("PHRASES ADDED").": $phrase_inserts
\n"; + echo _QXZ("PHRASES UPDATED").": $phrase_updates
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='MODIFY', record_id='$language_id', event_code='ADMIN IMPORT LANGUAGE PHRASES', event_sql=\"$SQL_log\", event_notes='PHRASES SUBMITTED: $i|PHRASES ADDED: $phrase_inserts|PHRASES UPDATED: $phrase_updates|';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + $ADD=363111111111; + } + + +###################### +# ADD=463111111111 modify language record in the system +###################### + +if ($ADD==463111111111) + { + if ($modify_languages==1) + { + echo ""; + + if ($stage == "PHRASEDELETE") + { + if ( (strlen($language_id) < 2) or (strlen($phrase_id) < 1) ) + {echo "
"._QXZ("LANGUAGE PHRASE NOT MODIFIED - Please go back and look at the data you entered")."$language_id|$phrase_id\n";} + else + { + $stmt="DELETE FROM vicidial_language_phrases where language_id='$language_id' and phrase_id='$phrase_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + + $stmtA="UPDATE vicidial_languages SET modify_date=NOW() where language_id='$language_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_to_mysqli($stmtA, $link); + + echo "
"._QXZ("LANGUAGE ENTRY MODIFIED").": $language_id - $audio_filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='MODIFY', record_id='$language_id', event_code='ADMIN MODIFY LANGUAGE', event_sql=\"$SQL_log\", event_notes='PHRASE DELETE $phrase_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + else + { + if ( (strlen($language_id) < 2) or (strlen($language_description) < 3) ) + {echo "
"._QXZ("LANGUAGE ENTRY NOT MODIFIED - Please go back and look at the data you entered")."\n";} + else + { + $stmt="UPDATE vicidial_languages set language_description='$language_description',language_code='$language_code',user_group='$user_group' where language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $stmtLIST = $stmt; + + if (strlen($english_text) > 0) + { + $english_text = addslashes($english_text); + $stmt="SELECT count(*) from vicidial_language_phrases where english_text='$english_text' and language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $phrase_exists = $row[0]; + + if ($phrase_exists > 0) + {echo "
"._QXZ("Phrase already exists in this language ID").": $language_id, $english_text\n";} + else + { + echo "
"._QXZ("New phrase added to this language ID").": $language_id, $english_text\n"; + $stmt="INSERT INTO vicidial_language_phrases set english_text='$english_text', language_id='$language_id',source='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $stmtLIST .= "|$stmt"; + + $stmtA="UPDATE vicidial_languages SET modify_date=NOW() where language_id='$language_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_to_mysqli($stmtA, $link); + } + } + + echo "
"._QXZ("LANGUAGE ENTRY MODIFIED").": $language_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='MODIFY', record_id='$language_id', event_code='ADMIN MODIFY LANGUAGE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + } + } + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + $ADD=363111111111; # go to language entry modification form below + } + + +###################### +# ADD=563111111111 confirmation before deletion of language record +###################### + +if ($ADD==563111111111) + { + echo ""; + + if (strlen($language_id) < 2) + { + echo "
"._QXZ("LANGUAGE ENTRY NOT DELETED - Please go back and look at the data you entered")."\n"; + echo "
"._QXZ("LANGUAGE ID be at least 2 characters in length")."\n"; + } + else + { + echo "
"._QXZ("LANGUAGE ENTRY DELETION CONFIRMATION").": $language_id - $language_description\n"; + echo "

"._QXZ("Click here to delete language entry")." $language_id - $language_description


\n"; + } + $ADD='363111111111'; # go to language entry modification below + } + + + +###################### +# ADD=663111111111 delete language record +###################### + +if ($ADD==663111111111) + { + echo ""; + + if ( (strlen($language_id) < 2) or ($ConFiRm != 'YES') ) + { + echo "
"._QXZ("LANGUAGE ENTRY NOT DELETED - Please go back and look at the data you entered")."\n"; + echo "
"._QXZ("LANGUAGE ID be at least 2 characters in length")."\n"; + } + else + { + $stmt="DELETE FROM vicidial_languages where language_id='$language_id' $LOGadmin_viewable_groupsSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + + $stmtA="DELETE from vicidial_language_phrases where language_id='$language_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_to_mysqli($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = preg_replace('/;/', '', $SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date=NOW(), user='$PHP_AUTH_USER', ip_address='$ip', event_section='LANGUAGES', event_type='DELETE', record_id='$language_id', event_code='ADMIN DELETE LANGUAGE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_to_mysqli($stmt, $link); + + echo "
"._QXZ("LANGUAGE DELETION COMPLETED").": $language_id\n"; + echo "

\n"; + } + $ADD='163000000000'; # go to language entry list + } + + + +###################### +# ADD=363111111111 modify language record in the system +###################### + +if ($ADD==363111111111) + { + if ($modify_languages==1) + { + if ( ($SSadmin_modify_refresh > 1) and ($modify_refresh_set < 1) ) + { + $modify_url = "$PHP_SELF?ADD=363111111111&language_id=$language_id"; + $modify_footer_refresh=1; + } + echo "
\n"; + echo ""; + + $stmt="SELECT language_id,language_description,language_code,user_group,modify_date from vicidial_languages where language_id='$language_id' $LOGadmin_viewable_groupsSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $language_id = $row[0]; + $language_description = $row[1]; + $language_code = $row[2]; + $user_group = $row[3]; + $modify_date = $row[4]; + + echo "
"._QXZ("MODIFY A LANGUAGE RECORD").": $language_id\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT count(*) from vicidial_language_phrases where language_id='$language_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $phrase_count=$row[0]; + + $stmt="SELECT count(*) from vicidial_language_phrases where language_id='$language_id' and ( (translated_text='') or (translated_text is NULL) );"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $null_phrase_count=$row[0]; + + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
"._QXZ("Language ID").": $language_id
"._QXZ("Last Modified").": $modify_date
"._QXZ("Language Description").": $NWB#languages-language_description$NWE
"._QXZ("Language Code").": $NWB#languages-language_code$NWE
"._QXZ("Admin User Group").": $NWB#languages-user_group$NWE
"; + echo _QXZ("Phrases").": $phrase_count   "._QXZ("Not Translated").": $null_phrase_count"; + echo ""; + echo "   "._QXZ("display all")."   |"; + echo "   "._QXZ("not translated only")."   |"; + echo "   "._QXZ("translated only")."  "; + echo ""; + echo "
\n"; + + echo "\n"; + + + + + + echo "
"._QXZ("Add A New Language Phrase").": $NWB#languages-english_text$NWE
  RELOAD PAGE
\n"; + + echo "


\n"; + + + if ($modify_languages > 0) + { + echo "

"._QXZ("DELETE LANGUAGE ENTRY")."\n"; + } + if ( ($LOGuser_level >= 9) and ( (preg_match("/Administration Change Log/",$LOGallowed_reports)) or (preg_match("/ALL REPORTS/",$LOGallowed_reports)) ) ) + { + echo "

"._QXZ("Click here to see Admin changes to this Language entry")."\n"; + } + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + + +###################### +# ADD=163000000000 display all language entries +###################### +if ($ADD==163000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT language_id,language_description,language_code,user_group,modify_date from vicidial_languages $whereLOGadmin_viewable_groupsSQL order by language_id;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $lang_to_print = mysqli_num_rows($rslt); + + echo "
"._QXZ("LANGUAGE LISTINGS").":\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($lang_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + while(strlen($row[1]) > 40) {$row[1] = substr("$row[1]", 0, -1);} + if(strlen($row[1]) > 37) {$row[1] = "$row[1]...";} + $Alanguage_id[$o] = $row[0]; + $Alanguage_description[$o] = $row[1]; + $Alanguage_code[$o] = $row[2]; + $Auser_group[$o] = $row[3]; + $Amodify_date[$o] = $row[4]; + $o++; + } + + $o=0; + while ($lang_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_language_phrases where language_id='$Alanguage_id[$o]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $phrase_count=$row[0]; + + $stmt="SELECT count(*) from vicidial_language_phrases where language_id='$Alanguage_id[$o]' and ( (translated_text='') or (translated_text is NULL) );"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $row=mysqli_fetch_row($rslt); + $null_phrase_count=$row[0]; + $translated_phrases_count = ($phrase_count - $null_phrase_count); + + if (preg_match('/1$|3$|5$|7$|9$/i', $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
"._QXZ("LANGUAGE ID").""._QXZ("Description").""._QXZ("Code").""._QXZ("ADMIN GROUP").""._QXZ("MODIFY DATE").""._QXZ("PHRASES").""._QXZ("MODIFY")."
$Alanguage_id[$o]$Alanguage_description[$o]$Alanguage_code[$o]$Auser_group[$o]$Amodify_date[$o]$phrase_count($translated_phrases_count/$null_phrase_count)"._QXZ("MODIFY")."
\n"; + } + + + + +################################################################################ +##### BEGIN admin log display +if ($ADD == "763000000000") + { + if ($LOGuser_level >= 9) + { + echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where event_section='LANGUAGES' and record_id='$list_id' order by event_date desc limit 10000;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_to_mysqli($stmt, $link); + $logs_to_print = mysqli_num_rows($rslt); + + echo "
"._QXZ("ADMIN CHANGE LOG: Section Records")." - $category - $stage\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysqli_fetch_row($rslt); + + if (preg_match('/USER|AGENT/i', $row[4])) {$record_link = "$PHP_SELF?ADD=3&user=$row[6]";} + if (preg_match('/CAMPAIGN/i', $row[4])) {$record_link = "$PHP_SELF?ADD=31&campaign_id=$row[6]";} + if (preg_match('/LIST/i', $row[4])) {$record_link = "$PHP_SELF?ADD=311&list_id=$row[6]";} + if (preg_match('/CUSTOM_FIELDS/i', $row[4])) {$record_link = "./admin_lists_custom.php?action=MODIFY_CUSTOM_FIELDS&list_id=$row[6]";} + if (preg_match('/SCRIPT/i', $row[4])) {$record_link = "$PHP_SELF?ADD=3111111&script_id=$row[6]";} + if (preg_match('/FILTER/i', $row[4])) {$record_link = "$PHP_SELF?ADD=31111111&lead_filter_id=$row[6]";} + if (preg_match('/INGROUP/i', $row[4])) {$record_link = "$PHP_SELF?ADD=3111&group_id=$row[6]";} + if (preg_match('/DID/i', $row[4])) {$record_link = "$PHP_SELF?ADD=3311&did_id=$row[6]";} + if (preg_match('/USERGROUP/i', $row[4])) {$record_link = "$PHP_SELF?ADD=311111&user_group=$row[6]";} + if (preg_match('/REMOTEAGENT/i', $row[4])) {$record_link = "$PHP_SELF?ADD=31111&remote_agent_id=$row[6]";} + if (preg_match('/PHONE/i', $row[4])) {$record_link = "$PHP_SELF?ADD=10000000000";} + if (preg_match('/CALLTIME/i', $row[4])) {$record_link = "$PHP_SELF?ADD=311111111&call_time_id=$row[6]";} + if (preg_match('/SHIFT/i', $row[4])) {$record_link = "$PHP_SELF?ADD=331111111&shift_id=$row[6]";} + if (preg_match('/CONFTEMPLATE/i', $row[4])) {$record_link = "$PHP_SELF?ADD=331111111111&template_id=$row[6]";} + if (preg_match('/CARRIER/i', $row[4])) {$record_link = "$PHP_SELF?ADD=341111111111&carrier_id=$row[6]";} + if (preg_match('/SERVER/i', $row[4])) {$record_link = "$PHP_SELF?ADD=311111111111&server_id=$row[6]";} + if (preg_match('/CONFERENCE/i', $row[4])) {$record_link = "$PHP_SELF?ADD=1000000000000";} + if (preg_match('/SYSTEM/i', $row[4])) {$record_link = "$PHP_SELF?ADD=311111111111111";} + if (preg_match('/CATEGOR/i', $row[4])) {$record_link = "$PHP_SELF?ADD=331111111111111";} + if (preg_match('/GROUPALIAS/i', $row[4])) {$record_link = "$PHP_SELF?ADD=33111111111&group_alias_id=$row[6]";} + if (preg_match('/AVATARS/i', $row[4])) {$record_link = "$PHP_SELF?ADD=362111111111&avatar_id=$row[6]&DB=$DB";} + if (preg_match('/LANGUAGES/i', $row[4])) {$record_link = "$PHP_SELF?ADD=363111111111&language_id=$row[6]&DB=$DB";} + + if (preg_match('/1$|3$|5$|7$|9$/i', $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
"._QXZ("ID").""._QXZ("DATE TIME").""._QXZ("USER").""._QXZ("IP").""._QXZ("SECTION").""._QXZ("TYPE").""._QXZ("RECORD ID").""._QXZ("DESCRIPTION").""._QXZ("GOTO")."
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] "._QXZ("GOTO")."


\n"; + echo "\n"; + echo "
\n"; + } + else + { + echo _QXZ("You do not have permission to view this page")."\n"; + exit; + } + } + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "\n\n\n


\n "._QXZ("runtime").": $RUNtime "._QXZ("seconds")."         "._QXZ("Version").": $admin_version     "._QXZ("Build").": $build"; + +?> + + + diff --git a/agc_2-X/trunk/www/vicidial/help.php b/agc_2-X/trunk/www/vicidial/help.php index 6e64e703..269a2e2e 100644 --- a/agc_2-X/trunk/www/vicidial/help.php +++ b/agc_2-X/trunk/www/vicidial/help.php @@ -27,7 +27,7 @@ # 141123-1019 - Added help for new campaign comments options # 141124-2144 - Added show_previous_callback # 141124-2231 - Added clear_script -# +# 141204-0605 - Added enable_languages require("dbconnect_mysqli.php"); @@ -35,7 +35,7 @@ require("functions.php"); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,allow_emails,level_8_disable_add,pass_key,pass_hash_enabled,disable_auto_dial,country_code_list_stats FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active,custom_fields_enabled,admin_web_directory,webphone_url,first_login_trigger,hosted_settings,default_phone_registration_password,default_phone_login_password,default_server_password,test_campaign_calls,active_voicemail_server,voicemail_timezones,default_voicemail_timezone,default_local_gmt,campaign_cid_areacodes_enabled,pllb_grouping_limit,did_ra_extensions_enabled,expanded_list_stats,contacts_enabled,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,call_menu_qualify_enabled,admin_list_counts,allow_voicemail_greeting,svn_revision,allow_emails,level_8_disable_add,pass_key,pass_hash_enabled,disable_auto_dial,country_code_list_stats,enable_languages FROM system_settings;"; $rslt=mysql_to_mysqli($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysqli_num_rows($rslt); @@ -83,6 +83,7 @@ if ($qm_conf_ct > 0) $SSpass_hash_enabled = $row[38]; $SSdisable_auto_dial = $row[39]; $SScountry_code_list_stats = $row[40]; + $SSenable_languages = $row[41]; } ##### END SETTINGS LOOKUP ##### ########################################### @@ -4330,6 +4331,11 @@ if ($SSoutbound_autodial_active > 0)
Use Non-Latin - This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0. +
+ +
+Enable Languages - This setting allows you to enable non-English language translations on the system. A new section called Languages under the Admin section will also be available to manager Languages. Default is 0 for disabled. +