Bug #19396 » typo3core_bugfix_9455_4-2-8_v3.patch
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>';
|
||
}
|
||