141 $query =&
$app->getQuery();
143 $records = df_get_selected_records($query);
145 if ( $query[
'-mode'] ==
'list' ){
146 $records = df_get_records_array($query[
'-table'], $query);
148 $records = array(
$app->getRecord() );
152 $jsonProfile =
'basic';
153 if ( @$query[
'--profile'] ){
154 $jsonProfile = $query[
'--profile'];
157 $displayMethod =
'val';
158 if ( @$query[
'--displayMethod'] ==
'display' ){
159 $displayMethod =
'display';
160 }
else if ( @$query[
'--displayMethod'] ==
'htmlValue' ){
161 $displayMethod =
'htmlValue';
165 if ( isset( $query[
'--fields'] ) ){
166 $fields = explode(
' ', $query[
'--fields']);
172 foreach ($records as $record){
173 if ( !$record->checkPermission(
'export_json') ){
177 $del = $record->table()->getDelegate();
179 if ( isset($del) and method_exists($del,
'export_json') ){
180 $row = $del->export_json($record, $jsonProfile, $records);
185 $fields = array_keys($record->table()->fields(
false,
true));
188 $allowed_fields = array();
190 if ( !$record->checkPermission(
'export_json', array(
'field'=>$field) ) ){
193 $allowed_fields[] =
$field;
199 foreach ( $allowed_fields as $fld ){
200 $row[$fld] = $record->$displayMethod($fld);
204 if ( isset($del) and method_exists($del,
'filter_json') ){
205 $del->filter_json($record, $row, $jsonProfile, $records);
211 if ( @$query[
'--single'] ){
212 if ( count(
$out) > 0 ){
217 if ( @$query[
'--var'] ){
220 $query[
'--var'] =>
$out
226 $enc_out = json_encode(
$out);
227 header(
'Content-type: application/json; charset='.
$app->_conf[
'oe']);
228 header(
'Connection: close');