This repository has been archived on 2024-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
sakura/main/changelog.php

121 lines
3.3 KiB
PHP
Raw Normal View History

2015-04-26 16:01:28 +00:00
<?php
/*
* Sakura Main Index
*/
// Declare Namespace
namespace Sakura;
2015-07-30 17:07:23 +00:00
// We don't use twig here
define('SAKURA_NO_TPL', true);
2015-04-26 16:01:28 +00:00
// Include components
require_once str_replace(basename(__DIR__), '', dirname(__FILE__)) .'_sakura/sakura.php';
// Path the changelog JSON
$changelogFile = json_decode(file_get_contents(ROOT .'_sakura/changelog.json'), true);
$changelog = array();
// Create version categories
foreach($changelogFile['versions'] as $name => $data) {
// Reverse the array
2015-08-10 02:24:25 +00:00
$data['revisions'] = array_reverse($data['revisions'], true);
2015-04-26 16:01:28 +00:00
2015-08-10 02:24:25 +00:00
foreach($data['revisions'] as $rev) {
2015-04-26 16:01:28 +00:00
2015-08-10 02:24:25 +00:00
$changelog[$rev]['name'] = $name;
$changelog[$rev]['colour'] = $data['colour'];
$changelog[$rev]['changes'] = array();
2015-04-26 16:01:28 +00:00
}
}
// Sort changes properly
foreach($changelogFile['changelog'] as $ver => $data) {
// Reverse the array
$data = array_reverse($data, true);
// Add the log to the array
foreach($data as $id => $change)
$changelog[$ver]['changes'][$id] = $change;
}
// Add a thing to only get the json
if(isset($_REQUEST['getjson'])) {
// Print encoded json and exit
print json_encode($changelog);
exit;
}
// Create variable to store HTML in
$changelogHTML = null;
// Format HTML
2015-08-10 02:24:25 +00:00
foreach($changelog as $revisionId => $revisionData) {
2015-04-26 16:01:28 +00:00
2015-08-10 02:24:25 +00:00
$changelogHTML .= '<div class="release" id="r'. $revisionId .'">';
2015-04-26 16:01:28 +00:00
2015-08-10 02:24:25 +00:00
$changelogHTML .= '<a href="#r'. $revisionId .'" class="title" style="color: '. $revisionData['colour'] .';">Revision '. $revisionId .' ('. $revisionData['name'] .')</a>';
2015-04-26 16:01:28 +00:00
2015-08-10 02:24:25 +00:00
foreach($revisionData['changes'] as $id => $changeData) {
2015-04-26 16:01:28 +00:00
2015-08-10 02:24:25 +00:00
$changelogHTML .= '<div id="r'. $revisionId .'c'. $id .'">';
2015-04-26 16:01:28 +00:00
switch($changeData['type']) {
case 'ADD':
$changelogHTML .= '<span class="tag addition-tag">Added</span>';
break;
case 'REM':
$changelogHTML .= '<span class="tag removal-tag">Removed</span>';
break;
case 'FIX':
$changelogHTML .= '<span class="tag fixed-tag">Fixed</span>';
break;
case 'UPD':
$changelogHTML .= '<span class="tag update-tag">Updated</span>';
break;
default:
$changelogHTML .= '<span class="tag">Unknown</span>';
}
$changelogHTML .= '<span class="changedesc">';
$changelogHTML .= $changeData['change'];
$changelogHTML .= '</span>';
2015-08-10 02:43:36 +00:00
$changelogHTML .= '<a class="changeuser" target="_blank" href="http://bitbucket.org/'. strtolower($changeData['user']) .'">';
$changelogHTML .= $changeData['user'];
$changelogHTML .= '</a>';
2015-04-26 16:01:28 +00:00
$changelogHTML .= '</div>';
}
$changelogHTML .= '</div>';
}
// Get special template file
2015-04-27 00:41:59 +00:00
$tpl = file_get_contents(ROOT .'_sakura/templates/changeLog.tpl');
2015-04-26 16:01:28 +00:00
// Parse tags
2015-06-29 00:36:37 +00:00
$tpl = str_replace('{{ version }}', SAKURA_VERSION, $tpl);
$tpl = str_replace('{{ version_label }}', SAKURA_VLABEL, $tpl);
$tpl = str_replace('{{ version_type }}', SAKURA_STABLE ? 'Stable' : 'Development', $tpl);
$tpl = str_replace('{{ colour }}', SAKURA_COLOUR, $tpl);
$tpl = str_replace('{{ changeloghtml }}', $changelogHTML, $tpl);
2015-04-26 16:01:28 +00:00
// Print template
print $tpl;