add a version action to give credit and list plugins
This commit is contained in:
parent
2c33e61b94
commit
4a4ac7a108
227
actions/version.php
Normal file
227
actions/version.php
Normal file
@ -0,0 +1,227 @@
|
||||
<?php
|
||||
/**
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2008, 2009, StatusNet, Inc.
|
||||
*
|
||||
* Show version information for this software and plugins
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @category Info
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
if (!defined('STATUSNET')) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Version info page
|
||||
*
|
||||
* A page that shows version information for this site. Helpful for
|
||||
* debugging, for giving credit to authors, and for linking to more
|
||||
* complete documentation for admins.
|
||||
*
|
||||
* @category Info
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class VersionAction extends Action
|
||||
{
|
||||
var $pluginVersions = array();
|
||||
|
||||
/**
|
||||
* Return true since we're read-only.
|
||||
*
|
||||
* @param array $args other arguments
|
||||
*
|
||||
* @return boolean is read only action?
|
||||
*/
|
||||
|
||||
function isReadOnly($args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the page title
|
||||
*
|
||||
* @return string page title
|
||||
*/
|
||||
|
||||
function title()
|
||||
{
|
||||
return sprintf(_("StatusNet %s"), STATUSNET_VERSION);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare to run
|
||||
*
|
||||
* Fire off an event to let plugins report their
|
||||
* versions.
|
||||
*
|
||||
* @param array $args array misc. arguments
|
||||
*
|
||||
* @return boolean true
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
Event::handle('PluginVersion', array(&$this->pluginVersions));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the action
|
||||
*
|
||||
* Shows a page with the version information in the
|
||||
* content area.
|
||||
*
|
||||
* @param array $args ignored.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
parent::handle($args);
|
||||
$this->showPage();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show version information
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showContent()
|
||||
{
|
||||
$this->elementStart('p');
|
||||
|
||||
$this->raw(sprintf(_('This site is powered by %s version %s, '.
|
||||
'Copyright 2008-2010 StatusNet, Inc. '.
|
||||
'and contributors.'),
|
||||
XMLStringer::estring('a', array('href' => 'http://status.net/'),
|
||||
_('StatusNet')),
|
||||
STATUSNET_VERSION));
|
||||
$this->elementEnd('p');
|
||||
|
||||
$this->element('h2', null, _('Contributors'));
|
||||
|
||||
$this->element('p', null, implode(', ', $this->contributors));
|
||||
|
||||
$this->element('h2', null, _('License'));
|
||||
|
||||
$this->element('p', null,
|
||||
_('StatusNet is free software: you can redistribute it and/or modify '.
|
||||
'it under the terms of the GNU Affero General Public License as published by '.
|
||||
'the Free Software Foundation, either version 3 of the License, or '.
|
||||
'(at your option) any later version. '));
|
||||
|
||||
$this->element('p', null,
|
||||
_('This program is distributed in the hope that it will be useful, '.
|
||||
'but WITHOUT ANY WARRANTY; without even the implied warranty of '.
|
||||
'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the '.
|
||||
'GNU Affero General Public License for more details. '));
|
||||
|
||||
$this->elementStart('p');
|
||||
$this->raw(sprintf(_('You should have received a copy of the GNU Affero General Public License '.
|
||||
'along with this program. If not, see %s.'),
|
||||
XMLStringer::estring('a', array('href' => 'http://www.gnu.org/licenses/agpl.html'),
|
||||
'http://www.gnu.org/licenses/agpl.html')));
|
||||
$this->elementEnd('p');
|
||||
|
||||
// XXX: Theme information?
|
||||
|
||||
if (count($this->pluginVersions)) {
|
||||
$this->element('h2', null, _('Plugins'));
|
||||
|
||||
foreach ($this->pluginVersions as $plugin) {
|
||||
$this->elementStart('dl');
|
||||
$this->element('dt', null, _('Name'));
|
||||
if (array_key_exists('homepage', $plugin)) {
|
||||
$this->elementStart('dd');
|
||||
$this->element('a', array('href' => $plugin['homepage']),
|
||||
$plugin['name']);
|
||||
$this->elementEnd('dd');
|
||||
} else {
|
||||
$this->element('dd', null, $plugin['name']);
|
||||
}
|
||||
$this->element('dt', null, _('Version'));
|
||||
$this->element('dd', null, $plugin['version']);
|
||||
if (array_key_exists('author', $plugin)) {
|
||||
$this->element('dt', null, _('Author(s)'));
|
||||
$this->element('dd', null, $plugin['author']);
|
||||
}
|
||||
if (array_key_exists('rawdescription', $plugin)) {
|
||||
$this->element('dt', null, _('Description'));
|
||||
$this->elementStart('dd');
|
||||
$this->raw($plugin['rawdescription']);
|
||||
$this->elementEnd('dd');
|
||||
} else if (array_key_exists('description', $plugin)) {
|
||||
$this->element('dt', null, _('Description'));
|
||||
$this->element('dd', null, $plugin['description']);
|
||||
}
|
||||
$this->elementEnd('dl');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var $contributors = array('Evan Prodromou (StatusNet)',
|
||||
'Zach Copley (StatusNet)',
|
||||
'Earle Martin (StatusNet)',
|
||||
'Marie-Claude Doyon (StatusNet)',
|
||||
'Sarven Capadisli (StatusNet)',
|
||||
'Robin Millette (StatusNet)',
|
||||
'Ciaran Gultnieks',
|
||||
'Michael Landers',
|
||||
'Ori Avtalion',
|
||||
'Garret Buell',
|
||||
'Mike Cochrane',
|
||||
'Matthew Gregg',
|
||||
'Florian Biree',
|
||||
'Erik Stambaugh',
|
||||
'drry',
|
||||
'Gina Haeussge',
|
||||
'Tryggvi Björgvinsson',
|
||||
'Adrian Lang',
|
||||
'Meitar Moscovitz',
|
||||
'Sean Murphy',
|
||||
'Leslie Michael Orchard',
|
||||
'Eric Helgeson',
|
||||
'Ken Sedgwick',
|
||||
'Brian Hendrickson',
|
||||
'Tobias Diekershoff',
|
||||
'Dan Moore',
|
||||
'Fil',
|
||||
'Jeff Mitchell',
|
||||
'Brenda Wallace',
|
||||
'Jeffery To',
|
||||
'Federico Marani',
|
||||
'Craig Andrews',
|
||||
'mEDI',
|
||||
'Brett Taylor');
|
||||
}
|
@ -736,6 +736,8 @@ class Action extends HTMLOutputter // lawsuit
|
||||
_('Privacy'));
|
||||
$this->menuItem(common_local_url('doc', array('title' => 'source')),
|
||||
_('Source'));
|
||||
$this->menuItem(common_local_url('version'),
|
||||
_('Version'));
|
||||
$this->menuItem(common_local_url('doc', array('title' => 'contact')),
|
||||
_('Contact'));
|
||||
$this->menuItem(common_local_url('doc', array('title' => 'badge')),
|
||||
|
@ -101,7 +101,9 @@ class Router
|
||||
'silence', 'unsilence',
|
||||
'repeat',
|
||||
'deleteuser',
|
||||
'geocode');
|
||||
'geocode',
|
||||
'version',
|
||||
);
|
||||
|
||||
foreach ($main as $a) {
|
||||
$m->connect('main/'.$a, array('action' => $a));
|
||||
|
Loading…
Reference in New Issue
Block a user