1
0
Fork 0

add sitemap

This commit is contained in:
Lukas Winkler 2017-09-28 11:16:48 +02:00
parent 184400efa0
commit 9007cffc86
8 changed files with 117 additions and 3 deletions

1
.gitignore vendored
View file

@ -10,3 +10,4 @@ src/composer.phar
src/config/config.php
src/node_modules/
src/public/css/style.*
src/tmp/sitemap-index.xml

View file

@ -8,7 +8,8 @@
"knplabs/github-api": "^2.5",
"php-http/guzzle6-adapter": "^1.1",
"cache/filesystem-adapter": "^1.0",
"monolog/monolog": "^1.23"
"monolog/monolog": "^1.23",
"evert/sitemap-php": "^1.2"
},
"autoload":{
"psr-0":{

46
src/composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "14a0b7b897b18b882ea252fcf4b478bd",
"content-hash": "173d5101b6c7ef41ef8167acc05029fc",
"packages": [
{
"name": "cache/adapter-common",
@ -315,6 +315,50 @@
],
"time": "2017-05-14T14:47:48+00:00"
},
{
"name": "evert/sitemap-php",
"version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/evert/sitemap-php.git",
"reference": "be07a062943401067bf0ba62710ca733c838bc24"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/evert/sitemap-php/zipball/be07a062943401067bf0ba62710ca733c838bc24",
"reference": "be07a062943401067bf0ba62710ca733c838bc24",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-0": {
"SitemapPHP": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Osman Ungur",
"email": "osmanungur@gmail.com"
},
{
"name": "Evert Pot",
"email": "evert@rooftopsolutions.nl"
}
],
"description": "Lightweight library for generating Google sitemap XML files",
"homepage": "http://code.google.com/p/sabredav/",
"keywords": [
"Sitemap"
],
"time": "2015-04-17T21:45:50+00:00"
},
{
"name": "ezyang/htmlpurifier",
"version": "v4.9.3",

View file

@ -49,4 +49,9 @@ define('PIWIK_ID', false);
* Number of pages to show before and after the current page in the pagination. e.g. default (5) on page 37:
* < 1 ... 32 33 34 35 36 *37** 38 39 40 40 42 ... 115 >
*/
define("PAGINATION_PADDING", 5);
define("PAGINATION_PADDING", 5);
/**
* used in sitemap (without trailing slash)
*/
define("BASE_DOMAIN", "https://issues.piwik.org");

View file

@ -25,6 +25,17 @@ class Issue {
return json_decode($serialized, true);
}
public static function getAllIssues() {
$Directory = new \RecursiveDirectoryIterator(dirname(__FILE__) . "/../data/issues/");
$Iterator = new \RecursiveIteratorIterator($Directory);
$issues = [];
foreach ($Iterator as $name => $object) {
$filename = $object->getFilename();
$issues[] = str_replace(".json", "", $filename);
}
return $issues;
}
/**
* Verify whether the given issue exists.
* @param int $issueNumber

View file

@ -25,6 +25,11 @@ class Page
return json_decode($content, true);
}
public static function getAllPages() {
$files = scandir(dirname(__FILE__) . "/../data/pages/");
return str_replace(".json", "", array_diff($files, array('..', '.', '.gitkeep')));
}
/**
* Verify whether the given page number exists.
* @param int $pageNumber

View file

@ -0,0 +1,46 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace helpers;
use Monolog\Logger;
use SitemapPHP\Sitemap;
use Slim\App;
class SitemapHelper
{
public static function createSitemap(Logger $logger) {
$app = new App();
require "../routes/page.php";
$sitemap = new Sitemap(BASE_DOMAIN);
$sitemap->setPath('../tmp/');
$logger->info("fetching all pages for sitemap");
$pages = Page::getAllPages();
natsort($pages);
foreach ($pages as $pageNumber) {
$url = $app->getContainer()->get('router')->pathFor('page', [], [
'page' => $pageNumber
]);
$sitemap->addItem($url, 0.2);
}
$logger->info("fetching all issues for sitemap");
$issues = Issue::getAllIssues();
natsort($issues);
foreach ($issues as $issueNumber) {
$url = $app->getContainer()->get('router')->pathFor('issue', [
'number' => $issueNumber
]);
$sitemap->addItem($url, 0.5);
}
$logger->info("generating sitemap");
$sitemap->createSitemapIndex(BASE_DOMAIN . "/", 'Today');
}
}

View file

@ -29,6 +29,7 @@ $importer = new helpers\GithubImporter($client, $logger);
try {
$logger->info("starting import");
$importer->import(GITHUB_ORGANIZATION, GITHUB_REPOSITORY, NUMBER_OF_ISSUES_PER_PAGE);
helpers\SitemapHelper::createSitemap($logger);
} catch (Exception $e) {
helpers\Mail::sendEmail('Import error', $e->getMessage(), PROJECT_EMAIL, PROJECT_EMAIL);