コード例 #1
0
 /**
  * Delete extension from the file system
  *
  * @param	string		Extension key
  * @param	array		Extension info array
  * @return	string		Returns message string about the status of the operation
  */
 function extDelete($extKey, $extInfo, $command)
 {
     $content = '';
     $absPath = tx_em_Tools::getExtPath($extKey, $extInfo['type']);
     if (t3lib_extMgm::isLoaded($extKey)) {
         return $GLOBALS['LANG']->getLL('extDelete_ext_active');
     } elseif (!tx_em_Tools::deleteAsType($extInfo['type'])) {
         return sprintf($GLOBALS['LANG']->getLL('extDelete_wrong_scope'), $this->api->typeLabels[$extInfo['type']]);
     } elseif (t3lib_div::inList('G,L', $extInfo['type'])) {
         if ($command['doDelete'] && !strcmp($absPath, urldecode($command['absPath']))) {
             $res = $this->removeExtDirectory($absPath);
             if ($res) {
                 if (!$this->silentMode) {
                     $flashMessage = t3lib_div::makeInstance('t3lib_FlashMessage', nl2br($res), sprintf($GLOBALS['LANG']->getLL('extDelete_remove_dir_failed'), $absPath), t3lib_FlashMessage::ERROR);
                     return $flashMessage->render();
                 }
                 return '';
             } else {
                 if (!$this->silentMode) {
                     $flashMessage = t3lib_div::makeInstance('t3lib_FlashMessage', sprintf($GLOBALS['LANG']->getLL('extDelete_removed'), $absPath), $GLOBALS['LANG']->getLL('extDelete_removed_header'), t3lib_FlashMessage::OK);
                     return $flashMessage->render();
                 }
                 return '';
             }
         } else {
             $areYouSure = $GLOBALS['LANG']->getLL('extDelete_sure');
             $deleteFromServer = $GLOBALS['LANG']->getLL('extDelete_from_server');
             $onClick = "if (confirm('{$areYouSure}')) {window.location.href='" . t3lib_div::linkThisScript(array('CMD[showExt]' => $extKey, 'CMD[doDelete]' => 1, 'CMD[absPath]' => rawurlencode($absPath))) . "';}";
             $content .= '<a class="t3-link deleteLink" href="#" onclick="' . htmlspecialchars($onClick) . ' return false;"><strong>' . $deleteFromServer . '</strong> ' . sprintf($GLOBALS['LANG']->getLL('extDelete_from_location'), $this->api->typeLabels[$extInfo['type']], substr($absPath, strlen(PATH_site))) . '</a>';
             $content .= '<br /><br />' . $GLOBALS['LANG']->getLL('extDelete_backup');
             return $content;
         }
     } else {
         return $GLOBALS['LANG']->getLL('extDelete_neither_global_nor_local');
     }
 }
    /**
     * Prints backupdelete
     *
     * @param string $parameter
     * @return string
     */
    public function getExtensionBackupDelete($extKey)
    {
        $content = '';
        /** @var $extensionList  tx_em_Extensions_List*/
        $extensionList = t3lib_div::makeInstance('tx_em_Extensions_List', $this);
        /** @var $extensionDetails tx_em_Extensions_Details */
        $extensionDetails = t3lib_div::makeInstance('tx_em_Extensions_Details');
        /** @var $extensionDetails tx_em_Connection_Ter */
        $terConnection = t3lib_div::makeInstance('tx_em_Connection_Ter', $this);
        /** @var $extensionDetails tx_em_Install */
        $install = t3lib_div::makeInstance('tx_em_Install');
        /** @var $api tx_em_API */
        $api = t3lib_div::makeInstance('tx_em_API');
        list($list, ) = $extensionList->getInstalledExtensions();
        $uploadArray = $extensionDetails->makeUploadarray($extKey, $list[$extKey]);
        if (is_array($uploadArray)) {
            $backUpData = $terConnection->makeUploadDataFromarray($uploadArray);
            $filename = 'T3X_' . $extKey . '-' . str_replace('.', '_', $list[$extKey]['EM_CONF']['version']) . '-z-' . date('YmdHi') . '.t3x';
            $techInfo = $install->makeDetailedExtensionAnalysis($extKey, $list[$extKey]);
            $lines = array();
            // Backup
            $lines[] = '<tr class="t3-row-header"><td colspan="2">' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:ext_details_backup') . '</td></tr>';
            $lines[] = '<tr class="bgColor4"><td><strong>' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extBackup_files') . '</strong></td><td>' . '<a class="t3-link" href="' . htmlspecialchars(t3lib_div::linkThisScript(array('CMD[doBackup]' => 1, 'CMD[showExt]' => $extKey, 'SET[singleDetails]' => 'backup'))) . '">' . sprintf($GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extBackup_download'), $extKey) . '</a><br />
				(' . $filename . ', <br />' . t3lib_div::formatSize(strlen($backUpData)) . ', <br />' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extBackup_md5') . ' ' . md5($backUpData) . ')
				<br /></td></tr>';
            if (is_array($techInfo['tables'])) {
                $lines[] = '<tr class="bgColor4"><td><strong>' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extBackup_data_tables') . '</strong></td><td>' . tx_em_Database::dumpDataTablesLine($techInfo['tables'], $extKey, array('SET[singleDetails]' => 'backup')) . '</td></tr>';
            }
            if (is_array($techInfo['static'])) {
                $lines[] = '<tr class="bgColor4"><td><strong>' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extBackup_static_tables') . '</strong></td><td>' . tx_em_Database::dumpDataTablesLine($techInfo['static'], $extKey, array('SET[singleDetails]' => 'backup')) . '</td></tr>';
            }
            // Delete
            if (!t3lib_extMgm::isLoaded($extKey)) {
                // check ext scope
                if (tx_em_Tools::deleteAsType($list[$extKey]['type']) && t3lib_div::inList('G,L', $list[$extKey]['type'])) {
                    $lines[] = '<tr class="t3-row-header"><td colspan="2">' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:ext_details_delete') . '</td></tr>';
                    $lines[] = '<tr class="bgColor4"><td colspan="2">' . $install->extDelete($extKey, $list[$extKey], '') . '</td></tr>';
                }
            }
            // EM_CONF
            $lines[] = '<tr class="t3-row-header"><td colspan="2">' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:ext_details_update_em_conf') . '</td></tr>';
            $updateEMConf = $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extUpdateEMCONF_file');
            $lines[] = '<tr class="bgColor4"><td colspan="2">' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extUpdateEMCONF_info_changes') . '<br />
						' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extUpdateEMCONF_info_reset') . '<br /><br />' . '<a class="t3-link emconfLink" href="#"><strong>' . $updateEMConf . '</strong> ' . sprintf($GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:extDelete_from_location'), $api->typeLabels[$list[$extKey]['type']], substr(tx_em_Tools::getExtPath($extKey, $list[$extKey]['type']['type']), strlen(PATH_site))) . '</a>' . '</td></tr>';
            // mod menu for singleDetails
            $modMenu = $GLOBALS['TBE_MODULES_EXT']['tools_em']['MOD_MENU']['singleDetails'];
            if (isset($modMenu) && is_array($modMenu)) {
                $lines[] = '<tr class="t3-row-header"><td colspan="2">' . $GLOBALS['LANG']->sL('LLL:EXT:em/language/locallang.xml:ext_details_externActions') . '</td></tr>';
                $menuLinks = '';
                foreach ($modMenu as $menuEntry) {
                    $onClick = htmlspecialchars('jumpToUrl(\'mod.php?&id=0&M=tools_em&SET[singleDetails]=' . $menuEntry['name'] . '&CMD[showExt]=' . $extKey . '\');');
                    $menuLinks .= '<a class="t3-link" href="#" onclick="' . $onClick . '" >' . $GLOBALS['LANG']->sL($menuEntry['title'], TRUE) . '</a><br />';
                }
                $lines[] = '<tr class="bgColor4"><td colspan="2"><p>' . $menuLinks . '</p></td></tr>';
            }
            $content = '<table border="0" cellpadding="2" cellspacing="2">' . implode('', $lines) . '</table>';
            return $this->replaceLinks($content);
        }
    }