first commit
This commit is contained in:
commit
019537dcc7
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.DS_Store
|
||||
bower_components
|
||||
node_modules
|
||||
npm-debug.log
|
5
CHANGELOG.md
Normal file
5
CHANGELOG.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Changelog
|
||||
|
||||
## Version 1.0 (November 19, 2015)
|
||||
|
||||
Initial release.
|
81
README.md
Normal file
81
README.md
Normal file
|
@ -0,0 +1,81 @@
|
|||
# Foundation S
|
||||
|
||||
This is an Omeka S theme based on ZURB Foundation Sites. It currently comes with a default stylesheet for prototyping as well as 3 other style options.
|
||||
|
||||
## Installation
|
||||
|
||||
For basic out-of-the-box use of the theme, follow the [Omeka S User Manual instructions for installing themes](https://omeka.org/s/docs/user-manual/sites/site_theme/#installing-themes).
|
||||
|
||||
For more advanced use, such as customizing the theme with Sass, you'll need to install the tools with [NodeJS](https://nodejs.org/en/) (0.12 or greater). Navigate to your theme directory and run `npm install`.
|
||||
|
||||
## Theme Configuration
|
||||
|
||||
* **Stylesheet**: The theme provides 4 style options.
|
||||
* **Default** uses ZURB Foundation's default styles for prototyping, which are all viewable in their documentation under the [Kitchen Sink](https://get.foundation/sites/docs/kitchen-sink.html).
|
||||
* **Revolution** aims to capture the feel of old documents and juxtaposes it with a bright red accent. It includes a textured paper background image.
|
||||
* **Sea Foam** offers a clean, friendly look with a teal palette.
|
||||
* **Inkwell** features a high contrast serif family for its typography, as well as sunny yellow accents.
|
||||
* **Navigation layouts**: Global navigation can display as a **horizontal top bar with optional dropdown menus** or a **left vertical column**.
|
||||
* **Show Top Navigation Child Pages**: Toggle display of child pages within the main navigation.
|
||||
* **Top Navigation Depth**: If the main navigation is set to display child pages, this setting controls how many navigation levels to display. Setting this to '0' shows all levels.
|
||||
* **Logo**: Upload an image asset to use as a logo in place of a text site title.
|
||||
* **Footer Content**: Control what appears in the footer. This field takes HTML markup.
|
||||
* **Layout for Browse Pages**: Select how to display items within their "browse" views.
|
||||
* **Grid**: Items are organized into rows and columns. This is recommended for items that prominently feature images.
|
||||
* **List**: Items are stacked into a single column.
|
||||
* **Toggle (default: grid)**: Site visitors can choose to display the browse views as grids or lists, and grids are the default.
|
||||
* **Toggle (default: list)**: Site visitors can choose to display the browse views as grids or lists, and lists are the default.
|
||||
* **Layout for Show Pages**: Resource metadata can show display as **stacked** with properties as headings above their values, or **inline** with properties as headings inline with their values.
|
||||
|
||||
## Customizing the Theme
|
||||
|
||||
For those dipping their toes into customizing sites with CSS, the [CSS Editor](https://omeka.org/s/modules/CSSEditor/) module allows site administrators to write style overrides.
|
||||
|
||||
For advanced CSS and Sass users, Foundation S uses ZURB Foundation Site's toolkit that includes variables and mixins for managing and extending many styles.
|
||||
|
||||
### Sass Tasks
|
||||
|
||||
Run these commands within the theme's root directory.
|
||||
|
||||
* **npm start**: While this task runs, it watches for changes to sass files and recompiles the CSS.
|
||||
* **gulp sass**: This is the one-off task for compiling the current Sass/CSS.
|
||||
|
||||
### Sass File Structure
|
||||
|
||||
Foundation S comes with the Default theme, as well as 3 other customized stylesheets that were built on top of Default. The "Sea Foam" theme has the fewest overrides and is thus the easiest reference for a custom theme model.
|
||||
|
||||
**/asset/sass/seafoam.scss**
|
||||
|
||||
```
|
||||
@charset 'utf-8';
|
||||
|
||||
@import 'globals-default';
|
||||
@import 'globals-seafoam';
|
||||
@import 'settings';
|
||||
|
||||
// Sea Foam Settings
|
||||
|
||||
$topbar-background: $primary-color;
|
||||
|
||||
$thumbnail-border: 4px solid $secondary-color;
|
||||
$thumbnail-shadow: none;
|
||||
$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
|
||||
|
||||
$button-background: $secondary-color;
|
||||
$button-color: $primary-color;
|
||||
|
||||
@import 'foundation-core';
|
||||
@import 'omeka';
|
||||
|
||||
header a {
|
||||
color: $white;
|
||||
}
|
||||
```
|
||||
|
||||
Much of the customizability within the theme lies in managing its settings variables. ZURB Foundation's default global variables from their original `_settings.scss` all sit in `_globals-default.scss`. Many of these variables are used throughout the rest of `_settings.scss`, so it was necessary to separate them out into their own file if the theme writer wants to set their own global variables. Here all the overrides live in `_globals-seafoam.scss`, and so all overridden values will be appropriately updated for use throughout the rest of `_settings.scss`.
|
||||
|
||||
Any non-global setting variable overrides should come after the import for `_settings.scss` and before their usagee in the rule files, `_foundation-core.scss`, and `_omeka.scss`.
|
||||
|
||||
ZURB Foundation's default style rules are all managed in `_foundation-core.scss`. All style rules specific to Omeka S are contained within `_omeka.scss`.
|
||||
|
||||
After all those imports come all style rules specific to the theme.
|
1
asset/css/app.css
Normal file
1
asset/css/app.css
Normal file
File diff suppressed because one or more lines are too long
1
asset/css/default.css
Normal file
1
asset/css/default.css
Normal file
File diff suppressed because one or more lines are too long
1
asset/css/inkwell.css
Normal file
1
asset/css/inkwell.css
Normal file
File diff suppressed because one or more lines are too long
1
asset/css/revolution.css
Normal file
1
asset/css/revolution.css
Normal file
File diff suppressed because one or more lines are too long
1
asset/css/seafoam.css
Normal file
1
asset/css/seafoam.css
Normal file
File diff suppressed because one or more lines are too long
BIN
asset/img/revolution-bg.jpg
Normal file
BIN
asset/img/revolution-bg.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
BIN
asset/img/revolution-fade.png
Normal file
BIN
asset/img/revolution-fade.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
16
asset/js/browse.js
Normal file
16
asset/js/browse.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
(function($) {
|
||||
$(document).ready(function() {
|
||||
$('.layout-toggle button').click(function() {
|
||||
$('.layout-toggle button:disabled').removeAttr('disabled');
|
||||
$(this).attr('disabled', true);
|
||||
$('.resources').toggleClass('resource-list').toggleClass('resource-grid');
|
||||
$('.resources .resource').toggleClass('media-object');
|
||||
$('.resource-meta, .resource-image').toggleClass('media-object-section');
|
||||
});
|
||||
|
||||
$('.browse-toggle').click(function() {
|
||||
$('.browse-controls').toggleClass('open closed');
|
||||
$(this).toggleClass('open closed');
|
||||
});
|
||||
});
|
||||
})(jQuery)
|
61
asset/scss/_foundation-core.scss
Normal file
61
asset/scss/_foundation-core.scss
Normal file
|
@ -0,0 +1,61 @@
|
|||
@import 'foundation';
|
||||
@import 'motion-ui';
|
||||
|
||||
// Global styles
|
||||
@include foundation-global-styles;
|
||||
@include foundation-forms;
|
||||
@include foundation-typography;
|
||||
|
||||
// Grids (choose one)
|
||||
@include foundation-xy-grid-classes;
|
||||
// @include foundation-grid;
|
||||
// @include foundation-flex-grid;
|
||||
|
||||
// Generic components
|
||||
@include foundation-button;
|
||||
@include foundation-button-group;
|
||||
@include foundation-close-button;
|
||||
@include foundation-label;
|
||||
@include foundation-progress-bar;
|
||||
@include foundation-slider;
|
||||
@include foundation-switch;
|
||||
@include foundation-table;
|
||||
// Basic components
|
||||
@include foundation-badge;
|
||||
@include foundation-breadcrumbs;
|
||||
@include foundation-callout;
|
||||
@include foundation-card;
|
||||
@include foundation-dropdown;
|
||||
@include foundation-pagination;
|
||||
@include foundation-tooltip;
|
||||
|
||||
// Containers
|
||||
@include foundation-accordion;
|
||||
@include foundation-media-object;
|
||||
@include foundation-orbit;
|
||||
@include foundation-responsive-embed;
|
||||
@include foundation-tabs;
|
||||
@include foundation-thumbnail;
|
||||
// Menu-based containers
|
||||
@include foundation-menu;
|
||||
@include foundation-menu-icon;
|
||||
@include foundation-accordion-menu;
|
||||
@include foundation-drilldown-menu;
|
||||
@include foundation-dropdown-menu;
|
||||
|
||||
// Layout components
|
||||
@include foundation-off-canvas;
|
||||
@include foundation-reveal;
|
||||
@include foundation-sticky;
|
||||
@include foundation-title-bar;
|
||||
@include foundation-top-bar;
|
||||
|
||||
// Helpers
|
||||
@include foundation-float-classes;
|
||||
@include foundation-flex-classes;
|
||||
@include foundation-visibility-classes;
|
||||
// @include foundation-prototype-classes;
|
||||
|
||||
// Motion UI
|
||||
@include motion-ui-transitions;
|
||||
@include motion-ui-animations;
|
35
asset/scss/_globals-default.scss
Normal file
35
asset/scss/_globals-default.scss
Normal file
|
@ -0,0 +1,35 @@
|
|||
@import "util/util";
|
||||
|
||||
$global-font-size: 100%;
|
||||
$global-width: rem-calc(1200);
|
||||
$global-lineheight: 1.5;
|
||||
$foundation-palette: (
|
||||
primary: #1779ba,
|
||||
secondary: #767676,
|
||||
success: #3adb76,
|
||||
warning: #ffae00,
|
||||
alert: #cc4b37,
|
||||
);
|
||||
$light-gray: #e6e6e6;
|
||||
$medium-gray: #cacaca;
|
||||
$dark-gray: #8a8a8a;
|
||||
$black: #0a0a0a;
|
||||
$white: #fefefe;
|
||||
$body-background: $white;
|
||||
$body-font-color: $black;
|
||||
$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;
|
||||
$body-antialiased: true;
|
||||
$global-margin: 1rem;
|
||||
$global-padding: 1rem;
|
||||
$global-position: 1rem;
|
||||
$global-weight-normal: normal;
|
||||
$global-weight-bold: bold;
|
||||
$global-radius: 0;
|
||||
$global-menu-padding: 0.7rem 1rem;
|
||||
$global-menu-nested-margin: 1rem;
|
||||
$global-text-direction: ltr;
|
||||
$global-flexbox: true;
|
||||
$global-prototype-breakpoints: false;
|
||||
$global-button-cursor: auto;
|
||||
$global-color-pick-contrast-tolerance: 0;
|
||||
$print-transparent-backgrounds: true;
|
12
asset/scss/_globals-inkwell.scss
Normal file
12
asset/scss/_globals-inkwell.scss
Normal file
|
@ -0,0 +1,12 @@
|
|||
@import "util/util";
|
||||
@import url('https://fonts.googleapis.com/css?family=EB+Garamond:400,400i,700,700i|Playfair+Display:400,400i&display=swap');
|
||||
|
||||
$foundation-palette: (
|
||||
primary: #ffcc00,
|
||||
secondary: #c5f4f2,
|
||||
success: #3adb76,
|
||||
warning: #ffae00,
|
||||
alert: #cc4b37,
|
||||
);
|
||||
$global-font-size: 18px;
|
||||
$body-font-family: 'EB Garamond', serif;
|
15
asset/scss/_globals-revolution.scss
Normal file
15
asset/scss/_globals-revolution.scss
Normal file
|
@ -0,0 +1,15 @@
|
|||
@import "util/util";
|
||||
@import url('https://fonts.googleapis.com/css?family=IM+Fell+DW+Pica:400,400i|IM+Fell+English+SC|Lusitana:400,700&display=swap');
|
||||
|
||||
$brown: #520603;
|
||||
$red: #dd231b;
|
||||
$gold: #e8bf00;
|
||||
$foundation-palette: (
|
||||
primary: $red,
|
||||
secondary: $gold,
|
||||
success: #3adb76,
|
||||
warning: #ffae00,
|
||||
alert: #cc4b37,
|
||||
);
|
||||
$body-font-color: $brown;
|
||||
$body-font-family: 'Lusitana', serif;
|
11
asset/scss/_globals-seafoam.scss
Normal file
11
asset/scss/_globals-seafoam.scss
Normal file
|
@ -0,0 +1,11 @@
|
|||
@import "util/util";
|
||||
@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,900,900i&display=swap');
|
||||
|
||||
$foundation-palette: (
|
||||
primary: #007a76,
|
||||
secondary: #c5f4f2,
|
||||
success: #3adb76,
|
||||
warning: #ffae00,
|
||||
alert: #cc4b37,
|
||||
);
|
||||
$body-font-family: 'Source Sans Pro', sans-serif;
|
1085
asset/scss/_omeka.scss
Normal file
1085
asset/scss/_omeka.scss
Normal file
File diff suppressed because it is too large
Load diff
837
asset/scss/_settings.scss
Normal file
837
asset/scss/_settings.scss
Normal file
|
@ -0,0 +1,837 @@
|
|||
// Foundation for Sites Settings
|
||||
// -----------------------------
|
||||
//
|
||||
// Table of Contents:
|
||||
//
|
||||
// 1. Global
|
||||
// 2. Breakpoints
|
||||
// 3. The Grid
|
||||
// 4. Base Typography
|
||||
// 5. Typography Helpers
|
||||
// 6. Abide
|
||||
// 7. Accordion
|
||||
// 8. Accordion Menu
|
||||
// 9. Badge
|
||||
// 10. Breadcrumbs
|
||||
// 11. Button
|
||||
// 12. Button Group
|
||||
// 13. Callout
|
||||
// 14. Card
|
||||
// 15. Close Button
|
||||
// 16. Drilldown
|
||||
// 17. Dropdown
|
||||
// 18. Dropdown Menu
|
||||
// 19. Flexbox Utilities
|
||||
// 20. Forms
|
||||
// 21. Label
|
||||
// 22. Media Object
|
||||
// 23. Menu
|
||||
// 24. Meter
|
||||
// 25. Off-canvas
|
||||
// 26. Orbit
|
||||
// 27. Pagination
|
||||
// 28. Progress Bar
|
||||
// 29. Prototype Arrow
|
||||
// 30. Prototype Border-Box
|
||||
// 31. Prototype Border-None
|
||||
// 32. Prototype Bordered
|
||||
// 33. Prototype Display
|
||||
// 34. Prototype Font-Styling
|
||||
// 35. Prototype List-Style-Type
|
||||
// 36. Prototype Overflow
|
||||
// 37. Prototype Position
|
||||
// 38. Prototype Rounded
|
||||
// 39. Prototype Separator
|
||||
// 40. Prototype Shadow
|
||||
// 41. Prototype Sizing
|
||||
// 42. Prototype Spacing
|
||||
// 43. Prototype Text-Decoration
|
||||
// 44. Prototype Text-Transformation
|
||||
// 45. Prototype Text-Utilities
|
||||
// 46. Responsive Embed
|
||||
// 47. Reveal
|
||||
// 48. Slider
|
||||
// 49. Switch
|
||||
// 50. Table
|
||||
// 51. Tabs
|
||||
// 52. Thumbnail
|
||||
// 53. Title Bar
|
||||
// 54. Tooltip
|
||||
// 55. Top Bar
|
||||
// 56. Xy Grid
|
||||
|
||||
@import 'util/util';
|
||||
|
||||
// 1. Global
|
||||
// ---------
|
||||
|
||||
// Organized by theme: `_globals-THEME.scss`
|
||||
|
||||
@include add-foundation-colors;
|
||||
$print-hrefs: true;
|
||||
|
||||
// 2. Breakpoints
|
||||
// --------------
|
||||
|
||||
$breakpoints: (
|
||||
small: 0,
|
||||
medium: 640px,
|
||||
large: 1024px,
|
||||
xlarge: 1200px,
|
||||
xxlarge: 1440px,
|
||||
);
|
||||
$print-breakpoint: large;
|
||||
$breakpoint-classes: (small medium large);
|
||||
|
||||
// 3. The Grid
|
||||
// -----------
|
||||
|
||||
$grid-row-width: $global-width;
|
||||
$grid-column-count: 12;
|
||||
$grid-column-gutter: (
|
||||
small: 20px,
|
||||
medium: 30px,
|
||||
);
|
||||
$grid-column-align-edge: true;
|
||||
$grid-column-alias: 'columns';
|
||||
$block-grid-max: 8;
|
||||
|
||||
// 4. Base Typography
|
||||
// ------------------
|
||||
|
||||
$header-font-family: $body-font-family;
|
||||
$header-font-weight: $global-weight-normal;
|
||||
$header-font-style: normal;
|
||||
$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace;
|
||||
$header-color: inherit;
|
||||
$header-lineheight: 1.4;
|
||||
$header-margin-bottom: 0.5rem;
|
||||
$header-styles: (
|
||||
small: (
|
||||
'h1': ('font-size': 24),
|
||||
'h2': ('font-size': 20),
|
||||
'h3': ('font-size': 19),
|
||||
'h4': ('font-size': 18),
|
||||
'h5': ('font-size': 17),
|
||||
'h6': ('font-size': 16),
|
||||
),
|
||||
medium: (
|
||||
'h1': ('font-size': 48),
|
||||
'h2': ('font-size': 40),
|
||||
'h3': ('font-size': 31),
|
||||
'h4': ('font-size': 25),
|
||||
'h5': ('font-size': 20),
|
||||
'h6': ('font-size': 16),
|
||||
),
|
||||
);
|
||||
$header-text-rendering: optimizeLegibility;
|
||||
$small-font-size: 80%;
|
||||
$header-small-font-color: $medium-gray;
|
||||
$paragraph-lineheight: 1.6;
|
||||
$paragraph-margin-bottom: 1rem;
|
||||
$paragraph-text-rendering: optimizeLegibility;
|
||||
$code-color: $black;
|
||||
$code-font-family: $font-family-monospace;
|
||||
$code-font-weight: $global-weight-normal;
|
||||
$code-background: $light-gray;
|
||||
$code-border: 1px solid $medium-gray;
|
||||
$code-padding: rem-calc(2 5 1);
|
||||
$anchor-color: $primary-color;
|
||||
$anchor-color-hover: scale-color($anchor-color, $lightness: -14%);
|
||||
$anchor-text-decoration: none;
|
||||
$anchor-text-decoration-hover: none;
|
||||
$hr-width: $global-width;
|
||||
$hr-border: 1px solid $medium-gray;
|
||||
$hr-margin: rem-calc(20) auto;
|
||||
$list-lineheight: $paragraph-lineheight;
|
||||
$list-margin-bottom: $paragraph-margin-bottom;
|
||||
$list-style-type: disc;
|
||||
$list-style-position: outside;
|
||||
$list-side-margin: 1.25rem;
|
||||
$list-nested-side-margin: 1.25rem;
|
||||
$defnlist-margin-bottom: 1rem;
|
||||
$defnlist-term-weight: $global-weight-bold;
|
||||
$defnlist-term-margin-bottom: 0.3rem;
|
||||
$blockquote-color: $dark-gray;
|
||||
$blockquote-padding: rem-calc(9 20 0 19);
|
||||
$blockquote-border: 1px solid $medium-gray;
|
||||
$cite-font-size: rem-calc(13);
|
||||
$cite-color: $dark-gray;
|
||||
$cite-pseudo-content: '\2014 \0020';
|
||||
$keystroke-font: $font-family-monospace;
|
||||
$keystroke-color: $black;
|
||||
$keystroke-background: $light-gray;
|
||||
$keystroke-padding: rem-calc(2 4 0);
|
||||
$keystroke-radius: $global-radius;
|
||||
$abbr-underline: 1px dotted $black;
|
||||
|
||||
// 5. Typography Helpers
|
||||
// ---------------------
|
||||
|
||||
$lead-font-size: $global-font-size * 1.25;
|
||||
$lead-lineheight: 1.6;
|
||||
$subheader-lineheight: 1.4;
|
||||
$subheader-color: $dark-gray;
|
||||
$subheader-font-weight: $global-weight-normal;
|
||||
$subheader-margin-top: 0.2rem;
|
||||
$subheader-margin-bottom: 0.5rem;
|
||||
$stat-font-size: 2.5rem;
|
||||
|
||||
// 6. Abide
|
||||
// --------
|
||||
|
||||
$abide-inputs: true;
|
||||
$abide-labels: true;
|
||||
$input-background-invalid: get-color(alert);
|
||||
$form-label-color-invalid: get-color(alert);
|
||||
$input-error-color: get-color(alert);
|
||||
$input-error-font-size: rem-calc(12);
|
||||
$input-error-font-weight: $global-weight-bold;
|
||||
|
||||
// 7. Accordion
|
||||
// ------------
|
||||
|
||||
$accordion-background: $white;
|
||||
$accordion-plusminus: true;
|
||||
$accordion-title-font-size: rem-calc(12);
|
||||
$accordion-item-color: $primary-color;
|
||||
$accordion-item-background-hover: $light-gray;
|
||||
$accordion-item-padding: 1.25rem 1rem;
|
||||
$accordion-content-background: $white;
|
||||
$accordion-content-border: 1px solid $light-gray;
|
||||
$accordion-content-color: $body-font-color;
|
||||
$accordion-content-padding: 1rem;
|
||||
|
||||
// 8. Accordion Menu
|
||||
// -----------------
|
||||
|
||||
$accordionmenu-padding: $global-menu-padding;
|
||||
$accordionmenu-nested-margin: $global-menu-nested-margin;
|
||||
$accordionmenu-submenu-padding: $accordionmenu-padding;
|
||||
$accordionmenu-arrows: true;
|
||||
$accordionmenu-arrow-color: $primary-color;
|
||||
$accordionmenu-item-background: null;
|
||||
$accordionmenu-border: null;
|
||||
$accordionmenu-submenu-toggle-background: null;
|
||||
$accordion-submenu-toggle-border: $accordionmenu-border;
|
||||
$accordionmenu-submenu-toggle-width: 40px;
|
||||
$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width;
|
||||
$accordionmenu-arrow-size: 6px;
|
||||
|
||||
// 9. Badge
|
||||
// --------
|
||||
|
||||
$badge-background: $primary-color;
|
||||
$badge-color: $white;
|
||||
$badge-color-alt: $black;
|
||||
$badge-palette: $foundation-palette;
|
||||
$badge-padding: 0.3em;
|
||||
$badge-minwidth: 2.1em;
|
||||
$badge-font-size: 0.6rem;
|
||||
|
||||
// 10. Breadcrumbs
|
||||
// ---------------
|
||||
|
||||
$breadcrumbs-margin: 0 0 $global-margin 0;
|
||||
$breadcrumbs-item-font-size: rem-calc(11);
|
||||
$breadcrumbs-item-color: $primary-color;
|
||||
$breadcrumbs-item-color-current: $black;
|
||||
$breadcrumbs-item-color-disabled: $medium-gray;
|
||||
$breadcrumbs-item-margin: 0.75rem;
|
||||
$breadcrumbs-item-uppercase: true;
|
||||
$breadcrumbs-item-separator: true;
|
||||
$breadcrumbs-item-separator-item: '/';
|
||||
$breadcrumbs-item-separator-item-rtl: '\\';
|
||||
$breadcrumbs-item-separator-color: $medium-gray;
|
||||
|
||||
// 11. Button
|
||||
// ----------
|
||||
|
||||
$button-font-family: inherit;
|
||||
$button-padding: 0.85em 1em;
|
||||
$button-margin: 0 0 $global-margin 0;
|
||||
$button-fill: solid;
|
||||
$button-background: $primary-color;
|
||||
$button-background-hover: scale-color($button-background, $lightness: -15%);
|
||||
$button-color: $white;
|
||||
$button-color-alt: $black;
|
||||
$button-radius: $global-radius;
|
||||
$button-hollow-border-width: 1px;
|
||||
$button-sizes: (
|
||||
tiny: 0.6rem,
|
||||
small: 0.75rem,
|
||||
default: 0.9rem,
|
||||
large: 1.25rem,
|
||||
);
|
||||
$button-palette: $foundation-palette;
|
||||
$button-opacity-disabled: 0.25;
|
||||
$button-background-hover-lightness: -20%;
|
||||
$button-hollow-hover-lightness: -50%;
|
||||
$button-transition: background-color 0.25s ease-out, color 0.25s ease-out;
|
||||
$button-responsive-expanded: false;
|
||||
|
||||
// 12. Button Group
|
||||
// ----------------
|
||||
|
||||
$buttongroup-margin: 1rem;
|
||||
$buttongroup-spacing: 1px;
|
||||
$buttongroup-child-selector: '.button';
|
||||
$buttongroup-expand-max: 6;
|
||||
$buttongroup-radius-on-each: true;
|
||||
|
||||
// 13. Callout
|
||||
// -----------
|
||||
|
||||
$callout-background: $white;
|
||||
$callout-background-fade: 85%;
|
||||
$callout-border: 1px solid rgba($black, 0.25);
|
||||
$callout-margin: 0 0 1rem 0;
|
||||
$callout-padding: 1rem;
|
||||
$callout-font-color: $body-font-color;
|
||||
$callout-font-color-alt: $body-background;
|
||||
$callout-radius: $global-radius;
|
||||
$callout-link-tint: 30%;
|
||||
|
||||
// 14. Card
|
||||
// --------
|
||||
|
||||
$card-background: $white;
|
||||
$card-font-color: $body-font-color;
|
||||
$card-divider-background: $light-gray;
|
||||
$card-border: 1px solid $light-gray;
|
||||
$card-shadow: none;
|
||||
$card-border-radius: $global-radius;
|
||||
$card-padding: $global-padding;
|
||||
$card-margin-bottom: $global-margin;
|
||||
|
||||
// 15. Close Button
|
||||
// ----------------
|
||||
|
||||
$closebutton-position: right top;
|
||||
$closebutton-offset-horizontal: (
|
||||
small: 0.66rem,
|
||||
medium: 1rem,
|
||||
);
|
||||
$closebutton-offset-vertical: (
|
||||
small: 0.33em,
|
||||
medium: 0.5rem,
|
||||
);
|
||||
$closebutton-size: (
|
||||
small: 1.5em,
|
||||
medium: 2em,
|
||||
);
|
||||
$closebutton-lineheight: 1;
|
||||
$closebutton-color: $dark-gray;
|
||||
$closebutton-color-hover: $black;
|
||||
|
||||
// 16. Drilldown
|
||||
// -------------
|
||||
|
||||
$drilldown-transition: transform 0.15s linear;
|
||||
$drilldown-arrows: true;
|
||||
$drilldown-padding: $global-menu-padding;
|
||||
$drilldown-nested-margin: 0;
|
||||
$drilldown-background: $white;
|
||||
$drilldown-submenu-padding: $drilldown-padding;
|
||||
$drilldown-submenu-background: $white;
|
||||
$drilldown-arrow-color: $primary-color;
|
||||
$drilldown-arrow-size: 6px;
|
||||
|
||||
// 17. Dropdown
|
||||
// ------------
|
||||
|
||||
$dropdown-padding: 1rem;
|
||||
$dropdown-background: $body-background;
|
||||
$dropdown-border: 1px solid $medium-gray;
|
||||
$dropdown-font-size: 1rem;
|
||||
$dropdown-width: 300px;
|
||||
$dropdown-radius: $global-radius;
|
||||
$dropdown-sizes: (
|
||||
tiny: 100px,
|
||||
small: 200px,
|
||||
large: 400px,
|
||||
);
|
||||
|
||||
// 18. Dropdown Menu
|
||||
// -----------------
|
||||
|
||||
$dropdownmenu-arrows: true;
|
||||
$dropdownmenu-arrow-color: $anchor-color;
|
||||
$dropdownmenu-arrow-size: 6px;
|
||||
$dropdownmenu-arrow-padding: 1.5rem;
|
||||
$dropdownmenu-min-width: 200px;
|
||||
$dropdownmenu-background: null;
|
||||
$dropdownmenu-submenu-background: $white;
|
||||
$dropdownmenu-padding: $global-menu-padding;
|
||||
$dropdownmenu-nested-margin: 0;
|
||||
$dropdownmenu-submenu-padding: $dropdownmenu-padding;
|
||||
$dropdownmenu-border: 1px solid $medium-gray;
|
||||
$dropdown-menu-item-color-active: get-color(primary);
|
||||
$dropdown-menu-item-background-active: transparent;
|
||||
|
||||
// 19. Flexbox Utilities
|
||||
// ---------------------
|
||||
|
||||
$flex-source-ordering-count: 6;
|
||||
$flexbox-responsive-breakpoints: true;
|
||||
|
||||
// 20. Forms
|
||||
// ---------
|
||||
|
||||
$fieldset-border: 1px solid $medium-gray;
|
||||
$fieldset-padding: rem-calc(20);
|
||||
$fieldset-margin: rem-calc(18 0);
|
||||
$legend-padding: rem-calc(0 3);
|
||||
$form-spacing: rem-calc(16);
|
||||
$helptext-color: $black;
|
||||
$helptext-font-size: rem-calc(13);
|
||||
$helptext-font-style: italic;
|
||||
$input-prefix-color: $black;
|
||||
$input-prefix-background: $light-gray;
|
||||
$input-prefix-border: 1px solid $medium-gray;
|
||||
$input-prefix-padding: 1rem;
|
||||
$form-label-color: $black;
|
||||
$form-label-font-size: rem-calc(14);
|
||||
$form-label-font-weight: $global-weight-normal;
|
||||
$form-label-line-height: 1.8;
|
||||
$select-background: $white;
|
||||
$select-triangle-color: $dark-gray;
|
||||
$select-radius: $global-radius;
|
||||
$input-color: $black;
|
||||
$input-placeholder-color: $medium-gray;
|
||||
$input-font-family: inherit;
|
||||
$input-font-size: rem-calc(16);
|
||||
$input-font-weight: $global-weight-normal;
|
||||
$input-line-height: $global-lineheight;
|
||||
$input-background: $white;
|
||||
$input-background-focus: $white;
|
||||
$input-background-disabled: $light-gray;
|
||||
$input-border: 1px solid $medium-gray;
|
||||
$input-border-focus: 1px solid $dark-gray;
|
||||
$input-padding: $form-spacing / 2;
|
||||
$input-shadow: inset 0 1px 2px rgba($black, 0.1);
|
||||
$input-shadow-focus: 0 0 5px $medium-gray;
|
||||
$input-cursor-disabled: not-allowed;
|
||||
$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
|
||||
$input-number-spinners: true;
|
||||
$input-radius: $global-radius;
|
||||
$form-button-radius: $global-radius;
|
||||
|
||||
// 21. Label
|
||||
// ---------
|
||||
|
||||
$label-background: $primary-color;
|
||||
$label-color: $white;
|
||||
$label-color-alt: $black;
|
||||
$label-palette: $foundation-palette;
|
||||
$label-font-size: 0.8rem;
|
||||
$label-padding: 0.33333rem 0.5rem;
|
||||
$label-radius: $global-radius;
|
||||
|
||||
// 22. Media Object
|
||||
// ----------------
|
||||
|
||||
$mediaobject-margin-bottom: $global-margin;
|
||||
$mediaobject-section-padding: $global-padding;
|
||||
$mediaobject-image-width-stacked: 100%;
|
||||
|
||||
// 23. Menu
|
||||
// --------
|
||||
|
||||
$menu-margin: 0;
|
||||
$menu-nested-margin: $global-menu-nested-margin;
|
||||
$menu-items-padding: $global-menu-padding;
|
||||
$menu-simple-margin: 1rem;
|
||||
$menu-item-color-active: $white;
|
||||
$menu-item-background-active: get-color(primary);
|
||||
$menu-icon-spacing: 0.25rem;
|
||||
$menu-state-back-compat: true;
|
||||
$menu-centered-back-compat: true;
|
||||
$menu-icons-back-compat: true;
|
||||
|
||||
// 24. Meter
|
||||
// ---------
|
||||
|
||||
$meter-height: 1rem;
|
||||
$meter-radius: $global-radius;
|
||||
$meter-background: $medium-gray;
|
||||
$meter-fill-good: $success-color;
|
||||
$meter-fill-medium: $warning-color;
|
||||
$meter-fill-bad: $alert-color;
|
||||
|
||||
// 25. Off-canvas
|
||||
// --------------
|
||||
|
||||
$offcanvas-sizes: (
|
||||
small: 250px,
|
||||
);
|
||||
$offcanvas-vertical-sizes: (
|
||||
small: 250px,
|
||||
);
|
||||
$offcanvas-background: $light-gray;
|
||||
$offcanvas-shadow: 0 0 10px rgba($black, 0.7);
|
||||
$offcanvas-inner-shadow-size: 20px;
|
||||
$offcanvas-inner-shadow-color: rgba($black, 0.25);
|
||||
$offcanvas-overlay-zindex: 11;
|
||||
$offcanvas-push-zindex: 12;
|
||||
$offcanvas-overlap-zindex: 13;
|
||||
$offcanvas-reveal-zindex: 12;
|
||||
$offcanvas-transition-length: 0.5s;
|
||||
$offcanvas-transition-timing: ease;
|
||||
$offcanvas-fixed-reveal: true;
|
||||
$offcanvas-exit-background: rgba($white, 0.25);
|
||||
$maincontent-class: 'off-canvas-content';
|
||||
|
||||
// 26. Orbit
|
||||
// ---------
|
||||
|
||||
$orbit-bullet-background: $medium-gray;
|
||||
$orbit-bullet-background-active: $dark-gray;
|
||||
$orbit-bullet-diameter: 1.2rem;
|
||||
$orbit-bullet-margin: 0.1rem;
|
||||
$orbit-bullet-margin-top: 0.8rem;
|
||||
$orbit-bullet-margin-bottom: 0.8rem;
|
||||
$orbit-caption-background: rgba($black, 0.5);
|
||||
$orbit-caption-padding: 1rem;
|
||||
$orbit-control-background-hover: rgba($black, 0.5);
|
||||
$orbit-control-padding: 1rem;
|
||||
$orbit-control-zindex: 10;
|
||||
|
||||
// 27. Pagination
|
||||
// --------------
|
||||
|
||||
$pagination-font-size: rem-calc(14);
|
||||
$pagination-margin-bottom: $global-margin;
|
||||
$pagination-item-color: $black;
|
||||
$pagination-item-padding: rem-calc(3 10);
|
||||
$pagination-item-spacing: rem-calc(1);
|
||||
$pagination-radius: $global-radius;
|
||||
$pagination-item-background-hover: $light-gray;
|
||||
$pagination-item-background-current: $primary-color;
|
||||
$pagination-item-color-current: $white;
|
||||
$pagination-item-color-disabled: $medium-gray;
|
||||
$pagination-ellipsis-color: $black;
|
||||
$pagination-mobile-items: false;
|
||||
$pagination-mobile-current-item: false;
|
||||
$pagination-arrows: true;
|
||||
|
||||
// 28. Progress Bar
|
||||
// ----------------
|
||||
|
||||
$progress-height: 1rem;
|
||||
$progress-background: $medium-gray;
|
||||
$progress-margin-bottom: $global-margin;
|
||||
$progress-meter-background: $primary-color;
|
||||
$progress-radius: $global-radius;
|
||||
|
||||
// 29. Prototype Arrow
|
||||
// -------------------
|
||||
|
||||
$prototype-arrow-directions: (
|
||||
down,
|
||||
up,
|
||||
right,
|
||||
left
|
||||
);
|
||||
$prototype-arrow-size: 0.4375rem;
|
||||
$prototype-arrow-color: $black;
|
||||
|
||||
// 30. Prototype Border-Box
|
||||
// ------------------------
|
||||
|
||||
$prototype-border-box-breakpoints: $global-prototype-breakpoints;
|
||||
|
||||
// 31. Prototype Border-None
|
||||
// -------------------------
|
||||
|
||||
$prototype-border-none-breakpoints: $global-prototype-breakpoints;
|
||||
|
||||
// 32. Prototype Bordered
|
||||
// ----------------------
|
||||
|
||||
$prototype-bordered-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-border-width: rem-calc(1);
|
||||
$prototype-border-type: solid;
|
||||
$prototype-border-color: $medium-gray;
|
||||
|
||||
// 33. Prototype Display
|
||||
// ---------------------
|
||||
|
||||
$prototype-display-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-display: (
|
||||
inline,
|
||||
inline-block,
|
||||
block,
|
||||
table,
|
||||
table-cell
|
||||
);
|
||||
|
||||
// 34. Prototype Font-Styling
|
||||
// --------------------------
|
||||
|
||||
$prototype-font-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-wide-letter-spacing: rem-calc(4);
|
||||
$prototype-font-normal: $global-weight-normal;
|
||||
$prototype-font-bold: $global-weight-bold;
|
||||
|
||||
// 35. Prototype List-Style-Type
|
||||
// -----------------------------
|
||||
|
||||
$prototype-list-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-style-type-unordered: (
|
||||
disc,
|
||||
circle,
|
||||
square
|
||||
);
|
||||
$prototype-style-type-ordered: (
|
||||
decimal,
|
||||
lower-alpha,
|
||||
lower-latin,
|
||||
lower-roman,
|
||||
upper-alpha,
|
||||
upper-latin,
|
||||
upper-roman
|
||||
);
|
||||
|
||||
// 36. Prototype Overflow
|
||||
// ----------------------
|
||||
|
||||
$prototype-overflow-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-overflow: (
|
||||
visible,
|
||||
hidden,
|
||||
scroll
|
||||
);
|
||||
|
||||
// 37. Prototype Position
|
||||
// ----------------------
|
||||
|
||||
$prototype-position-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-position: (
|
||||
static,
|
||||
relative,
|
||||
absolute,
|
||||
fixed
|
||||
);
|
||||
$prototype-position-z-index: 975;
|
||||
|
||||
// 38. Prototype Rounded
|
||||
// ---------------------
|
||||
|
||||
$prototype-rounded-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-border-radius: rem-calc(3);
|
||||
|
||||
// 39. Prototype Separator
|
||||
// -----------------------
|
||||
|
||||
$prototype-separator-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-separator-align: center;
|
||||
$prototype-separator-height: rem-calc(2);
|
||||
$prototype-separator-width: 3rem;
|
||||
$prototype-separator-background: $primary-color;
|
||||
$prototype-separator-margin-top: $global-margin;
|
||||
|
||||
// 40. Prototype Shadow
|
||||
// --------------------
|
||||
|
||||
$prototype-shadow-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-box-shadow: 0 2px 5px 0 rgba(0,0,0,.16),
|
||||
0 2px 10px 0 rgba(0,0,0,.12);
|
||||
|
||||
// 41. Prototype Sizing
|
||||
// --------------------
|
||||
|
||||
$prototype-sizing-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-sizing: (
|
||||
width,
|
||||
height
|
||||
);
|
||||
$prototype-sizes: (
|
||||
25: 25%,
|
||||
50: 50%,
|
||||
75: 75%,
|
||||
100: 100%
|
||||
);
|
||||
|
||||
// 42. Prototype Spacing
|
||||
// ---------------------
|
||||
|
||||
$prototype-spacing-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-spacers-count: 3;
|
||||
|
||||
// 43. Prototype Text-Decoration
|
||||
// -----------------------------
|
||||
|
||||
$prototype-decoration-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-text-decoration: (
|
||||
overline,
|
||||
underline,
|
||||
line-through,
|
||||
);
|
||||
|
||||
// 44. Prototype Text-Transformation
|
||||
// ---------------------------------
|
||||
|
||||
$prototype-transformation-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-text-transformation: (
|
||||
lowercase,
|
||||
uppercase,
|
||||
capitalize
|
||||
);
|
||||
|
||||
// 45. Prototype Text-Utilities
|
||||
// ----------------------------
|
||||
|
||||
$prototype-utilities-breakpoints: $global-prototype-breakpoints;
|
||||
$prototype-text-overflow: ellipsis;
|
||||
|
||||
// 46. Responsive Embed
|
||||
// --------------------
|
||||
|
||||
$responsive-embed-margin-bottom: rem-calc(16);
|
||||
$responsive-embed-ratios: (
|
||||
default: 4 by 3,
|
||||
widescreen: 16 by 9,
|
||||
);
|
||||
|
||||
// 47. Reveal
|
||||
// ----------
|
||||
|
||||
$reveal-background: $white;
|
||||
$reveal-width: 600px;
|
||||
$reveal-max-width: $global-width;
|
||||
$reveal-padding: $global-padding;
|
||||
$reveal-border: 1px solid $medium-gray;
|
||||
$reveal-radius: $global-radius;
|
||||
$reveal-zindex: 1005;
|
||||
$reveal-overlay-background: rgba($black, 0.45);
|
||||
|
||||
// 48. Slider
|
||||
// ----------
|
||||
|
||||
$slider-width-vertical: 0.5rem;
|
||||
$slider-transition: all 0.2s ease-in-out;
|
||||
$slider-height: 0.5rem;
|
||||
$slider-background: $light-gray;
|
||||
$slider-fill-background: $medium-gray;
|
||||
$slider-handle-height: 1.4rem;
|
||||
$slider-handle-width: 1.4rem;
|
||||
$slider-handle-background: $primary-color;
|
||||
$slider-opacity-disabled: 0.25;
|
||||
$slider-radius: $global-radius;
|
||||
|
||||
// 49. Switch
|
||||
// ----------
|
||||
|
||||
$switch-background: $medium-gray;
|
||||
$switch-background-active: $primary-color;
|
||||
$switch-height: 2rem;
|
||||
$switch-height-tiny: 1.5rem;
|
||||
$switch-height-small: 1.75rem;
|
||||
$switch-height-large: 2.5rem;
|
||||
$switch-radius: $global-radius;
|
||||
$switch-margin: $global-margin;
|
||||
$switch-paddle-background: $white;
|
||||
$switch-paddle-offset: 0.25rem;
|
||||
$switch-paddle-radius: $global-radius;
|
||||
$switch-paddle-transition: all 0.25s ease-out;
|
||||
|
||||
// 50. Table
|
||||
// ---------
|
||||
|
||||
$table-background: $white;
|
||||
$table-color-scale: 5%;
|
||||
$table-border: 1px solid smart-scale($table-background, $table-color-scale);
|
||||
$table-padding: rem-calc(8 10 10);
|
||||
$table-hover-scale: 2%;
|
||||
$table-row-hover: darken($table-background, $table-hover-scale);
|
||||
$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale);
|
||||
$table-is-striped: true;
|
||||
$table-striped-background: smart-scale($table-background, $table-color-scale);
|
||||
$table-stripe: even;
|
||||
$table-head-background: smart-scale($table-background, $table-color-scale / 2);
|
||||
$table-head-row-hover: darken($table-head-background, $table-hover-scale);
|
||||
$table-foot-background: smart-scale($table-background, $table-color-scale);
|
||||
$table-foot-row-hover: darken($table-foot-background, $table-hover-scale);
|
||||
$table-head-font-color: $body-font-color;
|
||||
$table-foot-font-color: $body-font-color;
|
||||
$show-header-for-stacked: false;
|
||||
$table-stack-breakpoint: medium;
|
||||
|
||||
// 51. Tabs
|
||||
// --------
|
||||
|
||||
$tab-margin: 0;
|
||||
$tab-background: $white;
|
||||
$tab-color: $primary-color;
|
||||
$tab-background-active: $light-gray;
|
||||
$tab-active-color: $primary-color;
|
||||
$tab-item-font-size: rem-calc(12);
|
||||
$tab-item-background-hover: $white;
|
||||
$tab-item-padding: 1.25rem 1.5rem;
|
||||
$tab-content-background: $white;
|
||||
$tab-content-border: $light-gray;
|
||||
$tab-content-color: $body-font-color;
|
||||
$tab-content-padding: 1rem;
|
||||
|
||||
// 52. Thumbnail
|
||||
// -------------
|
||||
|
||||
$thumbnail-border: 4px solid $white;
|
||||
$thumbnail-margin-bottom: $global-margin;
|
||||
$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2);
|
||||
$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
|
||||
$thumbnail-transition: box-shadow 200ms ease-out;
|
||||
$thumbnail-radius: $global-radius;
|
||||
|
||||
// 53. Title Bar
|
||||
// -------------
|
||||
|
||||
$titlebar-background: $black;
|
||||
$titlebar-color: $white;
|
||||
$titlebar-padding: 0.5rem;
|
||||
$titlebar-text-font-weight: bold;
|
||||
$titlebar-icon-color: $white;
|
||||
$titlebar-icon-color-hover: $medium-gray;
|
||||
$titlebar-icon-spacing: 0.25rem;
|
||||
|
||||
// 54. Tooltip
|
||||
// -----------
|
||||
|
||||
$has-tip-cursor: help;
|
||||
$has-tip-font-weight: $global-weight-bold;
|
||||
$has-tip-border-bottom: dotted 1px $dark-gray;
|
||||
$tooltip-background-color: $black;
|
||||
$tooltip-color: $white;
|
||||
$tooltip-padding: 0.75rem;
|
||||
$tooltip-max-width: 10rem;
|
||||
$tooltip-font-size: $small-font-size;
|
||||
$tooltip-pip-width: 0.75rem;
|
||||
$tooltip-pip-height: $tooltip-pip-width * 0.866;
|
||||
$tooltip-radius: $global-radius;
|
||||
|
||||
// 55. Top Bar
|
||||
// -----------
|
||||
|
||||
$topbar-padding: 0.5rem;
|
||||
$topbar-background: $light-gray;
|
||||
$topbar-submenu-background: $topbar-background;
|
||||
$topbar-title-spacing: 0.5rem 1rem 0.5rem 0;
|
||||
$topbar-input-width: 200px;
|
||||
$topbar-unstack-breakpoint: medium;
|
||||
|
||||
// 56. Xy Grid
|
||||
// -----------
|
||||
|
||||
$xy-grid: true;
|
||||
$grid-container: $global-width;
|
||||
$grid-columns: 12;
|
||||
$grid-margin-gutters: (
|
||||
small: 20px,
|
||||
medium: 30px
|
||||
);
|
||||
$grid-padding-gutters: $grid-margin-gutters;
|
||||
$grid-container-padding: $grid-padding-gutters;
|
||||
$grid-container-max: $global-width;
|
||||
$xy-block-grid-max: 8;
|
||||
|
6
asset/scss/default.scss
Normal file
6
asset/scss/default.scss
Normal file
|
@ -0,0 +1,6 @@
|
|||
@charset 'utf-8';
|
||||
|
||||
@import 'globals-default';
|
||||
@import 'settings';
|
||||
@import 'foundation-core';
|
||||
@import 'omeka';
|
56
asset/scss/inkwell.scss
Normal file
56
asset/scss/inkwell.scss
Normal file
|
@ -0,0 +1,56 @@
|
|||
@charset 'utf-8';
|
||||
|
||||
@import 'globals-default';
|
||||
@import 'globals-inkwell';
|
||||
@import 'settings';
|
||||
|
||||
// Sea Foam Settings
|
||||
|
||||
$topbar-background: transparent;
|
||||
|
||||
$header-font-family: "Playfair Display", serif;
|
||||
|
||||
$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
|
||||
|
||||
$button-color: $black;
|
||||
|
||||
@import 'foundation-core';
|
||||
@import 'omeka';
|
||||
|
||||
body {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
header {
|
||||
border-top: $global-padding solid $primary-color;
|
||||
}
|
||||
|
||||
header a {
|
||||
color: $black;
|
||||
}
|
||||
|
||||
|
||||
header .button {
|
||||
border: 1px solid #000;
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
header .input-group-field {
|
||||
border: 1px solid #000;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
a,
|
||||
.breadcrumbs a {
|
||||
color: $black;
|
||||
}
|
||||
|
||||
body.vertical-menu header a {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
label,
|
||||
.label {
|
||||
color: $black;
|
||||
}
|
54
asset/scss/revolution.scss
Normal file
54
asset/scss/revolution.scss
Normal file
|
@ -0,0 +1,54 @@
|
|||
@charset 'utf-8';
|
||||
|
||||
@import 'globals-default';
|
||||
@import 'globals-revolution';
|
||||
@import 'settings';
|
||||
|
||||
// Revolution Settings
|
||||
|
||||
$header-font-family: 'IM Fell English SC', serif;
|
||||
$subheader-font-family: 'IM Fell DW Pica', serif;
|
||||
|
||||
$topbar-background: transparent;
|
||||
|
||||
$thumbnail-border: 4px solid transparent;
|
||||
$thumbnail-shadow: 0 0 0 1px $gold;
|
||||
$thumbnail-shadow-hover: 0 0 6px 1px rgba($gold, 0.5);
|
||||
|
||||
@import 'foundation-core';
|
||||
@import 'omeka';
|
||||
|
||||
body {
|
||||
background: url('../img/revolution-bg.jpg') repeat;
|
||||
background-size: auto;
|
||||
}
|
||||
|
||||
body:not(.vertical-menu) header {
|
||||
border-top: ($global-padding) solid $primary-color;
|
||||
}
|
||||
|
||||
.fieldset {
|
||||
border-color: $gold;
|
||||
}
|
||||
|
||||
.resource-list .resource {
|
||||
border-bottom-color: $gold;
|
||||
}
|
||||
|
||||
.description.fadeout:after {
|
||||
background: transparent url('../img/revolution-fade.png') no-repeat;
|
||||
background-size: cover;
|
||||
background-position: right;
|
||||
right: -1rem;
|
||||
}
|
||||
|
||||
@include breakpoint(medium up) {
|
||||
body.vertical-menu {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
body.vertical-menu #content,
|
||||
body.vertical-menu footer {
|
||||
background: transparent url('../img/revolution-bg.jpg') repeat;
|
||||
}
|
||||
}
|
23
asset/scss/seafoam.scss
Normal file
23
asset/scss/seafoam.scss
Normal file
|
@ -0,0 +1,23 @@
|
|||
@charset 'utf-8';
|
||||
|
||||
@import 'globals-default';
|
||||
@import 'globals-seafoam';
|
||||
@import 'settings';
|
||||
|
||||
// Sea Foam Settings
|
||||
|
||||
$topbar-background: $primary-color;
|
||||
|
||||
$thumbnail-border: 4px solid $secondary-color;
|
||||
$thumbnail-shadow: none;
|
||||
$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
|
||||
|
||||
$button-background: $secondary-color;
|
||||
$button-color: $primary-color;
|
||||
|
||||
@import 'foundation-core';
|
||||
@import 'omeka';
|
||||
|
||||
header a {
|
||||
color: $white;
|
||||
}
|
77
config/theme.ini
Normal file
77
config/theme.ini
Normal file
|
@ -0,0 +1,77 @@
|
|||
[info]
|
||||
name = "Archive"
|
||||
version = "1.0.0"
|
||||
author = "Hangar.org"
|
||||
description = "A starter theme using the ZURB Foundation toolkit."
|
||||
theme_link = "https://github.com/omeka-s-themes/foundation-s"
|
||||
author_link = "https://omeka.org"
|
||||
omeka_version_constraint = "^3.0.0"
|
||||
|
||||
[config]
|
||||
elements.stylesheet.name = "stylesheet"
|
||||
elements.stylesheet.attributes.id = "stylesheet"
|
||||
elements.stylesheet.type = "Zend\Form\Element\Select"
|
||||
elements.stylesheet.options.label = "Stylesheet"
|
||||
elements.stylesheet.options.value_options.default = "Default"
|
||||
elements.stylesheet.options.value_options.revolution = "Revolution"
|
||||
elements.stylesheet.options.value_options.seafoam = "Sea Foam"
|
||||
elements.stylesheet.options.value_options.inkwell = "Inkwell"
|
||||
|
||||
elements.nav_layout.name = "nav_layout"
|
||||
elements.nav_layout.attributes.id = "nav_layout"
|
||||
elements.nav_layout.type = "Zend\Form\Element\Select"
|
||||
elements.nav_layout.options.label = "Navigation Layout"
|
||||
elements.nav_layout.options.value_options.dropdown = "Horizontal Dropdown"
|
||||
elements.nav_layout.options.value_options.vertical = "Full Height Column"
|
||||
|
||||
elements.nav_show_levels.name = "nav_show_levels"
|
||||
elements.nav_show_levels.attributes.id = "nav_show_levels"
|
||||
elements.nav_show_levels.type = "Checkbox"
|
||||
elements.nav_show_levels.options.label = "Show Top Navigation Child Pages"
|
||||
elements.nav_show_levels.options.info = "Check to show child pages in the top navigation bar. Uncheck to show top-level items only."
|
||||
elements.nav_show_levels.attributes.value = 1
|
||||
|
||||
elements.nav_depth.name = "nav_depth"
|
||||
elements.nav_depth.attributes.id = "nav_depth"
|
||||
elements.nav_depth.type = "Number"
|
||||
elements.nav_depth.options.label = "Top Navigation Depth"
|
||||
elements.nav_depth.options.info = "Maximum number of levels to show in the site's top navigation bar. Set to 0 to show all levels."
|
||||
elements.nav_depth.attributes.min = 0
|
||||
elements.nav_depth.attributes.value = 0
|
||||
|
||||
elements.logo.name = "logo"
|
||||
elements.logo.type = "Omeka\Form\Element\Asset"
|
||||
elements.logo.options.label = "Logo"
|
||||
|
||||
elements.footer.name = "footer"
|
||||
elements.footer.attributes.id = "footer"
|
||||
elements.footer.type = "Omeka\Form\Element\HtmlTextarea"
|
||||
elements.footer.options.label = "Footer Content"
|
||||
elements.footer.options.info = "HTML content to appear in the footer"
|
||||
elements.footer.attributes.value = "Powered by Omeka S"
|
||||
|
||||
elements.browse_layout.name = "browse_layout"
|
||||
elements.browse_layout.attributes.id = "browse_layout"
|
||||
elements.browse_layout.type = "Zend\Form\Element\Select"
|
||||
elements.browse_layout.options.label = "Layout for Browse Pages"
|
||||
elements.browse_layout.options.value_options.grid = "Grid"
|
||||
elements.browse_layout.options.value_options.list = "List"
|
||||
elements.browse_layout.options.value_options.togglegrid = "Toggle (default: grid)"
|
||||
elements.browse_layout.options.value_options.togglelist = "Toggle (default: list)"
|
||||
|
||||
elements.show_layout.name = "show_layout"
|
||||
elements.show_layout.attributes.id = "show_layout"
|
||||
elements.show_layout.type = "Zend\Form\Element\Select"
|
||||
elements.show_layout.options.label = "Layout for Show Pages"
|
||||
elements.show_layout.options.info = "Layout for displaying property headings and values. Stack shows properties above the values while inline shows properties next to their values."
|
||||
elements.show_layout.options.value_options.stack = "Stack"
|
||||
elements.show_layout.options.value_options.inline = "Inline"
|
||||
|
||||
elements.truncate_body_property.name = "truncate_body_property"
|
||||
elements.truncate_body_property.attributes.id = "truncate_body_property"
|
||||
elements.truncate_body_property.type = "Zend\Form\Element\Select"
|
||||
elements.truncate_body_property.options.label = "Truncate Body Property"
|
||||
elements.truncate_body_property.info = "How to handle long values for the body property of each resource on the browse page."
|
||||
elements.truncate_body_property.options.value_options.full = "Show full value"
|
||||
elements.truncate_body_property.options.value_options.fadeout = "Show 4 lines and fade out"
|
||||
elements.truncate_body_property.options.value_options.ellipsis = "Show 4 lines and clip with an ellipsis"
|
36
gulpfile.js
Normal file
36
gulpfile.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
var gulp = require('gulp');
|
||||
var browserSync = require('browser-sync').create();
|
||||
var $ = require('gulp-load-plugins')();
|
||||
var autoprefixer = require('autoprefixer');
|
||||
|
||||
var sassPaths = [
|
||||
'node_modules/foundation-sites/scss',
|
||||
'node_modules/motion-ui/src'
|
||||
];
|
||||
|
||||
function sass() {
|
||||
return gulp.src('asset/scss/*.scss')
|
||||
.pipe($.sass({
|
||||
includePaths: sassPaths,
|
||||
outputStyle: 'compressed' // if css compressed **file size**
|
||||
})
|
||||
.on('error', $.sass.logError))
|
||||
.pipe($.postcss([
|
||||
autoprefixer()
|
||||
]))
|
||||
.pipe(gulp.dest('asset/css'))
|
||||
.pipe(browserSync.stream());
|
||||
};
|
||||
|
||||
function serve() {
|
||||
browserSync.init({
|
||||
server: "./"
|
||||
});
|
||||
|
||||
gulp.watch("asset/scss/*.scss", sass);
|
||||
gulp.watch("*.html").on('change', browserSync.reload);
|
||||
}
|
||||
|
||||
gulp.task('sass', sass);
|
||||
gulp.task('serve', gulp.series('sass', serve));
|
||||
gulp.task('default', gulp.series('sass', serve));
|
170
index.html
Normal file
170
index.html
Normal file
|
@ -0,0 +1,170 @@
|
|||
<!doctype html>
|
||||
<html class="no-js" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Foundation for Sites</title>
|
||||
<link rel="stylesheet" href="asset/css/app.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="grid-container">
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-12 cell">
|
||||
<h1>Welcome to Foundation</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-12 cell">
|
||||
<div class="callout">
|
||||
<h3>We’re stoked you want to try Foundation! </h3>
|
||||
<p>To get going, this file (index.html) includes some basic styles you can modify, play around with, or totally destroy to get going.</p>
|
||||
<p>Once you've exhausted the fun in this document, you should check out:</p>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-4 medium-4 cell">
|
||||
<p><a href="http://foundation.zurb.com/docs">Foundation Documentation</a><br />Everything you need to know about using the framework.</p>
|
||||
</div>
|
||||
<div class="large-4 medium-4 cell">
|
||||
<p><a href="http://zurb.com/university/code-skills">Foundation Code Skills</a><br />These online courses offer you a chance to better understand how Foundation works and how you can master it to create awesome projects.</p>
|
||||
</div>
|
||||
<div class="large-4 medium-4 cell">
|
||||
<p><a href="http://foundation.zurb.com/forum">Foundation Forum</a><br />Join the Foundation community to ask a question or show off your knowlege.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-4 medium-4 medium-push-2 cell">
|
||||
<p><a href="http://github.com/zurb/foundation">Foundation on Github</a><br />Latest code, issue reports, feature requests and more.</p>
|
||||
</div>
|
||||
<div class="large-4 medium-4 medium-pull-2 cell">
|
||||
<p><a href="https://twitter.com/ZURBfoundation">@zurbfoundation</a><br />Ping us on Twitter if you have questions. When you build something with this we'd love to see it (and send you a totally boss sticker).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-8 medium-8 cell">
|
||||
<h5>Here’s your basic grid:</h5>
|
||||
<!-- Grid Example -->
|
||||
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-12 cell">
|
||||
<div class="primary callout">
|
||||
<p><strong>This is a twelve cell section in a grid-x.</strong> Each of these includes a div.callout element so you can see where the cell are - it's not required at all for the grid.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-6 medium-6 cell">
|
||||
<div class="primary callout">
|
||||
<p>Six cell</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-6 medium-6 cell">
|
||||
<div class="primary callout">
|
||||
<p>Six cell</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-4 medium-4 small-4 cell">
|
||||
<div class="primary callout">
|
||||
<p>Four cell</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-4 medium-4 small-4 cell">
|
||||
<div class="primary callout">
|
||||
<p>Four cell</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-4 medium-4 small-4 cell">
|
||||
<div class="primary callout">
|
||||
<p>Four cell</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<h5>We bet you’ll need a form somewhere:</h5>
|
||||
<form>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-12 cell">
|
||||
<label>Input Label</label>
|
||||
<input type="text" placeholder="large-12.cell" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-4 medium-4 cell">
|
||||
<label>Input Label</label>
|
||||
<input type="text" placeholder="large-4.cell" />
|
||||
</div>
|
||||
<div class="large-4 medium-4 cell">
|
||||
<label>Input Label</label>
|
||||
<input type="text" placeholder="large-4.cell" />
|
||||
</div>
|
||||
<div class="large-4 medium-4 cell">
|
||||
<div class="grid-x">
|
||||
<label>Input Label</label>
|
||||
<div class="input-group">
|
||||
<input type="text" placeholder="small-9.cell" class="input-group-field" />
|
||||
<span class="input-group-label">.com</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-12 cell">
|
||||
<label>Select Box</label>
|
||||
<select>
|
||||
<option value="husker">Husker</option>
|
||||
<option value="starbuck">Starbuck</option>
|
||||
<option value="hotdog">Hot Dog</option>
|
||||
<option value="apollo">Apollo</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-6 medium-6 cell">
|
||||
<label>Choose Your Favorite</label>
|
||||
<input type="radio" name="pokemon" value="Red" id="pokemonRed"><label for="pokemonRed">Radio 1</label>
|
||||
<input type="radio" name="pokemon" value="Blue" id="pokemonBlue"><label for="pokemonBlue">Radio 2</label>
|
||||
</div>
|
||||
<div class="large-6 medium-6 cell">
|
||||
<label>Check these out</label>
|
||||
<input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label>
|
||||
<input id="checkbox2" type="checkbox"><label for="checkbox2">Checkbox 2</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-x grid-padding-x">
|
||||
<div class="large-12 cell">
|
||||
<label>Textarea Label</label>
|
||||
<textarea placeholder="small-12.cell"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="large-4 medium-4 cell">
|
||||
<h5>Try one of these buttons:</h5>
|
||||
<p><a href="#" class="button">Simple Button</a><br/>
|
||||
<a href="#" class="success button">Success Btn</a><br/>
|
||||
<a href="#" class="alert button">Alert Btn</a><br/>
|
||||
<a href="#" class="secondary button">Secondary Btn</a></p>
|
||||
<div class="callout">
|
||||
<h5>So many components, girl!</h5>
|
||||
<p>A whole kitchen sink of goodies comes with Foundation. Check out the docs to see them all, along with details on making them your own.</p>
|
||||
<a href="http://foundation.zurb.com/sites/docs/" class="small button">Go to Foundation Docs</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="node_modules/jquery/dist/jquery.js"></script>
|
||||
<script src="node_modules/what-input/dist/what-input.js"></script>
|
||||
<script src="node_modules/foundation-sites/dist/js/foundation.js"></script>
|
||||
<script src="js/app.js"></script>
|
||||
</body>
|
||||
</html>
|
6025
package-lock.json
generated
Normal file
6025
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
41
package.json
Normal file
41
package.json
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"name": "foundation-s-theme",
|
||||
"version": "1.0.0",
|
||||
"description": "Omeka S theme using the ZURB Foundation toolkit.",
|
||||
"main": "gulpfile.js",
|
||||
"scripts": {
|
||||
"start": "gulp",
|
||||
"build": "gulp sass"
|
||||
},
|
||||
"author": "Omeka Team <outreach@omeka.org>",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/omeka-s-themes/foundation-s/issues",
|
||||
"email": "outreach@omeka.org"
|
||||
},
|
||||
"dependencies": {
|
||||
"foundation-sites": "^6.6.3",
|
||||
"gulp-cli": "^2.3.0",
|
||||
"jquery": "^3.5.1",
|
||||
"motion-ui": "~2.0.0",
|
||||
"what-input": "^5.2.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^9.8.6",
|
||||
"browser-sync": "^2.26.12",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-load-plugins": "^2.0.4",
|
||||
"gulp-postcss": "^8.0.0",
|
||||
"gulp-sass": "^4.1.0",
|
||||
"minimist": "^1.2.3"
|
||||
},
|
||||
"browserslist": [
|
||||
"last 2 versions",
|
||||
"ie >= 9"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zurb/foundation-sites-template.git"
|
||||
},
|
||||
"private": true
|
||||
}
|
36
view/common/advanced-search/item-sets.phtml
Normal file
36
view/common/advanced-search/item-sets.phtml
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
// Prepare the item set queries
|
||||
$ids = isset($query['item_set_id']) ? $query['item_set_id'] : [];
|
||||
if (!is_array($ids)) {
|
||||
$ids = [$ids];
|
||||
}
|
||||
$ids = array_filter($ids);
|
||||
if (!$ids) {
|
||||
$ids = [null];
|
||||
}
|
||||
?>
|
||||
<div id="item-sets" class="field removable multi-value" role="group">
|
||||
<fieldset class="fieldset">
|
||||
<legend><?php echo $translate('Search by item set'); ?></legend>
|
||||
<div class="help-text"><?php echo $translate('Searches for items that are assigned to any of these item sets.'); ?></div>
|
||||
<div class="inputs">
|
||||
<?php foreach ($ids as $id): ?>
|
||||
<div class="value">
|
||||
<?php echo $this->itemSetSelect([
|
||||
'name' => 'item_set_id[]',
|
||||
'attributes' => [
|
||||
'value' => $id,
|
||||
'aria-labelledby' => 'by-item-set-label'
|
||||
],
|
||||
'options' => [
|
||||
'disable_group_by_owner' => $this->status()->isSiteRequest(),
|
||||
],
|
||||
]); ?>
|
||||
<button type="button" class="o-icon-delete remove-value button" aria-label="<?php echo $translate('Remove value'); ?>"></button>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<button class="add-value button"><?php echo $translate('Add new item set'); ?></button>
|
||||
</fieldset>
|
||||
</div>
|
85
view/common/advanced-search/properties.phtml
Normal file
85
view/common/advanced-search/properties.phtml
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
// Prepare the property queries.
|
||||
$properties = isset($query['property']) ? $query['property'] : [];
|
||||
$properties = array_filter($properties, function ($value) {
|
||||
return isset($value['text']) ? '' !== trim($value['text']) : true;
|
||||
});
|
||||
if (!$properties) {
|
||||
$properties[] = [];
|
||||
}
|
||||
|
||||
if (isset($query['search'])) {
|
||||
unset($properties[0]['joiner']);
|
||||
array_unshift($properties, [
|
||||
'property' => '',
|
||||
'type' => 'in',
|
||||
'text' => $query['search']
|
||||
]);
|
||||
}
|
||||
|
||||
$queryOption = function($value, array $search, $key, $text) {
|
||||
$selected = null;
|
||||
if (isset($search[$key]) && $value === $search[$key]) {
|
||||
$selected = ' selected';
|
||||
}
|
||||
return sprintf('<option value="%s"%s>%s</option>', $value, $selected, $text);
|
||||
};
|
||||
$queryText = function(array $search, $index) {
|
||||
$text = isset($search['text']) ? $search['text'] : null;
|
||||
return sprintf('<input type="text" class="query-text" name="%s" value="%s" aria-label="%s">',
|
||||
$this->escapeHtml("property[$index][text]"),
|
||||
$this->escapeHtml($text),
|
||||
$this->escapeHtml($this->translate('Query text')));
|
||||
}
|
||||
?>
|
||||
|
||||
<div id="property-queries" class="field removable multi-value" role="group" aria-labelledby="by-value-label">
|
||||
<fieldset class="fieldset">
|
||||
<legend id="by-value-label"><?php echo $translate('Search by value'); ?></legend>
|
||||
<div class="inputs">
|
||||
<?php
|
||||
$index = 0;
|
||||
foreach ($properties as $property):
|
||||
$stem = "property[$index]";
|
||||
?>
|
||||
<div class="value input-group">
|
||||
<select class="joiner" name="<?php echo $this->escapeHtml($stem . '[joiner]'); ?>">
|
||||
<?php echo $queryOption('and', $property, 'joiner', $translate('AND')); ?>
|
||||
<?php echo $queryOption('or', $property, 'joiner', $translate('OR')); ?>
|
||||
</select>
|
||||
<?php echo $this->propertySelect([
|
||||
'name' => $stem . '[property]',
|
||||
'attributes' => [
|
||||
'class' => 'query-property',
|
||||
'value' => isset($property['property']) ? $property['property'] : null,
|
||||
'aria-label' => $translate('Property'),
|
||||
],
|
||||
'options' => [
|
||||
'empty_option' => '[Any Property]', // @translate
|
||||
'apply_templates' => $this->status()->isSiteRequest() ? $this->siteSetting('search_apply_templates') : false,
|
||||
]
|
||||
]); ?>
|
||||
<select class="query-type" name="<?php echo $this->escapeHtml($stem . '[type]'); ?>" aria-label="<?php echo $translate('Query type'); ?>">
|
||||
<?php echo $queryOption('eq', $property, 'type', $translate('is exactly')); ?>
|
||||
<?php echo $queryOption('neq', $property, 'type', $translate('is not exactly')); ?>
|
||||
<?php echo $queryOption('in', $property, 'type', $translate('contains')); ?>
|
||||
<?php echo $queryOption('nin', $property, 'type', $translate('does not contain')); ?>
|
||||
<?php echo $queryOption('res', $property, 'type', $translate('is resource with ID')); ?>
|
||||
<?php echo $queryOption('nres', $property, 'type', $translate('is not resource with ID')); ?>
|
||||
<?php echo $queryOption('ex', $property, 'type', $translate('has any value')); ?>
|
||||
<?php echo $queryOption('nex', $property, 'type', $translate('has no values')); ?>
|
||||
</select>
|
||||
<?php echo $queryText($property, $index); ?>
|
||||
<div class="input-group-button remove-value">
|
||||
<button type="button" class="o-icon-delete button" aria-label="<?php echo $translate('Remove value'); ?>" title="<?php echo $translate('Remove value'); ?>"></button>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$index++;
|
||||
endforeach;
|
||||
?>
|
||||
</div>
|
||||
<a href="#" class="add-value button"><?php echo $translate('Add new value'); ?></a>
|
||||
</fieldset>
|
||||
</div>
|
33
view/common/advanced-search/resource-class.phtml
Normal file
33
view/common/advanced-search/resource-class.phtml
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
// Prepare the resource class query.
|
||||
$ids = isset($query['resource_class_id']) ? $query['resource_class_id'] : [];
|
||||
if (!is_array($ids)) {
|
||||
$ids = [$ids];
|
||||
}
|
||||
$ids = array_filter($ids);
|
||||
if (!$ids) {
|
||||
$ids = [null];
|
||||
}
|
||||
?>
|
||||
<div id="resource-class" class="field removable multi-value" role="group">
|
||||
<fieldset class="fieldset">
|
||||
<legend id="by-resource-class-label"><?php echo $translate('Search by class'); ?></legend>
|
||||
<div class="help-text"><?php echo $translate('Searches for items that are any of these classes.'); ?></div>
|
||||
<div class="inputs">
|
||||
<?php foreach ($ids as $id): ?>
|
||||
<div class="value">
|
||||
<?php echo $this->resourceClassSelect([
|
||||
'name' => 'resource_class_id[]',
|
||||
'attributes' => [
|
||||
'value' => $id,
|
||||
'aria-labelledby' => 'by-resource-class-label'
|
||||
],
|
||||
]); ?>
|
||||
<button type="button" class="o-icon-delete remove-value button" aria-label="<?php echo $translate('Remove value'); ?>" title="<?php echo $translate('Remove value'); ?>"></button>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<a href="#" class="add-value button"><?php echo $translate('Add new class'); ?></a>
|
||||
</fieldset>
|
||||
</div>
|
67
view/common/block-layout/browse-preview.phtml
Normal file
67
view/common/block-layout/browse-preview.phtml
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
$this->headScript()->appendFile($this->assetUrl('js/browse.js'));
|
||||
$translate = $this->plugin('translate');
|
||||
$layoutSetting = $this->themeSetting('browse_layout');
|
||||
$gridState = ($layoutSetting == 'togglegrid') ? 'disabled' : '';
|
||||
$listState = ($layoutSetting == 'togglelist') ? 'disabled': '';
|
||||
$currentLayout = (!isset($layoutSetting) || strpos($layoutSetting, 'grid') !== false) ? 'grid' : 'list';
|
||||
$isGrid = ($currentLayout == 'grid') ? true : false;
|
||||
$queryUrl = $this->url(
|
||||
'site/resource', ['controller' => $this->resourceType, 'action' => 'browse'], ['query' => $this->query], true
|
||||
);
|
||||
?>
|
||||
<div class="preview-block">
|
||||
|
||||
<?php if ($this->heading): ?>
|
||||
<div class="preview-header">
|
||||
<h3><?php echo $this->hyperlink($this->heading, $queryUrl); ?></h3>
|
||||
<?php
|
||||
if ($this->linkText):
|
||||
echo $this->hyperlink($this->linkText, $queryUrl);
|
||||
endif;
|
||||
?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (strpos($layoutSetting, 'toggle') !== false): ?>
|
||||
<div class="browse-controls">
|
||||
<div class="layout-toggle">
|
||||
<button type="button" aria-label="<?php echo $translate('Grid'); ?>" class="grid o-icon-grid" <?php echo $gridState; ?>></button>
|
||||
<button type="button" aria-label="<?php echo $translate('List'); ?>" class="list o-icon-list" <?php echo $listState; ?>></button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<ul class="resources <?php echo ($isGrid) ? 'resource-grid' : 'resource-list'; ?>">
|
||||
<?php
|
||||
$headingTerm = $this->siteSetting('browse_heading_property_term');
|
||||
$bodyTerm = $this->siteSetting('browse_body_property_term');
|
||||
foreach ($this->resources as $resource):
|
||||
$heading = $headingTerm ? $resource->value($headingTerm, ['default' => $translate('[Untitled]')]) : $resource->displayTitle();
|
||||
$body = $bodyTerm ? $resource->value($bodyTerm) : $resource->displayDescription();
|
||||
?>
|
||||
<li class="<?php echo $this->resourceType; ?> resource <?php echo ($isGrid) ? '' : 'media-object'; ?>">
|
||||
<?php if ($thumbnail = $this->thumbnail($resource, 'medium')): ?>
|
||||
<div class="resource-image <?php echo ($isGrid) ? '' : 'media-object-section'; ?>">
|
||||
<?php echo $resource->linkRaw($thumbnail, null, ['class' => 'thumbnail']); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="resource-meta <?php echo ($isGrid) ? '' : 'media-object-section'; ?>">
|
||||
<h4><?php echo $resource->link($heading); ?></h4>
|
||||
<?php if ($body): ?>
|
||||
<div class="description"><?php echo $body; ?></div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<?php
|
||||
if ($this->linkText && !$this->heading):
|
||||
echo $this->hyperlink($this->linkText, $queryUrl);
|
||||
endif;
|
||||
?>
|
||||
|
||||
</div>
|
18
view/common/foundation-breadcrumbs.phtml
Normal file
18
view/common/foundation-breadcrumbs.phtml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php $container = $this->navigation()->breadcrumbs() ?>
|
||||
<?php $navigation = $container->getContainer() ?>
|
||||
|
||||
<ul class="breadcrumbs">
|
||||
<?php foreach($this->pages as $page): ?>
|
||||
<?php if( ! $page->isActive()): ?>
|
||||
<li>
|
||||
<a href="<?php echo $page->getHref() ?>"><?php echo $page->getLabel() ?></a>
|
||||
</li>
|
||||
<?php else: ?>
|
||||
<li class="active">
|
||||
<?php if($container->getLinkLast()): ?><a href="<?php echo $page->getHref() ?>"><?php endif ?>
|
||||
<?php echo $page->getLabel() ?>
|
||||
<?php if($container->getLinkLast()): ?></a><?php endif ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
</ul>
|
76
view/common/foundation-navigation.phtml
Normal file
76
view/common/foundation-navigation.phtml
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
|
||||
/* Based on https://github.com/fabiopaiva/zf2-navigation-bootstrap3 */
|
||||
|
||||
/* @var $container Zend\Navigation\Navigation */
|
||||
$container = $this->container;
|
||||
$layoutAttributes = [
|
||||
'dropdown' => 'class="dropdown menu" data-dropdown-menu',
|
||||
'vertical' => 'class="vertical menu accordion-menu" data-accordion-menu data-submenu-toggle="true"',
|
||||
]
|
||||
?>
|
||||
<ul <?php echo $layoutAttributes[$layout]; ?>>
|
||||
<?php foreach ($container as $page): ?>
|
||||
<?php if (!$this->navigation()->accept($page)) continue; ?>
|
||||
<?php /* @var $page Zend\Navigation\Page\Mvc */ ?>
|
||||
<?php $hasChildren = $page->hasPages() ?>
|
||||
<?php $showChildren = $this->themeSetting('nav_show_levels'); ?>
|
||||
<?php if (!$hasChildren || ($showChildren == 0)): ?>
|
||||
<li<?php if ($page->isActive()) echo ' class="active"' ?>>
|
||||
<a
|
||||
class="nav-header"
|
||||
href="<?php echo $page->getHref() ?>"
|
||||
<?php if ($page->getTarget() != ""): ?>
|
||||
target="<?php echo $page->getTarget(); ?>"
|
||||
<?php endif; ?>
|
||||
>
|
||||
<?php if ($page->get("icon") !== ""): ?>
|
||||
<span class="<?php echo $page->get("icon"); ?>"></span>
|
||||
<?php endif; ?>
|
||||
<?php echo $this->escapeHtml($this->translate($page->getLabel(), $this->navigation($container)->getTranslatorTextDomain())); ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php else: ?>
|
||||
<?php
|
||||
//check if access is allowed at least one item
|
||||
$access = false;
|
||||
foreach ($page->getPages() as $child) {
|
||||
if ($this->navigation()->accept($child) && $child->get("separator") !== true) {
|
||||
$access = true;
|
||||
}
|
||||
}
|
||||
if ($access) :
|
||||
?>
|
||||
<li class="dropdown<?php if ($page->isActive(true)) echo ' active' ?>">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="<?php echo $page->getHref(); ?>">
|
||||
<?php echo $this->escapeHtml($this->translate($page->getLabel(),$this->navigation($container)->getTranslatorTextDomain())); ?>
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="menu vertical nested">
|
||||
<?php foreach ($page->getPages() as $child): ?>
|
||||
<?php if (!$this->navigation()->accept($child)) continue; ?>
|
||||
<?php if ($child->get("separator") === true): ?>
|
||||
<li class="divider"></li>
|
||||
<?php
|
||||
continue;
|
||||
endif;
|
||||
?>
|
||||
<li<?php if ($child->isActive()) echo ' class="active"' ?>>
|
||||
<a
|
||||
href="<?php echo $child->getHref() ?>"
|
||||
<?php if ($child->getTarget() != ""): ?>
|
||||
target="<?php echo $child->getTarget(); ?>"
|
||||
<?php endif; ?> >
|
||||
<?php if ($child->get("icon") !== ""): ?>
|
||||
<span class="<?php echo $child->get("icon"); ?>"></span>
|
||||
<?php endif; ?>
|
||||
<?php echo $this->escapeHtml($this->translate($child->getLabel(),$this->navigation($container)->getTranslatorTextDomain())); ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach ?>
|
||||
</ul>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
</ul>
|
18
view/common/header-dropdown.phtml
Normal file
18
view/common/header-dropdown.phtml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<div class="top-bar">
|
||||
<nav class="top-bar-left">
|
||||
<div class="title-bar" data-responsive-toggle="responsive-menu" data-hide-for="large">
|
||||
<button class="menu-toggle" type="button" data-toggle="offCanvas" aria-label="<?php echo $this->translate('Menu'); ?>"><i class="fas fa-bars"></i></button>
|
||||
</div>
|
||||
<?php if ($this->themeSetting('logo')): ?>
|
||||
<a href="<?php echo $site->url(); ?>" class="site-title"><img src="<?php echo $this->themeSettingAssetUrl('logo'); ?>" title="Logo"></a>
|
||||
<?php else: ?>
|
||||
<a href="<?php echo $site->url(); ?>" class="site-title"><?php echo $this->pageTitle($site->title()); ?></a>
|
||||
<?php endif; ?>
|
||||
</nav>
|
||||
<div class="top-bar-right" id="responsive-menu">
|
||||
<?php echo $site->publicNav()->menu()->setPartial('common/foundation-navigation.phtml')->renderPartialWithParams(['layout' => 'dropdown']); ?>
|
||||
<div class="search">
|
||||
<?php echo $this->partial('common/search-form'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
16
view/common/header-vertical.phtml
Normal file
16
view/common/header-vertical.phtml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php if ($this->themeSetting('logo')): ?>
|
||||
<?php $titleLink = '<a href="' . $site->url() . '" class="site-title"><img src="' . $this->themeSettingAssetUrl('logo') . '" title="Logo"></a>'; ?>
|
||||
<?php else: ?>
|
||||
<?php $titleLink = '<a href="' . $site->url() . '" class="site-title">' . $this->pageTitle($site->title()) . '</a>'; ?>
|
||||
<?php endif; ?>
|
||||
<div class="title-bar" data-responsive-toggle="responsive-menu" data-hide-for="large">
|
||||
<button class="menu-toggle" type="button" data-toggle="offCanvas" aria-label="<?php echo $this->translate('Menu'); ?>"><i class="fas fa-bars"></i></button>
|
||||
<?php echo $titleLink; ?>
|
||||
</div>
|
||||
<div class="desktop">
|
||||
<?php echo $titleLink; ?>
|
||||
<?php echo $site->publicNav()->menu()->setPartial('common/foundation-navigation.phtml')->renderPartialWithParams(['layout' => 'vertical']); ?>
|
||||
<div class="search">
|
||||
<?php echo $this->partial('common/search-form'); ?>
|
||||
</div>
|
||||
</div>
|
34
view/common/pagination.phtml
Normal file
34
view/common/pagination.phtml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
?>
|
||||
<nav class="omeka-pagination" role="navigation">
|
||||
<?php if ($totalCount): ?>
|
||||
<form method="GET" action="">
|
||||
<?php echo $this->queryToHiddenInputs(['page']); ?>
|
||||
<input type="text" name="page" class="page-input-top" value="<?php echo $currentPage; ?>" size="4" <?php echo ($pageCount == 1) ? 'readonly' : ''; ?> aria-label="<?php echo $translate('Page'); ?>">
|
||||
<span class="page-count"><?php echo sprintf($translate('of %s'), $pageCount); ?></span>
|
||||
</form>
|
||||
|
||||
<div class="button-group">
|
||||
<?php if ($currentPage != 1): ?>
|
||||
<?php echo $this->hyperlink('', $previousPageUrl, ['class' => 'previous o-icon-prev button', 'title' => $translate('Previous'), 'aria-label' => $translate('Previous')]); ?>
|
||||
<?php else: ?>
|
||||
<span class="previous o-icon-prev button inactive"></span>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($currentPage < $pageCount): ?>
|
||||
<?php echo $this->hyperlink('', $nextPageUrl, ['class' => 'next o-icon-next button', 'title' => $translate('Next'), 'aria-label' => $translate('Next')]); ?>
|
||||
<?php else: ?>
|
||||
<span class="next o-icon-next button inactive"></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$from = $offset + 1;
|
||||
$to = ($currentPage < $pageCount) ? $offset + $perPage : $totalCount;
|
||||
?>
|
||||
<span class="row-count"><?php echo sprintf($translate('%1$s–%2$s of %3$s'), $from, $to, $totalCount); ?></span>
|
||||
<?php else: ?>
|
||||
<?php echo $translate('0 results'); ?>
|
||||
<?php endif; ?>
|
||||
</nav>
|
46
view/common/resource-values.phtml
Normal file
46
view/common/resource-values.phtml
Normal file
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
$escape = $this->plugin('escapeHtml');
|
||||
$labelInfo = $this->setting('property_label_information');
|
||||
?>
|
||||
<dl>
|
||||
<?php foreach ($values as $term => $propertyData): ?>
|
||||
<div class="property">
|
||||
<dt>
|
||||
<?php if ($propertyData['alternate_label']): ?>
|
||||
<?php echo $escape($propertyData['alternate_label']); ?>
|
||||
<?php else: ?>
|
||||
<?php echo $escape($translate($propertyData['property']->label())); ?>
|
||||
<?php endif; ?>
|
||||
<?php if ('term' === $labelInfo): ?>
|
||||
<span class="field-term">(<?php echo $escape($propertyData['property']->term()); ?>)</span>
|
||||
<?php elseif ('vocab' === $labelInfo): ?>
|
||||
<span class="field-term">(<?php echo $escape($propertyData['property']->vocabulary()->label()); ?>)</span>
|
||||
<?php endif; ?>
|
||||
</dt>
|
||||
<div class="values">
|
||||
<?php foreach ($propertyData['values'] as $value): ?>
|
||||
<?php
|
||||
$valueType = $value->type();
|
||||
$class = ['value'];
|
||||
if ('resource' == $valueType || strpos($valueType, 'resource') !== false) {
|
||||
$class[] = 'resource';
|
||||
$class[] = $escape($value->valueResource()->resourceName());
|
||||
} elseif ('uri' == $valueType) {
|
||||
$class[] = 'uri';
|
||||
}
|
||||
if (!$value->isPublic()) {
|
||||
$class[] = 'private';
|
||||
}
|
||||
?>
|
||||
<dl class="<?php echo implode(' ', $class); ?>" lang="<?php echo $escape($value->lang()); ?>">
|
||||
<?php if ($language = $value->lang()): ?>
|
||||
<span class="language"><?php echo $language; ?></span>
|
||||
<?php endif; ?>
|
||||
<?php echo $value->asHtml(); ?>
|
||||
</dl>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</dl>
|
22
view/common/search-form.phtml
Normal file
22
view/common/search-form.phtml
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
$searchType = $this->siteSetting('search_type', 'sitewide');
|
||||
switch ($searchType) {
|
||||
case 'cross-site':
|
||||
$searchAction = $this->url('site/cross-site-search', ['action' => 'results'], true);
|
||||
break;
|
||||
case 'sitewide':
|
||||
default:
|
||||
$searchAction = $this->url('site/resource', ['controller' => 'index', 'action' => 'search'], true);
|
||||
}
|
||||
$searchValue = $this->escapeHtml($this->params()->fromQuery('fulltext_search', ''));
|
||||
?>
|
||||
|
||||
<form action="<?php echo $this->escapeHtml($searchAction); ?>" id="search-form" class="input-group">
|
||||
<input type="text" name="fulltext_search" value="<?php echo $searchValue; ?>"
|
||||
placeholder="<?php echo $translate('Search'); ?>"
|
||||
aria-label="<?php echo $translate('Search'); ?>" class="input-group-field">
|
||||
<div class="input-group-button">
|
||||
<button type="submit" class="button"><?php echo $translate('Search'); ?></button>
|
||||
</div>
|
||||
</form>
|
18
view/common/sort-selector.phtml
Normal file
18
view/common/sort-selector.phtml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
$escape = $this->plugin('escapeHtml');
|
||||
?>
|
||||
<form class="sorting" action="">
|
||||
<?php echo $this->queryToHiddenInputs(['sort_by', 'sort_order']); ?>
|
||||
<select name="sort_by" aria-label="<?php echo $translate('Sort by'); ?>">
|
||||
<?php foreach($sortBy as $sortByHeading): ?>
|
||||
<?php $selected = ($sortByQuery === $sortByHeading['value']) ? 'selected' : ''; ?>
|
||||
<option value="<?php echo $escape($sortByHeading['value']); ?>" <?php echo $selected; ?>><?php echo $sortByHeading['label']; ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<select name="sort_order" aria-label="<?php echo $translate('Sort order'); ?>">
|
||||
<option value="asc" <?php echo ($sortOrderQuery === 'asc') ? 'selected' : ''; ?>><?php echo $translate('Ascending'); ?></option>
|
||||
<option value="desc" <?php echo ($sortOrderQuery === 'desc') ? 'selected' : ''; ?>><?php echo $translate('Descending'); ?></option>
|
||||
</select>
|
||||
<button class="button" type="submit"><?php echo $translate('Sort'); ?></button>
|
||||
</form>
|
78
view/layout/layout.phtml
Normal file
78
view/layout/layout.phtml
Normal file
|
@ -0,0 +1,78 @@
|
|||
<?php
|
||||
$escape = $this->plugin('escapeHtml');
|
||||
$stylesheet = $this->themeSetting('stylesheet');
|
||||
$this->htmlElement('html')->setAttribute('lang', $this->lang());
|
||||
$this->headMeta()->setCharset('utf-8');
|
||||
$this->headMeta()->appendName('viewport', 'width=device-width, initial-scale=1');
|
||||
$this->headTitle($this->setting('installation_title', 'Omeka S'))->setSeparator(' · ');
|
||||
if (isset($stylesheet)) {
|
||||
$this->headLink()->prependStylesheet($this->assetUrl("css/$stylesheet.css"));
|
||||
} else {
|
||||
$this->headLink()->prependStylesheet($this->assetUrl('css/default.css'));
|
||||
}
|
||||
$this->headLink()->prependStylesheet($this->assetUrl('css/iconfonts.css', 'Omeka'));
|
||||
$this->headScript()->prependFile('//cdn.jsdelivr.net/npm/foundation-sites@6.5.3/dist/js/foundation.min.js', 'text/javascript', [
|
||||
'integrity' => 'sha256-/PFxCnsMh+nTuM0k3VJCRch1gwnCfKjaP8rJNq5SoBg= sha384-9ksAFjQjZnpqt6VtpjMjlp2S0qrGbcwF/rvrLUg2vciMhwc1UJJeAAOLuJ96w+Nj sha512-UMSn6RHqqJeJcIfV1eS2tPKCjzaHkU/KqgAnQ7Nzn0mLicFxaVhm9vq7zG5+0LALt15j1ljlg8Fp9PT1VGNmDw==',
|
||||
'crossorigin' => 'anonymous'
|
||||
]);
|
||||
$this->headScript()->prependFile($this->assetUrl('js/global.js', 'Omeka'));
|
||||
$this->headScript()->prependFile($this->assetUrl('vendor/jquery/jquery.min.js', 'Omeka'));
|
||||
$this->trigger('view.layout');
|
||||
$title = $this->pageTitle($site->title());
|
||||
$userBar = $this->userBar();
|
||||
|
||||
$navLayout = ($this->themeSetting('nav_layout')) ? $this->themeSetting('nav_layout') : 'dropdown';
|
||||
$this->htmlElement('body')->appendAttribute('class', $navLayout . '-menu');
|
||||
if ($userBar) {
|
||||
$this->htmlElement('body')->appendAttribute('class', 'user-bar');
|
||||
}
|
||||
|
||||
$logo = $this->themeSettingAssetUrl('logo');
|
||||
if ($logo):
|
||||
$title = '<img src="' . $this->escapeHtml($logo) . '">';
|
||||
endif;
|
||||
?>
|
||||
<?php echo $this->doctype(); ?>
|
||||
<?php echo $this->htmlElement('html'); ?>
|
||||
<head>
|
||||
<?php echo $this->headMeta(); ?>
|
||||
<?php echo $this->headTitle(); ?>
|
||||
<?php echo $this->headLink(); ?>
|
||||
<?php echo $this->headStyle(); ?>
|
||||
<?php echo $this->headScript(); ?>
|
||||
</head>
|
||||
|
||||
<?php echo $this->htmlElement('body'); ?>
|
||||
|
||||
<div id="offCanvas" class="off-canvas position-left" data-off-canvas>
|
||||
<?php echo $site->publicNav()->menu()->setPartial('common/foundation-navigation.phtml')->renderPartialWithParams(['layout' => 'vertical']); ?>
|
||||
<div class="search">
|
||||
<?php echo $this->partial('common/search-form'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="off-canvas-content" data-off-canvas-content>
|
||||
<a id="skipnav" href="#content"><?php echo $this->translate('Skip to main content'); ?></a>
|
||||
<?php echo $userBar; ?>
|
||||
<header>
|
||||
<?php if ($navLayout == 'vertical'): ?>
|
||||
<?php echo $this->partial('common/header-vertical'); ?>
|
||||
<?php else: ?>
|
||||
<?php echo $this->partial('common/header-dropdown'); ?>
|
||||
<?php endif; ?>
|
||||
</header>
|
||||
<div id="content" role="main">
|
||||
<?php echo $this->content; ?>
|
||||
</div>
|
||||
<footer>
|
||||
<?php if ($footerContent = $this->themeSetting('footer')): ?>
|
||||
<?php echo $footerContent; ?>
|
||||
<?php else: ?>
|
||||
<?php echo $this->translate('Powered by Omeka S'); ?>
|
||||
<?php endif; ?>
|
||||
</footer>
|
||||
</div>
|
||||
<script>
|
||||
$(document).foundation();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
57
view/omeka/site/item-set/browse.phtml
Normal file
57
view/omeka/site/item-set/browse.phtml
Normal file
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
$escape = $this->plugin('escapeHtml');
|
||||
$this->headScript()->appendFile($this->assetUrl('js/browse.js'));
|
||||
$layoutSetting = $this->themeSetting('browse_layout');
|
||||
$gridState = ($layoutSetting == 'togglegrid') ? 'disabled' : '';
|
||||
$listState = ($layoutSetting == 'togglelist') ? 'disabled': '';
|
||||
$isGrid = (!isset($layoutSetting) || strpos($layoutSetting, 'grid') !== false) ? true : false;
|
||||
$headingTerm = $this->siteSetting('browse_heading_property_term');
|
||||
$bodyTerm = $this->siteSetting('browse_body_property_term');
|
||||
$bodyTruncate = $this->themeSetting('truncate_body_property');
|
||||
|
||||
$this->htmlElement('body')->appendAttribute('class', 'item-set resource browse');
|
||||
?>
|
||||
|
||||
<?php echo $this->pageTitle($translate('Item sets'), 2); ?>
|
||||
|
||||
<?php echo $this->searchFilters(); ?>
|
||||
|
||||
<?php echo $this->searchFilters(); ?>
|
||||
<div class="browse-control-mobile">
|
||||
<button type="button" class="browse-toggle closed">Tools</button>
|
||||
</div>
|
||||
<div class="browse-controls closed">
|
||||
<?php echo $this->pagination(); ?>
|
||||
<?php if (strpos($layoutSetting, 'toggle') !== false): ?>
|
||||
<div class="layout-toggle">
|
||||
<button type="button" aria-label="<?php echo $translate('Grid'); ?>" class="grid o-icon-grid" <?php echo $gridState; ?>></button>
|
||||
<button type="button" aria-label="<?php echo $translate('List'); ?>" class="list o-icon-list" <?php echo $listState; ?>></button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php $this->trigger('view.browse.before'); ?>
|
||||
<ul class="resources <?php echo ($isGrid) ? 'resource-grid' : 'resource-list'; ?>">
|
||||
<?php
|
||||
foreach ($itemSets as $itemSet):
|
||||
$heading = $headingTerm ? $itemSet->value($headingTerm, ['default' => $translate('[Untitled]')]) : $itemSet->displayTitle();
|
||||
$body = $bodyTerm ? $itemSet->value($bodyTerm) : $itemSet->displayDescription();
|
||||
?>
|
||||
<li class="item-set resource <?php echo ($isGrid) ? '' : 'media-object'; ?>">
|
||||
<?php if ($thumbnail = $this->thumbnail($itemSet, 'medium')): ?>
|
||||
<div class="resource-image <?php echo ($isGrid) ? '' : 'media-object-section'; ?>">
|
||||
<?php echo $itemSet->linkRaw($thumbnail, null, ['class' => 'thumbnail']); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="resource-meta <?php echo ($isGrid) ? '' : 'media-object-section'; ?>">
|
||||
<h4><?php echo $itemSet->link($heading); ?></h4>
|
||||
<?php if ($body): ?>
|
||||
<div class="description <?php echo ($bodyTruncate) ? $bodyTruncate : ''; ?>"><?php echo $body; ?></div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php $this->trigger('view.browse.after'); ?>
|
||||
<?php echo $this->pagination(); ?>
|
97
view/omeka/site/item/browse.phtml
Normal file
97
view/omeka/site/item/browse.phtml
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
$escape = $this->plugin('escapeHtml');
|
||||
$this->headScript()->appendFile($this->assetUrl('js/browse.js'));
|
||||
$this->htmlElement('body')->appendAttribute('class', 'item resource browse');
|
||||
|
||||
$query = $this->params()->fromQuery();
|
||||
$itemSetShow = isset($itemSet);
|
||||
if ($itemSetShow):
|
||||
$this->htmlElement('body')->appendAttribute('class', 'item-set');
|
||||
$query['item_set_id'] = $itemSet->id();
|
||||
endif;
|
||||
|
||||
$layoutSetting = $this->themeSetting('browse_layout');
|
||||
$gridState = ($layoutSetting == 'togglegrid') ? 'disabled' : '';
|
||||
$listState = ($layoutSetting == 'togglelist') ? 'disabled': '';
|
||||
$isGrid = (!isset($layoutSetting) || strpos($layoutSetting, 'grid') !== false) ? true : false;
|
||||
$headingTerm = $this->siteSetting('browse_heading_property_term');
|
||||
$bodyTerm = $this->siteSetting('browse_body_property_term');
|
||||
$bodyTruncate = $this->themeSetting('truncate_body_property');
|
||||
|
||||
$sortHeadings = [
|
||||
[
|
||||
'label' => $translate('Title'),
|
||||
'value' => 'dcterms:title'
|
||||
],
|
||||
[
|
||||
'label' => $translate('Identifier'),
|
||||
'value' => 'dcterms:identifier'
|
||||
],
|
||||
[
|
||||
'label' => $translate('Class'),
|
||||
'value' => 'resource_class_label'
|
||||
],
|
||||
[
|
||||
'label' => $translate('Created'),
|
||||
'value' => 'created'
|
||||
],
|
||||
];
|
||||
?>
|
||||
|
||||
<?php if ($itemSetShow): ?>
|
||||
<?php echo $this->pageTitle($itemSet->displayTitle(), 2); ?>
|
||||
<h3><?php echo $translate('Item set'); ?></h3>
|
||||
<div class="metadata">
|
||||
<?php echo $itemSet->displayValues(); ?>
|
||||
</div>
|
||||
<div class="item-set-items">
|
||||
<?php echo '<h3>' . $escape($translate('Items')) . '</h3>'; ?>
|
||||
<?php else: ?>
|
||||
<?php echo $this->pageTitle($translate('Items'), 2); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php echo $this->searchFilters(); ?>
|
||||
<div class="browse-control-mobile">
|
||||
<button type="button" class="browse-toggle closed">Tools</button>
|
||||
</div>
|
||||
<div class="browse-controls closed">
|
||||
<?php echo $this->pagination(); ?>
|
||||
<?php if (strpos($layoutSetting, 'toggle') !== false): ?>
|
||||
<div class="layout-toggle">
|
||||
<button type="button" aria-label="<?php echo $translate('Grid'); ?>" class="grid o-icon-grid" <?php echo $gridState; ?>></button>
|
||||
<button type="button" aria-label="<?php echo $translate('List'); ?>" class="list o-icon-list" <?php echo $listState; ?>></button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php echo $this->hyperlink($translate('Advanced search'), $this->url('site/resource', ['controller' => 'item', 'action' => 'search'], ['query' => $query], true), ['class' => 'advanced-search']); ?>
|
||||
<?php echo $this->sortSelector($sortHeadings); ?>
|
||||
</div>
|
||||
|
||||
<?php $this->trigger('view.browse.before'); ?>
|
||||
<ul class="resources <?php echo ($isGrid) ? 'resource-grid' : 'resource-list'; ?>">
|
||||
<?php
|
||||
foreach ($items as $item):
|
||||
$heading = $headingTerm ? $item->value($headingTerm, ['default' => $translate('[Untitled]')]) : $item->displayTitle();
|
||||
$body = $bodyTerm ? $item->value($bodyTerm) : $item->displayDescription();
|
||||
?>
|
||||
<li class="item resource <?php echo ($isGrid) ? '' : 'media-object'; ?>">
|
||||
<?php if ($thumbnail = $this->thumbnail($item, 'medium')): ?>
|
||||
<div class="resource-image <?php echo ($isGrid) ? '' : 'media-object-section'; ?>">
|
||||
<?php echo $item->linkRaw($thumbnail, null, ['class' => 'thumbnail']); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="resource-meta <?php echo ($isGrid) ? '' : 'media-object-section'; ?>">
|
||||
<h4><?php echo $item->link($heading); ?></h4>
|
||||
<?php if ($body): ?>
|
||||
<div class="description <?php echo ($bodyTruncate) ? $bodyTruncate : ''; ?>"><?php echo $body; ?></div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php echo ($itemSetShow) ? '</div>' : ''; ?>
|
||||
<?php $this->trigger('view.browse.after'); ?>
|
||||
|
||||
<div class="browse-controls">
|
||||
<?php echo $this->pagination(); ?>
|
||||
</div>
|
65
view/omeka/site/item/show.phtml
Normal file
65
view/omeka/site/item/show.phtml
Normal file
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
$escape = $this->plugin('escapeHtml');
|
||||
$this->htmlElement('body')->appendAttribute('class', 'item resource show');
|
||||
$embedMedia = $this->siteSetting('item_media_embed', false);
|
||||
$itemMedia = $item->media();
|
||||
$showLayout = $this->themeSetting('show_layout');
|
||||
?>
|
||||
|
||||
<div class="resource-title">
|
||||
<?php echo $this->pageTitle($item->displayTitle(), 2); ?>
|
||||
<h3 class="label"><?php echo $translate('Item'); ?></h3>
|
||||
</div>
|
||||
|
||||
<div class="grid-x">
|
||||
|
||||
<?php if ($embedMedia && $itemMedia): ?>
|
||||
<div class="media-embeds">
|
||||
<?php foreach ($itemMedia as $media):
|
||||
echo $media->render();
|
||||
endforeach;
|
||||
?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if (!$embedMedia && $itemMedia): ?>
|
||||
<div class="media-list">
|
||||
<?php foreach ($itemMedia as $media): ?>
|
||||
<?php echo $media->linkPretty(); ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div id="resource-values" class="<?php echo ($showLayout == 'inline') ? 'inline' : 'stack'; ?>">
|
||||
<?php $this->trigger('view.show.before'); ?>
|
||||
<?php echo $item->displayValues(); ?>
|
||||
<?php $itemSets = $item->itemSets(); ?>
|
||||
<dl>
|
||||
<?php if (count($itemSets) > 0): ?>
|
||||
<div class="property">
|
||||
<dt><?php echo $translate('Item sets'); ?></dt>
|
||||
<div class="values">
|
||||
<?php foreach ($itemSets as $itemSet): ?>
|
||||
<dd class="value"><a href="<?php echo $escape($itemSet->url()); ?>"><?php echo $itemSet->displayTitle(); ?></a></dd>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</dl>
|
||||
|
||||
<?php
|
||||
$page = $this->params()->fromQuery('page', 1);
|
||||
$property = $this->params()->fromQuery('property');
|
||||
$subjectValues = $item->displaySubjectValues($page, 25, $property);
|
||||
?>
|
||||
<?php if ($subjectValues): ?>
|
||||
<div id="item-linked">
|
||||
<h3><?php echo $translate('Linked resources'); ?></h3>
|
||||
<?php echo $subjectValues; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php $this->trigger('view.show.after'); ?>
|
||||
</div>
|
||||
|
||||
</div>
|
13
view/omeka/site/media/show.phtml
Normal file
13
view/omeka/site/media/show.phtml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
$translate = $this->plugin('translate');
|
||||
?>
|
||||
<?php $this->htmlElement('body')->appendAttribute('class', 'media resource show'); ?>
|
||||
|
||||
<div class="resource-title">
|
||||
<?php echo $this->pageTitle($media->displayTitle(), 2); ?>
|
||||
<h3 class="label"><?php echo $translate('Media'); ?></h3>
|
||||
</div>
|
||||
<?php $this->trigger('view.show.before'); ?>
|
||||
<?php echo $media->render(); ?>
|
||||
<?php echo $media->displayValues(); ?>
|
||||
<?php $this->trigger('view.show.after'); ?>
|
38
view/omeka/site/page/show.phtml
Normal file
38
view/omeka/site/page/show.phtml
Normal file
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
$this->htmlElement('body')->appendAttribute('class', 'page ' . $page->slug());
|
||||
$this->pageTitle($page->title(), 2);
|
||||
$showPagePagination = $this->siteSetting('show_page_pagination', true);
|
||||
?>
|
||||
|
||||
<?php
|
||||
$nav = $site->publicNav();
|
||||
$container = $nav->getContainer();
|
||||
$activePage = $nav->findActive($container);
|
||||
if ($activePage):
|
||||
?>
|
||||
<?php if ($activePage['depth'] !== 0): ?>
|
||||
<nav class="breadcrumbs"><?php echo $nav->breadcrumbs()->setPartial('common/foundation-breadcrumbs'); ?></nav>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($activePage): ?>
|
||||
<?php if ($this->displayNavigation && $activePage['page']->hasPages()): ?>
|
||||
<nav class="sub-menu wide" data-sticky-container>
|
||||
<div class="sticky" data-sticky data-anchor="blocks">
|
||||
<?php echo $nav->menu()->setUlClass('vertical menu')->renderSubMenu(); ?>
|
||||
</div>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php $this->trigger('view.show.before'); ?>
|
||||
<div id="blocks" class="blocks">
|
||||
<?php echo $this->content; ?>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<?php $this->trigger('view.show.after'); ?>
|
||||
<?php if ($showPagePagination): ?>
|
||||
<?php echo $this->sitePagePagination(); ?>
|
||||
<?php endif; ?>
|
Loading…
Reference in a new issue