🎉

【Omeka S モジュール紹介】BulkExport:アイテムの詳細画面にエクスポート機能を追加する

2023/10/17に公開

概要

BulkExportモジュールについて、以下の記事で、データを一括エクスポートする方法を紹介しました。

https://zenn.dev/nakamura196/articles/d139593d756dc6

本モジュールではアイテムの詳細画面にエクスポートボタンを表示する機能も提供されています。この機能の使い方について紹介します。

使い方

インストールの方法は一般的なモジュールの方法と同様です。上記の記事でも簡単に説明しています。

モジュールを有効化すると、以下のように、アイテムの詳細画面に各種フォーマットでのエクスポートリンクが表示されます。

表示する項目は、サイトごとの設定画面で変更できます。設定画面には以下のようにアクセスします。

設定画面で下のほうにスクロールすると、Bulk Exportに関する設定画面が表示され、Formatters to display in resource pagesなどの項目で設定を変更することができます。

エクスポートリンクの見た目を変更する

ここではエクスポートリンクの見た目を変更する方法について説明します。本来は新たなテーマを作成して、本モジュール用のファイルを作成すべきですが、今回はdefaultのテーマを使用します。

defaultのテーマは、以下のような場所にあります。

{Omeka Sのインストールディレクトリ}/themes/default

まず、このdefaultテーマの中に、BulkExportモジュールのファイルのコピーします。例えば以下です。

cd {Omeka Sのインストールディレクトリ}
mkdir themes/default/view/common
cp modules/BulkExport/view/common/bulk-export.phtml themes/default/view/common

バージョンによって内容は異なるかと思いますが、bulk-export.phtmlは以下のような内容になっています。

bulk-export.phtml
// Fake or invisible ids or no exporters.
if (!count($urls)) return;

$plugins = $this->getHelperPluginManager();
$url = $plugins->get('url');
$escape = $plugins->get('escapeHtml');
$assetUrl = $plugins->get('assetUrl');
$translate = $plugins->get('translate');
$escapeAttr = $plugins->get('escapeHtmlAttr');

$route = $this->status()->isAdminRequest() ? 'admin/resource-output' : 'site/resource-output';
$this->headLink()->appendStylesheet($assetUrl('css/bulk-export.css', 'BulkExport'));
?>

<div class="bulk-export <?= $divclass ?>">
    <?php if ($heading): ?>
    <h4><?= $escape($heading) ?></h4>
    <?php endif; ?>
    <ul class="exporters">
    <?php foreach ($exporters as $format => $label):
    $labelFormat = in_array($format, ['ods', 'xlsx', 'xls'])
? sprintf($translate('Download as spreadsheet %s'), $label)
: (in_array($format, ['bib.txt', 'bib.odt'])
? $translate('Download as text')
: sprintf($translate('Download as %s'), $label));
?>
<li><a download="download" class="exporter download-<?= str_replace('.', '-', $format) ?>" href="<?= $escapeAttr($urls[$format
]) ?>" title="<?= $escapeAttr($labelFormat) ?>"><?= $label ?></a></li>
<?php endforeach; ?>
</ul>
</div>

ここで、aタグの内容をボタンに変更してみます。

bulk-export.phtml
...
<li><button type=“button” onclick="location.href='<?= $escapeAttr($urls[$format
]) ?>'"><?= $label ?></button></li>
...

以下のように、表示が変わります。

その他、cssを用いることで、スタイルを変更することもできます。

まとめ

BulkExportモジュールの利用、およびモジュールの見た目をテーマで変更する際の参考になりましたら幸いです。

Discussion