1
0
Fork 0

Compare commits

..

No commits in common. "702483e599b54a4cc6bcf3987a4c90159f9579a2" and "80004a968c85040e028aea509f6e71b11f6f42c0" have entirely different histories.

81 changed files with 10509 additions and 547 deletions

4
.gitignore vendored
View file

@ -1,8 +1,8 @@
.DS_Store
/site/accounts
/site/cache
/site/sessions
/media
/assets/avatars
/thumbs
/content
/video

23
.gitmodules vendored
View file

@ -1,6 +1,18 @@
[submodule "kirby"]
path = kirby
url = https://github.com/getkirby/kirby.git
url = https://github.com/getkirby-v2/kirby
[submodule "panel"]
path = panel
url = https://github.com/getkirby-v2/panel
[submodule "modules/kirby-template-sitemap"]
path = modules/kirby-template-sitemap
url = https://github.com/jbeyerstedt/kirby-template-sitemap
[submodule "modules/kirby-plugin-thumbExt"]
path = modules/kirby-plugin-thumbExt
url = https://github.com/jbeyerstedt/kirby-plugin-thumbExt.git
[submodule "modules/kirby-plugin-kirbytextRaw"]
path = modules/kirby-plugin-kirbytextRaw
url = https://github.com/jbeyerstedt/kirby-plugin-kirbytextRaw
[submodule "modules/kirby-site-snippets"]
path = modules/kirby-site-snippets
url = https://github.com/jbeyerstedt/kirby-site-snippets.git
@ -10,10 +22,13 @@
[submodule "assets/vendors/masonry"]
path = assets/vendors/masonry
url = https://github.com/desandro/masonry.git
[submodule "modules/kirby-kirbytag-html5video"]
path = modules/kirby-kirbytag-html5video
url = https://github.com/jbeyerstedt/kirby-kirbytag-html5video.git
[submodule "assets/vendors/bootstrap"]
path = assets/vendors/bootstrap
url = https://github.com/twbs/bootstrap.git
branch = v4-dev
[submodule "site/plugins/kirbytag-download"]
path = site/plugins/kirbytag-download
url = https://github.com/jbeyerstedt/kirby-kirbytag-download
[submodule "modules/columns-plugin"]
path = modules/columns-plugin
url = https://github.com/getkirby-v2/columns-plugin

View file

@ -1,39 +1,26 @@
# Kirby .htaccess
# revision 2020-06-15
# rewrite rules
<IfModule mod_rewrite.c>
# enable awesome urls. i.e.:
# http://yourdomain.com/about-us/team
RewriteEngine on
# make sure to set the RewriteBase correctly
# if you are running the site in a subfolder;
# otherwise links or the entire site will break.
#
# If your homepage is http://yourdomain.com/mysite,
# set the RewriteBase to:
#
# RewriteBase /mysite
# In some environments it's necessary to
# set the RewriteBase to:
#
RewriteBase /
# block files and folders beginning with a dot, such as .git
# except for the .well-known folder, which is used for Let's Encrypt and security.txt
RewriteRule (^|/)\.(?!well-known\/) index.php [L]
# block all files in the content folder from being accessed directly
RewriteRule ^content/(.*) index.php [L]
# block text files in the content folder from being accessed directly
RewriteRule ^content/(.*)\.(txt|md|mdown)$ index.php [L]
# block all files in the site folder from being accessed directly
# except for requests to plugin assets files
RewriteRule ^assets/plugins/([a-zA-Z0-9\.\-_%=]+)/(.*)$ site/plugins/$1/assets/$2 [L,N]
RewriteCond $1 !^plugins/[a-zA-Z0-9\.\-_%=]+/assets/.*
RewriteRule ^site/(.*) index.php [L]
# block direct access to Kirby and the Panel sources
RewriteRule ^kirby/(.*) index.php [L]
# block direct access to kirby and the panel sources
RewriteRule ^(kirby|panel\/app|panel\/tests)/(.*) index.php [L]
# make panel links work
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^panel/(.*) panel/index.php [L]
# make site links work
RewriteCond %{REQUEST_FILENAME} !-f
@ -42,24 +29,7 @@ RewriteRule ^(.*) index.php [L]
</IfModule>
# pass the Authorization header to PHP
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
# compress text file responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
## Custom htaccess
<IfModule mod_rewrite.c>
# block update scripts
RewriteRule ^(.*).sh$ error [R=301,L]
@ -68,6 +38,26 @@ RewriteRule ^.git/(.*) error [R=301,L]
RewriteRule ^.gitattributes error [R=301,L]
RewriteRule ^.gitignore error [R=301,L]
RewriteRule ^.gitmodules error [R=301,L]
# enable gzip compressed transfer
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# Don't compress images
#SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
# enable browser caching headers

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -1,3 +1,3 @@
body{color:#fff}div.site-wrap{background-color:#424242}a{color:#34c501}a:active,a:hover{color:#41f801}main p a:visited{color:#ccc}@media (min-width: 576px){nav ul.nav{color:#fff}nav ul.nav a.section:hover,nav ul.nav a.section:focus{border:none}}@media (max-width: 575.98px){label[for="nav-trigger"]{color:#fff;background-color:#424242}}footer{background-color:#303030;color:#e6e6e6}div.carousel{max-width:1300px;margin:0 auto}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:50% / 100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.carousel-inner>.carousel-item>img{width:100%}
body{color:#fff}div.site-wrap{background-color:#424242}a{color:#34c501}a:active,a:hover{color:#41f801}main p a:visited{color:#ccc}@media (min-width: 576px){nav ul.nav{color:#fff}nav ul.nav a.section:hover,nav ul.nav a.section:focus{border:none}}@media (max-width: 575.98px){label[for="nav-trigger"]{color:#fff;background-color:#424242}}footer{background-color:#303030;color:#e6e6e6}div.carousel{max-width:1300px;margin:0 auto}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-left),.active.carousel-item-right{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-right),.active.carousel-item-left{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity 0.15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50% / 100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity 0.6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.carousel-inner>.carousel-item>img{width:100%}
/*# sourceMappingURL=photo.css.map */

Binary file not shown.

Binary file not shown.

View file

@ -1,3 +1,3 @@
.card{margin-bottom:30px}.card a{color:#000}.card a:active,.card a:hover{color:#000;text-decoration:none}.card a.card-link:active,.card a.card-link:hover{text-decoration:underline}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-top,.card-img-bottom{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.card-img-top{width:100%}
.card{margin-bottom:30px}.card a{color:#000}.card a:active,.card a:hover{color:#000;text-decoration:none}.card a.card-link:active,.card a.card-link:hover{text-decoration:underline}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width: 576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width: 576px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-img-top,.card-group>.card:not(:last-child) .card-header{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-img-bottom,.card-group>.card:not(:last-child) .card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-img-top,.card-group>.card:not(:first-child) .card-header{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-img-bottom,.card-group>.card:not(:first-child) .card-footer{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width: 576px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.card-img-top{width:100%}
/*# sourceMappingURL=projects.css.map */

View file

@ -310,29 +310,60 @@ $header_height: 2*$header_logoPadg + $header_logoSize + 4px; // + weird "padding
*/
/*
* KIRBY PLUGIN columns
* KIRBY PLUGIN columns by Bastians Allgeier
*/
$cols-breakdown-width: 600px;
$cols-pad: 15px;
.columns {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
margin-left: -$cols-pad;
margin-right: -$cols-pad;
}
margin-left: -$cols-pad;
.column {
flex: 0 1 100%;
margin-left: $cols-pad;
margin-right: $cols-pad;
max-width: 100%;
}
@media (min-width: $cols-breakdown-width) {
.column {
flex: 1;
&:before {
display: table;
content: " ";
}
&:after {
clear: both;
display: table;
content: " ";
}
}
.column {
padding-right: $cols-pad;
padding-left: $cols-pad;
display: block;
float: left;
position: relative;
min-height: 1px;
}
.columns-1 .column {
width: 100%;
}
.columns-2 .column {
width: 50%;
@media(max-width: $cols-breakdown-width) {
width: 100%;
}
}
.columns-3 .column {
width: 33.33%;
@media(max-width: $cols-breakdown-width) {
width: 100%;
}
}
.columns-4 .column {
width: 25%;
@media(max-width: $cols-breakdown-width*2) {
width: 50%;
}
@media(max-width: $cols-breakdown-width) {
width: 100%;
}
}
.columns-5 .column {
width: 20%;
}

@ -1 +1 @@
Subproject commit 6ffb0b48e455430f8a5359ed689ad64c1143fac2
Subproject commit 8fa0d3010112dca5dd6dd501173415856001ba8b

9842
assets/vendors/jquery-2.2.2.js vendored Normal file

File diff suppressed because it is too large Load diff

5
assets/vendors/jquery-2.2.2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
assets/vendors/jquery-2.2.2.min.map vendored Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -1 +1 @@
Subproject commit ef32e09af998d206f563cdf2962cc954c76627b1
Subproject commit c6227436cdeef6237652d9bf7d3cf3b6bd9fc252

View file

@ -1,5 +1,16 @@
<?php
require 'kirby/bootstrap.php';
define('DS', DIRECTORY_SEPARATOR);
echo (new Kirby)->render();
// load kirby
require(__DIR__ . DS . 'kirby' . DS . 'bootstrap.php');
// check for a custom site.php
if(file_exists(__DIR__ . DS . 'site.php')) {
require(__DIR__ . DS . 'site.php');
} else {
$kirby = kirby();
}
// render
echo $kirby->launch();

2
kirby

@ -1 +1 @@
Subproject commit 551e2f427eaf18e471df1c304552ab3de35e37c6
Subproject commit e3bc4e4277859249cff1a67c333a5544766cad31

@ -0,0 +1 @@
Subproject commit 57b4ccd2c12db25860baa8d3486bf42cacce05a6

View file

@ -1,28 +0,0 @@
<?php
# from https://getkirby.com/docs/cookbook/extensions/columns-in-kirbytext
# copied at 2021-01-23
Kirby::plugin('kirby/columns', [
'hooks' => [
'kirbytags:before' => function ($text, array $data = []) {
$text = preg_replace_callback('!\(columns(…|\.{3})\)(.*?)\((…|\.{3})columns\)!is', function($matches) use($text, $data) {
$columns = preg_split('!(\n|\r\n)\+{4}\s+(\n|\r\n)!', $matches[2]);
$html = [];
$classItem = $this->option('kirby.columns.item', 'column');
$classContainer = $this->option('kirby.columns.container', 'columns');
foreach ($columns as $column) {
$html[] = '<div class="' . $classItem . '">' . $this->kirbytext($column, $data) . '</div>';
}
return '<div class="' . $classContainer . '">' . implode($html) . '</div>';
}, $text);
return $text;
}
]
]);

@ -0,0 +1 @@
Subproject commit 81564cfc343f733e47012895ed249bb69f99b96c

@ -0,0 +1 @@
Subproject commit 9cf8c1e749efdedb3b21c8bc31535bbfbb7a68e9

@ -0,0 +1 @@
Subproject commit d222f4f02eef5574dd7850b40391f86688283f27

@ -1 +1 @@
Subproject commit c17f1c4d6ac66326ca481df8e0ecf720efc29e05
Subproject commit 5b56892014a01e3e4f602576e4912c54da911648

@ -0,0 +1 @@
Subproject commit b9639427e03917b1ac8bb3cd7c35a61fa90b839e

1
panel Submodule

@ -0,0 +1 @@
Subproject commit 31a79539294c24f636d2f3af004aa2576eb59040

View file

@ -26,7 +26,8 @@ Im Folgenden wird `$git-url` als Platzhalter für die echte Git-URL verwendet.
git clone --recursive $git-url /path/to/documentroot
cd /path/to/documentroot
mkdir content
mkdir media
mkdir thumbs
mkdir site/accounts
mkdir site/cache
````

16
site/blueprints/blog.yml Normal file
View file

@ -0,0 +1,16 @@
title: Blog
pages:
template:
- blogarticle
num: date
sort: flip
files: false
fields:
title:
label: Title
type: text
text:
label: Text
type: textarea

View file

@ -0,0 +1,29 @@
title: Blog Article
pages: false
files: true
fields:
title:
label: Title
type: text
date:
label: Date
type: date
width: 1/4
tags:
label: Tags
type: tags
width: 3/4
text:
label: Text
type: textarea
en_masonry:
text: enable masonry
type: checkbox
text2:
label: Text below masonry
type: textarea
meta-robots:
label: Metatag robots
type: text

View file

@ -0,0 +1,47 @@
<?php if(!defined('KIRBY')) exit ?>
# carousel pseudo-site blueprint
title: Foto-Diashow
pages: false
preview: parent
files:
sortable: true
fields:
title:
label: Titel (z.Zt. nicht benutzt)
type: text
heading:
label: Bildüberschrift
type: text
caption:
label: Bildtext
type: textarea
header1: h3
header2: h4
options:
preview: true
status: false
template: false
url: false
delete: true
fields:
info:
label: HINWEIS
type: info
text: >
Auf dieser "Seite" werden die Bilder abgelegt, die in der großen Bildergalerie oben auf der Seite dargestellt werden sollen.
Dabei sind ein paar Dinge zu beachten:<br>
- Alle Bilder müssen dasselbe Seitenverhältnis haben, wenigstens jedoch im **Querformat** vorliegen.<br>
- Diese Seite muss die unter der URL "carousel" abgelegt sein.<br>
- Wenn die Bildergalerie leer bleiben soll, muss diese Seite nicht gelöscht werden, sondern kann auch einfach keine Bilder enthalten.<br>
- Die Reihenfolge der Bilder kann unter "Dateien -> bearbeiten" angepasst werden.<br>
- Um ein Bild mit einer Bildüberschrift zu versehen, einfach die Datei auswählen und die entsprechenden Felder bearbeiten. Speichern nicht vergessen.<br>
- HINWEIS: Bei sehr großen Bildern kann es vorkommen, dass keine Vorschau angezeigt wird.
title:
label:
en: Title (has no fuction)
de: Seitenüberschrift (hat keine Funktion)
type: text

View file

@ -0,0 +1,12 @@
title: default Page
pages: true
files: true
fields:
title:
label: Title
type: text
text:
label: Text
type: textarea

View file

@ -1,14 +0,0 @@
Title: File
fields:
alt:
label: Alt Text
type: text
heading:
label: Bildüberschrift
type: text
caption:
label: Bildtext
type: textarea
header1: h3
header2: h4

18
site/blueprints/home.yml Normal file
View file

@ -0,0 +1,18 @@
title: Home
pages: true
files: true
fields:
title:
label: Title
type: text
hero_text:
label: main text
type: textarea
subtitle:
label: subtitle
type: text
text:
label: text
type: textarea

View file

@ -1,32 +0,0 @@
title: Blog
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
text:
label: Text
type: textarea
sidebar:
width: 1/3
sections:
drafts:
headline: Drafts
type: pages
status: draft
create:
- blogarticle
published:
headline: Published Articles
type: pages
status: listed
sortBy: date desc
files: false

View file

@ -1,39 +0,0 @@
title: Blog Article
num: '{{ page.date.toDate("Ymd") }}'
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
date:
label: Date
type: date
width: 1/4
tags:
label: Tags
type: tags
width: 3/4
text:
label: Text
type: textarea
en_masonry:
label: Masonry
type: toggle
text: enable
text2:
label: Text below masonry
type: textarea
meta-robots:
label: Metatag robots
type: text
sidebar:
width: 1/3
sections:
files: true

View file

@ -1,21 +0,0 @@
title: default Page
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
text:
label: Text
type: textarea
sidebar:
width: 1/3
sections:
pages: true
files: true

View file

@ -1,28 +0,0 @@
title: Home
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
hero_text:
label: main text
type: textarea
subtitle:
label: subtitle
type: text
text:
label: text
type: textarea
sidebar:
width: 1/3
sections:
pages: true
files: true

View file

@ -1,44 +0,0 @@
title: Photo
tabs:
content:
label: Content
icon: text
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
text:
label: Text
type: textarea
text2:
label: Text below masonry
type: textarea
sidebar:
width: 1/3
sections:
carousel:
type: fields
fields:
carousel:
label: Carousel
type: files
query: page.images
max: 10
masonry:
label: Images
icon: image
sections:
gallery:
headline: Masonry
type: files
layout: cards
limit: 50
sortable: false

View file

@ -1,37 +0,0 @@
title: Project
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
exrpt_img:
label: Excerpt image
type: files
multiple: false
width: 1/2
exrpt_text:
label: Excerpt for overview
type: textarea
width: 1/2
text:
label: Text
type: textarea
en_masonry:
label: Masonry
type: toggle
text: enable
text2:
label: Text below masonry
type: textarea
sidebar:
width: 1/3
sections:
pages: false
files: true

View file

@ -1,23 +0,0 @@
title: Projects
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
text:
label: Text
type: textarea
sidebar:
width: 1/3
sections:
pages:
type: pages
create: project
files: true

View file

@ -1,29 +0,0 @@
title: redirect
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
target:
label: Target
type: pages
multiple: false
red_type:
label: Redirect Type
type: radio
default: temporarly
options:
temp: temporarly (302)
perm: permanent (301)
sidebar:
width: 1/3
sections:
pages: true
files: true

View file

@ -1,33 +0,0 @@
title: Webdesign
columns:
main:
width: 2/3
sections:
content:
type: fields
fields:
featurette_headline:
label: Featurette Headline
type: text
featurette_text:
label: Featurette Text
type: textarea
width: 1/2
featurette_img:
label: Featurette Image
type: files
multiple: false
width: 1/2
text:
label: Text
type: textarea
sidebar:
width: 1/3
sections:
pages: true
files: true

View file

@ -1 +0,0 @@
../../../modules/kirby-template-sitemap/blueprints/xmlsitemap.yml

22
site/blueprints/photo.yml Normal file
View file

@ -0,0 +1,22 @@
title: Photo
pages:
build:
- title: carousel
uid: carousel
template: carousel
template:
- photo
- carousel
files: true
fields:
title:
label: Title
type: text
text:
label: Text
type: textarea
text2:
label: Text below masonry
type: textarea

View file

@ -0,0 +1,28 @@
title: Project
pages:
template:
- project
files: true
fields:
title:
label: Title
type: text
exrpt_img:
label: Excerpt image
type: image
width: 1/2
exrpt_text:
label: Excerpt for overview
type: textarea
width: 1/2
text:
label: Text
type: textarea
en_masonry:
type: checkbox
text: Enable masonry
text2:
label: Text below masonry
type: textarea

View file

@ -0,0 +1,14 @@
title: Projects
pages:
template:
- project
files: true
fields:
title:
label: Title
type: text
text:
label: Text
type: textarea

View file

@ -0,0 +1,19 @@
title: redirect
pages: true
files: false
fields:
title:
label: Title (not used)
type: text
target:
label: Target
type: page
red_type:
label: Redirect Type
type: radio
default: temporarly
options:
temp: temporarly (302)
perm: permanent (301)

View file

@ -1,61 +1,53 @@
columns:
main:
width: 2/3
sections:
Title: Site
pages:
template:
- default
- redirect
content:
type: fields
fields:
author:
label:
en: Author (for meta data)
de: Autor (für Metadaten)
type: text
description:
label:
en: Description (short text at Google search result)
de: Beschreibung (kurzer Text beim Google-Suchergebnis)
type: textarea
validate:
maxLength: 160
fields:
title:
label:
en: Title (shown in browser tab)
de: Titel der Website (im Browser Tab)
type: text
title_image:
label:
en: Header image / logo (drag and drop)
de: Logo für Kopf der Seite (drag and drop)
type: files
multiple: false
author:
label:
en: Author (for meta data)
de: Autor (für Metadaten)
type: text
description:
label:
en: Description (short text at Google search result)
de: Beschreibung (kurzer Text beim Google-Suchergebnis)
type: textarea
validate:
maxLength: 160
line:
type: line
title_image:
label:
en: header image / logo (drag and drop)
de: Logo für Kopf der Seite (drag and drop)
type: image
footer_left:
label:
en: Footer left
de: Footer links
type: textarea
width: 1/3
footer_center:
label:
en: Footer center
de: Footer Mitte
type: textarea
width: 1/3
footer_right:
label:
en: Footer right
de: Footer rechts
type: textarea
width: 1/3
line:
type: line
sidebar:
footer_left:
label:
en: footer left
de: Footer links
type: textarea
width: 1/3
footer_center:
label:
en: footer center
de: Footer Mitte
type: textarea
width: 1/3
footer_right:
label:
en: footer right
de: Footer rechts
type: textarea
width: 1/3
sections:
pages:
type: pages
create:
- default
- redirect
files: true

View file

@ -0,0 +1,23 @@
title: Webdesign
pages: true
files: true
fields:
title:
label: Title
type: text
featurette_headline:
label: Featurette Headline
type: text
featurette_text:
label: Featurette Text
type: textarea
width: 1/2
featurette_img:
label: Featurette Image
type: image
width: 1/2
text:
label: Text
type: textarea

View file

@ -0,0 +1 @@
../../modules/kirby-template-sitemap/blueprints/xmlsitemap.php

View file

@ -4,3 +4,10 @@
c::set('debug', true);
c::set('cache', false);
c::set('ssl', false);
/*
Piwik Plugin configuration
*/
c::set('spicy.piwik.active', false);

View file

@ -1,7 +1,6 @@
<?php
if(!function_exists('panel')) {
## script-src unsafe-inline is needed for kirby panel
header("Content-Security-Policy: default-src 'self'; style-src 'self' 'nonce-nRfqpuKWNuYyUAFPTr6WVNZk9'; script-src 'self' 'unsafe-inline'; img-src 'self' data:");
header("Content-Security-Policy: default-src 'self'; style-src 'self' 'nonce-nRfqpuKWNuYyUAFPTr6WVNZk9' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; frame-src https://www.youtube-nocookie.com; script-src 'self' 'unsafe-eval' 'nonce-nRfqpuKWNuYyUAFPTr6WVNZk9' 'unsafe-inline' https://jannikb.aquila.uberspace.de/piwik/; img-src 'self' data: https://jannikb.aquila.uberspace.de/piwik/");
}
//header("X-Content-Type-Options: nosniff"); // enabled at server-side
//header("X-Frame-Options: deny"); // enabled at server-side
@ -9,6 +8,11 @@ if(!function_exists('panel')) {
header("Strict-Transport-Security: max-age=31536000");
header("Referrer-Policy: no-referrer");
/*
License Setup
*/
c::set('license', 'K2-PRO-153c9c6accc73d9547e255a0daba8911');
/*
Kirby Configuration
*/
@ -20,12 +24,16 @@ c::set('smartypants.attr', 2); // -- for en-dash, --- for em-dash
c::set('smartypants.doublequote.open', '&bdquo;');
c::set('smartypants.doublequote.close', '&ldquo;');
c::set('ssl', true);
/*
Modules Configuration
*/
// plg-carousel
c::set('plg_carousel.class', 'carousel-fade'); // additional class on top-most div
c::set('plg_carousel.enable', true);
c::set('plg_carousel.sort', 'sort'); // sortBy parameter: sort, title, etc.
c::set('plg_carousel.dir', 'asc'); // sortBy direction: asc, desc
// plg-masonry
c::set('plg_masonry.enable', true);
@ -37,18 +45,25 @@ c::set('plg_masonry.sort', 'sort'); // sortBy parameter: sort, title, etc.
c::set('plg_masonry.dir', 'asc'); // sortBy direction: asc, desc
c::set('plg_masonry.lightbox', 'swipebox');
// columns plugin
//c::set('kirby.columns.container', 'columns');
//c::set('kirby.columns.item', 'column');
// bastians columns.php plugin from https://github.com/getkirby/plugins/tree/master/columns
//c::set('columns.container', 'row');
//c::set('columns.item', 'col-sm-6 columns');
// enhanced sitemap by Jannik Beyerstedt:
c::set('smap_ignoreSite', array('sitemap', 'error', 'home', 'qr', 'secret', 'test'));
c::set('smap_ignoreTemplate', array('redirect'));
c::set('smap_ignoreTemplate', array('carousel', 'redirect'));
c::set('smap_showHiddenPagesAtRootLevel', true);
c::set('smap_heading_visible', 'Hauptmenü');
c::set('smap_heading_invisible', 'weitere Seiten');
//c::set('smap_column_class_id', 'class="foo" id="bar"');
/*
Piwik Plugin configuration
*/
c::set('spicy.piwik.active', false); /* cookie notice needed! */
c::set('spicy.piwik.url', 'https://jannikb.aquila.uberspace.de/piwik');
c::set('spicy.piwik.id', 2);
/*
Routes
*/
@ -58,5 +73,21 @@ c::set('routes', array(
'action' => function() {
return site()->visit('sitemap');
}
),
// redirect legacy urls:
// feature/webdesign -> webdesign
// feature/fotografie -> fotografie
// feature/fotografie/(:any) -> fotografie/(:any)
array(
'pattern' => 'feature/(:all)',
'action' => function($uid) {
if (site()->find($uid)) {
$target = site()->find($uid)->url();
header::redirect($target, 301);
}else {
go('error');
}
}
)
));

1
site/plugins/columns Symbolic link
View file

@ -0,0 +1 @@
../../modules/columns-plugin

View file

@ -1,27 +0,0 @@
<?php
# copied at 2021-01-23 from https://getkirby.com/docs/cookbook/extensions/columns-in-kirbytext
Kirby::plugin('kirby/columns', [
'hooks' => [
'kirbytags:before' => function ($text, array $data = []) {
$text = preg_replace_callback('!\(columns(…|\.{3})\)(.*?)\((…|\.{3})columns\)!is', function($matches) use($text, $data) {
$columns = preg_split('!(\n|\r\n)\+{4}\s+(\n|\r\n)!', $matches[2]);
$html = [];
$classItem = $this->option('kirby.columns.item', 'column');
$classContainer = $this->option('kirby.columns.container', 'columns');
foreach ($columns as $column) {
$html[] = '<div class="' . $classItem . '">' . $this->kirbytext($column, $data) . '</div>';
}
return '<div class="' . $classContainer . '">' . implode($html) . '</div>';
}, $text);
return $text;
}
]
]);

@ -1 +0,0 @@
Subproject commit 68bcdea5884143d1e24d902a9cd058a32550dc17

1
site/plugins/kirbytextraw Symbolic link
View file

@ -0,0 +1 @@
../../modules/kirby-plugin-kirbytextRaw

1
site/plugins/piwik/.gitignore vendored Executable file
View file

@ -0,0 +1 @@
.idea

33
site/plugins/piwik/Readme.md Executable file
View file

@ -0,0 +1,33 @@
# Piwik plugin
A plugin for [Kirby CMS](http://getkirby.com) that generates piwik analytics code to use in your templates.
## Installation
Put the `piwik` folder in `/site/plugins`.
Configure piwik URL and site id in your page config.
### Config Variables
- spicy.piwik.active: true / false (Default: true)
- spicy.piwik.url: 'stats.yourpage.com'
- spicy.piwik.id: 1 (replace with the page ID in your piwik installation)
## How to use it
You can use this in a template file.
## Example usage
### Snippets
```php
<!-- use this right before closing </body> tag -->
<?php echo piwik(); ?>
```
## Author
Michael Fürmann @ Spicy Web
<https://spicyweb.de>

18
site/plugins/piwik/piwik.php Executable file
View file

@ -0,0 +1,18 @@
<?php
/**
* Piwik Plugin
*
* @author Michael Fürmann <michael@spicyweb.de>
* @version 1.0.0
*/
function piwik($options = array()) {
if(!c::get('spicy.piwik.active', true) || !c::get('spicy.piwik.url') || !c::get('spicy.piwik.id'))
return;
$options['url'] = c::get('spicy.piwik.url');
$options['id'] = c::get('spicy.piwik.id');
// Return template HTML
return tpl::load(__DIR__ . DS . 'template.php', $options);
}
?>

15
site/plugins/piwik/template.php Executable file
View file

@ -0,0 +1,15 @@
<!-- Piwik -->
<script type="text/javascript" nonce="nRfqpuKWNuYyUAFPTr6WVNZk9">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="<?= $url?>/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', <?= $id?>]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="<?= $url?>/piwik.php?idsite=<?= $id?>" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->

1
site/plugins/thumbext Symbolic link
View file

@ -0,0 +1 @@
../../modules/kirby-plugin-thumbExt

View file

@ -9,12 +9,12 @@
$subnav = false;
if ($page->depth() == 1) {
$baseSec = $page;
if ( $page->isListed() && $baseSec->hasListedChildren() && $page->template() != 'blog' ) {
if ( $page->isVisible() && $baseSec->hasVisibleChildren() && $page->template() != 'blog' ) {
$subnav = true;
}
}else if ($page->depth() == 2) {
$baseSec = $page->parent();
if ( $page->isListed() && $baseSec->hasListedChildren() && $page->template() != 'blogarticle' ) {
if ( $page->isVisible() && $baseSec->hasVisibleChildren() && $page->template() != 'blogarticle' ) {
$subnav = true;
}
}
@ -26,11 +26,11 @@ if ($page->depth() == 1) {
<nav class="mobile">
<ul class="nav mobileNav">
<li><a href="<?php echo $site->url()?>">Home</a></li>
<?php foreach ($site->children()->listed() as $p) : ?>
<?php foreach ($site->children()->visible() as $p) : ?>
<li><a href="<?php echo $p->url()?>" <?php echo ($page == $p)?'class="active"':'' ?>><?php echo $p->title() ?></a></li>
<?php if ($p->hasListedChildren() && $p->template() != 'blog') : ?>
<?php if ($p->hasVisibleChildren() && $p->template() != 'blog') : ?>
<ul class="">
<?php foreach ($p->children()->listed() as $c) : ?>
<?php foreach ($p->children()->visible() as $c) : ?>
<li><a href="<?php echo $c->url()?>" <?php echo ($page == $c)?'class="active"':'' ?>><?php echo $c->title() ?></a></li>
<?php endforeach; ?>
</ul>
@ -52,12 +52,12 @@ if ($page->depth() == 1) {
<nav aria-hidden="true">
<ul class="nav d-none d-sm-block">
<?php if(!$subnav) : ?>
<?php foreach ($site->children()->listed() as $p) : ?>
<?php foreach ($site->children()->visible() as $p) : ?>
<a href="<?php echo $p->url()?>" <?php echo ($page == $p || $page->parent() == $p)?'class="active"':'' ?>><li><?php echo $p->title() ?></li></a>
<?php endforeach; ?>
<?php else : ?>
<a href="<?php echo $baseSec->url()?>" class="section <?php echo ($page == $baseSec)?'active':'' ?>"><li><?php echo $baseSec->title() ?>:</li></a>
<?php foreach ($baseSec->children()->listed() as $p) : ?>
<?php foreach ($baseSec->children()->visible() as $p) : ?>
<a href="<?php echo $p->url()?>" <?php echo ($page == $p)?'class="active"':'' ?>><li><?php echo $p->title() ?></li></a>
<?php endforeach; ?>
<?php endif; ?>

View file

@ -23,7 +23,7 @@ foreach ($switches as $switch) {
?>
<?php if($jquery) {
echo js('assets/vendors/jquery-3.5.1.min.js');
echo js('assets/vendors/jquery-2.2.2.min.js');
}?>
<!-- Bootstrap core JavaScript-->
@ -64,5 +64,8 @@ echo js('assets/vendors/bootstrap/js/dist/carousel.js');
</script>
<?php endif; ?>
<?php echo piwik(); ?>
</body>
</html>

View file

@ -26,9 +26,9 @@ if( $page->isHomePage() ) {
<meta name="robots" content="<?php echo $page->meta_robots()->html() ?>">
<?php endif; ?>
<?php echo css('assets/css/foundation.css?v2.0') ?>
<?php echo css('assets/css/foundation.css?v1.1') ?>
<?php echo css('assets/css/main.css?v2.0') ?>
<?php echo css('assets/css/main.css?v1.1') ?>
<?php echo css('@auto') ?>

View file

@ -16,7 +16,7 @@ $a = $article;
<a class="more" href="<?php echo $a->url()?>">»</a>
</p>
<div class="meta">
<time datetime="<?php echo $a->date()->toDate('Y-m-d') ?>"><?php echo $a->date()->toDate('d. M. Y') ?></time>
<time datetime="<?php echo $a->date('Y-m-d') ?>"><?php echo $a->date('d. M. Y') ?></time>
<?php echo tags($base_url, $a); ?>
</div>
</article>

View file

@ -0,0 +1,66 @@
<?php
// -------------------------------------------
// kirby snippet GENERAL
// Title: plg-carousel
// funct: twitter bootstap carousel for photos in carousel subpage (folder)
// modified for bootstrap 4 !
// copyright: Jannik Beyerstedt | http://jannikbeyerstedt.de | code@jannikbeyerstedt.de
// license: http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 License
// usage:
// snippet('plg-carousel', array('currentPage'=>$page,
// 'preNormal'=>'optional html to add before carousel',
// 'preAlt'=>'html if snippet is not displayed (for other styles)'))
// and set these constants in config.php:
//c::set('plg_carousel.sort', 'sort'); // sortBy parameter: sort, title, etc.
//c::set('plg_carousel.dir', 'asc'); // sortBy direction: asc, desc
// -------------------------------------------
// display carousel only if there are images
$carouselFolder = $currentPage->children()->find('carousel');
if (!isset($preNormal)) {$preNormal="";}
if (!isset($preAlt)) {$preAlt="";}
$sort = c::get('plg_carousel.sort', 'title');
$sdir = c::get('plg_carousel.dir', 'desc');
// if folder exists
if (!(false==$carouselFolder) && ($carouselFolder->hasImages())) : echo $preNormal
?>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<?php $n=-1; foreach($carouselFolder->images()->sortBy($sort, $sdir) as $image): $n++; ?>
<li data-target="#myCarousel" data-slide-to="<?php echo $n ?>" class="<?php if($n==0) echo ' active' ?>"></li>
<?php endforeach ?>
</ol>
<div class="carousel-inner" role="listbox">
<?php $n=-1; foreach($carouselFolder->images()->sortBy($sort, $sdir) as $image): $n++; ?>
<div class="carousel-item<?php if($n==0) echo ' active' ?>">
<img src="<?php echo $image->url() ?>" alt="<?php echo $image->title()->html() ?>" />
<?php if(($image->heading() != "") || ($image->caption() != "")) : ?>
<div class="carousel-caption">
<?php if($image->heading() != "") : ?><h3><?php echo $image->heading()->kirbytext() ?></h3><?php endif; ?>
<?php echo $image->caption()->kirbytext() ?>
</div>
<?php endif; ?>
</div>
<?php endforeach ?>
</div>
<a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<?php else : echo $preAlt ?>
<?php endif ?>

1
site/tags/html5video.php Symbolic link
View file

@ -0,0 +1 @@
../../modules/kirby-kirbytag-html5video/html5video.php

View file

@ -0,0 +1,30 @@
<?php
/*
* kirbytag html5youtube
* responsive html5 youtube player embedding
*
* copyright: Jannik Beyerstedt | http://jannikbeyerstedt.de | code@jannikbeyerstedt.de
* license: http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 License
*
* version 2.0.2 (12.12.2016)
* changelog:
* - v2.0: kirby 2 support
* - v2.0.1: fix some html validation issues with & symbols
* - v2.0.2: html5 player is now default, so no url param needed any more
*/
kirbytext::$tags['html5youtube'] = array(
'attr' => array(
'options'
),
'html' => function($tag) {
$base = 'https://www.youtube-nocookie.com/embed/';
$end = '?rel=0';
$videoID = $tag->attr('html5youtube');
$options = $tag->attr('options');
return '<div class="video-container"><iframe src="' . $base . $videoID . $end . $options . '" allowfullscreen></iframe></div>';
}
);

View file

@ -23,7 +23,7 @@ function tags($base_url, $article) {
}
}
$articles = $page->children()->listed()->flip();
$articles = $page->children()->visible()->flip();
$title = $page->title()->html();

View file

@ -33,7 +33,7 @@ snippet('base/cont-header');
<h1><?php echo $page->title()->html() ?></h1>
<div class="meta title">
<time datetime="<?php echo $page->date()->toDate('Y-m-d') ?>"><?php echo $page->date()->toDate('d. M. Y') ?></time>
<time datetime="<?php echo $page->date('Y-m-d') ?>"><?php echo $page->date('d. M. Y') ?></time>
</div>
<?php echo $page->text()->kirbytext(); ?>
@ -42,19 +42,19 @@ snippet('base/cont-header');
<?php echo $page->text2()->kirbytext(); ?>
<div class="meta bottom">
<time datetime="<?php echo $page->date()->toDate('Y-m-d') ?>"><?php echo $page->date()->toDate('d. M. Y') ?></time>
<time datetime="<?php echo $page->date('Y-m-d') ?>"><?php echo $page->date('d. M. Y') ?></time>
<?php echo tags($base_url, $page); ?>
</div>
</article>
<?php if($page->hasPrevListed() || $page->hasNextListed()): ?>
<?php if($page->hasPrevVisible() || $page->hasNextVisible()): ?>
<div class="teasers">
<?php if($page->hasNextListed()) {
echo snippet('blogexcerpt',["article"=>$page->nextListed(),"length"=>200,"base_url"=>$base_url]);
<?php if($page->hasNextVisible()) {
echo snippet('blogexcerpt',["article"=>$page->nextVisible(),"length"=>200,"base_url"=>$base_url]);
} ?>
<?php if($page->hasPrevListed()) {
echo snippet('blogexcerpt',["article"=>$page->prevListed(),"length"=>200,"base_url"=>$base_url]);
<?php if($page->hasPrevVisible()) {
echo snippet('blogexcerpt',["article"=>$page->prevVisible(),"length"=>200,"base_url"=>$base_url]);
} ?>
</div>
<?php endif ?>

View file

@ -25,7 +25,7 @@ snippet('base/cont-header');
01110100 01100101<br>
01100100 01110100
</div>
<p><?php echo $page->subtitle()->kirbytextinline() ?></p>
<p><?php echo $page->subtitle()->kirbytextRaw() ?></p>
</div>
<?php echo $page->text()->kirbytext(); ?>

View file

@ -11,9 +11,9 @@ snippet('base/cont-header');
?>
<main class="section photo">
<?php echo snippet('plg/plg-carousel', array('currentPage'=>$page,
'preNormal'=>'',
'preAlt'=>'')); ?>
<?php echo snippet('plg-carousel', array('currentPage'=>$page,
'preNormal'=>'',
'preAlt'=>'')); ?>
<div class="container">
<?php echo $page->text()->kirbytext(); ?>

View file

@ -16,7 +16,7 @@ snippet('base/cont-header');
<?php echo $page->text()->kirbytext(); ?>
</div>
<?php if($page->en_masonry()->bool()) echo snippet('plg/plg-masonry-sb', array('currentPage'=>$page)); ?>
<?php if($page->en_masonry() == '1') echo snippet('plg/plg-masonry-sb', array('currentPage'=>$page)); ?>
<div class="container">
<?php echo $page->text2()->kirbytext(); ?>

View file

@ -6,7 +6,7 @@
// license: http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 License
// -------------------------------------------
$children = $page->children()->listed();
$children = $page->children()->visible();
snippet('base/html-head');
snippet('base/cont-header');
@ -23,16 +23,12 @@ snippet('base/cont-header');
<div class="col-sm-6 col-lg-3"><div class="card">
<a href="<?php echo $c->url(); ?>">
<?php if ($img = $c->images()->find($c->exrpt_img())) {
$imgurl = $img->url();
$srcset = $img->srcset([
'1x' => ['width'=>400, 'quality'=>70],
'2x' => ['width'=>800, 'quality'=>70]
]);
echo '<img src="'.$imgurl.'" class="card-img-top" srcset="'.$srcset.'" />';
echo ThumbExt($img, ['width'=>400,'quality'=>70,'class'=>"card-img-top",'inline-size'=>false]);
} ?>
<div class="card-body">
<h5 class="card-title"><?php echo $c->title()->html(); ?></h5>
<p class="card-text"><?php echo $c->exrpt_text()->kirbytextinline(); ?></p>
<p class="card-text"><?php echo $c->exrpt_text()->kirbytext(); ?></p>
<a href="<?php echo $c->url(); ?>" class="card-link">mehr</a>
</div>
</a>
</div></div>

View file

@ -6,7 +6,7 @@
// license: http://www.gnu.org/licenses/gpl-3.0.txt GPLv3 License
// -------------------------------------------
$target = $page->target()->toPage()->url();
$target = $page->target()->url();
if ($page->red_type() == 'temp') {
$code = 302;
}else if ($page->red_type() == 'perm') {

View file

@ -18,16 +18,11 @@ snippet('base/cont-header');
<div class="row featurette">
<div class="col-sm-9 col-12">
<h2 class="featurette-heading"><?php echo $page->featurette_headline()->html() ?></h2>
<p class="lead"><?php echo $page->featurette_text()->kirbytextinline() ?></p>
<p class="lead"><?php echo $page->featurette_text()->kirbytextRaw() ?></p>
</div>
<div class="col-sm-3 col-12">
<?php if ($img = $page->images()->find($page->featurette_img())) {
$imgurl = $img->url();
$srcset = $img->srcset([
'1x' => ['width'=>235, 'quality'=>70],
'2x' => ['width'=>235*2, 'quality'=>70]
]);
echo '<img src="'.$imgurl.'" class="img-fluid rounded" alt="Portrait" srcset="'.$srcset.'" />';
echo ThumbExt($img, ['width'=>235,'quality'=>70,'class'=>"img-fluid rounded",'alt'=>"Portrait",'inline-size'=>false]);
}?>
</div>
</div>