Project

General

Profile

Bug #15128 » patch_shortcut.txt

Administrator Admin, 2006-03-24 16:07

 
diff -x CVS -Nr --unified=5 typo3_src-3.8.1_untouched/tslib/class.tslib_content.php typo3_src-3.8.1/tslib/class.tslib_content.php
--- typo3_src-3.8.1_untouched/tslib/class.tslib_content.php 2005-11-12 12:40:29.000000000 +0100
+++ typo3_src-3.8.1/tslib/class.tslib_content.php 2006-03-24 16:20:06.000000000 +0100
@@ -4986,10 +4986,19 @@
// Looking up the page record to verify its existence:
$disableGroupAccessCheck = $GLOBALS['TSFE']->config['config']['typolinkLinkAccessRestrictedPages'] ? TRUE : FALSE;
$page = $GLOBALS['TSFE']->sys_page->getPage($link_param,$disableGroupAccessCheck);
+ // Shortcut:
+ if ($page['doktype']==4) {
+ $tmp_page = $GLOBALS['TSFE']->getPageShortcut($page['shortcut'],$page['shortcut_mode'],$thisUid = $page['uid']);
+ if ($tmp_page) { // function getPageShortcut can break if too many shortcut->shortcut. if so fallback to old method
+ $page = $tmp_page; // set id which will be linked to target of shortcut
+ }
+ unset($tmp_page);
+ }
+
if (count($page)) {
// This checks if the linked id is in the rootline of this site and if not it will find the domain for that ID and prefix it:
$tCR_domain='';
if ($GLOBALS['TSFE']->config['config']['typolinkCheckRootline']) {
$tCR_rootline = $GLOBALS['TSFE']->sys_page->getRootLine($page['uid']); // Gets rootline of linked-to page
diff -x CVS -Nr --unified=5 typo3_src-3.8.1_untouched/tslib/class.tslib_menu.php typo3_src-3.8.1/tslib/class.tslib_menu.php
--- typo3_src-3.8.1_untouched/tslib/class.tslib_menu.php 2005-11-12 12:40:29.000000000 +0100
+++ typo3_src-3.8.1/tslib/class.tslib_menu.php 2006-03-24 16:35:00.000000000 +0100
@@ -1115,10 +1115,20 @@
function link($key,$altTarget='',$typeOverride='') {
// Mount points:
$MP_var = $this->getMPvar($key);
$MP_params = $MP_var ? '&MP='.rawurlencode($MP_var) : '';
+
+ // Shortcut:
+ if ($this->menuArr[$key]['doktype']==4) {
+ $tmp_page = tslib_fe::getPageShortcut($this->menuArr[$key]['shortcut'],$this->menuArr[$key]['shortcut_mode'],$thisUid = $this->menuArr[$key]['uid']);
+ if ($tmp_page) { // function getPageShortcut can break if too many shortcut->shortcut. if so fallback to old method
+ $this->menuArr[$key] = $tmp_page;
+ $MP_params = ''; // clear MP parameters since ID was changed.
+ }
+ unset($tmp_page);
+ }
// Setting override ID
if ($this->mconf['overrideId'] || $this->menuArr[$key]['overrideId']) {
$overrideArray = array();
// If a user script returned the value overrideId in the menu array we use that as page id
(1-1/5)