Index: typo3/sysext/impexp/ext_autoload.php =================================================================== --- typo3/sysext/impexp/ext_autoload.php (Revision 0) +++ typo3/sysext/impexp/ext_autoload.php (Revision 0) @@ -0,0 +1,10 @@ + $extensionPath . 'task/class.tx_impexp_task.php', +); +?> \ No newline at end of file Index: typo3/sysext/impexp/ext_tables.php =================================================================== --- typo3/sysext/impexp/ext_tables.php (Revision 7230) +++ typo3/sysext/impexp/ext_tables.php (Arbeitskopie) @@ -1,17 +1,20 @@ 'tx_impexp_clickmenu', 'path' => t3lib_extMgm::extPath($_EXTKEY).'class.tx_impexp_clickmenu.php' ); - t3lib_extMgm::insertModuleFunction( - 'user_task', - 'tx_impexp_modfunc1', - t3lib_extMgm::extPath($_EXTKEY).'modfunc1/class.tx_impexp_modfunc1.php', - 'LLL:EXT:impexp/app/locallang.xml:moduleFunction.tx_impexp_modfunc1' + + $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['taskcenter']['impexp']['tasks'] = array ( + 'title' => 'LLL:EXT:impexp/locallang_csh.xml:.alttitle', + 'description' => 'LLL:EXT:impexp/locallang_csh.xml:.description', + 'icon' => 'EXT:impexp/export.gif', + 'task' => 'tx_impexp_task', ); t3lib_extMgm::addLLrefForTCAdescr('xMOD_tx_impexp','EXT:impexp/locallang_csh.xml'); Index: typo3/sysext/impexp/locallang_csh.xml =================================================================== --- typo3/sysext/impexp/locallang_csh.xml (Revision 7230) +++ typo3/sysext/impexp/locallang_csh.xml (Arbeitskopie) @@ -170,6 +170,19 @@ + + + + + + + + + + + + + \ No newline at end of file Index: typo3/sysext/impexp/task/class.tx_impexp_task.php =================================================================== --- typo3/sysext/impexp/task/class.tx_impexp_task.php (Revision 0) +++ typo3/sysext/impexp/task/class.tx_impexp_task.php (Revision 0) @@ -0,0 +1,226 @@ + + * @author Georg Ringer + * @package TYPO3 + * @subpackage impexp + * + */ +class tx_impexp_task implements tx_taskcenter_Task { + /** + * Back-reference to the calling reports module + * + * @var tx_reports_Module $taskObject + */ + protected $taskObject; + + /** + * Constructor + */ + public function __construct(SC_mod_user_task_index $taskObject) { + $this->taskObject = $taskObject; + $GLOBALS['LANG']->includeLLFile('EXT:impexp/locallang_csh.xml'); + } + + /** + * This method renders the report + * + * @return string The status report as HTML + */ + public function getTask() { + return $this->main(); + } + + /** + * Render an optional additional information for the 1st view in taskcenter. + * Empty for this task + * + * @return string Overview as HTML + */ + public function getOverview() { + return ''; + } + + + + /** + * Main Task center module + * + * @return string HTML content. + */ + public function main() { + $content = ''; + $id = intval(t3lib_div::_GP('display')); + + // if a preset is found, it is rendered using an iframe + if($id > 0) { + $url = $GLOBALS['BACK_PATH'] . t3lib_extMgm::extRelPath('impexp') . 'app/index.php?tx_impexp[action]=export&preset[load]=1&preset[select]=' . $id; + return $this->taskObject->urlInIframe($url, 1); + } else { + // header + $content .= $this->taskObject->description( + $GLOBALS['LANG']->getLL('.alttitle'), + $GLOBALS['LANG']->getLL('.description') + ); + + $thumbnails = $lines = array(); + + // Thumbnail folder and files: + $tempDir = $this->userTempFolder(); + if ($tempDir) { + $thumbnails = t3lib_div::getFilesInDir($tempDir, 'png,gif,jpg', 1); + } + + $clause = $GLOBALS['BE_USER']->getPagePermsClause(1); + $usernames = t3lib_BEfunc::getUserNames(); + + // Create preset links: + $presets = $this->getPresets(); + + // if any presets found + if (is_array($presets)) { + foreach($presets as $key => $presetCfg) { + $configuration = unserialize($presetCfg['preset_data']); + $thumbnailFile = $thumbnails[$configuration['meta']['thumbnail']]; + $title = strlen($presetCfg['title']) ? $presetCfg['title'] : '['.$presetCfg['uid'].']'; + + if ($thumbnailFile && 1==2) { + // @todo: create icon or maybe completly remove it because where to display? + $src= '../' . $GLOBALS['BACK_PATH'] . substr($tempDir, strlen(PATH_site)) . basename($thumbnailFile); + $icon = $src; + } else { + $icon = 'EXT:impexp/export.gif'; + } + + $description = array(); + + // is public? + if ($presetCfg['public']) { + $description[] = $GLOBALS['LANG']->getLL('task.public') . ': ' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:yes'); + } + + // owner + $description[] = $GLOBALS['LANG']->getLL('task.owner') . ': ' . (($presetCfg['user_uid'] === $GLOBALS['BE_USER']->user['uid']) ? $GLOBALS['LANG']->getLL('task.own') : '[' . htmlspecialchars($usernames[$presetCfg['user_uid']]['username']) . ']'); + + // page & path + if ($configuration['pagetree']['id']) { + $description[] = $GLOBALS['LANG']->getLL('task.page') . ': ' . $configuration['pagetree']['id']; + $description[] = $GLOBALS['LANG']->getLL('task.path') . ': ' . htmlspecialchars(t3lib_BEfunc::getRecordPath($configuration['pagetree']['id'], $clause, 20)); + } else { + $description[] = $GLOBALS['LANG']->getLL('single-record'); + } + + // Meta information + if ($configuration['meta']['title'] || $configuration['meta']['description'] || $configuration['meta']['notes']) { + $metaInformation = ''; + if ($configuration['meta']['title']) { + $metaInformation .= '' . htmlspecialchars($configuration['meta']['title']) . '
'; + } + if ($configuration['meta']['description']) { + $metaInformation .= htmlspecialchars($configuration['meta']['description']); + } + if ($configuration['meta']['notes']) { + $metaInformation .= '

+ ' . $GLOBALS['LANG']->getLL('notes') . ': + ' . htmlspecialchars($configuration['meta']['notes']) . ''; + } + + $description[] = '
' . $metaInformation; + } + + // collect all preset information + $lines[$key] = array( + 'icon' => $icon, + 'title' => htmlspecialchars($title), + 'descriptionHtml' => implode('
', $description), + 'link' => 'index.php?M=tools_txtaskcenterM1&SET[function]=impexp.tasks&display=' . $presetCfg['uid'] + ); + + } + + // render preset list + $content .= $this->taskObject->renderListMenu($lines); + } else { + // no presets found + $flashMessage = t3lib_div::makeInstance( + 't3lib_FlashMessage', + $GLOBALS['LANG']->getLL('no-presets'), + '', + t3lib_FlashMessage::NOTICE + + ); + $content .= $flashMessage->render(); + } + } + + return $content; + } + + + /** + * Select presets for this user + * + * @return array Array of preset records + */ + function getPresets() { + $presets = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( + '*', + 'tx_impexp_presets', + '(public > 0 OR user_uid=' . $GLOBALS['BE_USER']->user['uid'] . ')', + '', + 'item_uid DESC, title' + ); + + return $presets; + } + + /** + * Returns first temporary folder of the user account (from $FILEMOUNTS) + * + * @return string Absolute path to first "_temp_" folder of the current user, otherwise blank. + */ + function userTempFolder() { + foreach($GLOBALS['FILEMOUNTS'] as $filePathInfo) { + $tempFolder = $filePathInfo['path'] . '_temp_/'; + if (@is_dir($tempFolder)) { + return $tempFolder; + } + } + } + + +} + + +if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/impexp/task/class.tx_impexp_task.php']) { + include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/impexp/task/class.tx_impexp_task.php']); +} + +?> \ No newline at end of file