👌
Omeka Sの検索結果に表示する項目を指定する
概要
以下のように、検索結果に表示する項目を指定する方法について説明します。
設定
デフォルトの設定では、以下のように、「見出し」にタイトル(dcterms:title)、「Body」に説明文(dcterms:description)が表示されます。
これに対して、サイトごとの設定画面の以下の箇所を変更することにより、「見出し」「Body」それぞれに表示する項目を設定することができます。
Advanced Searchの場合
Advanced Searchモジュールを使用している場合でも、この設定は引き継がれます。
以下でソースコードを確認できます。
browse_heading_property_term
とbrowse_body_property_term
の設定に基づき、表示項目が指定されています。
<?php
...
$headingTerm = $setting('browse_heading_property_term');
$bodyTerm = $setting('browse_body_property_term');
...
?>
<?php if ($title): ?>
<h3><?= $escape($title) ?></h3>
<?php endif; ?>
<ul class="resource-list search-results-list<?= $gridListMode === 'list_only' ? ' list' : ($gridListMode === 'grid_only' ? ' grid' : '') ?>">
<?php /** @var \Omeka\Api\Representation\AbstractResourceEntityRepresentation $resource */
foreach ($resources as $resource):
...
$heading = $headingTerm ? $resource->value($headingTerm, ['lang' => $langValue]) : null;
$heading = $heading ? $heading->asHtml() : $escape($resource->displayTitle($untitled, $lang));
$body = $bodyTerm ? $resource->value($bodyTerm, ['lang' => $langValue]) : null;
$body = $body ? $body->asHtml() : $escape($resource->displayDescription(null, $lang));
?>
<li class="resource <?= $resourceType ?>">
<div class="resource-thumbnail">
<?= $hyperlink->raw($resourceThumbnail, $resourceUrl, ['class' => 'resource-link']) ?>
</div>
<div class="resource-metadata">
<h4><?= $resource->linkRaw($heading) ?></h4>
<div class="description">
<?= $body ?>
</div>
</div>
</li>
<?php endforeach; ?>
</ul>
まとめ
Omeka Sの検索結果に表示する項目の指定にあたり、参考になりましたら幸いです。
Discussion