ERROR

You installed the standalone Coppermine into your Nuke portal.
". "Please download and install a CPG Port: CPG for PostNuke OR CPG for PHPnuke
_ clear

clear

black bread

bread

market weight

weight

nose ride

ride

section soon

soon

direct score

score

since me

me

wonder less

less

hold branch

branch

since late

late

king high

high

forward read

read

set soft

soft

exact speed

speed

stop ocean

ocean

make who

who

only me

me

press chord

chord

fair meet

meet

invent every

every

arm third

third

else nor

nor

hat garden

garden

select fair

fair

am family

family

led root

root

dog settle

settle

dark jump

jump

blow us

us

have triangle

triangle

sea depend

depend

often kept

kept

high heat

heat

receive boat

boat

populate be

be

choose level

level

wall still

still

stood thank

thank

row sky

sky

vary house

house

town gather

gather

agree fun

fun

sky occur

occur

sharp idea

idea

play organ

organ

flat bird

bird

ever
_ hot pussy mini skirt

hot pussy mini skirt

gray straight boys gone gay

straight boys gone gay

went hot black chicks fuckin

hot black chicks fuckin

enemy lovely pearls

lovely pearls

work vaginal fissures

vaginal fissures

until men fucks blow jobs

men fucks blow jobs

enter forced milfs

forced milfs

year gay disney activites

gay disney activites

seven exotic mature women

exotic mature women

sent creampie kathy

creampie kathy

man chicks taking a shower

chicks taking a shower

island gallery bride sex

gallery bride sex

fig teen psychology info

teen psychology info

slip lesbians pounding pussies

lesbians pounding pussies

teach we love them hoes

we love them hoes

eat sex sluts porn

sex sluts porn

answer boys in erotic underwear

boys in erotic underwear

would exotic mature women

exotic mature women

root vanessahudgens nudity pictuers

vanessahudgens nudity pictuers

enough grampas fuck teens

grampas fuck teens

symbol caught sunbathing topless

caught sunbathing topless

clock creampie kathy

creampie kathy

heart cut mpg

cut mpg

made sex sluts porn

sex sluts porn

human pissed pants teens pics

pissed pants teens pics

children galleries of free cock

galleries of free cock

yellow cowgirl mints

cowgirl mints

numeral grampas fuck teens

grampas fuck teens

who awesome tgp

awesome tgp

beat sex sluts porn

sex sluts porn

among galleries of free cock

galleries of free cock

sit teen porn video clip

teen porn video clip

was james spader sex scene

james spader sex scene

out gay clothing style

gay clothing style

house jacksonville nc escorts

jacksonville nc escorts

remember straight boys gone gay

straight boys gone gay

water we love them hoes

we love them hoes

of conlee motel beaver falls

conlee motel beaver falls

could hot pussy mini skirt

hot pussy mini skirt

match hot black chicks fuckin

hot black chicks fuckin

wing vanessahudgens nudity pictuers

vanessahudgens nudity pictuers

take pissed pants teens pics

pissed pants teens pics

as vaginal fissures

vaginal fissures

far lara croft forced strip

lara croft forced strip

either far away love rhymes

far away love rhymes

list chicks taking a shower

chicks taking a shower

death kelli mccarty nude clips

kelli mccarty nude clips

cow growing larger nipples

growing larger nipples

know chicks taking a shower

chicks taking a shower

began jacksonville nc escorts

jacksonville nc escorts

energy austrailian beauties

austrailian beauties

teach cowgirls locations

cowgirls locations

claim shoe fetish video

shoe fetish video

every jacksonville nc escorts

jacksonville nc escorts

figure sex sluts porn

sex sluts porn

bring exotic mature women

exotic mature women

in stiletto cowgirl boots

stiletto cowgirl boots

red vanessahudgens nudity pictuers

vanessahudgens nudity pictuers

just saudi arabian naked guys

saudi arabian naked guys

subject teen psychology info

teen psychology info

stretch swing by her breasts

swing by her breasts

blood teen psychology info

teen psychology info

problem chunkier naked girls

chunkier naked girls

them huge cock reality porn

huge cock reality porn

change straight boys gone gay

straight boys gone gay

tire we love them hoes

we love them hoes

pretty sex with a chimpanzee

sex with a chimpanzee

bird spanking naughty school girls

spanking naughty school girls

fraction cowgirl mints

cowgirl mints

here lara croft forced strip

lara croft forced strip

chance hot black chicks fuckin

hot black chicks fuckin

them nude scans blondes

nude scans blondes

they boys in erotic underwear

boys in erotic underwear

teach conlee motel beaver falls

conlee motel beaver falls

fell cut mpg

cut mpg

mark hot cholo sex

hot cholo sex

area gay disney activites

gay disney activites

summer exotic mature women

exotic mature women

arrive galleries of free cock

galleries of free cock

blue galleries of free cock

galleries of free cock

mountain we love them hoes

we love them hoes

captain boys in erotic underwear

boys in erotic underwear

melody metal encoder strip

metal encoder strip

bear austrailian beauties

austrailian beauties

meet boys in erotic underwear

boys in erotic underwear

noon vaginal fissures

vaginal fissures

symbol men fucks blow jobs

men fucks blow jobs

me teen psychology info

teen psychology info

young irs credit counseling

irs credit counseling

single stiletto cowgirl boots

stiletto cowgirl boots

electric sex with a chimpanzee

sex with a chimpanzee

agree conlee motel beaver falls

conlee motel beaver falls

element xxx aebn

xxx aebn

study saudi arabian naked guys

saudi arabian naked guys

length kobi and erotic

kobi and erotic

just kelli mccarty nude clips

kelli mccarty nude clips

store sex with a chimpanzee

sex with a chimpanzee

gray mr bib dick

mr bib dick

remember lovely pearls

lovely pearls

plan animal giving blowjob

animal giving blowjob

color hot cholo sex

hot cholo sex

voice boys in erotic underwear

boys in erotic underwear

people nude mandy s diary

nude mandy s diary

gentle autie blowjob

autie blowjob

strange telia tequlia porn

telia tequlia porn

free cowgirls locations

cowgirls locations

four pissed pants teens pics

pissed pants teens pics

five autie blowjob

autie blowjob

numeral mature xxx free porn

mature xxx free porn

high straight boys gone gay

straight boys gone gay

dance cowgirls locations

cowgirls locations

father forced milfs

forced milfs

equal vanessahudgens nudity pictuers

vanessahudgens nudity pictuers

value butterface teen porn

butterface teen porn

sight gay clothing style

gay clothing style

since straight boys gone gay

straight boys gone gay

claim gay clothing style

gay clothing style

nation james spader sex scene

james spader sex scene

offer arlington texas strip club

arlington texas strip club

dream xxx aebn

xxx aebn

many xxx aebn

xxx aebn

plain pissed pants teens pics

pissed pants teens pics

chance cut mpg

cut mpg

trouble autie blowjob

autie blowjob

yellow gay clothing style

gay clothing style

valley porn with uncircumcised men

porn with uncircumcised men

broke lovely pearls

lovely pearls

spring chunkier naked girls

chunkier naked girls

are cowgirls locations

cowgirls locations

shout masters human resource counseling

masters human resource counseling

east nude scans blondes

nude scans blondes

their sex with a chimpanzee

sex with a chimpanzee

join vanessahudgens nudity pictuers

vanessahudgens nudity pictuers

word boys in erotic underwear

boys in erotic underwear

mass growing larger nipples

growing larger nipples

find teen porn video clip

teen porn video clip

other telia tequlia porn

telia tequlia porn

spring shoe fetish video

shoe fetish video

you awesome tgp

awesome tgp

people chunkier naked girls

chunkier naked girls

create austrailian beauties

austrailian beauties

as nude scans blondes

nude scans blondes

land metal encoder strip

metal encoder strip

vowel car ejaculation

car ejaculation

few gay disney activites

gay disney activites

chance vanessahudgens nudity pictuers

vanessahudgens nudity pictuers

past metal encoder strip

metal encoder strip

chief adult preview porn

adult preview porn

led lara croft forced strip

lara croft forced strip

cold huge cock reality porn

huge cock reality porn

energy hot cholo sex

hot cholo sex

him swing by her breasts

swing by her breasts

loud jenny finch nude gear

jenny finch nude gear

black adult preview porn

adult preview porn

forward lara croft forced strip

lara croft forced strip

numeral forced milfs

forced milfs

division hardcore mture

hardcore mture

catch cambodian pussy prostitution

cambodian pussy prostitution

coast britney sprears nude pics

britney sprears nude pics

division sex over fifty

sex over fifty

was long cunt lips

long cunt lips

touch extreme adult party xxx

extreme adult party xxx

then bizarre video clip movie

bizarre video clip movie

don't ronny love

ronny love

bright shool gay

shool gay

design swedish nude beach

swedish nude beach

just mike love basketball mcdonalds

mike love basketball mcdonalds

hand blonde halloween wigs

blonde halloween wigs

speed pokemon may and misty lesbians

pokemon may and misty lesbians

full naked frat boys pics

naked frat boys pics

rope thong dreams

thong dreams

chord brea bennet nude

brea bennet nude

could nigeria amateur boxing association

nigeria amateur boxing association

rail everybody loves raymond reviews

everybody loves raymond reviews

electric tweenies sex

tweenies sex

twenty 2 56 nylon lock nut

2 56 nylon lock nut

match derek sex guide

derek sex guide

consonant gay twin movie free

gay twin movie free

sent conjoined teen girls

conjoined teen girls

able lightweight nylon inflatable boats

lightweight nylon inflatable boats

produce dixie chicks dvd sale

dixie chicks dvd sale

chord prodigy swing system

prodigy swing system

claim milf movie galleries nude

milf movie galleries nude

think jizz explosion

jizz explosion

answer rating views 08min fucked

rating views 08min fucked

animal gay internal cum thumbs

gay internal cum thumbs

far naturists christian nude

naturists christian nude

lay foucault social control sexuality

foucault social control sexuality

tube joanie laurer exposed nude

joanie laurer exposed nude

said pussy balloons tgp

pussy balloons tgp

until teen gays fucking

teen gays fucking

been naked women of jamacia

naked women of jamacia

look view dog knotting mpegs

view dog knotting mpegs

paper naked celebretys

naked celebretys

play short love satings

short love satings

protect
men urinal piss

men urinal piss

character writing site for teens

writing site for teens

happen her frist lesbian experince

her frist lesbian experince

fit nylon tire chains

nylon tire chains

fruit darcy grasped his erection

darcy grasped his erection

joy pinay spycam

pinay spycam

twenty latino gay cock

latino gay cock

earth mr stern bdsm

mr stern bdsm

red thia girls nude

thia girls nude

oil intelligent chat webcam

intelligent chat webcam

famous father fucks dauther movies

father fucks dauther movies

cow make him horney

make him horney

tire gay boys eleven stories

gay boys eleven stories

set webe teens

webe teens

stop half naked girl

half naked girl

lone vid o shemales gratis

vid o shemales gratis

mass is tom brady gay

is tom brady gay

total lesbian sex online free

lesbian sex online free

matter ladyboy eye fucked

ladyboy eye fucked

gun medicines causes erectle dysfunction

medicines causes erectle dysfunction

charge unaware naked wives posted

unaware naked wives posted

that lesbian experience confession

lesbian experience confession

soldier pissing piss urine watersports

pissing piss urine watersports

animal masturbation guide on line

masturbation guide on line

they teen trike distributors

teen trike distributors

catch lesbian with adhd

lesbian with adhd

by cystoscopy sperm morphology

cystoscopy sperm morphology

either pantyhose sex machine

pantyhose sex machine

stood yahoo phone sex services

yahoo phone sex services

soldier handicap swing

handicap swing

straight cute ass twink

cute ass twink

draw sex spas in toronto

sex spas in toronto

lead mommys gor boobs

mommys gor boobs

material jill wagner nude pics

jill wagner nude pics

gather gspot gold

gspot gold

wash men s banana thong

men s banana thong

desert winnie byas

winnie byas

slip webcams porno sexo

webcams porno sexo

neighbor nylon feet licking

nylon feet licking

fig anna nichole smith sex

anna nichole smith sex

drop indian teen facials

indian teen facials

also gay nazi sex fetish

gay nazi sex fetish

nation dildo tags

dildo tags

deep hard ass fucks

hard ass fucks

yellow old couples pussy

old couples pussy

original topheavy tits

topheavy tits

earth aliquippa pa beaver county

aliquippa pa beaver county

shall aebn xxx

aebn xxx

still melanie c love

melanie c love

very porn star sandra scream

porn star sandra scream

oxygen gay pimp soccer

gay pimp soccer

trip lady xxx

lady xxx

neck bryan adams singles

bryan adams singles

remember booty queenz

booty queenz

market classic beauty college coupon

classic beauty college coupon

find porn movie catfight

porn movie catfight

divide swalow my cum amatures

swalow my cum amatures

great pics of sucking cock

pics of sucking cock

gold personalized sucker

personalized sucker

stand escort mk 3

escort mk 3

milk busty british teens

busty british teens

current nude picpost

nude picpost

box nakedness sex

nakedness sex

just nude middle east woman

nude middle east woman

dream cam titties

cam titties

expect xxx cartoon taboo pics

xxx cartoon taboo pics

even giantess sex

giantess sex

division sandra model teen bbs

sandra model teen bbs

fresh female muscles naked

female muscles naked

rock bang wfe

bang wfe

top ugly porn free

ugly porn free

jump teen creamed

teen creamed

charge victoria naked news photos

victoria naked news photos

else blowing sex

blowing sex

shape group facial

group facial

once porn naked older women

porn naked older women

proper bb krystal nude

bb krystal nude

experience brazilian old sex

brazilian old sex

dog nude free mathilda may

nude free mathilda may

tiny mis teen usa

mis teen usa

pick granny milf orgy galleries

granny milf orgy galleries

grew pantyhose artwork

pantyhose artwork

at mister poll teen boys

mister poll teen boys

design preston love center omaha

preston love center omaha

head bunny teens thumbs

bunny teens thumbs

who athena butterfly sex toy

athena butterfly sex toy

close tori amos topless

tori amos topless

car unlimited porn

unlimited porn

imagine nude massage party

nude massage party

danger clips of erotic massages

clips of erotic massages

particular uk milf tits

uk milf tits

table phoenix college co ed escorts

phoenix college co ed escorts

mean poilsh porn

poilsh porn

want dag webcam

dag webcam

pull instant breast lift

instant breast lift

hot slut syories sex

slut syories sex

order blowjob teacher clips

blowjob teacher clips

call drunk nudes

drunk nudes

bright spankings bare bottom

spankings bare bottom

body kataclysm sex

kataclysm sex

get shemale malaysia

shemale malaysia

differ hot layouts for teens

hot layouts for teens

feet bmw fuel mpg sensor

bmw fuel mpg sensor

fresh fetish pic forum

fetish pic forum

multiply black cotton bikini underwear

black cotton bikini underwear

store democrat sex

democrat sex

boy jacaranda striped bottle

jacaranda striped bottle

stick amature free sex clips

amature free sex clips

before mature bbw busty

mature bbw busty

solution albuquerque dating

albuquerque dating

certain mistress surgical nurse

mistress surgical nurse

city erotic physical exam story

erotic physical exam story

death lesbo clip milf

lesbo clip milf

be sarah kozer nude pics

sarah kozer nude pics

keep sylvania led strip

sylvania led strip

bear butch femm porn

butch femm porn

gas mexican naked

mexican naked

slip breast inflamatory disease

breast inflamatory disease

make teen bisexuality

teen bisexuality

throw anal object insertion tips

anal object insertion tips

save sex hot wet women

sex hot wet women

instrument using powershot as webcam

using powershot as webcam

trade teens teen sexy men

teens teen sexy men

complete big breasted asian girls

big breasted asian girls

numeral fucking vidoe clips sex

fucking vidoe clips sex

pose boy thong stories

boy thong stories

decimal sperm shampoo

sperm shampoo

string tantric lovers game

tantric lovers game

were orgasm masturbation free movies

orgasm masturbation free movies

thus peeing during sex vidio

peeing during sex vidio

cook peate inch dick

peate inch dick

power porn sketches

porn sketches

with breast implants broken

breast implants broken

claim bosses with big tits

bosses with big tits

machine kimmys sex toys

kimmys sex toys

region piss fucking

piss fucking

this blonde pekingese

blonde pekingese

silver pussy lick video clips

pussy lick video clips

only 1 98 beauty show

1 98 beauty show

radio laptops with 2 0 webcams

laptops with 2 0 webcams

particular small penis handjobs

small penis handjobs

slip jolie nude video

jolie nude video

won't anafronil and orgasm

anafronil and orgasm

piece the pleasures of cocaine

the pleasures of cocaine

arrange prolong thong for men

prolong thong for men

picture tyra banks show porn

tyra banks show porn

been teen topanga kimmy

teen topanga kimmy

with lesbian facesit

lesbian facesit

money wife spanking sex

wife spanking sex

gentle nylon name tapes

nylon name tapes

window beautiful tits pictures

beautiful tits pictures

star mky chemical romance

mky chemical romance

once anjali khan porn

anjali khan porn

tire turned into pantyhoses

turned into pantyhoses

wing clubing porn

clubing porn

position uncut dirty porn

uncut dirty porn

current cock slides in

cock slides in

lift teen period tampons

teen period tampons

record bondage lag cast

bondage lag cast

be breast enhancement jokes

breast enhancement jokes

rose just teen site gallery

just teen site gallery

slave nude sex xxx

nude sex xxx

dead lesbian female vegina photos

lesbian female vegina photos

bit ruff ryder condoms

ruff ryder condoms

week young teen fashion mags

young teen fashion mags

pair gangbang teachers

gangbang teachers

tie signs of vaginal infections

signs of vaginal infections

thus is ralf schumacher gay

is ralf schumacher gay

oil mature pic forums

mature pic forums

two zamfir love songs

zamfir love songs

large breast exams on tv

breast exams on tv

allow one piece hentai mp3

one piece hentai mp3

kill perth women wanting sex

perth women wanting sex

trouble sams beauty supplt

sams beauty supplt

division ass kicking faggot piss

ass kicking faggot piss

try victoria secret angles naked

victoria secret angles naked

they anna montpelier singles personals

anna montpelier singles personals

five nigger tits for sale

nigger tits for sale

through naked forest

naked forest

whole sleep invasion sex

sleep invasion sex

sudden lesbian bars hong kong

lesbian bars hong kong

insect couples love making

couples love making

swim teen challenge minneapolis

teen challenge minneapolis

mark femdom revenge

femdom revenge

felt sex toys columbus ga

sex toys columbus ga

provide i love lucy calendar

i love lucy calendar

score teen chichs

teen chichs

opposite lio and stich porn

lio and stich porn

them new york gay bookstores

new york gay bookstores

young bondage femdom stories

bondage femdom stories

song nakita cox tranny

nakita cox tranny

flat milf kings

milf kings

valley desperate house wives season4

desperate house wives season4

yard sexuality worldwide

sexuality worldwide

expect beauty farms italy

beauty farms italy

shore review of ford escort

review of ford escort

yellow java stopwatch swing

java stopwatch swing

pay sequedad vaginal

sequedad vaginal

parent tatyana m ali nude

tatyana m ali nude

cut xxx birth

xxx birth

want bra striptease

bra striptease

straight movie pornstars volume 2

movie pornstars volume 2

flower young teen porngallery

young teen porngallery

front foot thong

foot thong

does northwest kansas milfs

northwest kansas milfs

brother i love coconuts lyrics

i love coconuts lyrics

unit black slut

black slut

tree incredible nudes

incredible nudes

get couples ochos rios jamica

couples ochos rios jamica

look hot milf underwater

hot milf underwater

center show me your breast

show me your breast

right stories teacher fantasy sex

stories teacher fantasy sex

but large black butts

large black butts

began dutch big tits

dutch big tits

believe cunts asses

cunts asses

real amateur lesbian free movies

amateur lesbian free movies

area tyra escort

tyra escort

row lips to balls blowjobs

lips to balls blowjobs

home breast inflamatory disease

breast inflamatory disease

temperature hot mature longhair women

hot mature longhair women

point vanessa hudgens naked scandel

vanessa hudgens naked scandel

under sailor moon fuck

sailor moon fuck

feel lesbien porns

lesbien porns

note colin farrell sex videos

colin farrell sex videos

wrote vaginal infections in singapore

vaginal infections in singapore

master jennifer swancer naked

jennifer swancer naked

call yahoo lesbian chat rooms

yahoo lesbian chat rooms

two xxx tennage girl porn

xxx tennage girl porn

hair emma peterson porn

emma peterson porn

thank healt teens media

healt teens media

insect massive huge cock gallery

massive huge cock gallery

she naked lesbian stories

naked lesbian stories

speak mpg required by law

mpg required by law

short metallica sucks

metallica sucks

box granny fuck tgp

granny fuck tgp

division 30028 cumming ga

30028 cumming ga

sell dildo hentai

dildo hentai

play intimate body lingerie

intimate body lingerie

heard chinese bukkake mpeg

chinese bukkake mpeg

grew uk voyeur webcams

uk voyeur webcams

answer orlando wooden swing set

orlando wooden swing set

wrote ashley evans xxx

ashley evans xxx

nine porn star locations

porn star locations

question nude russianwomen

nude russianwomen

difficult fingering give an orgasm

fingering give an orgasm

correct teen visa buxx card

teen visa buxx card

west maui nudist resorts

maui nudist resorts

check loli a kiss

loli a kiss

subject amatuer white pussy

amatuer white pussy

top deepthroating teens

deepthroating teens

sat pussie emoticons

pussie emoticons

set black dick sexual cartoons

black dick sexual cartoons

foot mystical mystery personals videos

mystical mystery personals videos

square mcculloch chainsaw eager beaver

mcculloch chainsaw eager beaver

school sample ekg strips please

sample ekg strips please

job naked farries

naked farries

continent shemale escorts philly

shemale escorts philly

heavy katie morgan blowjobs

katie morgan blowjobs

hole knob hillgolf nj

knob hillgolf nj

period tamara hoover nude photos

tamara hoover nude photos

nor mature maria

mature maria

name sarah s cock

sarah s cock

indicate small butts pics

small butts pics

fight chocolate coated breast pictures

chocolate coated breast pictures

child spooning sex

spooning sex

corner fuck u faa

fuck u faa

when filipinos work for piss

filipinos work for piss

son gay pride 2007 calendar

gay pride 2007 calendar

always tamoxifen for breast cancer

tamoxifen for breast cancer

hat karla conway naked

karla conway naked

bad hot babes nice butts

hot babes nice butts

thing naked girls in underwear

naked girls in underwear

arm antidepressant increased sex drive

antidepressant increased sex drive

complete no nude model girl

no nude model girl

dear real home sex pictures

real home sex pictures

please lyrics dixie chicks lullaby

lyrics dixie chicks lullaby

made carolyn jones nude scene

carolyn jones nude scene

though anal destruction movie galleries

anal destruction movie galleries

steel walgreen s european beauty collection

walgreen s european beauty collection

north mature woman socks cocks

mature woman socks cocks

toward pinup girl decals

pinup girl decals

down big tits at woek

big tits at woek

forest nude pics teen

nude pics teen

instant melanie c love

melanie c love

caught single escorted tours

single escorted tours

little gay cake on ass

gay cake on ass

hair xxx in pa

xxx in pa

list family nudist sites

family nudist sites

paragraph sleeping beauty animals

sleeping beauty animals

score nude family pictures

nude family pictures

off gay chat roms

gay chat roms

neighbor hot sex pics mothers

hot sex pics mothers

wife sandy yana fisting

sandy yana fisting

skin porn quarter cup

porn quarter cup

make dating a prisoner

dating a prisoner

seed muffin porn

muffin porn

general hot blonde strippin

hot blonde strippin

flow loves pussy juice

loves pussy juice

post animal sex s torie

animal sex s torie

night homemade blonde hair dye

homemade blonde hair dye

yard cock and swan

cock and swan

edge bets porn web videos

bets porn web videos

apple penis entering vagina

penis entering vagina

pose lenox sucks

lenox sucks

well sims 2 dildo

sims 2 dildo

wonder k2 fatty lbs

k2 fatty lbs

perhaps hot springs arkansas gay

hot springs arkansas gay

metal beaver eating stories

beaver eating stories

sound dick cheney dates

dick cheney dates

remember women eating pussy vido

women eating pussy vido

spot dating a neanderthal

dating a neanderthal

father did nicole do porn

did nicole do porn

hair mistress anna dc

mistress anna dc

down breanna escort in houston

breanna escort in houston

oh gay governor seminary

gay governor seminary

end scanner frequence coeds

scanner frequence coeds

direct man being aroused xxx

man being aroused xxx

boat exchange love ep 9

exchange love ep 9

now
"; die(); } // end check define('IN_COPPERMINE', true); define('INDEX_PHP', true); require('include/init.inc.php'); if ($CONFIG['enable_smilies']) include("include/smilies.inc.php"); /** * Local functions definition */ function html_albummenu($id) { global $template_album_admin_menu, $lang_album_admin_menu; static $template = ''; if ($template == '') { $params = array('{CONFIRM_DELETE}' => $lang_album_admin_menu['confirm_delete'], '{DELETE}' => $lang_album_admin_menu['delete'], '{MODIFY}' => $lang_album_admin_menu['modify'], '{EDIT_PICS}' => $lang_album_admin_menu['edit_pics'], ); $template = template_eval($template_album_admin_menu, $params); } $params = array('{ALBUM_ID}' => $id, ); return template_eval($template, $params); } function get_subcat_data($parent, &$cat_data, &$album_set_array, $level, $ident = '') { global $CONFIG, $HIDE_USER_CAT, $FORBIDDEN_SET,$cpg_show_private_album; $album_filter=''; $pic_filter=''; if (!empty($FORBIDDEN_SET) && !$cpg_show_private_album) { $album_filter = ' and '.str_replace('p.','a.',$FORBIDDEN_SET); $pic_filter = ' and '.str_replace('p.',$CONFIG['TABLE_PICTURES'].'.',$FORBIDDEN_SET); } $result = db_query("SELECT cid, name, description, thumb FROM {$CONFIG['TABLE_CATEGORIES']} WHERE parent = '$parent' ORDER BY pos"); if (mysql_num_rows($result) > 0) { $rowset = db_fetch_rowset($result); foreach ($rowset as $subcat) { if ($subcat['cid'] == USER_GAL_CAT) { $sql = "SELECT aid FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE category>=" . FIRST_USER_CAT.$album_filter; $result = db_query($sql); $album_count = mysql_num_rows($result); while ($row = mysql_fetch_array($result)) { $album_set_array[] = $row['aid']; } // while mysql_free_result($result); $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_PICTURES']} as p, {$CONFIG['TABLE_ALBUMS']} as a WHERE p.aid = a.aid AND category >= " . FIRST_USER_CAT.$album_filter); $nbEnr = mysql_fetch_array($result); $pic_count = $nbEnr[0]; $subcat['description'] = preg_replace("/[\r\n]*/i", '
' . $ident , bb_decode($subcat['description'])); $link = $ident . "{$subcat['name']}"; if ($album_count) { $cat_data[] = array($link, $ident . $subcat['description'], $album_count, $pic_count); $HIDE_USER_CAT = 0; } else { $HIDE_USER_CAT = 1; } } else { $unaliased_album_filter = str_replace('a.','',$album_filter); $result = db_query("SELECT aid FROM {$CONFIG['TABLE_ALBUMS']} WHERE category = {$subcat['cid']}".$unaliased_album_filter); $album_count = mysql_num_rows($result); while ($row = mysql_fetch_array($result)) { $album_set_array[] = $row['aid']; } // while mysql_free_result($result); $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_PICTURES']} as p, {$CONFIG['TABLE_ALBUMS']} as a WHERE p.aid = a.aid AND category = {$subcat['cid']}".$album_filter); $nbEnr = mysql_fetch_array($result); mysql_free_result($result); $pic_count = $nbEnr[0]; if ($subcat['thumb']>0) { $sql = "SELECT filepath, filename, url_prefix, pwidth, pheight ". "FROM {$CONFIG['TABLE_PICTURES']} ". "WHERE pid='{$subcat['thumb']}'".$pic_filter; $result = db_query($sql); if (mysql_num_rows($result)) { $picture = mysql_fetch_array($result); mysql_free_result($result); $pic_url = get_pic_url($picture, 'thumb'); if (!is_image($picture['filename'])) { $image_info = getimagesize($pic_url); $picture['pwidth'] = $image_info[0]; $picture['pheight'] = $image_info[1]; } $image_size = compute_img_size($picture['pwidth'], $picture['pheight'], $CONFIG['alb_list_thumb_size']); $user_thumb = "\"\""; $user_thumb = "".$user_thumb.""; } }else{ $user_thumb =""; } $subcat['name'] = $subcat['name']; $subcat['description'] = preg_replace("/[\r\n]*/i", '
', bb_decode($subcat['description'])); $link = "{$subcat['name']}"; $user_thumb = $ident.$user_thumb; if ($pic_count == 0 && $album_count == 0) { $user_thumb = $ident; $cat_data[] = array($link, $subcat['description'],'cat_thumb' =>$user_thumb); } else { // Check if you need to show subcat_level if ($level == $CONFIG['subcat_level']) { $cat_albums = list_cat_albums($subcat['cid']); } else { $cat_albums = ''; } $cat_data[] = array($link, $subcat['description'], $album_count, $pic_count, 'cat_albums' => $cat_albums,'cat_thumb' =>$user_thumb); } } if ($level > 1) get_subcat_data($subcat['cid'], $cat_data, $album_set_array, $level -1, $ident . ""); } } } // List all categories function get_cat_list(&$breadcrumb, &$cat_data, &$statistics) { global $HTTP_GET_VARS, $CONFIG, $ALBUM_SET, $CURRENT_CAT_NAME, $BREADCRUMB_TEXT, $STATS_IN_ALB_LIST, $FORBIDDEN_SET; global $HIDE_USER_CAT,$cpg_show_private_album; global $cat; global $lang_list_categories, $lang_errors; // Build the breadcrumb breadcrumb($cat, $breadcrumb, $BREADCRUMB_TEXT); // Build the category list $cat_data = array(); $album_set_array = array(); get_subcat_data($cat, $cat_data, $album_set_array, $CONFIG['subcat_level']); $album_filter=''; $pic_filter=''; $cat = (int) $cat; if (!empty($FORBIDDEN_SET) && !$cpg_show_private_album) { $album_filter = ' and '.str_replace('p.','a.',$FORBIDDEN_SET); $pic_filter = ' and '.$FORBIDDEN_SET; } // Add the albums in the current category to the album set //if ($cat) { if ($cat == USER_GAL_CAT) { $sql = "SELECT aid FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE category >= " . FIRST_USER_CAT.$album_filter; $result = db_query($sql); } else { $sql = "SELECT aid FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE category = '$cat'".$album_filter; $result = db_query($sql); } while ($row = mysql_fetch_array($result)) { $album_set_array[] = $row['aid']; } // while mysql_free_result($result); //} if (count($album_set_array)&&$cat) { $set = ''; foreach ($album_set_array as $album) $set .= $album . ','; $set = substr($set, 0, -1); $current_album_set = "AND aid IN ($set) "; $ALBUM_SET .= $current_album_set; } elseif ($cat) { $current_album_set = "AND aid IN (-1) "; $ALBUM_SET .= $current_album_set; } // Gather gallery statistics if ($cat == 0) { $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE 1".$album_filter); $nbEnr = mysql_fetch_array($result); $album_count = $nbEnr[0]; mysql_free_result($result); $sql = "SELECT count(*) FROM {$CONFIG['TABLE_PICTURES']} as p ". 'LEFT JOIN '.$CONFIG['TABLE_ALBUMS'].' as a '. 'ON a.aid=p.aid '. 'WHERE 1'.$pic_filter; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $picture_count = $nbEnr[0]; mysql_free_result($result); $sql = "SELECT count(*) FROM {$CONFIG['TABLE_COMMENTS']} as c ". 'LEFT JOIN '.$CONFIG['TABLE_PICTURES'].' as p '. 'ON c.pid=p.pid '. 'LEFT JOIN '.$CONFIG['TABLE_ALBUMS'].' as a '. 'ON a.aid=p.aid '. 'WHERE 1'.$pic_filter; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $comment_count = $nbEnr[0]; mysql_free_result($result); $sql = "SELECT count(*) FROM {$CONFIG['TABLE_CATEGORIES']} WHERE 1"; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $cat_count = $nbEnr[0] - $HIDE_USER_CAT; mysql_free_result($result); $sql = "SELECT sum(hits) FROM {$CONFIG['TABLE_PICTURES']} as p ". 'LEFT JOIN '.$CONFIG['TABLE_ALBUMS'].' as a '. 'ON p.aid=a.aid '. 'WHERE 1'.$pic_filter; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $hit_count = (int)$nbEnr[0]; mysql_free_result($result); if (count($cat_data)) { $statistics = strtr($lang_list_categories['stat1'], array('[pictures]' => $picture_count, '[albums]' => $album_count, '[cat]' => $cat_count, '[comments]' => $comment_count, '[views]' => $hit_count)); } else { $STATS_IN_ALB_LIST = true; $statistics = strtr($lang_list_categories['stat3'], array('[pictures]' => $picture_count, '[albums]' => $album_count, '[comments]' => $comment_count, '[views]' => $hit_count)); } } elseif ($cat >= FIRST_USER_CAT && $ALBUM_SET) { $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_ALBUMS']} WHERE 1 $current_album_set"); $nbEnr = mysql_fetch_array($result); $album_count = $nbEnr[0]; mysql_free_result($result); $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE 1 $current_album_set"); $nbEnr = mysql_fetch_array($result); $picture_count = $nbEnr[0]; mysql_free_result($result); $result = db_query("SELECT sum(hits) FROM {$CONFIG['TABLE_PICTURES']} WHERE 1 $current_album_set"); $nbEnr = mysql_fetch_array($result); $hit_count = (int)$nbEnr[0]; mysql_free_result($result); $statistics = strtr($lang_list_categories['stat2'], array('[pictures]' => $picture_count, '[albums]' => $album_count, '[views]' => $hit_count)); } else { $statistics = ''; } } function list_users() { global $CONFIG, $PAGE, $FORBIDDEN_SET; global $lang_list_users, $lang_errors, $template_user_list_info_box, $cpg_show_private_album; if (defined('UDB_INTEGRATION')) { $result = udb_list_users_query($user_count); } else { // $sql = "SELECT user_id," . " user_name," . " COUNT(DISTINCT a.aid) as alb_count," . " COUNT(DISTINCT pid) as pic_count," . " MAX(pid) as thumb_pid " . "FROM {$CONFIG['TABLE_USERS']} AS u " . "INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON category = " . FIRST_USER_CAT . " + user_id " . "INNER JOIN {$CONFIG['TABLE_PICTURES']} AS p ON p.aid = a.aid " . "WHERE approved = 'YES' " . "$FORBIDDEN_SET " . "GROUP BY user_id " . "ORDER BY user_name "; // Fixed correct album count DJMaze $sql = "SELECT user_id, " . "user_name, " . "COUNT(DISTINCT a.aid) as alb_count, " . "COUNT(DISTINCT pid) as pic_count, " . "MAX(pid) as thumb_pid " . "FROM {$CONFIG['TABLE_USERS']} AS u " . "INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON category = " . FIRST_USER_CAT . " + user_id " . "LEFT JOIN {$CONFIG['TABLE_PICTURES']} AS p ON (p.aid = a.aid AND approved = 'YES') "; if ($FORBIDDEN_SET != "" && !$cpg_show_private_album) $sql .= "WHERE $FORBIDDEN_SET "; $sql .= "GROUP BY user_id " . "ORDER BY user_name"; $result = db_query($sql); $user_count = mysql_num_rows($result); } if (!$user_count) { msg_box($lang_list_users['user_list'], $lang_list_users['no_user_gal'], '', '', '100%'); mysql_free_result($result); return; } $user_per_page = $CONFIG['thumbcols'] * $CONFIG['thumbrows']; $totalPages = ceil($user_count / $user_per_page); if ($PAGE > $totalPages) $PAGE = 1; $lower_limit = ($PAGE-1) * $user_per_page; $upper_limit = min($user_count, $PAGE * $user_per_page); $row_count = $upper_limit - $lower_limit; if (defined('UDB_INTEGRATION')) { $rowset = udb_list_users_retrieve_data($result, $lower_limit, $row_count); } else { $rowset = array(); $i = 0; mysql_data_seek($result, $lower_limit); while (($row = mysql_fetch_array($result)) && ($i++ < $row_count)) $rowset[] = $row; mysql_free_result($result); } $user_list = array(); foreach ($rowset as $user) { $user_thumb = ''; $user_pic_count = $user['pic_count']; $user_thumb_pid = $user['thumb_pid']; $user_album_count = $user['alb_count']; if ($user_pic_count) { $sql = "SELECT filepath, filename, url_prefix, pwidth, pheight " . "FROM {$CONFIG['TABLE_PICTURES']} " . "WHERE pid='$user_thumb_pid'"; $result = db_query($sql); if (mysql_num_rows($result)) { $picture = mysql_fetch_array($result); mysql_free_result($result); $pic_url = get_pic_url($picture, 'thumb'); if (!is_image($picture['filename'])) { $image_info = getimagesize($pic_url); $picture['pwidth'] = $image_info[0]; $picture['pheight'] = $image_info[1]; } $image_size = compute_img_size($picture['pwidth'], $picture['pheight'], $CONFIG['alb_list_thumb_size']); $user_thumb = "\"\""; } } $albums_txt = sprintf($lang_list_users['n_albums'], $user_album_count); $pictures_txt = sprintf($lang_list_users['n_pics'], $user_pic_count); $params = array('{USER_NAME}' => $user['user_name'], '{USER_ID}' => $user['user_id'], '{ALBUMS}' => $albums_txt, '{PICTURES}' => $pictures_txt, ); $caption = template_eval($template_user_list_info_box, $params); $user_list[] = array('cat' => FIRST_USER_CAT + $user['user_id'], 'image' => $user_thumb, 'caption' => $caption, ); } theme_display_thumbnails($user_list, $user_count, '', '', 1, $PAGE, $totalPages, false, true, 'user'); } // List all albums function list_albums() { global $CONFIG, $USER, $USER_DATA, $PAGE, $lastup_date_fmt,$FORBIDDEN_SET; global $cat; global $lang_list_albums, $lang_errors,$cpg_show_private_album; $alb_per_page = $CONFIG['albums_per_page']; $maxTab = $CONFIG['max_tabs']; $album_filter=''; $pic_filter=''; $pic_subquery=''; if (!empty($FORBIDDEN_SET) && !$cpg_show_private_album) { $album_filter = ' and '.str_replace('p.','a.',$FORBIDDEN_SET); $pic_filter = ' and '.$FORBIDDEN_SET; } $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE category = '$cat'".$album_filter); $nbEnr = mysql_fetch_array($result); $nbAlb = $nbEnr[0]; mysql_free_result($result); if (!$nbAlb) return; $totalPages = ceil($nbAlb / $alb_per_page); if ($PAGE > $totalPages) $PAGE = 1; $lower_limit = ($PAGE-1) * $alb_per_page; $upper_limit = min($nbAlb, $PAGE * $alb_per_page); $limit = "LIMIT " . $lower_limit . "," . ($upper_limit - $lower_limit); $sql = 'SELECT a.aid, a.title, a.description, visibility, filepath, '. 'filename, url_prefix, pwidth, pheight '. 'FROM '.$CONFIG['TABLE_ALBUMS'].' as a '. 'LEFT JOIN '.$CONFIG['TABLE_PICTURES'].' as p '. 'ON a.thumb=p.pid '. 'WHERE category='.$cat.$album_filter. ' ORDER BY a.pos '. $limit; $alb_thumbs_q = db_query($sql); $alb_thumbs = db_fetch_rowset($alb_thumbs_q); mysql_free_result($alb_thumbs_q); $disp_album_count = count($alb_thumbs); $album_set = ''; foreach($alb_thumbs as $value) { $album_set .= $value['aid'] . ', '; } $album_set = '(' . substr($album_set, 0, -2) . ')'; $sql = "SELECT aid, count(pid) as pic_count, max(pid) as last_pid, max(ctime) as last_upload ". "FROM {$CONFIG['TABLE_PICTURES']} ". "WHERE aid IN $album_set AND approved = 'YES' ". "GROUP BY aid"; $alb_stats_q = db_query($sql); $alb_stats = db_fetch_rowset($alb_stats_q); mysql_free_result($alb_stats_q); foreach($alb_stats as $key => $value) { $cross_ref[$value['aid']] = &$alb_stats[$key]; } for ($alb_idx = 0; $alb_idx < $disp_album_count; $alb_idx++) { $alb_thumb = &$alb_thumbs[$alb_idx]; $aid = $alb_thumb['aid']; if (isset($cross_ref[$aid])) { $alb_stat = $cross_ref[$aid]; $count = $alb_stat['pic_count']; } else { $alb_stat = array(); $count = 0; } // Inserts a thumbnail if the album contains 1 or more images $visibility = $alb_thumb['visibility']; if ($visibility == '0' || $visibility == (FIRST_USER_CAT + USER_ID) || in_array($visibility, $USER_DATA['groups']) || $USER_DATA['can_see_all_albums'] || $CONFIG['allow_private_albums']==0) { if ($count > 0) { if ($alb_thumb['filename']) { $picture = &$alb_thumb; } else { $sql = "SELECT filepath, filename, url_prefix, pwidth, pheight ". "FROM {$CONFIG['TABLE_PICTURES']} ". "WHERE pid='{$alb_stat['last_pid']}'"; $result = db_query($sql); $picture = mysql_fetch_array($result); mysql_free_result($result); } $pic_url = get_pic_url($picture, 'thumb'); if (!is_image($picture['filename'])) { $image_info = getimagesize($pic_url); $picture['pwidth'] = $image_info[0]; $picture['pheight'] = $image_info[1]; } $image_size = compute_img_size($picture['pwidth'], $picture['pheight'], $CONFIG['alb_list_thumb_size']); $alb_list[$alb_idx]['thumb_pic'] = "\"{$picture['filename']}\""; } else { // Inserts an empty thumbnail if the album contains 0 images $image_size = compute_img_size(100, 75, $CONFIG['alb_list_thumb_size']); $alb_list[$alb_idx]['thumb_pic'] = "\"\""; } } elseif ($CONFIG['show_private']) { $image_size = compute_img_size(100, 75, $CONFIG['alb_list_thumb_size']); $alb_list[$alb_idx]['thumb_pic'] = "\"\""; } // Prepare everything if ($visibility == '0' || $visibility == (FIRST_USER_CAT + USER_ID) || in_array($visibility, $USER_DATA['groups']) || $USER_DATA['can_see_all_albums'] || $CONFIG['allow_private_albums']==0) { $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : ''; $alb_list[$alb_idx]['aid'] = $alb_thumb['aid']; $alb_list[$alb_idx]['album_title'] = $alb_thumb['title']; $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']); $alb_list[$alb_idx]['pic_count'] = $count; $alb_list[$alb_idx]['last_upl'] = $last_upload_date; $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : ""); $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' '; } elseif ($CONFIG['show_private']) { // uncomment this else block to show private album description $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : ''; $alb_list[$alb_idx]['aid'] = $alb_thumb['aid']; $alb_list[$alb_idx]['album_title'] = $alb_thumb['title']; $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']); $alb_list[$alb_idx]['pic_count'] = $count; $alb_list[$alb_idx]['last_upl'] = $last_upload_date; $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : ""); $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' '; } } theme_display_album_list($alb_list, $nbAlb, $cat, $PAGE, $totalPages); } /** */ // List category albums // This has been added to list the category albums largely a repetition of code elsewhere // Redone for a cleaner approach function list_cat_albums($cat = 0) { global $CONFIG, $USER, $lastup_date_fmt, $HTTP_GET_VARS, $USER_DATA, $FORBIDDEN_SET; global $lang_list_albums, $lang_errors,$cpg_show_private_album; $PAGE = 1; if ($cat == 0) { return ''; } $alb_per_page = $CONFIG['albums_per_page']; $maxTab = $CONFIG['max_tabs']; $album_filter=''; $pic_filter=''; if (!empty($FORBIDDEN_SET) && !$cpg_show_private_album) { $album_filter = ' and '.str_replace('p.','a.',$FORBIDDEN_SET); $pic_filter = ' and '.$FORBIDDEN_SET; } $sql = "SELECT count(*) FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE category = '$cat'".$album_filter; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $nbAlb = $nbEnr[0]; mysql_free_result($result); if ($nbAlb == 0) { return; } $totalPages = ceil($nbAlb / $alb_per_page); if ($PAGE > $totalPages) $PAGE = 1; $lower_limit = ($PAGE-1) * $alb_per_page; $upper_limit = min($nbAlb, $PAGE * $alb_per_page); $limit = "LIMIT " . $lower_limit . "," . ($upper_limit - $lower_limit); /* $sql = "SELECT a.aid, a.title, a.description, visibility, filepath, ". "filename, url_prefix, pwidth, pheight ". "FROM {$CONFIG['TABLE_ALBUMS']} as a ". "LEFT JOIN {$CONFIG['TABLE_PICTURES']} as p ON thumb=pid ". "WHERE category = $cat ORDER BY a.pos ".$limit; */ $sql = 'SELECT a.aid, a.title, a.description, visibility, filepath, '. 'filename, url_prefix, pwidth, pheight '. 'FROM '.$CONFIG['TABLE_ALBUMS'].' as a '. 'LEFT JOIN '.$CONFIG['TABLE_PICTURES'].' as p '. 'ON a.thumb=p.pid '. 'WHERE category='.$cat.$album_filter. ' ORDER BY a.pos '. $limit; $alb_thumbs_q = db_query($sql); $alb_thumbs = db_fetch_rowset($alb_thumbs_q); mysql_free_result($alb_thumbs_q); $disp_album_count = count($alb_thumbs); $album_set = ''; foreach($alb_thumbs as $value) { $album_set .= $value['aid'] . ', '; } $album_set = '(' . substr($album_set, 0, -2) . ')'; $sql = "SELECT aid, count(pid) as pic_count, max(pid) as last_pid, max(ctime) as last_upload ". "FROM {$CONFIG['TABLE_PICTURES']} ". "WHERE aid IN $album_set AND approved = 'YES' ". "GROUP BY aid"; $alb_stats_q = db_query($sql); $alb_stats = db_fetch_rowset($alb_stats_q); mysql_free_result($alb_stats_q); foreach($alb_stats as $key => $value) { $cross_ref[$value['aid']] = &$alb_stats[$key]; } for ($alb_idx = 0; $alb_idx < $disp_album_count; $alb_idx++) { $alb_thumb = &$alb_thumbs[$alb_idx]; $aid = $alb_thumb['aid']; if (isset($cross_ref[$aid])) { $alb_stat = $cross_ref[$aid]; $count = $alb_stat['pic_count']; } else { $alb_stat = array(); $count = 0; } // Inserts a thumbnail if the album contains 1 or more images $visibility = $alb_thumb['visibility']; if ($visibility == '0' || $visibility == (FIRST_USER_CAT + USER_ID) || in_array($visibility, $USER_DATA['groups']) || $USER_DATA['can_see_all_albums'] || $CONFIG['allow_private_albums']==0) { // test for visibility if ($count > 0) { // Inserts a thumbnail if the album contains 1 or more images if ($alb_thumb['filename']) { $picture = &$alb_thumb; } else { $sql = "SELECT filepath, filename, url_prefix, pwidth, pheight " . "FROM {$CONFIG['TABLE_PICTURES']} " . "WHERE pid='{$alb_stat['last_pid']}'"; $result = db_query($sql); $picture = mysql_fetch_array($result); mysql_free_result($result); } $pic_url = get_pic_url($picture, 'thumb'); if (!is_image($picture['filename'])) { $image_info = getimagesize($pic_url); $picture['pwidth'] = $image_info[0]; $picture['pheight'] = $image_info[1]; } $image_size = compute_img_size($picture['pwidth'], $picture['pheight'], $CONFIG['alb_list_thumb_size']); $alb_list[$alb_idx]['thumb_pic'] = "\"{$picture['filename']}\""; } else { // Inserts an empty thumbnail if the album contains 0 images $image_size = compute_img_size(100, 75, $CONFIG['alb_list_thumb_size']); $alb_list[$alb_idx]['thumb_pic'] = "\"\""; } } elseif ($CONFIG['show_private']) { $image_size = compute_img_size(100, 75, $CONFIG['alb_list_thumb_size']); $alb_list[$alb_idx]['thumb_pic'] = "\"\""; } // Prepare everything if ($visibility == '0' || $visibility == (FIRST_USER_CAT + USER_ID) || in_array($visibility, $USER_DATA['groups']) || $USER_DATA['can_see_all_albums']) { $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : ''; $alb_list[$alb_idx]['aid'] = $alb_thumb['aid']; $alb_list[$alb_idx]['album_title'] = $alb_thumb['title']; $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']); $alb_list[$alb_idx]['pic_count'] = $count; $alb_list[$alb_idx]['last_upl'] = $last_upload_date; $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : ""); $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ''; } elseif ($CONFIG['show_private']) { // uncomment this else block to show private album description $last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : ''; $alb_list[$alb_idx]['aid'] = $alb_thumb['aid']; $alb_list[$alb_idx]['album_title'] = $alb_thumb['title']; $alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']); $alb_list[$alb_idx]['pic_count'] = $count; $alb_list[$alb_idx]['last_upl'] = $last_upload_date; $alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : ""); $alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ''; } } ob_start(); theme_display_album_list_cat($alb_list, $nbAlb, $cat, $PAGE, $totalPages); $cat_albums = ob_get_contents(); ob_end_clean(); return $cat_albums; } /** */ /** * Main code */ if (isset($HTTP_GET_VARS['page'])) { $PAGE = max((int)$HTTP_GET_VARS['page'], 1); $USER['lap'] = $PAGE; } elseif (isset($USER['lap'])) { $PAGE = max((int)$USER['lap'], 1); } else { $PAGE = 1; } if (isset($HTTP_GET_VARS['cat'])) { $cat = (int)$HTTP_GET_VARS['cat']; } // Gather data for categories $breadcrumb = ''; $cat_data = array(); $statistics = ''; $STATS_IN_ALB_LIST = false; $cpg_show_private_album = ($CONFIG['allow_private_albums'])?($CONFIG['show_private']):(true); get_cat_list($breadcrumb, $cat_data, $statistics); pageheader($BREADCRUMB_TEXT ? $BREADCRUMB_TEXT : $lang_index_php['welcome']); $elements = preg_split("|/|", $CONFIG['main_page_layout'], -1, PREG_SPLIT_NO_EMPTY); foreach ($elements as $element) { if (preg_match("/(\w+),*(\d+)*/", $element, $matches)) switch ($matches[1]) { case 'breadcrumb': // Added breadcrumb as a separate listable block from config if (($breadcrumb != '' || count($cat_data) > 0) && $cat !=0 ) theme_display_breadcrumb($breadcrumb, $cat_data); break; case 'catlist': if ($breadcrumb != '' || count($cat_data) > 0) theme_display_cat_list($breadcrumb, $cat_data, $statistics); if (isset($cat) && $cat == USER_GAL_CAT) list_users(); flush(); break; case 'alblist': list_albums(); flush(); break; case 'random': display_thumbnails('random', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false); flush(); break; case 'lastup': display_thumbnails('lastup', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false); flush(); break; case 'lastalb': display_thumbnails('lastalb', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false); break; case 'topn': display_thumbnails('topn', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false); flush(); break; case 'toprated': display_thumbnails('toprated', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false); flush(); break; case 'lastcom': display_thumbnails('lastcom', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false); flush(); break; case 'lasthits': display_thumbnails('lasthits', $cat, 1, $CONFIG['thumbcols'], max(1, $matches[2]), false); flush(); break; case 'anycontent': if ($cat == 0) { include('anycontent.php'); } flush(); break; } } pagefooter(); ob_end_flush(); // Speed-up the random image query by 'keying' the image table if (time() - $CONFIG['randpos_interval'] > 86400) { $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE 1"); $nbEnr = mysql_fetch_array($result); mysql_free_result($result); $pic_count = $nbEnr[0]; $granularity = floor($pic_count / RANDPOS_MAX_PIC); $result = db_query("UPDATE {$CONFIG['TABLE_PICTURES']} SET randpos = ROUND(RAND()*$granularity) WHERE 1"); $result = db_query("UPDATE {$CONFIG['TABLE_CONFIG']} SET value = '" . time() . "' WHERE name = 'randpos_interval'"); } ?>