aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/photos.php61
1 files changed, 25 insertions, 36 deletions
diff --git a/include/photos.php b/include/photos.php
index 618f36fb1..e78b899e0 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -185,11 +185,11 @@ function photo_upload($channel, $observer, $args) {
if($args['description'])
$p['description'] = $args['description'];
- $r1 = $ph->save($p);
- if(! $r1)
+ $r0 = $ph->save($p);
+ $r0wxh = $ph->getWidth() . 'x' . $ph->getHeight();
+ if(! $r0)
$errors = true;
-
unset($p['os_storage']);
unset($p['os_path']);
@@ -197,18 +197,18 @@ function photo_upload($channel, $observer, $args) {
$ph->scaleImage(1024);
$p['scale'] = 1;
- $r2 = $ph->save($p);
- $smallest = 1;
- if(! $r2)
+ $r1 = $ph->save($p);
+ $r1wxh = $ph->getWidth() . 'x' . $ph->getHeight();
+ if(! $r1)
$errors = true;
if(($width > 640 || $height > 640) && (! $errors))
$ph->scaleImage(640);
$p['scale'] = 2;
- $r3 = $ph->save($p);
- $smallest = 2;
- if(! $r3)
+ $r2 = $ph->save($p);
+ $r2wxh = $ph->getWidth() . 'x' . $ph->getHeight();
+ if(! $r2)
$errors = true;
if(($width > 320 || $height > 320) && (! $errors))
@@ -216,7 +216,7 @@ function photo_upload($channel, $observer, $args) {
$p['scale'] = 3;
$r3 = $ph->save($p);
- $smallest = 3;
+ $r3wxh = $ph->getWidth() . 'x' . $ph->getHeight();
if(! $r3)
$errors = true;
@@ -231,12 +231,6 @@ function photo_upload($channel, $observer, $args) {
return $ret;
}
- // This will be the width and height of the smallest representation
-
- $width_x_height = $ph->getWidth() . 'x' . $ph->getHeight();
-
- // Create item container
-
$item_hidden = (($visible) ? 0 : 1 );
$lat = $lon = null;
@@ -248,6 +242,19 @@ function photo_upload($channel, $observer, $args) {
}
}
+ $larger = feature_enabled($channel['channel_id'], 'large_photos');
+
+ if($larger) {
+ $tag = (($r1wxh) ? '[zmg=' . $r1wxh . ']' : '[zmg]');
+ $scale = 1;
+ }
+ else {
+ $tag = (($r2wxh) ? '[zmg=' . $r2wxh . ']' : '[zmg]');
+ $scale = 2;
+ }
+
+ // Create item container
+
if($args['item']) {
foreach($args['item'] as $i) {
@@ -257,7 +264,7 @@ function photo_upload($channel, $observer, $args) {
if($item['mid'] === $item['parent_mid']) {
$item['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']'
- . $tag . z_root() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/zmg]'
+ . $tag . z_root() . "/photo/{$photo_hash}-{$scale}.".$ph->getExt() . '[/zmg]'
. '[/zrl]';
if($item['author_xchan'] === $channel['channel_hash']) {
@@ -319,26 +326,8 @@ function photo_upload($channel, $observer, $args) {
$arr['item_private'] = intval($acl->is_private());
$arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid'];
- // We should also put a width_x_height on large photos. Left as an exercise for
- // devs looking for simple stuff to fix.
-
- $larger = feature_enabled($channel['channel_id'], 'large_photos');
- if($larger) {
- $tag = '[zmg]';
- if($r2)
- $smallest = 1;
- else
- $smallest = 0;
- }
- else {
- if ($width_x_height)
- $tag = '[zmg=' . $width_x_height. ']';
- else
- $tag = '[zmg]';
- }
-
$arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']'
- . $tag . z_root() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/zmg]'
+ . $tag . z_root() . "/photo/{$photo_hash}-{$scale}.".$ph->getExt() . '[/zmg]'
. '[/zrl]';
$result = item_store($arr);