😺

Omeka SのOaiPmhリポジトリモジュールにおいて、アイテムが公開されいているサイトページのURLを取得する

2024/07/14に公開

概要

Omeka SのOaiPmhリポジトリモジュールにおいて、アイテムが公開されいているサイトページのURLを取得する方法に関する備忘録です。

背景

以下の記事で、OaiPmhRepositoryを使った独自語彙の作成方法を紹介しています。

https://nakamura196.hatenablog.com/entry/2021/07/25/222651

こちらも参考にしてください。

アイテムが公開されいているサイトページのURLの取得

修正前

あるカスタマイズ事例において、以下のようにサイトページのURLを取得していました。以下は、Clean Urlモジュールにおいてdcterms:identifier以外が設定されている場合にはうまくいきません。また、/s/db/record/といったハードコーディングが見られます。

if ( $item->value( "dcterms:identifier" ) ) {            
    $this->appendNewElement($oai, 'curation:relation', self::prefix."/s/db/record/".(string)$item->value("dcterms:identifier")->value());
}

修正後

以下のようにシンプルに記述することができました。これにより、当該アイテムが複数のサイトで公開されていても対応することができます。

$sites = $item->sites();
foreach ($sites as $key => $site) {
    $siteSlug = $site->slug();
    $this->appendNewElement($oai, 'curation:relation', $item->siteUrl($siteSlug, true));
}

まとめ

Omeka Sを用いたOAI-PMHリポジトリの構築にあたり、参考になりましたら幸いです。

Discussion