Project

General

Profile

Bug #24601 ยป 17067.diff

Administrator Admin, 2011-01-16 17:14

View differences:

typo3/backend.php (Arbeitskopie)
// add default BE javascript
$this->js = '';
$this->jsFiles = array(
'locallang' => $this->getLocalLangFileName(),
'modernizr' => 'contrib/modernizr/modernizr.min.js',
'swfupload' => 'contrib/swfupload/swfupload.js',
'swfupload.swfobject' => 'contrib/swfupload/plugins/swfupload.swfobject.js',
......
}
/**
* Returns the file name to the LLL JavaScript, containing the localized labels,
* which can be used in JavaScript code.
*
* @return string File name of the JS file, relative to TYPO3_mainDir
*/
protected function getLocalLangFileName() {
$code = $this->generateLocalLang();
$filePath = 'typo3temp/locallang-BE-' . sha1($code) . '.js';
if (!file_exists(PATH_site . $filePath)) {
// writeFileToTypo3tempDir() returns NULL on success (please double-read!)
if (t3lib_div::writeFileToTypo3tempDir(PATH_site . $filePath, $code) !== NULL) {
throw new RuntimeException('LocalLangFile could not be written to ' . $filePath, 1295193026);
}
}
return '../' . $filePath;
}
/**
* Reads labels required in JavaScript code from the localization system and returns them as JSON
* array in TYPO3.LLL.
*
* @return string JavaScript code containing the LLL labels in TYPO3.LLL
*/
protected function generateLocalLang() {
$coreLabels = array(
'waitTitle' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_logging_in') ,
'refresh_login_failed' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_failed'),
'refresh_login_failed_message' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_failed_message'),
'refresh_login_title' => sprintf($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_title'), htmlspecialchars($GLOBALS['BE_USER']->user['username'])),
'login_expired' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.login_expired'),
'refresh_login_username' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_username'),
'refresh_login_password' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_password'),
'refresh_login_emptyPassword' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_emptyPassword'),
'refresh_login_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_button'),
'refresh_logout_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_logout_button'),
'please_wait' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.please_wait'),
'loadingIndicator' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:loadingIndicator'),
'be_locked' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.be_locked'),
'refresh_login_countdown_singular' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_countdown_singular'),
'refresh_login_countdown' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_countdown'),
'login_about_to_expire' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.login_about_to_expire'),
'login_about_to_expire_title' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.login_about_to_expire_title'),
'refresh_login_refresh_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_refresh_button'),
'refresh_direct_logout_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_direct_logout_button'),
'tabs_closeAll' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.closeAll'),
'tabs_closeOther' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.closeOther'),
'tabs_close' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.close'),
'tabs_openInBrowserWindow' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.openInBrowserWindow'),
'donateWindow_title' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.title'),
'donateWindow_message' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.message'),
'donateWindow_button_donate' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.button_donate'),
'donateWindow_button_disable' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.button_disable'),
'donateWindow_button_postpone' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.button_postpone'),
'csh_tooltip_loading' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:csh_tooltip_loading'),
);
$labels = array(
'fileUpload' => array(
'windowTitle',
'buttonSelectFiles',
'buttonStartUpload',
'buttonCancelAll',
'progressText',
'infoComponentMaxFileSize',
'infoComponentFileUploadLimit',
'infoComponentFileTypeLimit',
'infoComponentOverrideFiles',
'infoFileQueueEmpty',
'infoFileQueued',
'infoFileFinished',
'infoFileUploading',
'processRunning',
'uploadWait',
'uploadStarting',
'uploadProgress',
'uploadSuccess',
'errorQueueLimitExceeded',
'errorQueueFileSizeLimit',
'errorQueueZeroByteFile',
'errorQueueInvalidFiletype',
'errorUploadHttp',
'errorUploadMissingUrl',
'errorUploadIO',
'errorUploadSecurityError',
'errorUploadLimit',
'errorUploadFailed',
'errorUploadFileIDNotFound',
'errorUploadFileValidation',
'errorUploadFileCancelled',
'errorUploadStopped',
'allErrorMessageTitle',
'allErrorMessageText',
'allError401',
'allError2038',
),
'liveSearch' => array(
'title',
'helpTitle',
'emptyText',
'loadingText',
'listEmptyText',
'showAllResults',
'helpDescription',
'helpDescriptionPages',
'helpDescriptionContent',
),
);
$generatedLabels = array();
$generatedLabels['core'] = $coreLabels;
// first loop over all categories (fileUpload, liveSearch, ..)
foreach ($labels as $categoryName => $categoryLabels) {
// then loop over every single label
foreach ($categoryLabels as $label) {
// LLL identifier must be called $categoryName_$label, e.g. liveSearch_loadingText
$generatedLabels[$categoryName][$label] = $GLOBALS['LANG']->getLL($categoryName . '_' . $label);
}
}
// Convert labels/settings back to UTF-8 since json_encode() only works with UTF-8:
if ($GLOBALS['LANG']->charSet !== 'utf-8') {
$GLOBALS['LANG']->csConvObj->convArray($generatedLabels, $GLOBALS['LANG']->charSet, 'utf-8');
}
return 'TYPO3.LLL = ' . json_encode($generatedLabels) . ';';
}
/**
* Generates the JavaScript code for the backend.
*
* @return void
......
'maxFileSize' => t3lib_div::getMaxUploadFileSize()
)
);
$t3LLLcore = array(
'waitTitle' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_logging_in') ,
'refresh_login_failed' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_failed'),
'refresh_login_failed_message' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_failed_message'),
'refresh_login_title' => sprintf($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_title'), htmlspecialchars($GLOBALS['BE_USER']->user['username'])),
'login_expired' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.login_expired'),
'refresh_login_username' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_username'),
'refresh_login_password' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_password'),
'refresh_login_emptyPassword' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_emptyPassword'),
'refresh_login_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_button'),
'refresh_logout_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_logout_button'),
'please_wait' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.please_wait'),
'loadingIndicator' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:loadingIndicator'),
'be_locked' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.be_locked'),
'refresh_login_countdown_singular' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_countdown_singular'),
'refresh_login_countdown' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_countdown'),
'login_about_to_expire' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.login_about_to_expire'),
'login_about_to_expire_title' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.login_about_to_expire_title'),
'refresh_login_refresh_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_login_refresh_button'),
'refresh_direct_logout_button' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:mess.refresh_direct_logout_button'),
'tabs_closeAll' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.closeAll'),
'tabs_closeOther' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.closeOther'),
'tabs_close' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.close'),
'tabs_openInBrowserWindow' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:tabs.openInBrowserWindow'),
'donateWindow_title' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.title'),
'donateWindow_message' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.message'),
'donateWindow_button_donate' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.button_donate'),
'donateWindow_button_disable' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.button_disable'),
'donateWindow_button_postpone' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:donateWindow.button_postpone'),
'csh_tooltip_loading' => $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xml:csh_tooltip_loading'),
);
$t3LLLfileUpload = array(
'windowTitle' => $GLOBALS['LANG']->getLL('fileUpload_windowTitle'),
'buttonSelectFiles' => $GLOBALS['LANG']->getLL('fileUpload_buttonSelectFiles'),
'buttonStartUpload' => $GLOBALS['LANG']->getLL('fileUpload_buttonStartUpload'),
'buttonCancelAll' => $GLOBALS['LANG']->getLL('fileUpload_buttonCancelAll'),
'progressText' => $GLOBALS['LANG']->getLL('fileUpload_progressText'),
'infoComponentMaxFileSize' => $GLOBALS['LANG']->getLL('fileUpload_infoComponentMaxFileSize'),
'infoComponentFileUploadLimit' => $GLOBALS['LANG']->getLL('fileUpload_infoComponentFileUploadLimit'),
'infoComponentFileTypeLimit' => $GLOBALS['LANG']->getLL('fileUpload_infoComponentFileTypeLimit'),
'infoComponentOverrideFiles' => $GLOBALS['LANG']->getLL('fileUpload_infoComponentOverrideFiles'),
'infoFileQueueEmpty' => $GLOBALS['LANG']->getLL('fileUpload_infoFileQueueEmpty'),
'infoFileQueued' => $GLOBALS['LANG']->getLL('fileUpload_infoFileQueued'),
'infoFileFinished' => $GLOBALS['LANG']->getLL('fileUpload_infoFileFinished'),
'infoFileUploading' => $GLOBALS['LANG']->getLL('fileUpload_infoFileQueued'),
'processRunning' => $GLOBALS['LANG']->getLL('fileUpload_processRunning'),
'uploadWait' => $GLOBALS['LANG']->getLL('fileUpload_uploadWait'),
'uploadStarting' => $GLOBALS['LANG']->getLL('fileUpload_uploadStarting'),
'uploadProgress' => $GLOBALS['LANG']->getLL('fileUpload_uploadProgress'),
'uploadSuccess' => $GLOBALS['LANG']->getLL('fileUpload_uploadSuccess'),
'errorQueueLimitExceeded' => $GLOBALS['LANG']->getLL('fileUpload_errorQueueLimitExceeded'),
'errorQueueFileSizeLimit' => $GLOBALS['LANG']->getLL('fileUpload_errorQueueFileSizeLimit'),
'errorQueueZeroByteFile' => $GLOBALS['LANG']->getLL('fileUpload_errorQueueZeroByteFile'),
'errorQueueInvalidFiletype' => $GLOBALS['LANG']->getLL('fileUpload_errorQueueInvalidFiletype'),
'errorUploadHttp' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadHttpError'),
'errorUploadMissingUrl' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadMissingUrl'),
'errorUploadIO' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadIO'),
'errorUploadSecurityError' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadSecurityError'),
'errorUploadLimit' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadLimit'),
'errorUploadFailed' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadFailed'),
'errorUploadFileIDNotFound' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadFileIDNotFound'),
'errorUploadFileValidation' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadFileValidation'),
'errorUploadFileCancelled' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadFileCancelled'),
'errorUploadStopped' => $GLOBALS['LANG']->getLL('fileUpload_errorUploadStopped'),
'allErrorMessageTitle' => $GLOBALS['LANG']->getLL('fileUpload_allErrorMessageTitle'),
'allErrorMessageText' => $GLOBALS['LANG']->getLL('fileUpload_allErrorMessageText'),
'allError401' => $GLOBALS['LANG']->getLL('fileUpload_allError401'),
'allError2038' => $GLOBALS['LANG']->getLL('fileUpload_allError2038'),
);
$t3LLLliveSearch = array(
'title' => $GLOBALS['LANG']->getLL('liveSearch_title'),
'helpTitle' => $GLOBALS['LANG']->getLL('liveSearch_helpTitle'),
'emptyText' => $GLOBALS['LANG']->getLL('liveSearch_emptyText'),
'loadingText' => $GLOBALS['LANG']->getLL('liveSearch_loadingText'),
'listEmptyText' => $GLOBALS['LANG']->getLL('liveSearch_listEmptyText'),
'showAllResults' => $GLOBALS['LANG']->getLL('liveSearch_showAllResults'),
'helpDescription' => $GLOBALS['LANG']->getLL('liveSearch_helpDescription'),
'helpDescriptionPages' => $GLOBALS['LANG']->getLL('liveSearch_helpDescriptionPages'),
'helpDescriptionContent' => $GLOBALS['LANG']->getLL('liveSearch_helpDescriptionContent')
);
// Convert labels/settings back to UTF-8 since json_encode() only works with UTF-8:
if ($GLOBALS['LANG']->charSet !== 'utf-8') {
$t3Configuration['username'] = $GLOBALS['LANG']->csConvObj->conv($t3Configuration['username'], $GLOBALS['LANG']->charSet, 'utf-8');
$GLOBALS['LANG']->csConvObj->convArray($t3LLLcore, $GLOBALS['LANG']->charSet, 'utf-8');
$GLOBALS['LANG']->csConvObj->convArray($t3LLLfileUpload, $GLOBALS['LANG']->charSet, 'utf-8');
$GLOBALS['LANG']->csConvObj->convArray($t3LLLliveSearch, $GLOBALS['LANG']->charSet, 'utf-8');
}
$this->js .= '
TYPO3.configuration = ' . json_encode($t3Configuration) . ';
TYPO3.LLL = {
core : ' . json_encode($t3LLLcore) . ',
fileUpload: ' . json_encode($t3LLLfileUpload) . ',
liveSearch: ' . json_encode($t3LLLliveSearch) . '
};
/**
* TypoSetup object.
    (1-1/1)