Bug #19396 » typo3core_bugfix_9455_typo3_4-3_v2.patch
t3lib/class.t3lib_parsehtml_proc.php (copie de travail) | ||
---|---|---|
unset($attribArray_copy['target']);
|
||
unset($attribArray_copy['class']);
|
||
unset($attribArray_copy['title']);
|
||
unset($attribArray_copy['external']);
|
||
if ($attribArray_copy['rteerror']) { // Unset "rteerror" and "style" attributes if "rteerror" is set!
|
||
unset($attribArray_copy['style']);
|
||
unset($attribArray_copy['rteerror']);
|
||
... | ... | |
$attribArray['class'] = preg_match('/ /', $attribArray['class']) ? '"' . $attribArray['class'] . '"' : $attribArray['class'];
|
||
$attribArray['title'] = preg_match('/ /', $attribArray['title']) ? '"' . $attribArray['title'] . '"' : $attribArray['title'];
|
||
// Creating the TYPO3 pseudo-tag "<LINK>" for the link (includes href/url, target and class attributes):
|
||
$bTag='<link '.$info['url'].($info['query']?',0,'.$info['query']:'').($attribArray['target']?' '.$attribArray['target']:(($attribArray['class'] || $attribArray['title'])?' -':'')).($attribArray['class']?' '.$attribArray['class']:($attribArray['title']?' -':'')).($attribArray['title']?' '.$attribArray['title']:'').'>';
|
||
// If external attribute is set, keep the href unchanged
|
||
$href = $attribArray['external'] ? $attribArray['href'] : $info['url'].($info['query']?',0,'.$info['query']:'');
|
||
$bTag='<link '. $href . ($attribArray['target']?' '.$attribArray['target']:(($attribArray['class'] || $attribArray['title'])?' -':'')).($attribArray['class']?' '.$attribArray['class']:($attribArray['title']?' -':'')).($attribArray['title']?' '.$attribArray['title']:'').'>';
|
||
$eTag='</link>';
|
||
$blockSplit[$k] = $bTag.$this->TS_links_db($this->removeFirstAndLastTag($blockSplit[$k])).$eTag;
|
||
} 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;
|
||
... | ... | |
} else {
|
||
$fileChar=intval(strpos($link_param, '/'));
|
||
$urlChar=intval(strpos($link_param, '.'));
|
||
$external = FALSE;
|
||
// Detects if a file is found in site-root OR is a simulateStaticDocument.
|
||
list($rootFileDat) = explode('?',$link_param);
|
||
$rFD_fI = pathinfo($rootFileDat);
|
||
... | ... | |
} elseif($urlChar && (strstr($link_param,'//') || !$fileChar || $urlChar<$fileChar)) { // url (external): If doubleSlash or if a '.' comes before a '/'.
|
||
if (!preg_match('/^[a-z]*:\/\//',trim(strtolower($link_param)))) {$scheme='http://';} else {$scheme='';}
|
||
$href = $scheme.$link_param;
|
||
$external = TRUE;
|
||
} elseif($fileChar) { // file (internal)
|
||
$href = $siteUrl.$link_param;
|
||
} else { // integer or alias (alias is without slashes or periods or commas, that is 'nospace,alphanum_x,lower,unique' according to tables.php!!)
|
||
... | ... | |
($tagCode[2]&&$tagCode[2]!='-' ? ' target="'.htmlspecialchars($tagCode[2]).'"' : '').
|
||
($tagCode[3]&&$tagCode[3]!='-' ? ' class="'.htmlspecialchars($tagCode[3]).'"' : '').
|
||
($tagCode[4] ? ' title="'.htmlspecialchars($tagCode[4]).'"' : '').
|
||
($external ? ' external="1"' : '').
|
||
($error ? ' rteerror="'.htmlspecialchars($error).'" style="background-color: yellow; border:2px red solid; color: black;"' : ''). // Should be OK to add the style; the transformation back to databsae will remove it...
|
||
'>';
|
||
$eTag = '</a>';
|
||
... | ... | |
$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 (copie de travail) | ||
---|---|---|
$registerRTEinJavascriptString .= '
|
||
RTEarea['.$RTEcounter.'].buttons.'. $button .'.classesAnchorUrl = "' . $this->htmlAreaRTE->writeTemporaryFile('', 'classesAnchor_'.$this->htmlAreaRTE->contentLanguageUid, 'js', $this->buildJSClassesAnchorArray()) . '";';
|
||
}
|
||
if ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extensionKey]['plugins'][$this->pluginName]['additionalAttributes']) {
|
||
$registerRTEinJavascriptString .= '
|
||
RTEarea['.$RTEcounter.'].buttons.'. $button .'.additionalAttributes = "' . $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extensionKey]['plugins'][$this->pluginName]['additionalAttributes'] .'";';
|
||
}
|
||
$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 (copie de travail) | ||
---|---|---|
}
|
||
// 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) {
|
||
... | ... | |
<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>';
|
||
}
|