move profile photos to new methods
This commit is contained in:
parent
bdedda7c6b
commit
bc72d3fd26
@ -342,10 +342,16 @@ function attach_by_hash_nodata($hash, $rev = 0) {
|
|||||||
*/
|
*/
|
||||||
function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
||||||
|
|
||||||
|
require_once('include/photos.php');
|
||||||
|
|
||||||
$ret = array('success' => false);
|
$ret = array('success' => false);
|
||||||
$channel_id = $channel['channel_id'];
|
$channel_id = $channel['channel_id'];
|
||||||
$sql_options = '';
|
$sql_options = '';
|
||||||
$source = (($arr) ? $arr['source'] : '');
|
$source = (($arr) ? $arr['source'] : '');
|
||||||
|
$album = (($arr) ? $arr['album'] : '');
|
||||||
|
$hash = (($arr && $arr['hash']) ? $arr['hash'] : null);
|
||||||
|
|
||||||
|
logger('arr: ' . print_r($arr,true));
|
||||||
|
|
||||||
// This is currently used only in mod/wall_attach
|
// This is currently used only in mod/wall_attach
|
||||||
|
|
||||||
@ -432,7 +438,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
|
|||||||
$mimetype = z_mime_content_type($filename);
|
$mimetype = z_mime_content_type($filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(! isset($hash))
|
if(! $hash)
|
||||||
$hash = random_string();
|
$hash = random_string();
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,9 +61,10 @@ function photo_init(&$a) {
|
|||||||
|
|
||||||
$uid = $person;
|
$uid = $person;
|
||||||
|
|
||||||
$r = q("SELECT * FROM photo WHERE scale = %d AND uid = %d AND profile = 1 LIMIT 1",
|
$r = q("SELECT * FROM photo WHERE scale = %d AND uid = %d AND photo_usage = %d LIMIT 1",
|
||||||
intval($resolution),
|
intval($resolution),
|
||||||
intval($uid)
|
intval($uid),
|
||||||
|
intval(PHOTO_PROFILE)
|
||||||
);
|
);
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
$data = dbunescbin($r[0]['data']);
|
$data = dbunescbin($r[0]['data']);
|
||||||
|
@ -217,31 +217,45 @@ function profile_photo_post(&$a) {
|
|||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
$src = $_FILES['userfile']['tmp_name'];
|
|
||||||
$filename = basename($_FILES['userfile']['name']);
|
|
||||||
$filesize = intval($_FILES['userfile']['size']);
|
|
||||||
$filetype = $_FILES['userfile']['type'];
|
|
||||||
if ($filetype=="") $filetype=guess_image_type($filename);
|
|
||||||
|
|
||||||
$maximagesize = get_config('system','maximagesize');
|
|
||||||
|
|
||||||
if(($maximagesize) && ($filesize > $maximagesize)) {
|
|
||||||
notice( sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL);
|
$hash = photo_new_resource();
|
||||||
@unlink($src);
|
$smallest = 0;
|
||||||
return;
|
|
||||||
|
require_once('include/attach.php');
|
||||||
|
|
||||||
|
$res = attach_store($a->get_channel(), get_observer_hash(), '', array('album' => t('Profile Photos'), 'hash' => $hash));
|
||||||
|
|
||||||
|
logger('attach_store: ' . print_r($res,true));
|
||||||
|
|
||||||
|
if($res && intval($res['data']['is_photo'])) {
|
||||||
|
$i = q("select * from photo where resource_id = '%s' and uid = %d order by scale",
|
||||||
|
dbesc($hash),
|
||||||
|
intval(local_channel())
|
||||||
|
);
|
||||||
|
|
||||||
|
if(! $i) {
|
||||||
|
notice( t('Image upload failed.') . EOL );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
foreach($i as $ii) {
|
||||||
|
if(intval($ii['scale']) < 2) {
|
||||||
|
$smallest = intval($ii['scale']);
|
||||||
|
$imagedata = $ii['data'];
|
||||||
|
$filetype = $ii['type'];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$imagedata = @file_get_contents($src);
|
// $imagedata = @file_get_contents($src);
|
||||||
$ph = photo_factory($imagedata, $filetype);
|
$ph = photo_factory($imagedata, $filetype);
|
||||||
|
|
||||||
if(! $ph->is_valid()) {
|
if(! $ph->is_valid()) {
|
||||||
notice( t('Unable to process image.') . EOL );
|
notice( t('Unable to process image.') . EOL );
|
||||||
@unlink($src);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$ph->orient($src);
|
|
||||||
@unlink($src);
|
return profile_photo_crop_ui_head($a, $ph, $hash, $smallest);
|
||||||
return profile_photo_crop_ui_head($a, $ph);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,7 +267,6 @@ function profile_photo_post(&$a) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('profile_photo_content')) {
|
|
||||||
function profile_photo_content(&$a) {
|
function profile_photo_content(&$a) {
|
||||||
|
|
||||||
if(! local_channel()) {
|
if(! local_channel()) {
|
||||||
@ -359,7 +372,7 @@ function profile_photo_content(&$a) {
|
|||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$filename = $a->data['imagecrop'] . '-' . $a->data['imagecrop_resolution'] . '.' . $a->data['imagecrop_ext'];
|
$filename = $a->data['imagecrop'] . '-' . $a->data['imagecrop_resolution'];
|
||||||
$resolution = $a->data['imagecrop_resolution'];
|
$resolution = $a->data['imagecrop_resolution'];
|
||||||
$tpl = get_markup_template("cropbody.tpl");
|
$tpl = get_markup_template("cropbody.tpl");
|
||||||
$o .= replace_macros($tpl,array(
|
$o .= replace_macros($tpl,array(
|
||||||
@ -376,7 +389,7 @@ function profile_photo_content(&$a) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
}}
|
}
|
||||||
|
|
||||||
/* @brief Generate the UI for photo-cropping
|
/* @brief Generate the UI for photo-cropping
|
||||||
*
|
*
|
||||||
@ -387,8 +400,8 @@ function profile_photo_content(&$a) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('profile_photo_crop_ui_head')) {
|
|
||||||
function profile_photo_crop_ui_head(&$a, $ph){
|
function profile_photo_crop_ui_head(&$a, $ph, $hash, $smallest){
|
||||||
|
|
||||||
$max_length = get_config('system','max_image_length');
|
$max_length = get_config('system','max_image_length');
|
||||||
if(! $max_length)
|
if(! $max_length)
|
||||||
@ -405,34 +418,10 @@ function profile_photo_crop_ui_head(&$a, $ph){
|
|||||||
$height = $ph->getHeight();
|
$height = $ph->getHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
$hash = photo_new_resource();
|
|
||||||
$smallest = 0;
|
|
||||||
|
|
||||||
$p = array('aid' => get_account_id(), 'uid' => local_channel(), 'resource_id' => $hash,
|
|
||||||
'filename' => $filename, 'album' => t('Profile Photos'), 'scale' => 0);
|
|
||||||
$r = $ph->save($p);
|
|
||||||
|
|
||||||
if($r)
|
|
||||||
info( t('Image uploaded successfully.') . EOL );
|
|
||||||
else
|
|
||||||
notice( t('Image upload failed.') . EOL );
|
|
||||||
|
|
||||||
if($width > 640 || $height > 640) {
|
|
||||||
$ph->scaleImage(640);
|
|
||||||
$p['scale'] = 1;
|
|
||||||
|
|
||||||
$r = $ph->save($p);
|
|
||||||
|
|
||||||
if($r === false)
|
|
||||||
notice( sprintf(t('Image size reduction [%s] failed.'),"640") . EOL );
|
|
||||||
else
|
|
||||||
$smallest = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$a->data['imagecrop'] = $hash;
|
$a->data['imagecrop'] = $hash;
|
||||||
$a->data['imagecrop_resolution'] = $smallest;
|
$a->data['imagecrop_resolution'] = $smallest;
|
||||||
$a->data['imagecrop_ext'] = $ph->getExt();
|
|
||||||
$a->page['htmlhead'] .= replace_macros(get_markup_template("crophead.tpl"), array());
|
$a->page['htmlhead'] .= replace_macros(get_markup_template("crophead.tpl"), array());
|
||||||
return;
|
return;
|
||||||
}}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user