mirror of
https://github.com/Piwigo/Piwigo.git
synced 2025-04-27 03:39:57 +03:00
- new feature : RSS notification feed. Feed generator is an external tool
(FeedCreator class v1.7.2). New file feed.php - new database field : comments.validation_date (datetime). This field is required for notification feed. - new database field : users.feed_id (varchar(50)). users.feed_id is an alias of users.id but is much more complicated to find (50 characters, figures or letters, case sensitive) : the purpose is to keep it secret (as far as possible). - new database field : users.last_feed_check (datetime) - new database field : users.registration_date (datetime) - bug fixed : no need to add the (unavailable) session id to install.php in the installation form. - modified database field : images.date_available become more precise (date to datetime). This precision is needed for notification feed. - new index : comments_i1 (validation_date). Might be useful for feed queries. - new index : comments_i2 (image_id). Useful each time you want to have informations about an element and its associated comments. - version 9.11 of mysqldump outputs database field names and table names with backquote "`" (didn't find how to take them off) git-svn-id: http://piwigo.org/svn/trunk@801 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
315f9c5670
commit
9bafdff171
15 changed files with 2306 additions and 206 deletions
|
@ -180,7 +180,8 @@ $template->assign_vars(array(
|
|||
'NAME_IMG'=>isset($_POST['name'])?$_POST['name']:@$row['name'],
|
||||
'SIZE_IMG'=>@$row['width'].' * '.@$row['height'],
|
||||
'FILESIZE_IMG'=>@$row['filesize'].' KB',
|
||||
'REGISTRATION_DATE_IMG'=> format_date($row['date_available']),
|
||||
'REGISTRATION_DATE_IMG'
|
||||
=> format_date($row['date_available'], 'mysql_datetime', true),
|
||||
'AUTHOR_IMG'=>isset($_POST['author'])?$_POST['author']:@$row['author'],
|
||||
'CREATION_DATE_IMG'=>$date,
|
||||
'KEYWORDS_IMG'=>isset($_POST['keywords'])?$_POST['keywords']:@$row['keywords'],
|
||||
|
|
|
@ -31,7 +31,8 @@ if (!defined('PHPWG_ROOT_PATH'))
|
|||
}
|
||||
include_once(PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php');
|
||||
|
||||
define('CURRENT_DATE', date('Y-m-d'));
|
||||
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
|
||||
define('CURRENT_DATE', $dbnow);
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | functions |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -31,7 +31,9 @@ if (!defined('PHPWG_ROOT_PATH'))
|
|||
}
|
||||
include_once( PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php');
|
||||
|
||||
define('CURRENT_DATE', date('Y-m-d'));
|
||||
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
|
||||
define('CURRENT_DATE', $dbnow);
|
||||
|
||||
$error_labels = array('PWG-UPDATE-1' => $lang['update_wrong_dirname_short'],
|
||||
'PWG-UPDATE-2' => $lang['update_missing_tn_short']);
|
||||
$errors = array();
|
||||
|
|
10
category.php
10
category.php
|
@ -293,6 +293,16 @@ $template->assign_block_vars('summary', array(
|
|||
'U_SUMMARY'=>add_session_id( 'about.php?'.str_replace( '&', '&', $_SERVER['QUERY_STRING'] ) )
|
||||
));
|
||||
|
||||
// notification feed
|
||||
$template->assign_block_vars(
|
||||
'summary',
|
||||
array(
|
||||
'TITLE'=>l10n('RSS notification feed'),
|
||||
'NAME'=>l10n('Notification feed'),
|
||||
'U_SUMMARY'=>
|
||||
'feed.php'.(ANONYMOUS != $user['id'] ? '?feed='.$user['feed_id'] : '')
|
||||
));
|
||||
|
||||
//------------------------------------------------------ main part : thumbnails
|
||||
if (isset($page['cat'])
|
||||
and ((is_numeric($page['cat']) and $page['cat_nb_images'] != 0)
|
||||
|
|
|
@ -157,6 +157,7 @@ if (isset($_POST['validate']) and count($_POST['comment_id']) > 0)
|
|||
$query = '
|
||||
UPDATE '.COMMENTS_TABLE.'
|
||||
SET validated = \'true\'
|
||||
, validation_date = NOW()
|
||||
WHERE id IN ('.implode(',', $_POST['comment_id']).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
|
|
@ -1,3 +1,36 @@
|
|||
2005-06-16 Pierrick LE GALL
|
||||
|
||||
* new feature : RSS notification feed. Feed generator is an
|
||||
external tool (FeedCreator class v1.7.2). New file feed.php
|
||||
|
||||
* new database field : comments.validation_date (datetime). This
|
||||
field is required for notification feed.
|
||||
|
||||
* new database field : users.feed_id (varchar(50)). users.feed_id
|
||||
is an alias of users.id but is much more complicated to find (50
|
||||
characters, figures or letters, case sensitive) : the purpose is
|
||||
to keep it secret (as far as possible).
|
||||
|
||||
* new database field : users.last_feed_check (datetime)
|
||||
|
||||
* new database field : users.registration_date (datetime)
|
||||
|
||||
* bug fixed : no need to add the (unavailable) session id to
|
||||
install.php in the installation form.
|
||||
|
||||
* modified database field : images.date_available become more
|
||||
precise (date to datetime). This precision is needed for
|
||||
notification feed.
|
||||
|
||||
* new index : comments_i1 (validation_date). Might be useful for
|
||||
feed queries.
|
||||
|
||||
* new index : comments_i2 (image_id). Useful each time you want to
|
||||
have informations about an element and its associated comments.
|
||||
|
||||
* version 9.11 of mysqldump outputs database field names and table
|
||||
names with backquote "`" (didn't find how to take them off)
|
||||
|
||||
2005-06-30 Pierrick LE GALL
|
||||
|
||||
* category permissions management comes back! (it disappeared in
|
||||
|
|
445
feed.php
Normal file
445
feed.php
Normal file
|
@ -0,0 +1,445 @@
|
|||
<?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. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
define('PHPWG_ROOT_PATH','./');
|
||||
include_once(PHPWG_ROOT_PATH.'include/common.inc.php');
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | functions |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
/**
|
||||
* new comments between two dates, according to authorized categories
|
||||
*
|
||||
* @param string start (mysql datetime format)
|
||||
* @param string end (mysql datetime format)
|
||||
* @param string forbidden categories (comma separated)
|
||||
* @return array comment ids
|
||||
*/
|
||||
function new_comments($start, $end)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$query = '
|
||||
SELECT DISTINCT c.id AS comment_id
|
||||
FROM '.COMMENTS_TABLE.' AS c
|
||||
, '.IMAGE_CATEGORY_TABLE.' AS ic
|
||||
WHERE c.image_id = ic.image_id
|
||||
AND c.validation_date > \''.$start.'\'
|
||||
AND c.validation_date <= \''.$end.'\'
|
||||
AND category_id NOT IN ('.$user['forbidden_categories'].')
|
||||
;';
|
||||
return array_from_query($query, 'comment_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* unvalidated at a precise date
|
||||
*
|
||||
* Comments that are registered and not validated yet on a precise date
|
||||
*
|
||||
* @param string date (mysql datetime format)
|
||||
* @return array comment ids
|
||||
*/
|
||||
function unvalidated_comments($date)
|
||||
{
|
||||
$query = '
|
||||
SELECT DISTINCT id
|
||||
FROM '.COMMENTS_TABLE.'
|
||||
WHERE date <= \''.$date.'\'
|
||||
AND (validated = \'false\'
|
||||
OR validation_date > \''.$date.'\')
|
||||
;';
|
||||
return array_from_query($query, 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* new elements between two dates, according to authorized categories
|
||||
*
|
||||
* @param string start (mysql datetime format)
|
||||
* @param string end (mysql datetime format)
|
||||
* @param string forbidden categories (comma separated)
|
||||
* @return array element ids
|
||||
*/
|
||||
function new_elements($start, $end)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$query = '
|
||||
SELECT DISTINCT image_id
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON image_id = id
|
||||
WHERE date_available > \''.$start.'\'
|
||||
AND date_available <= \''.$end.'\'
|
||||
AND category_id NOT IN ('.$user['forbidden_categories'].')
|
||||
;';
|
||||
return array_from_query($query, 'image_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* updated categories between two dates, according to authorized categories
|
||||
*
|
||||
* @param string start (mysql datetime format)
|
||||
* @param string end (mysql datetime format)
|
||||
* @param string forbidden categories (comma separated)
|
||||
* @return array element ids
|
||||
*/
|
||||
function updated_categories($start, $end)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$query = '
|
||||
SELECT DISTINCT category_id
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON image_id = id
|
||||
WHERE date_available > \''.$start.'\'
|
||||
AND date_available <= \''.$end.'\'
|
||||
AND category_id NOT IN ('.$user['forbidden_categories'].')
|
||||
;';
|
||||
return array_from_query($query, 'category_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* new registered users between two dates
|
||||
*
|
||||
* @param string start (mysql datetime format)
|
||||
* @param string end (mysql datetime format)
|
||||
* @return array user ids
|
||||
*/
|
||||
function new_users($start, $end)
|
||||
{
|
||||
$query = '
|
||||
SELECT id
|
||||
FROM '.USERS_TABLE.'
|
||||
WHERE registration_date > \''.$start.'\'
|
||||
AND registration_date <= \''.$end.'\'
|
||||
;';
|
||||
return array_from_query($query, 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* What's new between two dates ?
|
||||
*
|
||||
* Informations : number of new comments, number of new elements, number of
|
||||
* updated categories. Administrators are also informed about : number of
|
||||
* unvalidated comments, number of new users (TODO : number of unvalidated
|
||||
* elements)
|
||||
*
|
||||
* @param string start date (mysql datetime format)
|
||||
* @param string end date (mysql datetime format)
|
||||
*/
|
||||
function news($start, $end)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$news = array();
|
||||
|
||||
$nb_new_comments = count(new_comments($start, $end));
|
||||
if ($nb_new_comments > 0)
|
||||
{
|
||||
array_push($news, sprintf(l10n('%d new comments'), $nb_new_comments));
|
||||
}
|
||||
|
||||
$nb_new_elements = count(new_elements($start, $end));
|
||||
if ($nb_new_elements > 0)
|
||||
{
|
||||
array_push($news, sprintf(l10n('%d new elements'), $nb_new_elements));
|
||||
}
|
||||
|
||||
$nb_updated_categories = count(updated_categories($start, $end));
|
||||
if ($nb_updated_categories > 0)
|
||||
{
|
||||
array_push($news, sprintf(l10n('%d categories updated'),
|
||||
$nb_updated_categories));
|
||||
}
|
||||
|
||||
if ('admin' == $user['status'])
|
||||
{
|
||||
$nb_unvalidated_comments = count(unvalidated_comments($end));
|
||||
if ($nb_unvalidated_comments > 0)
|
||||
{
|
||||
array_push($news, sprintf(l10n('%d comments to validate'),
|
||||
$nb_unvalidated_comments));
|
||||
}
|
||||
|
||||
$nb_new_users = count(new_users($start, $end));
|
||||
if ($nb_new_users > 0)
|
||||
{
|
||||
array_push($news, sprintf(l10n('%d new users'), $nb_new_users));
|
||||
}
|
||||
}
|
||||
|
||||
return $news;
|
||||
}
|
||||
|
||||
/**
|
||||
* explodes a MySQL datetime format (2005-07-14 23:01:37) in fields "year",
|
||||
* "month", "day", "hour", "minute", "second".
|
||||
*
|
||||
* @param string mysql datetime format
|
||||
* @return array
|
||||
*/
|
||||
function explode_mysqldt($mysqldt)
|
||||
{
|
||||
$date = array();
|
||||
list($date['year'],
|
||||
$date['month'],
|
||||
$date['day'],
|
||||
$date['hour'],
|
||||
$date['minute'],
|
||||
$date['second'])
|
||||
= preg_split('/[-: ]/', $mysqldt);
|
||||
|
||||
return $date;
|
||||
}
|
||||
|
||||
/**
|
||||
* creates a MySQL datetime format (2005-07-14 23:01:37) from a Unix
|
||||
* timestamp (number of seconds since 1970-01-01 00:00:00 GMT)
|
||||
*
|
||||
* @param int unix timestamp
|
||||
* @return string mysql datetime format
|
||||
*/
|
||||
function ts_to_mysqldt($ts)
|
||||
{
|
||||
return date('Y-m-d H:i:s', $ts);
|
||||
}
|
||||
|
||||
/**
|
||||
* creates a Unix timestamp (number of seconds since 1970-01-01 00:00:00
|
||||
* GMT) from a MySQL datetime format (2005-07-14 23:01:37)
|
||||
*
|
||||
* @param string mysql datetime format
|
||||
* @return int timestamp
|
||||
*/
|
||||
function mysqldt_to_ts($mysqldt)
|
||||
{
|
||||
$date = explode_mysqldt($mysqldt);
|
||||
return mktime($date['hour'], $date['minute'], $date['second'],
|
||||
$date['month'], $date['day'], $date['year']);
|
||||
}
|
||||
|
||||
/**
|
||||
* creates an ISO 8601 format date (2003-01-20T18:05:41+04:00) from Unix
|
||||
* timestamp (number of seconds since 1970-01-01 00:00:00 GMT)
|
||||
*
|
||||
* function copied from Dotclear project http://dotclear.net
|
||||
*
|
||||
* @param int timestamp
|
||||
* @return string ISO 8601 date format
|
||||
*/
|
||||
function ts_to_iso8601($ts)
|
||||
{
|
||||
$tz = date('O',$ts);
|
||||
$tz = substr($tz, 0, -2).':'.substr($tz, -2);
|
||||
return date('Y-m-d\\TH:i:s',$ts).$tz;
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | initialization |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// clean $user array (include/user.inc.php has been executed)
|
||||
$user = array();
|
||||
|
||||
// echo '<pre>'.generate_key(50).'</pre>';
|
||||
if (isset($_GET['feed'])
|
||||
and preg_match('/^[A-Za-z0-9]{50}$/', $_GET['feed']))
|
||||
{
|
||||
$query = '
|
||||
SELECT id, status, last_feed_check
|
||||
FROM '.USERS_TABLE.'
|
||||
WHERE feed_id = \''.$_GET['feed'].'\'
|
||||
;';
|
||||
$user = mysql_fetch_array(pwg_query($query));
|
||||
}
|
||||
else
|
||||
{
|
||||
$user = array('id' => ANONYMOUS,
|
||||
'status' => 'guest');
|
||||
}
|
||||
|
||||
$user['forbidden_categories'] = calculate_permissions($user['id'],
|
||||
$user['status']);
|
||||
if ('' == $user['forbidden_categories'])
|
||||
{
|
||||
$user['forbidden_categories'] = '-1';
|
||||
}
|
||||
|
||||
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
|
||||
|
||||
include_once(PHPWG_ROOT_PATH.'include/feedcreator.class.php');
|
||||
|
||||
$rss = new UniversalFeedCreator();
|
||||
// $rss->useCached(); // use cached version if age<1 hour
|
||||
$rss->title = 'PhpWebGallery notifications';
|
||||
$rss->link = 'http://phpwebgallery.net';
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Feed creation |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
if (ANONYMOUS != $user['id'])
|
||||
{
|
||||
$news = news($user['last_feed_check'], $dbnow);
|
||||
|
||||
if (count($news) > 0)
|
||||
{
|
||||
// echo '<pre>';
|
||||
// print_r($news);
|
||||
// echo '</pre>';
|
||||
|
||||
$item = new FeedItem();
|
||||
$item->title = sprintf(l10n('New on %s'), $dbnow);
|
||||
$item->link = 'http://phpwebgallery.net';
|
||||
|
||||
// content creation
|
||||
$item->description = '<ul>';
|
||||
foreach ($news as $line)
|
||||
{
|
||||
$item->description.= '<li>'.$line.'</li>';
|
||||
}
|
||||
$item->description.= '</ul>';
|
||||
$item->descriptionHtmlSyndicated = true;
|
||||
|
||||
$item->date = $dbnow;
|
||||
$item->author = 'PhpWebGallery notifier';
|
||||
|
||||
$rss->addItem($item);
|
||||
}
|
||||
|
||||
$query = '
|
||||
UPDATE '.USERS_TABLE.'
|
||||
SET last_feed_check = \''.$dbnow.'\'
|
||||
WHERE id = '.$user['id'].'
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
else
|
||||
{
|
||||
// The feed is filled with periodical blocks of informations. Date
|
||||
// "checkpoints" cut the blocks. The first step is to find those
|
||||
// checkpoints according to the configured feed period.
|
||||
//
|
||||
// checkpoints are first calculated in Unix timestamp (number of seconds
|
||||
// since 1970-01-01 00:00:00 GMT) and then converted to MySQL datetime
|
||||
// format.
|
||||
|
||||
$now = explode_mysqldt($dbnow);
|
||||
|
||||
$checkpoints = array();
|
||||
$checkpoints[0] = mysqldt_to_ts($dbnow);
|
||||
|
||||
// if the feed period was not configured the right way (ie among the list
|
||||
// of possible values), the configuration is overloaded here.
|
||||
if (!in_array($conf['feed_period'],
|
||||
array('hour', 'half day', 'day', 'week', 'month')))
|
||||
{
|
||||
$conf['feed_period'] = 'week';
|
||||
}
|
||||
|
||||
// foreach feed_period possible, we need to find the beginning of the
|
||||
// current period. The variable $timeshift contains the shift to apply to
|
||||
// each checkpoint to find the previous one with strtotime function
|
||||
switch ($conf['feed_period'])
|
||||
{
|
||||
// 2005-07-14 23:36:19 => 2005-07-14 23:00:00
|
||||
case 'hour' :
|
||||
{
|
||||
$checkpoints[1] = mktime($now['hour'],0,0,
|
||||
$now['month'],$now['day'],$now['year']);
|
||||
$timeshift = '1 hour ago';
|
||||
break;
|
||||
}
|
||||
// 2005-07-14 23:36:19 => 2005-07-14 12:00:00
|
||||
case 'half day' :
|
||||
{
|
||||
$checkpoints[1] = mktime(($now['hour'] < 12) ? 0 : 12,0,0,
|
||||
$now['month'],$now['day'],$now['year']);
|
||||
$timeshift = '12 hours ago';
|
||||
break;
|
||||
}
|
||||
// 2005-07-14 23:36:19 => 2005-07-14 00:00:00
|
||||
case 'day' :
|
||||
{
|
||||
$checkpoints[1] = mktime(0,0,0,$now['month'],$now['day'],$now['year']);
|
||||
$timeshift = '1 day ago';
|
||||
break;
|
||||
}
|
||||
// 2005-07-14 23:36:19 => 2005-07-11 00:00:00
|
||||
case 'week' :
|
||||
{
|
||||
$checkpoints[1] = strtotime('last monday', $checkpoints[0]);
|
||||
$timeshift = '1 week ago';
|
||||
break;
|
||||
}
|
||||
// 2005-07-14 23:36:19 => 2005-07-01 00:00:00
|
||||
case 'month' :
|
||||
{
|
||||
$checkpoints[1] = mktime(0,0,0,$now['month'],1,$now['year']);
|
||||
$timeshift = '1 month ago';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for ($i = 2; $i <= 11; $i++)
|
||||
{
|
||||
$checkpoints[$i] = strtotime($timeshift, $checkpoints[$i-1]);
|
||||
}
|
||||
|
||||
// converts all timestamp values to MySQL datetime format
|
||||
$checkpoints = array_map('ts_to_mysqldt', $checkpoints);
|
||||
|
||||
for ($i = 1; $i <= max(array_keys($checkpoints)); $i++)
|
||||
{
|
||||
$news = news($checkpoints[$i], $checkpoints[$i-1]);
|
||||
|
||||
if (count($news) > 0)
|
||||
{
|
||||
$item = new FeedItem();
|
||||
$item->title = sprintf(l10n('New from %s to %s'),
|
||||
$checkpoints[$i],
|
||||
$checkpoints[$i-1]);
|
||||
$item->link = 'http://phpwebgallery.net';
|
||||
|
||||
// content creation
|
||||
$item->description = '<ul>';
|
||||
foreach ($news as $line)
|
||||
{
|
||||
$item->description.= '<li>'.$line.'</li>';
|
||||
}
|
||||
$item->description.= '</ul>';
|
||||
$item->descriptionHtmlSyndicated = true;
|
||||
|
||||
$item->date = ts_to_iso8601(mysqldt_to_ts($checkpoints[$i-1]));
|
||||
$item->author = 'PhpWebGallery notifier';
|
||||
|
||||
$rss->addItem($item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// send XML feed
|
||||
echo $rss->saveFeed('RSS2.0', '', true);
|
||||
?>
|
|
@ -212,4 +212,8 @@ $conf['show_version'] = true;
|
|||
// If the array is empty, the "Links" box won't be displayed on the main
|
||||
// page.
|
||||
$conf['links'] = array();
|
||||
|
||||
// feed_period : how long between two feed refresh ? Possible values are
|
||||
// "hour", "half day", "day", "week", "month".
|
||||
$conf['feed_period'] = 'week';
|
||||
?>
|
||||
|
|
1541
include/feedcreator.class.php
Normal file
1541
include/feedcreator.class.php
Normal file
File diff suppressed because it is too large
Load diff
|
@ -110,6 +110,7 @@ SELECT id
|
|||
$insert['nb_line_page'] = $conf['nb_line_page'];
|
||||
$insert['language'] = $conf['default_language'];
|
||||
$insert['recent_period'] = $conf['recent_period'];
|
||||
$insert['feed_id'] = find_available_feed_id();
|
||||
$insert['expand'] = boolean_to_string($conf['auto_expand']);
|
||||
$insert['show_nb_comments'] = boolean_to_string($conf['show_nb_comments']);
|
||||
if ( $mail_address != '' )
|
||||
|
@ -141,6 +142,13 @@ INSERT INTO '.USERS_TABLE.'
|
|||
$is_first = false;
|
||||
}
|
||||
$query.= ')
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
||||
$query = '
|
||||
UPDATE '.USERS_TABLE.'
|
||||
SET registration_date = NOW()
|
||||
WHERE id = '.mysql_insert_id().'
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
|
@ -379,4 +387,27 @@ SELECT username
|
|||
|
||||
return $username;
|
||||
}
|
||||
|
||||
/**
|
||||
* search an available feed_id
|
||||
*
|
||||
* @return string feed identifier
|
||||
*/
|
||||
function find_available_feed_id()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
$key = generate_key(50);
|
||||
$query = '
|
||||
SELECT COUNT(*)
|
||||
FROM '.USERS_TABLE.'
|
||||
WHERE feed_id = \''.$key.'\'
|
||||
;';
|
||||
list($count) = mysql_fetch_row(pwg_query($query));
|
||||
if (0 == $count)
|
||||
{
|
||||
return $key;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -156,11 +156,6 @@ class Template {
|
|||
|
||||
// Run the compiled code.
|
||||
$_str = '';
|
||||
// echo '<pre>'.($this->compiled_code[$handle]).'</pre>';
|
||||
$fp = @fopen( './log/debug.log', 'a+' );
|
||||
fwrite( $fp, "\n\n" );
|
||||
fwrite( $fp, $this->compiled_code[$handle] );
|
||||
fclose( $fp );
|
||||
eval($this->compiled_code[$handle]);
|
||||
$this->output.= $_str;
|
||||
|
||||
|
|
|
@ -306,6 +306,13 @@ if ( isset( $_POST['install'] ))
|
|||
$query.= ",'admin','".$language."'";
|
||||
$query.= ",'".$admin_mail."');";
|
||||
mysql_query($query);
|
||||
|
||||
$query = '
|
||||
UPDATE '.USERS_TABLE.'
|
||||
SET feed_id = \''.find_available_feed_id().'\'
|
||||
WHERE id = 1
|
||||
;';
|
||||
mysql_query($query);
|
||||
|
||||
// guest user
|
||||
$query = 'INSERT INTO '.USERS_TABLE;
|
||||
|
@ -348,7 +355,7 @@ $template->assign_vars(
|
|||
'L_END_TITLE'=>$lang['install_end_title'],
|
||||
'L_END_MESSAGE'=>$lang['install_end_message'],
|
||||
|
||||
'F_ACTION'=>add_session_id( 'install.php' ),
|
||||
'F_ACTION'=>'install.php',
|
||||
'F_DB_HOST'=>$dbhost,
|
||||
'F_DB_USER'=>$dbuser,
|
||||
'F_DB_NAME'=>$dbname,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
table:caddie
|
||||
table:categories
|
||||
table:comments
|
||||
table:config
|
||||
|
@ -17,8 +18,10 @@ table:user_group
|
|||
table:users
|
||||
table:waiting
|
||||
|
||||
column:user_id table:caddie type:smallint nullable:N length:5 signed:Y
|
||||
column:element_id table:caddie type:mediumint nullable:N length:8 signed:Y
|
||||
column:id table:categories type:smallint nullable:N length:5 signed:N
|
||||
column:date_last table:categories type:date nullable:Y
|
||||
column:date_last table:categories type:datetime nullable:Y
|
||||
column:nb_images table:categories type:mediumint nullable:N length:8 signed:N
|
||||
column:name table:categories type:varchar nullable:N length:255 binary:N
|
||||
column:id_uppercat table:categories type:smallint nullable:Y length:5 signed:N
|
||||
|
@ -39,6 +42,7 @@ column:date table:comments type:datetime
|
|||
column:author table:comments type:varchar nullable:Y length:255 binary:N
|
||||
column:content table:comments type:longtext nullable:Y
|
||||
column:validated table:comments type:enum('true','false') nullable:N
|
||||
column:validation_date table:comments type:datetime nullable:Y
|
||||
column:param table:config type:varchar nullable:N length:40 binary:N
|
||||
column:value table:config type:varchar nullable:Y length:255 binary:N
|
||||
column:comment table:config type:varchar nullable:Y length:255 binary:N
|
||||
|
@ -58,7 +62,7 @@ column:image_id table:image_category type:mediumint
|
|||
column:category_id table:image_category type:smallint nullable:N length:5 signed:N
|
||||
column:id table:images type:mediumint nullable:N length:8 signed:N
|
||||
column:file table:images type:varchar nullable:N length:255 binary:N
|
||||
column:date_available table:images type:date nullable:N
|
||||
column:date_available table:images type:datetime nullable:N
|
||||
column:date_creation table:images type:date nullable:Y
|
||||
column:tn_ext table:images type:varchar nullable:Y length:4 binary:N
|
||||
column:name table:images type:varchar nullable:Y length:255 binary:N
|
||||
|
@ -91,7 +95,7 @@ column:user_id table:user_group type:smallint
|
|||
column:group_id table:user_group type:smallint nullable:N length:5 signed:N
|
||||
column:id table:users type:smallint nullable:N length:5 signed:N
|
||||
column:username table:users type:varchar nullable:N length:20 binary:Y
|
||||
column:password table:users type:varchar nullable:N length:255 binary:N
|
||||
column:password table:users type:varchar nullable:Y length:32 binary:N
|
||||
column:mail_address table:users type:varchar nullable:Y length:255 binary:N
|
||||
column:nb_image_line table:users type:tinyint nullable:N length:1 signed:N
|
||||
column:nb_line_page table:users type:tinyint nullable:N length:3 signed:N
|
||||
|
@ -103,6 +107,9 @@ column:expand table:users type:enum('true','false')
|
|||
column:show_nb_comments table:users type:enum('true','false') nullable:N
|
||||
column:recent_period table:users type:tinyint nullable:N length:3 signed:N
|
||||
column:template table:users type:varchar nullable:N length:255 binary:N
|
||||
column:last_feed_check table:users type:datetime nullable:Y
|
||||
column:feed_id table:users type:varchar nullable:Y length:50 binary:Y
|
||||
column:registration_date table:users type:datetime nullable:N
|
||||
column:id table:waiting type:int nullable:N length:10 signed:N
|
||||
column:storage_category_id table:waiting type:smallint nullable:N length:5 signed:N
|
||||
column:file table:waiting type:varchar nullable:N length:255 binary:N
|
||||
|
@ -113,6 +120,8 @@ column:tn_ext table:waiting type:char
|
|||
column:validated table:waiting type:enum('true','false') nullable:N
|
||||
column:infos table:waiting type:text nullable:Y
|
||||
|
||||
PK:caddie_pk table:caddie column:user_id
|
||||
PK:caddie_pk table:caddie column:element_id
|
||||
PK:categories_pk table:categories column:id
|
||||
PK:comments_pk table:comments column:id
|
||||
PK:config_pk table:config column:param
|
||||
|
@ -137,6 +146,8 @@ PK:users_pk table:users column:id
|
|||
PK:waiting_pk table:waiting column:id
|
||||
|
||||
index:categories_i2 table:categories column:id_uppercat
|
||||
index:comments_i2 table:comments column:validation_date
|
||||
index:comments_i1 table:comments column:image_id
|
||||
index:history_i1 table:history column:date
|
||||
index:image_category_i1 table:image_category column:image_id
|
||||
index:image_category_i2 table:image_category column:category_id
|
||||
|
|
|
@ -1,275 +1,281 @@
|
|||
-- MySQL dump 8.21
|
||||
-- MySQL dump 9.11
|
||||
--
|
||||
-- Host: localhost Database: pwg-bsf
|
||||
---------------------------------------------------------
|
||||
-- Server version 3.23.49-log
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 4.0.24_Debian-10-log
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_caddie'
|
||||
-- Table structure for table `phpwebgallery_caddie`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_caddie;
|
||||
CREATE TABLE phpwebgallery_caddie (
|
||||
user_id smallint(5) NOT NULL default '0',
|
||||
element_id mediumint(8) NOT NULL default '0',
|
||||
PRIMARY KEY (user_id,element_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_caddie`;
|
||||
CREATE TABLE `phpwebgallery_caddie` (
|
||||
`user_id` smallint(5) NOT NULL default '0',
|
||||
`element_id` mediumint(8) NOT NULL default '0',
|
||||
PRIMARY KEY (`user_id`,`element_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_categories'
|
||||
-- Table structure for table `phpwebgallery_categories`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_categories;
|
||||
CREATE TABLE phpwebgallery_categories (
|
||||
id smallint(5) unsigned NOT NULL auto_increment,
|
||||
date_last date default NULL,
|
||||
nb_images mediumint(8) unsigned NOT NULL default '0',
|
||||
name varchar(255) NOT NULL default '',
|
||||
id_uppercat smallint(5) unsigned default NULL,
|
||||
comment text,
|
||||
dir varchar(255) default NULL,
|
||||
rank tinyint(3) unsigned default NULL,
|
||||
status enum('public','private') NOT NULL default 'public',
|
||||
site_id tinyint(4) unsigned default '1',
|
||||
visible enum('true','false') NOT NULL default 'true',
|
||||
uploadable enum('true','false') NOT NULL default 'false',
|
||||
representative_picture_id mediumint(8) unsigned default NULL,
|
||||
uppercats varchar(255) NOT NULL default '',
|
||||
commentable enum('true','false') NOT NULL default 'true',
|
||||
global_rank varchar(255) default NULL,
|
||||
PRIMARY KEY (id),
|
||||
KEY categories_i2 (id_uppercat)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_categories`;
|
||||
CREATE TABLE `phpwebgallery_categories` (
|
||||
`id` smallint(5) unsigned NOT NULL auto_increment,
|
||||
`date_last` datetime default NULL,
|
||||
`nb_images` mediumint(8) unsigned NOT NULL default '0',
|
||||
`name` varchar(255) NOT NULL default '',
|
||||
`id_uppercat` smallint(5) unsigned default NULL,
|
||||
`comment` text,
|
||||
`dir` varchar(255) default NULL,
|
||||
`rank` tinyint(3) unsigned default NULL,
|
||||
`status` enum('public','private') NOT NULL default 'public',
|
||||
`site_id` tinyint(4) unsigned default '1',
|
||||
`visible` enum('true','false') NOT NULL default 'true',
|
||||
`uploadable` enum('true','false') NOT NULL default 'false',
|
||||
`representative_picture_id` mediumint(8) unsigned default NULL,
|
||||
`uppercats` varchar(255) NOT NULL default '',
|
||||
`commentable` enum('true','false') NOT NULL default 'true',
|
||||
`global_rank` varchar(255) default NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `categories_i2` (`id_uppercat`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_comments'
|
||||
-- Table structure for table `phpwebgallery_comments`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_comments;
|
||||
CREATE TABLE phpwebgallery_comments (
|
||||
id int(11) unsigned NOT NULL auto_increment,
|
||||
image_id mediumint(8) unsigned NOT NULL default '0',
|
||||
date datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
author varchar(255) default NULL,
|
||||
content longtext,
|
||||
validated enum('true','false') NOT NULL default 'false',
|
||||
PRIMARY KEY (id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_comments`;
|
||||
CREATE TABLE `phpwebgallery_comments` (
|
||||
`id` int(11) unsigned NOT NULL auto_increment,
|
||||
`image_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`date` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`author` varchar(255) default NULL,
|
||||
`content` longtext,
|
||||
`validated` enum('true','false') NOT NULL default 'false',
|
||||
`validation_date` datetime default NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `comments_i2` (`validation_date`),
|
||||
KEY `comments_i1` (`image_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_config'
|
||||
-- Table structure for table `phpwebgallery_config`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_config;
|
||||
CREATE TABLE phpwebgallery_config (
|
||||
param varchar(40) NOT NULL default '',
|
||||
value varchar(255) default NULL,
|
||||
comment varchar(255) default NULL,
|
||||
PRIMARY KEY (param)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_config`;
|
||||
CREATE TABLE `phpwebgallery_config` (
|
||||
`param` varchar(40) NOT NULL default '',
|
||||
`value` varchar(255) default NULL,
|
||||
`comment` varchar(255) default NULL,
|
||||
PRIMARY KEY (`param`)
|
||||
) TYPE=MyISAM COMMENT='configuration table';
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_favorites'
|
||||
-- Table structure for table `phpwebgallery_favorites`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_favorites;
|
||||
CREATE TABLE phpwebgallery_favorites (
|
||||
user_id smallint(5) unsigned NOT NULL default '0',
|
||||
image_id mediumint(8) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (user_id,image_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_favorites`;
|
||||
CREATE TABLE `phpwebgallery_favorites` (
|
||||
`user_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`image_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`user_id`,`image_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_group_access'
|
||||
-- Table structure for table `phpwebgallery_group_access`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_group_access;
|
||||
CREATE TABLE phpwebgallery_group_access (
|
||||
group_id smallint(5) unsigned NOT NULL default '0',
|
||||
cat_id smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (group_id,cat_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_group_access`;
|
||||
CREATE TABLE `phpwebgallery_group_access` (
|
||||
`group_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`cat_id` smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`group_id`,`cat_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_groups'
|
||||
-- Table structure for table `phpwebgallery_groups`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_groups;
|
||||
CREATE TABLE phpwebgallery_groups (
|
||||
id smallint(5) unsigned NOT NULL auto_increment,
|
||||
name varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_groups`;
|
||||
CREATE TABLE `phpwebgallery_groups` (
|
||||
`id` smallint(5) unsigned NOT NULL auto_increment,
|
||||
`name` varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (`id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_history'
|
||||
-- Table structure for table `phpwebgallery_history`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_history;
|
||||
CREATE TABLE phpwebgallery_history (
|
||||
date datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
login varchar(15) default NULL,
|
||||
IP varchar(50) NOT NULL default '',
|
||||
category varchar(150) default NULL,
|
||||
file varchar(50) default NULL,
|
||||
picture varchar(150) default NULL,
|
||||
KEY history_i1 (date)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_history`;
|
||||
CREATE TABLE `phpwebgallery_history` (
|
||||
`date` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`login` varchar(15) default NULL,
|
||||
`IP` varchar(50) NOT NULL default '',
|
||||
`category` varchar(150) default NULL,
|
||||
`file` varchar(50) default NULL,
|
||||
`picture` varchar(150) default NULL,
|
||||
KEY `history_i1` (`date`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_image_category'
|
||||
-- Table structure for table `phpwebgallery_image_category`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_image_category;
|
||||
CREATE TABLE phpwebgallery_image_category (
|
||||
image_id mediumint(8) unsigned NOT NULL default '0',
|
||||
category_id smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (image_id,category_id),
|
||||
KEY image_category_i1 (image_id),
|
||||
KEY image_category_i2 (category_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_image_category`;
|
||||
CREATE TABLE `phpwebgallery_image_category` (
|
||||
`image_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`category_id` smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`image_id`,`category_id`),
|
||||
KEY `image_category_i1` (`image_id`),
|
||||
KEY `image_category_i2` (`category_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_images'
|
||||
-- Table structure for table `phpwebgallery_images`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_images;
|
||||
CREATE TABLE phpwebgallery_images (
|
||||
id mediumint(8) unsigned NOT NULL auto_increment,
|
||||
file varchar(255) NOT NULL default '',
|
||||
date_available date NOT NULL default '0000-00-00',
|
||||
date_creation date default NULL,
|
||||
tn_ext varchar(4) default '',
|
||||
name varchar(255) default NULL,
|
||||
comment text,
|
||||
author varchar(255) default NULL,
|
||||
hit int(10) unsigned NOT NULL default '0',
|
||||
filesize mediumint(9) unsigned default NULL,
|
||||
width smallint(9) unsigned default NULL,
|
||||
height smallint(9) unsigned default NULL,
|
||||
keywords varchar(255) default NULL,
|
||||
storage_category_id smallint(5) unsigned default NULL,
|
||||
representative_ext varchar(4) default NULL,
|
||||
date_metadata_update date default NULL,
|
||||
average_rate float(5,2) unsigned default NULL,
|
||||
path varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
KEY images_i2 (date_available),
|
||||
KEY images_i1 (storage_category_id),
|
||||
KEY images_i3 (average_rate),
|
||||
KEY images_i4 (hit),
|
||||
KEY images_i5 (date_creation)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_images`;
|
||||
CREATE TABLE `phpwebgallery_images` (
|
||||
`id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
`file` varchar(255) NOT NULL default '',
|
||||
`date_available` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`date_creation` date default NULL,
|
||||
`tn_ext` varchar(4) default '',
|
||||
`name` varchar(255) default NULL,
|
||||
`comment` text,
|
||||
`author` varchar(255) default NULL,
|
||||
`hit` int(10) unsigned NOT NULL default '0',
|
||||
`filesize` mediumint(9) unsigned default NULL,
|
||||
`width` smallint(9) unsigned default NULL,
|
||||
`height` smallint(9) unsigned default NULL,
|
||||
`keywords` varchar(255) default NULL,
|
||||
`storage_category_id` smallint(5) unsigned default NULL,
|
||||
`representative_ext` varchar(4) default NULL,
|
||||
`date_metadata_update` date default NULL,
|
||||
`average_rate` float(5,2) unsigned default NULL,
|
||||
`path` varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `images_i2` (`date_available`),
|
||||
KEY `images_i1` (`storage_category_id`),
|
||||
KEY `images_i3` (`average_rate`),
|
||||
KEY `images_i4` (`hit`),
|
||||
KEY `images_i5` (`date_creation`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_rate'
|
||||
-- Table structure for table `phpwebgallery_rate`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_rate;
|
||||
CREATE TABLE phpwebgallery_rate (
|
||||
user_id smallint(5) unsigned NOT NULL default '0',
|
||||
element_id mediumint(8) unsigned NOT NULL default '0',
|
||||
rate tinyint(2) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (user_id,element_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_rate`;
|
||||
CREATE TABLE `phpwebgallery_rate` (
|
||||
`user_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`element_id` mediumint(8) unsigned NOT NULL default '0',
|
||||
`rate` tinyint(2) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`user_id`,`element_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_sessions'
|
||||
-- Table structure for table `phpwebgallery_sessions`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_sessions;
|
||||
CREATE TABLE phpwebgallery_sessions (
|
||||
id varchar(255) binary NOT NULL default '',
|
||||
user_id smallint(5) unsigned NOT NULL default '0',
|
||||
expiration datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY (id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_sessions`;
|
||||
CREATE TABLE `phpwebgallery_sessions` (
|
||||
`id` varchar(255) binary NOT NULL default '',
|
||||
`user_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`expiration` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY (`id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_sites'
|
||||
-- Table structure for table `phpwebgallery_sites`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_sites;
|
||||
CREATE TABLE phpwebgallery_sites (
|
||||
id tinyint(4) NOT NULL auto_increment,
|
||||
galleries_url varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY sites_ui1 (galleries_url)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_sites`;
|
||||
CREATE TABLE `phpwebgallery_sites` (
|
||||
`id` tinyint(4) NOT NULL auto_increment,
|
||||
`galleries_url` varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `sites_ui1` (`galleries_url`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_user_access'
|
||||
-- Table structure for table `phpwebgallery_user_access`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_user_access;
|
||||
CREATE TABLE phpwebgallery_user_access (
|
||||
user_id smallint(5) unsigned NOT NULL default '0',
|
||||
cat_id smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (user_id,cat_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_user_access`;
|
||||
CREATE TABLE `phpwebgallery_user_access` (
|
||||
`user_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`cat_id` smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`user_id`,`cat_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_user_forbidden'
|
||||
-- Table structure for table `phpwebgallery_user_forbidden`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_user_forbidden;
|
||||
CREATE TABLE phpwebgallery_user_forbidden (
|
||||
user_id smallint(5) unsigned NOT NULL default '0',
|
||||
need_update enum('true','false') NOT NULL default 'true',
|
||||
forbidden_categories text,
|
||||
PRIMARY KEY (user_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_user_forbidden`;
|
||||
CREATE TABLE `phpwebgallery_user_forbidden` (
|
||||
`user_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`need_update` enum('true','false') NOT NULL default 'true',
|
||||
`forbidden_categories` text,
|
||||
PRIMARY KEY (`user_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_user_group'
|
||||
-- Table structure for table `phpwebgallery_user_group`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_user_group;
|
||||
CREATE TABLE phpwebgallery_user_group (
|
||||
user_id smallint(5) unsigned NOT NULL default '0',
|
||||
group_id smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (group_id,user_id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_user_group`;
|
||||
CREATE TABLE `phpwebgallery_user_group` (
|
||||
`user_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`group_id` smallint(5) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`group_id`,`user_id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_users'
|
||||
-- Table structure for table `phpwebgallery_users`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_users;
|
||||
CREATE TABLE phpwebgallery_users (
|
||||
id smallint(5) unsigned NOT NULL auto_increment,
|
||||
username varchar(20) binary NOT NULL default '',
|
||||
password varchar(255) NOT NULL default '',
|
||||
mail_address varchar(255) default NULL,
|
||||
nb_image_line tinyint(1) unsigned NOT NULL default '5',
|
||||
nb_line_page tinyint(3) unsigned NOT NULL default '3',
|
||||
status enum('admin','guest') NOT NULL default 'guest',
|
||||
language varchar(50) NOT NULL default 'english',
|
||||
maxwidth smallint(6) default NULL,
|
||||
maxheight smallint(6) default NULL,
|
||||
expand enum('true','false') NOT NULL default 'false',
|
||||
show_nb_comments enum('true','false') NOT NULL default 'false',
|
||||
recent_period tinyint(3) unsigned NOT NULL default '7',
|
||||
template varchar(255) NOT NULL default 'default',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY users_ui1 (username)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_users`;
|
||||
CREATE TABLE `phpwebgallery_users` (
|
||||
`id` smallint(5) unsigned NOT NULL auto_increment,
|
||||
`username` varchar(20) binary NOT NULL default '',
|
||||
`password` varchar(32) default NULL,
|
||||
`mail_address` varchar(255) default NULL,
|
||||
`nb_image_line` tinyint(1) unsigned NOT NULL default '5',
|
||||
`nb_line_page` tinyint(3) unsigned NOT NULL default '3',
|
||||
`status` enum('admin','guest') NOT NULL default 'guest',
|
||||
`language` varchar(50) NOT NULL default 'english',
|
||||
`maxwidth` smallint(6) default NULL,
|
||||
`maxheight` smallint(6) default NULL,
|
||||
`expand` enum('true','false') NOT NULL default 'false',
|
||||
`show_nb_comments` enum('true','false') NOT NULL default 'false',
|
||||
`recent_period` tinyint(3) unsigned NOT NULL default '7',
|
||||
`template` varchar(255) NOT NULL default 'default',
|
||||
`last_feed_check` datetime default NULL,
|
||||
`feed_id` varchar(50) binary default NULL,
|
||||
`registration_date` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `users_ui1` (`username`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
--
|
||||
-- Table structure for table 'phpwebgallery_waiting'
|
||||
-- Table structure for table `phpwebgallery_waiting`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS phpwebgallery_waiting;
|
||||
CREATE TABLE phpwebgallery_waiting (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
storage_category_id smallint(5) unsigned NOT NULL default '0',
|
||||
file varchar(255) NOT NULL default '',
|
||||
username varchar(255) NOT NULL default '',
|
||||
mail_address varchar(255) NOT NULL default '',
|
||||
date int(10) unsigned NOT NULL default '0',
|
||||
tn_ext char(3) default NULL,
|
||||
validated enum('true','false') NOT NULL default 'false',
|
||||
infos text,
|
||||
PRIMARY KEY (id)
|
||||
DROP TABLE IF EXISTS `phpwebgallery_waiting`;
|
||||
CREATE TABLE `phpwebgallery_waiting` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`storage_category_id` smallint(5) unsigned NOT NULL default '0',
|
||||
`file` varchar(255) NOT NULL default '',
|
||||
`username` varchar(255) NOT NULL default '',
|
||||
`mail_address` varchar(255) NOT NULL default '',
|
||||
`date` int(10) unsigned NOT NULL default '0',
|
||||
`tn_ext` char(3) default NULL,
|
||||
`validated` enum('true','false') NOT NULL default 'false',
|
||||
`infos` text,
|
||||
PRIMARY KEY (`id`)
|
||||
) TYPE=MyISAM;
|
||||
|
||||
|
|
36
picture.php
36
picture.php
|
@ -342,23 +342,34 @@ if ( isset( $_POST['content'] ) && !empty($_POST['content']) )
|
|||
if ( mysql_num_rows( pwg_query( $query ) ) == 0
|
||||
or $conf['anti-flood_time'] == 0 )
|
||||
{
|
||||
$query = 'INSERT INTO '.COMMENTS_TABLE;
|
||||
$query.= ' (author,date,image_id,content,validated) VALUES (';
|
||||
$query.= "'".$author."'";
|
||||
$query.= ',NOW(),'.$_GET['image_id'];
|
||||
$query.= ",'".htmlspecialchars( $_POST['content'], ENT_QUOTES)."'";
|
||||
if ( !$conf['comments_validation'] or $user['status'] == 'admin' )
|
||||
{
|
||||
$query.= ",'true'";
|
||||
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
|
||||
|
||||
$data = array();
|
||||
$data{'author'} = $author;
|
||||
$data{'date'} = $dbnow;
|
||||
$data{'image_id'} = $_GET['image_id'];
|
||||
$data{'content'} = htmlspecialchars( $_POST['content'], ENT_QUOTES);
|
||||
|
||||
if (!$conf['comments_validation'] or $user['status'] == 'admin')
|
||||
{
|
||||
$data{'validated'} = 'true';
|
||||
$data{'validation_date'} = $dbnow;
|
||||
}
|
||||
else
|
||||
{
|
||||
$query.= ",'false'";
|
||||
$data{'validated'} = 'false';
|
||||
}
|
||||
$query.= ');';
|
||||
pwg_query( $query );
|
||||
|
||||
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
|
||||
$fields = array('author', 'date', 'image_id', 'content', 'validated',
|
||||
'validation_date');
|
||||
mass_inserts(COMMENTS_TABLE, $fields, array($data));
|
||||
|
||||
// information message
|
||||
$message = $lang['comment_added'];
|
||||
|
||||
if (!$conf['comments_validation'] or $user['status'] == 'admin')
|
||||
|
||||
if ( $conf['comments_validation'] and $user['status'] != 'admin' )
|
||||
{
|
||||
$message.= '<br />'.$lang['comment_to_validate'];
|
||||
|
@ -479,7 +490,8 @@ if ( !empty($picture['current']['date_creation']) )
|
|||
}
|
||||
|
||||
// date of availability
|
||||
$availability_date = format_date($picture['current']['date_available']);
|
||||
$availability_date = format_date($picture['current']['date_available'],
|
||||
'mysql_datetime');
|
||||
|
||||
// size in pixels
|
||||
if ($picture['current']['is_picture'])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue