Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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;
 }