aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <git@macgirvin.com>2016-01-14 17:25:27 -0800
committerredmatrix <git@macgirvin.com>2016-01-14 17:25:27 -0800
commit64753effd1cd47c43846e5bc8653180acd7c4bc9 (patch)
tree05d14ed6842e8b657143580b6c19954542eef181
parentbe9442e7b30c27d3ab91dc79c8dd1ff721a2d260 (diff)
downloadvolse-hubzilla-64753effd1cd47c43846e5bc8653180acd7c4bc9.tar.gz
volse-hubzilla-64753effd1cd47c43846e5bc8653180acd7c4bc9.tar.bz2
volse-hubzilla-64753effd1cd47c43846e5bc8653180acd7c4bc9.zip
cover photo fetch and widget
-rwxr-xr-xboot.php15
-rw-r--r--include/identity.php35
-rw-r--r--include/widgets.php32
3 files changed, 82 insertions, 0 deletions
diff --git a/boot.php b/boot.php
index 599514d20..d184969d1 100755
--- a/boot.php
+++ b/boot.php
@@ -245,6 +245,21 @@ define ( 'PHOTO_COVER', 0x0010 );
define ( 'PHOTO_ADULT', 0x0008 );
define ( 'PHOTO_FLAG_OS', 0x4000 );
+
+define ( 'PHOTO_RES_ORIG', 0 );
+define ( 'PHOTO_RES_1024', 1 ); // rectangular 1024 max width or height, floating height if not (4:3)
+define ( 'PHOTO_RES_640', 2 ); // to accomodate SMBC vertical comic strips without scrunching the width
+define ( 'PHOTO_RES_320', 3 ); // accordingly
+
+define ( 'PHOTO_RES_PROFILE_300', 4 ); // square 300 px
+define ( 'PHOTO_RES_PROFILE_80', 5 ); // square 80 px
+define ( 'PHOTO_RES_PROFILE_48', 6 ); // square 48 px
+
+define ( 'PHOTO_RES_COVER_1200', 7 ); // 1200w x 435h (2.75:1)
+define ( 'PHOTO_RES_COVER_850', 8 ); // 850w x 310h
+define ( 'PHOTO_RES_COVER_425', 9 ); // 425w x 160h
+
+
/**
* Menu types
*/
diff --git a/include/identity.php b/include/identity.php
index 1d908056f..deccaa299 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -1737,3 +1737,38 @@ function auto_channel_create($account_id) {
}
+function get_cover_photo($channel_id,$format = 'bbcode', $res = PHOTO_RES_COVER_1200) {
+
+ $r = q("select height, width, resource_id, type from photo where uid = %d and scale = %d and photo_usage = %d",
+ intval($channel_id),
+ intval($res),
+ intval(PHOTO_COVER)
+ );
+ if(! $r)
+ return false;
+
+ $output = false;
+
+ $url = z_root() . '/photo/' . $r[0]['resource_id'] . '-' . $res ;
+
+ switch($format) {
+ case 'bbcode':
+ $output = '[zrl=' . $r[0]['width'] . 'x' . $r[0]['height'] . ']' . $url . '[/zrl]';
+ break;
+ case 'html':
+ $output = '<img class="zrl" width="' . $r[0]['width'] . '" height="' . $r[0]['height'] . '" src="' . $url . '" alt="' . t('cover photo') . '" />';
+ break;
+ case 'array':
+ default:
+ $output = array(
+ 'width' => $r[0]['width'],
+ 'height' => $r[0]['type'],
+ 'type' => $r[0]['type'],
+ 'url' => $url
+ );
+ break;
+ }
+
+ return $output;
+
+} \ No newline at end of file
diff --git a/include/widgets.php b/include/widgets.php
index 033ba44fe..7021ef49d 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -936,6 +936,38 @@ function widget_photo($arr) {
}
+function widget_cover_photo($arr) {
+
+ require_once('include/identity.php');
+ $o = '';
+
+ $channel_id = 0;
+ if(array_key_exists('channel_id', $arr) && intval($arr['channel_id']))
+ $channel_id = intval($arr['channel_id']);
+ if(! $channel_id)
+ $channel_id = get_app()->profile_uid;
+ if(! $channel_id)
+ return '';
+
+ if(array_key_exists('style', $arr) && isset($arr['style']))
+ $style = $arr['style'];
+ else
+ $style = 'width:100%; padding-right: 10px; height: auto;';
+
+ // ensure they can't sneak in an eval(js) function
+
+ if(strpos($style,'(') !== false)
+ return '';
+
+ $c = get_cover_photo($channel_id,'html');
+
+ if($c) {
+ $o = '<div class="widget">' . (($style) ? str_replace('alt=',' style="' . $style . '" alt=',$c) : $c) . '</div>';
+ }
+ return $o;
+}
+
+
function widget_photo_rand($arr) {
require_once('include/photos.php');