0

TYPO3 的新手,但正在学习。

我有这个代码

lib.GetSubCat = CONTENT
lib.GetSubCat {
    wrap = <div class="p_filter"><div class="p_filter_container"><a class="p_cat_filter button" href="#" title="Under Emne" data-filter="article.portfolio"><span>Under Emne</span></a><ul class="p_filter"><li class="current"><a href="#" title="Under Emne" data-filter="article.portfolio">Under Emne</a></li>|</ul></div><div class="cl"></div></div>
    table = tx_tbpdrills_domain_model_drillsubcategory
    select {
        pidInList = 18
        where = NOT deleted AND NOT hidden      
        orderBy = subcategorytitle ASC
    }
    renderObj = COA_INT
    renderObj {     
        10 = TEXT       
        10.field = subcatshort
        10.wrap = <li><a href="#" title="###" data-filter="article.portfolio[data-category~='###']">|</a></li>
    }   
}

工作正常,现在我想从我的数据库中添加一个额外的字段,我有这个代码,它也可以工作。

......
    table = tx_tbpdrills_domain_model_drillsubcategory
    select {
        pidInList = 18
        where = NOT deleted AND NOT hidden      
        orderBy = subcategorytitle ASC
    }
    renderObj = COA_INT
    renderObj {     
        10 = TEXT       
        10.field = subcatshort
        10.wrap = <li><a href="#" title="###" data-filter="article.portfolio[data-category~='|']">
        20 = TEXT
        20.field = subcategorytitle
        20.wrap = |</a></li>
    }   
}

现在我的问题是,这段代码可以吗,我如何在标题=“###”处添加“子类别标题”,所以我不需要制作 3. 30 = TEXT 和数据库到时间的相同字段像这样,还是这样做的方式?

lib.GetSubCat = CONTENT
lib.GetSubCat {
    wrap = <div class="p_filter"><div class="p_filter_container"><a class="p_cat_filter button" href="#" title="Under Emne" data-filter="article.portfolio"><span>Under Emne</span></a><ul class="p_filter"><li class="current"><a href="#" title="Under Emne" data-filter="article.portfolio">Under Emne</a></li>|</ul></div><div class="cl"></div></div>
    table = tx_tbpdrills_domain_model_drillsubcategory
    select {
        pidInList = 18
        where = NOT deleted AND NOT hidden      
        orderBy = subcategorytitle ASC
    }
    renderObj = TEXT
    renderObj.stdWrap.htmlSpecialChars = 0
    renderObj {
        value = <li><a href="#" title="{field:subcategorytitle}" data-filter="article.portfolio[data-category~='{field:subcatshort}']">{field:subcategorytitle}</a></li>
        insertData = 1
    }   
}
4

2 回答 2

0

您给出的第二个示例非常好,但是您可能会遇到输出中的titledata-filter属性之间缺少空格的问题。查看 stdWrap 属性noTrimWrap来解决这个问题。

你的代码的另一个问题是你错过了从数据库中转义数据,这也使得它可能容易受到 XSS 攻击。您可以使用 stdWrap-property htmlSpecialChars解决这个问题。

于 2013-10-11T09:56:44.880 回答
0
......
    table = tx_tbpdrills_domain_model_drillsubcategory
    select {
        pidInList = 18
        where = NOT deleted AND NOT hidden      
        orderBy = subcategorytitle ASC
    }
    renderObj = COA_INT
    renderObj {
        wrap = <li>|</li>

        10 = TEXT
        10 {
          field = subcategorytitle
          htmlSpecialChars = 1
          wrap = <a href="#" title="|"
        }

        20 = TEXT
        20 {
          field = subcatshort
          htmlSpecialChars = 1
          noTrimWrap = | data-filter="article.portfolio[data-category~='|']">|
        }

        30 = TEXT
        30 {
          field = subcategorytitle
          htmlSpecialChars = 1 
          wrap = |</a>
        }
    }   
}
于 2013-10-11T10:49:34.873 回答