Bug #18549 » 8001_v3.diff
typo3/class.browse_links.php (working copy) | ||
---|---|---|
$bgColorClass=($c+1)%2 ? 'bgColor' : 'bgColor-10';
|
||
// Creating blinking arrow, if applicable:
|
||
if ($GLOBALS['SOBE']->browser->curUrlInfo['act']=='file' && $cmpPath==$v['row']['path']) {
|
||
if (($GLOBALS['SOBE']->browser->curUrlInfo['act']=='file' || $GLOBALS['SOBE']->browser->curUrlInfo['act']=='folder') && $cmpPath==$v['row']['path']) {
|
||
$arrCol='<td><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/blinkarrow_right.gif','width="5" height="9"').' class="c-blinkArrowR" alt="" /></td>';
|
||
$bgColorClass='bgColor4';
|
||
} else {
|
||
... | ... | |
var $siteURL; // Current site URL (Frontend)
|
||
var $thisScript; // the script to link to
|
||
var $thisConfig; // RTE specific TSconfig
|
||
var $setTarget; // Target (RTE specific)
|
||
var $setTarget; // Target (RTE specific)
|
||
var $setClass; // CSS Class (RTE specific)
|
||
var $setTitle; // title (RTE specific)
|
||
var $doc; // Backend template object
|
||
var $elements = array(); // Holds information about files
|
||
... | ... | |
if ($this->mode == 'wizard') {
|
||
$currentLinkParts = t3lib_div::trimExplode(' ',$this->P['currentValue']);
|
||
$this->curUrlArray = array(
|
||
'target' => $currentLinkParts[1]
|
||
'target' => $currentLinkParts[1],
|
||
'class' => $currentLinkParts[2],
|
||
'title' => $currentLinkParts[3],
|
||
);
|
||
$this->curUrlInfo=$this->parseCurUrl($this->siteURL.'?id='.$currentLinkParts[0],$this->siteURL);
|
||
|
||
if ($this->curUrlInfo['pageid']==0) { // pageid==0 means that this is not an internal (page) link
|
||
if (@file_exists(PATH_site.rawurldecode($currentLinkParts[0]))) { // check if this is a link to a file
|
||
if (t3lib_div::isFirstPartOfStr($currentLinkParts[0],PATH_site)) {
|
||
$currentLinkParts[0] = substr($currentLinkParts[0], strlen(PATH_site));
|
||
}
|
||
$this->curUrlInfo = $this->parseCurUrl($this->siteURL.$currentLinkParts[0],$this->siteURL);
|
||
} elseif (strstr($currentLinkParts[0],'@')) { // check for email link
|
||
if (t3lib_div::isFirstPartOfStr($currentLinkParts[0],'mailto:')) {
|
||
$currentLinkParts[0] = substr($currentLinkParts[0],7);
|
||
}
|
||
$this->curUrlInfo = $this->parseCurUrl('mailto:'.$currentLinkParts[0],$this->siteURL);
|
||
} else { // nothing of the above. this is an external link
|
||
if(strpos($currentLinkParts[0], '://') === false) {
|
||
$currentLinkParts[0] = 'http://' . $currentLinkParts[0];
|
||
}
|
||
$this->curUrlInfo = $this->parseCurUrl($currentLinkParts[0],$this->siteURL);
|
||
}
|
||
} else {
|
||
$this->curUrlInfo=$this->parseCurUrl($this->siteURL.'?id='.$currentLinkParts[0],$this->siteURL);
|
||
}
|
||
} else {
|
||
$this->curUrlArray = t3lib_div::_GP('curUrl');
|
||
if ($this->curUrlArray['all']) {
|
||
... | ... | |
$this->setTarget=$this->thisConfig['defaultLinkTarget'];
|
||
}
|
||
// Initializing the class value (RTE)
|
||
$this->setClass = $this->curUrlArray['class'];
|
||
// Initializing the title value (RTE)
|
||
$this->setTitle = $this->curUrlArray['title'];
|
||
... | ... | |
// This JavaScript is primarily for RTE/Link. jumpToUrl is used in the other cases as well...
|
||
var add_href="'.($this->curUrlArray['href']?'&curUrl[href]='.rawurlencode($this->curUrlArray['href']):'').'";
|
||
var add_target="'.($this->setTarget?'&curUrl[target]='.rawurlencode($this->setTarget):'').'";
|
||
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 cur_href="'.($this->curUrlArray['href']?$this->curUrlArray['href']:'').'";
|
||
var cur_target="'.($this->setTarget?$this->setTarget:'').'";
|
||
var cur_class="'.($this->setClass?$this->setClass:'-').'";
|
||
var cur_title="'.($this->setTitle?$this->setTitle:'').'";
|
||
function setTarget(target) { //
|
||
function browse_links_setTarget(target) { //
|
||
cur_target=target;
|
||
add_target="&curUrl[target]="+escape(target);
|
||
}
|
||
function setTitle(title) { //
|
||
function browse_links_setClass(class) { //
|
||
cur_class=class;
|
||
add_class="&curUrl[class]="+escape(class);
|
||
}
|
||
function browse_links_setTitle(title) { //
|
||
cur_title=title;
|
||
add_title="&curUrl[title]="+escape(title);
|
||
}
|
||
function setValue(value) { //
|
||
function browse_links_setValue(value) { //
|
||
cur_href=value;
|
||
add_href="&curUrl[href]="+value;
|
||
}
|
||
... | ... | |
}
|
||
function link_current() { //
|
||
if (cur_href!="http://" && cur_href!="mailto:") {
|
||
var setValue = cur_href+" "+cur_target+" "+cur_title;
|
||
if (setValue.substr(0,7)=="http://") setValue = setValue.substr(7);
|
||
if (setValue.substr(0,7)=="mailto:") setValue = setValue.substr(7);
|
||
updateValueInMainForm(setValue);
|
||
if (cur_target =="" && (cur_title!="" || cur_class!="-")) {
|
||
cur_target="_top";
|
||
}
|
||
if (cur_title=="" && cur_class=="-") {
|
||
cur_class="";
|
||
}
|
||
returnBeforeCleaned = cur_href + " " + cur_target + " " + cur_class + " " + cur_title;
|
||
if (returnBeforeCleaned.substr(0,7)=="http://") {
|
||
returnToMainFormValue = returnBeforeCleaned.substr(7);
|
||
} else if (returnBeforeCleaned.substr(0,7)=="mailto:") {
|
||
if (returnBeforeCleaned.substr(0,14)=="mailto:mailto:") {
|
||
returnToMainFormValue = returnBeforeCleaned.substr(14);
|
||
} else {
|
||
returnToMainFormValue = returnBeforeCleaned.substr(7);
|
||
}
|
||
} else {
|
||
returnToMainFormValue = returnBeforeCleaned;
|
||
}
|
||
updateValueInMainForm(returnToMainFormValue);
|
||
close();
|
||
}
|
||
return false;
|
||
... | ... | |
$JScode.='
|
||
function link_typo3Page(id,anchor) { //
|
||
var theLink = \''.$this->siteURL.'?id=\'+id+(anchor?anchor:"");
|
||
self.parent.parent.renderPopup_addLink(theLink,cur_target,cur_title);
|
||
self.parent.parent.renderPopup_addLink(theLink,cur_target,cur_class,cur_title);
|
||
return false;
|
||
}
|
||
function link_folder(folder) { //
|
||
var theLink = \''.$this->siteURL.'\'+folder;
|
||
self.parent.parent.renderPopup_addLink(theLink,cur_target,cur_title);
|
||
self.parent.parent.renderPopup_addLink(theLink,cur_target,cur_class,cur_title);
|
||
return false;
|
||
}
|
||
function link_spec(theLink) { //
|
||
self.parent.parent.renderPopup_addLink(theLink,cur_target,cur_title);
|
||
self.parent.parent.renderPopup_addLink(theLink,cur_target,cur_class,cur_title);
|
||
return false;
|
||
}
|
||
function link_current() { //
|
||
if (cur_href!="http://" && cur_href!="mailto:") {
|
||
self.parent.parent.renderPopup_addLink(cur_href,cur_target,cur_title);
|
||
self.parent.parent.renderPopup_addLink(cur_href,cur_target,cur_class,cur_title);
|
||
}
|
||
return false;
|
||
}
|
||
... | ... | |
function jumpToUrl(URL,anchor) { //
|
||
var add_act = URL.indexOf("act=")==-1 ? "&act='.$this->act.'" : "";
|
||
var add_mode = URL.indexOf("mode=")==-1 ? "&mode='.$this->mode.'" : "";
|
||
var theLocation = URL+add_act+add_mode+add_href+add_target+add_title+add_params'.($addPassOnParams?'+"'.$addPassOnParams.'"':'').'+(anchor?anchor:"");
|
||
var theLocation = URL+add_act+add_mode+add_href+add_target+add_class+add_title+add_params'.($addPassOnParams?'+"'.$addPassOnParams.'"':'').'+(anchor?anchor:"");
|
||
window.location.href = theLocation;
|
||
return false;
|
||
}
|
||
... | ... | |
<tr>
|
||
<td>'.$GLOBALS['LANG']->getLL('emailAddress',1).':</td>
|
||
<td><input type="text" name="lemail"'.$this->doc->formWidth(20).' value="'.htmlspecialchars($this->curUrlInfo['act']=='mail'?$this->curUrlInfo['info']:'').'" /> '.
|
||
'<input type="submit" value="'.$GLOBALS['LANG']->getLL('setLink',1).'" onclick="setTarget(\'\');setValue(\'mailto:\'+document.lurlform.lemail.value); return link_current();" /></td>
|
||
'<input type="submit" value="'.$GLOBALS['LANG']->getLL('setLink',1).'" onclick="browse_links_setTarget(\'\');browse_links_setValue(\'mailto:\'+document.lurlform.lemail.value); return link_current();" /></td>
|
||
</tr>
|
||
</table>
|
||
</form>';
|
||
... | ... | |
<form action="" name="lurlform" id="lurlform">
|
||
<table border="0" cellpadding="2" cellspacing="1" id="typo3-linkURL">
|
||
<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="'.$GLOBALS['LANG']->getLL('setLink',1).'" onclick="setValue(document.lurlform.lurl.value); return link_current();" /></td>
|
||
<td style="width:96px;">URL:</td>
|
||
<td><input type="text" name="lurl"'.$this->doc->formWidth(30).' value="'.htmlspecialchars($this->curUrlInfo['act']=='url'?$this->curUrlInfo['info']:'http://').'" /> '.
|
||
'<input type="submit" value="'.$GLOBALS['LANG']->getLL('setLink',1).'" onclick="browse_links_setValue(document.lurlform.lurl.value); return link_current();" /></td>
|
||
</tr>
|
||
</table>
|
||
</form>';
|
||
... | ... | |
// URL + onclick event:
|
||
$onClickEvent='';
|
||
if (isset($v[$k2i.'.']['target'])) $onClickEvent.="setTarget('".$v[$k2i.'.']['target']."');";
|
||
if (isset($v[$k2i.'.']['target'])) $onClickEvent.="browse_links_setTarget('".$v[$k2i.'.']['target']."');";
|
||
$v[$k2i.'.']['url'] = str_replace('###_URL###',$this->siteURL,$v[$k2i.'.']['url']);
|
||
if (substr($v[$k2i.'.']['url'],0,7)=='http://' || substr($v[$k2i.'.']['url'],0,7)=='mailto:') {
|
||
$onClickEvent.="cur_href=unescape('".rawurlencode($v[$k2i.'.']['url'])."');link_current();";
|
||
... | ... | |
$content .= '
|
||
<!--
|
||
Selecting class for link:
|
||
-->
|
||
<form action="" name="lclassform" id="lclassform">
|
||
<table border="0" cellpadding="2" cellspacing="1" id="typo3-linkClass">
|
||
<tr>
|
||
<td style="width:96px;">'.$GLOBALS['LANG']->getLL('class',1).'</td>
|
||
<td><input type="text" name="lclass" onchange="browse_links_setClass(this.value);" value="'.htmlspecialchars($this->setClass).'"'.$this->doc->formWidth(10).' /></td>
|
||
</tr>
|
||
</table>
|
||
</form>
|
||
<!--
|
||
Selecting title for link:
|
||
-->
|
||
<form action="" name="ltitleform" id="ltargetform">
|
||
<table border="0" cellpadding="2" cellspacing="1" id="typo3-linkTarget">
|
||
<tr>
|
||
<td>'.$GLOBALS['LANG']->getLL('title',1).'</td>
|
||
<td><input type="text" name="ltitle" onchange="setTitle(this.value);" value="'.htmlspecialchars($this->setTitle).'"'.$this->doc->formWidth(10).' /></td>
|
||
<td><input type="submit" value="'.$GLOBALS['LANG']->getLL('update',1).'" onclick="return link_current();" /></td>
|
||
<td style="width:96px;">'.$GLOBALS['LANG']->getLL('title',1).'</td>
|
||
<td><input type="text" name="ltitle" onchange="browse_links_setTitle(this.value);" value="'.htmlspecialchars($this->setTitle).'"'.$this->doc->formWidth(10).' /></td>
|
||
</tr>
|
||
</table>
|
||
</form>
|
||
... | ... | |
<table border="0" cellpadding="2" cellspacing="1" id="typo3-linkTarget">
|
||
<tr>
|
||
<td>'.$GLOBALS['LANG']->getLL('target',1).':</td>
|
||
<td><input type="text" name="ltarget" onchange="setTarget(this.value);" value="'.htmlspecialchars($this->setTarget).'"'.$this->doc->formWidth(10).' /></td>
|
||
<td><input type="text" name="ltarget" onchange="browse_links_setTarget(this.value);" value="'.htmlspecialchars($this->setTarget).'"'.$this->doc->formWidth(10).' /></td>
|
||
<td>
|
||
<select name="ltarget_type" onchange="setTarget(this.options[this.selectedIndex].value);document.ltargetform.ltarget.value=this.options[this.selectedIndex].value;this.selectedIndex=0;">
|
||
<select name="ltarget_type" onchange="browse_links_setTarget(this.options[this.selectedIndex].value);document.ltargetform.ltarget.value=this.options[this.selectedIndex].value;this.selectedIndex=0;">
|
||
<option></option>
|
||
<option value="_top">'.$GLOBALS['LANG']->getLL('top',1).'</option>
|
||
<option value="_blank">'.$GLOBALS['LANG']->getLL('newWindow',1).'</option>
|
||
... | ... | |
$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) {
|
||
document.ltargetform.ltarget.value = document.ltargetform.popup_width.options[document.ltargetform.popup_width.selectedIndex].value+"x"+document.ltargetform.popup_height.options[document.ltargetform.popup_height.selectedIndex].value;
|
||
setTarget(document.ltargetform.ltarget.value);
|
||
setTitle(document.ltitleform.ltitle.value);
|
||
browse_links_setTarget(document.ltargetform.ltarget.value);
|
||
browse_links_setClass(document.lclassform.lclass.value);
|
||
browse_links_setTitle(document.ltitleform.ltitle.value);
|
||
document.ltargetform.popup_width.selectedIndex=0;
|
||
document.ltargetform.popup_height.selectedIndex=0;
|
||
}
|
||
... | ... | |
$rel = substr($href,strlen($siteUrl));
|
||
if (@file_exists(PATH_site.rawurldecode($rel))) { // URL is a file, which exists:
|
||
$info['value']=rawurldecode($rel);
|
||
$info['act']='file';
|
||
if (@is_dir(PATH_site.$info['value'])) {
|
||
$info['act']='folder';
|
||
} else {
|
||
$info['act']='file';
|
||
}
|
||
} else { // URL is a page (id parameter)
|
||
$uP=parse_url($rel);
|
||
if (!trim($uP['path'])) {
|
||
... | ... | |
}
|
||
?>
|
||
?>
|
typo3/sysext/lang/locallang_browse_links.xml (working copy) | ||
---|---|---|
<label index="folderTree">Folder Tree</label>
|
||
<label index="files">Files</label>
|
||
<label index="target">Target</label>
|
||
<label index="class">CSS-Class</label>
|
||
<label index="title">Title</label>
|
||
<label index="target_popUpWindow">Open in window</label>
|
||
<label index="target_popUpWindow_width">Width</label>
|