File: /var/www/ilya/data/www/kamforum.ru/sources/action_public/membermap2/showmap.php
<?
################
#connect to DB #
################
Global $pins;
include_once ("../../../conf_global.php");
$user=$INFO['sql_user'];
$host=$INFO['sql_host'];
$pw=$INFO['sql_pass'];
$DBB=$INFO['sql_database'];
$conn = @mysql_connect($host,$user,$pw) or die("Err:Conn");
$rs = @mysql_select_db($DBB, $conn) or die ("Err:Db");
$loc=$INFO['board_url'];
$db_pre=$INFO['sql_tbl_prefix'];
if(isset($_GET['type'])){$type=$_GET['type'];}
if(isset($_GET['map'])){$map=$_GET['map'];$map_name=substr($map,0,strlen($map)-4);}
// --------------------------------------------
// get pins
// --------------------------------------------
$pins_db=$db_pre.'membermap2_pins';
$sql=("select * from $pins_db");
$rs=mysql_query($sql,$conn);
while($row = mysql_fetch_array($rs) ){
if($row[$type]=='checked'){
$pini="./pins/{$row['image']}";
$pine=strtoupper(substr($row['image'],-3));
if ($pine == 'GIF') {
$row['im']=imagecreatefromGIF($pini);
} elseif($pine == 'PNG') {
$row['im']=imagecreatefromPNG($pini);
} elseif($pine == 'JPG') {
$row['im']=imagecreatefromJPEG($pini);
}
$row['x']=imagesx ( $row['im'] );
$row['y']=imagesy ( $row['im'] );
$pins[$row['id']]=$row;
}
}
// --------------------------------------------
// Make Map
// --------------------------------------------
$map="./maps/$map";
$mape=strtoupper(substr($map,-3));
if ($mape=='GIF') {
$im=imagecreatefromGIF($map);
} elseif($mape=='PNG') {
$im=imagecreatefromPNG($map);
} elseif($mape=='JPG') {
$im=imagecreatefromJPEG($map);
}
// --------------------------------------------
// Make the QUERY
// --------------------------------------------
$members_db=$db_pre.'members';
$sessions_db=$db_pre.'sessions';
if (isset($_GET['member'])){
$where="AND m.id='{$_GET['member']}'";
}else{
$where='';
}
$sql=("select
m.map,
m.map_location,
m.posts,
m.last_activity,
m.id,
m.mgroup,
m.joined,
s.member_id
from $members_db m left join $sessions_db s on(m.id=s.member_id)
where m.map = '$map_name' $where");
$rs=mysql_query($sql,$conn) or print mysql_error();
while($row = mysql_fetch_array($rs) ){
if($icon=$type($row)){
if( (!isset($_GET['cur_fil']))||($_GET['cur_fil']==$icon) ){
$pieces = explode(",",$row['map_location']);
$locx=($pieces[0]);
$locy=($pieces[1])+8;
if($pins[$icon]['handle']=='c'){
$locx=$locx-($pins[$icon]['x']/2);
$locy=$locy-($pins[$icon]['y']/2);
}elseif($pins[$icon]['handle']=='bl'){
$locy=$locy-($pins[$icon]['y']);
}elseif($pins[$icon]['handle']=='br'){
$locy=$locy-($pins[$icon]['y']);
$locx=$locx-($pins[$icon]['x']);
}elseif($pins[$icon]['handle']=='tr'){
$locx=$locx-($pins[$icon]['x']);
}
imagecopy($im,$pins[$icon]['im'],$locx,$locy,0,0,$pins[$icon]['x'],$pins[$icon]['y']);
}
}
}
Header( "Content-type: image/png");
ImagePNG($im);
/* cleanup memory */
ImageDestroy($im);
foreach($pins as $pin){ImageDestroy($pin['im']);}
exit;
function group($row){
Global $pins;
$def='';
foreach($pins as $pin){
if($pin['group']=='checked'){
$groups=explode(',',$pin['group_value']);
if(in_array($row['mgroup'],$groups)){
return $pin['id'];
}
}
}
return false;
}
function posts($row){
Global $pins;
foreach($pins as $pin){
if($pin['posts']=='checked'){
$min=$pin['posts_value_min'];
$max=$pin['posts_value_max'];
if( ($row['posts']>=$min)&&($row['posts']<=$max)){
return $pin['id'];
}
}
}
return false;
}
function active($row){
Global $pins;
foreach($pins as $pin){
if($pin['active']=='checked'){
$mult=$pin['active_value_x'];
$times['0']=$pin['active_value_min'];
$times['1']=$pin['active_value_max'];
$now=time();
//figure times?
if($mult=='m'){
$max=$now-($times['0']*60);
$min=$now-($times['1']*60);
}elseif($mult=='h'){
$max=$now-($times['0']*3600);
$min=$now-($times['1']*3600);
}elseif($mult=='d'){
$max=$now-($times['0']*(3600*24));
$min=$now-($times['1']*(3600*24));
}elseif($mult=='o'){
$min=0;
$max=0;
if($row['member_id']==$row['id']){
return $pin['id'];
}
}
if( ($row['last_activity']>=$min)&&($row['last_activity']<=$max)){
return $pin['id'];
}
}
}
return 0;
}
function joined($row){
Global $pins;
foreach($pins as $pin){
if($pin['joined']=='checked'){
$mult=$pin['joined_value_x']; ;
$times['0']=$pin['joined_value_min'];
$times['1']=$pin['joined_value_max'];
$now=time();
//figure times?
if($mult=='m'){
$max=$now-($times['0']*60);
$min=$now-($times['1']*60);
}elseif($mult=='h'){
$max=$now-($times['0']*3600);
$min=$now-($times['1']*3600);
}elseif($mult=='d'){
$max=$now-($times['0']*(3600*24));
$min=$now-($times['1']*(3600*24));
}
if( ($row['joined']>=$min)&&($row['joined']<=$max)){
return $pin['id'];
}
}
}
return 0;
}
function hex2dec($hex) {
$color = str_replace('#', '', $hex);
$ret = array(
'r' => hexdec(substr($color, 0, 2)),
'g' => hexdec(substr($color, 2, 2)),
'b' => hexdec(substr($color, 4, 2))
);
return $ret;
}
?>