Project

General

Profile

Bug #19396 » typo3core_bugfix_9455_4-2-8_v3.patch

Administrator Admin, 2009-09-21 15:29

View differences:

t3lib/class.t3lib_parsehtml_proc.php
} else { // ... otherwise store the link as a-tag.
// Unsetting 'rtekeep' attribute if that had been set.
unset($attribArray['rtekeep']);
// If the url is local, remove url-prefix
$siteURL = $this->siteUrl();
if ($siteURL && substr($attribArray['href'],0,strlen($siteURL))==$siteURL) {
$attribArray['href']=$this->relBackPath.substr($attribArray['href'],strlen($siteURL));
if (!$attribArray['external']) {
// If the url is local, remove url-prefix
$siteURL = $this->siteUrl();
if ($siteURL && substr($attribArray['href'],0,strlen($siteURL))==$siteURL) {
$attribArray['href']=$this->relBackPath.substr($attribArray['href'],strlen($siteURL));
}
}
unset($attribArray['external']);
$bTag='<a '.t3lib_div::implodeAttributes($attribArray,1).'>';
$eTag='</a>';
$blockSplit[$k] = $bTag.$this->TS_links_db($this->removeFirstAndLastTag($blockSplit[$k])).$eTag;
......
$uP = parse_url(strtolower($attribArray['href']));
if (!$uP['scheme']) {
$attribArray['href'] = $this->siteUrl().substr($attribArray['href'],strlen($this->relBackPath));
} elseif ($uP['scheme'] != 'mailto') {
$attribArray['external'] = 1;
}
} else {
$attribArray['rtekeep'] = 1;
typo3/sysext/rtehtmlarea/extensions/TYPO3Link/class.tx_rtehtmlarea_typo3link.php
$registerRTEinJavascriptString .= '
RTEarea['.$RTEcounter.'].buttons.'. $button .'.classesAnchorUrl = "' . $this->htmlAreaRTE->writeTemporaryFile('', 'classesAnchor_'.$this->htmlAreaRTE->contentLanguageUid, 'js', $this->buildJSClassesAnchorArray()) . '";';
}
$registerRTEinJavascriptString .= '
RTEarea['.$RTEcounter.'].buttons.'. $button .'.additionalAttributes = "external' . ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extensionKey]['plugins'][$this->pluginName]['additionalAttributes'] ? (',' . $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extensionKey]['plugins'][$this->pluginName]['additionalAttributes']) : '') . '";';
}
return $registerRTEinJavascriptString;
}
typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php
var $editorNo;
var $buttonConfig = array();
public $additionalAttributes = array();
public $anchorTypes = array( 'page', 'url', 'file', 'mail', 'spec');
protected $classesAnchorDefault = array();
protected $classesAnchorDefaultTitle = array();
......
}
// Note: parseCurUrl will invoke the hooks
$this->curUrlInfo = $this->parseCurUrl($this->curUrlArray['href'],$this->siteURL);
if (isset($this->curUrlArray['external']) && $this->curUrlInfo['act'] != 'mail') {
$this->curUrlInfo['act'] = 'url';
$this->curUrlInfo['info'] = $this->curUrlArray['href'];
}
// Determine nature of current url:
$this->act = t3lib_div::_GP('act');
if (!$this->act) {
......
if ($this->thisConfig['defaultLinkTarget'] && !isset($this->curUrlArray['target'])) {
$this->setTarget=$this->thisConfig['defaultLinkTarget'];
}
// Initializing additional attributes
if ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rtehtmlarea']['plugins']['TYPO3Link']['additionalAttributes']) {
$addAttributes = t3lib_div::trimExplode(',', $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rtehtmlarea']['plugins']['TYPO3Link']['additionalAttributes'], 1);
foreach ($addAttributes as $attribute) {
$this->additionalAttributes[$attribute] = isset($this->curUrlArray[$attribute]) ? $this->curUrlArray[$attribute] : '';
}
}
// Creating backend template object:
$this->doc = t3lib_div::makeInstance('template');
......
var add_class="'.($this->setClass?'&curUrl[class]='.rawurlencode($this->setClass):'').'";
var add_title="'.($this->setTitle?'&curUrl[title]='.rawurlencode($this->setTitle):'').'";
var add_params="'.($this->bparams?'&bparams='.rawurlencode($this->bparams):'').'";
var additionalValues = ' . (count($this->additionalAttributes) ? json_encode($this->additionalAttributes) : '{}') . ';
var cur_href="'.($this->curUrlArray['href']?$this->curUrlArray['href']:'').'";
var cur_target="'.($this->setTarget?$this->setTarget:'').'";
......
cur_href=value;
add_href="&curUrl[href]="+value;
}
function browse_links_setAdditionalValue(name, value) {
additionalValues[name] = value;
}
';
if ($this->mode=='wizard') { // Functions used, if the link selector is in wizard mode (= TCEforms fields)
......
var add_contentTypo3Charset = URL.indexOf("contentTypo3Charset=")==-1 ? "&contentTypo3Charset='.$this->contentTypo3Charset.'" : "";
var add_act = URL.indexOf("act=")==-1 ? "&act='.$this->act.'" : "";
var add_mode = URL.indexOf("mode=")==-1 ? "&mode='.$this->mode.'" : "";
var add_additionalValues = "";
if (plugin.pageTSConfiguration && plugin.pageTSConfiguration.additionalAttributes) {
var additionalAttributes = plugin.pageTSConfiguration.additionalAttributes.split(",");
for (var i = additionalAttributes.length; --i >= 0;) {
if (additionalValues[additionalAttributes[i]] != "") {
add_additionalValues += "&curUrl[" + additionalAttributes[i] + "]=" + encodeURIComponent(additionalValues[additionalAttributes[i]]);
}
}
}
var theLocation = URL+add_act+add_editorNo+add_contentTypo3Language+add_contentTypo3Charset+add_mode+add_href+add_target+add_class+add_title+add_params'.($addPassOnParams?'+"'.$addPassOnParams.'"':'').'+(anchor?anchor:"");
window.location.href = theLocation;
return false;
......
<tr>
<td>URL:</td>
<td><input type="text" name="lurl"'.$this->doc->formWidth(20).' value="'.htmlspecialchars($this->curUrlInfo['act']=='url'?$this->curUrlInfo['info']:'http://').'" /> '.
'<input type="submit" value="'.$LANG->getLL('setLink',1).'" onclick="if (/^[A-Za-z0-9_+]{1,8}:/.test(document.lurlform.lurl.value)) { browse_links_setHref(document.lurlform.lurl.value); } else { browse_links_setHref(\'http://\'+document.lurlform.lurl.value); }; return link_current();" /></td>
'<input type="submit" value="'.$LANG->getLL('setLink',1).'" onclick="if (/^[A-Za-z0-9_+]{1,8}:/.test(document.lurlform.lurl.value)) { browse_links_setHref(document.lurlform.lurl.value); } else { browse_links_setHref(\'http://\'+document.lurlform.lurl.value); }; browse_links_setAdditionalValue(\'external\', \'1\'); return link_current();" /></td>
</tr>
</table>
</form>';
......
<td>
</td>
<td colspan="3">
<input type="submit" value="'.$LANG->getLL('update',1).'" onclick="return link_current();" />
<input type="submit" value="'.$LANG->getLL('update',1).'" onclick="' . (($this->act == 'url') ? 'browse_links_setAdditionalValue(\'external\', \'1\'); ' : '') .'return link_current();" />
</td>
</tr>';
}
(6-6/8)