function handle(&$params) { import('Dataface/XMLTool/default.php'); $xml = new Dataface_XMLTool_default(); $xml->expanded = true; $app =& Dataface_Application::getInstance(); $query =& $app->getQuery(); $input = array(); if (isset($query['--single-record-only'])) { $record =& $app->getRecord(); if ($record->checkPermission('view xml')) { $input[] = $record; } } else { if (@$query['-relationship']) { $query['-related:limit'] = 9999; $query['-related:start'] = 0; $record =& $app->getRecord(); $rrecords =& df_get_related_records($query); // $record->getRelatedRecordObjects( $query['-relationship'], 'all' ); foreach ($rrecords as $rrecord) { $drecord =& $rrecord->toRecord(); if ($drecord->checkPermission('view xml')) { $input[] = $drecord; } unset($drecord); unset($rrecord); } } else { $records = df_get_records_array($query['-table'], $query, null, null, false); foreach ($records as $record) { if ($record->checkPermission('view xml')) { $input[] = $record; } } } } echo $xml->header(); echo $xml->toXML($input); echo $xml->footer(); exit; }
function handle(&$params) { set_time_limit(0); import('Dataface/RecordReader.php'); $app =& Dataface_Application::getInstance(); $query = $app->getQuery(); $query['-limit'] = 9999999; $table =& Dataface_Table::loadTable($query['-table']); if (isset($query['-relationship']) and @$query['--related']) { $query['-related:start'] = 0; $query['-related:limit'] = 9999999; $record =& $app->getRecord(); $relationship =& $table->getRelationship($query['-relationship']); $records =& df_get_related_records($query); //$record->getRelatedRecordObjects($query['-relationship']); $data = array(); $headings = array(); foreach ($relationship->_schema['short_columns'] as $colhead) { $f =& $relationship->getField($colhead); if (@$f['visibility']['csv'] == 'hidden') { unset($f); continue; } $headings[] = $colhead; unset($f); } $data[] = $headings; foreach ($records as $record) { if (!$record->checkPermission('view')) { continue; } $data[] = $this->related_rec2data($record); } $temp = tmpfile(); $this->startFile($temp, $query); foreach ($data as $row) { $this->writeRow($temp, $row, $query); //, $recordfputcsv($temp, $row,",",'"'); } } else { $temp = tmpfile(); $query['-skip'] = 0; $query['-limit'] = null; $records = new Dataface_RecordReader($query, 30, false); //$records =& df_get_records_array($query['-table'], $query,null,null,false); //$data = array(); $headings = array(); //foreach (array_merge(array_keys($table->fields()), array_keys($table->graftedFields())) as $colhead){ foreach (array_keys($table->fields(false, true)) as $colhead) { $f =& $table->getField($colhead); if (@$f['visibility']['csv'] == 'hidden') { unset($f); continue; } $headings[] = $colhead; unset($f); } //$data[] = $headings; $this->startFile($temp, $query); $this->writeRow($temp, $headings, $query); //fputcsv($temp, $headings,",",'"'); foreach ($records as $record) { if (!$record->checkPermission('view')) { continue; } $data = $this->rec2data($record); //fputcsv($temp, $data,",",'"'); $this->writeRow($temp, $data, $query); } } $this->endFile($temp, $query); fseek($temp, 0); $this->writeOutput($temp, $query); exit; }
function createFeed($query = null) { import('feedcreator.class.php'); $app =& Dataface_Application::getInstance(); if (!isset($query)) { $query = $app->getQuery(); } $feed_data = $this->buildFeedData($query); $rss = new UniversalFeedCreator(); $rss->encoding = $app->_conf['oe']; //$rss->useCached(); // use cached version if age<1 hour $rss->title = $feed_data['title']; $rss->description = $feed_data['description']; //optional //$rss->descriptionTruncSize = 500; //$rss->descriptionHtmlSyndicated = true; $rss->link = htmlentities($feed_data['link']); $rss->syndicationURL = htmlentities($feed_data['syndicationURL']); if (isset($query['-relationship'])) { // Do the related records thing $record =& $app->getRecord(); $query['-related:start'] = 0; $rrecords =& df_get_related_records(array_merge($query, array('-related:limit' => 1))); //$record->getRelatedRecordObjects($query['-relationship'], 0,1); if (count($rrecords) > 0) { $testRec =& $rrecords[0]->toRecord(); $lastUpdatedColumn = $testRec->_table->getLastUpdatedField(); if ($lastUpdatedColumn) { unset($rrecords); $query['-related:limit'] = 30; $query['-related:sort'] = $lastUpdatedColumn . ' desc'; $rrecords =& df_get_related_records($query); //$record->getRelatedRecordObjects($query['-relationship'], null,null, 0, $lastUpdatedColumn.' desc'); } else { unset($rrecords); $query['-related:limit'] = 30; $rrecords =& df_get_related_records($query); //$record->getRelatedRecordObjects($query['-relationship']); } $records = array(); foreach ($rrecords as $rrec) { $dfRecord =& $rrec->toRecord(); if ($dfRecord->checkPermission('view', array('recordmask' => array('view' => 1)))) { $records[] =& $dfRecord; } unset($dfRecord); unset($rrec); } } else { $records = array(); } //trigger_error("Not implemented yet for related records", E_USER_ERROR); } else { $records =& df_get_records_array($query['-table'], $query); } foreach ($records as $record) { if (!$record->checkPermission('view')) { continue; } if (!$record->checkPermission('view in rss')) { continue; } $item = $this->createFeedItem($record); $del =& $record->_table->getDelegate(); if (isset($del) and method_exists($del, 'canAddToFeed') and !$del->canAddToFeed($record, $rss)) { unset($del); continue; } unset($del); $rss->addItem($item); unset($item); } return $rss; }
function handle(&$params) { $app =& Dataface_Application::getInstance(); $query = $app->getQuery(); $query['-limit'] = 9999999; $table =& Dataface_Table::loadTable($query['-table']); if (isset($query['-relationship']) and @$query['--related']) { $query['-related:start'] = 0; $query['-related:limit'] = 9999999; $record =& $app->getRecord(); $relationship =& $table->getRelationship($query['-relationship']); $records =& df_get_related_records($query); //$record->getRelatedRecordObjects($query['-relationship']); $data = array(); $headings = array(); foreach ($relationship->_schema['short_columns'] as $colhead) { $f =& $relationship->getField($colhead); if (@$f['visibility']['csv'] == 'hidden') { unset($f); continue; } $headings[] = $colhead; unset($f); } $data[] = $headings; foreach ($records as $record) { if (!$record->checkPermission('view')) { continue; } $data[] = $this->related_rec2data($record); } } else { $records =& df_get_records_array($query['-table'], $query, null, null, false); $data = array(); $headings = array(); foreach (array_merge(array_keys($table->fields()), array_keys($table->graftedFields())) as $colhead) { $f =& $table->getField($colhead); if (@$f['visibility']['csv'] == 'hidden') { unset($f); continue; } $headings[] = $colhead; unset($f); } $data[] = $headings; foreach ($records as $record) { if (!$record->checkPermission('view')) { continue; } $data[] = $this->rec2data($record); } } $temp = tmpfile(); foreach ($data as $row) { fputcsv($temp, $row, ",", '"'); } fseek($temp, 0); header("Content-type: text/csv; charset={$app->_conf['oe']}"); header('Content-disposition: attachment; filename="' . $query['-table'] . '_results_' . date('Y_m_d_H_i_s') . '.csv"'); $fstats = fstat($temp); echo fread($temp, $fstats['size']); fclose($temp); exit; }