Index: ext_localconf.php
===================================================================
--- ext_localconf.php (revision 26012)
+++ ext_localconf.php (working copy)
@@ -114,6 +114,6 @@
'.$pluginContent);
unset($pluginContent);
+$TYPO3_CONF_VARS['BE']['AJAX']['TYPO3_tcefile::process'] = PATH_txdam.'lib/class.tx_dam_tce_file.php:tx_dam_tce_file->processAjaxRequest';
-
?>
Index: lib/class.tx_dam_tce_file.php
===================================================================
--- lib/class.tx_dam_tce_file.php (revision 26012)
+++ lib/class.tx_dam_tce_file.php (working copy)
@@ -226,6 +226,32 @@
function getLastError($getFullErrorLogEntry=FALSE) {
return $this->fileProcessor->getLastError($getFullErrorLogEntry);
}
+
+ /**
+ * Handles the actual process from within the ajaxExec function
+ * therefore, it does exactly the same as the real typo3/tce_file.php
+ * but without calling the "finish" method, thus makes it simpler to deal with the
+ * actual return value
+ *
+ *
+ * @param string $params always empty.
+ * @param string $ajaxObj The Ajax object used to return content and set content types
+ * @return void
+ */
+ public function processAjaxRequest(array $params, TYPO3AJAX $ajaxObj) {
+ $this->init();
+ $this->process();
+ $errors = $this->fileProcessor->getErrorMessages();
+ if (count($errors)) {
+ $ajaxObj->setError(implode(',', $errors));
+ } else {
+ $ajaxObj->addContent('result', $this->fileData);
+ if ($this->redirect) {
+ $ajaxObj->addContent('redirect', $this->redirect);
+ }
+ $ajaxObj->setContentFormat('json');
+ }
+ }
}
Index: mod_file/index.php
===================================================================
--- mod_file/index.php (revision 26012)
+++ mod_file/index.php (working copy)
@@ -134,6 +134,11 @@
$this->addDocStyles();
$this->addDocJavaScript();
+
+ // include the initialization for the flash uploader
+ if ($GLOBALS['BE_USER']->uc['enableFlashUploader']) {
+ $this->addFlashUploader();
+ }
$this->extObjHeader();
@@ -205,8 +210,68 @@
$this->content.= $this->doc->spacer(10);
}
}
+
+ function addFlashUploader() {
+ $this->doc->JScodeArray['flashUploader'] = '
+ if (top.TYPO3.FileUploadWindow.isFlashAvailable()) {
+ document.observe("dom:loaded", function() {
+ // monitor the button
+ $("button-upload").observe("click", initFlashUploader);
+ function initFlashUploader(event) {
+ // set the page specific options for the flashUploader
+ var flashUploadOptions = {
+ uploadURL: top.TS.PATH_typo3 + "ajax.php",
+ uploadFileSizeLimit: "' . t3lib_div::getMaxUploadFileSize() . '",
+ uploadFileTypes: {
+ allow: "' . $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']['webspace']['allow'] . '",
+ deny: "' . $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']['webspace']['deny'] . '"
+ },
+ uploadFilePostName: "upload_1",
+ uploadPostParams: {
+ "file[upload][1][target]": "' . tx_dam::path_makeAbsolute($this->path) . '",
+ "file[upload][1][data]": 1,
+ "file[upload][1][charset]": "utf-8",
+ "ajaxID": "TYPO3_tcefile::process"
+ }
+ };
+ // get the flashUploaderWindow instance from the parent frame
+ var flashUploader = top.TYPO3.FileUploadWindow.getInstance(flashUploadOptions);
+ // add an additional function inside the container to show the checkbox option
+ var infoComponent = new top.Ext.Panel({
+ autoEl: { tag: "div" },
+ height: "auto",
+ bodyBorder: false,
+ border: false,
+ hideBorders: true,
+ cls: "t3-upload-window-infopanel",
+ id: "t3-upload-window-infopanel-addition",
+ html: \'\'
+ });
+ flashUploader.add(infoComponent);
+
+ // do a reload of this frame once all uploads are done
+ flashUploader.on("totalcomplete", function() {
+ window.location.reload();
+ });
+
+ // this is the callback function that delivers the additional post parameter to the flash application
+ top.setFlashPostOptionOverwriteExistingFiles = function(checkbox) {
+ var uploader = top.TYPO3.getInstance("FileUploadWindow");
+ if (uploader.isVisible()) {
+ uploader.swf.addPostParam("overwriteExistingFiles", (checkbox.checked == true ? 1 : 0));
+ }
+ };
+
+ event.stop();
+ };
+ });
+ }
+ ';
+ }
+
+
/**
* Prints out the module HTML
*
Index: modfunc_file_list/class.tx_dam_file_list.php
===================================================================
--- modfunc_file_list/class.tx_dam_file_list.php (revision 26012)
+++ modfunc_file_list/class.tx_dam_file_list.php (working copy)
@@ -393,7 +393,11 @@
$actionCall->initActions();
$actions = $actionCall->renderActionsHorizontal();
$this->pObj->markers['FOLDER'] = $actions[0];
- $this->pObj->markers['UPLOAD'] = 'pObj->doc->backPath, 'gfx/upload.gif') . ' title="'.$GLOBALS['LANG']->sL('LLL:EXT:dam/modfunc_file_upload/locallang.xml:tx_dam_file_upload.title',1).'" alt="" height="16" width="16">';
+ if ($GLOBALS['BE_USER']->uc['enableFlashUploader']) {
+ $this->pObj->markers['UPLOAD'] = 'pObj->doc->backPath, 'gfx/upload.gif') . ' title="'.$GLOBALS['LANG']->sL('LLL:EXT:dam/modfunc_file_upload/locallang.xml:tx_dam_file_upload.title',1).'" alt="" height="16" width="16">';
+ } else {
+ $this->pObj->markers['UPLOAD'] = 'pObj->doc->backPath, 'gfx/upload.gif') . ' title="'.$GLOBALS['LANG']->sL('LLL:EXT:dam/modfunc_file_upload/locallang.xml:tx_dam_file_upload.title',1).'" alt="" height="16" width="16">';
+ }
$this->pObj->markers['NEW'] = $actions[1];
}
return $content;