Bravo List
Register
Go Back   > Bravo List > Source Code > Archived Trackers > xBTiT
Reply
Thread Tools
  #1  
Old 15th February 2012, 13:31
HASU HASU is offline
Member
 
Join Date: Aug 2010
P2P
Posts: 4
Default Who can make this work on xbtit?
I have 2 weeks work to translate this from tt to xbtit 2.2.2 and results are < nothing so please someone can help ?

Code:
Create Sql

CODE
ALTER TABLE `comments` ADD `photo_gallery` int(11) NOT NULL default '0';

CREATE TABLE `photo_gallery` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`name` varchar(120) NOT NULL default '',
`location` varchar(240) NOT NULL default '',
`added` datetime NOT NULL default '0000-00-00 00:00:00',
`numratings` int(10) unsigned NOT NULL default '0',
`ratingsum` int(10) unsigned NOT NULL default '0',
`in_gallery` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
);

CREATE TABLE `my_gallerys` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`gallery_name` varchar(60) NOT NULL default '',
`share_gallery` enum('public','private','friends') NOT NULL default 'public',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=44 DEFAULT CHARSET=latin1 AUTO_INCREMENT=44;

CREATE TABLE `image_ratings` (
`id` int(10) unsigned NOT NULL auto_increment,
`image_id` int(10) unsigned NOT NULL default '0',
`user_id` int(10) unsigned NOT NULL default '0',
`rating` tinyint(3) unsigned NOT NULL default '0',
`added` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `user` (`user_id`)
);

CREATE TABLE `gallery_admin_users` (
`user_class` tinyint(3) NOT NULL default '0',
`gal_per_member` int(4) NOT NULL default '0',
`number_total` int(4) NOT NULL default '0',
`number_of_pics` int(4) NOT NULL default '0',
PRIMARY KEY (`user_class`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Dumping data for table `gallery_admin_users` I have ten userclasses, 0 being the lowest... adjust this next bit for how many classes you have
-- 

INSERT INTO `gallery_admin_users` (`user_class`, `gal_per_member`, `number_total`, `number_of_pics`) VALUES (0, 0, 0, 0),
(1, 2, 20, 1),
(2, 4, 30, 4),
(3, 6, 40, 6),
(4, 8, 50, 8),
(5, 10, 60, 10),
(6, 12, 100, 14),
(7, 14, 100, 14),
(8, 16, 200, 14),
(9, 18, 300, 14),
(10, 3, 400, 14);

CREATE TABLE `gallery_admin` (
`per_page` smallint(4) NOT NULL default '20',
`num_rows` tinyint(2) NOT NULL default '20',
`max_file_size` int(12) NOT NULL default '1048576',
KEY `per_page` (`per_page`),
KEY `num_rows` (`num_rows`),
KEY `max_file_size` (`max_file_size`)
);

INSERT INTO `gallery_admin` (`per_page`, `num_rows`, `max_file_size`) VALUES (20, 5, 1048576);


create

photo_gallery.php new data

CODE
<?php
require_once("backend/functions.php");
dbconn(false);
loggedinorreturn();

//=== get info from DB
$res_settings = mysql_query("SELECT * FROM gallery_admin") or sqlerr(__FILE__, __LINE__);
$arr_settings = mysql_fetch_assoc($res_settings);
$max_file_size = $arr_settings['max_file_size']; //1048576;
$perpage = $arr_settings['per_page'];
$num_rows = $arr_settings['num_rows'];

$spacer = '        ';

$page_links = "<p><a class=altlink href=photo_gallery.php?my_gallery=1>view your gallerys</a> | <a class=altlink href=photo_gallery.php?public_gallerys=1>view all galleries</a> | ".
"<a class=altlink href=photo_gallery.php?manage_gallerys=1>manage gallerys</a> | <a class=altlink href=photo_gallery.php?upload=1>upload images</a>".
"".((get_user_class() >= UC_ADMINISTRATOR) ? " | <a class=altlink href=/photo_gallery.php?gallery_admin=1>gallery admin</a>" : "")." </p>";

//=== get defaults from DB
$res_classes = mysql_query("SELECT * FROM gallery_admin_users WHERE user_class = $CURUSER[class]") or sqlerr(__FILE__, __LINE__);
$arr_classes = mysql_fetch_assoc($res_classes);
$number_of_pics = $arr_classes['number_of_pics'];
$number_total = $arr_classes['number_total'];
$gal_per_member = $arr_classes['gal_per_member'];

//=== rating for images function
function ratingpic_image($num) {
global $pic_base_url;
$r = round($num * 2) / 2;
if ($r < 1 || $r > 10)
return;
return "<img src=/images/image_ratings/$r.gif align=absmiddle alt=\"rating: $num / 10\" />";
}

//=== drop down gallery box select and go to gallery
function on_select_gallery_change(){
global $CURUSER;
?>
<script language="Javascript">
function goTo (page) {
if (page != "" ) {
if (page == "--" ) {
resetMenu();
} else {
document.location.href = page;
}
}
return false;
}
</script>
<?
$res_change = mysql_query("SELECT * FROM my_gallerys WHERE user_id = $CURUSER[id]") or sqlerr(__FILE__, __LINE__);
$galleryz = "";
while ($arr_change = mysql_fetch_assoc($res_change))
$galleryz .= "<option value=?my_gallery=1&gallery=$arr_change[id] ".($arr_change["id"]==(0+$_GET['gallery'])?"selected='selected'":"").">".$arr_change["gallery_name"]."</option>";
echo "<br><b>jump to: </b><form name=gmenu><select class=select2 name=page onChange=\"goTo(this.options[this.selectedIndex].value)\"><option value=0>jump to my gallery</option>$galleryz</select></form>";
}

//=== should just add this to css to match the stylesheets :P
?>
<STYLE TYPE="text/css">
.select2 {
background-color:Deepskyblue;
font-weight: bold;
}
</STYLE>
<?
//=== drop down gallery select
function gallery_select(){
global $CURUSER;
$res_select = mysql_query("SELECT * FROM `my_gallerys` WHERE `user_id` =$CURUSER[id]") or sqlerr(__FILE__, __LINE__);
$list_select = "";
if (!$res_select)
$list_select .= '<option value=0>no gallery yet</option>';
else
while ($arr_select = mysql_fetch_assoc($res_select))
$list_select .= "<option value='$arr_select[id]'>".$arr_select["gallery_name"]."</option>";
echo "<select class=select2 name=add_to_gallery>$list_select</select>";
}

//=== galery admin
if ($_GET["gallery_admin"] || $_POST["gallery_admin"]){

if (get_user_class() < UC_ADMINISTRATOR)
stderr("Error", "staff only!");

if ($_POST["edit"]){
mysql_query("UPDATE `gallery_admin` SET `max_file_size` = ".sqlesc(0 + $_POST['max_file_size']).", `per_page` = ".sqlesc(0 + $_POST['per_page']).", `num_rows` = ".sqlesc(0 + $_POST['num_rows']).", `max_file_size` = ".sqlesc(0 + $_POST['max_file_size'])) or sqlerr(__FILE__, __LINE__);
$edited = '<h1>Changes accepted</h1>';
}

//=== update admin settings users
if ($_POST["update_admin_settings"]){

$gal_per_member = $_POST['gal_per_member'];
if (!$gal_per_member)
stderr("Error", "Nothing selected go <a class=altlink href=\"java script: history.go(-1)\">back</a>.");

foreach ($gal_per_member as $key => $add_it) {

$number_total = $_POST['number_total'];
$number_of_pics = $_POST['number_of_pics'];
$user_class = $_POST['user_class'];
$gal_per_member = sqlesc(0 + $add_it);
$number_total = sqlesc(0 + $number_total[$key]);
$number_of_pics = sqlesc(0 + $number_of_pics[$key]);
$user_class = sqlesc(0 + $user_class[$key]);

mysql_query("UPDATE gallery_admin_users SET gal_per_member = $gal_per_member, number_total = $number_total, number_of_pics = $number_of_pics WHERE user_class = $user_class") or sqlerr(__FILE__, __LINE__);
} //=== end foreach
$edited = '<h1>Changes accepted</h1>';
}//=== update_admin_settings users

$res_settings = mysql_query("SELECT * FROM gallery_admin") or sqlerr(__FILE__, __LINE__);
$arr_settings = mysql_fetch_assoc($res_settings);
//=== make the page
stdhead("Gallery Admin");
begin_table();
echo "<form method=post action=?gallery_admin=1 enctype='multipart/form-data'><p><h1>Photo Gallery Admin Page</h1></p>$page_links<br>$edited\n".
"<table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead colspan=2 align=center><h1>Photo Gallery Admin Page</h1></td></tr>\n".
"<tr><td class=clearalt6 colspan=2 align=center><h1>general settings:</h1></td></tr>\n".
"<tr><td class=clearalt7 align=right width=30%><b>Max file size:</b></td><td class=clearalt7 align=left width=70%><input type=text name=max_file_size value=$arr_settings[max_file_size] size=8 maxlength=16> [ in kb ]</td></tr>\n".
"<tr><td class=clearalt6 align=right><b>Images per page:</b></td><td class=clearalt6 align=left><input type=text name=per_page value=$arr_settings[per_page] size=4 maxlength=4></td></tr>\n".
"<tr><td class=clearalt7 align=right><b>Number or rows per page:</b></td><td class=clearalt7 align=left><input type=text name=num_rows value=$arr_settings[num_rows] size=4 maxlength=4></td></tr>\n".
"<tr><td class=colhead align=center colspan=2><br><input type=submit value=\"update basic settings\" class=button><input type=hidden value=1 name=edit></form><br></td></tr>";
end_table();
begin_table();
echo "<br><br><form method=post action=?gallery_admin=1 enctype='multipart/form-data'><input type=hidden value=1 name=update_admin_settings>".
"<table border=1 cellspacing=0 cellpadding=5 width=90%>".
"<tr><td class=colhead colspan=5 align=center><h1>user class settings:</h1></td></tr>\n".
"<tr><td class=clearalt7 align=center colspan=5><br>more stuff here like stuff about user calsses etc.<br><br></td></tr>\n".
"<tr><td class=colhead>user class</td><td class=colhead align=center>class id</td><td class=colhead>".
"# of pics at a time</td><td class=colhead>total number of pics</td><td class=colhead>number of galleries total</td></tr>\n";

for ($i = 0; $i <= UC_SYSOP; ++$i){
$res_classes = mysql_query("SELECT * FROM gallery_admin_users WHERE user_class = $i") or sqlerr(__FILE__, __LINE__);
$arr_classes = mysql_fetch_assoc($res_classes);
//=======change colors
$count2= (++$count2)%2;
$class = 'clearalt'.($count2==0?'6':'7');
echo"<tr><td class=$class align=right width=15%><b>" . get_user_class_name($i) . ":</b></td><td align=center class=$class><b>$i</b></td>".
"<td align=left class=$class><input type=text name=number_of_pics[] value=$arr_classes[number_of_pics] size=4 maxlength=4></td>".
"<td align=left class=$class><input type=text name=number_total[] value=$arr_classes[number_total] size=4 maxlength=4></td>".
"<td align=left class=$class><input type=text name=gal_per_member[] value=$arr_classes[gal_per_member] size=4 maxlength=4>".
"<input type=hidden value=$i name=user_class[]></td></tr>\n";
}
echo"<tr><td class=colhead align=center colspan=5><br><input type=submit value=\"update per class settings\" class=button></form><br></td></tr>";

end_table();
stdfoot();
die();
}//=== end galery admin

//=== count of entered images
$res = mysql_query("SELECT COUNT(*) FROM photo_gallery WHERE user_id=" . $CURUSER["id"]) or sqlerr(__FILE__, __LINE__);
$arr = mysql_fetch_row($res);
$count = $arr[0];

//=== rate image /// will add a change your rating option to this :)
if ($_GET["takerate"]){
$id = isset($_GET['takerate']) ? (int)$_GET['takerate'] : 0;
if(!is_valid_id($id))
stderr("Error", "Bad Id!");

$rate_me = isset($_GET['rate_me']) ? (int)$_GET['rate_me'] : 0;
if ($rate_me <= 0 || $rate_me > 10)
stderr("Error", "invalid rating number");

$res = mysql_query("SELECT image_id, user_id, rating FROM image_ratings WHERE image_id = $id AND user_id = $CURUSER[id]");
$row = mysql_fetch_array($res);

if (!$row){ //=== add new rating
mysql_query("INSERT INTO image_ratings (image_id, user_id, rating, added) VALUES ($id, " . $CURUSER["id"] . ", $rate_me, NOW())");
mysql_query("UPDATE photo_gallery SET numratings = numratings + 1, ratingsum = ratingsum + $rate_me WHERE id = $id");
header("Location: photo_gallery.php?info=$id&rated=1");
die();
}
else { //=== change rating
mysql_query("UPDATE image_ratings SET rating = $rate_me WHERE image_id = $id AND user_id = $CURUSER[id]");
mysql_query("UPDATE photo_gallery SET ratingsum = ratingsum + $rate_me - $row[rating] WHERE id = $id");
header("Location: photo_gallery.php?info=$id&rate_changed=1");
die();
}
}

//=== add comment
if ($_GET['comment']){
$photo_id = isset($_GET['comment']) ? (int)$_GET['comment'] : 0;
if(!is_valid_id($photo_id))
stderr("Error", "Bad Id!");

if(isset($_POST['pic_comment']) && $_POST['pic_comment'] == '')
stderr("Error", "comment body can not be empty! use your back button and fill in some text!");

$added = sqlesc(get_date_time());
$pic_comment = sqlesc($_POST["pic_comment"]);

mysql_query("INSERT INTO comments (user, text, ori_text, photo_gallery, added) VALUES(".sqlesc($CURUSER["id"]).", $pic_comment, $pic_comment, $photo_id, $added)") or sqlerr(__FILE__, __LINE__);
header("Location: photo_gallery.php?info=$photo_id&edited=1");
die();
}

//=== edit comment
if ($_GET['edit_comment']){
$edit_comment = isset($_GET['edit_comment']) ? (int)$_GET['edit_comment'] : 0;
if(!is_valid_id($edit_comment))
stderr("Error", "Bad Id!");

$photo_id = isset($_GET['photo_id']) ? (int)$_GET['photo_id'] : 0;
if(!is_valid_id($photo_id))
stderr("Error", "Bad Id!");

if(isset($_POST['pic_comment']) && $_POST['pic_comment'] == '')
stderr("Error", "comment body can not be empty! use your back button and fill in some text!");

$sure = isset($_GET['sure']) ? (int)$_GET['sure'] : 0;
if ($sure === 1){

$res_gal = mysql_query("SELECT text,id FROM comments WHERE id = ".sqlesc($edit_comment)) or sqlerr(__FILE__, __LINE__);
$arr_gal = mysql_fetch_assoc($res_gal);

stdhead("edit comment");
begin_table();

echo "$page_links<table width=80%><form method=post action=?edit_comment=".$arr_gal["id"]."&photo_id=$photo_id&sure=2 enctype='multipart/form-data'><p><b>Edit comment</b><p>".
"<tr><td colspan=2 align=center class=colhead>Edit comment</td></tr><tr><td class=clearalt6 align=right valign=top width=25%><br><b>comment:</b></td>".
"<td class=clearalt6 align=left width=75%><br><textarea name=pic_comment cols=100 rows=3>".htmlspecialchars($arr_gal["text"])."</textarea><br></td></tr>".
"<td colspan=2 align=center class=clearalt6><input type=submit value=edit class=button><br><br></td></tr>".
"</form></table>";

end_table();
stdfoot();
}
if ($sure === 2){
$added = sqlesc(get_date_time());
$pic_comment = sqlesc($_POST["pic_comment"]);

mysql_query("UPDATE comments SET text = $pic_comment, editedby = ".sqlesc($CURUSER["id"]).", editedat = $added WHERE id = ".sqlesc($edit_comment))or sqlerr(__FILE__, __LINE__);
header("Location: photo_gallery.php?info=$photo_id&edited=1");
}
}

//=== delete comment
if ($_GET['delete_comment']){

$comment_id = isset($_GET['delete_comment']) ? (int)$_GET['delete_comment'] : 0;
if(!is_valid_id($comment_id))
stderr("Error", "Bad Id!");

$photo_id = isset($_GET['photo_id']) ? (int)$_GET['photo_id'] : 0;
if(!is_valid_id($photo_id))
stderr("Error", "Bad Id!");

if (!$_GET['sure'])
stderr("Confirm!", "are you sure you want to delete this comment? <a class=altlink href=?delete_comment=$comment_id&photo_id=$photo_id&sure=1><b>YES</b></a> - <a class=altlink href=?info=$photo_id><b>NO</b></a>..");
mysql_query("DELETE FROM comments WHERE id = ".sqlesc($comment_id));
header("Location: photo_gallery.php?info=$photo_id&edited=1");
}

//=== add new gallery
if ($_GET['manage']){

//=== count of entered images
$res_c = mysql_query("SELECT COUNT(*) FROM my_gallerys WHERE user_id=" . $CURUSER["id"]) or sqlerr(__FILE__, __LINE__);
$arr_c = mysql_fetch_row($res_c);
if(($count_c = $arr_c[0]) >= $gal_per_member)
stderr("Error!", "As a <b>".get_user_class_name($CURUSER['class'])."</b> you may have up to <b>$gal_per_member</b> gallerys, you now have <b>$count_c</b>.");

$need = array('public', 'private', 'friends');
if ($_POST["new_gallery"] === '' || !in_array($_POST["gal_share_new"], $need))
stderr("Error!", "you must enter both a name and a share for your new gallery.");

$name = mysql_real_escape_string(htmlspecialchars($_POST["new_gallery"]));

//=== add check to see if name exists...
$res_gal_name = mysql_query("SELECT gallery_name FROM my_gallerys WHERE user_id = ".sqlesc($CURUSER['id'])." AND gallery_name = '$name'") or sqlerr(__FILE__, __LINE__);
$arr_gal_name = mysql_num_rows($res_gal_name);

if ($arr_gal_name > 0)
stderr("Error", "That gallery name exists.");

$gal_share_new = sqlesc($_POST["gal_share_new"]);

mysql_query("INSERT INTO my_gallerys (user_id, gallery_name, share_gallery) VALUES(".sqlesc($CURUSER["id"]).", '$name', $gal_share_new)") or sqlerr(__FILE__, __LINE__);
header("Location: photo_gallery.php?manage_gallerys=1&edited=1");
}

//=== edit gallery
if ($_GET['edit']){

if ($_POST["gallery_name"] === '')
stderr("Error!", "you must enter a name for your gallery.");

$gallery_name = mysql_real_escape_string(htmlspecialchars($_POST["gallery_name"]));

//=== add check to see if name exists...
$res_gal_name = mysql_query("SELECT gallery_name FROM my_gallerys WHERE user_id = ".sqlesc($CURUSER['id'])." AND gallery_name = '$gallery_name'") or sqlerr(__FILE__, __LINE__);
$arr_gal_name = mysql_num_rows($res_gal_name);

if ($arr_gal_name >= 1)
stderr("Error", "That gallery name exists.");

$gal_share = sqlesc($_POST["gal_share"]);
$id = sqlesc(0 + $_POST["id"]);

mysql_query("UPDATE my_gallerys SET gallery_name = '$gallery_name', share_gallery = $gal_share WHERE user_id = ".sqlesc($CURUSER["id"])." AND id = $id") or sqlerr(__FILE__, __LINE__);
header("Location: photo_gallery.php?manage_gallerys=1&edited=1");
}

//=== delete gallery
if ($_GET['delete_gallery']){
$id = sqlesc(0 + $_GET["id"]);

$res_gal = mysql_query("SELECT user_id FROM my_gallerys WHERE id = $id") or sqlerr(__FILE__, __LINE__);
$arr_gal = mysql_fetch_assoc($res_gal);

if ($arr_gal['user_id'] !== $CURUSER['id'] && get_user_class() < UC_MODERATOR)
stderr("Error", "This is not your gallery to delete!");

mysql_query("DELETE FROM my_gallerys WHERE id = $id");
header("Location: photo_gallery.php?manage_gallerys=1&edited=1");
}

//=== manage galleries
if ($_GET['manage_gallerys']){

$res_mg = mysql_query("SELECT * FROM my_gallerys WHERE user_id=" . sqlesc($CURUSER['id'])) or sqlerr(__FILE__,__LINE__);
?>
<script type="text/javascript" src="javascripts/cleartext.js"></script>
<?
stdhead("Manage Gallerys");
begin_table();

echo "<p><b>$CURUSER[username]'s Photo Gallery Manager</b><br><br>$page_links".
"".($_GET["edited"] == '1' ? "<h1>Update successfull</h1>" : "")."<table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead colspan=2>My Gallery Manager</td></tr>".
"<tr><td class=clearalt6 colspan=2><br><br><p>From here you can add new galleries, edit existing ones, and change how you would like to share them...".
" publically, with friends or not at all</p><br></td></tr><tr><td class=clearalt6 colspan=2><form method=post action=?manage=1 enctype='multipart/form-data'>".
"<br><b>add new gallery:</b> <input type=text name=new_gallery size=60 value='add gallery name here and click add!' maxlength=60 class=cleardefault> <b>share this gallery:</b> ".
"<input type=radio name=gal_share_new value=public> public <input type=radio name=gal_share_new value=private> private".
"<input type=radio name=gal_share_new value=friends> friends<br><br></td></tr><tr><td class=clearalt6 colspan=2 align=center><br><br>".
"<input type=submit value=add class=button><br></form></td></tr><tr><td class=colhead colspan=2>Manage My Gallerys</td></tr>";
while ($row_mg = mysql_fetch_assoc($res_mg)){
$id = 0 + $row_mg['id'];
echo"<form method=post action=?edit=1 enctype='multipart/form-data'><tr><td class=clearalt6 colspan=2 align=center><br><b>gallery name:</b>".
" <input type=text name=gallery_name value=\"".htmlentities($row_mg['gallery_name'])."\" size=60 maxlength=60><input type=hidden name=id value=$id>".
"<input type=radio name=gal_share" . ($row_mg["share_gallery"] == "public" ? " checked" : "") . " value=public> public ".
"<input type=radio name=gal_share" . ($row_mg["share_gallery"] == "private" ? " checked" : "") . " value=private> private".
"<input type=radio name=gal_share" . ($row_mg["share_gallery"] == "friends" ? " checked" : "") . " value=friends> friends ".
"<input class=button type=submit value=Edit></form> <a class=altlink href=?delete_gallery=1&id=$id>".
"<input class=button type=submit value=Delete></a></td></tr>";
}
echo "</table>";
on_select_gallery_change();
end_table();
stdfoot();
die();
}

//=== edit multi
if ($_GET["multi_edit"]){

$user_id = 0 + $_POST['user_id'];
if ($user_id != $CURUSER['id'] && get_user_class() < UC_MODERATOR)
stderr("Error", "this in not your gallery to edit!.");
$edit= $_POST['image'];
if (!$edit)
stderr("Error", "Nothing selected go <a class=altlink href=\"java script: history.go(-1)\">back</a>.");

foreach ($edit as $key => $add_it) {

$image_id = $_POST['image_id'];
$move_to_gallery = $_POST['move_to_gallery'];
$image_id = sqlesc(0 + $image_id[$key]);
$move_to_gallery = sqlesc(0 + $move_to_gallery[$key]);
$name = " name = '".mysql_real_escape_string(htmlspecialchars($add_it))."', ";
mysql_query("UPDATE photo_gallery SET $name in_gallery = $move_to_gallery WHERE user_id = ".sqlesc($user_id)." AND id = $image_id") or sqlerr(__FILE__, __LINE__);
} //=== end foreach

stderr("Sucess!", "<center>Images have been up-dated. Would you like to <br><br> ".
"<a class=altlink href=photo_gallery.php?my_gallery=1>view your gallerys</a> | <a class=altlink href=photo_gallery.php?public_gallerys=1>view all galleries</a> | ".
"<a class=altlink href=photo_gallery.php?manage_gallerys=1>manage gallerys</a> | <a class=altlink href=photo_gallery.php?upload=1>upload images</a>".
"".((get_user_class() >= UC_ADMINISTRATOR) ? " | <a class=altlink href=/photo_gallery.php?gallery_admin=1>gallery admin</a>" : "")." </center>");
die();
}//=== end edit multi

//=== Delete and edit images
if ($_GET["delete_or_edit"]){

if (!isset($_POST[delete_image]) && !isset($_POST[edit_image]))
stderr("Error", "Nothing selected go <a class=altlink href=\"java script: history.go(-1)\">back</a>.");
if (isset($_POST[delete_image]) && isset($_GET[edit_image]))
stderr("Error", "you can't both delete AND edit images! go <a class=altlink href=\"java script: history.go(-1)\">back</a> and make a decision!");

if ($_POST['edit_image']){

//=== make the page
stdhead("Edit image multi");
begin_table();
echo "<form method=post action=?multi_edit=1 enctype='multipart/form-data'><p><b>Edit Images</b></p>$page_links<br>\n".
"<table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead colspan=3>Photo Gallery multi edit</td></tr>\n";

$edit= $_POST['edit_image'];
foreach ($edit as $edit_id) {
//=======change colors
$count2= (++$count2)%2;
$class = 'clearalt'.($count2==0?'6':'7');

$res = mysql_query("SELECT * FROM photo_gallery WHERE id=".sqlesc($edit_id));
$arr = mysql_fetch_assoc($res);

$image = array_values(getimagesize("bitbucket/".htmlentities($arr['location']).""));
list($width, $height) = $image;
$image_size = "bitbucket/".htmlentities($arr_gal['location'])."";

$res_select = mysql_query("SELECT * FROM `my_gallerys` WHERE `user_id` =$arr[user_id]") or sqlerr(__FILE__, __LINE__);
$list_select = "";
if (!$res_select)
$list_select .= '<option value=0>no gallerys yet</option>';
else
while ($arr_select = mysql_fetch_assoc($res_select))
$list_select .= "<option value='$arr_select[id]' ".($arr["in_gallery"]==$arr_select["id"]?"selected='selected'> • • • keep in gallery:: ".$arr_select["gallery_name"]." • • •":"> • move to gallery:: ".$arr_select["gallery_name"]."")."</option>";

$our_image = htmlentities("/bitbucket/thumbs/$arr[location]");
echo"<tr><td class=$class align=center valign=middle width=120><img src=\"$our_image\"><br>".
"<br>$width x $height <br>[ ".mksize(filesize($image_size))." ]</td><td class=$class align=right valign=middle width=120>".
"<b>Image title:</b><br><br><b>move to gallery:</b></td><td class=$class align=left valign=middle> ".
"<input type=text name=\"image[]\" value=\"".htmlentities($arr['name'])."\" size=60><input type=hidden name=\"image_id[]\" value=\"$arr[id]\"><br><br>".
"<select name=\"move_to_gallery[]\">$list_select</select><br><input type=hidden name=user_id value=$arr[user_id]></td></tr>\n";
} //=== end for each
echo"<tr><td class=colhead align=center colspan=3><br><input type=submit value=\"update image info\" class=button></form><br></td></tr>";
end_table();
stdfoot();
die();
} //=== end edit images

if ($_POST['delete_image'])

$checked= $_POST['delete_image'];

foreach ($checked as $delete) {
//=== get file to delete
$res = mysql_query("SELECT location, user_id FROM photo_gallery WHERE id=".sqlesc($delete));
$arr = mysql_fetch_assoc($res);

if ($arr['user_id'] !== $CURUSER['id'] && get_user_class() < UC_MODERATOR)
stderr("Error", "This is not your image to delete!");

//=== delete image and thumb
$filepath_thumb = "./bitbucket/thumbs/$arr[location]";
$filepath = "./bitbucket/$arr[location]";
unlink($filepath);
unlink($filepath_thumb);

//=== remove other stuff
mysql_query ("DELETE FROM photo_gallery WHERE user_id = $arr[user_id] AND id=".sqlesc($delete));
mysql_query ("DELETE FROM image_ratings WHERE image_id=".sqlesc($delete));
mysql_query ("DELETE FROM comments WHERE photo_gallery=".(0 + $delete));
header("Location: ".$_SERVER['HTTP_REFERER']."&deleted=1");
}
}

//=== image info edit
if ($_GET['edit_image_info']){

$photo_id = isset($_GET['edit_image_info']) ? (int)$_GET['edit_image_info'] : 0;
if(!is_valid_id($photo_id))
stderr("Error", "Bad Id!");

$res_gal = mysql_query("SELECT * FROM photo_gallery WHERE id = $photo_id") or sqlerr(__FILE__, __LINE__);
$arr_gal = mysql_fetch_assoc($res_gal);

if ($arr_gal['user_id'] !== $CURUSER['id'] && get_user_class() < UC_MODERATOR)
stderr("Error", "This is not your image to edit!");

if (!$_GET['sure']){

$res_select = mysql_query("SELECT * FROM `my_gallerys` WHERE `user_id` =$arr_gal[user_id]") or sqlerr(__FILE__, __LINE__);
$list_select = "";
if (!$res_select)
$list_select .= '<option value=0>no gallerys yet</option>';
else
while ($arr_select = mysql_fetch_assoc($res_select))
$list_select .= "<option value='$arr_select[id]' ".($arr_gal["in_gallery"]==$arr_select["id"]?"selected='selected'> • • • keep in gallery:: ".$arr_select["gallery_name"]." • • •":"> • move to gallery:: ".$arr_select["gallery_name"]."")."</option>";

stdhead("Edit image info");
begin_table();

$image = array_values(getimagesize("bitbucket/$arr_gal[location]"));
list($width, $height) = $image;
$image_size = "bitbucket/$arr_gal[location]";

if ($width >= "400")
$show_image = "<img width=400 src=bitbucket/".htmlspecialchars($arr_gal['location'])." title=\"".htmlentities($arr_gal['name'])."\">";
else
$show_image = "<img src=bitbucket/".htmlspecialchars($arr_gal['location'])." title=\"".htmlentities($arr_gal['name'])."\">";

echo "$page_links<p><b>Edit image info</b></p>".($_GET["edited"] == '1' ? "<h1>Update successfull</h1>" : "")."".
"<form method=post action=?edit_image_info=$arr_gal[id]&sure=1 enctype='multipart/form-data'><table border=1 cellspacing=0 cellpadding=5 width=90%>".
"<tr><td class=colhead><b>Edit: $arr_gal[name]</b></td></tr><tr><td align=center valign=top class=clearalt6><b>added on: </b>$arr_gal[added]".
"<br><br>$show_image<br><br><b>Image title:</b> <input type=text name=name value=\"".htmlentities($arr_gal['name'])."\" size=60> ".
" <select class=select2 name=gallery>$list_select</select><br><br>".
"<b>file name:</b> ".htmlentities($arr_gal['location'])." <b>dimentions:</b> $width x $height | <b>file size: ".mksize(filesize($image_size))."</b><br>".
"<br>location: <a class=altlink href=$BASEURL/bitbucket/".htmlspecialchars($arr_gal['location'])."><b>$BASEURL/bitbucket/".htmlspecialchars($arr_gal['location'])."</b></a><br><br> ".
"</td></tr><tr><td class=clearalt6 align=center colspan=2><input type=submit value=\"Update Image Info\" class=button><br><br></td></tr></table></form><br><br>";

on_select_gallery_change();
end_table();
stdfoot();
die();
}
//=== make the changes
if($_POST['name'] == '')
stderr("Error", "This image must have a name! use your back button and fill in some text!");

$name = mysql_real_escape_string(htmlspecialchars($_POST["name"]));
$in_gallery = sqlesc(0 + $_POST['gallery']);

mysql_query("UPDATE photo_gallery SET name = '$name', in_gallery = $in_gallery WHERE user_id = ".sqlesc($arr_gal['user_id'])." AND id = $photo_id") or sqlerr(__FILE__, __LINE__);
header("Location: photo_gallery.php?info=$photo_id&edited=1");
}

//=== image info page
if ($_GET['info']){

$photo_id = isset($_GET['info']) ? (int)$_GET['info'] : 0;
if(!is_valid_id($photo_id))
stderr("Error", "Bad Id!");

$res_gal = mysql_query("SELECT p_g.*, m_g.gallery_name, u.username, u.id AS uid FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id LEFT JOIN users AS u ON u.id = p_g.user_id WHERE p_g.id = $photo_id") or sqlerr(__FILE__, __LINE__);
$arr_gal = mysql_fetch_assoc($res_gal);

?>
<script language="Javascript">
function insertAtCursor(myField, myValue)
{
if (document.selection)
{
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
else if (myField.selectionStart || myField.selectionStart == '0')
{
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
myField.focus();
}
else
{
myField.value += myValue;
}
}

function SmileIT(smile,form,text){

smile = " "+smile+" ";
insertAtCursor(document.forms[form].elements[text],smile);
document.forms[form].elements[text].focus();
}

function openTable(tableid) {
which = document.getElementById(tableid);
if (which.style.display == "block") {
which.style.display = "none";
}
else {
which.style.display = "block";
}
}

function PopupPic(sPicURL) {
window.open( "photo_popup.htm?"+sPicURL, "",
"resizable=1,HEIGHT=200,WIDTH=200");
}


/***********************************************
* Pop-it menu- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var defaultMenuWidth="180px" //set default menu width.

var linkset=new Array()
//SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT
linkset[0]='<p align=center><b>Rate Image!</b></p>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=10><img src="images/image_ratings/10.gif" alt="10 - tops"> 10</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=9><img src="images/image_ratings/9.gif" alt="9 out of 10"> 9</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=8><img src="images/image_ratings/8.gif" alt="8 out of 10"> 8</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=7><img src="images/image_ratings/7.gif" alt="7 out of 10"> 7</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=6><img src="images/image_ratings/6.gif" alt="6 out of 10"> 6</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=5><img src="images/image_ratings/5.gif" alt="5 out of 10"> 5</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=4><img src="images/image_ratings/4.gif" alt="4 out of 10"> 4</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=3><img src="images/image_ratings/3.gif" alt="3 out of 10"> 3</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=2><img src="images/image_ratings/2.gif" alt="2 out of 10"> 2</a>'
linkset[0]+='<a class=altlink href=?takerate=<?php echo $photo_id?>&rate_me=1><img src="images/image_ratings/1.gif" alt="1 - bad"> 1</a>'
////No need to edit beyond here

var ie5=document.all && !window.opera
var ns6=document.getElementById

if (ie5||ns6)
document.write('<div id="popitmenu" onMouseover="clearhidemenu();" onMouseout="dynamichide(event)"></div>')

function iecompattest(){
return (document.compatMode && document.compatMode.indexOf("CSS")!=-1)? document.documentElement : document.body
}

function showmenu(e, which, optWidth){
if (!document.all&&!document.getElementById)
return
clearhidemenu()
menuobj=ie5? document.all.popitmenu : document.getElementById("popitmenu")
menuobj.innerHTML=which
menuobj.style.width=(typeof optWidth!="undefined")? optWidth : defaultMenuWidth
menuobj.contentwidth=menuobj.offsetWidth
menuobj.contentheight=menuobj.offsetHeight
eventX=ie5? event.clientX : e.clientX
eventY=ie5? event.clientY : e.clientY
//Find out how close the mouse is to the corner of the window
var rightedge=ie5? iecompattest().clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie5? iecompattest().clientHeight-eventY : window.innerHeight-eventY
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX-menuobj.contentwidth+"px" : window.pageXOffset+eventX-menuobj.contentwidth+"px"
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+"px" : window.pageXOffset+eventX+"px"
//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.style.top=ie5? iecompattest().scrollTop+eventY-menuobj.contentheight+"px" : window.pageYOffset+eventY-menuobj.contentheight+"px"
else
menuobj.style.top=ie5? iecompattest().scrollTop+event.clientY+"px" : window.pageYOffset+eventY+"px"
menuobj.style.visibility="visible"
return false
}

function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function hidemenu(){
if (window.menuobj)
menuobj.style.visibility="hidden"
}

function dynamichide(e){
if (ie5&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}

function delayhidemenu(){
delayhide=setTimeout("hidemenu()",500)
}

function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}

if (ie5||ns6)
document.onclick=hidemenu
</script>
<?

//=== get image rating
if ($arr_gal["numratings"] != 0)
$rating = ROUND($arr_gal["ratingsum"] / $arr_gal["numratings"], 1);
$rpic = ratingpic_image($rating);

if ($rpic == '')
$rate_first = "<br>Rate Image:";
else
$rate_first = "<br>Rating:";

stdhead("Image Info");
begin_table();

$image = array_values(getimagesize("bitbucket/".htmlentities($arr_gal['location']).""));
list($width, $height) = $image;
$image_size = "bitbucket/".htmlentities($arr_gal['location'])."";
$pop_up_thingie = "bitbucket/".htmlentities($arr_gal['location']);

if ($width >= "500")
$show_image = "<a class=altlink href=\"java script:PopupPic('$pop_up_thingie')\">".
"<img width=500 src=bitbucket/".htmlspecialchars($arr_gal['location'])." title=\"click to open $arr_gal[name] full size in new window\"></a>".
"<span class=small><br><br>[ this image has been re-sized to fit this window. click the image to view full size ]</span>";
else
$show_image = "<a class=altlink href=\"java script:PopupPic('$pop_up_thingie')\">".
"<img src=bitbucket/".htmlspecialchars($arr_gal['location'])." title=\"".htmlentities($arr_gal['name'])." click to open in new window\"></a>";

echo "<p><b>Photo Gallery</b></p><p><b><a class=altlink href=userdetails.php?id=$arr_gal[uid]>$arr_gal[username]'s</a> Photo Gallery</b><br><br></p>$page_links<p><img src=/images/arrow_prev.gif>".
"<a class=altlink href=\"java script: history.go(-1)\">back to gallery</a></p>".
"".($_GET["edited"] == '1' ? "<h1>Update successfull</h1>" : "").($_GET["rated"] == '1' ? "<h1>Image rated</h1>" : "").($_GET["rate_changed"] == '1' ? "<h1>Image rating changed</h1>" : "")."".
"<form method=post action=?comment=$arr_gal[id] name=compose enctype='multipart/form-data'><table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead><b>".htmlentities($arr_gal['name'])."</b></td></tr>".
"<tr><td align=center valign=top class=clearalt6><b>added on: </b>$arr_gal[added] by: <a class=altlink href=userdetails.php?id=$arr_gal[user_id]>$arr_gal[username]</a>".
"$spacer".($arr_gal['user_id'] === $CURUSER['id'] || get_user_class() >= UC_MODERATOR ? "[ <a class=altlink href=?edit_image_info=$photo_id>edit</a>".
" ] [ <a class=altlink href=?delete=1>delete</a> ]" : "")."<br><br>$show_image<br><a class= altlink href=\"#\" onMouseover=\"showmenu(event,linkset[0])\" onMouseout=\"delayhidemenu()\"><b>$rate_first</b> $rpic</a> $spacer ".($arr_gal['numratings'] > 0 ? "[ $rating / 10 ]" : "$rating")."<br>".
"<br><b>title:</b> $arr_gal[name] | <b>file name:</b> $arr_gal[location] | <b>dimentions:</b> $width x $height | <b>file size:</b> ".mksize(filesize($image_size))."<br>".
"<br><b>in gallery:</b> ".(!$arr_gal['gallery_name'] ? " [ no gallery selected ]" : "".htmlentities($arr_gal['name'])."")." <br><br><b>image location:</b> <a class=altlink href=$BASEURL/bitbucket/".htmlentities($arr_gal['location'])."><b>$BASEURL/bitbucket/".htmlentities($arr_gal['location'])."</b></a><br><br> ".
"<a class=altlink href=\"#\" onclick=\"openTable('comments'); return false;\"><b>view comments</b></a> |".
"<a class=altlink href=\"#\" onclick=\"openTable('comment'); return false;\"><b>add a comment</b></a><br><br><table id=comment style=\"display: none;\" align=center><tr>".
"<td class=clear align=right valign=top width=25%><br><b>comment:</b></td><td class=clear align=left width=75%><br><textarea name=pic_comment cols=100 rows=3></textarea>".
"<br></td></tr><tr><td class=clear align=center></td><td class=clearalign=center>";
while ((list($code, $url) = each($smilies)) && $t<25) {
echo"<a href=\"java script: SmileIT('".str_replace("'","\'",$code)."','compose','pic_comment')\"><img src=/images/smilies/".$url."></a>";
$t++;
}
echo "<br><br></tr><tr><td class=clear align=center colspan=2><input type=submit value=\"add comment\" class=button><br></td></tr></table></form><br>".
"<table id=comments style=\"display: none;\" align=center>";

$res_gal = mysql_query("SELECT c.text, c.id, c.added AS c_added, c.editedby, c.ori_text, u.username, u.avatar, u.id AS uid FROM comments AS c LEFT JOIN users AS u ON u.id = c.user WHERE c.photo_gallery = $photo_id ORDER BY c.id DESC $limit") or sqlerr(__FILE__, __LINE__);

while ($arr_gal = mysql_fetch_assoc($res_gal)) {

$avatar = "";
$avatar = ($CURUSER["avatars"] == "yes" ? htmlspecialchars($arr_gal["avatar"]) : "");
if (!$avatar)
$avatar = "/images/default_avatar.gif";

$added = $arr_gal["c_added"] . " GMT (" . (get_elapsed_time(sql_timestamp_to_unix_timestamp($arr_gal["c_added"]))) . " ago)";

if ($arr_gal['editedby'] > 0){
$res2 = mysql_query("SELECT username FROM users WHERE id=$arr_gal[editedby]");
$arr2 = mysql_fetch_assoc($res2);
$edited = "<p><hr><font size=1 class=small>Last edited by <a href=userdetails.php?id=$arr_gal[editedby]><b>$arr2[username]</b></a> at $arr_gal[editedat] GMT</font></p>";
}

//=======change colors
$count2= (++$count2)%2;
$class = 'clearalt'.($count2==0?'6':'7');
echo"<tr><td class=colhead width=900 colspan=2><b>#$arr_gal[id]</b>$spacer by: <a class=altlink href=userdetails.php?id=$arr_gal[uid]>$arr_gal[username]</a>".
" $spacer at: $added $spacer$spacer ".($arr_gal['uid'] === $CURUSER['id'] || get_user_class() >= UC_MODERATOR ? "[ <a class=altlink href=?delete_comment=$arr_gal[id]&photo_id=$photo_id>delete</a> ] $spacer [ <a class=altlink href=?edit_comment=$arr_gal[id]&photo_id=$photo_id&sure=1>edit</a> ]" : "")."".
" ".(get_user_class() >= UC_MODERATOR && $arr_gal[editedby] > 0 ? "$spacer [ <a class=altlink href=\"#\" onclick=\"openTable('v_o'); return false;\">".
"view original</a> ]" : "")." $spacer [ <a class=altlink href=sendmessage.php?receiver=$arr_gal[uid]>pm</a> ]".
"</td></tr><tr><td class=$class width=80><img width=80 src=$avatar></td><td class=$class valign=top>".format_comment($arr_gal["text"])."$edited".
"<table id=v_o style=\"display: none;\" width=100%><tr><td><hr><font color=red>original comment:<hr></font>".format_comment($arr_gal["ori_text"])."</td></tr></table></td></tr>";
}
echo '</td></tr></table></td></tr></table>';
on_select_gallery_change();
end_table();
stdfoot();
die();
}

//=== other members gallery pages
if ($_GET['member_gallery']){
?>
<script language = "Javascript">
<!--

var form='all_my_gal'

function SetChecked(val,chkName) {
dml=document.forms[form];
len = dml.elements.length;
var i=0;
for( i=0; i<len; i++) {
if (dml.elements[i].name==chkName) {
dml.elements[i].checked=val;
}
}
}

// -->
</script>
<?
$member_id = sqlesc(0 + $_GET['member_gallery']);

//=== get friends
$res_pals = mysql_query("SELECT id FROM friends WHERE $CURUSER[id] = friendid AND $member_id = userid") or sqlerr();
$arr_pals = mysql_num_rows($res_pals);

if ($arr_pals > 0){
$where .= "WHERE p_g.user_id=$member_id AND m_g.share_gallery !='private'";
$res_gal = mysql_query("SELECT DISTINCT p_g.in_gallery, m_g.gallery_name, m_g.share_gallery FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id WHERE m_g.share_gallery != 'private' AND m_g.user_id = $member_id ORDER BY m_g.gallery_name") or sqlerr(__FILE__, __LINE__);
}
else {
$where .= "WHERE p_g.user_id=$member_id AND m_g.share_gallery !='private' AND m_g.share_gallery !='friends'";
$res_gal = mysql_query("SELECT DISTINCT p_g.in_gallery, m_g.gallery_name FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id WHERE m_g.share_gallery = 'public' AND m_g.user_id = $member_id ORDER BY m_g.gallery_name") or sqlerr(__FILE__, __LINE__);
}
while ($arr_gal = mysql_fetch_assoc($res_gal))
$gal_name .= "• <span class=small><a class=altlink href=?member_gallery=".(0 + $_GET['member_gallery'])."&gallery=$arr_gal[in_gallery]>".htmlentities($arr_gal['gallery_name'])."</a></span>".($arr_gal["share_gallery"] == 'friends' ? "<img src=/images/buddylist.gif title=\"Friends only gallery\">" : '')." </span>";

//=== if a gallery is selected...
if ($_GET["gallery"]){
$where .= "AND p_g.in_gallery =".sqlesc(( 0 + $_GET["gallery"]));
$get_gallery = "&gallery=".( 0 + $_GET["gallery"]);
}

$page = 0 + $_GET['page'];

$res = mysql_query("SELECT p_g.*, m_g.share_gallery, m_g.gallery_name FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id $where") or sqlerr(__FILE__, __LINE__);
$arr = mysql_num_rows($res);
$gallery_name = mysql_fetch_assoc($res);

$pages = floor($arr / $perpage);
if ($pages * $perpage < $arr)
++$pages;

if ($page < 1)
$page = 1;
else
if ($page > $pages)
$page = $pages;

for ($i = 1; $i <= $pages; ++$i)
if ($i == $page)
$pagemenu .= "<b>$i</b>\n";
else
$pagemenu .= "<a class=altlink href=?my_gallery=1$get_gallery&$q&page=$i><b>$i</b></a>\n";

if ($page == 1)
$browsemenu .= "<b><img src=$imgdir/arrow_prev.gif =alt=\"<<\"> Prev</b>";
else
$browsemenu .= "<a class=altlink href=?my_gallery=1$get_gallery&" . ($page - 1) . "><b><img src=$imgdir/arrow_prev.gif =alt=\"<<\"> Prev</b></a>";

$browsemenu .= "   $pagemenu   ";

if ($page == $pages)
$browsemenu .= "<b>Next <img src=$imgdir/arrow_next.gif =alt=\">>\"></b>";
else
$browsemenu .= "<a class=altlink href=?my_gallery=1$get_gallery&page=" . ($page + 1) . "><b>Next <img src=$imgdir/arrow_next.gif =alt=\">>\"></b></a>";

$offset = ($page * $perpage) - $perpage;

$res_name = mysql_query("SELECT username FROM users WHERE id=$member_id LIMIT 1") or sqlerr(__FILE__, __LINE__);
$arr_name = mysql_fetch_assoc($res_name);
$name = $arr_name['username'];

//=== make the page
stdhead("Photo Gallery");
begin_table();

echo "<p><b><a class=altlink href=userdetails.php?id=$member_id>$name's</a> Photo Gallery</b><br><br></p>$page_links".($_GET["deleted"] == '1' ? "<h1>Image deleted</h1>" : "").($_GET["rated"] == '1' ? "<h1>Image rated</h1>" : "")."".
"$browsemenu<br><p>$name's other galleries:: $gal_name</p><table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead colspan=$num_rows>Gallery :: ".htmlentities($gallery_name[gallery_name])." $spacer<span class=small>[ $arr images]</span></td></tr>".
"<form action=?delete_or_edit=1 method=post name=all_my_gal>";
$c2 = 0;
$c = 1;
$res_gal = mysql_query("SELECT p_g.*, m_g.share_gallery FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id $where LIMIT $offset,$perpage") or sqlerr(__FILE__, __LINE__);
while ($arr_gal = mysql_fetch_assoc($res_gal)) {
if ($c = $num_rows)
$c = 1;
if ($c2 % $num_rows==0)
echo'<tr>';

$image = array_values(getimagesize("bitbucket/".htmlentities($arr_gal['location']).""));
list($width, $height) = $image;
$image_size = "bitbucket/".htmlentities($arr_gal['location'])."";

//=== get image rating
if ($arr_gal["numratings"] != 0)
$rating = ROUND($arr_gal["ratingsum"] / $arr_gal["numratings"], 1);
$rpic = ratingpic_image($rating);
$test = ($c2 % $num_rows==0);
echo"<td align=center border=4 valign=bottom><a class=altlink href=?info=$arr_gal[id] title=\"Click for image details page\">".
"<img src=bitbucket/thumbs/".htmlentities($arr_gal['location'])."><br><br>".($arr_gal["numratings"] != 0 ? "rating: $rpic<br>" : "")."<b>".htmlentities($arr_gal['name'])."</a></b><br>".
"$width x $height [ ".mksize(filesize($image_size))." ]".
"<span class=small>".($CURUSER['id'] === $arr_gal['user_id'] || get_user_class() >= UC_MODERATOR ? "<br>[ <input type=checkbox name=\"edit_image[]\" value=$arr_gal[id]> edit ] ".
" [ <input type=checkbox name=\"delete_image[]\" value=$arr_gal[id] /> delete ]" : "")."</span>".
"<br><span class=small>added: $arr_gal[added]</span><br><br></td>";
$c2++;
$c++;
if ($c2 % $num_rows==0 && $c = $num_rows)
echo'</tr>';
}
if ($c < $num_rows){
while ($c < $num_rows){
echo '<td align=center valign=bottom></td>';
$c++;
}
echo '</tr>';
}

echo "<tr><td align=center class=clearalt6 colspan=$num_rows>".
"".($CURUSER['id'] === $arr_gal['user_id'] || get_user_class() >= UC_MODERATOR ? "<a class=altlink href=\"java script:SetChecked(1,'delete_image[]')\" onclick=\"java script:SetChecked(0,'edit_image[]')\">select all delete</a> - ".
"<a class=altlink href=\"java script:SetChecked(0,'delete_image[]')\">un-select all delete</a>$spacer $spacer".
"<a class=altlink href=\"java script:SetChecked(1,'edit_image[]')\" onclick=\"java script:SetChecked(0,'delete_image[]')\">select all edit</a> - ".
"<a class=altlink href=\"java script:SetChecked(0,'edit_image[]')\">un-select all edit</a>".
"<br><br><input class=button type=submit name=delete value=\"delete selected images\">$spacer $spacer".
"<input class=button type=submit name=edit value=\"edit selected images\"></form>" : "Gallery :: ".htmlentities($gallery_name['gallery_name'])." $spacer<span class=small>[ $arr images]</span>")."</td></tr><table><br>$browsemenu<br>";

on_select_gallery_change();
end_table();
stdfoot();
die();
}

//=== members gallery pages
if ($_GET['my_gallery']){

$where .= "WHERE p_g.user_id=".sqlesc($CURUSER['id']);
//=== if a gallery is selected...
if ($_GET["gallery"]){
$where .= " AND p_g.in_gallery =".sqlesc(( 0 + $_GET["gallery"]));
$get_gallery = "&gallery=".( 0 + $_GET["gallery"]);
}

$page = 0 + $_GET['page'];

$res = mysql_query("SELECT p_g.*, m_g.share_gallery, m_g.gallery_name FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id $where") or sqlerr(__FILE__, __LINE__);
$arr = mysql_num_rows($res);
$name = mysql_fetch_assoc($res);

$res_gal = mysql_query("SELECT DISTINCT p_g.in_gallery, m_g.gallery_name FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id WHERE m_g.user_id = $CURUSER[id] ORDER BY m_g.gallery_name") or sqlerr(__FILE__, __LINE__);
while ($arr_gal = mysql_fetch_assoc($res_gal))
$gal_name .= "• <span class=small><a class=altlink href=?my_gallery=$CURUSER[id]&gallery=$arr_gal[in_gallery]>".htmlentities($arr_gal['gallery_name'])."</a></span>".($arr_gal["share_gallery"] == 'friends' ? "<img src=/images/buddylist.gif title=\"Friends only gallery\">" : '')." </span>";


$pages = floor($arr / $perpage);
if ($pages * $perpage < $arr)
++$pages;

if ($page < 1)
$page = 1;
else
if ($page > $pages)
$page = $pages;

for ($i = 1; $i <= $pages; ++$i)
if ($i == $page)
$pagemenu .= "<b>$i</b>\n";
else
$pagemenu .= "<a class=altlink href=?my_gallery=1$get_gallery&$q&page=$i><b>$i</b></a>\n";

if ($page == 1)
$browsemenu .= "<b><img src=$imgdir/arrow_prev.gif =alt=\"<<\"> Prev</b>";
else
$browsemenu .= "<a class=altlink href=?my_gallery=1$get_gallery&" . ($page - 1) . "><b><img src=$imgdir/arrow_prev.gif =alt=\"<<\"> Prev</b></a>";

$browsemenu .= "   $pagemenu   ";

if ($page == $pages)
$browsemenu .= "<b>Next <img src=$imgdir/arrow_next.gif =alt=\">>\"></b>";
else
$browsemenu .= "<a class=altlink href=?my_gallery=1$get_gallery&page=" . ($page + 1) . "><b>Next <img src=$imgdir/arrow_next.gif =alt=\">>\"></b></a>";

$offset = ($page * $perpage) - $perpage;

//=== make the page
stdhead("Photo Gallery");
begin_table();

echo "<p><b><a class=altlink href=userdetails.php?id=$CURUSER[id]>$CURUSER[username]'s</a> Photo Gallery</b><br><br></p>$page_links".($_GET["deleted"] == '1' ? "<h1>Image deleted</h1>" : "").($_GET["rated"] == '1' ? "<h1>Image rated</h1>" : "").($_GET["edited"] == '1' ? "<h1>Image edited</h1>" : "")."".
"$browsemenu<br><br>my galleries: $gal_name<table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead colspan=$num_rows>".(!$_GET["gallery"] ? "My Gallerys " : "My Gallery :: ".htmlentities($name['gallery_name'])."")." $spacer<span class=small>[ $arr images]</span></td></tr>".
"<form action=?delete_or_edit=1 method=post name=all_my_gal>";
$c2 = 0;
$c = 1;
$res_gal = mysql_query("SELECT p_g.*, m_g.share_gallery FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id $where LIMIT $offset,$perpage") or sqlerr(__FILE__, __LINE__);
while ($arr_gal = mysql_fetch_assoc($res_gal)) {

if ($c = $num_rows)
$c = 1;
if ($c2 % $num_rows==0)
echo'<tr>';

$image = array_values(getimagesize("bitbucket/".htmlentities($arr_gal['location']).""));
list($width, $height) = $image;
$image_size = "bitbucket/".htmlentities($arr_gal['location'])."";

//=== get image rating
if ($arr_gal["numratings"] != 0)
$rating = ROUND($arr_gal["ratingsum"] / $arr_gal["numratings"], 1);
$rpic = ratingpic_image($rating);
$test = ($c2 % $num_rows==0);
echo"<td align=center border=4 valign=bottom><a class=altlink href=?info=$arr_gal[id] title=\"Click for image details page\">".
"<img src=bitbucket/thumbs/".htmlentities($arr_gal['location'])."><br><br>".($arr_gal["numratings"] != 0 ? "rating: $rpic<br>" : "")."<b>".htmlentities($arr_gal['name'])."</a></b><br>".
"$width x $height [ ".mksize(filesize($image_size))." ]".
"<span class=small>".($CURUSER['id'] === $arr_gal['user_id'] || get_user_class() >= UC_MODERATOR ? "<br>[ <input type=checkbox name=\"edit_image[]\" value=$arr_gal[id]> edit ] ".
" [ <input type=checkbox name=\"delete_image[]\" value=$arr_gal[id] /> delete ]" : "")."</span>".
"<br><span class=small>added: $arr_gal[added]</span><br><br></td>";
$c2++;
$c++;
if ($c2 % $num_rows==0 && $c = $num_rows)
echo'</tr>';
}
if ($c < $num_rows){
while ($c < $num_rows){
echo '<td align=center valign=bottom></td>';
$c++;
}
echo '</tr>';
}

echo "<tr><td align=center class=clearalt6 colspan=$num_rows><a class=altlink href=\"java script:SetChecked(1,'delete_image[]')\" onclick=\"java script:SetChecked(0,'edit_image[]')\">select all delete</a> - ".
"<a class=altlink href=\"java script:SetChecked(0,'delete_image[]')\">un-select all delete</a>$spacer $spacer".
"<a class=altlink href=\"java script:SetChecked(1,'edit_image[]')\" onclick=\"java script:SetChecked(0,'delete_image[]')\">select all edit</a> - ".
"<a class=altlink href=\"java script:SetChecked(0,'edit_image[]')\">un-select all edit</a>".
"<br><br><input class=button type=submit name=delete value=\"delete selected images\">$spacer $spacer".
"<input class=button type=submit name=edit value=\"edit selected images\"></form></td></tr><table><br>$browsemenu<br>";

on_select_gallery_change();
end_table();
stdfoot();
die();
}

//=== enter the images into the DB with user ID names and comments
if ($_GET['name_images']) {

$added = sqlesc(get_date_time());
$image= $_POST['image'];

foreach ($image as $key => $add_it) {

$location = $_POST['location'];
$pic_comment = $_POST['pic_comment'];
$add_to_gallery = $_POST['add_to_gallery'];

$name = mysql_real_escape_string(htmlspecialchars($add_it));
$location = sqlesc(str_replace(" ", "%20", htmlentities($location[$key])));
if ($pic_comment[$key] != '')
$pic_comment = sqlesc($pic_comment[$key]);
else
$no_comment = 1;
$add_to_gallery = sqlesc(0 + $add_to_gallery[$key]);

mysql_query("INSERT INTO photo_gallery (user_id, name, location, in_gallery, added) VALUES(".sqlesc($CURUSER["id"]).", '$name', $location, $add_to_gallery, $added)") or sqlerr(__FILE__, __LINE__);
$photo_gallery = mysql_insert_id();
if(!$no_comment)
mysql_query("INSERT INTO comments (user, text, photo_gallery, added) VALUES(".sqlesc($CURUSER["id"]).", $pic_comment, $photo_gallery, $added)") or sqlerr(__FILE__, __LINE__);
}
stderr("Sucess!", "<center>all images have been placed. Would you like to <br><br> ".
"<a class=altlink href=photo_gallery.php?my_gallery=1>view your gallerys</a> | <a class=altlink href=photo_gallery.php?public_gallerys=1>view all galleries</a> | ".
"<a class=altlink href=photo_gallery.php?manage_gallerys=1>manage gallerys</a> | <a class=altlink href=photo_gallery.php?upload=1>upload images</a>".
"".((get_user_class() >= UC_ADMINISTRATOR) ? " | <a class=altlink href=/photo_gallery.php?gallery_admin=1>gallery admin</a>" : "")." </center>");
}

//=== if post
if ($_SERVER["REQUEST_METHOD"] === "POST"){

if ($count >= $number_total)
stderr("Error", "You have reached the max number of images to upload. <br>Your total number of allowed images are ".
"<b>$number_total</b> and you have uploaded <b>$count</b>$page_links");

$image_count = 0;
$size_error_count = 0;
$file_exists_error_count = 0;
while(list($key,$value) = each($_FILES[images][name]))
{
if(!empty($value)){
$filename = htmlentities($value);
$add = "bitbucket/$filename";
$file_type = $_FILES[images][type][$key];

if (!($file_type =="image/jpeg" OR $file_type=="image/gif" OR $file_type=="image/png"))
stderr("Error", "Image MUST be in jpg, gif or png format.");

//=== get image size
$file_size = $_FILES[images][size][$key];
//=== error if file too big
if ($file_size > $max_file_size){
$size_error_count = + 1;
$size_error[] = array ('image' => $filename, 'size' => $file_size);
}
elseif (file_exists($add)){
$file_exists_error_count = + 1;
$file_exists_error[] = array ('image' => $filename);
}
else {
copy($_FILES[images][tmp_name][$key], $add);
chmod("$add",0777);

if($filename)
$image_count = (++$image_count);

//=== make thumbnails
$thumb_dir="bitbucket/thumbs/$filename";
//=== gif
if (@$file_type=="image/gif"){
$im=ImageCreateFromGIF($add);
$width=ImageSx($im);
$height=ImageSy($im);
//=== lets do some math :P
if ($height > 99 || $width > 99){
if ($height >= $width){
$thumb_height=100;
$thumb_width = ($thumb_height / $height * $width);
}
else {
$thumb_width=100;
$thumb_height = ($thumb_width / $width * $height);
}
}
else {
$thumb_width=$width;
$thumb_height =$height;
}
$newimage=imagecreatetruecolor($thumb_width,$thumb_height);
imageCopyResized($newimage,$im,0,0,0,0,$thumb_width,$thumb_height,$width,$height);

if (function_exists("imagegif"))
ImageGIF($newimage,$thumb_dir);
elseif (function_exists("imagejpeg"))
ImageJPEG($newimage,$thumb_dir);

chmod("$thumb_dir",0777);
}
//=== jpg
if($file_type=="image/jpeg"){
$im=ImageCreateFromJPEG($add);
$width=ImageSx($im);
$height=ImageSy($im);
//=== lets do some math :P
if ($height > 99 || $width > 99){
if ($height >= $width){
$thumb_height=100;
$thumb_width = ($thumb_height / $height * $width);
}
else {
$thumb_width=100;
$thumb_height = ($thumb_width / $width * $height);
}
}
else {
$thumb_width=$width;
$thumb_height =$height;
}
$newimage=imagecreatetruecolor($thumb_width,$thumb_height);
imageCopyResized($newimage,$im,0,0,0,0,$thumb_width,$thumb_height,$width,$height);
ImageJpeg($newimage,$thumb_dir);
chmod("$thumb_dir",0777);
}
//=== png
if (@$file_type=="image/png"){
$im=ImageCreateFrompng($add);
$width=ImageSx($im);
$height=ImageSy($im);
//=== lets do some math :P
if ($height > 99 || $width > 99){
if ($height >= $width){
$thumb_height=100;
$thumb_width = ($thumb_height / $height * $width);
}
else {
$thumb_width=100;
$thumb_height = ($thumb_width / $width * $height);
}
}
else {
$thumb_width=$width;
$thumb_height =$height;
}
$newimage=imagecreatetruecolor($thumb_width,$thumb_height);
imageCopyResized($newimage,$im,0,0,0,0,$thumb_width,$thumb_height,$width,$height);
ImagePNG($newimage,$thumb_dir);
chmod("$thumb_dir",0777);
}

}
}//=== end if image exists

//==== let's put all the info into an array, thanks Laffin! :P
if (!empty($value))
$image_info[] = array ( 'location' => $thumb_dir, 'image' => $filename, 'size' => $file_size, 'width' => $width, 'height' => $height);
}//=== end while

$res_select = mysql_query("SELECT * FROM `my_gallerys` WHERE `user_id` =$CURUSER[id]") or sqlerr(__FILE__, __LINE__);
$list_select = "";
while ($arr_select = mysql_fetch_assoc($res_select))
$list_select .= "<option value='$arr_select[id]'>".$arr_select["gallery_name"]."</option>";

if (mysql_num_rows($res_select) === 0){
$list_select = "";
mysql_query("INSERT INTO my_gallerys (user_id, gallery_name, share_gallery) VALUES(".sqlesc($CURUSER["id"]).", 'Default', 'public')") or sqlerr(__FILE__, __LINE__);
$gallery_id = mysql_insert_id();
$list_select .= "<option value=$gallery_id>Default</option>";
}

stdhead("Names and comments");
begin_table();
echo "<form method=post action=?name_images=1 enctype='multipart/form-data'><p><b>$SITENAME Photo Gallery</b></p>$page_links<br>".
"<table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead colspan=3>Photo Gallery upload</td></tr>";

if ($image_count > 0){
echo"<tr><td class=clearalt6 colspan=2 align=center><br>If you wish to give your images titles, or add comments to them, ".
"do it now. If not just click the add to gallery button below.<br></td></tr>";
$button = "<tr><td class=clearalt7 align=center colspan=2><input type=submit value=\"add to gallery\" class=button><br><br></td></tr>";
}

$count_image = count($image_info);
for ($i=0;$i<$count_image;$i++) {
$image_size = "<br>".mksize($image_info[$i]['size'])."<br> ".$image_info[$i]['width']." x ".$image_info[$i]['height'];
//=== set stuff for loop
if($image_info[$i]['width'] > 0)
echo"<tr><td class=clearalt7 align=center valign=middle width=120><img src=\"".htmlentities($image_info[$i]['location'])."\">$image_size</td><td class=clearalt7 align=left valign=middle>".
"<b>Add to gallery:</b> <select name=\"add_to_gallery[]\">$list_select</select>".
"<br><br><b>Image title:</b><br><input type=text name=\"image[]\" value=\"".htmlentities($image_info[$i]['image'])."\" size=60> [ default is the image name ]<br><br><b>Comment:</b><br>".
"<textarea name=\"pic_comment[]\" cols=80 rows=5></textarea> [ BBcode is ok ]<br><input type=hidden name=\"location[]\" value=\"".htmlentities($image_info[$i]['image'])."\"></td></tr>";
}

//=== file_exists_error
if ($file_exists_error_count > 0){
$file_exists_error_count = count($file_exists_error);
echo"<tr><td class=clearalt6 align=center valign=middle width=120><h1>File name<br> <img src=images/warned.gif> error! <img src=images/warned.gif></h1></td><td class=clearalt6 align=left valign=middle><br>".
"The following file".($file_exists_error_count > 1 ? "s were" : " was")." <b>not</b> uploaded!<br>";

for ($i=0;$i<$file_exists_error_count;$i++) {
echo "<br><b>".htmlentities($file_exists_error[$i]['image'])."</b>";
}
echo"".($file_exists_error_count > 1 ? "<br><br> Files with the same names exist on the server. Re-name the files and try again." : "<br><br> a file with that name exists on the server. Re-name the file and try again.")."<br><br><br></td></tr>";
}//=== end file exists error

//=== file too big error //== not totally tested...
if ($size_error_count > 0){
$size_error_count = count($size_error);
echo"<tr><td class=clearalt6 align=center valign=middle width=120><h1>File size<br> <img src=images/warned.gif> error! <img src=images/warned.gif></h1></td><td class=clearalt6 align=left valign=middle><br>".
"The following file".($size_error_count > 1 ? "s were" : " was")." <b>not</b> uploaded!<br>";

for ($i=0;$i<$size_error_count;$i++) {
echo "<br><b>".htmlentities($size_error[$i]['image'])."</b> size was <b>".mksize($size_error[$i]['size'])."</b>";
}
echo"<br><br>Maximum file size is:<b> ".mksize($max_file_size).".</b><br><br><br></td></tr>";
}//=== end file too big error

echo $button;

echo'</table></form>';
on_select_gallery_change();
end_table();
stdfoot();
die();
}//=== end if $_POST

if ($_GET['upload']){
//=== the upload page
stdhead("Photo Gallery upload");
begin_table();

echo "<form method=post action=".$_SERVER['PHP_SELF']." enctype='multipart/form-data'><p><b>$SITENAME Photo Gallery</b>$page_links<br>".
"<table border=1 cellspacing=0 cellpadding=5 width=90%><tr><td class=colhead colspan=2>Photo Gallery upload</td></tr><tr><td class=clearalt6 colspan=2 align=center>".
"<br>".($number_total == 0 ? "<p>Sorry, you do not have access to this feature</p><br><br></td></tr>" : "<p>The maximum file size to upload is: <b>".mksize($max_file_size).".</b> [ per file ]<br>".
"<br>Allowed formats are <b>.jpg .gif .png</b><br><br>As a <b>".get_user_class_name($CURUSER['class'])."</b> you may upload up to <b>$number_of_pics</b> images at a time. ".
"<br>You may also have up to <b>$number_total</b> images in the gallery.<br>Currently you have <b>$count</b> images in the gallery.<br><br>Before uploading anything please read the <a class=altlink href=/rules.php><b>Rules</b>".
"</a> and <a class=altlink href=/faq.php><b>FAQ</b></a></p><br></td></tr>")."";
for($i=1; $i<=$number_of_pics; $i++){
echo "<tr><td class=clearalt6 align=right><b>Upload photo $i:</b></td><td class=clearalt6 align=left>
<input type=file name='images[]' size=60></td></tr>";
}

echo "<tr><td colspan=2 align=center class=clearalt6><input type=submit value=Upload class=button></td></tr>".
"</form></table><p><table class=main width=410 border=0 cellspacing=0 cellpadding=0><tr><td class=embedded>".
"<font class=small><b>Disclaimer:</b> Do not upload unauthorized or illegal pictures. Please see the ".
"<a class=altlink href=/faq.php><b>FAQ</b></a> for details.</font></td></tr></table>";
on_select_gallery_change();
end_table();
stdfoot();
die();
}

//=== list public galleries
$search = trim($HTTP_GET_VARS['search']);

if ($search = '*')
{
$query = "u.status='confirmed' AND p_g.user_id > '0'";

if ($search)
$q = "search=" . htmlspecialchars($search);
}
elseif ($_GET["letter"])
{
$letter = trim($_GET["letter"]);
if (strlen($letter) > 1)
die;

if ($letter == "" || strpos("abcdefghijklmnopqrstuvwxyz", $letter) === false)
$letter = "a";
$query = "username LIKE '$letter%' AND u.status='confirmed' AND p_g.user_id > '0'";
$q = "letter=$letter";
}
else
{
$query = "u.username LIKE " . sqlesc("%$search%") . " AND u.status='confirmed' AND p_g.user_id > '0'";

if ($search)
$q = "search=" . htmlspecialchars($search);
}

stdhead("Members public galleries");

echo("<h1>Members public galleries</h1>$page_links<form method=get action=?>\n".
"<b>Search:</b> <input type=text size=30 name=search>\n".
"<input class=button type=submit value='Search!'></form><p>\n");

for ($i = 97; $i < 123; ++$i){
$l = chr($i);
$L = chr($i - 32);
if ($l == $letter)
echo("<b>$L</b>\n");
else
echo("<a href=?letter=$l><b>$L</b></a>\n");
}

echo("</p>\n");

$page = 0 + $_GET['page'];

$res = mysql_query("SELECT DISTINCT u.id AS uid FROM users AS u LEFT JOIN photo_gallery AS p_g ON u.id = p_g.user_id WHERE $query");
$arr = mysql_num_rows($res);
$pages = floor($arr / $perpage);
if ($pages * $perpage < $arr)
++$pages;

if ($page < 1)
$page = 1;
else
if ($page > $pages)
$page = $pages;

for ($i = 1; $i <= $pages; ++$i)
if ($i == $page)
$pagemenu .= "<b>$i</b>\n";
else
$pagemenu .= "<a class=altlink href=?$q&page=$i><b>$i</b></a>\n";

if ($page == 1)
$browsemenu .= "<b><img src=$imgdir/arrow_prev.gif =alt=\"<<\"> Prev</b>";
else
$browsemenu .= "<a class=altlink href=?$q&page=" . ($page - 1) . "><b><img src=$imgdir/arrow_prev.gif =alt=\"<<\"> Prev</b></a>";

$browsemenu .= "   $pagemenu   ";

if ($page == $pages)
$browsemenu .= "<b>Next <img src=$imgdir/arrow_next.gif =alt=\">>\"></b>";
else
$browsemenu .= "<a class=altlink href=?$q&page=" . ($page + 1) . "><b>Next <img src=$imgdir/arrow_next.gif =alt=\">>\"></b></a>";

$offset = ($page * $perpage) - $perpage;

$res = mysql_query("SELECT DISTINCT u.id AS uid, u.username, u.donated, u.added, u.last_access, u.class, u.country, u.avatar FROM users AS u LEFT JOIN photo_gallery AS p_g ON u.id = p_g.user_id WHERE $query ORDER BY username LIMIT $offset,$perpage") or sqlerr(__FILE__, __LINE__);
$num = mysql_num_rows($res);

if($num > 0){
echo("<p>$browsemenu</p>");
echo("<table border=1 cellspacing=0 cellpadding=5>\n".
"<tr><td class=colhead></td><td class=colhead align=left>Member name</td><td class=colhead align=left>Gallerys</td><td class=colhead>Registered</td>".
"<td class=colhead>Last access</td><td class=colhead align=left>Class</td><td class=colhead>Country</td></tr>\n");
for ($i = 0; $i < $num; ++$i){
$count= (++$count)%2;
$class = 'clearalt'.($count==0?'6':'7');

$arr = mysql_fetch_assoc($res);

//=== get friends
$res_pals = mysql_query("SELECT id FROM friends WHERE $CURUSER[id] = friendid AND $arr[uid] = userid") or sqlerr(__FILE__, __LINE__);
$arr_pals = mysql_num_rows($res_pals);

if ($arr_pals > 0)
$res_gal = mysql_query("SELECT DISTINCT p_g.in_gallery, m_g.gallery_name, m_g.share_gallery FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id WHERE m_g.share_gallery != 'private' AND m_g.user_id = $arr[uid] ORDER BY m_g.gallery_name") or sqlerr(__FILE__, __LINE__);
else
$res_gal = mysql_query("SELECT DISTINCT p_g.in_gallery, m_g.gallery_name FROM photo_gallery AS p_g LEFT JOIN my_gallerys AS m_g ON p_g.in_gallery = m_g.id WHERE m_g.share_gallery = 'public' AND m_g.user_id = $arr[uid] ORDER BY m_g.gallery_name") or sqlerr(__FILE__, __LINE__);
while ($arr_gal = mysql_fetch_assoc($res_gal)){
$avatar = htmlspecialchars($arr['avatar']);
if (!$avatar)
$avatar = 'images/default_avatar.gif';
//=== hide offencive avatars
//if ($arr['offensive_avatar']==='yes' && $CURUSER['view_offensive_avatar'] === 'no')
//$avatar = 'images/fuzzybunny.gif';

$gal_name .= "• <span class=small><a class=altlink href=?member_gallery=$arr[uid]&gallery=$arr_gal[in_gallery]>".htmlentities($arr_gal['gallery_name'])."</a></span>".($arr_gal["share_gallery"] == 'friends' ? "<img src=/images/buddylist.gif title=\"Friends only gallery\">" : '')."<br>";
}

if ($arr['country'] > 0){
$cres = mysql_query("SELECT name,flagpic FROM countries WHERE id=$arr[country]");
if (mysql_num_rows($cres) == 1){
$carr = mysql_fetch_assoc($cres);
$country = "<td style='padding: 0px' align=center class=$class><img src=images/flag/$carr[flagpic] alt=\"$carr[name]\"></td>";
}
}
else
$country = "<td align=center class=$class>---</td>";
if ($arr['added'] == '0000-00-00 00:00:00')
$arr['added'] = '-';
if ($arr['last_access'] == '0000-00-00 00:00:00')
$arr['last_access'] = '-';
echo("<tr><td class=$class><img src=$avatar width=30></td><td align=left class=$class><a class=altlink href=userdetails.php?id=$arr[uid]><b>$arr[username]</b></a>" .($arr["donated"] > 0 ? "<img src=$imgdir/star.gif border=0 alt='Donor'>" : "")."</td>" .
"<td class=$class>$gal_name</td><td class=$class>$arr[added]</td><td class=$class>$arr[last_access]</td>".
"<td align=left class=$class>" . get_user_class_name($arr["class"]) . "</td>$country</tr>\n");
$gal_name = '';
}
echo("</table>\n");

echo("<p>$browsemenu</p>");
}
else
echo '<p>nothing found. select a letter or enter a username.</p>';

stdfoot();
die;
?>

and the pop-up window...
photo_popup.htm
CODE
<HTML>
<HEAD>
<TITLE>Gallery Image</TITLE>
<script language='javascript'>
var arrTemp=self.location.href.split("?");
var picUrl = (arrTemp.length>0)?arrTemp[1]:"";
var NS = (navigator.appName=="Netscape")?true:false;

function FitPic() {
iWidth = (NS)?window.innerWidth:document.body.clientWidth;
iHeight = (NS)?window.innerHeight:document.body.clientHeight;
iWidth = document.images[0].width - iWidth;
iHeight = document.images[0].height - iHeight;
window.resizeBy(iWidth, iHeight);
self.focus();
};
</script>
</HEAD>
<BODY bgcolor="#000000" onload='FitPic();' topmargin="0"
marginheight="0" leftmargin="0" marginwidth="0">
<script language='javascript'>
document.write( "<img src='" + picUrl + "' border=0>" );
</script>
</BODY>
</HTML>


and that nifty javascript thing... you need to make a folder called javascripts/ and put the following in that folder...

cleartext.js
CODE
/*
* Cross-browser event handling, by Scott Andrew
*/
function addEvent(element, eventType, lamdaFunction, useCapture) {
if (element.addEventListener) {
element.addEventListener(eventType, lamdaFunction, useCapture);
return true;
} else if (element.attachEvent) {
var r = element.attachEvent('on' + eventType, lamdaFunction);
return r;
} else {
return false;
}
}

/*
* Kills an event's propagation and default action
*/
function knackerEvent(eventObject) {
if (eventObject && eventObject.stopPropagation) {
eventObject.stopPropagation();
}
if (window.event && window.event.cancelBubble ) {
window.event.cancelBubble = true;
}

if (eventObject && eventObject.preventDefault) {
eventObject.preventDefault();
}
if (window.event) {
window.event.returnValue = false;
}
}

/*
* Safari doesn't support canceling events in the standard way, so we must
* hard-code a return of false for it to work.
*/
function cancelEventSafari() {
return false;
}

/*
* Cross-browser style extraction, from the JavaScript & DHTML Cookbook
* <http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html>
*/
function getElementStyle(elementID, CssStyleProperty) {
var element = document.getElementById(elementID);
if (element.currentStyle) {
return element.currentStyle[toCamelCase(CssStyleProperty)];
} else if (window.getComputedStyle) {
var compStyle = window.getComputedStyle(element, '');
return compStyle.getPropertyValue(CssStyleProperty);
} else {
return '';
}
}

/*
* CamelCases CSS property names. Useful in conjunction with 'getElementStyle()'
* From <http://dhtmlkitchen.com/learn/js/setstyle/index4.jsp>
*/
function toCamelCase(CssProperty) {
var stringArray = CssProperty.toLowerCase().split('-');
if (stringArray.length == 1) {
return stringArray[0];
}
var ret = (CssProperty.indexOf("-") == 0)
? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1)
: stringArray[0];
for (var i = 1; i < stringArray.length; i++) {
var s = stringArray[i];
ret += s.charAt(0).toUpperCase() + s.substring(1);
}
return ret;
}

/*
* Disables all 'test' links, that point to the href '#', by Ross Shannon
*/
function disableTestLinks() {
var pageLinks = document.getElementsByTagName('a');
for (var i=0; i<pageLinks.length; i++) {
if (pageLinks[i].href.match(/[^#]#$/)) {
addEvent(pageLinks[i], 'click', knackerEvent, false);
}
}
}

/*
* Cookie functions
*/
function createCookie(name, value, days) {
var expires = '';
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = '; expires=' + date.toGMTString();
}
document.cookie = name + '=' + value + expires + '; path=/';
}

function readCookie(name) {
var cookieCrumbs = document.cookie.split(';');
var nameToFind = name + '=';
for (var i = 0; i < cookieCrumbs.length; i++) {
var crumb = cookieCrumbs[i];
while (crumb.charAt(0) == ' ') {
crumb = crumb.substring(1, crumb.length); /* delete spaces */
}
if (crumb.indexOf(nameToFind) == 0) {
return crumb.substring(nameToFind.length, crumb.length);
}
}
return null;
}

function eraseCookie(name) {
createCookie(name, '', -1);
}

/*
* Clear Default Text: functions for clearing and replacing default text in
* <input> elements.
*
* by Ross Shannon, http://www.yourhtmlsource.com/
*/

addEvent(window, 'load', init, false);

function init() {
var formInputs = document.getElementsByTagName('input');
for (var i = 0; i < formInputs.length; i++) {
var theInput = formInputs[i];

if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/)) {
/* Add event handlers */
addEvent(theInput, 'focus', clearDefaultText, false);
addEvent(theInput, 'blur', replaceDefaultText, false);

/* Save the current value */
if (theInput.value != '') {
theInput.defaultText = theInput.value;
}
}
}
}

function clearDefaultText(e) {
var target = window.event ? window.event.srcElement : e ? e.target : null;
if (!target) return;

if (target.value == target.defaultText) {
target.value = '';
}
}

function replaceDefaultText(e) {
var target = window.event ? window.event.srcElement : e ? e.target : null;
if (!target) return;

if (target.value == '' && target.defaultText) {
target.value = target.defaultText;
}
}

be wary of the board borking code...

now you need some folders...
bitbucket/thumbs/
and set permissions to 777 for both... I'll post a nifty htaccess script to not let other sites hotlink to the gallery 

also, you need to add a folder in your pic folder:
/pic/image_ratings/
and put the attached rating pics in it
Reply With Quote
  #2  
Old 14th April 2012, 19:49
moon's Avatar
moon moon is offline
Senior Member
 
Join Date: Feb 2008
P2P
Posts: 18
Default
This mod was already done.
Try on xbtit forum (hacks-gallery)
It's free
:hello:
Reply With Quote
Reply

Tags
make , work , xbtit


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



All times are GMT +2. The time now is 11:42. vBulletin skin by ForumMonkeys. Powered by vBulletin® Version 3.8.11 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions Inc.