add sitemap
This commit is contained in:
parent
184400efa0
commit
9007cffc86
8 changed files with 117 additions and 3 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -10,3 +10,4 @@ src/composer.phar
|
|||
src/config/config.php
|
||||
src/node_modules/
|
||||
src/public/css/style.*
|
||||
src/tmp/sitemap-index.xml
|
||||
|
|
|
@ -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
46
src/composer.lock
generated
|
@ -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",
|
||||
|
|
|
@ -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");
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
46
src/helpers/SitemapHelper.php
Normal file
46
src/helpers/SitemapHelper.php
Normal 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');
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
||||
|
|
Reference in a new issue