代码之家  ›  专栏  ›  技术社区  ›  Andrea Schmuttermair

TYPO3 Ajax页面配置

  •  3
  • Andrea Schmuttermair  · 技术社区  · 12 年前

    如何在TYPO3中从Ajax页面中删除CSS样式的有争议的标题输出?

    这是我的手写体:

    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 回复  |  直到 12 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    你不应该 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_content和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]
    
        2
  •  1
  •   Community Mohan Dere    9 年前

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

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

    请参见此处: Typo3 Extbase AJAX without page typenum

        3
  •  0
  •   Ghanshyam Gohel    12 年前

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