Index: t3lib/class.t3lib_parsehtml_proc.php =================================================================== --- t3lib/class.t3lib_parsehtml_proc.php (révision 6618) +++ t3lib/class.t3lib_parsehtml_proc.php (copie de travail) @@ -709,21 +709,13 @@ } 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!!) - $link_params_parts = explode('#',$link_param); - $idPart = trim($link_params_parts[0]); // Link-data del + // Splitting the parameter by ',' and if the array counts more than 1 element it's a id/type/parameters triplet + $pairParts = t3lib_div::trimExplode(',', $link_param, TRUE); + $idPart = $pairParts[0]; + $link_params_parts = explode('#', $idPart); + $idPart = trim($link_params_parts[0]); + $sectionMark = trim($link_params_parts[1]); if (!strcmp($idPart,'')) { $idPart=$this->recPid; } // If no id or alias is given, set it to class record pid - -// FIXME commented because useless - what is it for? -// if ($link_params_parts[1] && !$sectionMark) { -// $sectionMark = '#'.trim($link_params_parts[1]); -// } - - // Splitting the parameter by ',' and if the array counts more than 1 element it's a id/type/? pair - $pairParts = t3lib_div::trimExplode(',',$idPart); - if (count($pairParts)>1) { - $idPart = $pairParts[0]; - // Type ? future support for? - } // Checking if the id-parameter is an alias. if (!t3lib_div::testInt($idPart)) { list($idPartR) = t3lib_BEfunc::getRecordsByField('pages','alias',$idPart); @@ -731,8 +723,7 @@ } $page = t3lib_BEfunc::getRecord('pages', $idPart); if (is_array($page)) { // Page must exist... - $pairParts = t3lib_div::trimExplode(',',$link_param); - $href = $siteUrl.'?id='.$pairParts[0].($pairParts[2]?$pairParts[2]:''); + $href = $siteUrl .'?id=' . $idPart . ($pairParts[2] ? $pairParts[2] : '') . ($sectionMark ? '#' . $sectionMark : ''); // linkHandler - allowing links to start with registerd linkHandler e.g.. "record:" } elseif (isset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['typolinkLinkHandler'][array_shift(explode(':', $link_param))])) { $href = $link_param; Index: typo3/sysext/cms/tslib/class.tslib_content.php =================================================================== --- typo3/sysext/cms/tslib/class.tslib_content.php (révision 6618) +++ typo3/sysext/cms/tslib/class.tslib_content.php (copie de travail) @@ -5964,18 +5964,18 @@ } } else { // integer or alias (alias is without slashes or periods or commas, that is 'nospace,alphanum_x,lower,unique' according to definition in $TCA!) if ($conf['no_cache.']) $conf['no_cache']=$this->stdWrap($conf['no_cache'], $conf['no_cache.']); - $link_params_parts=explode('#',$link_param); + // Splitting the parameter by ',' and if the array counts more than 1 element it's a id/type/parameters triplet + $pairParts = t3lib_div::trimExplode(',', $link_param, TRUE); + $link_param = $pairParts[0]; + $link_params_parts = explode('#', $link_param); $link_param = trim($link_params_parts[0]); // Link-data del if (!strcmp($link_param,'')) {$link_param=$GLOBALS['TSFE']->id;} // If no id or alias is given if ($link_params_parts[1] && !$sectionMark) { $sectionMark = trim($link_params_parts[1]); $sectionMark = (t3lib_div::testInt($sectionMark)?'#c':'#').$sectionMark; } - // Splitting the parameter by ',' and if the array counts more than 1 element it's a id/type/? pair unset($theTypeP); - $pairParts = t3lib_div::trimExplode(',',$link_param); if (count($pairParts)>1) { - $link_param = $pairParts[0]; $theTypeP = isset($pairParts[1]) ? $pairParts[1] : 0; // Overruling 'type' $conf['additionalParams'].= isset($pairParts[2]) ? $pairParts[2] : ''; } Index: typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php =================================================================== --- typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php (révision 6618) +++ typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php (copie de travail) @@ -518,8 +518,8 @@ // Link setting functions $JScode.=' function link_typo3Page(id,anchor) { - var parameters = document.ltargetform.query_parameters ? (document.ltargetform.query_parameters.value.charAt(0) == "&"?"":"&") + document.ltargetform.query_parameters.value : ""; - var theLink = \''.$this->siteURL.'?id=\'+id+(anchor?anchor:"")+parameters; + var parameters = (document.ltargetform.query_parameters && document.ltargetform.query_parameters.value) ? (document.ltargetform.query_parameters.value.charAt(0) == "&" ? "" : "&") + document.ltargetform.query_parameters.value : ""; + var theLink = \'' . $this->siteURL . '?id=\' + id + parameters + (anchor ? anchor : ""); if (document.ltargetform.anchor_title) browse_links_setTitle(document.ltargetform.anchor_title.value); if (document.ltargetform.anchor_class) browse_links_setClass(document.ltargetform.anchor_class.value); if (document.ltargetform.ltarget) browse_links_setTarget(document.ltargetform.ltarget.value); @@ -542,7 +542,7 @@ return false; } function link_current() { - var parameters = document.ltargetform.query_parameters ? (document.ltargetform.query_parameters.value.charAt(0) == "&"?"":"&") + document.ltargetform.query_parameters.value : ""; + var parameters = (document.ltargetform.query_parameters && document.ltargetform.query_parameters.value) ? (document.ltargetform.query_parameters.value.charAt(0) == "&" ? "" : "&") + document.ltargetform.query_parameters.value : ""; if (document.ltargetform.anchor_title) browse_links_setTitle(document.ltargetform.anchor_title.value); if (document.ltargetform.anchor_class) browse_links_setClass(document.ltargetform.anchor_class.value); if (document.ltargetform.ltarget) browse_links_setTarget(document.ltargetform.ltarget.value);