diff --git a/view/common/cross-site-search/advanced-item-form.phtml b/view/common/cross-site-search/advanced-item-form.phtml
new file mode 100644
index 0000000..ab3f285
--- /dev/null
+++ b/view/common/cross-site-search/advanced-item-form.phtml
@@ -0,0 +1,7 @@
+
diff --git a/view/common/cross-site-search/advanced-item-set-form.phtml b/view/common/cross-site-search/advanced-item-set-form.phtml
new file mode 100644
index 0000000..7726bb4
--- /dev/null
+++ b/view/common/cross-site-search/advanced-item-set-form.phtml
@@ -0,0 +1,7 @@
+
diff --git a/view/common/cross-site-search/fulltext-form.phtml b/view/common/cross-site-search/fulltext-form.phtml
new file mode 100644
index 0000000..a4fb4de
--- /dev/null
+++ b/view/common/cross-site-search/fulltext-form.phtml
@@ -0,0 +1,8 @@
+url(null, [], true);
+$fulltextSearch = $fulltextSearch ?? $this->params()->fromQuery('fulltext_search');
+?>
+
diff --git a/view/common/cross-site-search/item-results.phtml b/view/common/cross-site-search/item-results.phtml
new file mode 100644
index 0000000..15cceef
--- /dev/null
+++ b/view/common/cross-site-search/item-results.phtml
@@ -0,0 +1,28 @@
+params()->fromQuery('fulltext_search'); ?>
+hyperlink(
+ $this->translate('Advanced item search'),
+ $this->url(null, ['action' => 'items-advanced', 'class' => 'advanced-search'], ['query' => $this->params()->fromQuery()], true),
+ ['class' => 'advanced-search']
+); ?>
+
+translate('Item results for "%s"'), $fulltextSearch); ?>
+
+pagination(); ?>
+
+
+
+
+ sites(); ?>
+ -
+ displayTitle(); ?>
+
+
+ - hyperlink($site->title(), $item->siteUrl($site->slug())); ?>
+
+
+
+
+
+
+
+pagination(); ?>
diff --git a/view/common/cross-site-search/item-set-results.phtml b/view/common/cross-site-search/item-set-results.phtml
new file mode 100644
index 0000000..eaded79
--- /dev/null
+++ b/view/common/cross-site-search/item-set-results.phtml
@@ -0,0 +1,28 @@
+params()->fromQuery('fulltext_search'); ?>
+hyperlink(
+ $this->translate('Advanced item set search'),
+ $this->url(null, ['action' => 'item-sets-advanced', 'class' => 'advanced-search'], ['query' => $this->params()->fromQuery()], true),
+ ['class' => 'advanced-search']
+); ?>
+
+translate('Item set results for "%s"'), $fulltextSearch); ?>
+
+pagination(); ?>
+
+
+
+
+ sites(); ?>
+ -
+ displayTitle(); ?>
+
+
+ - hyperlink($site->title(), $itemSet->siteUrl($site->slug())); ?>
+
+
+
+
+
+
+
+pagination(); ?>
diff --git a/view/common/cross-site-search/results.phtml b/view/common/cross-site-search/results.phtml
new file mode 100644
index 0000000..bbdae2c
--- /dev/null
+++ b/view/common/cross-site-search/results.phtml
@@ -0,0 +1,100 @@
+params()->fromQuery('fulltext_search');
+$hasResults = false;
+?>
+
+translate('Search results for ā%sā'), $fulltextSearch); ?>
+
+common/cross-site-search/results.phtml
+
+getTotalResults()):
+ $hasResults = true;
+?>
+
+
translate('Site pages'); ?>
+
+ getContent() as $sitePage): ?>
+ site(); ?>
+ -
+ hyperlink($sitePage->title(), $sitePage->siteUrl()); ?>
+ hyperlink($site->title(), $site->siteUrl()); ?>
+
+
+
+ hyperlink(
+ sprintf($this->translate('View all results (%s total)'), $responseSitePages->getTotalResults()),
+ $this->url(
+ null,
+ ['action' => 'site-pages'],
+ ['query' => ['fulltext_search' => $fulltextSearch]],
+ true
+ )
+ ); ?>
+
+
+
+getTotalResults()):
+ $hasResults = true;
+?>
+
+
translate('Items'); ?>
+
+ getContent() as $item): ?>
+ sites(); ?>
+ -
+ displayTitle(); ?>
+
+
+ - hyperlink($site->title(), $item->siteUrl($site->slug())); ?>
+
+
+
+
+
+ hyperlink(
+ sprintf($this->translate('View all results (%s total)'), $responseItems->getTotalResults()),
+ $this->url(
+ null,
+ ['action' => 'items'],
+ ['query' => ['fulltext_search' => $fulltextSearch]],
+ true
+ )
+ ); ?>
+
+
+
+getTotalResults()):
+ $hasResults = true;
+?>
+
+
translate('Item sets'); ?>
+
+ getContent() as $itemSet): ?>
+ sites(); ?>
+ -
+ displayTitle(); ?>
+
+
+ - hyperlink($site->title(), $item->siteUrl($site->slug())); ?>
+
+
+
+
+
+ hyperlink(
+ sprintf($this->translate('View all results (%s total)'), $responseItemSets->getTotalResults()),
+ $this->url(
+ null,
+ ['action' => 'item-sets'],
+ ['query' => ['fulltext_search' => $fulltextSearch]],
+ true
+ )
+ ); ?>
+
+
+
+
+ translate('No result found'); ?>
+
diff --git a/view/common/cross-site-search/site-page-results.phtml b/view/common/cross-site-search/site-page-results.phtml
new file mode 100644
index 0000000..7994634
--- /dev/null
+++ b/view/common/cross-site-search/site-page-results.phtml
@@ -0,0 +1,15 @@
+params()->fromQuery('fulltext_search'); ?>
+
+
translate('Site page results for "%s"'), $fulltextSearch); ?>
+
+
+
+
+ site(); ?>
+ -
+ hyperlink($sitePage->title(), $sitePage->siteUrl()); ?>
+ hyperlink($site->title(), $site->siteUrl()); ?>
+
+
+
+
diff --git a/view/omeka/search/index.phtml b/view/omeka/search/index.phtml
new file mode 100644
index 0000000..07237f2
--- /dev/null
+++ b/view/omeka/search/index.phtml
@@ -0,0 +1,9 @@
+hyperlink($this->setting('installation_title', 'Omeka S'), $this->url('top', ['action' => 'index'])); ?>
+translate('Search'); ?>
+
+omeka/search/index.phtml
+
+partial(
+ 'common/cross-site-search/fulltext-form.phtml',
+ ['action' => $this->url(null, ['action' => 'results'], true)]
+); ?>
diff --git a/view/omeka/search/item-sets-advanced.phtml b/view/omeka/search/item-sets-advanced.phtml
new file mode 100644
index 0000000..1ed86e1
--- /dev/null
+++ b/view/omeka/search/item-sets-advanced.phtml
@@ -0,0 +1,7 @@
+hyperlink($this->setting('installation_title', 'Omeka S'), $this->url('top', ['action' => 'index'])); ?>
+translate('Advanced item set search'); ?>
+
+partial(
+ 'common/cross-site-search/advanced-item-set-form.phtml',
+ ['action' => $this->url(null, ['action' => 'results'], true)]
+); ?>
diff --git a/view/omeka/search/item-sets.phtml b/view/omeka/search/item-sets.phtml
new file mode 100644
index 0000000..527cbbe
--- /dev/null
+++ b/view/omeka/search/item-sets.phtml
@@ -0,0 +1,8 @@
+hyperlink($this->setting('installation_title', 'Omeka S'), $this->url('top', ['action' => 'index'])); ?>
+
+partial(
+ 'common/cross-site-search/fulltext-form.phtml',
+ ['action' => $this->url(null, ['action' => 'results'], true)]
+); ?>
+
+partial('common/cross-site-search/item-set-results.phtml'); ?>
diff --git a/view/omeka/search/items-advanced.phtml b/view/omeka/search/items-advanced.phtml
new file mode 100644
index 0000000..b9d11d7
--- /dev/null
+++ b/view/omeka/search/items-advanced.phtml
@@ -0,0 +1,7 @@
+hyperlink($this->setting('installation_title', 'Omeka S'), $this->url('top', ['action' => 'index'])); ?>
+translate('Advanced item search'); ?>
+
+partial(
+ 'common/cross-site-search/advanced-item-form.phtml',
+ ['action' => $this->url(null, ['action' => 'results'], true)]
+); ?>
diff --git a/view/omeka/search/items.phtml b/view/omeka/search/items.phtml
new file mode 100644
index 0000000..1b25f4a
--- /dev/null
+++ b/view/omeka/search/items.phtml
@@ -0,0 +1,8 @@
+hyperlink($this->setting('installation_title', 'Omeka S'), $this->url('top', ['action' => 'index'])); ?>
+
+partial(
+ 'common/cross-site-search/fulltext-form.phtml',
+ ['action' => $this->url(null, ['action' => 'results'], true)]
+); ?>
+
+partial('common/cross-site-search/item-results.phtml'); ?>
diff --git a/view/omeka/search/results.phtml b/view/omeka/search/results.phtml
new file mode 100644
index 0000000..66f8136
--- /dev/null
+++ b/view/omeka/search/results.phtml
@@ -0,0 +1,10 @@
+hyperlink($this->setting('installation_title', 'Omeka S'), $this->url('top', ['action' => 'index'])); ?>
+
+partial(
+ 'common/cross-site-search/fulltext-form.phtml',
+ ['action' => $this->url(null, ['action' => 'results'], true)]
+); ?>
+
+omeka/search/results.phtml
+
+partial('common/cross-site-search/results.phtml'); ?>
diff --git a/view/omeka/search/site-pages.phtml b/view/omeka/search/site-pages.phtml
new file mode 100644
index 0000000..5647cc3
--- /dev/null
+++ b/view/omeka/search/site-pages.phtml
@@ -0,0 +1,10 @@
+hyperlink($this->setting('installation_title', 'Omeka S'), $this->url('top', ['action' => 'index'])); ?>
+
+omeka/search/site-pages.phtml
+
+partial(
+ 'common/cross-site-search/fulltext-form.phtml',
+ ['action' => $this->url(null, ['action' => 'results'], true)]
+); ?>
+
+partial('common/cross-site-search/site-page-results.phtml'); ?>
diff --git a/view/omeka/site/index.phtml b/view/omeka/site/index.phtml
index e39c939..36cbcee 100644
--- a/view/omeka/site/index.phtml
+++ b/view/omeka/site/index.phtml
@@ -17,16 +17,43 @@ $this->headTitle($subtitle);
['action' => $this->url('search', ['action' => 'results'], true)]
); ?>
-Archive site list
+getHelperPluginManager()->get('archiveSiteMeta');
+$collections = $archiveSiteHelper->getCollections();
+?>
+Collections
+
+
+ $collection_name){ ?>
+ = $collection_name ?>
+
+
+
-
+
+
partial('common/site-list-entry', ['site' => $site, 'showSummary' => true]);
+ $site_meta_values = $archiveSiteHelper->getSiteMetaValues($site);
+?>
+
+
+ hyperlink($site->title(), $site->siteUrl(), ['class' => 'site-link']); ?>
+
summary()); ?>
+
siteUrl(); ?>
+
+
+ currator = = $site_meta_values['currator']; ?>
+ thumbnail = = $site_meta_values['thumbnail']; ?>
+ project_date = = $site_meta_values['project_date']; ?>
+ collection = = $collections[$site_meta_values['collection']]; ?>
+
+
+
diff --git a/view/omeka/site/page/show.phtml b/view/omeka/site/page/show.phtml
index 320b787..5230cc1 100644
--- a/view/omeka/site/page/show.phtml
+++ b/view/omeka/site/page/show.phtml
@@ -7,7 +7,7 @@ $showPagePagination = $this->siteSetting('show_page_pagination', true);
getHelperPluginManager()->get('pageMeta')->getPageImage($page);
+$img_src = $this->getHelperPluginManager()->get('archiveSiteMeta')->getPageImage($page);
if ($img_src) {
?>