Silverstripe:Top.PageControllerFunction 未显示

Silverstripe: Top.PageControllerFunction not displaying

我正在使用 Silverstripe Twitter 模块。它有一个名为 LatestTweets($value) 的页面控制器功能,它显然显示最新的推文。

当我将最新推文功能添加到 Page.ss 模板时。推文显示。一切正常。

我也在使用 shaedawson 的积木模块。我有一个 'grid' 块。网格块在模板文件夹 (templates/) 中有一个模板 (Grid.ss)。当我将 $Top.LatestTweets(3) 添加到网格模板时,推文没有出现。

谁能解释为什么会这样?

它适用于任何页面控制器,因为模块 tractorcow/silverstripe-twitter 在其配置中启用 Page_Controller 上的扩展 TwitterExtension

sheadawson/silverstripe-blocks 模块中的块使用 SiteTree 上下文(顶级范围)呈现,并且您的 LatestTweets() 函数不可用。

所以,唯一的补救办法是在 Page 上启用 TwitterExtension

我想通了。 "Latest Tweets" 函数没有出现在我的模板中的原因是我必须扩展 Block_Controller

我将以下内容添加到我的 'extension.yml' 文件中:

Block_Controller:
  extensions:
    - TwitterExtension

我希望能够 'include' 我的网格模板中的 "Twitter Feed" 模板。然而,这是可行的,并且现在就可以了。