2012-07-04 2 views
0

템플릿 varribles에서 사용자가 체크 박스를 체크하면 소셜 아이콘을 표시하려고합니다.
그래서 나는 각 페이지마다이 체크 박스를 표시 할 필요가있는 모든 것을 만들었습니다. (나는 1 개의 템플릿 만 가지고 있습니다) 템플릿의 varribles에 있습니다.TemplateVariable 체크 박스 사용 ModX

<?php if ($modx->getTemplateVar($social,'Yes')) { ?> 

social은 다음과 같습니다 -
다음 내가 base.html에이 코드를 넣어

<?php if ($modx->getTemplateVar(1,'Yes')) { ?> 
    <a href="#"><img src="assets/templates/default/images/facebook.png" alt="Facebook" style="width: 26px; height: 26px; border: 0; margin-left: 40px;" /></a> 
    <a href="#"><img src="assets/templates/default/images/twitter.png" alt="Twitter" style="width: 26px; height: 26px; border: 0; margin-left: 10px;" /></a> 
    <a href="#"><img src="assets/templates/default/images/linkedin.png" alt="LinkedIn" style="width: 25px; height: 25px; border: 0; margin-left: 10px;" /></a><br /><br /> 
<?php } ?> 

이 또한 내가 시도 (내가 모든 덩어리 및 템플릿에 대한 정적 파일을 사용하여이 파일은 BaseTemplate 정적 파일입니다) 내 TV의 이름, 1은 내 TV의 이드입니다.

그리고 이것은 내가 웹 사이트에 무엇을 얻을 : 그것으로 체크 내가 덩어리/템플릿 파일에 PHP를 사용하지 못할 때문이다하지만

getTemplateVar($social,'Yes')) { ?> 

I, 그래서 난 조각을 만들고 TV를 확인하는 코드를 넣어, 그러나 이것은 나에게 어떤 결과도주지 않았다.

여기에 documentation 나는 TV를 사용하도록 읽었습니다.
내가 뭘 잘못하고 있니? 이 방법으로 TV를 사용하는 방법은 자원을 표시하는 동안 필터가 아닌가요?

+0

YourSocialHTMLChunk의 이름을 원하는대로에 모든 소셜 링크 스틱] ... 'EQ'는 문자열에 작동하는지 잘 모르겠어요, http://rtfm.modx.com/display/revolution20/Input+and+Output+Filters+(Output+Modifiers) : 출력 필터를 한 번 확인해야 어떤 버전의 Modx를 사용하고 있습니까? – OptimusCrime

+0

MODX Revolution 2.2.0-pl2 (고급) – miszczu

답변

3
: http://wiki.modxcms.com/index.php/Placeholders_used_by_MODx_Pages_and_Templates

코드 조각을 위해 당신은 조각의 뭔가

[!yourSnippetName? &sid=`[[*id*]]`!] 

같은 내용을 작성해야

시도해보세요. 스 니펫을 사용할 필요가 없습니다. 또는 템플릿 [base.html]에서이 작품을 만들기 위해

을 코드를 작성할 :

1 또는 0의 숫자 형식으로 "사회"TV를 변경 [더 나은 아직, 당신은 할 수있다
[[*social:eq=`Yes`:then=`[[$YourSocialHTMLChunk]]` ]] 

그런 다음

+0

그것은 작동합니다, 이것은 아주 좋은 답변입니다 :) 고마워요. – miszczu

0

Modx의 템플릿이나 청크에서 순수 PHP를 사용할 수 있습니다. PHP를 사용해야하는 경우이를 위해 스 니펫을 만들어야합니다.

[*templatevarname*]을 쓰면 템플릿이나 청크에서 templatevarible에 도달 할 수 있으며 내용을 출력합니다. 이 옵션은 표시중인 페이지의 내용 만 출력합니다.

다른 리소스에서 템플릿 변수를로드하려면 해당 템플릿에 대한 스 니펫을 만들어야합니다.

이 위키 페이지를 살펴 보자

$tvPr = $modx->getTemplateVarOutput(array("templatevarname"),$sid,1); 
echo $tvPr['templatevarname']; 

http://wiki.modxcms.com/index.php/API:getTemplateVarOutput

+0

그다지 효과가 없습니다. 스 니펫 (snippet)의 사용은 잘못되었지만, 어쨌든 올바르게 사용하면 이중 [[]]'로 작동하지만 작동하지 않습니다. 다른 아이디어? 템플릿 변수에 접근 할 필요가 있습니다. – miszczu

+0

내 스 니펫 마크 업이 틀렸습니까? 내가 Evo에서 프로그래밍을한지 꽤 오래되었지만 캐시되지 않은 스 니펫이 그런 식으로 호출되었다고 믿었습니다 ... 음, 이상하게 작동하지 않습니다. – OptimusCrime

+0

그는 아마도 revo를 사용하고있을 것입니다. (우리는 그것에 대한 확인을 할 수 있습니까?)이 경우 구문은 약간 다릅니다 : [[! yourSnippetName? & sid ='[[id *]']] –