in my F.A.P. 1.4.1 with phpbb 2.0.21 I've inclused this MOD (adapted from smartor album).
#
#-----[ OPEN ]-------------------------------------------
#
ROOT/language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------------
#
$lang['Search_new'] = 'View posts since last visit';
#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['New_pics'] = 'View new pics';
$lang['New_pics_header'] = 'New pics';
$lang['X_New_pics'] = ' new pic(s)';
$lang['New_pic_comments'] = 'View new comments';
$lang['New_pic_comments_header'] = 'New comments';
$lang['X_New_pic_comments'] = ' new comment(s) in ';
$lang['X_pics'] = ' pic(s)';
#
#-----[ OPEN ]-------------------------------------------
#
ROOT/language/lang_italian/lang_main.php
#
#-----[ FIND ]------------------------------------------------
#
$lang['Search_new'] = 'Leggi messaggi non letti';
#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['New_pics'] = 'Vedi le nuove foto';
$lang['New_pics_header'] = 'Nuove foto';
$lang['X_New_pics'] = ' nuove foto';
$lang['New_pic_comments'] = 'Leggi i nuovi commenti alle foto';
$lang['New_pic_comments_header'] = 'Nuovi commenti';
$lang['X_New_pic_comments'] = ' nuovi commenti in ';
$lang['X_pics'] = ' foto';
#
#-----[ OPEN ]------------------------------------------
#
ROOT/index.php
#
#-----[ FIND ]------------------------------------------ (Voir nouvelles photos / Nouveaux commentaires)
#
// End session management
//
#
#-----[ AFTER, ADD ]------------------------------------------ (Voir nouvelles photos / Nouveaux commentaires)
#
$sql = "SELECT count(*) AS count
FROM " . ALBUM_TABLE . "
WHERE pic_time >= " . $userdata['user_lastvisit'] . "
AND pic_approval = '1'
AND pic_user_id != " . $userdata['user_id'];
$result = $db->sql_query($sql);
if( $result )
{
$row = $db->sql_fetchrow($result);
$lang['New_pics'] = $lang['New_pics'] . " (" . $row['count'] . ")";
}
$seql = "SELECT COUNT(c.comment_id) as total
FROM ". ALBUM_COMMENT_TABLE ." c, " . ALBUM_TABLE . " p
WHERE c.comment_time >= " . $userdata['user_lastvisit'] . "
AND c.comment_pic_id = p.pic_id
AND p.pic_approval = '1'
AND c.comment_user_id != " . $userdata['user_id'];
$results = $db->sql_query($seql);
if( $results )
{
$new_comments = $db->sql_fetchrow($results);
$lang['New_pic_comments'] = $lang['New_pic_comments'] . " (" . $new_comments['total'] . ")";
}
#
#-----[ FIND ]----------------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
'L_ONLINE_EXPLAIN' => $lang['Online_explain'],
#
#-----[ AFTER, ADD ]----------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
'L_NEW_PICS' => $lang['New_pics'],
'U_NEW_PICS' => append_sid("album_new_pics.$phpEx"),
'L_NEW_PIC_COMMENTS' => $lang['New_pic_comments'],
'U_NEW_PIC_COMMENTS' => append_sid("album_new_comments.$phpEx"),
#
#-----[ OPEN ]-------------------------------------------------
#
ROOT/templates/subSilver/index_body.tpl
#
#-----[ FIND ]------------------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
<a href="{U_SEARCH_NEW}" class="gensmall">{L_SEARCH_NEW}</a><br /><a href="{U_SEARCH_SELF}" class="gensmall">{L_SEARCH_SELF}</a><br />
#
#-----[ REPLACE WITH ]------------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
<a href="{U_SEARCH_NEW}" class="gensmall">{L_SEARCH_NEW}</a><br /><a href="{U_NEW_PICS}" class="gensmall">{L_NEW_PICS}</a> | <a href="{U_NEW_PIC_COMMENTS}" class="gensmall">{L_NEW_PIC_COMMENTS}</a><br /><a href="{U_SEARCH_SELF}" class="gensmall">{L_SEARCH_SELF}</a> |
#-----[ OPEN ]-------------------------------------------
#
ROOT/language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------------
#
$lang['Search_new'] = 'View posts since last visit';
#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['New_pics'] = 'View new pics';
$lang['New_pics_header'] = 'New pics';
$lang['X_New_pics'] = ' new pic(s)';
$lang['New_pic_comments'] = 'View new comments';
$lang['New_pic_comments_header'] = 'New comments';
$lang['X_New_pic_comments'] = ' new comment(s) in ';
$lang['X_pics'] = ' pic(s)';
#
#-----[ OPEN ]-------------------------------------------
#
ROOT/language/lang_italian/lang_main.php
#
#-----[ FIND ]------------------------------------------------
#
$lang['Search_new'] = 'Leggi messaggi non letti';
#
#-----[ AFTER, ADD ]------------------------------------------
#
$lang['New_pics'] = 'Vedi le nuove foto';
$lang['New_pics_header'] = 'Nuove foto';
$lang['X_New_pics'] = ' nuove foto';
$lang['New_pic_comments'] = 'Leggi i nuovi commenti alle foto';
$lang['New_pic_comments_header'] = 'Nuovi commenti';
$lang['X_New_pic_comments'] = ' nuovi commenti in ';
$lang['X_pics'] = ' foto';
#
#-----[ OPEN ]------------------------------------------
#
ROOT/index.php
#
#-----[ FIND ]------------------------------------------ (Voir nouvelles photos / Nouveaux commentaires)
#
// End session management
//
#
#-----[ AFTER, ADD ]------------------------------------------ (Voir nouvelles photos / Nouveaux commentaires)
#
$sql = "SELECT count(*) AS count
FROM " . ALBUM_TABLE . "
WHERE pic_time >= " . $userdata['user_lastvisit'] . "
AND pic_approval = '1'
AND pic_user_id != " . $userdata['user_id'];
$result = $db->sql_query($sql);
if( $result )
{
$row = $db->sql_fetchrow($result);
$lang['New_pics'] = $lang['New_pics'] . " (" . $row['count'] . ")";
}
$seql = "SELECT COUNT(c.comment_id) as total
FROM ". ALBUM_COMMENT_TABLE ." c, " . ALBUM_TABLE . " p
WHERE c.comment_time >= " . $userdata['user_lastvisit'] . "
AND c.comment_pic_id = p.pic_id
AND p.pic_approval = '1'
AND c.comment_user_id != " . $userdata['user_id'];
$results = $db->sql_query($seql);
if( $results )
{
$new_comments = $db->sql_fetchrow($results);
$lang['New_pic_comments'] = $lang['New_pic_comments'] . " (" . $new_comments['total'] . ")";
}
#
#-----[ FIND ]----------------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
'L_ONLINE_EXPLAIN' => $lang['Online_explain'],
#
#-----[ AFTER, ADD ]----------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
'L_NEW_PICS' => $lang['New_pics'],
'U_NEW_PICS' => append_sid("album_new_pics.$phpEx"),
'L_NEW_PIC_COMMENTS' => $lang['New_pic_comments'],
'U_NEW_PIC_COMMENTS' => append_sid("album_new_comments.$phpEx"),
#
#-----[ OPEN ]-------------------------------------------------
#
ROOT/templates/subSilver/index_body.tpl
#
#-----[ FIND ]------------------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
<a href="{U_SEARCH_NEW}" class="gensmall">{L_SEARCH_NEW}</a><br /><a href="{U_SEARCH_SELF}" class="gensmall">{L_SEARCH_SELF}</a><br />
#
#-----[ REPLACE WITH ]------------------------------------------- (Voir nouvelles photos / Nouveaux commentaires)
#
<a href="{U_SEARCH_NEW}" class="gensmall">{L_SEARCH_NEW}</a><br /><a href="{U_NEW_PICS}" class="gensmall">{L_NEW_PICS}</a> | <a href="{U_NEW_PIC_COMMENTS}" class="gensmall">{L_NEW_PIC_COMMENTS}</a><br /><a href="{U_SEARCH_SELF}" class="gensmall">{L_SEARCH_SELF}</a> |
Create this file (ROOT/album_new_pics.php):
<?php
/***************************************************************************
* album_new_pics.php
* -------------------
* begin : Sunday, December 21st, 2003
* copyright : (C) 2003 vgan
* email : transflux@msn.com
*
* $Id: album_new_pics.php,v 1.0 12/21/2003 10:16:56 Exp $
*
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$album_root_path = $phpbb_root_path . 'album_mod/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ALBUM_NEW_PICS);
init_userprefs($userdata);
//
// End session management
//
//
// Get general album information
//
include($album_root_path . 'album_common.'.$phpEx);
// ------------------------------------
// Set Last Visit Variable
// ------------------------------------
$user_lastvisit = $userdata['user_lastvisit'];
//
// END
//
// ------------------------------------
// Find new pictures since last session
// -----------------------------------
$sql = "SELECT count(*) AS count
FROM " . ALBUM_TABLE . "
WHERE pic_time >= " . $userdata['user_lastvisit'] . "
AND pic_approval = '1'
AND pic_user_id != " . $userdata['user_id'];
$result = $db->sql_query($sql);
if( $result )
{
$row = $db->sql_fetchrow($result);
$total_pics = $row['count'];
$lang['New_pics'] = $row['count'] . $lang['X_New_pics'];
}
//
// END new pictures
//
// ------------------------------------
// Check permissions
// ------------------------------------
if ( !$userdata['session_logged_in'] )
{
redirect(append_sid("login.".$phpEx."?redirect=album_new_pics.".$phpEx, true));
exit;
}
//
// END check permissions
//
// ------------------------------------
// Build the thumbnail page
// ------------------------------------
$sort_order = $album_config['sort_order'];
$sort_method = $album_config['sort_method'];
// Pagination stuff
if( isset($HTTP_GET_VARS['start']) )
{
$start = intval($HTTP_GET_VARS['start']);
}
else if( isset($HTTP_POST_VARS['start']) )
{
$start = intval($HTTP_POST_VARS['start']);
}
else
{
$start = 0;
}
$pics_per_page = $album_config['rows_per_page'] * $album_config['cols_per_page'];
if ($total_pics > 0)
{
$limit_sql = ($start == 0) ? $pics_per_page : $start .','. $pics_per_page;
$sql = "SELECT p.pic_id, p.pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, p.pic_lock, p.pic_approval, u.user_id, u.username, u.user_lastvisit, u.user_regdate, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, MAX(c.comment_id) as new_comment, c.comment_time
FROM ". ALBUM_TABLE ." AS p
LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
WHERE p.pic_time >= ". $user_lastvisit ."
AND p.pic_approval = '1'
AND p.pic_id != " . $userdata['user_id'] . "
GROUP BY p.pic_id
ORDER BY $sort_method $sort_order
LIMIT $limit_sql";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not find new pics', '', __LINE__, __FILE__, $sql);
}
$picrow = array();
while( $row = $db->sql_fetchrow($result) )
{
$picrow[] = $row;
}
for ($i = 0; $i < count($picrow); $i += $album_config['cols_per_page'])
{
$template->assign_block_vars('picrow', array());
for ($j = $i; $j < ($i + $album_config['cols_per_page']); $j++)
{
if( $j >= count($picrow) )
{
$template->assign_block_vars('picrow.nopiccol', array());
$template->assign_block_vars('picrow.picnodetail', array());
break;
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ! Gif experiment!
// Set Filename for reg exp
$filename = $picrow[$j]['pic_filename'];
// check for gif
if (preg_match ("/.gif/i", $filename))
{
$size = getimagesize('album_mod/upload/' . $filename);
$gif_width = $size['0'];
$gif_height = $size['1'];
if ($gif_width > $gif_height)
{
$thumb_width = $album_config['thumbnail_size'];
$thumb_height = $album_config['thumbnail_size'] * ($gif_height/$gif_width);
}
else
{
$thumb_height = $album_config['thumbnail_size'];
$thumb_width = $album_config['thumbnail_size'] * ($gif_width/$gif_height);
}
$thumbnail = ( '/album_mod/upload/' . $filename . '" ' . 'width="'. $thumb_width . '" ' . 'height="'. $thumb_height);
}
else
{
$thumbnail = append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']);
}
$template->assign_block_vars('picrow.piccol', array(
'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) : append_sid("album_page.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'DESC' => $picrow[$j]['pic_desc'],
)
);
if( ($picrow[$j]['user_id'] == ALBUM_GUEST) or ($picrow[$j]['username'] == '') )
{
$pic_poster = ($picrow[$j]['pic_username'] == '') ? $lang['Guest'] : $picrow[$j]['pic_username'];
}
else
{
$pic_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $picrow[$j]['user_id']) .'">'. $picrow[$j]['username'] .'</a>';
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ------------------------------------
// Get the current Category Info
// ------------------------------------
$cat_id = $picrow[$j]['pic_cat_id'];
if ($cat_id != PERSONAL_GALLERY)
{
$sql = "SELECT cat_id, cat_title, cat_approval
FROM ". ALBUM_CAT_TABLE ."
WHERE cat_id = '$cat_id'";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query category information', '', __LINE__, __FILE__, $sql);
}
$thiscat = $db->sql_fetchrow($result);
}
else
{
$thiscat = init_personal_gallery_cat($user_id);
}
if (empty($thiscat))
{
message_die(GENERAL_ERROR, $lang['Category_not_exist']);
}
$template->assign_block_vars('picrow.pic_detail', array(
'CATEGORIE' => ($cat_id != PERSONAL_GALLERY) ? '<a href="'. append_sid("album_cat.$phpEx?cat_id=". $picrow[$j]['pic_cat_id']) . '">' . $thiscat['cat_title'] . '</a>' : '<a href="'. append_sid("album_personal.$phpEx?user_id=". $picrow[$j]['pic_user_id']) . '">' . sprintf($lang['Personal_Gallery_Of_User'], $picrow[$j]['pic_username']) . '</a>',
'TITLE' => $picrow[$j]['pic_title'],
'POSTER' => $pic_poster,
'TIME' => create_date($board_config['default_dateformat'], $picrow[$j]['pic_time'], $board_config['board_timezone']),
'VIEW' => $picrow[$j]['pic_view_count'],
'RATING' => ($album_config['rate'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Rating'] . '</a>: ' . $picrow[$j]['rating'] . '<br />') : '',
'COMMENTS' => ($album_config['comment'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Comments'] . '</a>: ' . $picrow[$j]['comments'] . '<br />') : '',
'EDIT' => ( ( $auth_data['edit'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_edit_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_edit.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Edit_pic'] . '</a>' : '',
'DELETE' => ( ( $auth_data['delete'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_delete_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_delete.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Delete_pic'] . '</a>' : '',
'MOVE' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN and $picrow[$j]['pic_cat_id'] <> 0) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=move&pic_id=". $picrow[$j]['pic_id']) .'">'. $lang['Move'] .'</a>' : '',
'LOCK' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=". (($picrow[$j]['pic_lock'] == 0) ? 'lock' : 'unlock') ."&pic_id=". $picrow[$j]['pic_id']) .'">'. (($picrow[$j]['pic_lock'] == 0) ? $lang['Lock'] : $lang['Unlock']) .'</a>' : '',
'IP' => ($userdata['user_level'] == ADMIN) ? $lang['IP_Address'] . ': <a href="http://www.nic.com/cgi-bin/whois.cgi?query=' . decode_ip($picrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($picrow[$j]['pic_user_ip']) .'</a><br />' : ''
)
);
}
}
$template->assign_vars(array(
'PAGINATION' => generate_pagination(append_sid("album_new_pics.$phpEx?sort_method=$sort_method&sort_order=$sort_order"), $total_pics, $pics_per_page, $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $pics_per_page ) + 1 ), ceil( $total_pics / $pics_per_page ))
)
);
}
else
{
message_die(GENERAL_MESSAGE, $lang['No_search_match']);
}
//
// END thumbnails table
//
//
// Start output of page
//
$page_title = $lang['New_pics_header'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'album_new_pics.tpl')
);
$template->assign_vars(array(
'L_ALBUM' => $lang['Album'],
'L_CATEGORY' => $lang['Category'],
'S_COLS' => $album_config['cols_per_page'],
'S_COL_WIDTH' => (100/$album_config['cols_per_page']) . '%',
'L_VIEW' => $lang['View'],
'L_POSTER' => $lang['Poster'],
'L_POSTED' => $lang['Posted'],
'TARGET_BLANK' => ($album_config['fullpic_popup']) ? 'target="_blank"' : '',
'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
'L_ORDER' => $lang['Order'],
'L_SORT' => $lang['Sort'],
'L_TIME' => $lang['Time'],
'L_PIC_TITLE' => $lang['Pic_Title'],
'L_USERNAME' => $lang['Sort_Username'],
'L_NEW_PICS' => $lang['New_pics'],
'L_NEW_PICS_HEADER' => $lang['New_pics_header'],
'U_NEW_PICS' => append_sid("album_new_pics.$phpEx"),
'SORT_TIME' => ($sort_method == 'pic_time') ? 'selected="selected"' : '',
'L_ASC' => $lang['Sort_Ascending'],
'L_DESC' => $lang['Sort_Descending'],
'SORT_ASC' => ($sort_order == 'ASC') ? 'selected="selected"' : '',
'SORT_DESC' => ($sort_order == 'DESC') ? 'selected="selected"' : '',
'S_AUTH_LIST' => $auth_list)
);
//
// Generate the page
//
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
// +------------------------------------------------------+
// | Powered by Photo Album 2.x.x (c) 2002-2003 Smartor |
// +------------------------------------------------------+
?>
/***************************************************************************
* album_new_pics.php
* -------------------
* begin : Sunday, December 21st, 2003
* copyright : (C) 2003 vgan
* email : transflux@msn.com
*
* $Id: album_new_pics.php,v 1.0 12/21/2003 10:16:56 Exp $
*
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$album_root_path = $phpbb_root_path . 'album_mod/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ALBUM_NEW_PICS);
init_userprefs($userdata);
//
// End session management
//
//
// Get general album information
//
include($album_root_path . 'album_common.'.$phpEx);
// ------------------------------------
// Set Last Visit Variable
// ------------------------------------
$user_lastvisit = $userdata['user_lastvisit'];
//
// END
//
// ------------------------------------
// Find new pictures since last session
// -----------------------------------
$sql = "SELECT count(*) AS count
FROM " . ALBUM_TABLE . "
WHERE pic_time >= " . $userdata['user_lastvisit'] . "
AND pic_approval = '1'
AND pic_user_id != " . $userdata['user_id'];
$result = $db->sql_query($sql);
if( $result )
{
$row = $db->sql_fetchrow($result);
$total_pics = $row['count'];
$lang['New_pics'] = $row['count'] . $lang['X_New_pics'];
}
//
// END new pictures
//
// ------------------------------------
// Check permissions
// ------------------------------------
if ( !$userdata['session_logged_in'] )
{
redirect(append_sid("login.".$phpEx."?redirect=album_new_pics.".$phpEx, true));
exit;
}
//
// END check permissions
//
// ------------------------------------
// Build the thumbnail page
// ------------------------------------
$sort_order = $album_config['sort_order'];
$sort_method = $album_config['sort_method'];
// Pagination stuff
if( isset($HTTP_GET_VARS['start']) )
{
$start = intval($HTTP_GET_VARS['start']);
}
else if( isset($HTTP_POST_VARS['start']) )
{
$start = intval($HTTP_POST_VARS['start']);
}
else
{
$start = 0;
}
$pics_per_page = $album_config['rows_per_page'] * $album_config['cols_per_page'];
if ($total_pics > 0)
{
$limit_sql = ($start == 0) ? $pics_per_page : $start .','. $pics_per_page;
$sql = "SELECT p.pic_id, p.pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, p.pic_lock, p.pic_approval, u.user_id, u.username, u.user_lastvisit, u.user_regdate, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, MAX(c.comment_id) as new_comment, c.comment_time
FROM ". ALBUM_TABLE ." AS p
LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
WHERE p.pic_time >= ". $user_lastvisit ."
AND p.pic_approval = '1'
AND p.pic_id != " . $userdata['user_id'] . "
GROUP BY p.pic_id
ORDER BY $sort_method $sort_order
LIMIT $limit_sql";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not find new pics', '', __LINE__, __FILE__, $sql);
}
$picrow = array();
while( $row = $db->sql_fetchrow($result) )
{
$picrow[] = $row;
}
for ($i = 0; $i < count($picrow); $i += $album_config['cols_per_page'])
{
$template->assign_block_vars('picrow', array());
for ($j = $i; $j < ($i + $album_config['cols_per_page']); $j++)
{
if( $j >= count($picrow) )
{
$template->assign_block_vars('picrow.nopiccol', array());
$template->assign_block_vars('picrow.picnodetail', array());
break;
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ! Gif experiment!
// Set Filename for reg exp
$filename = $picrow[$j]['pic_filename'];
// check for gif
if (preg_match ("/.gif/i", $filename))
{
$size = getimagesize('album_mod/upload/' . $filename);
$gif_width = $size['0'];
$gif_height = $size['1'];
if ($gif_width > $gif_height)
{
$thumb_width = $album_config['thumbnail_size'];
$thumb_height = $album_config['thumbnail_size'] * ($gif_height/$gif_width);
}
else
{
$thumb_height = $album_config['thumbnail_size'];
$thumb_width = $album_config['thumbnail_size'] * ($gif_width/$gif_height);
}
$thumbnail = ( '/album_mod/upload/' . $filename . '" ' . 'width="'. $thumb_width . '" ' . 'height="'. $thumb_height);
}
else
{
$thumbnail = append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']);
}
$template->assign_block_vars('picrow.piccol', array(
'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) : append_sid("album_page.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'DESC' => $picrow[$j]['pic_desc'],
)
);
if( ($picrow[$j]['user_id'] == ALBUM_GUEST) or ($picrow[$j]['username'] == '') )
{
$pic_poster = ($picrow[$j]['pic_username'] == '') ? $lang['Guest'] : $picrow[$j]['pic_username'];
}
else
{
$pic_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $picrow[$j]['user_id']) .'">'. $picrow[$j]['username'] .'</a>';
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ------------------------------------
// Get the current Category Info
// ------------------------------------
$cat_id = $picrow[$j]['pic_cat_id'];
if ($cat_id != PERSONAL_GALLERY)
{
$sql = "SELECT cat_id, cat_title, cat_approval
FROM ". ALBUM_CAT_TABLE ."
WHERE cat_id = '$cat_id'";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query category information', '', __LINE__, __FILE__, $sql);
}
$thiscat = $db->sql_fetchrow($result);
}
else
{
$thiscat = init_personal_gallery_cat($user_id);
}
if (empty($thiscat))
{
message_die(GENERAL_ERROR, $lang['Category_not_exist']);
}
$template->assign_block_vars('picrow.pic_detail', array(
'CATEGORIE' => ($cat_id != PERSONAL_GALLERY) ? '<a href="'. append_sid("album_cat.$phpEx?cat_id=". $picrow[$j]['pic_cat_id']) . '">' . $thiscat['cat_title'] . '</a>' : '<a href="'. append_sid("album_personal.$phpEx?user_id=". $picrow[$j]['pic_user_id']) . '">' . sprintf($lang['Personal_Gallery_Of_User'], $picrow[$j]['pic_username']) . '</a>',
'TITLE' => $picrow[$j]['pic_title'],
'POSTER' => $pic_poster,
'TIME' => create_date($board_config['default_dateformat'], $picrow[$j]['pic_time'], $board_config['board_timezone']),
'VIEW' => $picrow[$j]['pic_view_count'],
'RATING' => ($album_config['rate'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Rating'] . '</a>: ' . $picrow[$j]['rating'] . '<br />') : '',
'COMMENTS' => ($album_config['comment'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Comments'] . '</a>: ' . $picrow[$j]['comments'] . '<br />') : '',
'EDIT' => ( ( $auth_data['edit'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_edit_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_edit.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Edit_pic'] . '</a>' : '',
'DELETE' => ( ( $auth_data['delete'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_delete_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_delete.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Delete_pic'] . '</a>' : '',
'MOVE' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN and $picrow[$j]['pic_cat_id'] <> 0) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=move&pic_id=". $picrow[$j]['pic_id']) .'">'. $lang['Move'] .'</a>' : '',
'LOCK' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=". (($picrow[$j]['pic_lock'] == 0) ? 'lock' : 'unlock') ."&pic_id=". $picrow[$j]['pic_id']) .'">'. (($picrow[$j]['pic_lock'] == 0) ? $lang['Lock'] : $lang['Unlock']) .'</a>' : '',
'IP' => ($userdata['user_level'] == ADMIN) ? $lang['IP_Address'] . ': <a href="http://www.nic.com/cgi-bin/whois.cgi?query=' . decode_ip($picrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($picrow[$j]['pic_user_ip']) .'</a><br />' : ''
)
);
}
}
$template->assign_vars(array(
'PAGINATION' => generate_pagination(append_sid("album_new_pics.$phpEx?sort_method=$sort_method&sort_order=$sort_order"), $total_pics, $pics_per_page, $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $pics_per_page ) + 1 ), ceil( $total_pics / $pics_per_page ))
)
);
}
else
{
message_die(GENERAL_MESSAGE, $lang['No_search_match']);
}
//
// END thumbnails table
//
//
// Start output of page
//
$page_title = $lang['New_pics_header'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'album_new_pics.tpl')
);
$template->assign_vars(array(
'L_ALBUM' => $lang['Album'],
'L_CATEGORY' => $lang['Category'],
'S_COLS' => $album_config['cols_per_page'],
'S_COL_WIDTH' => (100/$album_config['cols_per_page']) . '%',
'L_VIEW' => $lang['View'],
'L_POSTER' => $lang['Poster'],
'L_POSTED' => $lang['Posted'],
'TARGET_BLANK' => ($album_config['fullpic_popup']) ? 'target="_blank"' : '',
'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
'L_ORDER' => $lang['Order'],
'L_SORT' => $lang['Sort'],
'L_TIME' => $lang['Time'],
'L_PIC_TITLE' => $lang['Pic_Title'],
'L_USERNAME' => $lang['Sort_Username'],
'L_NEW_PICS' => $lang['New_pics'],
'L_NEW_PICS_HEADER' => $lang['New_pics_header'],
'U_NEW_PICS' => append_sid("album_new_pics.$phpEx"),
'SORT_TIME' => ($sort_method == 'pic_time') ? 'selected="selected"' : '',
'L_ASC' => $lang['Sort_Ascending'],
'L_DESC' => $lang['Sort_Descending'],
'SORT_ASC' => ($sort_order == 'ASC') ? 'selected="selected"' : '',
'SORT_DESC' => ($sort_order == 'DESC') ? 'selected="selected"' : '',
'S_AUTH_LIST' => $auth_list)
);
//
// Generate the page
//
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
// +------------------------------------------------------+
// | Powered by Photo Album 2.x.x (c) 2002-2003 Smartor |
// +------------------------------------------------------+
?>
And this one for new comments (ROOT/album_new_comments.php):
<?php
/***************************************************************************
* album_new_comments.php
* -------------------
* begin : Sunday, December 21st, 2003
* copyright : (C) 2003 vgan
* email : transflux@msn.com
*
* $Id: album_new_comments.php,v 1.0 12/21/2003 10:16:56 Exp $
*
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$album_root_path = $phpbb_root_path . 'album_mod/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ALBUM_NEW_COMMENTS);
init_userprefs($userdata);
//
// End session management
//
//
// Get general album information
//
include($album_root_path . 'album_common.'.$phpEx);
// ------------------------------------
// Set Last Visit Variable
// ------------------------------------
$user_lastvisit = $userdata['user_lastvisit'];
//
// END
//
// ------------------------------------
// Count comments since last session
// ------------------------------------
{
$seql = "SELECT COUNT(c.comment_id) as total
FROM ". ALBUM_COMMENT_TABLE ." c, " . ALBUM_TABLE . " p
WHERE c.comment_time >= " . $userdata['user_lastvisit'] . "
AND c.comment_pic_id = p.pic_id
AND p.pic_approval = '1'
AND c.comment_user_id != " . $userdata['user_id'];
$results = $db->sql_query($seql);
if( $results )
{
$new_comments = $db->sql_fetchrow($results);
$total_new_comments = $new_comments['total'];
}
}
// ------------------------------------
// Count pictures with comments since last session
// ------------------------------------
{
$sql = "SELECT COUNT(DISTINCT c.comment_pic_id) as total
FROM ". ALBUM_COMMENT_TABLE ." c, " . ALBUM_TABLE . " p
WHERE c.comment_time >= " . $userdata['user_lastvisit'] . "
AND c.comment_pic_id = p.pic_id
AND p.pic_approval = '1'
AND c.comment_user_id != " . $userdata['user_id'];
$result = $db->sql_query($sql);
if( $result )
{
$new_comments_pics = $db->sql_fetchrow($result);
$total_pics = $new_comments_pics['total'];
$lang['New_pic_comments'] = $new_comments['total'] . $lang['X_New_pic_comments'] . $new_comments_pics['total'] . $lang['X_pics'];
}
}
//
// END new comments
//
// ------------------------------------
// Check permissions
// ------------------------------------
if ( !$userdata['session_logged_in'] )
{
redirect(append_sid("login.".$phpEx."?redirect=album_new_comments.".$phpEx, true));
exit;
}
//
// END check permissions
//
// ------------------------------------
// Build the thumbnail page
// ------------------------------------
$sort_order = $album_config['sort_order'];
$sort_method = $album_config['sort_method'];
// Pagination stuff
if( isset($HTTP_GET_VARS['start']) )
{
$start = intval($HTTP_GET_VARS['start']);
}
else if( isset($HTTP_POST_VARS['start']) )
{
$start = intval($HTTP_POST_VARS['start']);
}
else
{
$start = 0;
}
$pics_per_page = $album_config['rows_per_page'] * $album_config['cols_per_page'];
if ($total_pics > 0)
{
$limit_sql = ($start == 0) ? $pics_per_page : $start .','. $pics_per_page;
$sql = "SELECT p.pic_id, p.pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, p.pic_lock, p.pic_approval, u.user_id, u.username, u.user_lastvisit, u.user_regdate, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, MAX(c.comment_id) as new_comment, c.comment_time
FROM ". ALBUM_TABLE ." AS p
LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
WHERE c.comment_time >= ". $user_lastvisit ."
AND p.pic_approval = '1'
AND comment_user_id != " . $userdata['user_id'] ."
GROUP BY p.pic_id
ORDER BY $sort_method $sort_order
LIMIT $limit_sql";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not find new comments', '', __LINE__, __FILE__, $sql);
}
$picrow = array();
while( $row = $db->sql_fetchrow($result) )
{
$picrow[] = $row;
}
for ($i = 0; $i < count($picrow); $i += $album_config['cols_per_page'])
{
$template->assign_block_vars('picrow', array());
for ($j = $i; $j < ($i + $album_config['cols_per_page']); $j++)
{
if( $j >= count($picrow) )
{
$template->assign_block_vars('picrow.nopiccol', array());
$template->assign_block_vars('picrow.picnodetail', array());
break;
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ! Gif experiment!
// Set Filename for reg exp
$filename = $picrow[$j]['pic_filename'];
// check for gif
if (preg_match ("/.gif/i", $filename))
{
$size = getimagesize('album_mod/upload/' . $filename);
$gif_width = $size['0'];
$gif_height = $size['1'];
if ($gif_width > $gif_height)
{
$thumb_width = $album_config['thumbnail_size'];
$thumb_height = $album_config['thumbnail_size'] * ($gif_height/$gif_width);
}
else
{
$thumb_height = $album_config['thumbnail_size'];
$thumb_width = $album_config['thumbnail_size'] * ($gif_width/$gif_height);
}
$thumbnail = ( '/album_mod/upload/' . $filename . '" ' . 'width="'. $thumb_width . '" ' . 'height="'. $thumb_height);
}
else
{
$thumbnail = append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']);
}
$template->assign_block_vars('picrow.piccol', array(
'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) : append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'DESC' => $picrow[$j]['pic_desc'],
)
);
if( ($picrow[$j]['user_id'] == ALBUM_GUEST) or ($picrow[$j]['username'] == '') )
{
$pic_poster = ($picrow[$j]['pic_username'] == '') ? $lang['Guest'] : $picrow[$j]['pic_username'];
}
else
{
$pic_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $picrow[$j]['user_id']) .'">'. $picrow[$j]['username'] .'</a>';
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ------------------------------------
// Get the current Category Info
// ------------------------------------
$cat_id = $picrow[$j]['pic_cat_id'];
if ($cat_id != PERSONAL_GALLERY)
{
$sql = "SELECT cat_id, cat_title, cat_approval
FROM ". ALBUM_CAT_TABLE ."
WHERE cat_id = '$cat_id'";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query category information', '', __LINE__, __FILE__, $sql);
}
$thiscat = $db->sql_fetchrow($result);
}
else
{
$thiscat = init_personal_gallery_cat($user_id);
}
if (empty($thiscat))
{
message_die(GENERAL_ERROR, $lang['Category_not_exist']);
}
$template->assign_block_vars('picrow.pic_detail', array(
'CATEGORIE' => ($cat_id != PERSONAL_GALLERY) ? '<a href="'. append_sid("album_cat.$phpEx?cat_id=". $picrow[$j]['pic_cat_id']) . '">' . $thiscat['cat_title'] . '</a>' : '<a href="'. append_sid("album_personal.$phpEx?user_id=". $picrow[$j]['pic_user_id']) . '">' . sprintf($lang['Personal_Gallery_Of_User'], $picrow[$j]['pic_username']) . '</a>',
'TITLE' => $picrow[$j]['pic_title'],
'POSTER' => $pic_poster,
'TIME' => create_date($board_config['default_dateformat'], $picrow[$j]['pic_time'], $board_config['board_timezone']),
'VIEW' => $picrow[$j]['pic_view_count'],
'RATING' => ($album_config['rate'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Rating'] . '</a>: ' . $picrow[$j]['rating'] . '<br />') : '',
'COMMENTS' => ($album_config['comment'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Comments'] . '</a>: ' . $picrow[$j]['comments'] . '<br />') : '',
'EDIT' => ( ( $auth_data['edit'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_edit_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_edit.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Edit_pic'] . '</a>' : '',
'DELETE' => ( ( $auth_data['delete'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_delete_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_delete.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Delete_pic'] . '</a>' : '',
'MOVE' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN and $picrow[$j]['pic_cat_id'] <> 0) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=move&pic_id=". $picrow[$j]['pic_id']) .'">'. $lang['Move'] .'</a>' : '',
'LOCK' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=". (($picrow[$j]['pic_lock'] == 0) ? 'lock' : 'unlock') ."&pic_id=". $picrow[$j]['pic_id']) .'">'. (($picrow[$j]['pic_lock'] == 0) ? $lang['Lock'] : $lang['Unlock']) .'</a>' : '',
'IP' => ($userdata['user_level'] == ADMIN) ? $lang['IP_Address'] . ': <a href="http://www.nic.com/cgi-bin/whois.cgi?query=' . decode_ip($picrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($picrow[$j]['pic_user_ip']) .'</a><br />' : ''
)
);
}
}
$template->assign_vars(array(
'PAGINATION' => generate_pagination(append_sid("album_new_comments.$phpEx?sort_method=$sort_method&sort_order=$sort_order"), $total_pics, $pics_per_page, $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $pics_per_page ) + 1 ), ceil( $total_pics / $pics_per_page ))
)
);
}
else
{
message_die(GENERAL_MESSAGE, $lang['No_search_match']);
}
//
// END thumbnails table
//
//
// Start output of page
//
$page_title = $lang['New_pic_comments_header'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'album_new_comments.tpl')
);
$template->assign_vars(array(
'L_ALBUM' => $lang['Album'],
'L_CATEGORY' => $lang['Category'],
'S_COLS' => $album_config['cols_per_page'],
'S_COL_WIDTH' => (100/$album_config['cols_per_page']) . '%',
'L_VIEW' => $lang['View'],
'L_POSTER' => $lang['Poster'],
'L_POSTED' => $lang['Posted'],
'TARGET_BLANK' => ($album_config['fullpic_popup']) ? 'target="_blank"' : '',
'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
'L_ORDER' => $lang['Order'],
'L_SORT' => $lang['Sort'],
'L_TIME' => $lang['Time'],
'L_PIC_TITLE' => $lang['Pic_Title'],
'L_USERNAME' => $lang['Sort_Username'],
'L_NEW_PIC_COMMENTS' => $lang['New_pic_comments'],
'L_NEW_PIC_COMMENTS_HEADER' => $lang['New_pic_comments_header'],
'U_NEW_PIC_COMMENTS' => append_sid("album_new_comments.$phpEx"),
'SORT_TIME' => ($sort_method == 'pic_time') ? 'selected="selected"' : '',
'L_ASC' => $lang['Sort_Ascending'],
'L_DESC' => $lang['Sort_Descending'],
'SORT_ASC' => ($sort_order == 'ASC') ? 'selected="selected"' : '',
'SORT_DESC' => ($sort_order == 'DESC') ? 'selected="selected"' : '',
'S_AUTH_LIST' => $auth_list)
);
//
// Generate the page
//
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
// +------------------------------------------------------+
// | Powered by Photo Album 2.x.x (c) 2002-2003 Smartor |
// +------------------------------------------------------+
?>
/***************************************************************************
* album_new_comments.php
* -------------------
* begin : Sunday, December 21st, 2003
* copyright : (C) 2003 vgan
* email : transflux@msn.com
*
* $Id: album_new_comments.php,v 1.0 12/21/2003 10:16:56 Exp $
*
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
$album_root_path = $phpbb_root_path . 'album_mod/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ALBUM_NEW_COMMENTS);
init_userprefs($userdata);
//
// End session management
//
//
// Get general album information
//
include($album_root_path . 'album_common.'.$phpEx);
// ------------------------------------
// Set Last Visit Variable
// ------------------------------------
$user_lastvisit = $userdata['user_lastvisit'];
//
// END
//
// ------------------------------------
// Count comments since last session
// ------------------------------------
{
$seql = "SELECT COUNT(c.comment_id) as total
FROM ". ALBUM_COMMENT_TABLE ." c, " . ALBUM_TABLE . " p
WHERE c.comment_time >= " . $userdata['user_lastvisit'] . "
AND c.comment_pic_id = p.pic_id
AND p.pic_approval = '1'
AND c.comment_user_id != " . $userdata['user_id'];
$results = $db->sql_query($seql);
if( $results )
{
$new_comments = $db->sql_fetchrow($results);
$total_new_comments = $new_comments['total'];
}
}
// ------------------------------------
// Count pictures with comments since last session
// ------------------------------------
{
$sql = "SELECT COUNT(DISTINCT c.comment_pic_id) as total
FROM ". ALBUM_COMMENT_TABLE ." c, " . ALBUM_TABLE . " p
WHERE c.comment_time >= " . $userdata['user_lastvisit'] . "
AND c.comment_pic_id = p.pic_id
AND p.pic_approval = '1'
AND c.comment_user_id != " . $userdata['user_id'];
$result = $db->sql_query($sql);
if( $result )
{
$new_comments_pics = $db->sql_fetchrow($result);
$total_pics = $new_comments_pics['total'];
$lang['New_pic_comments'] = $new_comments['total'] . $lang['X_New_pic_comments'] . $new_comments_pics['total'] . $lang['X_pics'];
}
}
//
// END new comments
//
// ------------------------------------
// Check permissions
// ------------------------------------
if ( !$userdata['session_logged_in'] )
{
redirect(append_sid("login.".$phpEx."?redirect=album_new_comments.".$phpEx, true));
exit;
}
//
// END check permissions
//
// ------------------------------------
// Build the thumbnail page
// ------------------------------------
$sort_order = $album_config['sort_order'];
$sort_method = $album_config['sort_method'];
// Pagination stuff
if( isset($HTTP_GET_VARS['start']) )
{
$start = intval($HTTP_GET_VARS['start']);
}
else if( isset($HTTP_POST_VARS['start']) )
{
$start = intval($HTTP_POST_VARS['start']);
}
else
{
$start = 0;
}
$pics_per_page = $album_config['rows_per_page'] * $album_config['cols_per_page'];
if ($total_pics > 0)
{
$limit_sql = ($start == 0) ? $pics_per_page : $start .','. $pics_per_page;
$sql = "SELECT p.pic_id, p.pic_filename, p.pic_title, p.pic_desc, p.pic_user_id, p.pic_user_ip, p.pic_username, p.pic_time, p.pic_cat_id, p.pic_view_count, p.pic_lock, p.pic_approval, u.user_id, u.username, u.user_lastvisit, u.user_regdate, r.rate_pic_id, AVG(r.rate_point) AS rating, COUNT(DISTINCT c.comment_id) AS comments, MAX(c.comment_id) as new_comment, c.comment_time
FROM ". ALBUM_TABLE ." AS p
LEFT JOIN ". USERS_TABLE ." AS u ON p.pic_user_id = u.user_id
LEFT JOIN ". ALBUM_RATE_TABLE ." AS r ON p.pic_id = r.rate_pic_id
LEFT JOIN ". ALBUM_COMMENT_TABLE ." AS c ON p.pic_id = c.comment_pic_id
WHERE c.comment_time >= ". $user_lastvisit ."
AND p.pic_approval = '1'
AND comment_user_id != " . $userdata['user_id'] ."
GROUP BY p.pic_id
ORDER BY $sort_method $sort_order
LIMIT $limit_sql";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not find new comments', '', __LINE__, __FILE__, $sql);
}
$picrow = array();
while( $row = $db->sql_fetchrow($result) )
{
$picrow[] = $row;
}
for ($i = 0; $i < count($picrow); $i += $album_config['cols_per_page'])
{
$template->assign_block_vars('picrow', array());
for ($j = $i; $j < ($i + $album_config['cols_per_page']); $j++)
{
if( $j >= count($picrow) )
{
$template->assign_block_vars('picrow.nopiccol', array());
$template->assign_block_vars('picrow.picnodetail', array());
break;
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ! Gif experiment!
// Set Filename for reg exp
$filename = $picrow[$j]['pic_filename'];
// check for gif
if (preg_match ("/.gif/i", $filename))
{
$size = getimagesize('album_mod/upload/' . $filename);
$gif_width = $size['0'];
$gif_height = $size['1'];
if ($gif_width > $gif_height)
{
$thumb_width = $album_config['thumbnail_size'];
$thumb_height = $album_config['thumbnail_size'] * ($gif_height/$gif_width);
}
else
{
$thumb_height = $album_config['thumbnail_size'];
$thumb_width = $album_config['thumbnail_size'] * ($gif_width/$gif_height);
}
$thumbnail = ( '/album_mod/upload/' . $filename . '" ' . 'width="'. $thumb_width . '" ' . 'height="'. $thumb_height);
}
else
{
$thumbnail = append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']);
}
$template->assign_block_vars('picrow.piccol', array(
'U_PIC' => ($album_config['fullpic_popup']) ? append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) : append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'THUMBNAIL' => append_sid("album_thumbnail.$phpEx?pic_id=". $picrow[$j]['pic_id']),
'DESC' => $picrow[$j]['pic_desc'],
)
);
if( ($picrow[$j]['user_id'] == ALBUM_GUEST) or ($picrow[$j]['username'] == '') )
{
$pic_poster = ($picrow[$j]['pic_username'] == '') ? $lang['Guest'] : $picrow[$j]['pic_username'];
}
else
{
$pic_poster = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL .'='. $picrow[$j]['user_id']) .'">'. $picrow[$j]['username'] .'</a>';
}
if(!$picrow[$j]['rating'])
{
$picrow[$j]['rating'] = $lang['Not_rated'];
}
else
{
$picrow[$j]['rating'] = round($picrow[$j]['rating'], 2);
}
// ------------------------------------
// Get the current Category Info
// ------------------------------------
$cat_id = $picrow[$j]['pic_cat_id'];
if ($cat_id != PERSONAL_GALLERY)
{
$sql = "SELECT cat_id, cat_title, cat_approval
FROM ". ALBUM_CAT_TABLE ."
WHERE cat_id = '$cat_id'";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query category information', '', __LINE__, __FILE__, $sql);
}
$thiscat = $db->sql_fetchrow($result);
}
else
{
$thiscat = init_personal_gallery_cat($user_id);
}
if (empty($thiscat))
{
message_die(GENERAL_ERROR, $lang['Category_not_exist']);
}
$template->assign_block_vars('picrow.pic_detail', array(
'CATEGORIE' => ($cat_id != PERSONAL_GALLERY) ? '<a href="'. append_sid("album_cat.$phpEx?cat_id=". $picrow[$j]['pic_cat_id']) . '">' . $thiscat['cat_title'] . '</a>' : '<a href="'. append_sid("album_personal.$phpEx?user_id=". $picrow[$j]['pic_user_id']) . '">' . sprintf($lang['Personal_Gallery_Of_User'], $picrow[$j]['pic_username']) . '</a>',
'TITLE' => $picrow[$j]['pic_title'],
'POSTER' => $pic_poster,
'TIME' => create_date($board_config['default_dateformat'], $picrow[$j]['pic_time'], $board_config['board_timezone']),
'VIEW' => $picrow[$j]['pic_view_count'],
'RATING' => ($album_config['rate'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Rating'] . '</a>: ' . $picrow[$j]['rating'] . '<br />') : '',
'COMMENTS' => ($album_config['comment'] == 1) ? ( '<a href="'. append_sid("album_showpage.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Comments'] . '</a>: ' . $picrow[$j]['comments'] . '<br />') : '',
'EDIT' => ( ( $auth_data['edit'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_edit_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_edit.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Edit_pic'] . '</a>' : '',
'DELETE' => ( ( $auth_data['delete'] and ($picrow[$j]['pic_user_id'] == $userdata['user_id']) ) or ($auth_data['moderator'] and ($thiscat['cat_delete_level'] != ALBUM_ADMIN) ) or ($userdata['user_level'] == ADMIN) ) ? '<a href="'. append_sid("album_delete.$phpEx?pic_id=". $picrow[$j]['pic_id']) . '">' . $lang['Delete_pic'] . '</a>' : '',
'MOVE' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN and $picrow[$j]['pic_cat_id'] <> 0) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=move&pic_id=". $picrow[$j]['pic_id']) .'">'. $lang['Move'] .'</a>' : '',
'LOCK' => ($auth_data['moderator'] or $userdata['user_level'] == ADMIN) ? '<a href="'. append_sid("album_modcp.$phpEx?mode=". (($picrow[$j]['pic_lock'] == 0) ? 'lock' : 'unlock') ."&pic_id=". $picrow[$j]['pic_id']) .'">'. (($picrow[$j]['pic_lock'] == 0) ? $lang['Lock'] : $lang['Unlock']) .'</a>' : '',
'IP' => ($userdata['user_level'] == ADMIN) ? $lang['IP_Address'] . ': <a href="http://www.nic.com/cgi-bin/whois.cgi?query=' . decode_ip($picrow[$j]['pic_user_ip']) . '" target="_blank">' . decode_ip($picrow[$j]['pic_user_ip']) .'</a><br />' : ''
)
);
}
}
$template->assign_vars(array(
'PAGINATION' => generate_pagination(append_sid("album_new_comments.$phpEx?sort_method=$sort_method&sort_order=$sort_order"), $total_pics, $pics_per_page, $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $pics_per_page ) + 1 ), ceil( $total_pics / $pics_per_page ))
)
);
}
else
{
message_die(GENERAL_MESSAGE, $lang['No_search_match']);
}
//
// END thumbnails table
//
//
// Start output of page
//
$page_title = $lang['New_pic_comments_header'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'album_new_comments.tpl')
);
$template->assign_vars(array(
'L_ALBUM' => $lang['Album'],
'L_CATEGORY' => $lang['Category'],
'S_COLS' => $album_config['cols_per_page'],
'S_COL_WIDTH' => (100/$album_config['cols_per_page']) . '%',
'L_VIEW' => $lang['View'],
'L_POSTER' => $lang['Poster'],
'L_POSTED' => $lang['Posted'],
'TARGET_BLANK' => ($album_config['fullpic_popup']) ? 'target="_blank"' : '',
'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
'L_ORDER' => $lang['Order'],
'L_SORT' => $lang['Sort'],
'L_TIME' => $lang['Time'],
'L_PIC_TITLE' => $lang['Pic_Title'],
'L_USERNAME' => $lang['Sort_Username'],
'L_NEW_PIC_COMMENTS' => $lang['New_pic_comments'],
'L_NEW_PIC_COMMENTS_HEADER' => $lang['New_pic_comments_header'],
'U_NEW_PIC_COMMENTS' => append_sid("album_new_comments.$phpEx"),
'SORT_TIME' => ($sort_method == 'pic_time') ? 'selected="selected"' : '',
'L_ASC' => $lang['Sort_Ascending'],
'L_DESC' => $lang['Sort_Descending'],
'SORT_ASC' => ($sort_order == 'ASC') ? 'selected="selected"' : '',
'SORT_DESC' => ($sort_order == 'DESC') ? 'selected="selected"' : '',
'S_AUTH_LIST' => $auth_list)
);
//
// Generate the page
//
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
// +------------------------------------------------------+
// | Powered by Photo Album 2.x.x (c) 2002-2003 Smartor |
// +------------------------------------------------------+
?>
That's all....



















