TYPO3 4.6包含带有typoscript的extbase插件

时间:2012-01-06 15:12:24

标签: plugins typo3 typoscript extbase

我有TYPO3 4.6,在tempvoila模板中我有typoscript对象路径lib.header我想要 将插件的输出重定向到lib.header 我在ext_localconf.php中编写和配置了扩展库和插件,如下所示:

Tx_Extbase_Utility_Extension::configurePlugin(
   $_EXTKEY,
   'RandomPhotoSlideShow',
   array(
       'Photo' => 'randomPhotoSlideShow',
   ),
   // non-cacheable actions
    array(

        'Photo' => ''

    )
);
在ext_tables.php中的

是这样的:

Tx_Extbase_Utility_Extension::registerPlugin(
    $_EXTKEY,
    'RandomPhotoSlideShow',
    'Gets random photos for slide show'
);

在typoscript模板中我有这个:

plugin.tx_gallery.widgets {
    papaWidget = USER
    papaWidget {
        userFunc = tx_extbase_core_bootstrap->run
       pluginName = RandomPhotoSlideShow
        extensionName = Gallery
        controller = Photo
        action = randomPhotoSlideShow
        switchableControllerActions {
                Photo {
                        1 = randomPhotoSlideShow
                }
        }

        settings =< plugin.tx_gallery.settings
        persistence =< plugin.tx_gallery.persistence
        view =< plugin.tx_gallery.view
        }
}

lib.header < plugin.tx_gallery.widgets.papaWidget

但没有显示任何内容,如果有错误或者TYPO3 4.6中包含的extbase 1.4中的内容发生了变化,有人可以提出建议吗?

2 个答案:

答案 0 :(得分:1)

我认为问题在于你的行动。你真的在Controller中有一个randomPhotoSlideShowAction吗? 还要检查指定的pluginName是否正确。

请尝试指定您的索引或列出操作,看看会发生什么。

action = index
switchableControllerActions {
    Photo {
        1 = index
    }
}

如果你的行动是正确的,请确保你实际上从你的行动中归还了一些东西!

public function randomPhotoSlideShowAction(...) { 

    // [...]

    $this->view->assign('foo', 'bar');

    return $this->view->render();
}

答案 1 :(得分:0)

您的代码看起来不错,唯一缺少的是Controller部分(根据命名约定)

controller = PhotoController