2011-11-30 2 views
0

템플릿 용으로 Smarty를 사용하는 시스템 (ActiveCollab)에서 작업하고 있습니다. 일부 JSON을 출력하고 싶기 때문에 자체적으로 출력해야합니다 ... 다른 cruft는 없습니다. 그러나 해당 액션에 대한 Smarty 템플릿 파일을 제공하지 않으면 JSON을 파괴하는 오류 출력이 발생합니다.ActiveCollab의 단일 페이지에서 Smarty 사용 안 함

누구나 사례별로 Smarty 출력을 비활성화하는 방법을 아는 사람이 있습니까? 의사 코드 등에서

$this->smarty->disable(); 

누구도 ActiveCollab에 출력용 템플릿 파일을 필요로하지 않는 방법을 알고 있습니까? 아니면 ActiveCollab 내에서 소비하기 위해 JSON을 출력하는 더 나은 방법을 알고 있습니까?

내 주요 목표는 도움이되는 경우 ActiveCollab에서 jqgrid가 사용할 json을 출력하는 것입니다.

감사합니다.


EDIT :

그것이 나오는 그것이 원하는 출력 die(); 후 추가로 간단하다.

function bar(){ 
    echo $myoutput; 
    die(); 
} 

그게 전부입니다. 솔루션이 너무 기초 적이기 때문에 항상 "어려운"대답을 찾는 이유는 결코 알지 못할 것입니다 ... 한숨.

답변

1

activeCollab은 작업 자체가 실행을 끝내기 전에 종료를 제공하지 않는 경우에만 페이지 콘텐츠 주위에 자동으로 페이지 레이아웃을 렌더링합니다. 이 종료 될 수 있습니다

  1. $this->serveData()
  2. 페이지 리디렉션 내용의
  3. 간단한 인쇄로 일부 데이터를 서빙 + 다이() 앞으로
  4. 파일, 사용하는 모든 다른 것이 존재
  5. download_file()download_content() 기능 행동 실행 중지 (그 안의 사망)

귀하의 경우에는 c ontroller의 serveData() 방법은 JSON을 제공합니다 :

function action() { 
    $my_json_data = array('something'); 

    $this->serveData($my_json_data, null, FORMAT_JSON); 
} 

이 기능은 적절한 HTTP 헤더를 설정하고 보내는 값을 인코딩합니다.

+0

serveData 메소드는 내가 찾고있는 메소드입니다. 고마워! – Stuart