2010-07-23 05:22:03 +02:00
< ? php
2012-12-28 22:51:50 +01:00
require_once ( 'include/Photo.php' );
2010-07-23 05:22:03 +02:00
function wall_upload_post ( & $a ) {
2012-11-06 16:43:19 +01:00
logger ( " wall upload: starting new upload " , LOGGER_DEBUG );
2010-12-06 03:08:36 +01:00
if ( $a -> argc > 1 ) {
2012-04-22 19:37:25 +02:00
if ( ! x ( $_FILES , 'media' )) {
$nick = $a -> argv [ 1 ];
$r = q ( " SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1 " ,
dbesc ( $nick )
);
2010-12-06 03:08:36 +01:00
2012-04-22 19:37:25 +02:00
if ( ! count ( $r ))
return ;
}
else {
$user_info = api_get_user ( $a );
$r = q ( " SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1 " ,
dbesc ( $user_info [ 'screen_name' ])
);
}
2010-12-06 03:08:36 +01:00
}
else
return ;
2012-04-09 01:19:45 +02:00
2010-12-06 03:08:36 +01:00
$can_post = false ;
$visitor = 0 ;
2010-12-10 14:19:04 +01:00
$page_owner_uid = $r [ 0 ][ 'uid' ];
2012-04-09 01:19:45 +02:00
$default_cid = $r [ 0 ][ 'id' ];
2010-12-10 14:19:04 +01:00
$page_owner_nick = $r [ 0 ][ 'nickname' ];
$community_page = (( $r [ 0 ][ 'page-flags' ] == PAGE_COMMUNITY ) ? true : false );
2010-12-06 03:08:36 +01:00
if (( local_user ()) && ( local_user () == $page_owner_uid ))
$can_post = true ;
else {
if ( $community_page && remote_user ()) {
2012-09-05 07:50:28 +02:00
$cid = 0 ;
if ( is_array ( $_SESSION [ 'remote' ])) {
foreach ( $_SESSION [ 'remote' ] as $v ) {
if ( $v [ 'uid' ] == $page_owner_uid ) {
$cid = $v [ 'cid' ];
break ;
}
}
}
if ( $cid ) {
$r = q ( " SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1 " ,
intval ( $cid ),
intval ( $page_owner_uid )
);
if ( count ( $r )) {
$can_post = true ;
$visitor = $cid ;
}
2010-12-06 03:08:36 +01:00
}
}
}
if ( ! $can_post ) {
notice ( t ( 'Permission denied.' ) . EOL );
2010-10-05 01:04:52 +02:00
killme ();
}
2010-07-23 05:22:03 +02:00
2012-04-22 19:37:25 +02:00
if ( ! x ( $_FILES , 'userfile' ) && ! x ( $_FILES , 'media' ))
2010-08-03 04:06:36 +02:00
killme ();
2012-06-07 17:42:13 +02:00
if ( x ( $_FILES , 'userfile' )) {
$src = $_FILES [ 'userfile' ][ 'tmp_name' ];
$filename = basename ( $_FILES [ 'userfile' ][ 'name' ]);
$filesize = intval ( $_FILES [ 'userfile' ][ 'size' ]);
$filetype = $_FILES [ 'userfile' ][ 'type' ];
}
elseif ( x ( $_FILES , 'media' )) {
$src = $_FILES [ 'media' ][ 'tmp_name' ];
$filename = basename ( $_FILES [ 'media' ][ 'name' ]);
$filesize = intval ( $_FILES [ 'media' ][ 'size' ]);
$filetype = $_FILES [ 'media' ][ 'type' ];
}
2012-06-07 20:17:31 +02:00
if ( $filetype == " " ) $filetype = guess_image_type ( $filename );
2010-12-06 03:08:36 +01:00
$maximagesize = get_config ( 'system' , 'maximagesize' );
if (( $maximagesize ) && ( $filesize > $maximagesize )) {
2011-05-25 07:40:52 +02:00
echo sprintf ( t ( 'Image exceeds size limit of %d' ), $maximagesize ) . EOL ;
2010-12-06 03:08:36 +01:00
@ unlink ( $src );
2011-08-18 05:52:18 +02:00
killme ();
2010-12-06 03:08:36 +01:00
}
2012-06-26 01:03:46 +02:00
$r = q ( " select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' " ,
intval ( $page_owner_uid )
);
$limit = service_class_fetch ( $page_owner_uid , 'photo_upload_limit' );
if (( $limit !== false ) && (( $r [ 0 ][ 'total' ] + strlen ( $imagedata )) > $limit )) {
echo upgrade_message ( true ) . EOL ;
@ unlink ( $src );
killme ();
}
2010-07-23 07:41:45 +02:00
$imagedata = @ file_get_contents ( $src );
2012-06-07 17:42:13 +02:00
$ph = new Photo ( $imagedata , $filetype );
2010-07-23 05:22:03 +02:00
2010-10-05 01:04:52 +02:00
if ( ! $ph -> is_valid ()) {
2010-08-05 05:03:38 +02:00
echo ( t ( 'Unable to process image.' ) . EOL );
2010-07-23 07:41:45 +02:00
@ unlink ( $src );
2010-07-23 08:17:41 +02:00
killme ();
2010-07-23 07:41:45 +02:00
}
2010-07-23 05:22:03 +02:00
2012-07-08 17:18:05 +02:00
$ph -> orient ( $src );
2010-07-23 07:41:45 +02:00
@ unlink ( $src );
2010-07-23 05:22:03 +02:00
2012-07-08 17:18:05 +02:00
$max_length = get_config ( 'system' , 'max_image_length' );
if ( ! $max_length )
$max_length = MAX_IMAGE_LENGTH ;
if ( $max_length > 0 )
$ph -> scaleImage ( $max_length );
2010-07-23 07:41:45 +02:00
$width = $ph -> getWidth ();
$height = $ph -> getHeight ();
2010-09-14 07:57:31 +02:00
$hash = photo_new_resource ();
2010-07-23 07:41:45 +02:00
$smallest = 0 ;
2012-04-09 01:19:45 +02:00
$defperm = '<' . $default_cid . '>' ;
2011-06-08 07:47:15 +02:00
$r = $ph -> store ( $page_owner_uid , $visitor , $hash , $filename , t ( 'Wall Photos' ), 0 , 0 , $defperm );
2010-08-05 05:03:38 +02:00
2010-07-23 08:17:41 +02:00
if ( ! $r ) {
2010-08-05 05:03:38 +02:00
echo ( t ( 'Image upload failed.' ) . EOL );
2010-07-23 08:17:41 +02:00
killme ();
}
2010-07-23 07:41:45 +02:00
if ( $width > 640 || $height > 640 ) {
$ph -> scaleImage ( 640 );
2011-06-08 07:47:15 +02:00
$r = $ph -> store ( $page_owner_uid , $visitor , $hash , $filename , t ( 'Wall Photos' ), 1 , 0 , $defperm );
2010-07-23 08:17:41 +02:00
if ( $r )
2010-07-23 07:41:45 +02:00
$smallest = 1 ;
}
if ( $width > 320 || $height > 320 ) {
$ph -> scaleImage ( 320 );
2011-06-08 07:47:15 +02:00
$r = $ph -> store ( $page_owner_uid , $visitor , $hash , $filename , t ( 'Wall Photos' ), 2 , 0 , $defperm );
2010-07-23 08:17:41 +02:00
if ( $r )
2010-07-23 07:41:45 +02:00
$smallest = 2 ;
}
$basename = basename ( $filename );
2012-02-07 09:13:16 +01:00
2012-02-22 08:35:50 +01:00
/* mod Waitman Gobble NO WARRANTY */
//if we get the signal then return the image url info in BBCODE, otherwise this outputs the info and bails (for the ajax image uploader on wall post)
2012-06-07 17:42:13 +02:00
if ( $_REQUEST [ 'hush' ] != 'yeah' ) {
2013-01-12 14:31:32 +01:00
if ( local_user () && ( ! feature_enabled ( local_user (), 'richtext' ) || x ( $_REQUEST [ 'nomce' ])) ) {
echo " \n \n " . '[url=' . $a -> get_baseurl () . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a -> get_baseurl () . " /photo/ { $hash } - { $smallest } . " . $ph -> getExt () . " [/img][/url] \n \n " ;
}
else {
echo '<br /><br /><a href="' . $a -> get_baseurl () . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a -> get_baseurl () . " /photo/ { $hash } - { $smallest } . " . $ph -> getExt () . " \" alt= \" $basename\ " /></ a >< br />< br /> " ;
}
2012-12-03 09:43:06 +01:00
}
else {
2012-06-07 17:42:13 +02:00
$m = '[url=' . $a -> get_baseurl () . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a -> get_baseurl () . " /photo/ { $hash } - { $smallest } . " . $ph -> getExt () . " [/img][/url] " ;
2012-02-22 08:35:50 +01:00
return ( $m );
2012-06-07 17:42:13 +02:00
}
2012-02-22 08:35:50 +01:00
/* mod Waitman Gobble NO WARRANTY */
2010-07-23 07:41:45 +02:00
2010-07-23 05:22:03 +02:00
killme ();
2011-03-05 05:55:32 +01:00
// NOTREACHED
}