aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <git@macgirvin.com>2016-01-31 20:05:47 -0800
committerredmatrix <git@macgirvin.com>2016-01-31 20:05:47 -0800
commitfd9f792f90c2aa173627d38685829ac94909763e (patch)
tree0e69bcc603642b61e28c2b656d5afe1ecf11dc47
parente8ded61efbf678aa49f7c4445948bb91a41d41ea (diff)
downloadvolse-hubzilla-fd9f792f90c2aa173627d38685829ac94909763e.tar.gz
volse-hubzilla-fd9f792f90c2aa173627d38685829ac94909763e.tar.bz2
volse-hubzilla-fd9f792f90c2aa173627d38685829ac94909763e.zip
add album embed (embed the most recent photo with link to album)
-rw-r--r--mod/oep.php59
-rw-r--r--mod/photos.php4
2 files changed, 62 insertions, 1 deletions
diff --git a/mod/oep.php b/mod/oep.php
index d0f4bd193..1cea83e95 100644
--- a/mod/oep.php
+++ b/mod/oep.php
@@ -35,7 +35,64 @@ function oep_init(&$a) {
}
-function oep_album_reply() {
+function oep_album_reply($args) {
+
+ $ret = array();
+ $url = $args['url'];
+ $maxwidth = intval($args['maxwidth']);
+ $maxheight = intval($args['maxheight']);
+
+ if(preg_match('|//(.*?)/(.*?)/(.*?)/album/|',$url,$matches)) {
+ $chn = $matches[3];
+ $res = hex2bin(basename($url));
+ }
+
+ if(! ($chn && $res))
+ return;
+ $c = q("select * from channel where channel_address = '%s' limit 1",
+ dbesc($chn)
+ );
+
+ if(! $c)
+ return;
+
+ $sql_extra = permissions_sql($c[0]['channel_id']);
+
+ $p = q("select resource_id from photo where album = '%s' and uid = %d group by resource_id $sql_extra order by created desc",
+ dbesc($res),
+ intval($c[0]['channel_id'])
+ );
+ if(! $p)
+ return;
+
+ $res = $p[0]['resource_id'];
+
+ $r = q("select height, width, scale, resource_id from photo where uid = %d and resource_id = '%s' $sql_extra order by scale asc",
+ intval($c[0]['channel_id']),
+ dbesc($res)
+ );
+
+ if($r) {
+ foreach($r as $rr) {
+ $foundres = false;
+ if($maxheight && $rr['height'] > $maxheight)
+ continue;
+ if($maxwidth && $rr['width'] > $maxwidth)
+ continue;
+ $foundres = true;
+ break;
+ }
+
+ if($foundres) {
+ $ret['type'] = 'link';
+ $ret['thumbnail_url'] = z_root() . '/photo/' . '/' . $rr['resource_id'] . '-' . $rr['scale'];
+ $ret['thumbnail_width'] = $rr['width'];
+ $ret['thumbnail_height'] = $rr['height'];
+ }
+
+
+ }
+ return $ret;
}
diff --git a/mod/photos.php b/mod/photos.php
index d187e1d45..7864b9a18 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -660,6 +660,10 @@ function photos_content(&$a) {
$album = (($datum) ? hex2bin($datum) : '');
+
+ $a->page['htmlhead'] .= "\r\n" . '<link rel="alternate" type="application/json+oembed" href="' . z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . $a->cmd) . '" title="oembed" />' . "\r\n";
+
+
$r = q("SELECT `resource_id`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
AND `scale` <= 4 and photo_usage IN ( %d, %d ) and is_nsfw = %d $sql_extra GROUP BY `resource_id`",
intval($owner_uid),