2012-01-13 3 views
0

ExpressionEngine 템플릿에 JSON을 만들고 해당 URL에 Ruby JSON 라이브러리를 가리키고 있습니다. 템플릿은 다음과 같습니다.ExpressionEngine 템플릿에서 빈 JSON 배열을 출력하지 않습니다

[ 
{exp:mylib:mytag channel="mychannel" backspace="1"} 
    {"entry_id":"{entry_id}","title":"{title}"}, 
{/exp:mylib:mytag} 
] 

태그가 데이터를 반환하면 모든 것이 정상이며 내 루비 코드는 객체 배열과 완벽하게 작동합니다. 그러나 태그가 데이터를 반환하지 않으면 (적절한 항목이 없기 때문에) Ruby는 json 문자열이 필수 2 옥텟 길이가 아니라고 불평합니다. 출력이 [], 즉 비어 있지만 유효한 JSON 배열이라고 예상합니다. 그러나 Firefox/firebug 및 wget에서 URL을 방문하면 URL에서 되돌아 오는 응답의 길이가 0 바이트이고 상태 200 OK임을 알 수 있습니다.

태그없이 템플릿과 빈 대괄호 쌍을 만들어 동일한 결과 (0 바이트)를 만들어 테스트했습니다.

EE 템플릿 언어의 예약 토큰은 빈 대괄호 쌍입니까? 아무도 HTML 페이지에서 대괄호 쌍을 원할 수 없다고 가정하는 영리한 최적화가 있습니까?

답변

1

직접 추가 기능을 개발하거나 내장 ExpressionEngine 태그를 사용하고 있습니까?

{exp:channel:entries channel="channel_name"} 
    {if no_results} ...{/if} 
{/exp:channel:entries} 

많은 타사 추가 기능도 동일한 유형을 지원 : 기본 채널을 사용

당신이 일치하는 결과가없는 경우 출력을 얻는다을 제어하기 위해 if_no_results 조건부 태그를 사용할 수, 쿼리를 엔트리 {if_no_results} 조건부.

ExpressionEngine JSON 부가 기능을 살펴보고 상황에 접근하는 방법에 대한 아이디어를 얻을 수도 있습니다.

+0

태그 출력이 아닙니다. 말 그대로 문자 '[]'(_no_ tags)로 구성된 템플릿은 EE로 처리 할 때 비어 있습니다. – iftheshoefritz

+0

EE 템플릿 기본 설정 관리자에서 구성한 [* 템플릿 유형 *] (http://expressionengine.com/user_guide/cp/design/templates/new_template.html#template-type) - PHP를 사용할 수 있습니까? – rjb

+0

{if_no_results} 조건부에 대한 제안을 사용합니다. – iftheshoefritz

관련 문제