/** * Double install warning. * * @param string Double-install string, eg. "LG" etc. * @param string Current scope, eg. "L" or "G" or "S" * @return string Message */ function extInformationArray_dbInst($dbInst, $current) { if (strlen($dbInst) > 1) { $others = array(); for ($a = 0; $a < strlen($dbInst); $a++) { if (substr($dbInst, $a, 1) != $current) { $others[] = '"' . $this->api->typeLabels[substr($dbInst, $a, 1)] . '"'; } } return tx_em_Tools::rfw(sprintf($GLOBALS['LANG']->getLL('extInfoArray_double_installation_infotext'), implode(' ' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:and') . ' ', $others), $this->api->typeLabels[$current])); } else { return ''; } }
/** * Displays a list of extensions where a newer version is available * in the TER than the one that is installed right now * integrated from the extension "ter_update_check" for TYPO3 4.2 by Christian Welzel * * @return string */ function showExtensionsToUpdate() { global $LANG; $extList = $this->getInstalledExtensions(); $content = '<table cellspacing="1" class="t3-em-extension-list t3-em-extension-list-to-update">' . '<tr class="t3-row-header">' . '<td></td>' . '<td>' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:tab_mod_name') . '</td>' . '<td>' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:tab_mod_key') . '</td>' . '<td>' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:tab_mod_loc_ver') . '</td>' . '<td>' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:tab_mod_rem_ver') . '</td>' . '<td>' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:tab_mod_location') . '</td>' . '<td>' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:tab_mod_comment') . '</td>' . '</tr>'; foreach ($extList[0] as $name => $data) { $this->xmlHandler->searchExtensionsXMLExact($name, '', '', TRUE, TRUE); if (!is_array($this->xmlHandler->extensionsXML[$name])) { continue; } $v = $this->xmlHandler->extensionsXML[$name]['versions']; $versions = array_keys($v); natsort($versions); $lastversion = end($versions); if ((t3lib_extMgm::isLoaded($name) || $this->parentObject->MOD_SETTINGS['display_installed']) && ($data['EM_CONF']['shy'] == 0 || $this->parentObject->MOD_SETTINGS['display_shy']) && tx_em_Tools::versionDifference($lastversion, $data['EM_CONF']['version'], 1)) { $imgInfo = @getImageSize(tx_em_Tools::getExtPath($name, $data['type']) . '/ext_icon.gif'); if (is_array($imgInfo)) { $icon = '<img src="' . $GLOBALS['BACK_PATH'] . tx_em_Tools::typeRelPath($data['type']) . $name . '/ext_icon.gif' . '" ' . $imgInfo[3] . ' alt="" />'; } elseif ($data['_ICON']) { //TODO: see if this can be removed, seems to be wrong in this context $icon = $data['_ICON']; } else { $icon = '<img src="clear.gif" width="1" height="1" alt="" />'; } $comment = '<table cellpadding="0" cellspacing="0" width="100%">'; foreach ($versions as $vk) { $va =& $v[$vk]; if (t3lib_div::int_from_ver($vk) <= t3lib_div::int_from_ver($data['EM_CONF']['version'])) { continue; } $comment .= '<tr><td valign="top" style="padding-right:2px;border-bottom:1px dotted gray">' . $vk . '</td>' . '<td valign="top" style="border-bottom:1px dotted gray">' . nl2br($va[uploadcomment]) . '</td></tr>'; } $comment .= '</table>'; $serverMD5Array = $this->parentObject->extensionDetails->serverExtensionMD5array($name, $data); if (is_array($serverMD5Array)) { ksort($serverMD5Array); } $currentMD5Array = unserialize($data['EM_CONF']['_md5_values_when_last_written']); if (is_array($currentMD5Array)) { @ksort($currentMD5Array); } $warn = ''; if (strcmp(serialize($currentMD5Array), serialize($serverMD5Array))) { $warn = '<tr class="bgColor4" style="color:red"><td colspan="7">' . tx_em_Tools::rfw('<br /><strong>' . $name . ': ' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:msg_warn_diff') . '</strong>') . '</td></tr>' . LF; if ($this->parentObject->MOD_SETTINGS['display_files'] == 1) { $affectedFiles = tx_em_Tools::findMD5ArrayDiff($serverMD5Array, $currentMD5Array); if (count($affectedFiles)) { $warn .= '<tr class="bgColor4"><td colspan="7"><strong>' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:msg_modified') . '</strong><br />' . tx_em_Tools::rfw(implode('<br />', $affectedFiles)) . '</td></tr>' . LF; } } } $content .= '<tr class="bgColor4"><td valign="top">' . $icon . '</td>' . '<td valign="top">' . ($data['EM_CONF']['state'] == 'excludeFromUpdates' ? '<span style="color:#cf7307">' . $data['EM_CONF']['title'] . ' ' . $LANG->sL('LLL:EXT:lang/locallang_mod_tools_em.xml:write_protected') . '</span>' : '<a href="' . t3lib_div::linkThisScript(array('CMD[importExtInfo]' => $name)) . '">' . $data[EM_CONF][title] . '</a>') . '</td>' . '<td valign="top">' . $name . '</td>' . '<td valign="top" align="right">' . $data[EM_CONF][version] . '</td>' . '<td valign="top" align="right">' . $lastversion . '</td>' . '<td valign="top" nowrap="nowrap">' . $this->api->typeLabels[$data['type']] . (strlen($data['doubleInstall']) > 1 ? '<strong> ' . tx_em_Tools::rfw($data['doubleInstall']) . '</strong>' : '') . '</td>' . '<td valign="top">' . $comment . '</td></tr>' . LF . $warn . '<tr class="bgColor4"><td colspan="7"><hr style="margin:0px" /></td></tr>' . LF; } } return $content . '</table><br />'; }
/** * Prints the upload form for extensions * * @param string Extension key * @param array Extension information array * @return string HTML content. */ function getRepositoryUploadForm($extKey, $extInfo) { $content = '<form action="' . $this->script . '" method="post" name="repuploadform"> <input type="hidden" name="CMD[showExt]" value="' . $extKey . '" /> <input type="hidden" name="em[action]" value="doUpload" /> <table border="0" cellpadding="2" cellspacing="1"> <tr class="bgColor4"> <td>' . $GLOBALS['LANG']->getLL('repositoryUploadForm_username') . '</td> <td><input' . $this->doc->formWidth(20) . ' type="text" name="em[user][fe_u]" value="' . $this->fe_user['username'] . '" /></td> </tr> <tr class="bgColor4"> <td>' . $GLOBALS['LANG']->getLL('repositoryUploadForm_password') . '</td> <td><input' . $this->doc->formWidth(20) . ' type="password" name="em[user][fe_p]" value="' . $this->fe_user['password'] . '" /></td> </tr> <tr class="bgColor4"> <td>' . $GLOBALS['LANG']->getLL('repositoryUploadForm_changelog') . '</td> <td><textarea' . $this->doc->formWidth(30, 1) . ' rows="5" name="em[upload][comment]"></textarea></td> </tr> <tr class="bgColor4"> <td>' . $GLOBALS['LANG']->getLL('repositoryUploadForm_command') . '</td> <td nowrap="nowrap"> <input type="radio" name="em[upload][mode]" id="new_dev" value="new_dev" checked="checked" /> <label for="new_dev">' . sprintf($GLOBALS['LANG']->getLL('repositoryUploadForm_new_bugfix'), 'x.x.<strong>' . tx_em_Tools::rfw('x+1') . '</strong>') . '</label><br /> <input type="radio" name="em[upload][mode]" id="new_sub" value="new_sub" /> <label for="new_sub">' . sprintf($GLOBALS['LANG']->getLL('repositoryUploadForm_new_sub_version'), 'x.<strong>' . tx_em_Tools::rfw('x+1') . '</strong>.0') . '</label><br /> <input type="radio" name="em[upload][mode]" id="new_main" value="new_main" /> <label for="new_main">' . sprintf($GLOBALS['LANG']->getLL('repositoryUploadForm_new_main_version'), '<strong>' . tx_em_Tools::rfw('x+1') . '</strong>.0.0') . '</label><br /> </td> </tr> <tr class="bgColor4"> <td> </td> <td><input type="submit" name="submit" value="' . $GLOBALS['LANG']->getLL('repositoryUploadForm_upload') . '" /> </td> </tr> </table> </form>'; return $content; }