diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d2ea5e0 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "resources/SplideJs"] + path = resources/SplideJs + url = https://github.com/Splidejs/splide.git diff --git a/commons/DOM/head.php b/commons/DOM/head.php index f9e57e1..48d861a 100644 --- a/commons/DOM/head.php +++ b/commons/DOM/head.php @@ -17,7 +17,7 @@ if(basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { if($enable_code_highlight) { echo(''); } -if($enable_glider) { - echo(''); +if($enable_gallery) { + echo(''); } ?> diff --git a/commons/DOM/scripts.php b/commons/DOM/scripts.php index 9095ea8..5623aa9 100644 --- a/commons/DOM/scripts.php +++ b/commons/DOM/scripts.php @@ -5,8 +5,8 @@ if(basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { die(); } -if($enable_glider) { - echo(''); +if($enable_gallery) { + echo(''); } if($enable_code_highlight) { @@ -16,9 +16,8 @@ if($enable_code_highlight) { ?> '); +if($enable_gallery) { + echo(''); } if($enable_code_highlight) { echo(''); diff --git a/commons/composer.php b/commons/composer.php index 1788ced..c429ba8 100644 --- a/commons/composer.php +++ b/commons/composer.php @@ -896,13 +896,21 @@ class ComposerElement { break; case ComposerElementTypes::GALLERY: - $htmlCode .= '
'; - - foreach($this->images as $galleryImageUrl) { - $htmlCode .= ''; + if(!is_null($this->srTitle)) { + $htmlCode .= '
'; + $htmlCode .= ''; + } else { + $htmlCode .= '
'; } - $htmlCode .= '
'; + $htmlCode .= '
'; + $htmlCode .= '
'; break; case ComposerElementTypes::VIDEO: diff --git a/commons/config.php b/commons/config.php index 267e0ab..e534ac7 100644 --- a/commons/config.php +++ b/commons/config.php @@ -31,7 +31,7 @@ $config_dir_tools = realpath($dir_commons . "/../" . "tools/"); // Optional features $enable_grids = false; $enable_code_highlight = false; -$enable_glider = false; +$enable_gallery = false; $enable_kitty_and_doggo_sounds = false; // Easter-egg optional features diff --git a/compile.bat b/compile.bat index 40bfe49..7aa7f47 100644 --- a/compile.bat +++ b/compile.bat @@ -59,8 +59,8 @@ echo ^> resources\NibblePoker\js\nibblepoker-code.js call "%~dp0node_modules\.bin\terser" nibblepoker-code.js -c -m -o nibblepoker-code.min.js echo ^> resources\NibblePoker\js\nibblepoker-contributors.js call "%~dp0node_modules\.bin\terser" nibblepoker-contributors.js -c -m -o nibblepoker-contributors.min.js -echo ^> resources\NibblePoker\js\nibblepoker-glider.js -call "%~dp0node_modules\.bin\terser" nibblepoker-glider.js -c -m -o nibblepoker-glider.min.js +echo ^> resources\NibblePoker\js\nibblepoker-splide.js +call "%~dp0node_modules\.bin\terser" nibblepoker-splide.js -c -m -o nibblepoker-splide.min.js popd :libs-decimaljs-minify diff --git a/content/index.php b/content/index.php index f1daf32..5fbe383 100644 --- a/content/index.php +++ b/content/index.php @@ -36,7 +36,7 @@ if($contentManager->hasError) { } } else { $enable_code_highlight = true; - $enable_glider = true; + $enable_gallery = true; } ?> diff --git a/readme.md b/readme.md index febfa55..1d85e9e 100644 --- a/readme.md +++ b/readme.md @@ -63,8 +63,6 @@ These files are required and need to be installed manually for the website to wo * Apache 2.4 & PHP 8.1 or newer * Font Awesome Pro v5.15.3 * `/resources/FontAwesomePro/` -* Glider.js v1.7.6 - * `/resources/GliderJs/` * Highlight.js v11.6.0 * `/resources/HighlightJS/` diff --git a/resources/NibblePoker/js/nibblepoker-glider.js b/resources/NibblePoker/js/nibblepoker-glider.js deleted file mode 100644 index bf984c0..0000000 --- a/resources/NibblePoker/js/nibblepoker-glider.js +++ /dev/null @@ -1,85 +0,0 @@ -// Creating the galleries from Glider.js - -window.addEventListener('load', function(){ - document.querySelectorAll(".glider").forEach(element => { - console.debug("Creating glider..."); - console.debug(element); - - let glider = new Glider(element, { - slidesToShow: 1, - draggable: true, - scrollLock: true, - scrollLockDelay: 125, - rewind: true, - arrows: { - prev: element.previousSibling, - next: element.nextSibling - }, - responsive: [ - { - breakpoint: 768, - settings: { - slidesToShow: 2, - duration: 0.25 - } - },{ - breakpoint: 992, - settings: { - slidesToShow: 3, - slidesToScroll: 1 - } - } - ] - }); - console.debug(glider); - - // Processing the images - const eImages = []; - - // Converting the Node to a HTMLElement if needed and desired. - element.childNodes[0].childNodes.forEach(childrenNode => { - if(childrenNode.nodeType !== Node.ELEMENT_NODE) { - return; - } - - // Casting from a Node to a proper HTMLElement because of course we have to add this step in JS... - const eChildElement = childrenNode.cloneNode(true); - - if(eChildElement.tagName.toLowerCase() !== "img") { - return; - } - - eChildElement.onclick = function() { - let eModalImage = document.createElement("img") - eModalImage.classList.add("modal-inner-image"); - eModalImage.classList.add("r-xl"); - eModalImage.src = eChildElement.src; - eModalImage.alt = eChildElement.alt; - //halfmoon.toggleModal('modal-content-image-viewer'); - //console.log("Opening image..."); - showContentModal(eModalImage); - }; - - // Saving the element for later. - eImages.push(eChildElement); - }); - - // Removing the nodes so that the desired ones can be reinserted later. - // We start from the rear to prevent issues with de-ordering as we delete them ! - for(let i = element.childNodes[0].childNodes.length - 1; i >= 0; i--) { - element.childNodes[0].removeChild(element.childNodes[0].childNodes[i]); - } - - eImages.forEach(eImageElement => { - element.childNodes[0].appendChild(eImageElement); - }); - }); - - // The default modal animation looks like ass, jesus... - let eImgModalCloseButton = document.getElementById("modal-img-close"); - if(eImgModalCloseButton != null) { - eImgModalCloseButton.onclick = function() { - halfmoon.toggleModal('modal-content-image-viewer'); - } - } -}); diff --git a/resources/NibblePoker/js/nibblepoker-splide.js b/resources/NibblePoker/js/nibblepoker-splide.js new file mode 100644 index 0000000..affd0b5 --- /dev/null +++ b/resources/NibblePoker/js/nibblepoker-splide.js @@ -0,0 +1,14 @@ +// Creating the galleries with SplideJs + +window.addEventListener('load', function() { + new Splide( '.splide', { + perPage: 2, + cover: true, + heightRatio: 0.4, + breakpoints: { + 768: { + perPage: 1, + }, + }, + } ).mount(); +}); diff --git a/resources/SplideJs b/resources/SplideJs new file mode 160000 index 0000000..efa458d --- /dev/null +++ b/resources/SplideJs @@ -0,0 +1 @@ +Subproject commit efa458db47a7461bf7a6a247ece1a9175529a08a diff --git a/tools/index.php b/tools/index.php index 3842c75..fef439e 100644 --- a/tools/index.php +++ b/tools/index.php @@ -48,8 +48,8 @@ if($contentManager->hasError) { $content_error_code = 500; } } else { - $enable_code_highlight = true; - $enable_glider = true; + $enable_code_highlight = false; + $enable_gallery = true; } ?> @@ -141,6 +141,11 @@ include 'commons/DOM/sidebar.php'; $doPrintRuler = false; foreach($contentManager->rootIndexEntries as $current_content) { /** @var ContentIndexEntry $current_content */ + + if($current_content->priority == -1) { + continue; + } + if($doPrintRuler) { echo('
'); } else {