【问题标题】:TYPO3 Ajax Page ConfigurationTYPO3 Ajax 页面配置
【发布时间】:2014-02-19 15:23:20
【问题描述】:

如何从 TYPO3 中的 Ajax 页面中删除 CSS Styled conted header 输出?

这是我的打字稿:

ajax = PAGE
ajax {
  typeNum = 1234
  # this solution is working, but then I don't have flexform values
  # 10 < tt_content.list.20.myextension_pi1

  10 < styles.content.get
  10 {
    select.where = colpos = 0
    select.andWhere = list_type='myextension_pi1'     
  }

  config {
    disableAllHeaderCode = 1
    additionalHeaders = Content-type:application/json
    xhtml_cleaning = 0
    admPanel = 0
    debug = 0
    no_cache = 1
  }
}

这是我的 Ajax 结果 - Hello World 是 tt_content 标头:

<h2 class="csc-firstHeader">Hello World</h2>{"valid":false}

我已经尝试过了,但没有成功:

lib.stdheader > 
lib.header >

这将影响所有页面类型,对于标准输出,我想保留 tt_content 标头输出。

【问题讨论】:

    标签: typo3 typoscript


    【解决方案1】:

    你不应该放置包含插件的tt_content元素,而是插件本身,比如:

    ajax = PAGE
    ajax {
      typeNum = 1234
    
      10 < plugin.myextension_pi1     
    
      config {
        disableAllHeaderCode = 1
        additionalHeaders = Content-type:application/json
        xhtml_cleaning = 0
        admPanel = 0
        debug = 0
        no_cache = 1
      }
    }
    

    另见similar question

    在这种情况下您不需要修改 CSC。

    当然,在这种情况下,您需要通过 TS 使您的扩展程序可配置(最好带有将 TS 配置与 FlexForm 合并的选项,like this

    替代方案:

    • 您还可以创建一个新页面(我们将其命名为 Voucher page)- 将 tt_conent 与您的 flexform 放在那里。
    • 获取它的uid(假设它是123)并将其添加到ajax链接即:index.php?id=123&amp;type=1234
    • 在页面上创建空的 TypoScript 模板(不是 root!)并在 Settings 字段中从 CSC 中删除所有格式(如您向我们展示的那样)

      lib.stdheader > 
      lib.header >
      etc...
      

    您也可以使用TypoScript conditions 仅在给定页面上清除 CSC,即。

    [globalVar = TSFE:id = 123]
        lib.stdheader > 
        lib.header >
    [end]
    

    或仅用于type 参数(我在某处读到它存在错误,但未确认,因此它应该也可以工作):

    [globalVar = GP:type = 1234]
        lib.stdheader > 
        lib.header >
    [end]
    

    【讨论】:

    • 用例是:通过 Ajax 检查凭证代码。有效凭证在后端分配,在 flexform 插件字段中,并且在每个页面上都不同。 BE 用户不能使用 TS,所以 flexform 是我在这里看到的唯一解决方案。真的没有像 10.tt_content.header > 这样的 TS 配置可用吗?
    • 是的,类型的条件就是解决方案,太好了!
    【解决方案2】:

    根据 AJAX 调用的用例,我还会考虑将 eID 脚本用于 AJAX 调用而不是页面类型。

    在大多数情况下,这至少是我的偏好。

    请看这里:Typo3 Extbase AJAX without page typenum

    【讨论】:

      【解决方案3】:

      AJAX 页面类型

      tmp.ajaxConf = PAGE
      tmp.ajaxConf {
          typeNum = 1249058000
          config {
              disableAllHeaderCode = 1
              xhtml_cleaning = 0
              admPanel = 0
          }
      }
      
      ajax_fullPage < tmp.ajaxConf
      ajax_fullPage {
          typeNum = 1234567890
          10 < styles.content.get
      }
      

      AJAX

      var _currentURL = window.location; // Current URL Path
      $.ajax({
          url: _currentURL,
          data: '&type=1234567890',
          cache:false,
          success: function(result) {
              // Code
          },
          error: function(result) {
              alert('Error');
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        • 2020-08-21
        • 1970-01-01
        • 2014-05-02
        相关资源
        最近更新 更多