TYPO3 Ajax页面配置

时间:2014-02-19 15:23:21

标签: typo3 typoscript

如何从TYPO3中的Ajax页面中删除CSS样式的锥形标题输出?

这是我的Typoscript:

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标头输出。

3 个答案:

答案 0 :(得分:3)

你不应该放置包含插件的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&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]

答案 1 :(得分:1)

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

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

见这里:Typo3 Extbase AJAX without page typenum

答案 2 :(得分:0)

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');
    }
});