mirror of
https://github.com/wilr/silverstripe-googlesitemaps.git
synced 2024-10-22 11:05:48 +02:00
added a way to include any images displayed on the pages to the google site maps and updated the XSL to show them on the screen.
This commit is contained in:
parent
36ef636249
commit
29be1bc504
@ -101,7 +101,6 @@ table.tablesorter thead tr .headerSortDown {
|
|||||||
table.tablesorter tbody td {
|
table.tablesorter tbody td {
|
||||||
color: #005A92;
|
color: #005A92;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
|
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
table.tablesorter tbody tr{
|
table.tablesorter tbody tr{
|
||||||
@ -124,6 +123,20 @@ table.tablesorter tbody tr:hover td,
|
|||||||
table.tablesorter tbody tr:hover a{
|
table.tablesorter tbody tr:hover a{
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
table.imagestable,
|
||||||
|
table.imagestable a {
|
||||||
|
font-size: 8pt;
|
||||||
|
}
|
||||||
|
table.imagestable {
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
table.imagestable tr.odd {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
table.imagestable tr.even {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
#Footer{
|
#Footer{
|
||||||
margin: 50px 0 10px;
|
margin: 50px 0 10px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Wilr\GoogleSitemaps\Extensions;
|
namespace Wilr\GoogleSitemaps\Extensions;
|
||||||
|
|
||||||
|
use SilverStripe\Assets\Image;
|
||||||
use SilverStripe\ErrorPage\ErrorPage;
|
use SilverStripe\ErrorPage\ErrorPage;
|
||||||
use SilverStripe\Forms\DropdownField;
|
use SilverStripe\Forms\DropdownField;
|
||||||
use SilverStripe\Forms\LiteralField;
|
use SilverStripe\Forms\LiteralField;
|
||||||
@ -138,4 +139,32 @@ class GoogleSitemapSiteTreeExtension extends GoogleSitemapExtension
|
|||||||
return (is_numeric($priority) && $priority <= 1.0) ? $priority : 0.5;
|
return (is_numeric($priority) && $priority <= 1.0) ? $priority : 0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function ImagesForSitemap()
|
||||||
|
{
|
||||||
|
$list = new ArrayList();
|
||||||
|
|
||||||
|
foreach ($this->owner->hasOne() as $field => $type) {
|
||||||
|
if(is_a(singleton($type), 'Image')) {
|
||||||
|
$image = $this->owner->getComponent($field);
|
||||||
|
if($image && $image->exists()) {
|
||||||
|
$list->push($image);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($this->owner->hasMany() as $field => $type) {
|
||||||
|
if(is_a(singleton($type), 'Image')) {
|
||||||
|
$images = $this->owner->getComponents($field);
|
||||||
|
foreach ($images as $image) {
|
||||||
|
if ($image && $image->exists()) {
|
||||||
|
$list->push($image);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->owner->extend('updateImagesForSitemap', $list);
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<?xml-stylesheet type='text/xsl' href='$StylesheetPath'?>
|
<?xml-stylesheet type='text/xsl' href='$StylesheetPath'?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
|
||||||
<% loop $Items %>
|
<% loop $Items %>
|
||||||
<url>
|
<url>
|
||||||
<loc>$AbsoluteLink</loc>
|
<loc>$AbsoluteLink</loc>
|
||||||
<% if $LastEdited %><lastmod>$LastEdited.Rfc3339()</lastmod><% end_if %>
|
<% if $LastEdited %><lastmod>$LastEdited.Rfc3339()</lastmod><% end_if %>
|
||||||
<% if $ChangeFrequency %><changefreq>$ChangeFrequency</changefreq><% end_if %>
|
<% if $ChangeFrequency %><changefreq>$ChangeFrequency</changefreq><% end_if %>
|
||||||
<% if $GooglePriority %><priority>$GooglePriority</priority><% end_if %>
|
<% if $GooglePriority %><priority>$GooglePriority</priority><% end_if %>
|
||||||
|
<% if $ImagesForSitemap %><% loop $ImagesForSitemap %>
|
||||||
|
<image:image>
|
||||||
|
<image:loc>{$AbsoluteLink}</image:loc>
|
||||||
|
</image:image>
|
||||||
|
<% end_loop %><% end_if %>
|
||||||
</url>
|
</url>
|
||||||
<% end_loop %>
|
<% end_loop %>
|
||||||
</urlset>
|
</urlset>
|
||||||
|
@ -37,9 +37,36 @@
|
|||||||
<xsl:variable name="itemURL">
|
<xsl:variable name="itemURL">
|
||||||
<xsl:value-of select="sitemap:loc"/>
|
<xsl:value-of select="sitemap:loc"/>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
|
<xsl:variable name="imagesCount" select="count(image:image)"/>
|
||||||
<a href="{$itemURL}">
|
<a href="{$itemURL}">
|
||||||
<xsl:value-of select="sitemap:loc"/>
|
<xsl:value-of select="sitemap:loc"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<xsl:if test="$imagesCount > 0">
|
||||||
|
<table class="imagestable" cellpadding="0" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<th>Images</th>
|
||||||
|
</tr>
|
||||||
|
<xsl:for-each select="image:image">
|
||||||
|
<xsl:variable name="imageURL">
|
||||||
|
<xsl:value-of select="image:loc"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<img src="{$imageURL}" width="40px"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="{$imageURL}">
|
||||||
|
<xsl:value-of select="image:loc"/>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</xsl:for-each>
|
||||||
|
</table>
|
||||||
|
</xsl:if>
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
|
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user