aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin.php20
-rw-r--r--admin/admin_phpinfo.php82
-rw-r--r--admin/intro.php202
-rw-r--r--doc/ChangeLog11
-rw-r--r--template/default/admin.tpl1
-rw-r--r--template/default/default.css26
6 files changed, 250 insertions, 92 deletions
diff --git a/admin.php b/admin.php
index 75710773d..23bb3f76f 100644
--- a/admin.php
+++ b/admin.php
@@ -54,7 +54,8 @@ else if (isset($_GET['user_id']))
$username = get_username($_GET['user_id']);
}
-if (isset( $_GET['page'] ))
+$_GET['page'] = isset($_GET['page']) ? $_GET['page'] : 'intro';
+
switch ( $_GET['page'] )
{
case 'user_list' :
@@ -97,8 +98,6 @@ switch ( $_GET['page'] )
$title = $lang['title_update']; $page_valide = true; break;
case 'configuration':
$title = $lang['title_configuration']; $page_valide = true; break;
- case 'admin_phpinfo':
- $title = $lang['phpinfos']; $page_valide = true; break;
case 'help':
$title = $lang['title_instructions']; $page_valide = true; break;
case 'cat_perm':
@@ -186,8 +185,17 @@ switch ( $_GET['page'] )
// $page_valide = true;
// break;
// }
- default:
- $title = $lang['title_default']; break;
+ case 'intro' :
+ {
+ $_GET['page'] = 'intro';
+ $title = $lang['title_default'];
+ $page_valide = true;
+ break;
+ }
+ default :
+ {
+ break;
+ }
}
if ( $title == '' ) $title = $lang['title_default'];
@@ -225,7 +233,6 @@ $template->assign_vars(array(
'L_GALLERY_INDEX'=>$lang['home'],
'L_GENERAL'=>$lang['general'],
'L_DEFAULT'=>$lang['gallery_default'],
- 'L_PHPINFO'=>$lang['phpinfos'],
'L_HISTORY'=>$lang['history'],
'L_FAQ'=>$lang['instructions'],
'L_CONFIGURATION'=>$lang['config'],
@@ -255,7 +262,6 @@ $template->assign_vars(array(
'U_HISTORY'=>add_session_id($link_start.'stats' ),
'U_FAQ'=>add_session_id($link_start.'help' ),
'U_SITES'=>add_session_id($link_start.'remote_site'),
- 'U_PHPINFO'=>add_session_id($link_start.'admin_phpinfo' ),
'U_MAINTENANCE'=>add_session_id($link_start.'maintenance'),
'U_CONFIG_GENERAL'=>add_session_id($conf_link.'general' ),
'U_CONFIG_COMMENTS'=>add_session_id($conf_link.'comments' ),
diff --git a/admin/admin_phpinfo.php b/admin/admin_phpinfo.php
deleted file mode 100644
index 8b7c3230e..000000000
--- a/admin/admin_phpinfo.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | PhpWebGallery - a PHP based picture gallery |
-// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
-// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
-// +-----------------------------------------------------------------------+
-// | branch : BSF (Best So Far)
-// | file : $RCSfile$
-// | last update : $Date$
-// | last modifier : $Author$
-// | revision : $Revision$
-// +-----------------------------------------------------------------------+
-// | This program is free software; you can redistribute it and/or modify |
-// | it under the terms of the GNU General Public License as published by |
-// | the Free Software Foundation |
-// | |
-// | 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 |
-// | General Public License for more details. |
-// | |
-// | You should have received a copy of the GNU General Public License |
-// | along with this program; if not, write to the Free Software |
-// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
-// | USA. |
-// +-----------------------------------------------------------------------+
-
-if( !defined("PHPWG_ROOT_PATH") )
-{
- die ("Hacking attempt!");
-}
-
-include_once( PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php' );
-
-ob_start();
-phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES | INFO_VARIABLES);
-$phpinfo = ob_get_contents();
-ob_end_clean();
-
-// Get used layout
-$layout = (preg_match('#bgcolor#i', $phpinfo)) ? 'old' : 'new';
-$output='';
-// Here we play around a little with the PHP Info HTML to try and stylise
-// it along phpBB's lines ... hopefully without breaking anything. The idea
-// for this was nabbed from the PHP annotated manual
-preg_match_all('#<body[^>]*>(.*)</body>#siU', $phpinfo, $output);
-
-switch ($layout)
-{
- case 'old':
- $output = preg_replace('#<table#', '<table class="table2"', $output[1][0]);
- $output = preg_replace('# bgcolor="\#(\w){6}"#', '', $output);
- $output = preg_replace('#(\w),(\w)#', '\1, \2', $output);
- $output = preg_replace('#border="0" cellpadding="3" cellspacing="1" width="600"#', 'border="0" cellspacing="1" cellpadding="4" width="95%"', $output);
- $output = preg_replace('#<tr valign="top"><td align="left">(.*?<a .*?</a>)(.*?)</td></tr>#s', '<tr class="row1"><td style="{background-color: #9999cc;}"><table width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td style="{background-color: #9999cc;}">\2</td><td style="{background-color: #9999cc;}">\1</td></tr></table></td></tr>', $output);
- $output = preg_replace('#<tr valign="baseline"><td[ ]{0,1}><b>(.*?)</b>#', '<tr><td class="row1" nowrap="nowrap">\1', $output);
- $output = preg_replace('#<td align="(center|left)">#', '<td class="row2">', $output);
- $output = preg_replace('#<td>#', '<td class="row2">', $output);
- $output = preg_replace('#valign="middle"#', '', $output);
- $output = preg_replace('#<tr >#', '<tr>', $output);
- $output = preg_replace('#<hr(.*?)>#', '', $output);
- $output = preg_replace('#<h1 align="center">#i', '<h1>', $output);
- $output = preg_replace('#<h2 align="center">#i', '<h2>', $output);
- break;
- case 'new':
- $output = preg_replace('#<table#', '<table class="table2"', $output[1][0]);
- $output = preg_replace('#(\w),(\w)#', '\1, \2', $output);
- $output = preg_replace('#border="0" cellpadding="3" width="600"#', 'border="0" cellspacing="1" cellpadding="2" width="95%"', $output);
- $output = preg_replace('#<tr class="v"><td>(.*?<a .*?</a>)(.*?)</td></tr>#s', '<tr class="throw"><td><table width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td>\2</td><td>\1</td></tr></table></td></tr>', $output);
- $output = preg_replace('#<td>#', '<td style="background-color: #444444;text-align:center;">', $output);
- $output = preg_replace('#<th>#', '<th class="throw">', $output);
- $output = preg_replace('#class="e"#', 'class="row1"', $output);
- $output = preg_replace('#class="v"#', 'class="row2"', $output);
- $output = preg_replace('# class="h"#', '', $output);
- $output = preg_replace('#<hr />#', '', $output);
- preg_match_all('#<div class="center">(.*)</div>#siU', $output, $output);
- $output = $output[1][0];
- break;
-}
-$template->assign_var('ADMIN_CONTENT',$output);
-
-?> \ No newline at end of file
diff --git a/admin/intro.php b/admin/intro.php
new file mode 100644
index 000000000..25369e832
--- /dev/null
+++ b/admin/intro.php
@@ -0,0 +1,202 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | branch : BSF (Best So Far)
+// | file : $RCSfile$
+// | last update : $Date$
+// | last modifier : $Author$
+// | revision : $Revision$
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify |
+// | it under the terms of the GNU General Public License as published by |
+// | the Free Software Foundation |
+// | |
+// | 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 |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+ die ("Hacking attempt!");
+}
+include_once(PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php');
+
+// +-----------------------------------------------------------------------+
+// | actions |
+// +-----------------------------------------------------------------------+
+
+// Check for upgrade : code inspired from punbb
+if (isset($_GET['action']) and 'check_upgrade' == $_GET['action'])
+{
+ if (!ini_get('allow_url_fopen'))
+ {
+ array_push(
+ $page['errors'],
+ l10n('Unable to check for upgrade since allow_url_fopen is disabled.')
+ );
+ }
+ else
+ {
+ $versions = array('current' => PHPWG_VERSION);
+ $lines = @file('http://www.phpwebgallery.net/latest_version');
+
+ // if the current version is a BSF (development branch) build, we check
+ // the first line, for stable versions, we check the second line
+ if (preg_match('/^BSF/', $versions{'current'}))
+ {
+ $versions{'latest'} = trim($lines[0]);
+
+ // because integer are limited to 4,294,967,296 we need to split BSF
+ // versions in date.time
+ foreach ($versions as $key => $value)
+ {
+ $versions{$key} =
+ preg_replace('/BSF_(\d{8})(\d{4})/', '$1.$2', $value);
+ }
+ }
+ else
+ {
+ $versions{'latest'} = trim($lines[1]);
+ }
+
+ if ('' == $versions{'latest'})
+ {
+ array_push(
+ $page['errors'],
+ l10n('Check for upgrade failed for unknown reasons.')
+ );
+ }
+ else if ('%PWGVERSION%' == $versions{'current'})
+ {
+ array_push(
+ $page['infos'],
+ l10n('You are running on development sources, no check possible.')
+ );
+ }
+ else if (version_compare($versions{'current'}, $versions{'latest'}) < 0)
+ {
+ array_push(
+ $page['infos'],
+ l10n('A new version of PhpWebGallery is available.')
+ );
+ }
+ else
+ {
+ array_push(
+ $page['infos'],
+ l10n('You are running the latest version of PhpWebGallery.')
+ );
+ }
+ }
+}
+// Show phpinfo() output
+else if (isset($_GET['action']) and 'phpinfo' == $_GET['action'])
+{
+ phpinfo();
+ exit();
+}
+
+// +-----------------------------------------------------------------------+
+// | template init |
+// +-----------------------------------------------------------------------+
+
+$template->set_filenames(array('intro' => 'admin/intro.tpl'));
+
+list($mysql_version) = mysql_fetch_row(pwg_query('SELECT VERSION();'));
+
+$query = '
+SELECT COUNT(*)
+ FROM '.IMAGES_TABLE.'
+;';
+list($nb_elements) = mysql_fetch_row(pwg_query($query));
+
+$query = '
+SELECT COUNT(*)
+ FROM '.CATEGORIES_TABLE.'
+;';
+list($nb_categories) = mysql_fetch_row(pwg_query($query));
+
+$query = '
+SELECT COUNT(*)
+ FROM '.CATEGORIES_TABLE.'
+ WHERE dir IS NULL
+;';
+list($nb_virtual) = mysql_fetch_row(pwg_query($query));
+
+$query = '
+SELECT COUNT(*)
+ FROM '.CATEGORIES_TABLE.'
+ WHERE dir IS NOT NULL
+;';
+list($nb_physical) = mysql_fetch_row(pwg_query($query));
+
+$query = '
+SELECT COUNT(*)
+ FROM '.USERS_TABLE.'
+;';
+list($nb_users) = mysql_fetch_row(pwg_query($query));
+
+$query = '
+SELECT COUNT(*)
+ FROM '.GROUPS_TABLE.'
+;';
+list($nb_groups) = mysql_fetch_row(pwg_query($query));
+
+$query = '
+SELECT COUNT(*)
+ FROM '.COMMENTS_TABLE.'
+;';
+list($nb_comments) = mysql_fetch_row(pwg_query($query));
+
+$query = '
+SELECT MIN(date_available)
+ FROM '.IMAGES_TABLE.'
+;';
+list($first_date) = mysql_fetch_row(pwg_query($query));
+
+$template->assign_vars(
+ array(
+ 'PWG_VERSION' => PHPWG_VERSION,
+ 'OS' => PHP_OS,
+ 'PHP_VERSION' => phpversion(),
+ 'MYSQL_VERSION' => $mysql_version,
+ 'DB_ELEMENTS' => sprintf(l10n('%d elements'), $nb_elements),
+ 'DB_CATEGORIES' =>
+ sprintf(
+ l10n('%d categories including %d physical and %d virtual'),
+ $nb_categories,
+ $nb_physical,
+ $nb_virtual
+ ),
+ 'DB_USERS' => sprintf(l10n('%d users'), $nb_users),
+ 'DB_GROUPS' => sprintf(l10n('%d groups'), $nb_groups),
+ 'DB_COMMENTS' => sprintf(l10n('%d comments'), $nb_comments),
+ 'DB_DATE' =>
+ sprintf(
+ l10n('first element added on %s'),
+ format_date($first_date, 'mysql_datetime')
+ ),
+ 'U_CHECK_UPGRADE' =>
+ add_session_id(PHPWG_ROOT_PATH.'admin.php?action=check_upgrade'),
+ 'U_PHPINFO' =>
+ add_session_id(PHPWG_ROOT_PATH.'admin.php?action=phpinfo')
+ )
+ );
+
+// +-----------------------------------------------------------------------+
+// | sending html code |
+// +-----------------------------------------------------------------------+
+
+$template->assign_var_from_handle('ADMIN_CONTENT', 'intro');
+
+?> \ No newline at end of file
diff --git a/doc/ChangeLog b/doc/ChangeLog
index a87ebf2ac..2159cdf39 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,14 @@
+2005-08-15 Pierrick LE GALL
+
+ * new : introduction page to administration section. This page
+ gives informations about PhpWebGallery version, PHP version, MySQL
+ version, gallery database informations (number of categories,
+ elements, users, comments). Ability to request phpwebgallery.net
+ for upgrade.
+
+ * deletion : of obsolete admin/admin_phpinfo.php page replaced by
+ a link in introduction page.
+
2005-08-14 Pierrick LE GALL
* modification : simplification of HTML/CSS code for double select
diff --git a/template/default/admin.tpl b/template/default/admin.tpl
index 39879fffb..ab8df9d63 100644
--- a/template/default/admin.tpl
+++ b/template/default/admin.tpl
@@ -17,7 +17,6 @@
<ul class="menu">
<li><a class="adminMenu" href="{U_FAQ}">{L_FAQ}</a></li>
<li><a class="adminMenu" href="{U_SITES}">{L_SITES}</a></li>
- <li><a class="adminMenu" href="{U_PHPINFO}">{L_PHPINFO}</a></li>
<li><a class="adminMenu" href="{U_HISTORY}">{L_HISTORY}</a></li>
<li><a class="adminMenu" href="{U_CAT_UPDATE}">{L_UPDATE}</a></li>
<li><a class="adminMenu" href="{U_MAINTENANCE}">{lang:Maintenance}</a></li>
diff --git a/template/default/default.css b/template/default/default.css
index 352f5d5f1..bfadbfa81 100644
--- a/template/default/default.css
+++ b/template/default/default.css
@@ -26,8 +26,16 @@ input,select,textarea { color:#FFFFCC;} /* Forms font color */
/* ANCHORS */
-a { text-decoration:none; color:#FFFFFF;}
-a:hover { text-decoration:none; color:#FFF48E;}
+a {
+ text-decoration: none;
+ color: #F6B620;
+}
+
+a:hover {
+ text-decoration:none;
+ color: #ffee40;
+}
+
a.none:hover { text-decoration:none;}
a.image:hover { text-decoration:none;}
a.thumbLink:hover { text-decoration:none;}
@@ -520,4 +528,18 @@ table.doubleSelect {
table.doubleSelect td {
padding: 0 5px;
+}
+
+div#adminMain dl {
+ margin: 10px;
+}
+
+div#adminMain dl>dd {
+ margin-bottom: 10px;
+}
+
+div#adminMain dl>dt {
+ margin-bottom: 5px;
+ font-style: italic;
+ font-size: 110%;
} \ No newline at end of file