Updating kanga.world to latest (slightly broken) code.
This commit is contained in:
parent
d079f0ae33
commit
ad883d4669
39 changed files with 462 additions and 3994 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -16,3 +16,5 @@ kanga.world/index.php
|
||||||
kanga.world/site/config/config.php
|
kanga.world/site/config/config.php
|
||||||
kanga.world/content/home/*/
|
kanga.world/content/home/*/
|
||||||
kanga.world/content/1_home/*/
|
kanga.world/content/1_home/*/
|
||||||
|
kanga.world/site/plugins/kangaworld-integration/settings.json
|
||||||
|
kanga.world/site/plugins/kangaworld-integration/settings.json.backup
|
||||||
|
|
6
kanga.world/assets/css/bootstrap-red.css
vendored
Normal file
6
kanga.world/assets/css/bootstrap-red.css
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -5,6 +5,10 @@ a:active:not(.dropdown-item):not(.nav-link) {
|
||||||
color: #ff0000;
|
color: #ff0000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h5 a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
color: #e64946;
|
color: #e64946;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
@ -12,6 +16,13 @@ h3 {
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
color: #e64946;
|
||||||
|
font-weight: bold;
|
||||||
|
border-bottom: 2px solid #e64946;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
.imagecenter {
|
.imagecenter {
|
||||||
display: block;
|
display: block;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
|
@ -83,6 +94,15 @@ h3 {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.prev {
|
||||||
|
width: 100%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.next {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.columns {
|
.columns {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 4.1 KiB |
|
@ -1,10 +0,0 @@
|
||||||
css_dir = "."
|
|
||||||
sass_dir = "."
|
|
||||||
images_dir = "."
|
|
||||||
fonts_dir = "fonts"
|
|
||||||
relative_assets = true
|
|
||||||
|
|
||||||
output_style = :compact
|
|
||||||
line_comments = false
|
|
||||||
|
|
||||||
preferred_syntax = :scss
|
|
Binary file not shown.
|
@ -1,14 +0,0 @@
|
||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<metadata>Generated by Fontastic.me</metadata>
|
|
||||||
<defs>
|
|
||||||
<font id="slick" horiz-adv-x="512">
|
|
||||||
<font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
|
|
||||||
<missing-glyph horiz-adv-x="512" />
|
|
||||||
|
|
||||||
<glyph unicode="→" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
|
||||||
<glyph unicode="←" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
|
||||||
<glyph unicode="•" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
|
||||||
<glyph unicode="a" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
|
|
||||||
</font></defs></svg>
|
|
Before Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
Binary file not shown.
|
@ -1,204 +0,0 @@
|
||||||
@charset 'UTF-8';
|
|
||||||
/* Slider */
|
|
||||||
.slick-loading .slick-list
|
|
||||||
{
|
|
||||||
background: #fff url('./ajax-loader.gif') center center no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Icons */
|
|
||||||
@font-face
|
|
||||||
{
|
|
||||||
font-family: 'slick';
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
|
|
||||||
src: url('./fonts/slick.eot');
|
|
||||||
src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg');
|
|
||||||
}
|
|
||||||
/* Arrows */
|
|
||||||
.slick-prev,
|
|
||||||
.slick-next
|
|
||||||
{
|
|
||||||
font-size: 0;
|
|
||||||
line-height: 0;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
padding: 0;
|
|
||||||
-webkit-transform: translate(0, -50%);
|
|
||||||
-ms-transform: translate(0, -50%);
|
|
||||||
transform: translate(0, -50%);
|
|
||||||
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
color: transparent;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.slick-prev:hover,
|
|
||||||
.slick-prev:focus,
|
|
||||||
.slick-next:hover,
|
|
||||||
.slick-next:focus
|
|
||||||
{
|
|
||||||
color: transparent;
|
|
||||||
outline: none;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.slick-prev:hover:before,
|
|
||||||
.slick-prev:focus:before,
|
|
||||||
.slick-next:hover:before,
|
|
||||||
.slick-next:focus:before
|
|
||||||
{
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
.slick-prev.slick-disabled:before,
|
|
||||||
.slick-next.slick-disabled:before
|
|
||||||
{
|
|
||||||
opacity: .25;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-prev:before,
|
|
||||||
.slick-next:before
|
|
||||||
{
|
|
||||||
font-family: 'slick';
|
|
||||||
font-size: 20px;
|
|
||||||
line-height: 1;
|
|
||||||
|
|
||||||
opacity: .75;
|
|
||||||
color: white;
|
|
||||||
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-prev
|
|
||||||
{
|
|
||||||
left: -25px;
|
|
||||||
}
|
|
||||||
[dir='rtl'] .slick-prev
|
|
||||||
{
|
|
||||||
right: -25px;
|
|
||||||
left: auto;
|
|
||||||
}
|
|
||||||
.slick-prev:before
|
|
||||||
{
|
|
||||||
content: '←';
|
|
||||||
}
|
|
||||||
[dir='rtl'] .slick-prev:before
|
|
||||||
{
|
|
||||||
content: '→';
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-next
|
|
||||||
{
|
|
||||||
right: -25px;
|
|
||||||
}
|
|
||||||
[dir='rtl'] .slick-next
|
|
||||||
{
|
|
||||||
right: auto;
|
|
||||||
left: -25px;
|
|
||||||
}
|
|
||||||
.slick-next:before
|
|
||||||
{
|
|
||||||
content: '→';
|
|
||||||
}
|
|
||||||
[dir='rtl'] .slick-next:before
|
|
||||||
{
|
|
||||||
content: '←';
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Dots */
|
|
||||||
.slick-dotted.slick-slider
|
|
||||||
{
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-dots
|
|
||||||
{
|
|
||||||
position: absolute;
|
|
||||||
bottom: -25px;
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
width: 100%;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
list-style: none;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.slick-dots li
|
|
||||||
{
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
display: inline-block;
|
|
||||||
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
margin: 0 5px;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.slick-dots li button
|
|
||||||
{
|
|
||||||
font-size: 0;
|
|
||||||
line-height: 0;
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
padding: 5px;
|
|
||||||
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
color: transparent;
|
|
||||||
border: 0;
|
|
||||||
outline: none;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.slick-dots li button:hover,
|
|
||||||
.slick-dots li button:focus
|
|
||||||
{
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
.slick-dots li button:hover:before,
|
|
||||||
.slick-dots li button:focus:before
|
|
||||||
{
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
.slick-dots li button:before
|
|
||||||
{
|
|
||||||
font-family: 'slick';
|
|
||||||
font-size: 6px;
|
|
||||||
line-height: 20px;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
|
|
||||||
content: '•';
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
opacity: .25;
|
|
||||||
color: black;
|
|
||||||
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
.slick-dots li.slick-active button:before
|
|
||||||
{
|
|
||||||
opacity: .75;
|
|
||||||
color: black;
|
|
||||||
}
|
|
|
@ -1,168 +0,0 @@
|
||||||
@charset "UTF-8";
|
|
||||||
|
|
||||||
// Default Variables
|
|
||||||
|
|
||||||
@slick-font-path: "./fonts/";
|
|
||||||
@slick-font-family: "slick";
|
|
||||||
@slick-loader-path: "./";
|
|
||||||
@slick-arrow-color: white;
|
|
||||||
@slick-dot-color: black;
|
|
||||||
@slick-dot-color-active: @slick-dot-color;
|
|
||||||
@slick-prev-character: "←";
|
|
||||||
@slick-next-character: "→";
|
|
||||||
@slick-dot-character: "•";
|
|
||||||
@slick-dot-size: 6px;
|
|
||||||
@slick-opacity-default: 0.75;
|
|
||||||
@slick-opacity-on-hover: 1;
|
|
||||||
@slick-opacity-not-active: 0.25;
|
|
||||||
|
|
||||||
/* Slider */
|
|
||||||
.slick-loading .slick-list{
|
|
||||||
background: #fff url('@{slick-loader-path}ajax-loader.gif') center center no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Arrows */
|
|
||||||
.slick-prev,
|
|
||||||
.slick-next {
|
|
||||||
position: absolute;
|
|
||||||
display: block;
|
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
line-height: 0px;
|
|
||||||
font-size: 0px;
|
|
||||||
cursor: pointer;
|
|
||||||
background: transparent;
|
|
||||||
color: transparent;
|
|
||||||
top: 50%;
|
|
||||||
-webkit-transform: translate(0, -50%);
|
|
||||||
-ms-transform: translate(0, -50%);
|
|
||||||
transform: translate(0, -50%);
|
|
||||||
padding: 0;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
&:hover, &:focus {
|
|
||||||
outline: none;
|
|
||||||
background: transparent;
|
|
||||||
color: transparent;
|
|
||||||
&:before {
|
|
||||||
opacity: @slick-opacity-on-hover;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.slick-disabled:before {
|
|
||||||
opacity: @slick-opacity-not-active;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-prev:before, .slick-next:before {
|
|
||||||
font-family: @slick-font-family;
|
|
||||||
font-size: 20px;
|
|
||||||
line-height: 1;
|
|
||||||
color: @slick-arrow-color;
|
|
||||||
opacity: @slick-opacity-default;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
|
|
||||||
& when ( @slick-font-family = 'slick' ) {
|
|
||||||
/* Icons */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'slick';
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
src: url('@{slick-font-path}slick.eot');
|
|
||||||
src: url('@{slick-font-path}slick.eot?#iefix') format('embedded-opentype'), url('@{slick-font-path}slick.woff') format('woff'), url('@{slick-font-path}slick.ttf') format('truetype'), url('@{slick-font-path}slick.svg#slick') format('svg');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-prev {
|
|
||||||
left: -25px;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
left: auto;
|
|
||||||
right: -25px;
|
|
||||||
}
|
|
||||||
&:before {
|
|
||||||
content: @slick-prev-character;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
content: @slick-next-character;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-next {
|
|
||||||
right: -25px;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
left: -25px;
|
|
||||||
right: auto;
|
|
||||||
}
|
|
||||||
&:before {
|
|
||||||
content: @slick-next-character;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
content: @slick-prev-character;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Dots */
|
|
||||||
|
|
||||||
.slick-dotted .slick-slider {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-dots {
|
|
||||||
position: absolute;
|
|
||||||
bottom: -25px;
|
|
||||||
list-style: none;
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
width: 100%;
|
|
||||||
li {
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
margin: 0 5px;
|
|
||||||
padding: 0;
|
|
||||||
cursor: pointer;
|
|
||||||
button {
|
|
||||||
border: 0;
|
|
||||||
background: transparent;
|
|
||||||
display: block;
|
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
outline: none;
|
|
||||||
line-height: 0px;
|
|
||||||
font-size: 0px;
|
|
||||||
color: transparent;
|
|
||||||
padding: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
&:hover, &:focus {
|
|
||||||
outline: none;
|
|
||||||
&:before {
|
|
||||||
opacity: @slick-opacity-on-hover;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:before {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
content: @slick-dot-character;
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
font-family: @slick-font-family;
|
|
||||||
font-size: @slick-dot-size;
|
|
||||||
line-height: 20px;
|
|
||||||
text-align: center;
|
|
||||||
color: @slick-dot-color;
|
|
||||||
opacity: @slick-opacity-not-active;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.slick-active button:before {
|
|
||||||
color: @slick-dot-color-active;
|
|
||||||
opacity: @slick-opacity-default;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,194 +0,0 @@
|
||||||
@charset "UTF-8";
|
|
||||||
|
|
||||||
// Default Variables
|
|
||||||
|
|
||||||
// Slick icon entity codes outputs the following
|
|
||||||
// "\2190" outputs ascii character "←"
|
|
||||||
// "\2192" outputs ascii character "→"
|
|
||||||
// "\2022" outputs ascii character "•"
|
|
||||||
|
|
||||||
$slick-font-path: "./fonts/" !default;
|
|
||||||
$slick-font-family: "slick" !default;
|
|
||||||
$slick-loader-path: "./" !default;
|
|
||||||
$slick-arrow-color: white !default;
|
|
||||||
$slick-dot-color: black !default;
|
|
||||||
$slick-dot-color-active: $slick-dot-color !default;
|
|
||||||
$slick-prev-character: "\2190" !default;
|
|
||||||
$slick-next-character: "\2192" !default;
|
|
||||||
$slick-dot-character: "\2022" !default;
|
|
||||||
$slick-dot-size: 6px !default;
|
|
||||||
$slick-opacity-default: 0.75 !default;
|
|
||||||
$slick-opacity-on-hover: 1 !default;
|
|
||||||
$slick-opacity-not-active: 0.25 !default;
|
|
||||||
|
|
||||||
@function slick-image-url($url) {
|
|
||||||
@if function-exists(image-url) {
|
|
||||||
@return image-url($url);
|
|
||||||
}
|
|
||||||
@else {
|
|
||||||
@return url($slick-loader-path + $url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@function slick-font-url($url) {
|
|
||||||
@if function-exists(font-url) {
|
|
||||||
@return font-url($url);
|
|
||||||
}
|
|
||||||
@else {
|
|
||||||
@return url($slick-font-path + $url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Slider */
|
|
||||||
|
|
||||||
.slick-list {
|
|
||||||
.slick-loading & {
|
|
||||||
background: #fff slick-image-url("ajax-loader.gif") center center no-repeat;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Icons */
|
|
||||||
@if $slick-font-family == "slick" {
|
|
||||||
@font-face {
|
|
||||||
font-family: "slick";
|
|
||||||
src: slick-font-url("slick.eot");
|
|
||||||
src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg");
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Arrows */
|
|
||||||
|
|
||||||
.slick-prev,
|
|
||||||
.slick-next {
|
|
||||||
position: absolute;
|
|
||||||
display: block;
|
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
line-height: 0px;
|
|
||||||
font-size: 0px;
|
|
||||||
cursor: pointer;
|
|
||||||
background: transparent;
|
|
||||||
color: transparent;
|
|
||||||
top: 50%;
|
|
||||||
-webkit-transform: translate(0, -50%);
|
|
||||||
-ms-transform: translate(0, -50%);
|
|
||||||
transform: translate(0, -50%);
|
|
||||||
padding: 0;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
&:hover, &:focus {
|
|
||||||
outline: none;
|
|
||||||
background: transparent;
|
|
||||||
color: transparent;
|
|
||||||
&:before {
|
|
||||||
opacity: $slick-opacity-on-hover;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.slick-disabled:before {
|
|
||||||
opacity: $slick-opacity-not-active;
|
|
||||||
}
|
|
||||||
&:before {
|
|
||||||
font-family: $slick-font-family;
|
|
||||||
font-size: 20px;
|
|
||||||
line-height: 1;
|
|
||||||
color: $slick-arrow-color;
|
|
||||||
opacity: $slick-opacity-default;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-prev {
|
|
||||||
left: -25px;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
left: auto;
|
|
||||||
right: -25px;
|
|
||||||
}
|
|
||||||
&:before {
|
|
||||||
content: $slick-prev-character;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
content: $slick-next-character;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-next {
|
|
||||||
right: -25px;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
left: -25px;
|
|
||||||
right: auto;
|
|
||||||
}
|
|
||||||
&:before {
|
|
||||||
content: $slick-next-character;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
content: $slick-prev-character;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Dots */
|
|
||||||
|
|
||||||
.slick-dotted.slick-slider {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-dots {
|
|
||||||
position: absolute;
|
|
||||||
bottom: -25px;
|
|
||||||
list-style: none;
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
width: 100%;
|
|
||||||
li {
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
margin: 0 5px;
|
|
||||||
padding: 0;
|
|
||||||
cursor: pointer;
|
|
||||||
button {
|
|
||||||
border: 0;
|
|
||||||
background: transparent;
|
|
||||||
display: block;
|
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
outline: none;
|
|
||||||
line-height: 0px;
|
|
||||||
font-size: 0px;
|
|
||||||
color: transparent;
|
|
||||||
padding: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
&:hover, &:focus {
|
|
||||||
outline: none;
|
|
||||||
&:before {
|
|
||||||
opacity: $slick-opacity-on-hover;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:before {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
content: $slick-dot-character;
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
font-family: $slick-font-family;
|
|
||||||
font-size: $slick-dot-size;
|
|
||||||
line-height: 20px;
|
|
||||||
text-align: center;
|
|
||||||
color: $slick-dot-color;
|
|
||||||
opacity: $slick-opacity-not-active;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.slick-active button:before {
|
|
||||||
color: $slick-dot-color-active;
|
|
||||||
opacity: $slick-opacity-default;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,119 +0,0 @@
|
||||||
/* Slider */
|
|
||||||
.slick-slider
|
|
||||||
{
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-ms-touch-action: pan-y;
|
|
||||||
touch-action: pan-y;
|
|
||||||
-webkit-tap-highlight-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-list
|
|
||||||
{
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.slick-list:focus
|
|
||||||
{
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
.slick-list.dragging
|
|
||||||
{
|
|
||||||
cursor: pointer;
|
|
||||||
cursor: hand;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-slider .slick-track,
|
|
||||||
.slick-slider .slick-list
|
|
||||||
{
|
|
||||||
-webkit-transform: translate3d(0, 0, 0);
|
|
||||||
-moz-transform: translate3d(0, 0, 0);
|
|
||||||
-ms-transform: translate3d(0, 0, 0);
|
|
||||||
-o-transform: translate3d(0, 0, 0);
|
|
||||||
transform: translate3d(0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-track
|
|
||||||
{
|
|
||||||
position: relative;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
.slick-track:before,
|
|
||||||
.slick-track:after
|
|
||||||
{
|
|
||||||
display: table;
|
|
||||||
|
|
||||||
content: '';
|
|
||||||
}
|
|
||||||
.slick-track:after
|
|
||||||
{
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.slick-loading .slick-track
|
|
||||||
{
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-slide
|
|
||||||
{
|
|
||||||
display: none;
|
|
||||||
float: left;
|
|
||||||
|
|
||||||
height: 100%;
|
|
||||||
min-height: 1px;
|
|
||||||
}
|
|
||||||
[dir='rtl'] .slick-slide
|
|
||||||
{
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
.slick-slide img
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.slick-slide.slick-loading img
|
|
||||||
{
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.slick-slide.dragging img
|
|
||||||
{
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
.slick-initialized .slick-slide
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.slick-loading .slick-slide
|
|
||||||
{
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
.slick-vertical .slick-slide
|
|
||||||
{
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
height: auto;
|
|
||||||
|
|
||||||
border: 1px solid transparent;
|
|
||||||
}
|
|
||||||
.slick-arrow.slick-hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,100 +0,0 @@
|
||||||
/* Slider */
|
|
||||||
|
|
||||||
.slick-slider {
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
box-sizing: border-box;
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
-ms-touch-action: pan-y;
|
|
||||||
touch-action: pan-y;
|
|
||||||
-webkit-tap-highlight-color: transparent;
|
|
||||||
}
|
|
||||||
.slick-list {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
display: block;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.dragging {
|
|
||||||
cursor: pointer;
|
|
||||||
cursor: hand;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.slick-slider .slick-track,
|
|
||||||
.slick-slider .slick-list {
|
|
||||||
-webkit-transform: translate3d(0, 0, 0);
|
|
||||||
-moz-transform: translate3d(0, 0, 0);
|
|
||||||
-ms-transform: translate3d(0, 0, 0);
|
|
||||||
-o-transform: translate3d(0, 0, 0);
|
|
||||||
transform: translate3d(0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-track {
|
|
||||||
position: relative;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
|
|
||||||
&:before,
|
|
||||||
&:after {
|
|
||||||
content: "";
|
|
||||||
display: table;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-loading & {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.slick-slide {
|
|
||||||
float: left;
|
|
||||||
height: 100%;
|
|
||||||
min-height: 1px;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
&.slick-loading img {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
display: none;
|
|
||||||
|
|
||||||
&.dragging img {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-initialized & {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-loading & {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-vertical & {
|
|
||||||
display: block;
|
|
||||||
height: auto;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.slick-arrow.slick-hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
1
kanga.world/assets/slick/slick.min.js
vendored
1
kanga.world/assets/slick/slick.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,100 +0,0 @@
|
||||||
/* Slider */
|
|
||||||
|
|
||||||
.slick-slider {
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
box-sizing: border-box;
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
-ms-touch-action: pan-y;
|
|
||||||
touch-action: pan-y;
|
|
||||||
-webkit-tap-highlight-color: transparent;
|
|
||||||
}
|
|
||||||
.slick-list {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
display: block;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.dragging {
|
|
||||||
cursor: pointer;
|
|
||||||
cursor: hand;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.slick-slider .slick-track,
|
|
||||||
.slick-slider .slick-list {
|
|
||||||
-webkit-transform: translate3d(0, 0, 0);
|
|
||||||
-moz-transform: translate3d(0, 0, 0);
|
|
||||||
-ms-transform: translate3d(0, 0, 0);
|
|
||||||
-o-transform: translate3d(0, 0, 0);
|
|
||||||
transform: translate3d(0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-track {
|
|
||||||
position: relative;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
|
|
||||||
&:before,
|
|
||||||
&:after {
|
|
||||||
content: "";
|
|
||||||
display: table;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-loading & {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.slick-slide {
|
|
||||||
float: left;
|
|
||||||
height: 100%;
|
|
||||||
min-height: 1px;
|
|
||||||
[dir="rtl"] & {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
&.slick-loading img {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
display: none;
|
|
||||||
|
|
||||||
&.dragging img {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-initialized & {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-loading & {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slick-vertical & {
|
|
||||||
display: block;
|
|
||||||
height: auto;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.slick-arrow.slick-hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
Title: Welcome!
|
Title: News
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
5
kanga.world/content/3_source-code/redirect.txt
Normal file
5
kanga.world/content/3_source-code/redirect.txt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Title: Source Code
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
Redirect: https://skunkworks.kangaroopunch.com/skunkworks/kpmpgsmkii
|
5
kanga.world/content/4_chat/redirect.txt
Normal file
5
kanga.world/content/4_chat/redirect.txt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Title: Chat
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
Redirect: https://discord.gg/AMA8zbYwQD
|
4
kanga.world/site/blueprints/files/newsimage.yml
Normal file
4
kanga.world/site/blueprints/files/newsimage.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
title: News Image
|
||||||
|
icon: image
|
||||||
|
accept:
|
||||||
|
type: image
|
|
@ -15,4 +15,3 @@ sections:
|
||||||
extends: sections/news
|
extends: sections/news
|
||||||
headline: Published
|
headline: Published
|
||||||
status: listed
|
status: listed
|
||||||
layout: cards
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
title: News Article
|
title: News Article
|
||||||
icon: document
|
icon: document
|
||||||
num: '{{ page.date }}'
|
#num: '{{ page.date }}'
|
||||||
options:
|
options:
|
||||||
changeTemplate: news
|
changeTemplate: news
|
||||||
|
|
||||||
|
@ -25,13 +25,19 @@ columns:
|
||||||
width: 1/2
|
width: 1/2
|
||||||
sections:
|
sections:
|
||||||
image:
|
image:
|
||||||
|
headline: News Article Image
|
||||||
type: files
|
type: files
|
||||||
|
template: newsimage
|
||||||
required: true
|
required: true
|
||||||
layout: cards
|
layout: cards
|
||||||
ratio: 1/1
|
ratio: 1/1
|
||||||
max: 1
|
max: 1
|
||||||
accept:
|
accept:
|
||||||
extension: jpg, png, gif
|
extension: jpg, png, gif
|
||||||
|
pictures:
|
||||||
|
headline: Other Images
|
||||||
|
type: files
|
||||||
|
template: image
|
||||||
meta:
|
meta:
|
||||||
type: fields
|
type: fields
|
||||||
fields:
|
fields:
|
||||||
|
|
|
@ -3,4 +3,4 @@ headline: News Articles
|
||||||
info: "{{ page.date.toDate('d-M-Y') }}"
|
info: "{{ page.date.toDate('d-M-Y') }}"
|
||||||
template: news
|
template: news
|
||||||
empty: No news yet
|
empty: No news yet
|
||||||
sortBy: date desc
|
#flip: true
|
||||||
|
|
49
kanga.world/site/plugins/kangaworld-integration/api.php
Normal file
49
kanga.world/site/plugins/kangaworld-integration/api.php
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require __DIR__ . '/user.php';
|
||||||
|
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'routes' => [
|
||||||
|
[
|
||||||
|
'pattern' => 'kp/kangaworld/v1',
|
||||||
|
'method' => 'POST',
|
||||||
|
'action' => function() {
|
||||||
|
|
||||||
|
$response = array();
|
||||||
|
$response['result'] = 'false';
|
||||||
|
$response['reason'] = 'Unknown error.';
|
||||||
|
|
||||||
|
// Although Kirby only allows admins this far, we may have a
|
||||||
|
//configurable sub-role for API access later.
|
||||||
|
if (kirby()->user()->role()->id() == 'admin') {
|
||||||
|
|
||||||
|
switch (get('command')) {
|
||||||
|
|
||||||
|
case 'USER_CREATE':
|
||||||
|
kpApiUserCreate(get('name'), get('email'), get('password'), $response);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'USER_GET':
|
||||||
|
kpApiUserGet(get('email'), $response);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$response['reason'] = 'Invalid command.';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$response['reason'] = 'Unauthorized.';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
?>
|
35
kanga.world/site/plugins/kangaworld-integration/areas.php
Normal file
35
kanga.world/site/plugins/kangaworld-integration/areas.php
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function kpKangaWorldConfig() {
|
||||||
|
return Data::read(__DIR__ . '/settings.json');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'kwconfig' => [
|
||||||
|
'label' => 'Kanga World Configuration',
|
||||||
|
'icon' => 'globe',
|
||||||
|
'menu' => true,
|
||||||
|
// update and delete dialogs
|
||||||
|
'dialogs' => [
|
||||||
|
//require __DIR__ . '/dialogs/update.php',
|
||||||
|
//require __DIR__ . '/dialogs/delete.php'
|
||||||
|
],
|
||||||
|
// dropdown with edit and delete buttons
|
||||||
|
'dropdowns' => [
|
||||||
|
//require __DIR__ . '/dropdowns/kwconfig.php'
|
||||||
|
],
|
||||||
|
// search for settings
|
||||||
|
'searches' => [
|
||||||
|
//'products' => require __DIR__ . '/searches/kwconfig.php'
|
||||||
|
],
|
||||||
|
// view route
|
||||||
|
'views' => [
|
||||||
|
require __DIR__ . '/views/kwconfig.php'
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
?>
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"name": "kangaroopunch/kangaworld-integration",
|
||||||
|
"type": "kirby-plugin",
|
||||||
|
"version": "1.0",
|
||||||
|
"license": "GPL3",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Scott Duensing",
|
||||||
|
"email": "scott@kangaroopunch.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"getkirby/composer-installer": "^1.2"
|
||||||
|
}
|
||||||
|
}
|
24
kanga.world/site/plugins/kangaworld-integration/index.css
Normal file
24
kanga.world/site/plugins/kangaworld-integration/index.css
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
|
||||||
|
.k-kwconfig {
|
||||||
|
width: 100%;
|
||||||
|
table-layout: fixed;
|
||||||
|
border-spacing: 1px;
|
||||||
|
}
|
||||||
|
.k-kwconfig td,
|
||||||
|
.k-kwconfig th {
|
||||||
|
text-align: left;
|
||||||
|
font-size: var(--text-sm);
|
||||||
|
padding: var(--spacing-2);
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
background: var(--color-white);
|
||||||
|
}
|
||||||
|
.k-kwconfig-type {
|
||||||
|
width: 8rem;
|
||||||
|
}
|
||||||
|
.k-kwconfig-data {
|
||||||
|
width: 5rem;
|
||||||
|
font-variant-numeric: tabular-nums;
|
||||||
|
text-align: right !important;
|
||||||
|
}
|
86
kanga.world/site/plugins/kangaworld-integration/index.js
Normal file
86
kanga.world/site/plugins/kangaworld-integration/index.js
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
(function() {
|
||||||
|
"use strict";
|
||||||
|
var render = function() {
|
||||||
|
var _vm = this;
|
||||||
|
var _h = _vm.$createElement;
|
||||||
|
var _c = _vm._self._c || _h;
|
||||||
|
return _c("k-inside", [_c("k-view", [_c("k-header", [_vm._v("Kanga World Configuration")]), _c("table", { staticClass: "k-kwconfig" }, [_c("tr", [_c("th", [_vm._v("Title")]), _c("th", { staticClass: "k-kwconfig-type" }, [_vm._v("Type")]), _c("th", [_vm._v("Description")]), _c("th", { staticClass: "k-kwconfig-data" }, [_vm._v("Value")])]), _vm._l(_vm.kwconfig, function(kwconfig, name) {
|
||||||
|
return _c("tr", { key: name }, [_c("td", [_vm._v(_vm._s(kwconfig.name))]), _c("td", { staticClass: "k-kwconfig-type" }, [_vm._v(_vm._s(kwconfig.type))]), _c("td", [_vm._v(_vm._s(kwconfig.description))]), _c("td", { staticClass: "k-kwconfig-data" }, [_vm._v(_vm._s(kwconfig.data) + " "), _c("k-options-dropdown", { attrs: { "options": "kwconfig/" + name } })], 1)]);
|
||||||
|
})], 2)], 1)], 1);
|
||||||
|
};
|
||||||
|
var staticRenderFns = [];
|
||||||
|
render._withStripped = true;
|
||||||
|
var KwConfig_vue_vue_type_style_index_0_lang = "";
|
||||||
|
function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
|
||||||
|
var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
|
||||||
|
if (render2) {
|
||||||
|
options.render = render2;
|
||||||
|
options.staticRenderFns = staticRenderFns2;
|
||||||
|
options._compiled = true;
|
||||||
|
}
|
||||||
|
if (functionalTemplate) {
|
||||||
|
options.functional = true;
|
||||||
|
}
|
||||||
|
if (scopeId) {
|
||||||
|
options._scopeId = "data-v-" + scopeId;
|
||||||
|
}
|
||||||
|
var hook;
|
||||||
|
if (moduleIdentifier) {
|
||||||
|
hook = function(context) {
|
||||||
|
context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
|
||||||
|
if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") {
|
||||||
|
context = __VUE_SSR_CONTEXT__;
|
||||||
|
}
|
||||||
|
if (injectStyles) {
|
||||||
|
injectStyles.call(this, context);
|
||||||
|
}
|
||||||
|
if (context && context._registeredComponents) {
|
||||||
|
context._registeredComponents.add(moduleIdentifier);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
options._ssrRegister = hook;
|
||||||
|
} else if (injectStyles) {
|
||||||
|
hook = shadowMode ? function() {
|
||||||
|
injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);
|
||||||
|
} : injectStyles;
|
||||||
|
}
|
||||||
|
if (hook) {
|
||||||
|
if (options.functional) {
|
||||||
|
options._injectStyles = hook;
|
||||||
|
var originalRender = options.render;
|
||||||
|
options.render = function renderWithStyleInjection(h, context) {
|
||||||
|
hook.call(context);
|
||||||
|
return originalRender(h, context);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
var existing = options.beforeCreate;
|
||||||
|
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
exports: scriptExports,
|
||||||
|
options
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const __vue2_script = {
|
||||||
|
props: {
|
||||||
|
kwconfig: Object
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const __cssModules = {};
|
||||||
|
var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);
|
||||||
|
function __vue2_injectStyles(context) {
|
||||||
|
for (let o in __cssModules) {
|
||||||
|
this[o] = __cssModules[o];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
__component__.options.__file = "src/components/KwConfig.vue";
|
||||||
|
var KwConfig = /* @__PURE__ */ function() {
|
||||||
|
return __component__.exports;
|
||||||
|
}();
|
||||||
|
panel.plugin("kangaroopunch/kangaworld-integration", {
|
||||||
|
components: {
|
||||||
|
"k-kwconfig-view": KwConfig
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
|
@ -2,61 +2,9 @@
|
||||||
|
|
||||||
Kirby::plugin('kangaroopunch/kangaworld-integration', [
|
Kirby::plugin('kangaroopunch/kangaworld-integration', [
|
||||||
|
|
||||||
'api' => [
|
'api' => require __DIR__ . '/api.php',
|
||||||
'routes' => [
|
'areas' => require __DIR__ . '/areas.php'
|
||||||
[
|
|
||||||
'pattern' => 'kp/kangaworld/v1',
|
|
||||||
'method' => 'POST',
|
|
||||||
'action' => function() {
|
|
||||||
|
|
||||||
$response = array();
|
|
||||||
$response['result'] = 'false';
|
|
||||||
$response['reason'] = 'Unknown error.';
|
|
||||||
|
|
||||||
switch (get('command')) {
|
|
||||||
|
|
||||||
case 'USER_CREATE':
|
|
||||||
try {
|
|
||||||
kirby()->users()->create([
|
|
||||||
'name' => get('name'),
|
|
||||||
'email' => get('email'),
|
|
||||||
'password' => get('password'),
|
|
||||||
'language' => 'en',
|
|
||||||
'role' => 'user'
|
|
||||||
]);
|
|
||||||
$response['result'] = 'true';
|
|
||||||
$response['reason'] = 'User created.';
|
|
||||||
} catch(Exception $e) {
|
|
||||||
$response['reason'] = $e->getMessage();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'USER_GET':
|
|
||||||
try {
|
|
||||||
$user = kirby()->users()->findByKey(get('email'));
|
|
||||||
//$response['userraw'] = dump($user);
|
|
||||||
$response['name'] = $user->username();
|
|
||||||
$response['email'] = $user->email();
|
|
||||||
$response['password'] = $user->password();
|
|
||||||
$response['language'] = $user->language();
|
|
||||||
$response['role'] = $user->role()->id();
|
|
||||||
$response['result'] = 'true';
|
|
||||||
$response['reason'] = 'User found.';
|
|
||||||
} catch(Exception $e) {
|
|
||||||
$response['reason'] = $e->getMessage();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$response['reason'] = 'Invalid command.';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $response;
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"scripts": {
|
||||||
|
"dev": "npx -y kirbyup src/index.js --watch",
|
||||||
|
"build": "npx -y kirbyup src/index.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"configItem": {
|
||||||
|
"name": "configItem",
|
||||||
|
"type": "config",
|
||||||
|
"data": "2048",
|
||||||
|
"description": "Sample CONFIG item."
|
||||||
|
},
|
||||||
|
"numberItem": {
|
||||||
|
"name": "numberItem",
|
||||||
|
"type": "number",
|
||||||
|
"data": "16550",
|
||||||
|
"description": "Sample NUMBER item."
|
||||||
|
},
|
||||||
|
"stringItem": {
|
||||||
|
"name": "stringItem",
|
||||||
|
"type": "string",
|
||||||
|
"data": "aValue",
|
||||||
|
"description": "Sample STRING item."
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
<template>
|
||||||
|
<k-inside>
|
||||||
|
<k-view>
|
||||||
|
<k-header>Kanga World Configuration</k-header>
|
||||||
|
<table class="k-kwconfig">
|
||||||
|
<tr>
|
||||||
|
<th>Title</th>
|
||||||
|
<th class="k-kwconfig-type">Type</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th class="k-kwconfig-data">Value</th>
|
||||||
|
</tr>
|
||||||
|
<tr v-for="(kwconfig, name) in kwconfig" :key="name">
|
||||||
|
<td>{{ kwconfig.name }}</td>
|
||||||
|
<td class="k-kwconfig-type">{{ kwconfig.type }}</td>
|
||||||
|
<td>{{ kwconfig.description }}</td>
|
||||||
|
<td class="k-kwconfig-data">{{ kwconfig.data }}
|
||||||
|
<k-options-dropdown :options="'kwconfig/' + name" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</k-view>
|
||||||
|
</k-inside>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
kwconfig: Object
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.k-kwconfig {
|
||||||
|
width: 100%;
|
||||||
|
table-layout: fixed;
|
||||||
|
border-spacing: 1px;
|
||||||
|
}
|
||||||
|
.k-kwconfig td,
|
||||||
|
.k-kwconfig th {
|
||||||
|
text-align: left;
|
||||||
|
font-size: var(--text-sm);
|
||||||
|
padding: var(--spacing-2);
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
background: var(--color-white);
|
||||||
|
}
|
||||||
|
.k-kwconfig-type {
|
||||||
|
width: 8rem;
|
||||||
|
}
|
||||||
|
.k-kwconfig-data {
|
||||||
|
width: 5rem;
|
||||||
|
font-variant-numeric: tabular-nums;
|
||||||
|
text-align: right !important;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,7 @@
|
||||||
|
import KwConfig from "./components/KwConfig.vue";
|
||||||
|
|
||||||
|
panel.plugin("kangaroopunch/kangaworld-integration", {
|
||||||
|
components: {
|
||||||
|
"k-kwconfig-view": KwConfig
|
||||||
|
}
|
||||||
|
});
|
40
kanga.world/site/plugins/kangaworld-integration/user.php
Normal file
40
kanga.world/site/plugins/kangaworld-integration/user.php
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function kpApiUserCreate($name, $email, $password, &$response) {
|
||||||
|
try {
|
||||||
|
kirby()->users()->create([
|
||||||
|
'name' => $name,
|
||||||
|
'email' => $email,
|
||||||
|
'password' => $password,
|
||||||
|
'language' => 'en',
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
$response['result'] = 'true';
|
||||||
|
$response['reason'] = 'User created.';
|
||||||
|
} catch(Exception $e) {
|
||||||
|
$response['reason'] = $e->getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function kpApiUserGet($email, &$response) {
|
||||||
|
try {
|
||||||
|
$user = kirby()->users()->findByKey($email);
|
||||||
|
//$response['userraw'] = dump($user);
|
||||||
|
if ($user) {
|
||||||
|
$response['name'] = $user->username();
|
||||||
|
$response['email'] = $user->email();
|
||||||
|
$response['password'] = $user->password();
|
||||||
|
$response['language'] = $user->language();
|
||||||
|
$response['role'] = $user->role()->id();
|
||||||
|
$response['result'] = 'true';
|
||||||
|
$response['reason'] = 'User found.';
|
||||||
|
} else {
|
||||||
|
$response['reason'] = 'User not found.';
|
||||||
|
}
|
||||||
|
} catch(Exception $e) {
|
||||||
|
$response['reason'] = $e->getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'pattern' => 'kwconfig',
|
||||||
|
'action' => function () {
|
||||||
|
return [
|
||||||
|
'component' => 'k-kwconfig-view',
|
||||||
|
'props' => [
|
||||||
|
'kwconfigs' => kpKangaWorldConfig()
|
||||||
|
]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
?>
|
|
@ -4,14 +4,11 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="icon" href="/assets/images/Kanga-FavIcon.png">
|
<link rel="icon" href="/assets/images/Kanga-FavIcon.png">
|
||||||
<link href="/assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
<link href="/assets/css/bootstrap-red.css" rel="stylesheet">
|
||||||
<link href="/assets/css/main.css" rel="stylesheet">
|
<link href="/assets/css/main.css" rel="stylesheet">
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/slick/slick.css"/>
|
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/slick/slick-theme.css"/>
|
|
||||||
<title><?= $site->title() ?> - <?= $page->title() ?></title>
|
<title><?= $site->title() ?> - <?= $page->title() ?></title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script src="/assets/js/jquery-3.6.0.min.js"></script>
|
<script src="/assets/js/jquery-3.6.0.min.js"></script>
|
||||||
<script type="text/javascript" src="/assets/slick/slick.min.js"></script>
|
|
||||||
<div class="container mainpage">
|
<div class="container mainpage">
|
||||||
<?php snippet('menu') ?>
|
<?php snippet('menu') ?>
|
||||||
|
|
|
@ -2,22 +2,62 @@
|
||||||
snippet('header');
|
snippet('header');
|
||||||
snippet('rightlogoheader');
|
snippet('rightlogoheader');
|
||||||
|
|
||||||
foreach($page->children()->listed()->flip() as $article):
|
$articlesPerPage = 3;
|
||||||
|
|
||||||
|
foreach($articles = $page->children()->listed()->flip()->paginate(3) as $article):
|
||||||
|
$newsImage = $article->images()->template('newsimage');
|
||||||
|
if ($newsImage) $newsImage = $newsImage->first();
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<article class="news">
|
<article class="news">
|
||||||
<h3><?= $article->title()->html() ?></h3>
|
<h5><a href="<?= $article->url() ?>"><?= $article->title()->html() ?></a></h5>
|
||||||
<?php if ($article->image()) { ?>
|
<?php if ($newsImage) { ?>
|
||||||
<img src="<?= $article->image()->resize(100, 100)->url() ?>" class="imageright"/>
|
<img src="<?= $newsImage->resize(100, 100)->url() ?>" class="imageright"/>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<p class="newspublished">Published: <span class="newsdate"><?= $article->date()->toDate('d-M-Y') ?></span></p>
|
<p class="newspublished">Published: <span class="newsdate"><?= $article->date()->toDate('d-M-Y') ?></span></p>
|
||||||
<p><?= $article->text()->excerpt(300) ?></p>
|
<p><?= $article->text()->excerpt(150) ?></p>
|
||||||
<a href="<?= $article->url() ?>">Read more...</a>
|
<a href="<?= $article->url() ?>">Read more...</a>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<?php
|
<?php endforeach; ?>
|
||||||
endforeach;
|
|
||||||
|
|
||||||
|
<?php $pagination = $articles->pagination() ?>
|
||||||
|
|
||||||
|
<nav aria-label="News Navigation">
|
||||||
|
<ul class="pagination justify-content-center">
|
||||||
|
<li class="page-item">
|
||||||
|
<?php if ($pagination->hasPrevPage()): ?>
|
||||||
|
<a class="page-link" href="<?= $pagination->prevPageURL() ?>" aria-label="Previous">
|
||||||
|
<span aria-hidden="true">«</span>
|
||||||
|
</a>
|
||||||
|
<?php else: ?>
|
||||||
|
<span class="page-link" aria-hidden="true">«</span>
|
||||||
|
<?php endif ?>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<?php foreach ($pagination->range(10) as $r): ?>
|
||||||
|
<?php if ($pagination->page() === $r): ?>
|
||||||
|
<li class="page-item active" aria-current="page">
|
||||||
|
<span class="page-link"><?= $r ?></span>
|
||||||
|
</li>
|
||||||
|
<?php else: ?>
|
||||||
|
<li class="page-item"><a class="page-link" href="<?= $pagination->pageURL($r) ?>"><?= $r ?></a></li>
|
||||||
|
<?php endif ?>
|
||||||
|
<?php endforeach ?>
|
||||||
|
|
||||||
|
<li class="page-item">
|
||||||
|
<?php if ($pagination->hasNextPage()): ?>
|
||||||
|
<a class="page-link" href="<?= $pagination->nextPageURL() ?>" aria-label="Next">
|
||||||
|
<span aria-hidden="true">»</span>
|
||||||
|
</a>
|
||||||
|
<?php else: ?>
|
||||||
|
<span class="page-link" aria-hidden="true">»</span>
|
||||||
|
<?php endif ?>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<?php
|
||||||
snippet('rightlogofooter');
|
snippet('rightlogofooter');
|
||||||
snippet('footer');
|
snippet('footer');
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
<?php
|
<?php
|
||||||
snippet('header');
|
snippet('header');
|
||||||
//snippet('rightlogoheader');
|
//snippet('rightlogoheader');
|
||||||
|
|
||||||
|
$newsImage = $page->images()->template('newsimage');
|
||||||
|
if ($newsImage) $newsImage = $newsImage->first();
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<h3><?= $page->title() ?></h3>
|
<h3><?= $page->title() ?></h3>
|
||||||
<?php if ($page->image()) { ?>
|
<?php if ($newsImage) { ?>
|
||||||
<img src="<?= $page->image()->resize(250, 250)->url() ?>" class="imageright"/>
|
<img src="<?= $newsImage->resize(250, 250)->url() ?>" class="imageright"/>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<p class="newspublished">Published: <span class="newsdate"><?= $page->date()->toDate('d-M-Y') ?></span></p>
|
<p class="newspublished">Published: <span class="newsdate"><?= $page->date()->toDate('d-M-Y') ?></span></p>
|
||||||
<?= $page->text()->kirbytext() ?>
|
<?= $page->text()->kirbytext() ?>
|
||||||
|
|
Loading…
Add table
Reference in a new issue