묻고답하기
xe문법에서 php 혼용 사용 문제
2013.02.14 14:51
<block loop="$oDocument->getExtraVars()=>$key,$val" cond="$val->eid=='vimeo_link'">
{@ $aa = $val->value; }
</block>
<?
$video_link = $__Context->aa;
//여기까지 정상 작동.
preg_match('#^(?:https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch\?v=|/watch\?.+&v=))([\w-]{11})(?:.+)?$#x', $video_link, $ymatches);
if(isset($ymatches[1])){
$img_link = "http://i2.ytimg.com/vi/$ymatches[1]/mqdefault.jpg";
}
?>
위의 문장은 동영상 목록을 최근 게시물 형식으로 출력하려고 만들고 있는 위젯의 내용입니다.
php문서에서의 작동여부는 확인한 상태입니다.
하지만 XE테플릿 문법에서만 작동하지 않습니다.
아마 혼용사용에 문제가 있는듯 합니다.
정규화 부분이 처리되지 않습니다. (확장변수인 $video_link에 값이 잘 들어갑니다.)
$ymatches에 정규화 처리된 문자열이 들어가야되는데. 들어가지 않습니다.
혹시 아시는분 알려주시면 감사하겠습니다.
댓글 2
-
송동우
2013.02.14 15:31
-
webgori
2013.02.14 18:08
<block loop="$oDocument->getExtraVars()=>$key,$val" cond="$val->eid=='vimeo_link'">
{@ $aa = $val->value; }
</block>
<!--@if(preg_match("#^(?:https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch\?v=|/watch\?.+&v=))([\w-]{11})(?:.+)?$#x", $aa, $ymatches))-->
{@
$img_link = "http://i2.ytimg.com/vi/".$ymatches[1]."/mqdefault.jpg";
$embed_link = "http://www.youtube.com/embed/".$ymatches[1]."?autoplay=1";
}
<a id="example2" href="{$embed_link}" title="{$oDocument->getTitle($widget_info->subject_cut_size)}">
<img src="{$img_link}" width=185 height=104>
</a>
<!--@end-->위와같은 방법으로 성공하였습니다.
답변 감사합니다.
그냥 템플릿문법으로만 해보세요 굳이 php를 사용할 필요가 없어보입니다......
<block loop="$oDocument->getExtraVars()=>$key,$val" cond="$val->eid=='vimeo_link'">
{@ $aa = $val->value; }
</block>
{$aa}
이렇게 하면 값이 나올겁니다.
값이 나오는 것을 확인했으면
{@
여기에 코딩을 하고(템플릿 문법으로)
}
<img src="주소" cond="조건" />
이렇게 출력.......