@ -4,9 +4,7 @@ require_once("Photo.php");
function profile_photo_init ( & $a ) {
if (( ! x ( $_SESSION , 'authenticated' )) && ( x ( $_SESSION , 'uid' ))) {
$_SESSION [ 'sysmsg' ] .= " Permission denied. " . EOL ;
$a -> error = 404 ;
if (( ! local_user ()) {
return ;
}
require_once ( " mod/profile.php " );
@ -16,23 +14,22 @@ function profile_photo_init(&$a) {
function profile_photo_post ( & $a ) {
if (( ! x ( $_SESSION , 'authenticated' )) && ( ! ( x ( $_SESSION , 'uid' )))) {
$_SESSION [ 'sysmsg' ] .= " Permission denied. " . EOL ;
if (( ! local_user ()) {
notice ( " Permission denied. " . EOL );
return ;
}
if ( $a -> argc > 1 )
$profile_id = intval ( $a -> argv [ 1 ]);
if (( x ( $_POST , 'cropfinal' )) && ( $_POST [ 'cropfinal' ] == 1 )) {
if ( x ( $_POST , 'xstart' ) !== false ) {
// phase 2 - we have finished cropping
if ( $a -> argc != 3 ) {
$_SESSION [ 'sysmsg' ] .= " Image uploaded but image cropping failed. " . EOL ;
if ( $a -> argc != 2 ) {
notice ( " Image uploaded but image cropping failed. " . EOL );
return ;
}
$image_id = $a -> argv [ 2 ];
$image_id = $a -> argv [ 1 ];
if ( substr ( $image_id , - 2 , 1 ) == '-' ) {
$scale = substr ( $image_id , - 1 , 1 );
$image_id = substr ( $image_id , 0 , - 2 );
@ -44,77 +41,64 @@ function profile_photo_post(&$a) {
$srcW = $_POST [ 'xfinal' ] - $srcX ;
$srcH = $_POST [ 'yfinal' ] - $srcY ;
$r = q ( " SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `scale` = %d LIMIT 1 " ,
$r = q ( " SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d AND ` scale` = %d LIMIT 1 " ,
dbesc ( $image_id ),
dbesc ( $_SESSION [ 'uid' ]),
intval ( $scale ));
if ( $r !== NULL && ( count ( $r ))) {
$im = new Photo ( $r [ 0 ][ 'data' ]);
if ( count ( $r )) {
$base_image = $r [ 0 ];
$im = new Photo ( $base_image [ 'data' ]);
$im -> cropImage ( 175 , $srcX , $srcY , $srcW , $srcH );
$s = $im -> imageString ();
$x = $im -> getWidth ();
$y = $im -> getHeight ();
$ret = q ( " INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`,
`height` , `width` , `data` , `scale` )
VALUES ( % d , '%s' , '%s' , '%s' , '%s' , % d , % d , '%s' , 4 ) " ,
`height` , `width` , `data` , `scale` , `profile` )
VALUES ( % d , '%s' , '%s' , '%s' , '%s' , % d , % d , '%s' , 4 , 1 ) " ,
intval ( $_SESSION [ 'uid' ]),
dbesc ( $r [ 0 ] [ 'resource-id' ]),
dbesc ( $base_image [ 'resource-id' ]),
datetime_convert (),
datetime_convert (),
dbesc ( $r [ 0 ][ 'filename' ]),
intval ( $y ),
intval ( $x ),
dbesc ( $s ));
if ( $r === NULL )
$_SESSION [ 'sysmsg' ] .= " Image size reduction (175) failed. " . EOL ;
dbesc ( $base_image [ 'filename' ]),
intval ( $im -> getHeight ()),
intval ( $im -> getWidth ()),
dbesc ( $im -> imageString ()
);
if ( $r === false )
notice ( " Image size reduction (175) failed. " . EOL );
$im -> scaleImage ( 80 );
$s = $im -> imageString ();
$x = $im -> getWidth ();
$y = $im -> getHeight ();
$ret = q ( " INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`,
`height` , `width` , `data` , `scale` )
VALUES ( % d , '%s' , '%s' , '%s' , '%s' , % d , % d , '%s' , 5 ) " ,
`height` , `width` , `data` , `scale` , `profile` )
VALUES ( % d , '%s' , '%s' , '%s' , '%s' , % d , % d , '%s' , 5 , 1 ) " ,
intval ( $_SESSION [ 'uid' ]),
dbesc ( $r [ 0 ] [ 'resource-id' ]),
dbesc ( $base_image [ 'resource-id' ]),
datetime_convert (),
datetime_convert (),
dbesc ( $r [ 0 ][ 'filename' ]),
intval ( $y ),
intval ( $x ),
dbesc ( $s ));
if ( $r === NULL )
$_SESSION [ 'sysmsg' ] .= " Image size reduction (80) failed. " . EOL ;
$r = q ( " UPDATE `profile` SET `photo` = '%s', `thumb` = '%s' WHERE `id` = %d LIMIT 1 " ,
dbesc ( $a -> get_baseurl () . '/photo/' . $image_id . '-4.jpg' ),
dbesc ( $a -> get_baseurl () . '/photo/' . $image_id . '-5.jpg' ),
intval ( $profile_id )
dbesc ( $base_image [ 'filename' ]),
intval ( $im -> getHeight ()),
intval ( $im -> getWidth ()),
dbesc ( $im -> imageString ()
);
if ( $r === false )
$_SESSION [ 'sysmsg' ] .= " Failed to add image to profile ." . EOL ;
// We should really only do this if requested, or if it is the default profile. The contact
//table images are used in coversations.
$r = q ( " UPDATE `contact` SET `photo` = '%s', `thumb` = '%s' WHERE `uid` = %d AND `self` = 1 LIMIT 1 " ,
dbesc ( $a -> get_baseurl () . '/photo/' . $image_id . '-4.jpg' ),
dbesc ( $a -> get_baseurl () . '/photo/' . $image_id . '-5.jpg' ),
notice ( " Image size reduction (80) failed. " . EOL );
// Unset the profile photo flag from any other photos I own
$r = q ( " UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d "
dbesc ( $base_image [ 'resource-id' ] ),
intval ( $_SESSION [ 'uid' ])
);
if ( $r === false )
notice ( " Failed to add photo to contact table. " . EOL );
)
}
goaway ( $a -> get_baseurl () . '/profiles' );
return ; // NOTREACHED
}
$extra_sql = (( $profile_id ) ? " AND `id` = " . intval ( $profile_id ) : " AND `is-default` = 1 " );
$r = q ( " SELECT `id` FROM `profile` WHERE `uid` = %d $extra_sql LIMIT 1 " , intval ( $_SESSION [ 'uid' ]));
if ( $r === NULL || ( ! count ( $r ))) {
$_SESSION [ 'sysmsg' ] .= " Profile unavailable. " . EOL ;
return ;
}
$src = $_FILES [ 'userfile' ][ 'tmp_name' ];
$filename = basename ( $_FILES [ 'userfile' ][ 'name' ]);
$filesize = intval ( $_FILES [ 'userfile' ][ 'size' ]);
@ -123,16 +107,17 @@ function profile_photo_post(&$a) {
$ph = new Photo ( $imagedata );
if ( ! ( $image = $ph -> getImage ())) {
$_SESSION [ 'sysmsg' ] .= " Unable to process image. " . EOL ;
notice ( " Unable to process image. " . EOL ) ;
@ unlink ( $src );
return ;
}
@ unlink ( $src );
$width = $ph -> getWidth ();
$height = $ph -> getHeight ();
if ( $width < 175 || $width < 175 ) {
if ( $width < 175 || $height < 175 ) {
$ph -> scaleImageUp ( 200 );
$width = $ph -> getWidth ();
$height = $ph -> getHeight ();
@ -142,6 +127,7 @@ function profile_photo_post(&$a) {
$str_image = $ph -> imageString ();
$smallest = 0 ;
$r = q ( " INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`,
`height` , `width` , `data` , `scale` )
VALUES ( % d , '%s' , '%s' , '%s' , '%s' , % d , % d , '%s' , 0 ) " ,
@ -154,9 +140,9 @@ function profile_photo_post(&$a) {
intval ( $width ),
dbesc ( $str_image ));
if ( $r )
$_SESSION [ 'sysmsg' ] .= " Image uploaded successfully. " . EOL ;
notice ( " Image uploaded successfully. " . EOL ) ;
else
$_SESSION [ 'sysmsg' ] .= " Image upload failed. " . EOL ;
notice ( " Image upload failed. " . EOL ) ;
if ( $width > 640 || $height > 640 ) {
$ph -> scaleImage ( 640 );
@ -172,11 +158,12 @@ function profile_photo_post(&$a) {
datetime_convert (),
datetime_convert (),
dbesc ( basename ( $filename )),
intval ( $height ),
intval ( $width ),
dbesc ( $str_image ));
if ( $r === NULL )
$_SESSION [ 'sysmsg' ] .= " Image size reduction (640) failed. " . EOL ;
intval ( $ph -> getHeight ()),
intval ( $ph -> getWidth ()),
dbesc ( $ph -> imageString ()
);
if ( $r === false )
notice ( " Image size reduction (640) failed. " . EOL );
else
$smallest = 1 ;
}
@ -184,48 +171,34 @@ function profile_photo_post(&$a) {
$a -> config [ 'imagecrop' ] = $hash ;
$a -> config [ 'imagecrop_resolution' ] = $smallest ;
$a -> page [ 'htmlhead' ] .= file_get_contents ( " view/crophead.tpl " );
return ;
}
if ( ! function_exists ( 'profile_photo_content' )) {
function profile_photo_content ( & $a ) {
if ( ! local_user ()) {
notice ( " Permission denied. " . EOL );
return ;
}
if ( ! x ( $a -> config , 'imagecrop' )) {
if (( ! x ( $_SESSION [ 'authenticated' ])) && ( ! ( x ( $_SESSION , 'uid' )))) {
$_SESSION [ 'sysmsg' ] .= " Permission denied. " . EOL ;
return ;
}
if ( $a -> argc > 1 )
$profile_id = intval ( $a -> argv [ 1 ]);
$extra_sql = (( $profile_id ) ? " AND `id` = $profile_id " : " AND `is-default` = 1 " );
$tpl = file_get_contents ( 'view/profile_photo.tpl' );
$o .= replace_macros ( $tpl , array (
$r = q ( " SELECT `id` FROM `profile` WHERE `uid` = %d $extra_sql LIMIT 1 " , intval ( $_SESSION [ 'uid' ]));
if ( $r === NULL || ( ! count ( $r ))) {
$_SESSION [ 'sysmsg' ] .= " Profile unavailable. " . EOL ;
return ;
}
$o = file_get_contents ( 'view/profile_photo.tpl' );
$o = replace_macros ( $o , array (
'$profile_id' => $r [ 0 ][ 'id' ],
'$uid' => $_SESSION [ 'uid' ],
));
));
return $o ;
}
else {
$filename = $a -> config [ 'imagecrop' ] . '-' . $a -> config [ 'imagecrop_resolution' ] . '.jpg' ;
$resolution = $a -> config [ 'imagecrop_resolution' ];
$o = file_get_contents ( " view/cropbody.tpl " );
$o = replace_macros ( $o , array (
$tpl = file_get_contents ( " view/cropbody.tpl " );
$o .= replace_macros ( $tpl , array (
'$filename' => $filename ,
'$profile_id' => $a -> argv [ 1 ],
'$resource' => $a -> config [ 'imagecrop' ] . '-' . $a -> config [ 'imagecrop_resolution' ],
'$image_url' => $a -> get_baseurl () . '/photo/' . $filename
));
@ -233,5 +206,5 @@ function profile_photo_content(&$a) {
return $o ;
}
return ; // NOTREACHED
}}