【问题标题】:How to access the TYPO3 settings in JavaScript如何在 JavaScript 中访问 TYPO3 设置
【发布时间】:2017-01-30 10:56:39
【问题描述】:

在我的项目中,我们使用的是 TYPO3。我们从后端获取一些数据,它们在 html 页面本身中分配如下。

var items = {};
items.item1 = {settings.item1};
items.item2 = {settings.item2};
items.item3 = {settings.item3};

然后将值分配给按钮。当触发动作时,这些值将被发送回 JS。 {settings.item*} 来自 TYPO3 后端。我想知道的是如何将上述代码块添加到单独的 JS 文件中,而不是添加到 HTML 页面中。当我尝试直接添加它时,它不起作用,因为 {settings.item*} 来自 TYPO3

谢谢

【问题讨论】:

  • 您能否向我们提供当前的 Typoscript 或 PHP 在前端将这些值写入 HTML?

标签: javascript php jquery typo3


【解决方案1】:

您必须从 HTML 中获取您的设置,因为这是 TYPO3 将为您呈现的内容。但您更愿意使用 HTML 的数据属性,例如

您还可以将整个 {settings} 数组作为 JSON 字符串呈现到数据属性中,然后使用您的 JavaScript 提取它。

【讨论】:

    【解决方案2】:

    您可以在 html 文件(模板、部分、布局)上使用 javascript

    你需要在两者之间添加javascript代码

    语法: <![CDATA[ javascript 代码 ]]> TYPO3 代码 <![CDATA[ javascript 代码 ]]>

    <script type="text/javascript">
    <![CDATA[
    {
     var items = {};
     items.item1 = ]]>{settings.item1}<![CDATA[;
     items.item2 = ]]>{settings.item2}<![CDATA[;
     items.item3 = ]]>{settings.item3}<![CDATA[;
     ]]>
     </script>
    

    谢谢

    希望对你有帮助!!

    【讨论】:

      【解决方案3】:

      你能更准确地定义上下文吗? TypoScript、Flexform、PHP(Extensionmanager)内部的设置在哪里定义?

      如果您在 TypoScript 中定义了设置,您可以使用:

      page.inlineSettings {
          setting1 = Hello
          setting2 = GoOnTop
      }
      

      让它们在 JavaScript 中可用:

      TYPO3.settings = {"TS":{"setting1":"Hello","setting2":"GoOnTop"}};
      

      见:https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html#inlinesettings

      也许这将在未来的版本中被删除,因为它的目的是通过 ExtJS 使用。也不能使用 stdWrap 之类的。

      另一种更灵活的方式是使用

      page.jsInline {
          10 = TEXT
          10.stdWrap.dataWrap = var pageId = {TSFE:id};
      }
      

      这允许您使用完整的 TypoScript,例如 TEXT、dataWrap 等。

      见:https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html#jsinline

      【讨论】:

        【解决方案4】:

        我不会仅仅为了一些配置而从 PHP 编写 JavaScript。我会将它们存储在 DOM 元素的数据属性中并通过 JavaScript 获取它。也许这也是你的一个选择。

        【讨论】:

          猜你喜欢
          • 2011-12-11
          • 1970-01-01
          • 2019-09-13
          • 1970-01-01
          • 2013-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-27
          相关资源
          最近更新 更多