12. File Comparison Report

Produced on Wed Jun 18 08:01:25 2008 UTC. This report uses XHTML and CSS2, and is best viewed with a reasonably standards compliant browser such as the latest version of Firefox or Internet Explorer. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

12.1 Files compared

# Location File Last Modified
1 Dolphin-v.6.1.1\admin lang_file.php Sat Apr 26 08:19:16 2008 UTC
2 Dolphin-v.6.1.2\admin lang_file.php Thu Jun 12 09:57:43 2008 UTC

12.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 9 2692
Changed 7 26
Inserted 1 1
Removed 0 0

12.3 Comparison options

Whitespace All differences in whitespace within lines are ignored
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

12.4 Active regular expressions

No regular expressions were active.

12.5 Comparison detail

1   <?   1   <?
2     2  
3   /********* ********** ********** ********** ********** ********** ********** ******   3   /********* ********** ********** ********** ********** ********** ********** ******
4   *                              D olphin Sma rt Communi ty Builder   4   *                              D olphin Sma rt Communi ty Builder
5   *                                 --------- --------   5   *                                 --------- --------
6   *     begi n                 : M on Mar 23  2006   6   *     begi n                 : M on Mar 23  2006
7   *     copy right             : ( C) 2006 Bo onEx Group   7   *     copy right             : ( C) 2006 Bo onEx Group
8   *     webs ite               : h ttp://www. boonex.com /   8   *     webs ite               : h ttp://www. boonex.com /
9   * This fil e is part  of Dolphin  - Smart C ommunity B uilder   9   * This fil e is part  of Dolphin  - Smart C ommunity B uilder
10   *   10   *
11   * Dolphin  is free so ftware. Th is work is  licensed  under a Cr eative Com mons Attri bution 3.0  License.    11   * Dolphin  is free so ftware. Th is work is  licensed  under a Cr eative Com mons Attri bution 3.0  License. 
12   * http://c reativecom mons.org/l icenses/by /3.0/   12   * http://c reativecom mons.org/l icenses/by /3.0/
13   *   13   *
14   * Dolphin  is distrib uted in th e hope tha t it will  be useful,  but WITHO UT ANY WAR RANTY;   14   * Dolphin  is distrib uted in th e hope tha t it will  be useful,  but WITHO UT ANY WAR RANTY;
15   * without  even the i mplied war ranty of   MERCHANTAB ILITY or F ITNESS FOR  A PARTICU LAR PURPOS E.   15   * without  even the i mplied war ranty of   MERCHANTAB ILITY or F ITNESS FOR  A PARTICU LAR PURPOS E.
16   * See the  Creative C ommons Att ribution 3 .0 License  for more  details.    16   * See the  Creative C ommons Att ribution 3 .0 License  for more  details. 
17   * You shou ld have re ceived a c opy of the  Creative  Commons At tribution  3.0 Licens e along wi th Dolphin   17   * You shou ld have re ceived a c opy of the  Creative  Commons At tribution  3.0 Licens e along wi th Dolphin
18   * see lice nse.txt fi le; if not , write to  marketing @boonex.co m   18   * see lice nse.txt fi le; if not , write to  marketing @boonex.co m
19   ********** ********** ********** ********** ********** ********** ********** *****/   19   ********** ********** ********** ********** ********** ********** ********** *****/
20     20  
21     21  
22   require_on ce( '../in c/header.i nc.php' );   22   require_on ce( '../in c/header.i nc.php' );
23   require_on ce( BX_DIR ECTORY_PAT H_INC . 'd esign.inc. php' );   23   require_on ce( BX_DIR ECTORY_PAT H_INC . 'd esign.inc. php' );
24   require_on ce( BX_DIR ECTORY_PAT H_INC . 'a dmin_desig n.inc.php'  );   24   require_on ce( BX_DIR ECTORY_PAT H_INC . 'a dmin_desig n.inc.php'  );
25   require_on ce( BX_DIR ECTORY_PAT H_INC . 'l anguages.i nc.php' );   25   require_on ce( BX_DIR ECTORY_PAT H_INC . 'l anguages.i nc.php' );
26   require_on ce( BX_DIR ECTORY_PAT H_INC . 'u tils.inc.p hp' );   26   require_on ce( BX_DIR ECTORY_PAT H_INC . 'u tils.inc.p hp' );
27     27  
28   // DECLARA TIONS   28   // DECLARA TIONS
29     29  
30   define('SE ARCH_COMBI NE_WORDS_A S_AND',            0) ;   30   define('SE ARCH_COMBI NE_WORDS_A S_AND',            0) ;
31   define('SE ARCH_COMBI NE_WORDS_A S_OR',             1) ;   31   define('SE ARCH_COMBI NE_WORDS_A S_OR',             1) ;
32   define('SE ARCH_COMBI NE_WORDS_A S_EXACT',          2) ;   32   define('SE ARCH_COMBI NE_WORDS_A S_EXACT',          2) ;
33     33  
34   function m essageTemp late($mess age)   34   function m essageTemp late($mess age)
35   {   35   {
36       ob_sta rt();   36       ob_sta rt();
37          37       
38       ?>   38       ?>
39       <div s tyle="text -align:cen ter;font-f amily:Aria l;font-siz e:12px;hei ght:100%;w idth:100%; margin:0px ;padding:0 px;margin- top:40%;">   39       <div s tyle="text -align:cen ter;font-f amily:Aria l;font-siz e:12px;hei ght:100%;w idth:100%; margin:0px ;padding:0 px;margin- top:40%;">
40           <? = $message  ?>   40           <? = $message  ?>
41       </div>   41       </div>
42       <?   42       <?
43     43  
44       return  ob_get_cl ean();   44       return  ob_get_cl ean();
45   }   45   }
46     46  
47   /**   47   /**
48    * Validat es an arra y, moving  all intege r values t o keys.   48    * Validat es an arra y, moving  all intege r values t o keys.
49    *   49    *
50    * @param  array $arr ay   50    * @param  array $arr ay
51    * @return   array( 0  => true)  if the ori ginal arra y containe d non-inte gers   51    * @return   array( 0  => true)  if the ori ginal arra y containe d non-inte gers
52    *           array( i nt_key =>  true) if t he origina l array wa s OK   52    *           array( i nt_key =>  true) if t he origina l array wa s OK
53    */   53    */
54   function v alidateLis tArray($ar ray)   54   function v alidateLis tArray($ar ray)
55   {   55   {
56       if(is_ array($arr ay)) {   56       if(is_ array($arr ay)) {
57           $t mp = array ();   57           $t mp = array ();
58           fo reach ($ar ray as $va lue) {   58           fo reach ($ar ray as $va lue) {
59                $iVal =  (int)$valu e;   59                $iVal =  (int)$valu e;
60                if($iVal  != $value ) return a rray(0 =>  true);   60                if($iVal  != $value ) return a rray(0 =>  true);
61                $tmp[$iV al] = true ;   61                $tmp[$iV al] = true ;
62           }   62           }
63           $a rray = $tm p;   63           $a rray = $tm p;
64       }   64       }
65     65  
66       return  count($ar ray) <= 0  || isset($ array[0])  ? array(0  => true) :  $array;   66       return  count($ar ray) <= 0  || isset($ array[0])  ? array(0  => true) :  $array;
67   }   67   }
68     68  
69   function f indLangStr ings(   69   function f indLangStr ings(
70       $searc hText,   70       $searc hText,
71       $group Words = SE ARCH_COMBI NE_WORDS_A S_EXACT,   71       $group Words = SE ARCH_COMBI NE_WORDS_A S_EXACT,
72       $searc hInKeys =  true,   72       $searc hInKeys =  true,
73       $searc hInStrings  = true,   73       $searc hInStrings  = true,
74       $searc hInParams  = true,   74       $searc hInParams  = true,
75       $arrCa tegoryIDs  = null,   75       $arrCa tegoryIDs  = null,
76       $arrLa nguageIDs  = null   76       $arrLa nguageIDs  = null
77       ) {   77       ) {
78          78       
79       functi on sqlLike Clause($fi eldName, $ arrWords,  $groupWord s) {   79       functi on sqlLike Clause($fi eldName, $ arrWords,  $groupWord s) {
80           if  (!is_arra y($arrWord s) || strl en($fieldN ame) <= 0)  return '' ;   80           if  (!is_arra y($arrWord s) || strl en($fieldN ame) <= 0)  return '' ;
81     81  
82           sw itch ($gro upWords) {   82           sw itch ($gro upWords) {
83                case SEA RCH_COMBIN E_WORDS_AS _AND: $sql  = implode ("%' AND $ fieldName  LIKE '%",  $arrWords) ;   83                case SEA RCH_COMBIN E_WORDS_AS _AND: $sql  = implode ("%' AND $ fieldName  LIKE '%",  $arrWords) ;
84                    brea k;   84                    brea k;
85                case SEA RCH_COMBIN E_WORDS_AS _OR: $sql  = implode( "%' OR $fi eldName LI KE '%", $a rrWords);   85                case SEA RCH_COMBIN E_WORDS_AS _OR: $sql  = implode( "%' OR $fi eldName LI KE '%", $a rrWords);
86                    brea k;   86                    brea k;
87                default:  $sql = im plode(' ',  $arrWords );   87                default:  $sql = im plode(' ',  $arrWords );
88           }   88           }
89     89  
90           $s ql = "($fi eldName LI KE '%$sql% ')";   90           $s ql = "($fi eldName LI KE '%$sql% ')";
91     91  
92           re turn $sql;   92           re turn $sql;
93       }   93       }
94     94  
95       functi on sqlInCl ause($fiel dName, $ar rIDs) {   95       functi on sqlInCl ause($fiel dName, $ar rIDs) {
96           $s ql = '';   96           $s ql = '';
97     97  
98           $s qlValid =  false;   98           $s qlValid =  false;
99     99  
100           if (is_array( $arrIDs))   100           if (is_array( $arrIDs))
101           {   101           {
102                $sql = " ($fieldNam e IN(";   102                $sql = " ($fieldNam e IN(";
103     103  
104                foreach  ($arrIDs a s $ID => $ val)   104                foreach  ($arrIDs a s $ID => $ val)
105                {   105                {
106                    $ID  = (int)$ID ;   106                    $ID  = (int)$ID ;
107     107  
108                    if($ ID <= 0) c ontinue;   108                    if($ ID <= 0) c ontinue;
109     109  
110                    $sql Valid = tr ue;   110                    $sql Valid = tr ue;
111     111  
112                    $sql  .= $ID.', ';   112                    $sql  .= $ID.', ';
113                }   113                }
114                $sql = t rim($sql,' ,');   114                $sql = t rim($sql,' ,');
115                $sql .=  '))';   115                $sql .=  '))';
116           }   116           }
117     117  
118           re turn $sqlV alid ? $sq l : '';   118           re turn $sqlV alid ? $sq l : '';
119       }   119       }
120     120  
121       functi on implode NonEmpty($ strGlue, $ arr) {   121       functi on implode NonEmpty($ strGlue, $ arr) {
122           fo reach ($ar r as $key  => $val)   122           fo reach ($ar r as $key  => $val)
123                if (strl en($val) < = 0) unset ($arr[$key ]);   123                if (strl en($val) < = 0) unset ($arr[$key ]);
124     124  
125           re turn implo de($strGlu e, $arr);   125           re turn implo de($strGlu e, $arr);
126       }   126       }
127     127  
128       if ( s trlen($sea rchText) >  0 ) {   128       if ( s trlen($sea rchText) >  0 ) {
129           $s earchText  = addslash es($search Text);   129           $s earchText  = addslash es($search Text);
130     130  
131           $l ikeWildcar ds = array  ('%', '_' );   131           $l ikeWildcar ds = array  ('%', '_' );
132           $l ikeWildcar dsEscaped  = array('\ %', '\_');   132           $l ikeWildcar dsEscaped  = array('\ %', '\_');
133     133  
134           $s earchText  = str_repl ace($likeW ildcards,  $likeWildc ardsEscape d, $search Text);   134           $s earchText  = str_repl ace($likeW ildcards,  $likeWildc ardsEscape d, $search Text);
135     135  
136           $a rrWords =  preg_split ("/\s+/",  $searchTex t, -1, PRE G_SPLIT_NO _EMPTY);   136           $a rrWords =  preg_split ("/\s+/",  $searchTex t, -1, PRE G_SPLIT_NO _EMPTY);
137              137           
138           fo reach( $ar rWords as  $key => $v al )   138           fo reach( $ar rWords as  $key => $v al )
139                $arrWord s[$key] =  strtoupper ( $val );   139                $arrWord s[$key] =  strtoupper ( $val );
140              140           
141           $s qlSearchIn Keys = $se archInKeys  ? sqlLike Clause('UP PER(`Local izationKey s`.`Key`)' , $arrWord s, $groupW ords) : '' ;   141           $s qlSearchIn Keys = $se archInKeys  ? sqlLike Clause('UP PER(`Local izationKey s`.`Key`)' , $arrWord s, $groupW ords) : '' ;
142           $s qlSearchIn Strings =  $searchInS trings ? s qlLikeClau se('UPPER( `Localizat ionStrings `.`String` )', $arrWo rds, $grou pWords) :  '';   142           $s qlSearchIn Strings =  $searchInS trings ? s qlLikeClau se('UPPER( `Localizat ionStrings `.`String` )', $arrWo rds, $grou pWords) :  '';
143           $s qlSearchIn Params = $ searchInPa rams ? sql LikeClause ('UPPER(`L ocalizatio nStringPar ams`.`Desc ription`)' , $arrWord s, $groupW ords) : '' ;   143           $s qlSearchIn Params = $ searchInPa rams ? sql LikeClause ('UPPER(`L ocalizatio nStringPar ams`.`Desc ription`)' , $arrWord s, $groupW ords) : '' ;
144     144  
145           $s qlSearchCl ause = imp lodeNonEmp ty(' OR ',  array($sq lSearchInK eys, $sqlS earchInStr ings, $sql SearchInPa rams));   145           $s qlSearchCl ause = imp lodeNonEmp ty(' OR ',  array($sq lSearchInK eys, $sqlS earchInStr ings, $sql SearchInPa rams));
146     146  
147           $s qlSearchCl ause = "($ sqlSearchC lause)";   147           $s qlSearchCl ause = "($ sqlSearchC lause)";
148       } else   148       } else
149           $s qlSearchCl ause = '';   149           $s qlSearchCl ause = '';
150     150  
151       $sqlSe archInCate gories = s qlInClause ('`Localiz ationCateg ories`.`ID `', $arrCa tegoryIDs) ;   151       $sqlSe archInCate gories = s qlInClause ('`Localiz ationCateg ories`.`ID `', $arrCa tegoryIDs) ;
152       $sqlSe archInLang uages = sq lInClause( '`Localiza tionLangua ges`.`ID`' , $arrLang uageIDs);   152       $sqlSe archInLang uages = sq lInClause( '`Localiza tionLangua ges`.`ID`' , $arrLang uageIDs);
153     153  
154       $sqlWh ereClause  = implodeN onEmpty('  AND ', arr ay($sqlSea rchClause,  $sqlSearc hInCategor ies, $sqlS earchInLan guages));   154       $sqlWh ereClause  = implodeN onEmpty('  AND ', arr ay($sqlSea rchClause,  $sqlSearc hInCategor ies, $sqlS earchInLan guages));
155     155  
156       if ( s trlen($sql WhereClaus e) )   156       if ( s trlen($sql WhereClaus e) )
157           $s qlWhereCla use = "WHE RE $sqlWhe reClause " ;   157           $s qlWhereCla use = "WHE RE $sqlWhe reClause " ;
158       else   158       else
159           $s qlWhereCla use = '';   159           $s qlWhereCla use = '';
160     160  
161       $sql =  "   161       $sql =  "
162           SE LECT  DIST INCT   162           SE LECT  DIST INCT
163                    `Loc alizationS trings`.`I DKey`        AS `IDKe y`,   163                    `Loc alizationS trings`.`I DKey`        AS `IDKe y`,
164                    `Loc alizationS trings`.`I DLanguage`   AS `IDLa nguage`,   164                    `Loc alizationS trings`.`I DLanguage`   AS `IDLa nguage`,
165                    `Loc alizationK eys`.`Key`              AS `Key` ,   165                    `Loc alizationK eys`.`Key`              AS `Key` ,
166                    `Loc alizationS trings`.`S tring`       AS `Stri ng`,   166                    `Loc alizationS trings`.`S tring`       AS `Stri ng`,
167                    `Loc alizationL anguages`. `Title`      AS `Lang uage`,   167                    `Loc alizationL anguages`. `Title`      AS `Lang uage`,
168                    `Loc alizationC ategories` .`Name`      AS `Cate gory`   168                    `Loc alizationC ategories` .`Name`      AS `Cate gory`
169           FR OM `Locali zationStri ngParams`   169           FR OM `Locali zationStri ngParams`
170           RI GHT JOIN ` Localizati onKeys` ON   170           RI GHT JOIN ` Localizati onKeys` ON
171                (`Locali zationStri ngParams`. `IDKey` =  `Localizat ionKeys`.` ID`)   171                (`Locali zationStri ngParams`. `IDKey` =  `Localizat ionKeys`.` ID`)
172           LE FT JOIN `L ocalizatio nStrings`  ON   172           LE FT JOIN `L ocalizatio nStrings`  ON
173                (`Locali zationStri ngs`.`IDKe y` = `Loca lizationKe ys`.`ID`)   173                (`Locali zationStri ngs`.`IDKe y` = `Loca lizationKe ys`.`ID`)
174           LE FT JOIN `L ocalizatio nCategorie s` ON   174           LE FT JOIN `L ocalizatio nCategorie s` ON
175                (`Locali zationKeys `.`IDCateg ory` = `Lo calization Categories `.`ID`)   175                (`Locali zationKeys `.`IDCateg ory` = `Lo calization Categories `.`ID`)
176           LE FT JOIN `L ocalizatio nLanguages ` ON   176           LE FT JOIN `L ocalizatio nLanguages ` ON
177                (`Locali zationStri ngs`.`IDLa nguage` =  `Localizat ionLanguag es`.`ID`)   177                (`Locali zationStri ngs`.`IDLa nguage` =  `Localizat ionLanguag es`.`ID`)
178           $s qlWhereCla use   178           $s qlWhereCla use
179           OR DER BY   179           OR DER BY
180                `Languag e`, `Categ ory`, `Key `";   180                `Languag e`, `Categ ory`, `Key `";
181          181       
182       $resSe archResult  = db_res( $sql);   182       $resSe archResult  = db_res( $sql);
183     183  
184       return  $resSearc hResult;   184       return  $resSearc hResult;
185   }   185   }
186     186  
187   function s earchBlock () {   187   function s earchBlock () {
188       global   $searchS tring,   188       global   $searchS tring,
189                $searchC ombineWord sAs,   189                $searchC ombineWord sAs,
190                $searchS howAdvance dSettings,   190                $searchS howAdvance dSettings,
191                $searchI nKeys,   191                $searchI nKeys,
192                $searchI nStrings,   192                $searchI nStrings,
193                $searchI nParams,   193                $searchI nParams,
194                $searchC ategories,   194                $searchC ategories,
195                $searchL anguages;   195                $searchL anguages;
196     196  
197       ob_sta rt();   197       ob_sta rt();
198   ?>   198   ?>
199     199  
200   <style typ e="text/cs s">   200   <style typ e="text/cs s">
201     201  
202   input.inpu t_chbox   202   input.inpu t_chbox
203   {   203   {
204       vertic al-align:  middle;   204       vertic al-align:  middle;
205   }   205   }
206     206  
207   input.inpu t_radio   207   input.inpu t_radio
208   {   208   {
209       vertic al-align:  middle;   209       vertic al-align:  middle;
210   }   210   }
211     211  
212   div.Advanc edSearchBo dy   212   div.Advanc edSearchBo dy
213   {   213   {
214   }   214   }
215     215  
216   </style>   216   </style>
217     217  
218   <script ty pe="text/j avascript" >   218   <script ty pe="text/j avascript" >
219     219  
220   function s howHideExt ended(strD ivID, strL abelID, st rShowText,  strHideTe xt)   220   function s howHideExt ended(strD ivID, strL abelID, st rShowText,  strHideTe xt)
221   {   221   {
222       div =  document.g etElementB yId(strDiv ID);   222       div =  document.g etElementB yId(strDiv ID);
223       label  = document .getElemen tById(strL abelID);   223       label  = document .getElemen tById(strL abelID);
224       input  = document .getElemen tById('Sho wAdvancedS earchSetti ngsInput') ;   224       input  = document .getElemen tById('Sho wAdvancedS earchSetti ngsInput') ;
225     225  
226       if(div .style.dis play == '' )   226       if(div .style.dis play == '' )
227           di v.style.di splay = 'n one';   227           di v.style.di splay = 'n one';
228     228  
229       if(div .style.dis play == 'n one'){   229       if(div .style.dis play == 'n one'){
230           di v.style.di splay = 'b lock';   230           di v.style.di splay = 'b lock';
231           in put.value  = 'yes';   231           in put.value  = 'yes';
232           la bel.innerH TML = strH ideText;   232           la bel.innerH TML = strH ideText;
233       }else{   233       }else{
234           di v.style.di splay = 'n one';   234           di v.style.di splay = 'n one';
235           in put.value  = 'no';   235           in put.value  = 'no';
236           la bel.innerH TML = strS howText;   236           la bel.innerH TML = strS howText;
237       }   237       }
238   }   238   }
239     239  
240   </script>   240   </script>
241     241  
242   <form   action="<? =   $_SERVER[' SCRI P T _ NAM E
']   ?>"   method="ge t"   style="mar gin:   0px">
  242   <form   action="<? =   $_SERVER['
P HP _ S E LF ']   ?>"   method="ge t"   style="mar gin:   0px">
243     243  
244   <table wid th="100%"  border="0"  style="ma rgin: 0px" >   244   <table wid th="100%"  border="0"  style="ma rgin: 0px" >
245       <tr>   245       <tr>
246           <t d>   246           <t d>
247                Look for :   247                Look for :
248                <input   248                <input
249                    type ="text"   249                    type ="text"
250                    name ="find"   250                    name ="find"
251                    valu e="<?= $se archString  ?>"   251                    valu e="<?= $se archString  ?>"
252                    styl e="width:  150px"   252                    styl e="width:  150px"
253                />   253                />
254                <input   254                <input
255                    type ="radio"   255                    type ="radio"
256                    name ="words"   256                    name ="words"
257                    valu e="<?= SEA RCH_COMBIN E_WORDS_AS _AND ?>"   257                    valu e="<?= SEA RCH_COMBIN E_WORDS_AS _AND ?>"
258                    id=" RadioCombi neWordsAs_ AND"   258                    id=" RadioCombi neWordsAs_ AND"
259                    clas s="input_r adio"   259                    clas s="input_r adio"
260                    <?=  $searchCom bineWordsA s == SEARC H_COMBINE_ WORDS_AS_A ND ? 'chec ked' : ''  ?>   260                    <?=  $searchCom bineWordsA s == SEARC H_COMBINE_ WORDS_AS_A ND ? 'chec ked' : ''  ?>
261                /><label  for="Radi oCombineWo rdsAs_AND" >and</labe l>   261                /><label  for="Radi oCombineWo rdsAs_AND" >and</labe l>
262                <input   262                <input
263                    type ="radio"   263                    type ="radio"
264                    name ="words"   264                    name ="words"
265                    valu e="<?= SEA RCH_COMBIN E_WORDS_AS _OR ?>"   265                    valu e="<?= SEA RCH_COMBIN E_WORDS_AS _OR ?>"
266                    id=" RadioCombi neWordsAs_ OR"   266                    id=" RadioCombi neWordsAs_ OR"
267                    clas s="input_r adio"   267                    clas s="input_r adio"
268                    <?=  $searchCom bineWordsA s == SEARC H_COMBINE_ WORDS_AS_O R ? 'check ed' : '' ? >   268                    <?=  $searchCom bineWordsA s == SEARC H_COMBINE_ WORDS_AS_O R ? 'check ed' : '' ? >
269                /><label  for="Radi oCombineWo rdsAs_OR"> or</label>   269                /><label  for="Radi oCombineWo rdsAs_OR"> or</label>
270                <input   270                <input
271                    type ="radio"   271                    type ="radio"
272                    name ="words"   272                    name ="words"
273                    valu e="<?= SEA RCH_COMBIN E_WORDS_AS _EXACT ?>"   273                    valu e="<?= SEA RCH_COMBIN E_WORDS_AS _EXACT ?>"
274                    id=" RadioCombi neWordsAs_ EXACT"   274                    id=" RadioCombi neWordsAs_ EXACT"
275                    clas s="input_r adio"   275                    clas s="input_r adio"
276                    <?=  $searchCom bineWordsA s == SEARC H_COMBINE_ WORDS_AS_E XACT ? 'ch ecked' : ' ' ?>   276                    <?=  $searchCom bineWordsA s == SEARC H_COMBINE_ WORDS_AS_E XACT ? 'ch ecked' : ' ' ?>
277                /><label  for="Radi oCombineWo rdsAs_EXAC T">exact s equence</l abel>   277                /><label  for="Radi oCombineWo rdsAs_EXAC T">exact s equence</l abel>
278           </ td>   278           </ td>
279           <t d>   279           <t d>
280                <input t ype="submi t" value=" Search" st yle="width : 70px; he ight: 25px " />   280                <input t ype="submi t" value=" Search" st yle="width : 70px; he ight: 25px " />
281           </ td>   281           </ td>
282           <t d align="r ight" widt h="90">   282           <t d align="r ight" widt h="90">
283                <a   283                <a
284                    href ="javascri pt:void(0) "   284                    href ="javascri pt:void(0) "
285                    oncl ick="   285                    oncl ick="
286                         showHideEx tended(   286                         showHideEx tended(
287                             'Advan cedSearchS ettings',   287                             'Advan cedSearchS ettings',
288                             'ShowH ideAdvSear chSettings ',   288                             'ShowH ideAdvSear chSettings ',
289                             'more  settings',   289                             'more  settings',
290                             'less  settings') ;   290                             'less  settings') ;
291                         return fal se;"   291                         return fal se;"
292                    id=" ShowHideAd vSearchSet tings"   292                    id=" ShowHideAd vSearchSet tings"
293                >   293                >
294                    <?=  $searchSho wAdvancedS ettings ?  'less sett ings' : 'm ore settin gs' ?>   294                    <?=  $searchSho wAdvancedS ettings ?  'less sett ings' : 'm ore settin gs' ?>
295                </a>   295                </a>
296                <input   296                <input
297                    type ="hidden"   297                    type ="hidden"
298                    name ="settings "   298                    name ="settings "
299                    valu e="<?= $se archShowAd vancedSett ings ? 'ye s' : 'no'  ?>"   299                    valu e="<?= $se archShowAd vancedSett ings ? 'ye s' : 'no'  ?>"
300                    id=" ShowAdvanc edSearchSe ttingsInpu t"   300                    id=" ShowAdvanc edSearchSe ttingsInpu t"
301                />   301                />
302           </ td>   302           </ td>
303       </tr>   303       </tr>
304   </table>   304   </table>
305     305  
306   <div   306   <div
307       id="Ad vancedSear chSettings "   307       id="Ad vancedSear chSettings "
308       class= "AdvancedS earchBody"   308       class= "AdvancedS earchBody"
309       style= "display:  <?= $searc hShowAdvan cedSetting s ? 'block ' : 'none'  ?>;"   309       style= "display:  <?= $searc hShowAdvan cedSetting s ? 'block ' : 'none'  ?>;"
310   >   310   >
311   <table sty le="width:  100%" bor der="0" cl ass="Searc hFormTable ">   311   <table sty le="width:  100%" bor der="0" cl ass="Searc hFormTable ">
312       <tr>   312       <tr>
313           <t d colspan= "2" valign ="top">   313           <t d colspan= "2" valign ="top">
314                <table b order="0"  width="100 %">   314                <table b order="0"  width="100 %">
315                    <tr>   315                    <tr>
316                         <td valign ="top" col span="2" s tyle="heig ht: 20px">   316                         <td valign ="top" col span="2" s tyle="heig ht: 20px">
317                             Search  in:   317                             Search  in:
318                         </td>   318                         </td>
319                    </tr >   319                    </tr >
320                    <tr>   320                    <tr>
321                         <td width= "10"></td>   321                         <td width= "10"></td>
322                         <td valign ="top">   322                         <td valign ="top">
323                             <input   323                             <input
324                                 ty pe="checkb ox"   324                                 ty pe="checkb ox"
325                                 na me="keys"   325                                 na me="keys"
326                                 va lue="yes"   326                                 va lue="yes"
327                                 id ="ChboxSea rchInKeys"   327                                 id ="ChboxSea rchInKeys"
328                                 cl ass="input _chbox"   328                                 cl ass="input _chbox"
329                                 <? = $searchI nKeys ? 'c hecked' :  '' ?>   329                                 <? = $searchI nKeys ? 'c hecked' :  '' ?>
330                             />   330                             />
331                             <label  for="Chbo xSearchInK eys">key s trings (ca se-sensiti ve)</label >   331                             <label  for="Chbo xSearchInK eys">key s trings (ca se-sensiti ve)</label >
332                             <br />   332                             <br />
333                             <input   333                             <input
334                                 ty pe="checkb ox"   334                                 ty pe="checkb ox"
335                                 na me="string s"   335                                 na me="string s"
336                                 va lue="yes"   336                                 va lue="yes"
337                                 id ="ChboxSea rchInStrin gs"   337                                 id ="ChboxSea rchInStrin gs"
338                                 cl ass="input _chbox"   338                                 cl ass="input _chbox"
339                                 <? = $searchI nStrings ?  'checked'  : '' ?>   339                                 <? = $searchI nStrings ?  'checked'  : '' ?>
340                             />   340                             />
341                             <label  for="Chbo xSearchInS trings">la nguage-spe cific stri ngs</label >   341                             <label  for="Chbo xSearchInS trings">la nguage-spe cific stri ngs</label >
342                             <br />   342                             <br />
343                             <input   343                             <input
344                                 ty pe="checkb ox"   344                                 ty pe="checkb ox"
345                                 na me="params "   345                                 na me="params "
346                                 va lue="yes"   346                                 va lue="yes"
347                                 id ="ChboxSea rchInParam s"   347                                 id ="ChboxSea rchInParam s"
348                                 cl ass="input _chbox"   348                                 cl ass="input _chbox"
349                                 <? = $searchI nParams ?  'checked'  : '' ?>   349                                 <? = $searchI nParams ?  'checked'  : '' ?>
350                             />   350                             />
351                             <label  for="Chbo xSearchInP arams">par ameter des criptions< /label><br  />   351                             <label  for="Chbo xSearchInP arams">par ameter des criptions< /label><br  />
352                         </td>   352                         </td>
353                    </tr >   353                    </tr >
354                </table>   354                </table>
355           </ td>   355           </ td>
356           <t d colspan= "2" align= "center">   356           <t d colspan= "2" align= "center">
357                <table b order="0"  style="wid th: 100%">   357                <table b order="0"  style="wid th: 100%">
358                    <tr>   358                    <tr>
359                         <td align= "center">   359                         <td align= "center">
360                             Show s trings fro m categori es:   360                             Show s trings fro m categori es:
361                             <br />   361                             <br />
362                             <selec t name="sC ats[]" mul tiple styl e="height:  90px; wid th: 170px" >   362                             <selec t name="sC ats[]" mul tiple styl e="height:  90px; wid th: 170px" >
363   <?   363   <?
364       $arrCa ts = getLo calization Categories ();   364       $arrCa ts = getLo calization Categories ();
365       $arrCa tegories[0 ] = '---Al l Categori es---';   365       $arrCa tegories[0 ] = '---Al l Categori es---';
366       foreac h($arrCats  as $key = > $val)   366       foreac h($arrCats  as $key = > $val)
367       {   367       {
368           $a rrCategori es[$key] =  $val;   368           $a rrCategori es[$key] =  $val;
369       }   369       }
370     370  
371       foreac h ($arrCat egories as  $category ID => $cat egoryName)   371       foreac h ($arrCat egories as  $category ID => $cat egoryName)
372       {   372       {
373   ?>   373   ?>
374                                 <o ption valu e="<?= $ca tegoryID ? >" <?= iss et($search Categories [$category ID]) ? 'se lected' :  '' ?> ><?=  $category Name ?></o ption>   374                                 <o ption valu e="<?= $ca tegoryID ? >" <?= iss et($search Categories [$category ID]) ? 'se lected' :  '' ?> ><?=  $category Name ?></o ption>
375   <?   375   <?
376       }   376       }
377   ?>   377   ?>
378                             </sele ct>   378                             </sele ct>
379                         </td>   379                         </td>
380                         <td align= "center">   380                         <td align= "center">
381                             Show s trings fro m language s:   381                             Show s trings fro m language s:
382                             <br />   382                             <br />
383                             <selec t name="sL angs[]" mu ltiple sty le="height : 90px;  w idth: 170p x">   383                             <selec t name="sL angs[]" mu ltiple sty le="height : 90px;  w idth: 170p x">
384   <?   384   <?
385       $arrLa ngs = getL angsArr();   385       $arrLa ngs = getL angsArr();
386       $arrLa nguages[0]  = '---All  Languages ---';   386       $arrLa nguages[0]  = '---All  Languages ---';
387     387  
388       foreac h($arrLang s as $key  => $val)   388       foreac h($arrLang s as $key  => $val)
389       {   389       {
390           $i d = (int)d b_value( " SELECT `ID ` FROM `Lo calization Languages`  WHERE `Na me` = '$ke y'" );   390           $i d = (int)d b_value( " SELECT `ID ` FROM `Lo calization Languages`  WHERE `Na me` = '$ke y'" );
391           $a rrLanguage s[$id] = $ val;   391           $a rrLanguage s[$id] = $ val;
392       }   392       }
393     393  
394       foreac h ($arrLan guages as  $langID =>  $langName )   394       foreac h ($arrLan guages as  $langID =>  $langName )
395       {   395       {
396   ?>   396   ?>
397                                 <o ption valu e="<?= $la ngID ?>" < ?= isset($ searchLang uages[$lan gID]) ? 's elected' :  '' ?> ><? = $langNam e ?></opti on>   397                                 <o ption valu e="<?= $la ngID ?>" < ?= isset($ searchLang uages[$lan gID]) ? 's elected' :  '' ?> ><? = $langNam e ?></opti on>
398   <?   398   <?
399       }   399       }
400   ?>   400   ?>
401                             </sele ct>   401                             </sele ct>
402                         </td>   402                         </td>
403                    </tr >   403                    </tr >
404                </table>   404                </table>
405           </ td>   405           </ td>
406       </tr>   406       </tr>
407   </table>   407   </table>
408   </div>   408   </div>
409   </form>   409   </form>
410   <?   410   <?
411     411  
412       return  panelSect ion("Searc h for stri ngs", ob_g et_clean()  );   412       return  panelSect ion("Searc h for stri ngs", ob_g et_clean()  );
413   }   413   }
414     414  
415   function a ddLangKeyF orm() {   415   function a ddLangKeyF orm() {
416     416  
417       functi on addLang Key()   417       functi on addLang Key()
418       {   418       {
419           $n ewKeyName          =  process_db _input($_P OST['NewKe yName']);   419           $n ewKeyName          =  process_db _input($_P OST['NewKe yName']);
420           $n ewCategory Name    =  process_db _input($_P OST['NewCa tegoryName ']);   420           $n ewCategory Name    =  process_db _input($_P OST['NewCa tegoryName ']);
421           $c ategoryID          =  (int)$_POS T['NewKeyC ategory'];   421           $c ategoryID          =  (int)$_POS T['NewKeyC ategory'];
422           $n ewStringPa rams    =  $_POST['Ne wStringPar ameters'];   422           $n ewStringPa rams    =  $_POST['Ne wStringPar ameters'];
423           $l angStrings         =  $_POST['La ngStrings' ];   423           $l angStrings         =  $_POST['La ngStrings' ];
424     424  
425           if  (!is_arra y($langStr ings) || c ount($lang Strings) <  1) return  '<font co lor="red"> Error: wro ng form da ta.</font> ';   425           if  (!is_arra y($langStr ings) || c ount($lang Strings) <  1) return  '<font co lor="red"> Error: wro ng form da ta.</font> ';
426     426  
427           fo reach ($la ngStrings  as $key =>  $value)   427           fo reach ($la ngStrings  as $key =>  $value)
428                $langStr ings[$key]  = process _db_input( $value);   428                $langStr ings[$key]  = process _db_input( $value);
429     429  
430           if  ( strlen( $newKeyNam e) <= 0 )  return '<f ont color= "red">Erro r: Key nam e is not s pecified.< /font>';   430           if  ( strlen( $newKeyNam e) <= 0 )  return '<f ont color= "red">Erro r: Key nam e is not s pecified.< /font>';
431     431  
432           if  ( strlen( $newCatego ryName) >  0 )   432           if  ( strlen( $newCatego ryName) >  0 )
433           {   433           {
434                db_res(" INSERT INT O `Localiz ationCateg ories` (`N ame`) VALU ES ('$newC ategoryNam e')");   434                db_res(" INSERT INT O `Localiz ationCateg ories` (`N ame`) VALU ES ('$newC ategoryNam e')");
435                $categor yID = mysq l_insert_i d();   435                $categor yID = mysq l_insert_i d();
436     436  
437                if ( !$c ategoryID  )   437                if ( !$c ategoryID  )
438                    retu rn '<font  color="red ">Error: C ould not c reate a ne w category .</font>';   438                    retu rn '<font  color="red ">Error: C ould not c reate a ne w category .</font>';
439           }   439           }
440           el se   440           el se
441           {   441           {
442                $cnt = d b_res('SEL ECT COUNT( *) FROM `L ocalizatio nCategorie s` WHERE ` ID`='.$cat egoryID);   442                $cnt = d b_res('SEL ECT COUNT( *) FROM `L ocalizatio nCategorie s` WHERE ` ID`='.$cat egoryID);
443                $cnt = m ysql_fetch _row($cnt) ;   443                $cnt = m ysql_fetch _row($cnt) ;
444     444  
445                if ( $cn t[0] <= 0  ) return ' <font colo r="red">Er ror: Wrong  category  specified. </font>';   445                if ( $cn t[0] <= 0  ) return ' <font colo r="red">Er ror: Wrong  category  specified. </font>';
446           }   446           }
447     447  
448           db _res("INSE RT INTO `L ocalizatio nKeys` (`I DCategory` , `Key`) V ALUES ($ca tegoryID,  '$newKeyNa me')", 0);   448           db _res("INSE RT INTO `L ocalizatio nKeys` (`I DCategory` , `Key`) V ALUES ($ca tegoryID,  '$newKeyNa me')", 0);
449     449  
450           $n ewKeyID =  mysql_inse rt_id();   450           $n ewKeyID =  mysql_inse rt_id();
451     451  
452           if  ( $newKey ID <= 0 )  return '<f ont color= "red">Erro r: Could n ot insert  a new lang uage key.< /font>';   452           if  ( $newKey ID <= 0 )  return '<f ont color= "red">Erro r: Could n ot insert  a new lang uage key.< /font>';
453     453  
454           //  parse str ing params   454           //  parse str ing params
455     455  
456           $a rrParams =  array();   456           $a rrParams =  array();
457     457  
458           pr eg_match_a ll('/([0-9 ]+) - (\S+ [^\\n\\r]* )/', $newS tringParam s, $arrPar ams);   458           pr eg_match_a ll('/([0-9 ]+) - (\S+ [^\\n\\r]* )/', $newS tringParam s, $arrPar ams);
459     459  
460           fo reach ($ar rParams[1]  as $key = > $paramID )   460           fo reach ($ar rParams[1]  as $key = > $paramID )
461           {   461           {
462                $paramID  = (int)$p aramID;   462                $paramID  = (int)$p aramID;
463                $paramDe scription  = $arrPara ms[2][$key ];   463                $paramDe scription  = $arrPara ms[2][$key ];
464     464  
465                $paramDe scription  = process_ db_input($ paramDescr iption);   465                $paramDe scription  = process_ db_input($ paramDescr iption);
466     466  
467                db_res("   467                db_res("
468                    INSE RT INTO `L ocalizatio nStringPar ams`   468                    INSE RT INTO `L ocalizatio nStringPar ams`
469                    (`ID Key`, `IDP aram`, `De scription` )   469                    (`ID Key`, `IDP aram`, `De scription` )
470                    VALU ES ($newKe yID, $para mID, '$par amDescript ion')"   470                    VALU ES ($newKe yID, $para mID, '$par amDescript ion')"
471                );   471                );
472     472  
473                if( !mys ql_affecte d_rows() )   473                if( !mys ql_affecte d_rows() )
474                    retu rn '<font  color="red ">Could no t insert a  string pa rameter.</ font>';   474                    retu rn '<font  color="red ">Could no t insert a  string pa rameter.</ font>';
475           }   475           }
476     476  
477           fo reach( $la ngStrings  as $langKe y => $lang String ) {   477           fo reach( $la ngStrings  as $langKe y => $lang String ) {
478                //NOTE:  This piece  of code c an potenti ally   478                //NOTE:  This piece  of code c an potenti ally
479                //       insert lan guage stri ngs that d on't belon g   479                //       insert lan guage stri ngs that d on't belon g
480                //       to any lan guage in c ase if a c lient gene rates   480                //       to any lan guage in c ase if a c lient gene rates
481                //       his POST d ata himsel f in an un usual way.   481                //       his POST d ata himsel f in an un usual way.
482                //       As this is sue is not  in fact d angerous f or the scr ipt's   482                //       As this is sue is not  in fact d angerous f or the scr ipt's
483                //       security,  no checks  have been  added to p revent thi s.   483                //       security,  no checks  have been  added to p revent thi s.
484     484  
485                $langKey  = (int)$l angKey;   485                $langKey  = (int)$l angKey;
486     486  
487                db_res("   487                db_res("
488                    INSE RT INTO `L ocalizatio nStrings`   488                    INSE RT INTO `L ocalizatio nStrings`
489                    (`ID Key`, `IDL anguage`,  `String`)   489                    (`ID Key`, `IDL anguage`,  `String`)
490                    VALU ES ($newKe yID, $lang Key, '$lan gString')   490                    VALU ES ($newKe yID, $lang Key, '$lan gString')
491                ");   491                ");
492     492  
493                if (mysq l_affected _rows() <=  0) return  '<font co lor="red"> Error: cou ld not add  a languag e string.< /font>';   493                if (mysq l_affected _rows() <=  0) return  '<font co lor="red"> Error: cou ld not add  a languag e string.< /font>';
494           }   494           }
495     495  
496           if  ( $_POST[ 'Recompile LangFiles' ] == 'on'  )   496           if  ( $_POST[ 'Recompile LangFiles' ] == 'on'  )
497           {   497           {
498                if ( !co mpileLangu age() )   498                if ( !co mpileLangu age() )
499                {   499                {
500                    retu rn '<font  color="red ">Error: c ould not r ecompile l anguage fi les.</font >';   500                    retu rn '<font  color="red ">Error: c ould not r ecompile l anguage fi les.</font >';
501                }   501                }
502           }   502           }
503     503  
504           re turn 'A ne w language  key has b een succes sfully cre ated.';   504           re turn 'A ne w language  key has b een succes sfully cre ated.';
505       }   505       }
506          506       
507          507       
508       ob_sta rt();   508       ob_sta rt();
509   ?>   509   ?>
510   <!DOCTYPE  html PUBLI C "-//W3C/ /DTD XHTML  1.0 Trans itional//E N" "http:/ /www.w3.or g/TR/xhtml 1/DTD/xhtm l1-transit ional.dtd" >   510   <!DOCTYPE  html PUBLI C "-//W3C/ /DTD XHTML  1.0 Trans itional//E N" "http:/ /www.w3.or g/TR/xhtml 1/DTD/xhtm l1-transit ional.dtd" >
511   <html>   511   <html>
512   <head>   512   <head>
513       <meta  http-equiv ="Content- Type" cont ent="text/ html; char set=utf-8"  />   513       <meta  http-equiv ="Content- Type" cont ent="text/ html; char set=utf-8"  />
514       <title >Add a new  language  key</title >   514       <title >Add a new  language  key</title >
515       <style  type="tex t/css">   515       <style  type="tex t/css">
516       table. EditString Form   516       table. EditString Form
517       {   517       {
518           fo nt-family:  Arial;   518           fo nt-family:  Arial;
519           fo nt-size: 1 2px;   519           fo nt-size: 1 2px;
520       }   520       }
521     521  
522       table. EditString Form td   522       table. EditString Form td
523       {   523       {
524           ba ckground-c olor: #e6e 6e6;   524           ba ckground-c olor: #e6e 6e6;
525           pa dding: 3px ;   525           pa dding: 3px ;
526       }   526       }
527          527       
528       select #NewKeyCat egory   528       select #NewKeyCat egory
529       {   529       {
530           wi dth:130px;   530           wi dth:130px;
531       }   531       }
532       </styl e>   532       </styl e>
533   </head>   533   </head>
534   <body>   534   <body>
535   <?   535   <?
536       if ( i sset($_POS T['AddLang Key']) )   536       if ( i sset($_POS T['AddLang Key']) )
537       {   537       {
538   ?>   538   ?>
539   <br /><br  /><br /><b r /><br /> <br /><br  /><br />   539   <br /><br  /><br /><b r /><br /> <br /><br  /><br />
540       <div a lign="cent er" style= "font-fami ly: Arial;  font-size : 12px; he ight: 500p x">   540       <div a lign="cent er" style= "font-fami ly: Arial;  font-size : 12px; he ight: 500p x">
541           <? = addLangK ey() ?>   541           <? = addLangK ey() ?>
542           <b r />   542           <b r />
543           <b r />   543           <b r />
544           <a  href="jav ascript:vo id(0)" onc lick="java script: wi ndow.close (); return  false;">C lose</a>   544           <a  href="jav ascript:vo id(0)" onc lick="java script: wi ndow.close (); return  false;">C lose</a>
545       </div>   545       </div>
546   </body>   546   </body>
547   </html>   547   </html>
548   <?   548   <?
549           ex it();   549           ex it();
550       }   550       }
551   ?>   551   ?>
552       <form  action="<? = $_SERVER ['PHP_SELF '] ?>?view =addLangua geKey" met hod="post" >   552       <form  action="<? = $_SERVER ['PHP_SELF '] ?>?view =addLangua geKey" met hod="post" >
553       <table  width="10 0%" class= "EditStrin gForm" cel lspacing=" 2">   553       <table  width="10 0%" class= "EditStrin gForm" cel lspacing=" 2">
554           <t r>   554           <t r>
555                <td widt h="140"><b >New langu age key na me:</b></t d>   555                <td widt h="140"><b >New langu age key na me:</b></t d>
556                <td><inp ut name="N ewKeyName"  style="wi dth: 99%"/ ></td>   556                <td><inp ut name="N ewKeyName"  style="wi dth: 99%"/ ></td>
557           </ tr>   557           </ tr>
558           <t r>   558           <t r>
559                <td><b>C ategory:</ b></td>   559                <td><b>C ategory:</ b></td>
560                <td>   560                <td>
561                    Use  existing:   561                    Use  existing:
562                    <sel ect name=" NewKeyCate gory" id=" NewKeyCate gory">   562                    <sel ect name=" NewKeyCate gory" id=" NewKeyCate gory">
563   <?   563   <?
564                    $arr Categories  = getLoca lizationCa tegories() ;   564                    $arr Categories  = getLoca lizationCa tegories() ;
565                    fore ach ($arrC ategories  as $catID  => $catNam e)   565                    fore ach ($arrC ategories  as $catID  => $catNam e)
566                    {   566                    {
567   ?>   567   ?>
568                         <option va lue="<?= $ catID ?>"> <?= htmlsp ecialchars ($catName)  ?></optio n>   568                         <option va lue="<?= $ catID ?>"> <?= htmlsp ecialchars ($catName)  ?></optio n>
569   <?   569   <?
570                    }   570                    }
571   ?>   571   ?>
572                    </se lect>   572                    </se lect>
573                    or c reate a ne w one:   573                    or c reate a ne w one:
574                    <inp ut name="N ewCategory Name" type ="text" st yle="width : 100px"/>   574                    <inp ut name="N ewCategory Name" type ="text" st yle="width : 100px"/>
575                </td>   575                </td>
576           </ tr>   576           </ tr>
577           <t r>   577           <t r>
578                <td vali gn="top">< b>Language  string pa rameters:< /b></td>   578                <td vali gn="top">< b>Language  string pa rameters:< /b></td>
579                <td>   579                <td>
580                Describe  string pa rameters,  each on a  separate l ine. Follo w the exam ple below:   580                Describe  string pa rameters,  each on a  separate l ine. Follo w the exam ple below:
581   <pre>   581   <pre>
582   0 - member 's nicknam e   582   0 - member 's nicknam e
583   1 - curren t membersh ip name   583   1 - curren t membersh ip name
584   </pre>   584   </pre>
585                Note tha t, if you  don't exac tly follow  this form at, parame ters won't  be saved.   585                Note tha t, if you  don't exac tly follow  this form at, parame ters won't  be saved.
586                <br />   586                <br />
587                <textare a name="Ne wStringPar ameters" r ows="5" st yle="width : 99%"></t extarea>   587                <textare a name="Ne wStringPar ameters" r ows="5" st yle="width : 99%"></t extarea>
588                </td>   588                </td>
589           </ tr>   589           </ tr>
590           <t r>   590           <t r>
591                <td vali gn="top">< b>String t exts for a vailable l anguages:< /b></td>   591                <td vali gn="top">< b>String t exts for a vailable l anguages:< /b></td>
592                <td>   592                <td>
593   <?   593   <?
594                    $arr Languages  = getLangs Arr();   594                    $arr Languages  = getLangs Arr();
595                    fore ach ($arrL anguages a s $langNam e => $lang Title)   595                    fore ach ($arrL anguages a s $langNam e => $lang Title)
596                    {   596                    {
597                         $langID =  db_value(  "SELECT `I D` FROM `L ocalizatio nLanguages ` WHERE `N ame` = '$l angName'"  );   597                         $langID =  db_value(  "SELECT `I D` FROM `L ocalizatio nLanguages ` WHERE `N ame` = '$l angName'"  );
598                           598                        
599                         echo '<b>' .htmlspeci alchars($l angTitle). ':</b>';   599                         echo '<b>' .htmlspeci alchars($l angTitle). ':</b>';
600   ?>   600   ?>
601                         <br />   601                         <br />
602                         <textarea  name="Lang Strings[<? = $langID  ?>]" style ="width: 9 9%"></text area>   602                         <textarea  name="Lang Strings[<? = $langID  ?>]" style ="width: 9 9%"></text area>
603                         <hr />   603                         <hr />
604   <?   604   <?
605                    }   605                    }
606   ?>   606   ?>
607                </td>   607                </td>
608           </ tr>   608           </ tr>
609           <t r>   609           <t r>
610                <td cols pan="2" al ign="cente r"><input  name="Reco mpileLangF iles" type ="checkbox " checked  /> Recompi le languag e files to  apply cha nges.</td>   610                <td cols pan="2" al ign="cente r"><input  name="Reco mpileLangF iles" type ="checkbox " checked  /> Recompi le languag e files to  apply cha nges.</td>
611           </ tr>   611           </ tr>
612       </tabl e>   612       </tabl e>
613       <div a lign="cent er"><br /> <input typ e="submit"  name="Add LangKey" v alue="Save  changes"  /></div>   613       <div a lign="cent er"><br /> <input typ e="submit"  name="Add LangKey" v alue="Save  changes"  /></div>
614       </form >   614       </form >
615   </body>   615   </body>
616   </html>   616   </html>
617   <?   617   <?
618     618  
619       return  ob_get_cl ean();   619       return  ob_get_cl ean();
620   }   620   }
621     621  
622   function e ditStringF orm()   622   function e ditStringF orm()
623   {   623   {
624       functi on updateL anguageStr ing()   624       functi on updateL anguageStr ing()
625       {   625       {
626           $k eyID = (in t)$_POST[' UpdateStri ng_KeyID'] ;   626           $k eyID = (in t)$_POST[' UpdateStri ng_KeyID'] ;
627           $l angID = (i nt)$_POST[ 'UpdateStr ing_LangID '];   627           $l angID = (i nt)$_POST[ 'UpdateStr ing_LangID '];
628           $s tring = pr ocess_db_i nput($_POS T['UpdateS tring_Stri ng']);   628           $s tring = pr ocess_db_i nput($_POS T['UpdateS tring_Stri ng']);
629     629  
630           db _res("   630           db _res("
631                UPDATE   `Localizat ionStrings `   631                UPDATE   `Localizat ionStrings `
632                SET      `String` =  '$string'   632                SET      `String` =  '$string'
633                WHERE    `IDKey` =  $keyID AND   633                WHERE    `IDKey` =  $keyID AND
634                         `IDLanguag e` = $lang ID");   634                         `IDLanguag e` = $lang ID");
635     635  
636           if  (mysql_af fected_row s() <= 0)   636           if  (mysql_af fected_row s() <= 0)
637           {   637           {
638                return ' <font colo r="red">Th e string h as <b>NOT< /b> been u pdated.</f ont>';   638                return ' <font colo r="red">Th e string h as <b>NOT< /b> been u pdated.</f ont>';
639           }   639           }
640     640  
641           if  ( $_POST[ 'Recompile LangFile']  == 'on' )   641           if  ( $_POST[ 'Recompile LangFile']  == 'on' )
642           {   642           {
643                if ( !co mpileLangu age($langI D) )   643                if ( !co mpileLangu age($langI D) )
644                {   644                {
645                    retu rn '<font  color="red ">Error: c ould not r ecompile l anguage fi le.</font> ';   645                    retu rn '<font  color="red ">Error: c ould not r ecompile l anguage fi le.</font> ';
646                }   646                }
647           }   647           }
648     648  
649           re turn 'The  string has  been succ essfully u pdated.';   649           re turn 'The  string has  been succ essfully u pdated.';
650       }   650       }
651     651  
652       $IDKey  = (int)$_ GET['editS tringKeyID '];   652       $IDKey  = (int)$_ GET['editS tringKeyID '];
653       $IDLan guage = (i nt)$_GET[' editString LangID'];   653       $IDLan guage = (i nt)$_GET[' editString LangID'];
654     654  
655       ob_sta rt();   655       ob_sta rt();
656     656  
657       $scrip t = "   657       $scrip t = "
658       functi on insertP aram(strTe xtAreaID,  strSelectP aramsID)   658       functi on insertP aram(strTe xtAreaID,  strSelectP aramsID)
659       {   659       {
660           te xtArea = d ocument.ge tElementBy Id(strText AreaID);   660           te xtArea = d ocument.ge tElementBy Id(strText AreaID);
661           se lectParams  = documen t.getEleme ntById(str SelectPara msID);   661           se lectParams  = documen t.getEleme ntById(str SelectPara msID);
662              662           
663           if ( !selectP arams.opti ons.length  || select Params.sel ectedIndex  == -1 )   663           if ( !selectP arams.opti ons.length  || select Params.sel ectedIndex  == -1 )
664                return f alse;   664                return f alse;
665              665           
666           se lectedOpti on = selec tParams.op tions[sele ctParams.s electedInd ex];   666           se lectedOpti on = selec tParams.op tions[sele ctParams.s electedInd ex];
667     667  
668           te xtArea.val ue = '' +  textArea.v alue + sel ectedOptio n.value;   668           te xtArea.val ue = '' +  textArea.v alue + sel ectedOptio n.value;
669     669  
670           te xtArea.foc us();   670           te xtArea.foc us();
671       }   671       }
672       ";   672       ";
673     673  
674       if ( i sset($_POS T['UpdateL angString' ]) )   674       if ( i sset($_POS T['UpdateL angString' ]) )
675       {   675       {
676           $b ody = mess ageTemplat e(updateLa nguageStri ng().'<br  /><br /><a  href="jav ascript:vo id(0)" onc lick="java script: wi ndow.close (); return  false;">C lose</a>') ;   676           $b ody = mess ageTemplat e(updateLa nguageStri ng().'<br  /><br /><a  href="jav ascript:vo id(0)" onc lick="java script: wi ndow.close (); return  false;">C lose</a>') ;
677     677  
678           re turn Popup PageTempla te('Edit L anguage St ring', $bo dy, $scrip t);   678           re turn Popup PageTempla te('Edit L anguage St ring', $bo dy, $scrip t);
679       }   679       }
680     680  
681       $sql =  "   681       $sql =  "
682           SE LECT  `Loc alizationS trings`.`I DKey`        AS `IDKe y`,   682           SE LECT  `Loc alizationS trings`.`I DKey`        AS `IDKe y`,
683                    `Loc alizationS trings`.`I DLanguage`   AS `IDLa nguage`,   683                    `Loc alizationS trings`.`I DLanguage`   AS `IDLa nguage`,
684                    `Loc alizationK eys`.`Key`              AS `Key` ,   684                    `Loc alizationK eys`.`Key`              AS `Key` ,
685                    `Loc alizationS trings`.`S tring`       AS `Stri ng`,   685                    `Loc alizationS trings`.`S tring`       AS `Stri ng`,
686                    `Loc alizationL anguages`. `Title`      AS `Lang uage`,   686                    `Loc alizationL anguages`. `Title`      AS `Lang uage`,
687                    `Loc alizationC ategories` .`Name`      AS `Cate gory`   687                    `Loc alizationC ategories` .`Name`      AS `Cate gory`
688           FR OM `Locali zationStri ngParams`   688           FR OM `Locali zationStri ngParams`
689           RI GHT JOIN ` Localizati onKeys` ON   689           RI GHT JOIN ` Localizati onKeys` ON
690                (`Locali zationStri ngParams`. `IDKey` =  `Localizat ionKeys`.` ID`)   690                (`Locali zationStri ngParams`. `IDKey` =  `Localizat ionKeys`.` ID`)
691           LE FT JOIN `L ocalizatio nStrings`  ON   691           LE FT JOIN `L ocalizatio nStrings`  ON
692                (`Locali zationStri ngs`.`IDKe y` = `Loca lizationKe ys`.`ID`)   692                (`Locali zationStri ngs`.`IDKe y` = `Loca lizationKe ys`.`ID`)
693           LE FT JOIN `L ocalizatio nCategorie s` ON   693           LE FT JOIN `L ocalizatio nCategorie s` ON
694                (`Locali zationKeys `.`IDCateg ory` = `Lo calization Categories `.`ID`)   694                (`Locali zationKeys `.`IDCateg ory` = `Lo calization Categories `.`ID`)
695           LE FT JOIN `L ocalizatio nLanguages ` ON   695           LE FT JOIN `L ocalizatio nLanguages ` ON
696                (`Locali zationStri ngs`.`IDLa nguage` =  `Localizat ionLanguag es`.`ID`)   696                (`Locali zationStri ngs`.`IDLa nguage` =  `Localizat ionLanguag es`.`ID`)
697           WH ERE   697           WH ERE
698                `Localiz ationStrin gs`.`IDKey ` = $IDKey  AND   698                `Localiz ationStrin gs`.`IDKey ` = $IDKey  AND
699                `Localiz ationStrin gs`.`IDLan guage` = $ IDLanguage   699                `Localiz ationStrin gs`.`IDLan guage` = $ IDLanguage
700           ";   700           ";
701     701  
702       $resLa ngString =  db_res($s ql);   702       $resLa ngString =  db_res($s ql);
703     703  
704       if ( ! mysql_num_ rows($resL angString)  )   704       if ( ! mysql_num_ rows($resL angString)  )
705           re turn Popup PageTempla te('Edit L anguage St ring', mes sageTempla te('Error:  specified  string no t found.') );   705           re turn Popup PageTempla te('Edit L anguage St ring', mes sageTempla te('Error:  specified  string no t found.') );
706       else {   706       else {
707           $a rrLangStri ng = mysql _fetch_ass oc($resLan gString);   707           $a rrLangStri ng = mysql _fetch_ass oc($resLan gString);
708           ob _start();   708           ob _start();
709   ?>   709   ?>
710       <form  action="<? = $_SERVER ['PHP_SELF '] ?>?view =editLangS tring" met hod="post" >   710       <form  action="<? = $_SERVER ['PHP_SELF '] ?>?view =editLangS tring" met hod="post" >
711       <input  name="Upd ateString_ KeyID" typ e="hidden"  value="<? = $arrLang String['ID Key'] ?>"  />   711       <input  name="Upd ateString_ KeyID" typ e="hidden"  value="<? = $arrLang String['ID Key'] ?>"  />
712       <input  name="Upd ateString_ LangID" ty pe="hidden " value="< ?= $arrLan gString['I DLanguage' ] ?>" />   712       <input  name="Upd ateString_ LangID" ty pe="hidden " value="< ?= $arrLan gString['I DLanguage' ] ?>" />
713       <table  width="10 0%" class= "EditStrin gForm" cel lspacing=" 2">   713       <table  width="10 0%" class= "EditStrin gForm" cel lspacing=" 2">
714           <t r>   714           <t r>
715                <td alig n="right"  width="60" ><b>Key:</ b></td>   715                <td alig n="right"  width="60" ><b>Key:</ b></td>
716                <td><?=  htmlspecia lchars($ar rLangStrin g['Key']);  ?></td>   716                <td><?=  htmlspecia lchars($ar rLangStrin g['Key']);  ?></td>
717           </ tr>   717           </ tr>
718           <t r>   718           <t r>
719                <td alig n="right"> <b>String: </b></td>   719                <td alig n="right"> <b>String: </b></td>
720                <td><tex tarea name ="UpdateSt ring_Strin g" id='Str ingTextAre a' rows="1 6" style=" width: 99% "><?= html specialcha rs($arrLan gString['S tring']);  ?></textar ea></td>   720                <td><tex tarea name ="UpdateSt ring_Strin g" id='Str ingTextAre a' rows="1 6" style=" width: 99% "><?= html specialcha rs($arrLan gString['S tring']);  ?></textar ea></td>
721           </ tr>   721           </ tr>
722   <?   722   <?
723       $arrPa rams = get Localizati onStringPa rams($arrL angString[ 'IDKey']);   723       $arrPa rams = get Localizati onStringPa rams($arrL angString[ 'IDKey']);
724       if( $a rrParams   ) {   724       if( $a rrParams   ) {
725   ?>   725   ?>
726           <t r>   726           <t r>
727                <td alig n="right"> <b>Paramet ers:</b></ td>   727                <td alig n="right"> <b>Paramet ers:</b></ td>
728                <td>   728                <td>
729                Availabl e string p arameters  (click on  a paramete r to inser t it at th e end of t he string) :   729                Availabl e string p arameters  (click on  a paramete r to inser t it at th e end of t he string) :
730                <br />   730                <br />
731                <select  id='Select Params' mu ltiple sty le="width:  100%; hei ght: 100px " onclick= "insertPar am('String TextArea',  'SelectPa rams');">   731                <select  id='Select Params' mu ltiple sty le="width:  100%; hei ght: 100px " onclick= "insertPar am('String TextArea',  'SelectPa rams');">
732   <?   732   <?
733          733       
734           $f irstSelect ed = false ;   734           $f irstSelect ed = false ;
735           fo reach ($ar rParams as  $paramID  => $paramD escription ) {   735           fo reach ($ar rParams as  $paramID  => $paramD escription ) {
736                if ( !$f irstSelect ed ) {   736                if ( !$f irstSelect ed ) {
737                    $fir stSelected  = true;   737                    $fir stSelected  = true;
738                    $sel ected = 's elected';   738                    $sel ected = 's elected';
739                } else   739                } else
740                    $sel ected = '' ;   740                    $sel ected = '' ;
741   ?>   741   ?>
742                    <opt ion value= "{<?= $par amID ?>}"  <?= $selec ted ?>><?=  '{'.$para mID.'} - ' .htmlspeci alchars($p aramDescri ption) ?>< /option>   742                    <opt ion value= "{<?= $par amID ?>}"  <?= $selec ted ?>><?=  '{'.$para mID.'} - ' .htmlspeci alchars($p aramDescri ption) ?>< /option>
743   <?   743   <?
744           }   744           }
745   ?>   745   ?>
746                </select >   746                </select >
747                </td>   747                </td>
748           </ tr>   748           </ tr>
749   <?   749   <?
750       }   750       }
751   ?>   751   ?>
752           <t r>   752           <t r>
753                <td alig n="right"> <b>Categor y:</b></td >   753                <td alig n="right"> <b>Categor y:</b></td >
754                <td><?=  htmlspecia lchars($ar rLangStrin g['Categor y']); ?></ td>   754                <td><?=  htmlspecia lchars($ar rLangStrin g['Categor y']); ?></ td>
755           </ tr>   755           </ tr>
756           <t r>   756           <t r>
757                <td alig n="right"> <b>Languag e:</b></td >   757                <td alig n="right"> <b>Languag e:</b></td >
758                <td><?=  htmlspecia lchars($ar rLangStrin g['Languag e']); ?></ td>   758                <td><?=  htmlspecia lchars($ar rLangStrin g['Languag e']); ?></ td>
759           </ tr>   759           </ tr>
760           <t r>   760           <t r>
761                <td cols pan="2" al ign="cente r">   761                <td cols pan="2" al ign="cente r">
762                    <inp ut name="R ecompileLa ngFile" ty pe="checkb ox" checke d />   762                    <inp ut name="R ecompileLa ngFile" ty pe="checkb ox" checke d />
763                    Reco mpile corr esponding  language f ile to app ly changes .   763                    Reco mpile corr esponding  language f ile to app ly changes .
764                </td>   764                </td>
765           </ tr>   765           </ tr>
766       </tabl e>   766       </tabl e>
767       <div a lign="cent er"><br /> <input typ e="submit"  name="Upd ateLangStr ing" value ="Save cha nges" /></ div>   767       <div a lign="cent er"><br /> <input typ e="submit"  name="Upd ateLangStr ing" value ="Save cha nges" /></ div>
768       </form >   768       </form >
769   <?   769   <?
770              770           
771           re turn Popup PageTempla te('Edit L anguage St ring', ob_ get_clean( ), $script );   771           re turn Popup PageTempla te('Edit L anguage St ring', ob_ get_clean( ), $script );
772       }   772       }
773   }   773   }
774     774  
775   function s tringTable Block($sho wMoreThanM ax = false , $maxRows ToShow = 1 00)   775   function s tringTable Block($sho wMoreThanM ax = false , $maxRows ToShow = 1 00)
776   {   776   {
777       functi on htmlPro cessedPref ix($string , $prefixL en = 15)   777       functi on htmlPro cessedPref ix($string , $prefixL en = 15)
778       {   778       {
779           $s trLen = st rlen($stri ng);   779           $s trLen = st rlen($stri ng);
780           if ( $strLen  <= 0) retu rn '&nbsp; ';   780           if ( $strLen  <= 0) retu rn '&nbsp; ';
781           $p refix = ht mlspecialc hars(mb_su bstr($stri ng, 0, $pr efixLen));   781           $p refix = ht mlspecialc hars(mb_su bstr($stri ng, 0, $pr efixLen));
782           if  ( $strLen  > $prefix Len )   782           if  ( $strLen  > $prefix Len )
783                $prefix  .= '<font  color="#ee 0000">...< /font>';   783                $prefix  .= '<font  color="#ee 0000">...< /font>';
784           re turn $pref ix;   784           re turn $pref ix;
785       }   785       }
786     786  
787       functi on deleteL anguageKey ()   787       functi on deleteL anguageKey ()
788       {   788       {
789           $l angKeyID =  (int)$_PO ST['Delete LangKey'];   789           $l angKeyID =  (int)$_PO ST['Delete LangKey'];
790           $r esKey = db _res('SELE CT `Key` F ROM `Local izationKey s` WHERE ` ID` = '.$l angKeyID);   790           $r esKey = db _res('SELE CT `Key` F ROM `Local izationKey s` WHERE ` ID` = '.$l angKeyID);
791           if  ( !mysql_ num_rows($ resKey) )   791           if  ( !mysql_ num_rows($ resKey) )
792                return ' <font colo r="red">Er ror: langu age key no t found.</ font>';   792                return ' <font colo r="red">Er ror: langu age key no t found.</ font>';
793              793           
794           db _res('DELE TE FROM `L ocalizatio nKeys` WHE RE `ID`='. $langKeyID );   794           db _res('DELE TE FROM `L ocalizatio nKeys` WHE RE `ID`='. $langKeyID );
795           db _res('DELE TE FROM `L ocalizatio nStrings`  WHERE `IDK ey` = '.$l angKeyID);   795           db _res('DELE TE FROM `L ocalizatio nStrings`  WHERE `IDK ey` = '.$l angKeyID);
796           db _res('DELE TE FROM `L ocalizatio nStringPar ams` WHERE  `IDKey` =  '.$langKe yID);   796           db _res('DELE TE FROM `L ocalizatio nStringPar ams` WHERE  `IDKey` =  '.$langKe yID);
797     797  
798           if  (!compile Language() )   798           if  (!compile Language() )
799                return ' <font colo r="red">Er ror: could  not recom pile langu age files. </font>';   799                return ' <font colo r="red">Er ror: could  not recom pile langu age files. </font>';
800     800  
801           $a rrKey = my sql_fetch_ assoc($res Key);   801           $a rrKey = my sql_fetch_ assoc($res Key);
802     802  
803           re turn '<fon t color="g reen">The  <b>'.htmls pecialchar s($arrKey[ 'Key']).'< /b> langua ge key has  been succ essfully r emoved.</f ont>';   803           re turn '<fon t color="g reen">The  <b>'.htmls pecialchar s($arrKey[ 'Key']).'< /b> langua ge key has  been succ essfully r emoved.</f ont>';
804       }   804       }
805     805  
806       if ( i sset($_POS T['DeleteL angKey'])  )   806       if ( i sset($_POS T['DeleteL angKey'])  )
807           $r esultMsg =  deleteLan guageKey() ;   807           $r esultMsg =  deleteLan guageKey() ;
808     808  
809       global   809       global
810           $s earchStrin g,   810           $s earchStrin g,
811           $s earchCombi neWordsAs,   811           $s earchCombi neWordsAs,
812           $s earchInKey s,   812           $s earchInKey s,
813           $s earchInStr ings,   813           $s earchInStr ings,
814           $s earchInPar ams,   814           $s earchInPar ams,
815           $s earchCateg ories,   815           $s earchCateg ories,
816           $s earchLangu ages;   816           $s earchLangu ages;
817     817  
818       $res =  findLangS trings(   818       $res =  findLangS trings(
819       $searc hString,   819       $searc hString,
820       $searc hCombineWo rdsAs,   820       $searc hCombineWo rdsAs,
821       $searc hInKeys,   821       $searc hInKeys,
822       $searc hInStrings ,   822       $searc hInStrings ,
823       $searc hInParams,   823       $searc hInParams,
824       $searc hCategorie s,   824       $searc hCategorie s,
825       $searc hLanguages );   825       $searc hLanguages );
826     826  
827       ob_sta rt();   827       ob_sta rt();
828   ?>   828   ?>
829       <a hre f="javascr ipt:void(0 )" onclick ="popupFor m('<?= $_S ERVER['PHP _SELF'] ?> ?view=addL anguageKey ', 200, 10 0, 750, 50 0, 'yes');  return fa lse;">Add  a new lang uage key</ a><br /><h r />   829       <a hre f="javascr ipt:void(0 )" onclick ="popupFor m('<?= $_S ERVER['PHP _SELF'] ?> ?view=addL anguageKey ', 200, 10 0, 750, 50 0, 'yes');  return fa lse;">Add  a new lang uage key</ a><br /><h r />
830   <?   830   <?
831     831  
832       echo $ resultMsg. '<br />';   832       echo $ resultMsg. '<br />';
833     833  
834       $numRo ws = mysql _num_rows( $res);   834       $numRo ws = mysql _num_rows( $res);
835     835  
836       if ( $ numRows >  $maxRowsTo Show && !$ showMoreTh anMax)   836       if ( $ numRows >  $maxRowsTo Show && !$ showMoreTh anMax)
837       {   837       {
838           $g etQuery =  $_SERVER[" QUERY_STRI NG"];   838           $g etQuery =  $_SERVER[" QUERY_STRI NG"];
839           if (strlen($g etQuery) >  0) $getQu ery .= '&' ;   839           if (strlen($g etQuery) >  0) $getQu ery .= '&' ;
840           $g etQuery .=  'showMore ThanMax=ye s';   840           $g etQuery .=  'showMore ThanMax=ye s';
841   ?>   841   ?>
842   <div align ="center"  style="pad ding: 20px ">   842   <div align ="center"  style="pad ding: 20px ">
843       Your s earch crit eria resul t in <b><? = $numRows  ?></b> st rings.   843       Your s earch crit eria resul t in <b><? = $numRows  ?></b> st rings.
844       <br />   844       <br />
845       Are yo u sure you  want to s how all of  them?   845       Are yo u sure you  want to s how all of  them?
846       <br />   846       <br />
847       <a hre f="<?= $_S ERVER['PHP _SELF'].'? '.$getQuer y ?>">Yes< /a>   847       <a hre f="<?= $_S ERVER['PHP _SELF'].'? '.$getQuer y ?>">Yes< /a>
848   </div>   848   </div>
849   <?   849   <?
850           re turn panel Section("L anguage st rings", ob _get_clean ());   850           re turn panel Section("L anguage st rings", ob _get_clean ());
851       }   851       }
852   ?>   852   ?>
853   <table bor der="0" ce llpadding= "0" cellsp acing="0"  class="Lan guagesStri ngs">   853   <table bor der="0" ce llpadding= "0" cellsp acing="0"  class="Lan guagesStri ngs">
854       <tr cl ass="Heade rRow">   854       <tr cl ass="Heade rRow">
855           <t d>Key</td>   855           <t d>Key</td>
856           <t d>String</ td>   856           <t d>String</ td>
857           <t d>Category </td>   857           <t d>Category </td>
858           <t d>Language </td>   858           <t d>Language </td>
859           <t d colspan= "2">&nbsp; </td>   859           <t d colspan= "2">&nbsp; </td>
860       </tr>   860       </tr>
861   <?   861   <?
862       if ( ! mysql_num_ rows($res)  ) {   862       if ( ! mysql_num_ rows($res)  ) {
863   ?>   863   ?>
864       <tr>   864       <tr>
865           <t d colspan= "5" align= "center" c lass="Left ">No strin gs found m atching yo ur criteri a.</td>   865           <t d colspan= "5" align= "center" c lass="Left ">No strin gs found m atching yo ur criteri a.</td>
866       </tr>   866       </tr>
867   <?   867   <?
868       }   868       }
869          869       
870       while( $arrString  = mysql_f etch_assoc ($res)) {   870       while( $arrString  = mysql_f etch_assoc ($res)) {
871   ?>   871   ?>
872       <tr>   872       <tr>
873       <td cl ass="Left" ><?= htmlP rocessedPr efix($arrS tring['Key '], 20) ?> </td>   873       <td cl ass="Left" ><?= htmlP rocessedPr efix($arrS tring['Key '], 20) ?> </td>
874       <td><? = htmlProc essedPrefi x($arrStri ng['String '], 32) ?> </td>   874       <td><? = htmlProc essedPrefi x($arrStri ng['String '], 32) ?> </td>
875       <td><? = htmlProc essedPrefi x($arrStri ng['Catego ry'], 25)  ?></td>   875       <td><? = htmlProc essedPrefi x($arrStri ng['Catego ry'], 25)  ?></td>
876       <td><? = htmlProc essedPrefi x($arrStri ng['Langua ge'], 20)  ?></td>   876       <td><? = htmlProc essedPrefi x($arrStri ng['Langua ge'], 20)  ?></td>
877       <td wi dth="20">< a   877       <td wi dth="20">< a
878                href="ja vascript:  void(0)"   878                href="ja vascript:  void(0)"
879                onclick= "popupForm ('<?=   879                onclick= "popupForm ('<?=
880                    $_SE RVER['PHP_ SELF'].   880                    $_SE RVER['PHP_ SELF'].
881                    '?vi ew=editLan gString&ed itStringKe yID='.   881                    '?vi ew=editLan gString&ed itStringKe yID='.
882                    $arr String['ID Key'].   882                    $arr String['ID Key'].
883                    '&ed itStringLa ngID='.   883                    '&ed itStringLa ngID='.
884                    $arr String['ID Language']  ?>', 300,  100, 600,  570, 'no' ); return  false;">Ed it</a>   884                    $arr String['ID Language']  ?>', 300,  100, 600,  570, 'no' ); return  false;">Ed it</a>
885       </td>   885       </td>
886       <td wi dth="30">   886       <td wi dth="30">
887           <f orm   887           <f orm
888                id="Dele teLangKeyF orm_<?= $a rrString[' IDKey'] ?> "   888                id="Dele teLangKeyF orm_<?= $a rrString[' IDKey'] ?> "
889                style="m argin: 0px ; padding:  0px"   889                style="m argin: 0px ; padding:  0px"
890                action=" <?= htmlsp ecialchars ($_SERVER[ 'PHP_SELF' ].'?'.$_SE RVER['QUER Y_STRING'] ) ?>"   890                action=" <?= htmlsp ecialchars ($_SERVER[ 'PHP_SELF' ].'?'.$_SE RVER['QUER Y_STRING'] ) ?>"
891                method=" post"><inp ut name="D eleteLangK ey" value= "<?= $arrS tring['IDK ey'] ?>" t ype="hidde n"/></form ><a   891                method=" post"><inp ut name="D eleteLangK ey" value= "<?= $arrS tring['IDK ey'] ?>" t ype="hidde n"/></form ><a
892                href="ja vascript:v oid(0)"   892                href="ja vascript:v oid(0)"
893                onclick= "if(confir m('This op eration wi ll delete  the langua ge key its elf and al l correspo nding lang uage strin gs from al l language s. Are you  sure you  want to co ntinue?')) { document .getElemen tById('Del eteLangKey Form_<?= $ arrString[ 'IDKey'] ? >').submit ();} retur n false;"> Delete</a>   893                onclick= "if(confir m('This op eration wi ll delete  the langua ge key its elf and al l correspo nding lang uage strin gs from al l language s. Are you  sure you  want to co ntinue?')) { document .getElemen tById('Del eteLangKey Form_<?= $ arrString[ 'IDKey'] ? >').submit ();} retur n false;"> Delete</a>
894       </td>   894       </td>
895       </tr>   895       </tr>
896   <?   896   <?
897       }   897       }
898   ?>   898   ?>
899   </table>   899   </table>
900   <br />   900   <br />
901   <?   901   <?
902          902       
903       return  panelSect ion("Langu age string s", ob_get _clean());   903       return  panelSect ion("Langu age string s", ob_get _clean());
904   }   904   }
905     905  
906   function e ditLanguag eForm()   906   function e ditLanguag eForm()
907   {   907   {
908       $langI D = (int)$ _GET['edit LanguageID '];   908       $langI D = (int)$ _GET['edit LanguageID '];
909       $resLa ng = db_re s('SELECT  `Name`, `F lag`, `Tit le` FROM ` Localizati onLanguage s` WHERE ` ID` = '.$l angID);   909       $resLa ng = db_re s('SELECT  `Name`, `F lag`, `Tit le` FROM ` Localizati onLanguage s` WHERE ` ID` = '.$l angID);
910     910  
911       if ( ! mysql_num_ rows($resL ang) )   911       if ( ! mysql_num_ rows($resL ang) )
912           re turn Popup PageTempla te('Edit L anguage',  messageTem plate('<fo nt color=" red">Error : language  does not  exist.</fo nt>'));   912           re turn Popup PageTempla te('Edit L anguage',  messageTem plate('<fo nt color=" red">Error : language  does not  exist.</fo nt>'));
913     913  
914       functi on updateL anguage($l angID) {   914       functi on updateL anguage($l angID) {
915           $l angID = (i nt)$langID ;   915           $l angID = (i nt)$langID ;
916     916  
917           $n ewLanguage Name  = pr ocess_db_i nput($_POS T['Languag eName']);   917           $n ewLanguage Name  = pr ocess_db_i nput($_POS T['Languag eName']);
918           $s NewFlag          = pr ocess_db_i nput($_POS T['Flag']) ;   918           $s NewFlag          = pr ocess_db_i nput($_POS T['Flag']) ;
919           $n ewLanguage Title = pr ocess_db_i nput($_POS T['Languag eTitle']);   919           $n ewLanguage Title = pr ocess_db_i nput($_POS T['Languag eTitle']);
920     920  
921           if  ( !strlen ($newLangu ageName) )   921           if  ( !strlen ($newLangu ageName) )
922                return ' <font colo r="red">Er ror: langu age name n ot specifi ed.</font> ';   922                return ' <font colo r="red">Er ror: langu age name n ot specifi ed.</font> ';
923     923  
924           $s Query = "   924           $s Query = "
925                UPDATE ` Localizati onLanguage s` SET   925                UPDATE ` Localizati onLanguage s` SET
926                    `Nam e`='$newLa nguageName ',   926                    `Nam e`='$newLa nguageName ',
927                    `Tit le`='$newL anguageTit le',   927                    `Tit le`='$newL anguageTit le',
928                    `Fla g` = '$sNe wFlag'   928                    `Fla g` = '$sNe wFlag'
929                WHERE `I D` = $lang ID";   929                WHERE `I D` = $lang ID";
930              930           
931           db _res( $sQu ery );   931           db _res( $sQu ery );
932     932  
933           if  ( mysql_a ffected_ro ws() )   933           if  ( mysql_a ffected_ro ws() )
934                return ' Language h as been su ccessfully  updated.' ;   934                return ' Language h as been su ccessfully  updated.' ;
935     935  
936           re turn '<fon t color="r ed">Error:  language  could not  be updated .</font>';   936           re turn '<fon t color="r ed">Error:  language  could not  be updated .</font>';
937       }   937       }
938     938  
939       if ( i sset($_POS T['UpdateL anguage'])  )   939       if ( i sset($_POS T['UpdateL anguage'])  )
940           re turn Popup PageTempla te('Edit L anguage',  messageTem plate(upda teLanguage ($langID)) );   940           re turn Popup PageTempla te('Edit L anguage',  messageTem plate(upda teLanguage ($langID)) );
941     941  
942       $arrLa ng = mysql _fetch_ass oc($resLan g);   942       $arrLa ng = mysql _fetch_ass oc($resLan g);
943     943  
944       ob_sta rt();   944       ob_sta rt();
945     945  
946       $isLan gDefault =  getParam( 'lang_defa ult') == $ arrLang['N ame'];   946       $isLan gDefault =  getParam( 'lang_defa ult') == $ arrLang['N ame'];
947   ?>   947   ?>
948   <form acti on="<?= $_ SERVER['PH P_SELF'] ? >?view=edi tLanguage& editLangua geID=<?= $ langID ?>"  method="p ost">   948   <form acti on="<?= $_ SERVER['PH P_SELF'] ? >?view=edi tLanguage& editLangua geID=<?= $ langID ?>"  method="p ost">
949   <table>   949   <table>
950       <tr>   950       <tr>
951           <t d>Language  title:</t d>   951           <t d>Language  title:</t d>
952           <t d>   952           <t d>
953                <input n ame="Langu ageTitle"  type="text " value="< ?= htmlspe cialchars( $arrLang[' Title']) ? >" />   953                <input n ame="Langu ageTitle"  type="text " value="< ?= htmlspe cialchars( $arrLang[' Title']) ? >" />
954           </ td>   954           </ td>
955       </tr>   955       </tr>
956       <tr>   956       <tr>
957            <td> Language   code :</td>   957           <t d>
    958                
Language   code
    959                <a href= "http://ww w.boonex.c om/unity/t xt/extensi on_require ments#Lang uageFiles"  target="_ blank">?</ a>:
    960           </ td>
958           <t d>   961           <t d>
959                <input n ame="Langu ageName" t ype="text"  value="<? = htmlspec ialchars($ arrLang['N ame']) ?>"   962                <input n ame="Langu ageName" t ype="text"  value="<? = htmlspec ialchars($ arrLang['N ame']) ?>"
960                  <?= ge tParam('la ng_default ')==$arrLa ng['Name']  ? 'disabl ed' : '' ? > />   963                  <?= ge tParam('la ng_default ')==$arrLa ng['Name']  ? 'disabl ed' : '' ? > />
961           </ td>   964           </ td>
962       </tr>   965       </tr>
963       <tr>   966       <tr>
964           <t d>Flag:</t d>   967           <t d>Flag:</t d>
965           <t d><?= show LangIcons( $arrLang[' Flag']); ? ></td>   968           <t d><?= show LangIcons( $arrLang[' Flag']); ? ></td>
966       </tr>   969       </tr>
967   </table>   970   </table>
968   <br />   971   <br />
969   <center><i nput type= "submit" n ame="Updat eLanguage"  value="Sa ve Changes " /></cent er>   972   <center><i nput type= "submit" n ame="Updat eLanguage"  value="Sa ve Changes " /></cent er>
970   </form>   973   </form>
971   <?   974   <?
972          975       
973       return  PopupPage Template(' Edit Langu age', ob_g et_clean() );   976       return  PopupPage Template(' Edit Langu age', ob_g et_clean() );
974   }   977   }
975     978  
976   function m anageLangu agesBlock( ) {   979   function m anageLangu agesBlock( ) {
977       global  $site;   980       global  $site;
978          981       
979       functi on copyLan guage() {   982       functi on copyLan guage() {
    983           $n ewLangTitl e = proces s_db_input ($_POST['C opyLanguag e_Title']) ;
980           $n ewLangName  = process _db_input( $_POST['Co pyLanguage _Name']);   984           $n ewLangName   = proces s_db_input ($_POST['C opyLanguag e_Name']);
981     985  
982           $s Flag = htm lspecialch ars_adv($_ POST['Flag ']);   986           $s Flag = htm lspecialch ars_adv($_ POST['Flag ']);
983     987  
984           $s ourceLangI D = (int)$ _POST['Cop yLanguage_ SourceLang ID'];   988           $s ourceLangI D = (int)$ _POST['Cop yLanguage_ SourceLang ID'];
985     989  
986            if(strlen( $newLang Nam e)   <=   0)   return   '<font   color="red ">Error:   please   specify   a   nam e   for   the   new   language.< /font>';   990            if(strlen( $newLang Titl e)   <=   0)   return   '<font   color="red ">Error:   please   specify   a   titl e   for   the   new   language.< /font>';
    991           if (strlen($n ewLangName ) <= 0)  r eturn '<fo nt color=" red">Error : please s pecify a c ode for th e new lang uage.</fon t>';
987     992  
988           db _res("   993           db _res("
989                INSERT I NTO `Local izationLan guages`   994                INSERT I NTO `Local izationLan guages`
990                (`Name`,  `Flag`, ` Title`) VA LUES   995                (`Name`,  `Flag`, ` Title`) VA LUES
991                 ('{$newLan gName}',   '{$sFlag}' ,   '{$newLang Nam e}')   996                 ('{$newLan gName}',   '{$sFlag}' ,   '{$newLang Titl e}')
992           ") ;   997           ") ;
993     998  
994           if (mysql_aff ected_rows () <= 0) r eturn '<fo nt color=" red">Error : could no t add a ne w language  to the da tabase.</f ont>';   999           if (mysql_aff ected_rows () <= 0) r eturn '<fo nt color=" red">Error : could no t add a ne w language  to the da tabase.</f ont>';
995     1000  
996           $n ewLangID =  mysql_ins ert_id();   1001           $n ewLangID =  mysql_ins ert_id();
997     1002  
998           $r esSourceLa ngStrings  = db_res("   1003           $r esSourceLa ngStrings  = db_res("
999                SELECT   `IDKey`, ` String`   1004                SELECT   `IDKey`, ` String`
1000                FROM     `Localizat ionStrings `   1005                FROM     `Localizat ionStrings `
1001                WHERE    `IDLanguag e` = $sour ceLangID   1006                WHERE    `IDLanguag e` = $sour ceLangID
1002           ") ;   1007           ") ;
1003     1008  
1004           wh ile($arr =  mysql_fet ch_assoc($ resSourceL angStrings ))   1009           wh ile($arr =  mysql_fet ch_assoc($ resSourceL angStrings ))
1005           {   1010           {
1006                $arr['St ring'] = a ddslashes( $arr['Stri ng']);   1011                $arr['St ring'] = a ddslashes( $arr['Stri ng']);
1007                db_res("   1012                db_res("
1008                    INSE RT INTO `L ocalizatio nStrings`   1013                    INSE RT INTO `L ocalizatio nStrings`
1009                    (`ID Key`, `IDL anguage`,  `String`)  VALUES   1014                    (`ID Key`, `IDL anguage`,  `String`)  VALUES
1010                    ('{$ arr['IDKey ']}', $new LangID, '{ $arr['Stri ng']}')   1015                    ('{$ arr['IDKey ']}', $new LangID, '{ $arr['Stri ng']}')
1011                     "
);
  1016                     " ,   0 );
1012                   1017                
1013                if( !mys ql_affecte d_rows() )   1018                if( !mys ql_affecte d_rows() )
1014                    retu rn '<font  color="red ">Error: c ould not a dd a langu age string  to the da tabase.</f ont>';   1019                    retu rn '<font  color="red ">Error: c ould not a dd a langu age string  to the da tabase.</f ont>';
1015           }   1020           }
1016     1021  
1017           re turn '<fon t color="g reen"><b>' .htmlspeci alchars(st ripslashes ($newLangN ame)).'</b > language  has been  successful ly created .</font>';   1022           re turn '<fon t color="g reen"><b>' .htmlspeci alchars(st ripslashes ($newLangN ame)).'</b > language  has been  successful ly created .</font>';
1018       }   1023       }
1019     1024  
1020       functi on getLang Name($lang ID) {   1025       functi on getLang Name($lang ID) {
1021           $l angName =  db_res('SE LECT `Name ` FROM `Lo calization Languages`  WHERE `ID ` = '.(int )$langID);   1026           $l angName =  db_res('SE LECT `Name ` FROM `Lo calization Languages`  WHERE `ID ` = '.(int )$langID);
1022           $l angName =  mysql_fetc h_row($lan gName);   1027           $l angName =  mysql_fetc h_row($lan gName);
1023           re turn $lang Name[0];   1028           re turn $lang Name[0];
1024       }   1029       }
1025     1030  
1026       if ( $ _POST['Cop yLanguage' ] )   1031       if ( $ _POST['Cop yLanguage' ] )
1027           $r esultMsg =  copyLangu age();   1032           $r esultMsg =  copyLangu age();
1028       else i f ( isset( $_POST['Co mpileLangu age']) ) {   1033       else i f ( isset( $_POST['Co mpileLangu age']) ) {
1029           $l angName =  getLangNam e($_POST[' CompileLan guage']);   1034           $l angName =  getLangNam e($_POST[' CompileLan guage']);
1030     1035  
1031           if  ( compile Language(( int)$_POST ['CompileL anguage'])  )   1036           if  ( compile Language(( int)$_POST ['CompileL anguage'])  )
1032                $resultM sg = '<fon t color="g reen"><b>' .htmlspeci alchars($l angName).' </b> langu age has be en success fully comp iled.</fon t>';   1037                $resultM sg = '<fon t color="g reen"><b>' .htmlspeci alchars($l angName).' </b> langu age has be en success fully comp iled.</fon t>';
1033           el se   1038           el se
1034                $resultM sg = '<fon t color="r ed>Error:  could not  compile a  language.< /font>';   1039                $resultM sg = '<fon t color="r ed>Error:  could not  compile a  language.< /font>';
1035       } else  if ( isse t($_POST[' DeleteLang uage']) )  {   1040       } else  if ( isse t($_POST[' DeleteLang uage']) )  {
1036           $l angName =  getLangNam e($_POST[' DeleteLang uage']);   1041           $l angName =  getLangNam e($_POST[' DeleteLang uage']);
1037     1042  
1038           if  ( $langNa me == getP aram('lang _default') )   1043           if  ( $langNa me == getP aram('lang _default') )
1039                $resultM sg = '<fon t color="r ed">Cannot  delete th e default  language.  You have t o set anot her defaul t language  for the s ite in <b> global set tings -> C hange lang uage setti ngs</b> to  be able t o delete t his one.</ font>';   1044                $resultM sg = '<fon t color="r ed">Cannot  delete th e default  language.  You have t o set anot her defaul t language  for the s ite in <b> global set tings -> C hange lang uage setti ngs</b> to  be able t o delete t his one.</ font>';
1040           el se   1045           el se
1041           {   1046           {
1042                if ( del eteLanguag e((int)$_P OST['Delet eLanguage' ]) )   1047                if ( del eteLanguag e((int)$_P OST['Delet eLanguage' ]) )
1043                    $res ultMsg = ' <font colo r="green"> <b>'.htmls pecialchar s($langNam e).'</b> l anguage ha s been suc cessfully  removed.</ font>';   1048                    $res ultMsg = ' <font colo r="green"> <b>'.htmls pecialchar s($langNam e).'</b> l anguage ha s been suc cessfully  removed.</ font>';
1044                else   1049                else
1045                    $res ultMsg = ' <font colo r="red">Er ror: could  not delet e a langua ge.</font> ';   1050                    $res ultMsg = ' <font colo r="red">Er ror: could  not delet e a langua ge.</font> ';
1046           }   1051           }
1047       }   1052       }
1048     1053  
1049          1054       
1050       ob_sta rt();   1055       ob_sta rt();
1051       displa yLanguageS ettings();   1056       displa yLanguageS ettings();
1052       $sCon1  = panelSe ction('Lan guage', ob _get_clean ());   1057       $sCon1  = panelSe ction('Lan guage', ob _get_clean ());
1053          1058       
1054       $arrLa ngs = getL angsArr(fa lse, true) ;   1059       $arrLa ngs = getL angsArr(fa lse, true) ;
1055     1060  
1056       ob_sta rt();   1061       ob_sta rt();
1057   ?>   1062   ?>
1058   <form acti on="<?= $_ SERVER['PH P_SELF'] ? >" method= "post" sty le="margin :0px">   1063   <form acti on="<?= $_ SERVER['PH P_SELF'] ? >" method= "post" sty le="margin :0px">
1059       New la nguage:   1064       New la nguage:
1060        <input   type="text "   name="Copy Language_ Nam e"   style="wid th:   100px"   />   1065        <input   type="text "   name="Copy Language_ Titl e"   style="wid th:   100px"   />
    1066       <a hre f="http:// www.boonex .com/unity /txt/exten sion_requi rements#La nguageFile s" target= "_blank"
    1067         onmo useover="s howFloatDe sc( 'Inter national l anguage co de. For de tails plea se read ab out Intern ational st andards (c lick to th is link).'  );"
    1068         onmo usemove="m oveFloatDe sc( event  );"
    1069         onmo useout="hi deFloatDes c();"
    1070           >C ode</a>:
    1071       <input  type="tex t" name="C opyLanguag e_Name" st yle="width : 40px;" m axlength=" 5" />
1061       Copy f rom:   1072       Copy f rom:
1062       <selec t name="Co pyLanguage _SourceLan gID" style ="width: 1 00px">   1073       <selec t name="Co pyLanguage _SourceLan gID" style ="width: 1 00px">
1063           <?  foreach ( $arrLangs  as $langID  => $langN ame) { ?>   1074           <?  foreach ( $arrLangs  as $langID  => $langN ame) { ?>
1064           <o ption valu e="<?= $la ngID ?>">< ?= htmlspe cialchars( $langName)  ?></optio n>   1075           <o ption valu e="<?= $la ngID ?>">< ?= htmlspe cialchars( $langName)  ?></optio n>
1065           <?  } ?>   1076           <?  } ?>
1066       </sele ct>   1077       </sele ct>
1067       Flag:    1078       Flag: 
1068   <?   1079   <?
1069       echo s howLangIco ns();   1080       echo s howLangIco ns();
1070   ?>   1081   ?>
1071       <br />   1082       <br />
1072       <br />   1083       <br />
1073       <cente r>   1084       <cente r>
1074       <input  type="sub mit" name= "CopyLangu age" value ="Create"  />   1085       <input  type="sub mit" name= "CopyLangu age" value ="Create"  />
1075       </cent er>   1086       </cent er>
1076   </form>   1087   </form>
1077   <br />   1088   <br />
1078   <?   1089   <?
1079       if ( s trlen($res ultMsg) )   1090       if ( s trlen($res ultMsg) )
1080           ec ho $result Msg.'<br / ><br />';   1091           ec ho $result Msg.'<br / ><br />';
1081   ?>   1092   ?>
1082   <table cla ss="Langua gesStrings " cellpadd ing="0" ce llspacing= "0">   1093   <table cla ss="Langua gesStrings " cellpadd ing="0" ce llspacing= "0">
1083       <tr cl ass="Heade rRow">   1094       <tr cl ass="Heade rRow">
1084           <t d width="8 5%" align= "left">Lan guage</td>   1095           <t d width="8 5%" align= "left">Lan guage</td>
1085           <t d width="1 5%" align= "left">Fla g</td>   1096           <t d width="1 5%" align= "left">Fla g</td>
1086           <t d colspan= "3">&nbsp; </td>   1097           <t d colspan= "3">&nbsp; </td>
1087       </tr>   1098       </tr>
1088   <?   1099   <?
1089       $resLa ngs = db_r es('   1100       $resLa ngs = db_r es('
1090           SE LECT `ID`,  `Name`, ` Flag`, `Ti tle`   1101           SE LECT `ID`,  `Name`, ` Flag`, `Ti tle`
1091           FR OM `Locali zationLang uages`   1102           FR OM `Locali zationLang uages`
1092           OR DER BY `Na me`   1103           OR DER BY `Na me`
1093       ');   1104       ');
1094     1105  
1095       $defau ltLangName  = getPara m('lang_de fault');   1106       $defau ltLangName  = getPara m('lang_de fault');
1096     1107  
1097       while  ($arrLang  = mysql_fe tch_assoc( $resLangs) )   1108       while  ($arrLang  = mysql_fe tch_assoc( $resLangs) )
1098       {   1109       {
1099   ?>   1110   ?>
1100       <tr>   1111       <tr>
1101           <t d class="L eft">   1112           <t d class="L eft">
1102                <?= html specialcha rs($arrLan g['Title'] ) ?>   1113                <?= html specialcha rs($arrLan g['Title'] ) ?>
1103                [<?= $ar rLang['Nam e'] ?>]   1114                [<?= $ar rLang['Nam e'] ?>]
1104                <?= ($ar rLang['Nam e'] == $de faultLangN ame ? '<fo nt color=" red"> (def ault)</fon t>' : '')  ?>   1115                <?= ($ar rLang['Nam e'] == $de faultLangN ame ? '<fo nt color=" red"> (def ault)</fon t>' : '')  ?>
1105           </ td>   1116           </ td>
1106           <t d><img src ="<?= $sit e['flags'] .$arrLang[ 'Flag'].'. gif'?>"></ td>   1117           <t d><img src ="<?= $sit e['flags'] .$arrLang[ 'Flag'].'. gif'?>"></ td>
1107           <t d><a href= "javascrip t:void(0)"  onclick=" popupForm( '<?= $_SER VER['PHP_S ELF'] ?>?v iew=editLa nguage&edi tLanguageI D=<?= $arr Lang['ID']  ?>', 500,  300, 300,  200, 'no' ); return  false;">Ed it</a></td >   1118           <t d><a href= "javascrip t:void(0)"  onclick=" popupForm( '<?= $_SER VER['PHP_S ELF'] ?>?v iew=editLa nguage&edi tLanguageI D=<?= $arr Lang['ID']  ?>', 500,  300, 300,  200, 'no' ); return  false;">Ed it</a></td >
1108           <t d>   1119           <t d>
1109                <form id ="CompileF orm_<?= $a rrLang['ID '] ?>" act ion="<?= $ _SERVER['P HP_SELF']  ?>" method ="post" st yle="paddi ng: 0px; m argin: 0px ">   1120                <form id ="CompileF orm_<?= $a rrLang['ID '] ?>" act ion="<?= $ _SERVER['P HP_SELF']  ?>" method ="post" st yle="paddi ng: 0px; m argin: 0px ">
1110                    <inp ut type="h idden" nam e="Compile Language"  value="<?=  $arrLang[ 'ID'] ?>"  />   1121                    <inp ut type="h idden" nam e="Compile Language"  value="<?=  $arrLang[ 'ID'] ?>"  />
1111                </form>   1122                </form>
1112                <a href= "javascrip t:void(0)"  onclick=" document.g etElementB yId('Compi leForm_<?=  $arrLang[ 'ID'] ?>') .submit();  return fa lse;">Comp ile</a>   1123                <a href= "javascrip t:void(0)"  onclick=" document.g etElementB yId('Compi leForm_<?=  $arrLang[ 'ID'] ?>') .submit();  return fa lse;">Comp ile</a>
1113           </ td>   1124           </ td>
1114           <t d>   1125           <t d>
1115                <form id ="DeleteFo rm_<?= $ar rLang['ID' ] ?>" acti on="<?= $_ SERVER['PH P_SELF'] ? >" method= "post" sty le="paddin g: 0px; ma rgin: 0px" >   1126                <form id ="DeleteFo rm_<?= $ar rLang['ID' ] ?>" acti on="<?= $_ SERVER['PH P_SELF'] ? >" method= "post" sty le="paddin g: 0px; ma rgin: 0px" >
1116                    <inp ut type="h idden" nam e="DeleteL anguage" v alue="<?=  $arrLang[' ID'] ?>" / >   1127                    <inp ut type="h idden" nam e="DeleteL anguage" v alue="<?=  $arrLang[' ID'] ?>" / >
1117                </form>   1128                </form>
1118                 <a   href =" javascr i pt:v o
i d ( 0)"   o
n c l
i ck=" document.g etElementB yId('Delet eForm_<?=   $arrLang[' ID']   ?>').submi t();   return   false;" ><font   color="red ">Delete</ font></a>
  1129                <a href= "javascrip t:void(0)"
    1130                   onclick ="
i f(   c o nf i rm (   'Are   y o u   sure   wa n t   to   de l ete   th i s   language?'   )   )   document.g etElementB yId('Delet eForm_<?=   $arrLang[' ID']   ?>').submi t();   return   false;"
    1131                    ><fo nt color=" red">Delet e</font></ a>
1119           </ td>   1132           </ td>
1120       </tr>   1133       </tr>
1121   <?   1134   <?
1122       }   1135       }
1123   ?>   1136   ?>
1124   </table>   1137   </table>
1125   <?   1138   <?
1126          1139       
1127       $sCon2  = panelSe ction('Lan guage File s', ob_get _clean());   1140       $sCon2  = panelSe ction('Lan guage File s', ob_get _clean());
1128          1141       
1129       return  $sCon1.$s Con2;   1142       return  $sCon1.$s Con2;
1130   }   1143   }
1131     1144  
1132   function p anelSectio n($header,  $content,  $padding  = 10)   1145   function p anelSectio n($header,  $content,  $padding  = 10)
1133   {   1146   {
1134       ob_sta rt();   1147       ob_sta rt();
1135          1148       
1136       Conten tBlockHead ("$header" );   1149       Conten tBlockHead ("$header" );
1137       echo $ content;   1150       echo $ content;
1138       Conten tBlockFoot ();   1151       Conten tBlockFoot ();
1139     1152  
1140       return  ob_get_cl ean();   1153       return  ob_get_cl ean();
1141   }   1154   }
1142     1155  
1143   function s howLangIco ns($sCurLa ng = '')   1156   function s howLangIco ns($sCurLa ng = '')
1144   {   1157   {
1145       global  $site;   1158       global  $site;
1146          1159       
1147       $sCode  = '';   1160       $sCode  = '';
1148     1161  
1149       $sQuer y = "SELEC T `ISO2`,  `Country`  FROM `Coun tries` ORD ER BY `Cou ntry`";   1162       $sQuer y = "SELEC T `ISO2`,  `Country`  FROM `Coun tries` ORD ER BY `Cou ntry`";
1150       $rCoun tryList =  db_res($sQ uery);   1163       $rCoun tryList =  db_res($sQ uery);
1151          1164       
1152       $sOnCh ange = "on Change=\"j avascript:  flagImage  = documen t.getEleme ntById('fl agImageId' ); flagIma ge.src = ' {$site['fl ags']}' +  this.value  + '.gif'; \"";   1165       $sOnCh ange = "on Change=\"j avascript:  flagImage  = documen t.getEleme ntById('fl agImageId' ); flagIma ge.src = ' {$site['fl ags']}' +  this.value  + '.gif'; \"";
1153          1166       
1154       $sCode  = '<selec t name="Fl ag" id="Fl ag" style= "width:180 px;" '.$sO nChange.'> ';   1167       $sCode  = '<selec t name="Fl ag" id="Fl ag" style= "width:180 px;" '.$sO nChange.'> ';
1155       if (st rlen($sCur Lang))   1168       if (st rlen($sCur Lang))
1156           $s DefC = $sC urLang;   1169           $s DefC = $sC urLang;
1157       else   1170       else
1158           $s DefC = str tolower(ge tParam( 'd efault_cou ntry' ));   1171           $s DefC = str tolower(ge tParam( 'd efault_cou ntry' ));
1159          1172       
1160       while( $aList = m ysql_fetch _array($rC ountryList )) {   1173       while( $aList = m ysql_fetch _array($rC ountryList )) {
1161           $s FlagCode =  strtolowe r($aList[' ISO2']);   1174           $s FlagCode =  strtolowe r($aList[' ISO2']);
1162           $s Select = $ sDefC == $ sFlagCode  ? 'selecte d="selecte d"' : '' ;   1175           $s Select = $ sDefC == $ sFlagCode  ? 'selecte d="selecte d"' : '' ;
1163           $s Code .= '< option val ue="'.$sFl agCode.'"  '.$sSelect .'>'.$aLis t['Country '].'</opti on>';   1176           $s Code .= '< option val ue="'.$sFl agCode.'"  '.$sSelect .'>'.$aLis t['Country '].'</opti on>';
1164           $s Select = ' ';   1177           $s Select = ' ';
1165       }   1178       }
1166          1179       
1167       $sCode  .= '</sel ect>';   1180       $sCode  .= '</sel ect>';
1168       $sImag eCode = '< img id="fl agImageId"  src="'. ( $site['fla gs']) .$sD efC.'.gif"  alt="flag " />';   1181       $sImag eCode = '< img id="fl agImageId"  src="'. ( $site['fla gs']) .$sD efC.'.gif"  alt="flag " />';
1169       $sCode  .= '&nbsp ;'.$sImage Code;   1182       $sCode  .= '&nbsp ;'.$sImage Code;
1170     1183  
1171       return  $sCode;   1184       return  $sCode;
1172   }   1185   }
1173     1186  
1174   function d isplayLang uageSettin gs()   1187   function d isplayLang uageSettin gs()
1175   {   1188   {
1176       ?>   1189       ?>
1177       <cente r>   1190       <cente r>
1178       <form  method="po st" action ="<? echo  $_SERVER[P HP_SELF].' ?cat=ls';  ?>">   1191       <form  method="po st" action ="<? echo  $_SERVER[P HP_SELF].' ?cat=ls';  ?>">
1179       <input  type="hid den" name= "save_sett ings" valu e="yes">   1192       <input  type="hid den" name= "save_sett ings" valu e="yes">
1180       <table  width="10 0%" cellsp acing="2"  cellpaddin g="3" clas s="text">   1193       <table  width="10 0%" cellsp acing="2"  cellpaddin g="3" clas s="text">
1181           <t r class="t able">   1194           <t r class="t able">
1182                <td alig n="right"  width="50% "> <?php e cho getPar amDesc("la ng_default ") ?>: </t d>   1195                <td alig n="right"  width="50% "> <?php e cho getPar amDesc("la ng_default ") ?>: </t d>
1183                <td alig n="left">   1196                <td alig n="left">
1184                    <sel ect name=" lang_defau lt">   1197                    <sel ect name=" lang_defau lt">
1185                         <?php   1198                         <?php
1186                         $aLangs =  getLangsAr r();   1199                         $aLangs =  getLangsAr r();
1187                         $sCurLang  = getParam ( 'lang_de fault' );   1200                         $sCurLang  = getParam ( 'lang_de fault' );
1188                           1201                        
1189                         foreach( $ aLangs as  $sName =>  $sTitle )  {   1202                         foreach( $ aLangs as  $sName =>  $sTitle )  {
1190                             $sSele cted = ( $ sName == $ sCurLang )  ? 'select ed="select ed"' : '';   1203                             $sSele cted = ( $ sName == $ sCurLang )  ? 'select ed="select ed"' : '';
1191                             ?>   1204                             ?>
1192                             <optio n value="< ?= $sName  ?>" <?= $s Selected ? >><?= html specialcha rs_adv( $s Title ) ?> </option>   1205                             <optio n value="< ?= $sName  ?>" <?= $s Selected ? >><?= html specialcha rs_adv( $s Title ) ?> </option>
1193                             <?   1206                             <?
1194                         }   1207                         }
1195                         ?>   1208                         ?>
1196                    </se lect>   1209                    </se lect>
1197                </td>   1210                </td>
1198           </ tr>   1211           </ tr>
1199       </tabl e>   1212       </tabl e>
1200       <br />   1213       <br />
1201       <input  class=no  type="subm it" value= "Save chan ges" name= "saveLangC hanges" cl ass=text>   1214       <input  class=no  type="subm it" value= "Save chan ges" name= "saveLangC hanges" cl ass=text>
1202       </form >   1215       </form >
1203       </cent er>   1216       </cent er>
1204       <?php   1217       <?php
1205          1218       
1206       return  'Language s';   1219       return  'Language s';
1207   }   1220   }
1208     1221  
1209   function s aveLanguag eSettings( )   1222   function s aveLanguag eSettings( )
1210   {   1223   {
1211       // sav e default  language.   1224       // sav e default  language.
1212       if ($_ POST['lang _default'] )   1225       if ($_ POST['lang _default'] )
1213           se tParam('la ng_default ', $_POST[ 'lang_defa ult']);   1226           se tParam('la ng_default ', $_POST[ 'lang_defa ult']);
1214   }   1227   }
1215     1228  
1216   function q uickHelp()   1229   function q uickHelp()
1217   {   1230   {
1218       ob_sta rt();   1231       ob_sta rt();
1219   ?>   1232   ?>
1220   <h3 style= "font: Ari al"><font  size="3" f ace="Arial " color="b lack">What  you shoul d know abo ut the new  <b>Dolphi n</b> lang uage manag ement syst em.</font> </h3>   1233   <h3 style= "font: Ari al"><font  size="3" f ace="Arial " color="b lack">What  you shoul d know abo ut the new  <b>Dolphi n</b> lang uage manag ement syst em.</font> </h3>
1221   <font size ="2" face= "Arial" co lor="black ">   1234   <font size ="2" face= "Arial" co lor="black ">
1222   The new <b >Dolphin</ b> languag e manageme nt system  is develop ed to ease  your work  with lang uage   1235   The new <b >Dolphin</ b> languag e manageme nt system  is develop ed to ease  your work  with lang uage
1223   strings by  managing  them via t his specia lly design ed web int erface rat her than e diting the m directly   1236   strings by  managing  them via t his specia lly design ed web int erface rat her than e diting the m directly
1224   in a langu age file,  unlike it  was in pre vious <b>D olphin</b>  versions.  Note that , in <b>Do lphin</b>,   1237   in a langu age file,  unlike it  was in pre vious <b>D olphin</b>  versions.  Note that , in <b>Do lphin</b>,
1225   you should  <b>NOT</b > edit lan guage file s manually  – they’re  now used  by   1238   you should  <b>NOT</b > edit lan guage file s manually  – they’re  now used  by
1226   the script  as tempor ary files  with parti al languag e informat ion only f or the sak e of perfo rmance.   1239   the script  as tempor ary files  with parti al languag e informat ion only f or the sak e of perfo rmance.
1227   All necess ary langua ge informa tion is no w stored i n the data base and c an be mana ged via th is web int erface.   1240   All necess ary langua ge informa tion is no w stored i n the data base and c an be mana ged via th is web int erface.
1228   <br /><br  />   1241   <br /><br  />
1229   You can se e an optio n of compi ling langu ages in th e top sect ion of the  language  management  interface .   1242   You can se e an optio n of compi ling langu ages in th e top sect ion of the  language  management  interface .
1230   <b>Compili ng a langu age</b> me ans creati ng and wri ting a fre sh version  of a corr esponding  language f ile   1243   <b>Compili ng a langu age</b> me ans creati ng and wri ting a fre sh version  of a corr esponding  language f ile
1231   in the <b> langs</b>  folder of  the script  with the  updated in formation  about lang uage strin gs and key s   1244   in the <b> langs</b>  folder of  the script  with the  updated in formation  about lang uage strin gs and key s
1232   stored in  the databa se. After  you change /add a lan guage stri ng or a la nguage key , a corres ponding la nguage   1245   stored in  the databa se. After  you change /add a lan guage stri ng or a la nguage key , a corres ponding la nguage
1233   file (or f iles) need s to be re compiled s o the chan ges are ap plied and  shown on t he pages w here that  string   1246   file (or f iles) need s to be re compiled s o the chan ges are ap plied and  shown on t he pages w here that  string
1234   is used. A t the bott om of the  forms for  editing an d adding l anguage st rings/keys  there are  checkboxe s that   1247   is used. A t the bott om of the  forms for  editing an d adding l anguage st rings/keys  there are  checkboxe s that
1235   specify wh ether to r ecompile c orrespondi ng languag e files au tomaticall y after th e changes  are saved.  These   1248   specify wh ether to r ecompile c orrespondi ng languag e files au tomaticall y after th e changes  are saved.  These
1236   checkboxes  are check ed by defa ult. You c an uncheck  them befo re submitt ing a form  not to re compile la nguage   1249   checkboxes  are check ed by defa ult. You c an uncheck  them befo re submitt ing a form  not to re compile la nguage
1237   files ever y time in  case you’r e editing  a lot of l anguage st rings one  by one. Th is option  is availab le   1250   files ever y time in  case you’r e editing  a lot of l anguage st rings one  by one. Th is option  is availab le
1238   because co mpiling a  language f ile is a r elatively  resource-i ntensive p rocess, so  you bette r recompil e   1251   because co mpiling a  language f ile is a r elatively  resource-i ntensive p rocess, so  you bette r recompil e
1239   language f iles once  after you’ ve finishe d with edi ting langu age string s rather t han loadin g your ser ver by   1252   language f iles once  after you’ ve finishe d with edi ting langu age string s rather t han loadin g your ser ver by
1240   recompilin g language  files aft er editing  each stri ng.</font>   1253   recompilin g language  files aft er editing  each stri ng.</font>
1241     1254  
1242   <?   1255   <?
1243       $conte nts = ob_g et_content s();   1256       $conte nts = ob_g et_content s();
1244       ob_end _clean();   1257       ob_end _clean();
1245     1258  
1246       return  PopupPage Template(' Language M anagement  System Not es', $cont ents);   1259       return  PopupPage Template(' Language M anagement  System Not es', $cont ents);
1247   }   1260   }
1248     1261  
1249   $logged['a dmin'] = m ember_auth ( 1, true,  true );   1262   $logged['a dmin'] = m ember_auth ( 1, true,  true );
1250     1263  
1251   $_page['he ader'] = ' Manage Lan guages'; / / Set page  title.   1264   $_page['he ader'] = ' Manage Lan guages'; / / Set page  title.
1252     1265  
1253   if ($_POST ['saveLang Changes'])   1266   if ($_POST ['saveLang Changes'])
1254       saveLa nguageSett ings();   1267       saveLa nguageSett ings();
1255     1268  
1256   // add/edi t a langua ge string   1269   // add/edi t a langua ge string
1257   if ( $_GET ['view'] = = 'addLang Key' ) {   1270   if ( $_GET ['view'] = = 'addLang Key' ) {
1258       echo a ddLangKeyF orm();   1271       echo a ddLangKeyF orm();
1259       exit() ;   1272       exit() ;
1260   } else if  ( $_GET['v iew'] == ' editLangSt ring') {   1273   } else if  ( $_GET['v iew'] == ' editLangSt ring') {
1261       echo e ditStringF orm();   1274       echo e ditStringF orm();
1262       exit() ;   1275       exit() ;
1263   } else if  ( $_GET['v iew'] == ' editLangua ge' ) {   1276   } else if  ( $_GET['v iew'] == ' editLangua ge' ) {
1264       echo e ditLanguag eForm();   1277       echo e ditLanguag eForm();
1265       exit() ;   1278       exit() ;
1266   } else if  ( $_GET['v iew'] == ' addLanguag eKey' ) {   1279   } else if  ( $_GET['v iew'] == ' addLanguag eKey' ) {
1267       echo a ddLangKeyF orm();   1280       echo a ddLangKeyF orm();
1268       exit() ;   1281       exit() ;
1269   } else if  ( $_GET['v iew'] == ' quickHelp'  ) {   1282   } else if  ( $_GET['v iew'] == ' quickHelp'  ) {
1270       echo q uickHelp() ;   1283       echo q uickHelp() ;
1271       exit() ;   1284       exit() ;
1272   }   1285   }
1273     1286  
1274   // INPUT V ALIDATION   1287   // INPUT V ALIDATION
1275     1288  
1276   $searchStr ing = $_GE T['find'];   1289   $searchStr ing = $_GE T['find'];
1277     1290  
1278   $searchCom bineWordsA s = $_GET[ 'words'];   1291   $searchCom bineWordsA s = $_GET[ 'words'];
1279     1292  
1280   if ($searc hCombineWo rdsAs != S EARCH_COMB INE_WORDS_ AS_AND &&  $searchCom bineWordsA s != SEARC H_COMBINE_ WORDS_AS_O R)   1293   if ($searc hCombineWo rdsAs != S EARCH_COMB INE_WORDS_ AS_AND &&  $searchCom bineWordsA s != SEARC H_COMBINE_ WORDS_AS_O R)
1281       $searc hCombineWo rdsAs = SE ARCH_COMBI NE_WORDS_A S_EXACT;   1294       $searc hCombineWo rdsAs = SE ARCH_COMBI NE_WORDS_A S_EXACT;
1282     1295  
1283   $searchSho wAdvancedS ettings =  $_GET['set tings'] ==  'yes' ? t rue : fals e;   1296   $searchSho wAdvancedS ettings =  $_GET['set tings'] ==  'yes' ? t rue : fals e;
1284     1297  
1285   $searchInK eys = $_GE T['keys']  == 'yes' ?  true : fa lse;   1298   $searchInK eys = $_GE T['keys']  == 'yes' ?  true : fa lse;
1286   $searchInS trings = $ _GET['stri ngs'] == ' yes' ? tru e : false;   1299   $searchInS trings = $ _GET['stri ngs'] == ' yes' ? tru e : false;
1287   $searchInP arams = $_ GET['param s'] == 'ye s' ? true  : false;   1300   $searchInP arams = $_ GET['param s'] == 'ye s' ? true  : false;
1288     1301  
1289   if (!$sear chInKeys & & !$search InStrings  && !$searc hInParams)   1302   if (!$sear chInKeys & & !$search InStrings  && !$searc hInParams)
1290       $searc hInKeys =  $searchInS trings = $ searchInPa rams = tru e;   1303       $searc hInKeys =  $searchInS trings = $ searchInPa rams = tru e;
1291     1304  
1292   $searchCat egories =  validateLi stArray($_ GET['sCats ']);   1305   $searchCat egories =  validateLi stArray($_ GET['sCats ']);
1293   $searchLan guages = v alidateLis tArray($_G ET['sLangs ']);   1306   $searchLan guages = v alidateLis tArray($_G ET['sLangs ']);
1294     1307  
1295   TopCodeAdm in();   1308   TopCodeAdm in();
1296     1309  
1297   ?>   1310   ?>
1298   <style typ e="text/cs s">   1311   <style typ e="text/cs s">
1299   table.Lang uagesStrin gs   1312   table.Lang uagesStrin gs
1300   {   1313   {
1301       width:  100%;   1314       width:  100%;
1302   }   1315   }
1303     1316  
1304   table.Lang uagesStrin gs td   1317   table.Lang uagesStrin gs td
1305   {   1318   {
1306       border -right: 1p x solid si lver;   1319       border -right: 1p x solid si lver;
1307       border -bottom: 1 px solid s ilver;   1320       border -bottom: 1 px solid s ilver;
1308       paddin g: 2px;   1321       paddin g: 2px;
1309       backgr ound-color : #f5f5f5;   1322       backgr ound-color : #f5f5f5;
1310   }   1323   }
1311     1324  
1312   table.Lang uagesStrin gs td.Left   1325   table.Lang uagesStrin gs td.Left
1313   {   1326   {
1314       border -left: 1px  solid sil ver;   1327       border -left: 1px  solid sil ver;
1315   }   1328   }
1316     1329  
1317   table.Lang uagesStrin gs tr.Head erRow td   1330   table.Lang uagesStrin gs tr.Head erRow td
1318   {   1331   {
1319       font-w eight: bol d;   1332       font-w eight: bol d;
1320       backgr ound-color : #ccccde;   1333       backgr ound-color : #ccccde;
1321       border : 1px soli d silver;   1334       border : 1px soli d silver;
1322   }   1335   }
1323   </style>   1336   </style>
1324     1337  
1325   <script ty pe="text/j avascript" >   1338   <script ty pe="text/j avascript" >
1326   function p opupForm(u rl, left,  top, width , height,  scrollbars )   1339   function p opupForm(u rl, left,  top, width , height,  scrollbars )
1327   {   1340   {
1328       var wi nSettings  = "width=" +width+   1341       var wi nSettings  = "width=" +width+
1329       ", hei ght="+heig ht+   1342       ", hei ght="+heig ht+
1330       ", lef t="+left+   1343       ", lef t="+left+
1331       ", top ="+top+   1344       ", top ="+top+
1332       ", scr ollbars="+ scrollbars +   1345       ", scr ollbars="+ scrollbars +
1333       ", cop yhistory=n o, directo ries=no, m enubar=no,  location= no, resiza ble=no";   1346       ", cop yhistory=n o, directo ries=no, m enubar=no,  location= no, resiza ble=no";
1334       window .open(url,  'editStri ng', winSe ttings);   1347       window .open(url,  'editStri ng', winSe ttings);
1335       return  false;   1348       return  false;
1336   }   1349   }
1337   </script>   1350   </script>
1338     1351  
1339     1352  
1340   <?   1353   <?
1341   ContentBlo ckHead("Pl ease Pay A ttention") ;   1354   ContentBlo ckHead("Pl ease Pay A ttention") ;
1342   ?>   1355   ?>
1343   <b>IMPORTA NT:</b> <a  href="jav ascript:vo id(0)" onc lick="popu pForm('<?=  $_SERVER[ 'PHP_SELF' ] ?>?view= quickHelp' , 350, 100 , 500, 600 , 'yes');  return fal se;">What  you should  know abou t the <b>D olphin</b>  language  management  system.</ a>   1356   <b>IMPORTA NT:</b> <a  href="jav ascript:vo id(0)" onc lick="popu pForm('<?=  $_SERVER[ 'PHP_SELF' ] ?>?view= quickHelp' , 350, 100 , 500, 600 , 'yes');  return fal se;">What  you should  know abou t the <b>D olphin</b>  language  management  system.</ a>
1344     1357  
1345   <?   1358   <?
1346   ContentBlo ckFoot();   1359   ContentBlo ckFoot();
1347   echo manag eLanguages Block();   1360   echo manag eLanguages Block();
1348     1361  
1349   echo searc hBlock();   1362   echo searc hBlock();
1350     1363  
1351   echo strin gTableBloc k($_GET['s howMoreTha nMax']=='y es' ? true  : false);   1364   echo strin gTableBloc k($_GET['s howMoreTha nMax']=='y es' ? true  : false);
1352     1365  
1353   BottomCode ();   1366   BottomCode ();