fixed display of non-calendar providers in the Billing Report page
[openemr.git] / interface / language / lang_manage.php
blob39253bb097a9523f6a744b4c77fe6c14cb0e4f79
1 <?php
2 if ($_POST['check'] || $_POST['synchronize']){
3 // set up flag if only checking for changes (ie not performing synchronization)
4 $checkOnly = 0;
5 if ($_POST['check']) {
6 $checkOnly = 1;
9 // set up the mysql collation string to ensure case is sensitive in the mysql queries
10 if (!$disable_utf8_flag) {
11 $case_sensitive_collation = "COLLATE utf8_bin";
13 else {
14 $case_sensitive_collation = "COLLATE latin_bin";
16 $difference = 0; //flag
18 //
19 // collect and display(synchronize) new custom languages
21 $sql = "SELECT lang_description FROM lang_languages";
22 $res = SqlStatement($sql);
23 $row_main = array();
24 while ($row=SqlFetchArray($res)){
25 $row_main[] = $row['lang_description'];
27 $sql = "SELECT lang_description FROM lang_custom";
28 $res = SqlStatement($sql);
29 $row_custom = array();
30 while ($row=SqlFetchArray($res)){
31 $row_custom[] = $row['lang_description'];
33 $custom_languages = array_diff(array_unique($row_custom),array_unique($row_main));
34 foreach ($custom_languages as $var) {
35 if ($var=='') continue;
36 echo xl('Following is a new custom language:')." ".$var."<BR>";
37 if (!$checkOnly) {
38 // add the new language (first collect the language code)
39 $sql = "SELECT lang_code FROM lang_custom WHERE constant_name='' AND lang_description='".add_escape_custom($var)."' ".$case_sensitive_collation." LIMIT 1";
40 $res = SqlStatement($sql);
41 $row = SqlFetchArray($res);
42 $sql="INSERT INTO lang_languages SET lang_code='".add_escape_custom($row['lang_code'])."', lang_description='".add_escape_custom($var)."'";
43 SqlStatement($sql);
44 echo xl('Synchronized new custom language:')." ".$var."<BR><BR>";
46 $difference = 1;
49 //
50 // collect and display(synchronize) new custom constants
51 //
52 $sql = "SELECT constant_name FROM lang_constants";
53 $res = SqlStatement($sql);
54 $row_main = array();
55 while ($row=SqlFetchArray($res)){
56 $row_main[] = $row['constant_name'];
58 $sql = "SELECT constant_name FROM lang_custom";
59 $res = SqlStatement($sql);
60 $row_custom = array();
61 while ($row=SqlFetchArray($res)){
62 $row_custom[] = $row['constant_name'];
64 $custom_constants = array_diff(array_unique($row_custom),array_unique($row_main));
65 foreach ($custom_constants as $var) {
66 if ($var=='') continue;
67 echo xl('Following is a new custom constant:')." ".$var."<BR>";
68 if (!$checkOnly) {
69 // add the new constant
70 $sql="INSERT INTO lang_constants SET constant_name='".add_escape_custom($var)."'";
71 SqlStatement($sql);
72 echo xl('Synchronized new custom constant:')." ".$var."<BR><BR>";
74 $difference = 1;
77 //
78 // collect and display(synchronize) custom definitions
80 $sql = "SELECT lang_description, lang_code, constant_name, definition FROM lang_custom WHERE lang_description != '' AND constant_name != ''";
81 $res = SqlStatement($sql);
82 while ($row=SqlFetchArray($res)){
84 // collect language id
85 $sql = "SELECT lang_id FROM lang_languages WHERE lang_description='".add_escape_custom($row['lang_description'])."' ".$case_sensitive_collation." LIMIT 1";
86 $res2 = SqlStatement($sql);
87 $row2 = SqlFetchArray($res2);
88 $language_id=$row2['lang_id'];
90 // collect constant id
91 $sql = "SELECT cons_id FROM lang_constants WHERE constant_name='".add_escape_custom($row['constant_name'])."' ".$case_sensitive_collation." LIMIT 1";
92 $res2 = SqlStatement($sql);
93 $row2 = SqlFetchArray($res2);
94 $constant_id=$row2['cons_id'];
96 // collect definition id (if it exists)
97 $sql = "SELECT def_id FROM lang_definitions WHERE cons_id='".add_escape_custom($constant_id)."' AND lang_id='".add_escape_custom($language_id)."' LIMIT 1";
98 $res2 = SqlStatement($sql);
99 $row2 = SqlFetchArray($res2);
100 $def_id=$row2['def_id'];
102 if ($def_id) {
103 //definition exist, so check to see if different
104 $sql = "SELECT * FROM lang_definitions WHERE def_id = '".add_escape_custom($def_id)."' AND definition = '".add_escape_custom($row['definition'])."' ".$case_sensitive_collation;
105 $res_test = SqlStatement($sql);
106 if (SqlFetchArray($res_test)) {
107 //definition not different
108 continue;
110 else {
111 //definition is different
112 echo xl('Following is a new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR>";
113 if (!$checkOnly) {
114 //add new definition
115 $sql = "UPDATE `lang_definitions` SET `definition` = '".add_escape_custom($row['definition'])."' WHERE `def_id`='".add_escape_custom($def_id)."' LIMIT 1";
116 SqlStatement($sql);
117 echo xl('Synchronized new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR><BR>";
119 $difference = 1;
122 else {
123 echo xl('Following is a new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR>";
124 if (!$checkOnly) {
125 //add new definition
126 $sql = "INSERT INTO lang_definitions (cons_id,lang_id,definition) VALUES ('".add_escape_custom($constant_id)."','".add_escape_custom($language_id)."','".add_escape_custom($row['definition'])."')";
127 SqlStatement($sql);
128 echo xl('Synchronized new definition (Language, Constant, Definition):')." ".$row['lang_description']." ".$row['constant_name']." ".$row['definition']."<BR><BR>";
130 $difference = 1;
133 if (!$difference) {
134 echo xl('The translation tables are synchronized.');
139 <TABLE>
140 <FORM name="manage_form" METHOD=POST ACTION="?m=manage" onsubmit="return top.restoreSession()">
141 <TR>
142 <TD><INPUT TYPE="submit" name="check" value="<?php xl('Check','e'); ?>"></TD>
143 <TD class="text">(<?php xl('Check for differences of translations with custom language table.','e'); ?>)</TD>
144 </TR>
145 <TR></TR>
146 <TR>
147 <TD><INPUT TYPE="submit" name="synchronize" value="<?php xl('Synchronize','e'); ?>"></TD>
148 <TD class="text">(<?php xl('Synchronize translations with custom language table.','e'); ?>)</TD>
149 </TR>
150 </FORM>
151 </TABLE>