php - 如何将公共(public)资源包含到 typo3 extbase 扩展中

标签 php typo3 fluid extbase

我正在构建一个扩展,它创建一个后端模块,使 be_users 能够调整图像大小。 我正在尝试使用 pageRenderer 添加/包含 css 和 javascript 文件,但这些文件从未包含在内我只能应用 css,如果使用样式标签将它直接添加到流体模板中并包含带有脚本标签的 javascript 文件。

我在 Controller 中尝试过类似的东西

protected $pageRenderer;

....

    $this->pageRenderer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Page\\PageRenderer');
    $this->pageRenderer->addCssFile('/typo3conf/ext/extKey/Resources/Public/css/styles.css');
    $this->pageRenderer->loadJquery();

还尝试了 viewHelper

namespace Vendor\ExtKey\ViewHelpers;

class AddJsFileViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper {

    public function render() {
        $doc = $this->getDocInstance();
        $pageRenderer = $doc->getPageRenderer();
        $pageRenderer->loadJquery();
    }
}

在我的模板中

{namespace pager=Vendor\ExtKey\ViewHelpers}
<f:layout name="Default" />

<f:section name="main">
    <pager:addJsFile />

...

什么都没有

最佳答案

我不确定你是如何为你的后端定义模板的,但似乎这通常是使用已经具有相应功能的后端容器 View 助手来实现的:

<f:be.container
  addCssFile="{f:uri.resource(path:'css/style.css')}"
  addJsFile="{f:uri.resource(path:'js/scripts.js')}">

  [your templates content]

</f:be.container>

关于php - 如何将公共(public)资源包含到 typo3 extbase 扩展中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21045020/

相关文章:

php - Laravel 5.3 在 ubuntu16.04 nginx 中使用命令composer install --no-dev 上传

javascript - 如何将数据映射到 map (Google map )上的邮政编码?

database - 如何从 extbase 操作中获取数据库字段值?

php - 此插件不允许使用 Controller

CSS 流体行问题

php - Laravel 异常 405 方法不允许

php - 登录 Symfony 3 有什么不对

Typo3最佳实践——通用变量

image - 有没有办法为背景图像使用最大宽度和高度?

html - 带有褪色边框的动态布局