/**
  * @param string $extKey
  * @return boolean
  */
 protected function dbUpdateNeeded()
 {
     if (t3lib_extMgm::isLoaded($this->extension->getExtensionKey()) && !empty($this->installTool)) {
         $updateNeeded = $this->installTool->checkDBupdates($this->extension->getExtensionKey(), array('type' => 'L', 'files' => array('ext_tables.sql')), 1);
         if (!empty($updateNeeded['structure']['diff']['extra'])) {
             return TRUE;
         }
     }
     return FALSE;
 }
示例#2
0
    /**
     * 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);
        }
    }