From 8e018600a5c15d07587af04591aa99a8643374f6 Mon Sep 17 00:00:00 2001 From: Belle Aerni Date: Sat, 1 Apr 2023 19:30:12 -0700 Subject: [PATCH] Minor, but important improvements --- src/AntCMS/AntPages.php | 15 +++++---------- src/AntCMS/AntTwigFilters.php | 2 +- src/Plugins/Robotstxt/RobotstxtPlugin.php | 2 ++ src/Plugins/Sitemap/SitemapPlugin.php | 4 ++-- src/Themes/Default/Assets/Dist/TinyZoom.js | 2 +- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/AntCMS/AntPages.php b/src/AntCMS/AntPages.php index 50ca583..58d655b 100644 --- a/src/AntCMS/AntPages.php +++ b/src/AntCMS/AntPages.php @@ -30,19 +30,19 @@ class AntPages $pageFunctionalPath = '/'; } - if(str_ends_with($pageFunctionalPath, 'index')){ + if (str_ends_with($pageFunctionalPath, 'index')) { $pageFunctionalPath = substr($pageFunctionalPath, 0, -5); } $currentPage = array( 'pageTitle' => $pageHeader['title'], 'fullPagePath' => $page, - 'functionalPagePath' => $pageFunctionalPath, + 'functionalPagePath' => ($pageFunctionalPath == DIRECTORY_SEPARATOR) ? DIRECTORY_SEPARATOR : rtrim($pageFunctionalPath, DIRECTORY_SEPARATOR), 'showInNav' => true, ); - // Move the index page to the first item in the page list, so it appears as the first item in the navbar. - if ($pageFunctionalPath === '/') { + // Move the index page to the first item in the page list, so it appears as the first item in the navbar. + if ($pageFunctionalPath == DIRECTORY_SEPARATOR) { array_unshift($pageList, $currentPage); } else { $pageList[] = $currentPage; @@ -79,16 +79,11 @@ class AntPages } } - $currentPage = strtolower($currentPage); - if (str_ends_with($currentPage, '/')) { - $currentPage .= 'index.md'; - } - $baseURL = AntConfig::currentConfig('baseURL'); foreach ($pages as $key => $page) { $url = "//" . AntTools::repairURL($baseURL . $page['functionalPagePath']); $pages[$key]['url'] = $url; - $pages[$key]['active'] = $currentPage === strtolower($page['functionalPagePath']); + $pages[$key]['active'] = $currentPage == $page['functionalPagePath']; //Remove pages that are hidden from the nav from the array before sending it to twig. if (!(bool)$page['showInNav']) { diff --git a/src/AntCMS/AntTwigFilters.php b/src/AntCMS/AntTwigFilters.php index 434c372..6f66ff8 100644 --- a/src/AntCMS/AntTwigFilters.php +++ b/src/AntCMS/AntTwigFilters.php @@ -18,6 +18,6 @@ class AntTwigFilters extends AbstractExtension public function absUrl(string $relative): string { - return '//' . AntTools::repairURL(AntConfig::currentConfig('baseURL') . '/' . $relative); + return '://' . AntTools::repairURL(AntConfig::currentConfig('baseURL') . '/' . trim($relative)); } } diff --git a/src/Plugins/Robotstxt/RobotstxtPlugin.php b/src/Plugins/Robotstxt/RobotstxtPlugin.php index 5638356..6725dd8 100644 --- a/src/Plugins/Robotstxt/RobotstxtPlugin.php +++ b/src/Plugins/Robotstxt/RobotstxtPlugin.php @@ -13,6 +13,8 @@ class RobotstxtPlugin extends AntPlugin $robotstxt = 'User-agent: *' . "\n"; $robotstxt.= 'Disallow: /plugin/' . "\n"; + $robotstxt.= 'Disallow: /admin/' . "\n"; + $robotstxt.= 'Disallow: /profile/' . "\n"; $robotstxt.= 'Sitemap: ' . $protocol . '://' . AntTools::repairURL($baseURL . '/sitemap.xml' . "\n"); header("Content-Type: text/plain"); echo $robotstxt; diff --git a/src/Plugins/Sitemap/SitemapPlugin.php b/src/Plugins/Sitemap/SitemapPlugin.php index 198b72d..abf4d41 100644 --- a/src/Plugins/Sitemap/SitemapPlugin.php +++ b/src/Plugins/Sitemap/SitemapPlugin.php @@ -15,7 +15,7 @@ class SitemapPlugin extends AntPlugin $pages = AntPages::getPages(); if (extension_loaded('dom')) { - $domDocument = new DOMDocument(); + $domDocument = new DOMDocument('1.0', 'UTF-8'); $domDocument->formatOutput = true; $domElement = $domDocument->createElement('urlset'); @@ -47,7 +47,7 @@ class SitemapPlugin extends AntPlugin die("AntCMS is unable to generate a sitemap without having the DOM extension loadded in PHP."); } } - + public function getName(): string { return 'Sitemap'; diff --git a/src/Themes/Default/Assets/Dist/TinyZoom.js b/src/Themes/Default/Assets/Dist/TinyZoom.js index e03f9a1..3411d9a 100644 --- a/src/Themes/Default/Assets/Dist/TinyZoom.js +++ b/src/Themes/Default/Assets/Dist/TinyZoom.js @@ -1 +1 @@ -class TinyZoom{constructor(e){let t=document.querySelectorAll(e);t.forEach(e=>{e.style.cursor="pointer",e.addEventListener("click",()=>{this.makeFullscreen(e)}),e.addEventListener("touchstart",t=>{t.preventDefault(),this.makeFullscreen(e)})})}makeFullscreen(e){let t=document.createElement("div");t.classList.add("fullscreen-image");let i=document.createElement("canvas"),n=i.getContext("2d");i.width=e.width,i.height=e.height,n.drawImage(e,0,0,e.width,e.height);var l=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),a=Math.max(document.documentElement.clientHeight||0,window.innerHeight||0);if(l>0)var d=e.width>l?l/e.width*.75:1;if(a>0)var r=e.height>a?a/e.height*.75:1;t.appendChild(i),document.body.appendChild(t),t.addEventListener("click",e=>{e.target===t&&t.remove()}),t.addEventListener("wheel",e=>{e.target===t&&e.preventDefault()});let s,h,o,c=1;function m(t){c*=t,i.style.transform=`scale(${c})`,n.clearRect(0,0,i.width,i.height),n.drawImage(e,0,0,e.width,e.height)}i.style.position="absolute",i.style.left=l/2-e.width/2+"px",i.style.top=a/2-e.height/2+"px",i.style.cursor="move",i.addEventListener("wheel",e=>{e.preventDefault();let t=e.deltaY>0?.9:1.1;m(t)}),i.addEventListener("mousedown",e=>{s=e.pageX-i.offsetLeft,h=e.pageY-i.offsetTop,o=!0}),i.addEventListener("mousemove",e=>{if(o){let t=e.pageX-s,n=e.pageY-h;i.style.left=`${t}px`,i.style.top=`${n}px`}}),i.addEventListener("mouseup",()=>{o=!1}),i.addEventListener("dblclick",e=>{m(e.shiftKey?.5:2)});var v=Math.min(1,d,r);1!=v&&m(v)}}window.addEventListener("load",()=>{new TinyZoom(".TinyZoom")}); \ No newline at end of file +class TinyZoom{constructor(e){let t=document.querySelectorAll(e);t.forEach(e=>{e.style.cursor="pointer",e.addEventListener("click",()=>{this.makeFullscreen(e)}),e.addEventListener("touchstart",t=>{t.preventDefault(),this.makeFullscreen(e)})})}makeFullscreen(e){let t=document.createElement("div");t.classList.add("fullscreen-image");let i=document.createElement("canvas"),n=i.getContext("2d"),l,a,d,s=window.devicePixelRatio||1;screen.orientation.type.startsWith("portrait"),i.style.maxWidth="85%",i.style.maxHeight="85%",i.width=e.width*s,i.height=e.height*s,n.scale(s,s),n.drawImage(e,0,0,e.width,e.height);var r=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),h=Math.max(document.documentElement.clientHeight||0,window.innerHeight||0),o=1.1*e.width>r?r/e.width*.9:1,c=1.1*e.height>h?h/e.height*.9:1;function m(t){s*=t,i.style.transform=`scale(${s})`,n.clearRect(0,0,i.width,i.height),n.drawImage(e,0,0,e.width,e.height)}t.appendChild(i),document.body.appendChild(t),t.addEventListener("click",e=>{e.target===t&&t.remove()}),t.addEventListener("wheel",e=>{e.target===t&&e.preventDefault()}),i.style.position="fixed",i.style.left=r/2-e.width/2+"px",i.style.top=h/2-e.height/2+"px",i.style.cursor="move",i.addEventListener("wheel",e=>{e.preventDefault();let t=e.deltaY>0?.9:1.1;m(t)}),i.addEventListener("mousedown",e=>{l=e.pageX-i.offsetLeft,a=e.pageY-i.offsetTop,d=!0}),i.addEventListener("mousemove",e=>{if(d){let t=e.pageX-l,n=e.pageY-a;i.style.left=`${t}px`,i.style.top=`${n}px`}}),i.addEventListener("mouseup",()=>{d=!1}),i.addEventListener("dblclick",e=>{m(e.shiftKey?.5:2)});var p=Math.min(1,o,c);1!=p&&(s=p,i.style.left=r/2-e.width*s/2+"px",i.style.top=h/2-e.height*s/2+"px",m(1))}}window.addEventListener("load",()=>{new TinyZoom(".TinyZoom")}); \ No newline at end of file