예제 #1
0
             break;
         }
     }
     if (empty($aResults['langs'])) {
         $aResults['langs'] = '_adm_txt_langs_success_compile';
     }
 } else {
     if (isset($_POST['adm-lang-delete']) && !empty($_POST['langs'])) {
         $sNameDefault = getParam('lang_default');
         foreach ($_POST['langs'] as $iLangId) {
             $sName = getLanguageName($iLangId);
             if ($sName == $sNameDefault) {
                 $aResults['langs'] = '_adm_txt_langs_cannot_delete_default';
                 break;
             }
             if (!deleteLanguage((int) $iLangId)) {
                 $aResults['langs'] = '_adm_txt_langs_cannot_delete';
                 break;
             }
         }
         if (empty($aResults['langs'])) {
             $aResults['langs'] = '_adm_txt_langs_success_delete';
         }
     } else {
         if (isset($_GET['action']) && $_GET['action'] == 'export' && isset($_GET['id'])) {
             $aLanguage = $GLOBALS['MySQL']->getRow("SELECT `Name`, `Flag`, `Title`, `Direction`, `LanguageCountry` FROM `sys_localization_languages` WHERE `ID`= ? LIMIT 1", [$_GET['id']]);
             $aContent = array();
             $aItems = $GLOBALS['MySQL']->getAll("SELECT `tlk`.`Key` AS `key`, `tls`.`String` AS `string` FROM `sys_localization_keys` AS `tlk` \n              LEFT JOIN `sys_localization_strings` AS `tls` ON `tlk`.`ID`=`tls`.`IDKey` WHERE `tls`.`IDLanguage`= ? ", [$_GET['id']]);
             foreach ($aItems as $aItem) {
                 $aContent[$aItem['key']] = $aItem['string'];
             }
function manageLanguagesBlock()
{
    global $site;
    function copyLanguage()
    {
        $newLangName = get_magic_quotes_gpc() ? $_POST['CopyLanguage_Name'] : addslashes($_POST['CopyLanguage_Name']);
        $sFlag = htmlspecialchars_adv($_POST['Flag']);
        $sourceLangID = (int) $_POST['CopyLanguage_SourceLangID'];
        if (strlen($newLangName) <= 0) {
            return '<font color="red">Error: please specify a name for the new language.</font>';
        }
        mysql_query("\r\n\t\t\tINSERT INTO `LocalizationLanguages`\r\n\t\t\t(`Name`, `Flag`) VALUES\r\n\t\t\t('{$newLangName}', '{$sFlag}')\r\n\t\t");
        if (mysql_affected_rows() <= 0) {
            return '<font color="red">Error: could not add a new language to the database.</font>';
        }
        $newLangID = mysql_insert_id();
        $resSourceLangStrings = mysql_query("\r\n\t\t\tSELECT\t`IDKey`, `String`\r\n\t\t\tFROM\t`LocalizationStrings`\r\n\t\t\tWHERE\t`IDLanguage` = {$sourceLangID}\r\n\t\t");
        while ($arr = mysql_fetch_assoc($resSourceLangStrings)) {
            $arr['String'] = addslashes($arr['String']);
            mysql_query("\r\n\t\t\t\tINSERT INTO `LocalizationStrings`\r\n\t\t\t\t(`IDKey`, `IDLanguage`, `String`) VALUES\r\n\t\t\t\t('{$arr['IDKey']}', {$newLangID}, '{$arr['String']}')\r\n\t\t\t\t");
            if (mysql_affected_rows() <= 0) {
                return '<font color="red">Error: could not add a language string to the database.</font>';
            }
        }
        return '<font color="green"><b>' . htmlspecialchars(stripslashes($newLangName)) . '</b> language has been successfully created.</font>';
    }
    function getLangName($langID)
    {
        $langName = mysql_query('SELECT `Name` FROM `LocalizationLanguages` WHERE `ID` = ' . (int) $langID);
        $langName = mysql_fetch_row($langName);
        return $langName[0];
    }
    if ($_POST['CopyLanguage']) {
        $resultMsg = copyLanguage();
    } else {
        if (isset($_POST['CompileLanguage'])) {
            $langName = getLangName($_POST['CompileLanguage']);
            if (compileLanguage((int) $_POST['CompileLanguage'])) {
                $resultMsg = '<font color="green"><b>' . htmlspecialchars($langName) . '</b> language has been successfully compiled.</font>';
            } else {
                $resultMsg = '<font color="red>Error: could not compile a language.</font>';
            }
        } else {
            if (isset($_POST['DeleteLanguage'])) {
                $langName = getLangName($_POST['DeleteLanguage']);
                if ($langName == getParam('lang_default')) {
                    $resultMsg = '<font color="red">Cannot delete the default language. You have to set another default language for the site in <b>global settings -> Change language settings</b> to be able to delete this one.</font>';
                } else {
                    if (deleteLanguage((int) $_POST['DeleteLanguage'])) {
                        $resultMsg = '<font color="green"><b>' . htmlspecialchars($langName) . '</b> language has been successfully removed.</font>';
                    } else {
                        $resultMsg = '<font color="red">Error: could not delete a language.</font>';
                    }
                }
            }
        }
    }
    ob_start();
    $arrLangs = getLocalizationLanguages();
    displayLanguageSettings();
    $contents = ob_get_contents();
    ob_end_clean();
    $sCon1 = panelSection('Language', $contents);
    ob_start();
    ?>
<form action="<?php 
    echo $_SERVER['PHP_SELF'];
    ?>
" method="post" style="margin:0px">
New language:
<input type="text" name="CopyLanguage_Name" style="width: 80px" />
Copy from:
<select name="CopyLanguage_SourceLangID" style="width: 80px">
<?php 
    foreach ($arrLangs as $langID => $langName) {
        ?>
	<option value="<?php 
        echo $langID;
        ?>
"><?php 
        echo htmlspecialchars($langName);
        ?>
</option>
<?php 
    }
    ?>
</select>
Flag: 
<?php 
    echo showLangIcons();
    ?>
<br />
<br />
<center>
<input type="submit" name="CopyLanguage" value="Create" />
</center>
</form>
<br />
<?php 
    if (strlen($resultMsg) > 0) {
        echo $resultMsg . '<br /><br />';
    }
    ?>
<table class="LanguagesStrings" cellpadding="0" cellspacing="0">
	<tr class="HeaderRow">
		<td width="85%" align="left">Language</td>
		<td width="15%" align="left">Flag</td>
		<td colspan="3">&nbsp;</td>
	</tr>
<?php 
    $resLangs = mysql_query('
		SELECT `ID`, `Name`, `Flag`
		FROM `LocalizationLanguages`
		ORDER BY `Name`
	');
    $defaultLangName = getParam('lang_default');
    while ($arrLang = mysql_fetch_assoc($resLangs)) {
        ?>
	<tr>
		<td class="Left"><?php 
        echo htmlspecialchars($arrLang['Name']) . ($arrLang['Name'] == $defaultLangName ? '<font color="red"> (default)</font>' : '');
        ?>
</td>
		<td><img src="<?php 
        echo $site['flags'] . $arrLang['Flag'] . '.gif';
        ?>
"></td>
		<td><a href="javascript:void(0)" onclick="popupForm('<?php 
        echo $_SERVER['PHP_SELF'];
        ?>
?view=editLanguage&editLanguageID=<?php 
        echo $arrLang['ID'];
        ?>
', 500, 300, 300, 200, 'no'); return false;">Edit</a></td>
		<td>
			<form id="CompileForm_<?php 
        echo $arrLang['ID'];
        ?>
" action="<?php 
        echo $_SERVER['PHP_SELF'];
        ?>
" method="post" style="padding: 0px; margin: 0px">
				<input type="hidden" name="CompileLanguage" value="<?php 
        echo $arrLang['ID'];
        ?>
" />
			</form>
			<a href="javascript:void(0)" onclick="document.getElementById('CompileForm_<?php 
        echo $arrLang['ID'];
        ?>
').submit(); return false;">Compile</a>
		</td>
		<td>
			<form id="DeleteForm_<?php 
        echo $arrLang['ID'];
        ?>
" action="<?php 
        echo $_SERVER['PHP_SELF'];
        ?>
" method="post" style="padding: 0px; margin: 0px">
				<input type="hidden" name="DeleteLanguage" value="<?php 
        echo $arrLang['ID'];
        ?>
" />
			</form>
			<a href="javascript:void(0)" onclick="document.getElementById('DeleteForm_<?php 
        echo $arrLang['ID'];
        ?>
').submit(); return false;"><font color="red">Delete</font></a>
		</td>
	</tr>
<?php 
    }
    ?>
</table>
<?php 
    $contents = ob_get_contents();
    ob_end_clean();
    $sCon2 = panelSection('Language Files', $contents);
    return $sCon1 . $sCon2;
}
            } else {
                addLanguage($_SESSION["loggedIn"], $level, $language);
            }
            echo "<script> alert(\"You have updated your " . $language . " level to be " . $level . "!\")</script>";
        } else {
            echo "<script> alert(\"There's an error!\")</script>";
        }
    } else {
        if (empty($_POST["language"])) {
            $languageErr = "Language is required";
        } else {
            $language = $_POST['language'];
            $languageErr = "";
        }
        if ($languageErr == "") {
            deleteLanguage($login, $language);
            echo "<script> alert(\"" . $language . " was deleted!\")</script>";
        }
    }
}
?>
                </div>
            </div>
        </div>
        <style>
             .error {color: #FF0000;}
        </style>
    </header>
</div>