diff options
-rw-r--r-- | include/widgets.php | 24 | ||||
-rw-r--r-- | view/css/widgets.css | 27 | ||||
-rw-r--r-- | view/theme/redbasic/js/redbasic.js | 24 | ||||
-rwxr-xr-x | view/tpl/cover_photo_widget.tpl | 49 |
4 files changed, 98 insertions, 26 deletions
diff --git a/include/widgets.php b/include/widgets.php index 3b8a5a7a3..96d7b5cd0 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -982,14 +982,18 @@ function widget_cover_photo($arr) { require_once('include/identity.php'); $o = ''; + $a = get_app(); + $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; + $channel_id = $a->profile_uid; if(! $channel_id) return ''; + $channel = channelx_by_n($channel_id); + if(array_key_exists('style', $arr) && isset($arr['style'])) $style = $arr['style']; else @@ -1000,10 +1004,26 @@ function widget_cover_photo($arr) { if(strpbrk($style,'(\'"<>') !== false) $style = ''; + if(array_key_exists('title', $arr) && isset($arr['title'])) + $title = $arr['title']; + else + $title = $channel['channel_name']; + + if(array_key_exists('subtitle', $arr) && isset($arr['subtitle'])) + $subtitle = $arr['subtitle']; + else + $subtitle = $channel['xchan_addr']; + $c = get_cover_photo($channel_id,'html'); if($c) { - $o = '<div id="cover-photo">' . (($style) ? str_replace('alt=',' style="' . $style . '" alt=',$c) : $c) . '</div>'; + $photo_html = (($style) ? str_replace('alt=',' style="' . $style . '" alt=',$c) : $c); + + $o = replace_macros(get_markup_template('cover_photo_widget.tpl'),array( + '$photo_html' => $photo_html, + '$title' => $title, + '$subtitle' => $subtitle, + )); } return $o; } diff --git a/view/css/widgets.css b/view/css/widgets.css index a1801ac77..db90afad9 100644 --- a/view/css/widgets.css +++ b/view/css/widgets.css @@ -122,3 +122,30 @@ li:hover .group-edit-icon { #event-upload-choose { width: 100%; } + +/* cover photo */ + +#cover-photo { + position: relative; + width: 100%; + height: auto; +} + +#cover-photo-caption { + position: absolute; + bottom: 0px; + left: 0px; + width: 100%; + padding: 15px; + color: #fff; + font-weight: bold; + text-shadow: 1px 1px 3px rgba(0,0,0,.7); +} + +.cover-photo-title { + font-size: 30px; +} + +.cover-photo-subtitle { + font-size: 20px; +} diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js index d3f9c5f70..a4e13b8eb 100644 --- a/view/theme/redbasic/js/redbasic.js +++ b/view/theme/redbasic/js/redbasic.js @@ -3,16 +3,6 @@ */ $(document).ready(function() { - //Simple cover-photo implementation - if($('#cover-photo').length && $(window).width() > 767) { - $('.navbar-fixed-top').css('position', 'relative'); - $('aside, section').css('padding-top', 0 + 'px'); - $('main').css('opacity', 0); - } - else { - $('#cover-photo').remove(); - } - // CSS3 calc() fallback (for unsupported browsers) $('body').append('<div id="css3-calc" style="width: 10px; width: calc(10px + 10px); display: none;"></div>'); if( $('#css3-calc').width() == 10) { @@ -62,17 +52,3 @@ $(document).ready(function() { } setInterval(function () {checkNotify();}, 10 * 1000); }); - -//Simple cover-photo implementation -$(window).scroll(function () { - if($('#cover-photo').length && $(window).width() > 767 && $(window).scrollTop() >= $('#cover-photo').height()) { - $('aside, section').css('padding-top', 71 + 'px'); - $(window).scrollTop($(window).scrollTop() - $('#cover-photo').height()) - $('.navbar-fixed-top').css('position', 'fixed'); - $('#cover-photo').remove(); - } - - if($('#cover-photo').length) { - $('main').css('opacity', ($(window).scrollTop()/$('#cover-photo').height()).toFixed(1)); - } -}); diff --git a/view/tpl/cover_photo_widget.tpl b/view/tpl/cover_photo_widget.tpl new file mode 100755 index 000000000..68571d257 --- /dev/null +++ b/view/tpl/cover_photo_widget.tpl @@ -0,0 +1,49 @@ +<script> + $(document).ready(function() { + if($('#cover-photo').length && $(window).width() > 755) { + $('.navbar-fixed-top').css('position', 'relative'); + $('aside, section').css('padding-top', 0 + 'px'); + $('main').css('opacity', 0); + $('header').hide(); + } + else { + $('#cover-photo').remove(); + } + }); + + $(window).scroll(function () { + if($('#cover-photo').length && $(window).width() > 755 && $(window).scrollTop() >= $('#cover-photo').height()) { + $('header').fadeIn(); + $('main').css('opacity', 1); + $('aside, section').css('padding-top', 71 + 'px'); + $(window).scrollTop($(window).scrollTop() - $('#cover-photo').height()) + $('.navbar-fixed-top').css('position', 'fixed'); + $('#cover-photo').remove(); + } + if($('#cover-photo').length) { + $('main').css('opacity', ($(window).scrollTop()/$('#cover-photo').height()).toFixed(1)); + } + }); + + $(window).resize(function () { + if($('#cover-photo').length && $(window).width() < 755) { + $('main').css('opacity', 1); + $('aside, section').css('padding-top', 71 + 'px'); + $('.navbar-fixed-top').css('position', 'fixed'); + $('#cover-photo').remove(); + } + + }); +</script> + +<div id="cover-photo"> + {{$photo_html}} + <div id="cover-photo-caption"> + <div class="cover-photo-title"> + {{$title}} + </div> + <div class="cover-photo-subtitle"> + {{$subtitle}} + </div> + </div> +</div> |