Exemplo n.º 1
0
 function getData(\Tracker\Tabular\Source\SourceInterface $source)
 {
     $schema = $source->getSchema();
     $schema = $schema->getHtmlOutputSchema();
     $columns = $schema->getColumns();
     foreach ($source->getEntries() as $entry) {
         (yield array_map(function ($column) use($entry) {
             return $entry->render($column);
         }, $columns));
     }
 }
Exemplo n.º 2
0
 function write(\Tracker\Tabular\Source\SourceInterface $source)
 {
     $schema = $source->getSchema();
     $schema = $schema->getPlainOutputSchema();
     $schema->validate();
     $columns = $schema->getColumns();
     $headers = [];
     foreach ($columns as $column) {
         $headers[] = $column->getEncodedHeader();
     }
     $this->file->fputcsv($headers);
     foreach ($source->getEntries() as $entry) {
         $row = [];
         foreach ($columns as $column) {
             $row[] = $entry->render($column);
         }
         $this->file->fputcsv($row);
     }
 }
Exemplo n.º 3
0
 function write(\Tracker\Tabular\Source\SourceInterface $source)
 {
     $schema = $source->getSchema();
     $definition = $schema->getDefinition();
     $columns = $schema->getColumns();
     $utilities = new \Services_Tracker_Utilities();
     $tx = \TikiDb::get()->begin();
     $lookup = $this->getItemIdLookup($schema);
     foreach ($source->getEntries() as $entry) {
         $info = ['itemId' => false, 'status' => '', 'fields' => []];
         foreach ($columns as $column) {
             $entry->parseInto($info, $column);
         }
         $info['itemId'] = $lookup($info);
         if ($info['itemId']) {
             $utilities->updateItem($definition, $info);
         } else {
             $utilities->insertItem($definition, $info);
         }
     }
     $tx->commit();
 }