/** * Download extension as file / make backup * * @param string Extension key * @param array Extension information array * @return string HTML content */ function extBackup($extKey, $extInfo) { $uArr = $this->extensionDetails->makeUploadarray($extKey, $extInfo); if (is_array($uArr)) { $backUpData = $this->terConnection->makeUploadDataFromarray($uArr); $filename = 'T3X_' . $extKey . '-' . str_replace('.', '_', $extInfo['EM_CONF']['version']) . '-z-' . date('YmdHi') . '.t3x'; if (intval($this->CMD['doBackup']) == 1) { ob_end_clean(); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $filename); echo $backUpData; exit; } elseif ($this->CMD['dumpTables']) { $filename = 'T3X_' . $extKey; $cTables = count(explode(',', $this->CMD['dumpTables'])); if ($cTables > 1) { $filename .= '-' . $cTables . 'tables'; } else { $filename .= '-' . $this->CMD['dumpTables']; } $filename .= '+adt.sql'; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $filename); echo tx_em_Database::dumpStaticTables($this->CMD['dumpTables']); exit; } else { $techInfo = $this->install->makeDetailedExtensionAnalysis($extKey, $extInfo); $lines = array(); $lines[] = '<tr class="t3-row-header"><td colspan="2">' . $GLOBALS['LANG']->getLL('extBackup_select') . '</td></tr>'; $lines[] = '<tr class="bgColor4"><td><strong>' . $GLOBALS['LANG']->getLL('extBackup_files') . '</strong></td><td>' . '<a class="t3-link" href="' . htmlspecialchars(t3lib_div::linkThisScript(array('CMD[doBackup]' => 1, 'CMD[showExt]' => $extKey))) . '">' . sprintf($GLOBALS['LANG']->getLL('extBackup_download'), $extKey) . '</a><br /> (' . $filename . ', <br />' . t3lib_div::formatSize(strlen($backUpData)) . ', <br />' . $GLOBALS['LANG']->getLL('extBackup_md5') . ' ' . md5($backUpData) . ') <br /></td></tr>'; if (is_array($techInfo['tables'])) { $lines[] = '<tr class="bgColor4"><td><strong>' . $GLOBALS['LANG']->getLL('extBackup_data_tables') . '</strong></td><td>' . tx_em_Database::dumpDataTablesLine($techInfo['tables'], $extKey) . '</td></tr>'; } if (is_array($techInfo['static'])) { $lines[] = '<tr class="bgColor4"><td><strong>' . $GLOBALS['LANG']->getLL('extBackup_static_tables') . '</strong></td><td>' . tx_em_Database::dumpDataTablesLine($techInfo['static'], $extKey) . '</td></tr>'; } $content = '<table border="0" cellpadding="2" cellspacing="2">' . implode('', $lines) . '</table>'; return $content; } } else { throw new RuntimeException('TYPO3 Fatal Error: ' . $GLOBALS['LANG']->getLL('extBackup_unexpected_error'), 1270853981); } }