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)); } }
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); } }
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(); }