Project

General

Profile

Bug #18960 » rtehtmlarea_bugfix_8716_trunk.patch

Administrator Admin, 2008-06-15 05:42

View differences:

typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php (working copy)
* Copyright notice
*
* (c) 1999-2008 Kasper Skaarhoj (kasperYYYY@typo3.com)
* (c) 2005-2008 Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
* (c) 2005-2008 Stanislas Rolland <typo3(arobas)sjbr.ca>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
......
* $Id$
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @author Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
* @author Stanislas Rolland <typo3(arobas)sjbr.ca>
*/
require_once (PATH_typo3.'class.browse_links.php');
......
// Rich Text Editor specific configuration:
$addPassOnParams='';
$classSelected = array();
if ((string)$this->mode=='rte') {
$RTEtsConfigParts = explode(':',$this->RTEtsConfigParams);
$addPassOnParams .= '&RTEtsConfigParams='.rawurlencode($this->RTEtsConfigParams);
......
while(list(,$class)=each($classesAnchorArray)) {
if (!in_array($class, $classesAnchor['all']) || (in_array($class, $classesAnchor['all']) && is_array($classesAnchor[$anchorType]) && in_array($class, $classesAnchor[$anchorType]))) {
$selected = '';
if ($this->setClass == $class) $selected = 'selected="selected"';
if (!$this->setClass && $this->classesAnchorDefault[$anchorType] == $class) {
if ($this->setClass == $class || (!$this->setClass && $this->classesAnchorDefault[$anchorType] == $class)) {
$selected = 'selected="selected"';
$classSelected[$anchorType] = true;
}
$classLabel = (is_array($RTEsetup['properties']['classes.']) && is_array($RTEsetup['properties']['classes.'][$class.'.']) && $RTEsetup['properties']['classes.'][$class.'.']['name']) ? $this->getPageConfigLabel($RTEsetup['properties']['classes.'][$class.'.']['name'], 0) : $class;
$classStyle = (is_array($RTEsetup['properties']['classes.']) && is_array($RTEsetup['properties']['classes.'][$class.'.']) && $RTEsetup['properties']['classes.'][$class.'.']['value']) ? $RTEsetup['properties']['classes.'][$class.'.']['value'] : '';
......
}
// Initializing the target value (RTE)
$this->setTarget = $this->curUrlArray['target'];
// Unset the target if it is set to a value different than default and if no class is selected and the target field is not displayed
// In other words, do not forward the target if we changed tab and the target field is not displayed
$this->setTarget = (isset($this->curUrlArray['target'])
&& !(
($this->curUrlArray['target'] != $this->thisConfig['defaultLinkTarget'])
&& !$classSelected[$this->act]
&& is_array($this->buttonConfig['targetSelector.']) && $this->buttonConfig['targetSelector.']['disabled'] && is_array($this->buttonConfig['popupSelector.']) && $this->buttonConfig['popupSelector.']['disabled'])
) ? $this->curUrlArray['target'] : '';
if ($this->thisConfig['defaultLinkTarget'] && !isset($this->curUrlArray['target'])) {
$this->setTarget=$this->thisConfig['defaultLinkTarget'];
}
......
var theLink = \''.$this->siteURL.'?id=\'+id+(anchor?anchor:"");
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
plugin.createLink(theLink,cur_target,cur_class,cur_title);
return false;
}
......
var theLink = \''.$this->siteURL.'\'+folder;
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
plugin.createLink(theLink,cur_target,cur_class,cur_title);
return false;
}
function link_spec(theLink) { //
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
plugin.createLink(theLink,cur_target,cur_class,cur_title);
return false;
}
function link_current() { //
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
if (cur_href!="http://" && cur_href!="mailto:") {
plugin.createLink(cur_href,cur_target,cur_class,cur_title);
}
......
$ltarget = '';
if ($this->act != 'mail') {
if (!($targetSelectorConfig['disabled'] && $popupSelectorConfig['disabled'])) {
$ltarget .= '
<tr id="ltargetrow"'. (($targetSelectorConfig['disabled'] && $popupSelectorConfig['disabled']) ? ' style="display: none;"' : '') . '>
<td>'.$LANG->getLL('target',1).':</td>
<td><input type="text" name="ltarget" onchange="setTarget(this.value);" value="'.htmlspecialchars($this->setTarget?$this->setTarget:(($this->setClass || !$this->classesAnchorDefault[$this->act])?'':$this->classesAnchorDefaultTarget[$this->act])).'"'.$this->doc->formWidth(10).' /></td>';
$ltarget .= '
<td colspan="2">';
if (!$targetSelectorConfig['disabled']) {
$ltarget .= '
<tr>
<td>'.$LANG->getLL('target',1).':</td>
<td><input type="text" name="ltarget" onchange="setTarget(this.value);" value="'.htmlspecialchars($this->setTarget?$this->setTarget:(($this->setClass || !$this->classesAnchorDefault[$this->act])?'':$this->classesAnchorDefaultTarget[$this->act])).'"'.$this->doc->formWidth(10).' /></td>';
$ltarget .= '
<td colspan="2">';
if (!$targetSelectorConfig['disabled']) {
$ltarget .= '
<select name="ltarget_type" onchange="setTarget(this.options[this.selectedIndex].value);document.ltargetform.ltarget.value=this.options[this.selectedIndex].value;this.selectedIndex=0;">
<option></option>
<option value="_top">'.$LANG->getLL('top',1).'</option>
<option value="_blank">'.$LANG->getLL('newWindow',1).'</option>
</select>';
}
$ltarget .= '
</td>';
<select name="ltarget_type" onchange="setTarget(this.options[this.selectedIndex].value);document.ltargetform.ltarget.value=this.options[this.selectedIndex].value;this.selectedIndex=0;">
<option></option>
<option value="_top">'.$LANG->getLL('top',1).'</option>
<option value="_blank">'.$LANG->getLL('newWindow',1).'</option>
</select>';
}
$ltarget .= '
</tr>';
</td>
</tr>';
if (!$popupSelectorConfig['disabled']) {
$selectJS = 'if (document.ltargetform.popup_width.options[document.ltargetform.popup_width.selectedIndex].value>0 && document.ltargetform.popup_height.options[document.ltargetform.popup_height.selectedIndex].value>0) {
......
for (var i = HTMLArea.classesAnchorSetup.length; --i >= 0;) {
var anchorClass = HTMLArea.classesAnchorSetup[i];
if (anchorClass[\'name\'] == document.ltargetform.anchor_class.value) {
if (anchorClass[\'titleText\'] && document.ltargetform.anchor_title) document.ltargetform.anchor_title.value = anchorClass[\'titleText\'];
if (anchorClass[\'titleText\'] && document.ltargetform.anchor_title) {
document.ltargetform.anchor_title.value = anchorClass[\'titleText\'];
setTitle(anchorClass[\'titleText\']);
}
if (anchorClass[\'target\']) {
if (document.ltargetform.ltarget) {
document.ltargetform.ltarget.value = anchorClass[\'target\'];
}
setTarget(anchorClass[\'target\']);
} else if (document.ltargetform.ltarget && document.getElementById(\'ltargetrow\').style.display == \'none\') {
// Reset target to default if field is not displayed and class has no configured target
document.ltargetform.ltarget.value = \''. ($this->thisConfig['defaultLinkTarget']?$this->thisConfig['defaultLinkTarget']:'') .'\';
setTarget(document.ltargetform.ltarget.value);
}
break;
}
(1-1/4)