2017-10-19 108 views
1

我想使用核心鏈接處理程序並在userFunc中更改我的鏈接。TYPO3 V8中的typolink userFunc

我使用的,因爲它是在這裏描述的器linkHandler,並將其與一個單一的詳細信息頁面的工作原理: https://usetypo3.com/linkhandler.html

的問題是: 如果我在我的TypoScript更改爲:

config.recordLinks { 
    tx_news { 
     typolink { 
      userFunc = Vendor\Name\UserFunc\TypolinkUserFunc->parseLinkHandlerTypolink 
      userFunc { 
       newsUid = TEXT 
       newsUid.data = field:uid 

       newsClass = TEXT 
       newsClass.data = parameters:class 

       defaultDetailPid = 53 
      } 
     } 
    } 
} 

它不沒有工作。

我找不到userFunc。我在擴展中。我使用

'autoload' => 
     array(
      'psr-4' => array('Vendor\\Name\\' => 'Classes') 
     ), 
); 

爲了加載我的userFunc類。 我沒有收到任何錯誤消息。

+0

類文件是my_ext/Classes/UserFunc/TypolinkUserFunc.php?這個班級是怎麼樣的(全部源代碼)?它是否在沒有config.recordLinks上下文的情況下工作,例如page.10 = USER_INT,page.10.userFunc =供應商\名稱\ UserFunc \ TypolinkUserFunc-> parseLinkHandlerTypolink?否則,使用調試器並在sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php行5712中設置斷點。 – Wolfgang

+0

您是否閱讀過typolink中userFunc的文檔? https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Typolink/Index.html?highlight=typolink。你也可以發佈你的代碼的userFunc? –

回答

0

你現在一定已經想通了,但是你必須運行一個userFunc作爲USER

10 = USER 
10 { 
    userFunc = TYPO3\Extension\Sample->user_exampleUserFunc 
} 

所以,作爲一個樣本,你的代碼應該是這個樣子:

config.recordLinks { 
    tx_news { 
     typolink { 
      10 = USER 
      10 { 
       userFunc = Vendor\Name\UserFunc\TypolinkUserFunc->parseLinkHandlerTypolink 
       userFunc { 
        newsUid = TEXT 
        newsUid.data = field:uid 

        newsClass = TEXT 
        newsClass.data = parameters:class 

        defaultDetailPid = 53 
       } 
      } 
     } 
    } 
} 

正如上面僅僅是一個例子,它應該讓你開始。