Commit e1b0e9f1 authored by Tobias Buckdahn's avatar Tobias Buckdahn

Merge branch 'feature/search' into 'master'

Search

See merge request !3
parents 1ad143c7 9ca0ee3d
......@@ -34,4 +34,8 @@ git:
sitemap:
url: https://github.com/getgrav/grav-plugin-sitemap
path: user/plugins/sitemap
branch: master
\ No newline at end of file
branch: master
tntsearch:
url: https://github.com/brickcamp/grav-plugin-tntsearch
path: user/plugins/tntsearch
branch: brickcamp-nojs-search
\ No newline at end of file
.vscode/settings.json
brick-camp.code-workspace
!.gitignore
\ No newline at end of file
data/brick-camp/*
!data/brick-camp/*.sh
data/form-files/**
data/tntsearch/**
pages/images/tax-part/**
!pages/images/tax-part/.gitkeep
\ No newline at end of file
enabled: true
search_route: '/search'
query_route: '/s'
built_in_css: false
built_in_js: true
built_in_search_page: true
enable_admin_page_events: false
search_type: auto
fuzzy: false
phrases: true
stemmer: default
display_route: true
display_hits: true
display_time: true
live_uri_update: true
limit: 12
min: 3
snippet: 300
index_page_by_default: true
scheduled_index:
enabled: false
at: '0 */3 * * *'
logs: 'logs/tntsearch-index.out'
filter:
items:
- root@.descendants
powered_by: false
search_object_type: Grav
---
title: Search
module_wrapper_classes: 'col-12'
---
\ No newline at end of file
......@@ -10,6 +10,7 @@ content:
dir: asc
custom:
- _intro
- _search
- _newest
- _categories
- _about
......
......@@ -10,6 +10,7 @@ content:
dir: asc
custom:
- _intro
- _search
- _newest
- _categories
- _about
......
---
title: Status Board
subtitle: Overview of Techs
published: false
---
https://getbootstrap.com/docs/4.2/components/progress/
......
---
title: 'Noppen-Tilt'
icon: icon.png
redirect: '/de/techs/rotations/function:stud_tilt'
link: '/de/techs/rotations/function:stud_tilt'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,7 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
SNOT
SNOT = Studs Not On Top
Noppen zeigen nicht nach oben
\ No newline at end of file
---
title: 'Stud Tilt'
icon: icon.png
redirect: '/en/techs/rotations/function:stud_tilt'
link: '/en/techs/rotations/function:stud_tilt'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,6 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
SNOT = Studs Not On Top
Studs Not Up / On Upside
\ No newline at end of file
---
title: 'Noppen-Twist'
icon: icon.png
redirect: '/de/techs/rotations/function:stud_twist'
link: '/de/techs/rotations/function:stud_twist'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,11 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
SNARL
SNARL = Studs Not At Right Angles
Noppen nicht im rechten Winkel / im Raster
SNIR
SNIR = Studs Not In a Row
Noppen nicht in einer Reihe
\ No newline at end of file
---
title: 'Stud Twist'
icon: icon.png
redirect: '/en/techs/rotations/function:stud_twist'
link: '/en/techs/rotations/function:stud_twist'
sitemap:
ignore: true
content:
items:
- '@taxonomy.function': 'stud_twist'
filter:
published: true
type: 'tech'
---
\ No newline at end of file
type: 'tech'
---
SNARL
SNARL = Studs Not At Right Angles
SNIR
SNIR = Studs Not In a Row
\ No newline at end of file
---
title: 'Noppen-Lift'
icon: 'icon.png'
redirect: '/de/techs/offsets/function:stud_lift'
link: '/de/techs/offsets/function:stud_lift'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,7 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Noppen anheben
Abstand verkleinern
Hoch Höher
\ No newline at end of file
---
title: 'Stud Lift'
icon: 'icon.png'
redirect: '/en/techs/offsets/function:stud_lift'
link: '/en/techs/offsets/function:stud_lift'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,6 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Higher studs
Lower distance
\ No newline at end of file
---
title: 'Noppen-Shift'
icon: 'icon.png'
redirect: '/de/techs/offsets/function:stud_shift'
link: '/de/techs/offsets/function:stud_shift'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,5 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Noppe / Studs verschieben
\ No newline at end of file
---
title: 'Stud Shift'
icon: 'icon.png'
redirect: '/en/techs/offsets/function:stud_shift'
link: '/en/techs/offsets/function:stud_shift'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,5 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Lower distance
\ No newline at end of file
---
title: 'Lineare Muster'
icon: 'icon.png'
redirect: '/de/techs/patterns/function:pattern_1D'
link: '/de/techs/patterns/function:pattern_1D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,7 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Linie
Zeile
Dekoration
\ No newline at end of file
---
title: 'Linear Patterns'
icon: 'icon.png'
redirect: '/en/techs/patterns/function:pattern_1D'
link: '/en/techs/patterns/function:pattern_1D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,7 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Row
Line
Decoration
\ No newline at end of file
---
title: 'Planare Muster'
icon: 'icon.png'
redirect: '/de/techs/patterns/function:pattern_2D'
link: '/de/techs/patterns/function:pattern_2D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,10 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Fußboden
Decke
Wand
Dekoration
Mosaik
Puzzle
\ No newline at end of file
---
title: 'Planar Patterns'
icon: 'icon.png'
redirect: '/en/techs/patterns/function:pattern_2D'
link: '/en/techs/patterns/function:pattern_2D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,10 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
floor
ceiling
wall
decoration
mosaic
puzzle
\ No newline at end of file
......@@ -2,7 +2,9 @@
title: 'Räumliche Muster'
icon: 'icon.png'
published: false
redirect: '/de/techs/patterns/function:pattern_3D'
link: '/de/techs/patterns/function:pattern_3D'
sitemap:
ignore: true
content:
items:
......
......@@ -2,7 +2,9 @@
title: 'Spatial Patterns'
icon: 'icon.png'
published: false
redirect: '/en/techs/patterns/function:pattern_3D'
link: '/en/techs/patterns/function:pattern_3D'
sitemap:
ignore: true
content:
items:
......
---
title: 'Flächen'
icon: icon.png
redirect: '/de/techs/shapes/function:shape_2D'
link: '/de/techs/shapes/function:shape_2D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,13 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Flach Form Formen
Dreieck
Viereck Quadrat Rechteck
Fünfeck Pentagon
Sechseck Hexagon
Siebeneck Heptagon
Achteck Oktagon
Kreis
\ No newline at end of file
---
title: 'Forms'
icon: icon.png
redirect: '/en/techs/shapes/function:shape_2D'
link: '/en/techs/shapes/function:shape_2D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,13 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Flat shapes
Triangle
Rechtangle Square
Pentagon
Hexagon
Heptagon
Octagon
Decagon
Circle
\ No newline at end of file
---
title: 'Körper'
icon: icon.png
redirect: '/de/techs/shapes/function:shape_3D'
link: '/de/techs/shapes/function:shape_3D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,7 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Kugel
Quader Cuboid
Box
\ No newline at end of file
---
title: 'Bodies'
icon: icon.png
redirect: '/en/techs/shapes/function:shape_3D'
link: '/en/techs/shapes/function:shape_3D'
sitemap:
ignore: true
content:
items:
......@@ -9,4 +11,7 @@ content:
filter:
published: true
type: 'tech'
---
\ No newline at end of file
---
Box
Sphere
Cuboid
\ No newline at end of file
---
title: 'Älteste'
icon: 'icon.png'
redirect: '/techs/orderby:date/orderdir:asc'
link: '/techs/orderby:date/orderdir:asc'
sitemap:
ignore: true
content:
items:
......
---
title: 'Oldest'
icon: 'icon.png'
redirect: '/techs/orderby:date/orderdir:asc'
link: '/techs/orderby:date/orderdir:asc'
sitemap:
ignore: true
content:
items:
......
---
title: 'Neueste'
icon: 'icon.png'
redirect: '/techs/orderby:date/orderdir:desc'
link: '/techs/orderby:date/orderdir:desc'
sitemap:
ignore: true
content:
items:
......
---
title: 'Newest'
icon: 'icon.png'
redirect: '/techs/orderby:date/orderdir:desc'
link: '/techs/orderby:date/orderdir:desc'
sitemap:
ignore: true
content:
items:
......
---
title: Erfolgreich versendet!
tntsearch:
index: false
sitemap:
ignore: true
---
![Brick.Camp Logo](themes://brick-camp/images/logo_large.png?cropResize=150,150&classes=mx-auto,d-block,img-fluid)
......
---
title: Sent successfully!
tntsearch:
index: false
sitemap:
ignore: true
---
![Brick.Camp Logo](themes://brick-camp/images/logo_large.png?cropResize=150,150&classes=mx-auto,d-block,img-fluid)
......
---
title: Impressum
tntsearch:
index: false
---
### Seiteninhaber
......
---
title: Impressum
subtitle: Legal Disclosure
tntsearch:
index: false
---
_This page is a legal requirement enforced by the ["Telemediengesetz"](https://de.wikipedia.org/wiki/Telemediengesetz). It has to be included in websites published in Germany and states the ownership and authorship of the [BrickCamp](https://brick.camp) website and it's content. For that sake, it's written in German._
......
---
title: Datenschutz
tntsearch:
index: false
---
_**TL;DR:** Kein Tracking. Keine Werbung. Keine Datensammlung._
......
---
title: Privacy
subtitle: Data Policy
tntsearch:
index: false
---
_**TL;DR:** No tracking. No Ads. No data collection._
......
tax-part/**
!tax-part/.gitkeep
\ No newline at end of file
---
title: Dummy
published: false
tntsearch:
index: false
sitemap:
ignore: true
---
\ No newline at end of file
---
title: Suche
---
\ No newline at end of file
---
title: Search
---
\ No newline at end of file
---
title: Footer
routable: false
tntsearch:
index: false
sitemap:
ignore: true
content:
items:
......
---
title: Footer
routable: false
tntsearch:
index: false
sitemap:
ignore: true
content:
items:
......
---
title: Menu
routable: false
tntsearch:
index: false
sitemap:
ignore: true
menu-items:
items:
......
/*! Icons.css v0.1.0 | MIT License | github.com/picturepan2/icons.css */.icon{box-sizing:border-box;display:inline-block;font-size:inherit;font-style:normal;height:1em;position:relative;text-indent:-9999px;vertical-align:middle;width:1em}.icon::after,.icon::before{content:"";display:block;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.icon.icon-2x{font-size:32px}.icon.icon-3x{font-size:48px}.icon.icon-4x{font-size:64px}.icon-apps::before{background:currentColor;box-shadow:-.35em -.35em,-.35em 0,-.35em .35em,0 -.35em,0 .35em,.35em -.35em,.35em 0,.35em .35em;height:.15em;width:.15em}.icon-arrow-down::before,.icon-arrow-left::before,.icon-arrow-right::before,.icon-arrow-up::before,.icon-back::before,.icon-downward::before,.icon-forward::before,.icon-upward::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.65em;width:.65em}.icon-arrow-down::before{transform:translate(-50%,-75%) rotate(225deg)}.icon-arrow-left::before{transform:translate(-25%,-50%) rotate(-45deg)}.icon-arrow-right::before{transform:translate(-75%,-50%) rotate(135deg)}.icon-arrow-up::before{transform:translate(-50%,-25%) rotate(45deg)}.icon-back::after,.icon-forward::after{background:currentColor;height:.1rem;width:.8em}.icon-downward::after,.icon-upward::after{background:currentColor;height:.8em;width:.1rem}.icon-back::after{left:55%}.icon-back::before{transform:translate(-50%,-50%) rotate(-45deg)}.icon-downward::after{top:45%}.icon-downward::before{transform:translate(-50%,-50%) rotate(-135deg)}.icon-forward::after{left:45%}.icon-forward::before{transform:translate(-50%,-50%) rotate(135deg)}.icon-upward::after{top:55%}.icon-upward::before{transform:translate(-50%,-50%) rotate(45deg)}.icon-caret::before{border-left:.3em solid transparent;border-right:.3em solid transparent;border-top:.3em solid currentColor;height:0;transform:translate(-50%,-25%);width:0}.icon-menu::before{background:currentColor;box-shadow:0 -.35em,0 .35em;height:.1rem;width:100%}.icon-more-horiz::before,.icon-more-vert::before{background:currentColor;border-radius:50%;box-shadow:-.4em 0,.4em 0;height:.2em;width:.2em}.icon-more-vert::before{box-shadow:0 -.4em,0 .4em}.icon-bookmark::before{border:.1rem solid currentColor;border-bottom:0;border-top-left-radius:.1rem;border-top-right-radius:.1rem;height:.9em;width:.85em}.icon-bookmark::after{border:.1rem solid currentColor;border-bottom:0;border-left:0;border-radius:.1rem;height:.5em;transform:translate(-50%,.2em) rotate(-45deg) skew(15deg,15deg);width:.5em}.icon-check::before{border:.1rem solid currentColor;border-right:0;border-top:0;height:.5em;transform:translate(-50%,-.375em) rotate(-45deg);width:.9em}.icon-close::before{background:currentColor;height:.1rem;width:100%}.icon-close::after{background:currentColor;height:100%;width:.1rem}.icon-close::after,.icon-close::before{transform:translate(-50%,-50%) rotate(45deg)}.icon-copy::before{border:.1rem solid currentColor;border-bottom-color:transparent;border-radius:.1em;border-right-color:transparent;height:.8em;left:40%;top:40%;width:.7em}.icon-copy::after{border:.1rem solid currentColor;border-radius:.1em;height:.8em;left:60%;top:60%;width:.7em}.icon-delete::before{border:.1rem solid currentColor;border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top:0;height:.6em;top:70%;width:.75em}.icon-delete::after{background:currentColor;box-shadow:-.2em .2em,.2em .2em;height:.1rem;top:.05rem;width:.5em}.icon-download{border-bottom:.1rem solid currentColor}.icon-download::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.5em;transform:translate(-50%,-.3em) rotate(-135deg);width:.5em}.icon-download::after{background:currentColor;height:.6em;top:40%;width:.1rem}.icon-edit::before{border:.1rem solid currentColor;height:.4em;transform:translate(-.35em,-.25em) rotate(-45deg);width:.85em}.icon-edit::after{border:.15em solid currentColor;border-right-color:transparent;border-top-color:transparent;height:0;left:5%;top:95%;transform:translate(0,-100%);width:0}.icon-flag::before{background:currentColor;height:1em;left:10%;width:.1rem}.icon-flag::after{border:.1rem solid currentColor;border-bottom-right-radius:.1em;border-left:0;border-top-right-radius:.1em;height:.7em;left:52%;top:35%;width:.85em}.icon-minus::before{background:currentColor;height:.1rem;width:100%}.icon-plus::before{background:currentColor;height:.1rem;width:100%}.icon-plus::after{background:currentColor;height:100%;width:.1rem}.icon-refresh::before{border:.1rem solid currentColor;border-radius:50%;border-right-color:transparent;height:1em;width:1em}.icon-refresh::after{border:.2em solid currentColor;border-left-color:transparent;border-top-color:transparent;height:0;left:80%;top:20%;width:0}.icon-resize-horiz::after,.icon-resize-horiz::before,.icon-resize-vert::after,.icon-resize-vert::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.4em;width:.4em}.icon-resize-horiz::before,.icon-resize-vert::before{transform:translate(-50%,-90%) rotate(45deg)}.icon-resize-horiz::after,.icon-resize-vert::after{transform:translate(-50%,-10%) rotate(225deg)}.icon-resize-horiz::before{transform:translate(-90%,-50%) rotate(-45deg)}.icon-resize-horiz::after{transform:translate(-10%,-50%) rotate(135deg)}.icon-search::before{border:.1rem solid currentColor;border-radius:50%;height:.75em;left:5%;top:5%;transform:translate(0,0) rotate(45deg);width:.75em}.icon-search::after{background:currentColor;height:.1rem;left:80%;top:80%;transform:translate(-50%,-50%) rotate(45deg);width:.4em}.icon-share{border:.1rem solid currentColor;border-radius:.1rem;border-right:0;border-top:0}.icon-share::before{border:.1rem solid currentColor;border-left:0;border-top:0;height:.4em;left:100%;top:.25em;transform:translate(-125%,-50%) rotate(-45deg);width:.4em}.icon-share::after{border:.1rem solid currentColor;border-bottom:0;border-radius:75% 15%;border-right:0;height:.6em;top:55%;width:.6em}.icon-shutdown{border:.1rem solid currentColor;border-radius:50%;border-top-color:transparent}.icon-shutdown::before{background:currentColor;content:"";height:.5em;top:.1em;width:.1rem}.icon-stop{border:.1rem solid currentColor;border-radius:50%}.icon-stop::before{background:currentColor;height:.1rem;transform:translate(-50%,-50%) rotate(45deg);width:1em}.icon-upload{border-bottom:.1rem solid currentColor}.icon-upload::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.5em;transform:translate(-50%,-60%) rotate(45deg);width:.5em}.icon-upload::after{background:currentColor;height:.6em;top:50%;width:.1rem}.icon-audio{border:.1rem solid currentColor;border-radius:.4em;height:.6em;margin:-.4em .3em 0 .3em;width:.4em}.icon-audio::before{background:currentColor;height:.15em;transform:translate(-50%,.45em);width:.1rem}.icon-audio::after{border:.1rem solid currentColor;border-bottom-color:transparent;border-radius:50%;border-right-color:transparent;height:.7em;transform:translate(-50%,-35%) rotate(-135deg);width:.7em}.icon-emoji{border:.1rem solid currentColor;border-radius:50%}.icon-emoji::before{border-radius:50%;box-shadow:-.17em -.15em,.17em -.15em;height:.15rem;width:.15rem}.icon-emoji::after{border:.1rem solid currentColor;border-bottom-color:transparent;border-radius:50%;border-right-color:transparent;height:.5em;transform:translate(-50%,-.2em) rotate(-135deg);width:.5em}.icon-link::after,.icon-link::before{border:.1rem solid currentColor;border-radius:5em 0 0 5em;border-right:0;height:.5em;width:.75em}.icon-link::before{transform:translate(-70%,-45%) rotate(-45deg)}.icon-link::after{transform:translate(-30%,-55%) rotate(135deg)}.icon-location::before{border:.1rem solid currentColor;border-radius:50% 50% 50% 0;height:.8em;transform:translate(-50%,-60%) rotate(-45deg);width:.8em}.icon-location::after{border:.1rem solid currentColor;border-radius:50%;height:.3em;transform:translate(-50%,-.25em);width:.3em}.icon-mail::before{border:.1rem solid currentColor;border-radius:.1rem;height:.8em;width:1em}.icon-mail::after{border:.1rem solid currentColor;border-right:0;border-top:0;height:.5em;transform:translate(-50%,-.45em) rotate(-45deg) skew(10deg,10deg);width:.5em}.icon-message{border:.1rem solid currentColor;border-bottom:0;border-radius:.1rem;border-right:0}.icon-message::before{border:.1rem solid currentColor;border-bottom-right-radius:.1rem;border-left:0;border-top:0;height:.8em;left:65%;top:35%;width:.75em}.icon-message::after{background:currentColor;border-radius:.1rem;height:.35em;left:7%;top:100%;transform:translate(0,-.32em) rotate(45deg);width:.1rem}.icon-person::before{border:.1rem solid currentColor;border-radius:50%;height:.45em;top:25%;width:.45em}.icon-person::after{border:.1rem solid currentColor;border-radius:50% 50% 0 0;height:.4em;top:75%;width:.9em}.icon-photo{border:.1rem solid currentColor;border-radius:.1rem}.icon-photo::before{border:.1rem solid currentColor;border-radius:50%;height:.3em;left:35%;top:35%;width:.3em}.icon-photo::after{border:.1rem solid currentColor;border-bottom:0;border-left:0;height:.5em;left:60%;transform:translate(-45%,25%) rotate(-45deg);width:.5em}.icon-time{border:.1rem solid currentColor;border-radius:50%}.icon-time::before{background:currentColor;height:.4em;transform:translate(-50%,-75%);width:.1rem}.icon-time::after{background:currentColor;height:.25em;transform:translate(-50%,-75%) rotate(125deg);transform-origin:50% 100%;width:.1rem}
\ No newline at end of file
en:
PLUGIN_TNTSEARCH:
FOUND_RESULTS: "Found %s results"
FOUND_IN: "in <span>%s</span>"
SEARCH_PLACEHOLDER: 'Search ...'
META:
DESCRIPTION: 'A visual dictionary for LEGO® building techniques'
......@@ -84,6 +89,11 @@ en:
de:
PLUGIN_TNTSEARCH:
FOUND_RESULTS: "%s Treffer"
FOUND_IN: "in <span>%s</span>"
SEARCH_PLACEHOLDER: 'Suche ...'
META:
DESCRIPTION: 'Ein grafisches Nachschlagewerk für LEGO® Bautechniken'
......
{% extends 'modular/base.html.twig' %}
{% set item_wrapper_classes = page.header.item_wrapper_classes %}
{% block module_header %}{% endblock %}
{% block module_content %}
{% include 'partials/search.html.twig' with { in_page: 0, live_update: 0}%}
{% endblock %}
\ No newline at end of file
......@@ -39,6 +39,7 @@
{% block stylesheets %}
{% do assets.addCss('theme://css/app.css', '50') %}
{% do assets.addCss('theme://css/icons.min.css', '55') %}
{% do assets.addCss('theme://css/bootstrap.min.css', '97') %}
{% endblock stylesheets %}
{{ assets.css()|raw }}
......
......@@ -17,7 +17,7 @@
<ul class="navbar-nav text-center ml-auto">
{% for item in collection %}
<li class="nav-item show mr-sm-1 mr-xl-2">
<a class="nav-link" href="{{ item.redirect ?: item.url }}" title="{{ item.menu }}">
<a class="nav-link" href="{{ item.redirect ?: item.header.link ?: item.url }}" title="{{ item.menu }}">
<span class="d-inline-block"><img class="img-fluid" src="{{ item.media[item.header.icon].resize(32, 32).url }}" alt="{{ item.menu }}"></span>
<span class="d-none d-md-inline-block {{ item.active ? 'font-weight-bold' }}">{{ item.menu }}</span>
</a>
......
......@@ -7,7 +7,7 @@
{% if item_show_image %}
{% block item_image %}
<a href="{{ page.redirect ?: page.url }}" class="{{ item_image_link_classes ?: 'card-image test' }}">
<a href="{{ page.redirect ?: page.header.link ?: page.url }}" class="{{ item_image_link_classes ?: 'card-image test' }}">
{% set item_image = item_image ?: page.header.image ?: 'themes://brick-camp/images/no_image.png' %}
<img
class="{{ item_image_classes ?: 'card-img-top img-fluid w-auto' }}"
......@@ -30,12 +30,12 @@
{% if item_show_footer %}
<div class="card-footer {{ page.header.icon ? 'd-flex justify-content-between align-items-center py-1 pr-1' }}">
{% block item_footer %}
<a href="{{ page.redirect ?: page.url }}" class="text-dark" tabindex="-1">
<a href="{{ page.redirect ?: page.header.link ?: page.url }}" class="text-dark" tabindex="-1">
<span class="caption text-truncate {{ page.header.icon ? '' : 'd-block' }}">{{ page.title }}</span>
</a>
{% if page.header.icon %}
<a href="{{ page.redirect ?: page.url }}" tabindex="-1">
<a href="{{ page.redirect ?: page.header.link ?: page.url }}" tabindex="-1">