Skip to content

Commit

Permalink
Feature/html sitemap objects (#39)
Browse files Browse the repository at this point in the history
* update html sitemap page to use default sitemap function

* add ul replace
  • Loading branch information
ebakernz authored Nov 7, 2024
1 parent c06f0c7 commit c49f5de
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 42 deletions.
6 changes: 3 additions & 3 deletions src/Generators/SitemapGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
use SilverStripe\Control\Director;
use SilverStripe\Core\Config\Config;
use SilverStripe\ErrorPage\ErrorPage;
use SilverStripe\ORM\Arraylist;
use SilverStripe\ORM\DataList;
use SilverStripe\ORM\DataObject;
use SilverStripe\Subsites\Model\SubSite;
Expand Down Expand Up @@ -85,15 +84,16 @@ private function getSitemapFilters()
**/
public function getSitemapHTML()
{
$data = ArrayList::create();

$filters = $this->getSitemapFilters();
$filters['ParentID'] = 0;

$pages = Page::get()->filter($filters);

$this->getChildPages($pages);

// check $html for '<ul></ul>' and remove from string
$this->html = preg_replace('/<ul><\/ul>/', '', $this->html);

return $this->html;
}

Expand Down
26 changes: 6 additions & 20 deletions src/Pages/HTMLSitemap.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@

use Page;
use SilverStripe\ORM\DB;
use SilverStripe\ORM\ArrayList;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\ErrorPage\ErrorPage;
use PlasticStudio\SEO\Generators\SitemapGenerator;

class HTMLSitemap extends Page {

Expand All @@ -31,24 +30,11 @@ public function getCMSFields()
return $fields;
}

public function Sitemap()
{
// exclude error pages and self
$sitetree = SiteTree::get()->Filter(['ParentID' => 0, 'ClassName:not' => [ErrorPage::class, HTMLSitemap::class]])->sort('Sort ASC');

$pages = ArrayList::create();

// exclude pages that are hidden from the sitemap
foreach ($sitetree as $item) {
$page = Page::get()->byID($item->ID);

if ($page && !$page->SitemapHide) {
$pages->push($page);
}
}

return $pages;
}
public function getSitemap()
{
$generator = new SitemapGenerator();
return $generator->getSitemapHTML();
}

/**
* Add default record to database
Expand Down
28 changes: 9 additions & 19 deletions templates/PlasticStudio/SEO/Pages/Layout/HTMLSitemap.ss
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,15 @@

<div class="inner">

<% if $Sitemap %>
<%-- level 1 --%>
<ul>
<% loop $Sitemap %>
<% if not $ExcludeFromSitemap %>
<li>
<a href="$Link" title="{$SiteConfig.Title} - <% if MetaTitle %>$MetaTitle.XML <% else %> $Title.XML <% end_if %>">$MenuTitle.XML</a>
<% if $AllChildren %>
<% include PlasticStudio\\SEO\\Includes\\SitemapNextLevel %>
<% end_if %>
</li>
<% end_if %>
<% end_loop %>
</ul>
<% else %>

<p>There are no pages in this site yet.</p>

<% end_if %>
<% if $Sitemap %>

$Sitemap.RAW

<% else %>

<p>There are no pages in this site yet.</p>

<% end_if %>

<div class="clear"></div>

Expand Down

0 comments on commit c49f5de

Please sign in to comment.