2013-10-11 3 views
0

초보자를 TYPO3으로 학습하십시오.TYPO3 typoscript mySql 선택, 동일한 db 필드를 얻으십시오 .2 회

나는이 코드를 잘 작동

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> 
    } 
} 

이, 지금은 내 DB에서 추가 필드를 추가 할, 나는이 코드를 가지고, 그 또한 작업.

...... 
    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> 
    } 
} 

지금 내 질문은,이 코드를 확인하고, 방법은 내가 = 제목에 "subcategorytitle"를 추가하려면 "###"그래서는 3. 30 = TEXT와과를 만들 필요가없는 DB에서 같은 분야에이 같은 시간, 또는 그것을하는 방법입니까?

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 
    } 
} 

답변

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> 
     } 
    } 
} 
+0

thx, 더 쉽게 B 방식을 볼 수 있습니다 .. "insertData = 1"의 기능은 무엇입니까? –

+0

인용구 : "내용은 중괄호 쌍에 대해 구문 분석됩니다. 중괄호의 내용은 유형이'getText'이고'getText'의 결과로 대체됩니다." 자세한 내용은 ** [documentation] (http://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Stdwrap/Index.html#stdwrap-insertdata) **를 참조하십시오. – tmt

+0

좋아요. thx, my 3. edit ex. 코드는 괜찮습니까? 또는 몇 가지 변경/수정이 필요합니까 그래서 그것은 최선의 방법을 작동합니다! –

0

당신이 준 두 번째 예는 완벽하게 괜찮지 만, 당신은 title과 출력의 data-filter 속성 사이에 누락 된 공간에 문제가 있음을 얻을 수 있습니다. 이를 해결하기 위해 stdWrap 속성 noTrimWrap을 살펴보십시오.

코드의 또 다른 문제점은 데이터베이스에서 데이터를 이스케이프하지 못하게되어 XSS 공격으로부터 잠재적으로 취약해질 수 있다는 것입니다. stdWrap 속성 htmlSpecialChars을 사용하여이를 해결할 수 있습니다.

+0

데이터베이스를 채우는 편집자를 신뢰하지 않는 한 'htmlSpecialChars'를 사용할 필요가 없다고 생각합니다. b) 데이터베이스의 콘텐츠는 사이트 방문자가 제공하며 위생없이 데이터베이스에 저장되었습니다. – tmt

+1

어쨌든 중요하다고 생각합니다. 견적이 포함 된 하위 카테고리 제목을 생각해보십시오. 편집인이 신뢰할 수있는 경우에도 문제가 발생할 수 있습니다. – Jost

+0

참. 그건 좋은 지적이야. – tmt