oms-Media/Theme/Backend/Components/Media/spreadsheet.tpl.php
2021-02-20 10:59:06 +01:00

63 lines
2.0 KiB
PHP
Executable File

<?php declare(strict_types=1);
use phpOMS\Autoloader;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Writer\Csv;
use phpOMS\Uri\UriFactory;
Autoloader::addPath(__DIR__ . '/../../../../../../Resources/');
?>
<section id="mediaFile" class="portlet">
<div class="portlet-body">
<div id="media" class="tabview tab-2 m-editor">
<ul class="tab-links">
<li><label tabindex="0" for="media-c-tab-1"><?= $this->getHtml('Preview', 'Media'); ?></label>
<li><label tabindex="0" for="media-c-tab-2">CSV</label>
</ul>
<div class="tab-content">
<input type="radio" id="media-c-tab-1" name="tabular-1" checked>
<div class="tab">
<iframe src="<?= UriFactory::build('{/api}media/export?id=' . $this->media->getId()); ?>&type=html"></iframe>
</div>
<input type="radio" id="media-c-tab-2" name="tabular-1" checked>
<div class="tab">
<?php
$reader = IOFactory::createReaderforFile(($this->media->isAbsolute ? '' : __DIR__ . '/../../../../../../') . $this->media->getPath());
$reader->setReadDataOnly(true);
$spreadsheet = $reader->load(($this->media->isAbsolute ? '' : __DIR__ . '/../../../../../../') . $this->media->getPath());
$writer = new Csv($spreadsheet);
$writer->setDelimiter(';');
$writer->setEnclosure('"');
$writer->setLineEnding("\n");
$writer->setUseBOM(true);
\ob_start();
$writer->save('php://output');
$data = \ob_get_clean();
$csv = \explode("\n", \trim($data, "\n"));
?>
<table class="default">
<?php
foreach ($csv as $line) {
$lineCsv = \str_getcsv($line, ';', '"');
if ($lineCsv === null) {
break;
}
echo '<tr>';
foreach ($lineCsv as $cell) {
if ($cell === null) {
break;
}
echo '<td>' . \htmlspecialchars($cell);
}
}
?>
</table>
</div>
</div>
</div>
</section>