diff --git a/boot.php b/boot.php index b03221bf80..d02ecd344a 100644 --- a/boot.php +++ b/boot.php @@ -2,7 +2,7 @@ set_time_limit(0); -define ( 'FRIENDIKA_VERSION', '2.1.919' ); +define ( 'FRIENDIKA_VERSION', '2.1.920' ); define ( 'DFRN_PROTOCOL_VERSION', '2.1' ); define ( 'DB_UPDATE_VERSION', 1043 ); @@ -2428,6 +2428,8 @@ function get_birthdays() { $o .= '
'; foreach($r as $rr) { + if(! strlen($rr['name'])) + continue; $now = strtotime('now'); $today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false); diff --git a/images/audio.gif b/images/audio.gif new file mode 100644 index 0000000000..4be9771161 Binary files /dev/null and b/images/audio.gif differ diff --git a/images/remote-link.gif b/images/remote-link.gif index 008397fe8d..1224e3db5f 100644 Binary files a/images/remote-link.gif and b/images/remote-link.gif differ diff --git a/images/share.gif b/images/share.gif new file mode 100644 index 0000000000..035fa2e381 Binary files /dev/null and b/images/share.gif differ diff --git a/images/video.gif b/images/video.gif new file mode 100644 index 0000000000..e4d5e8cddf Binary files /dev/null and b/images/video.gif differ diff --git a/mod/display.php b/mod/display.php index 096ea16c9b..059952adca 100644 --- a/mod/display.php +++ b/mod/display.php @@ -104,7 +104,7 @@ function display_content(&$a) { $cmnt_tpl = load_view_file('view/comment_item.tpl'); - $like_tpl = load_view_file('view/like.tpl'); + $like_tpl = load_view_file('view/like_noshare.tpl'); $tpl = load_view_file('view/wall_item.tpl'); $wallwall = load_view_file('view/wallwall_item.tpl'); @@ -155,6 +155,7 @@ function display_content(&$a) { '$id' => $item['id'], '$likethis' => t("I like this \x28toggle\x29"), '$nolike' => t("I don't like this \x28toggle\x29"), + '$share' => t('Share'), '$wait' => t('Please wait') )); } diff --git a/mod/item.php b/mod/item.php index 90fb546bce..6e6e822d0c 100644 --- a/mod/item.php +++ b/mod/item.php @@ -212,6 +212,8 @@ function item_post(&$a) { if(count($tags)) { foreach($tags as $tag) { if(strpos($tag,'#') === 0) { + if(strpos($tag,'[url=')) + continue; $basetag = str_replace('_',' ',substr($tag,1)); $body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body); if(strlen($str_tags)) @@ -220,6 +222,8 @@ function item_post(&$a) { continue; } if(strpos($tag,'@') === 0) { + if(strpos($tag,'[url=')) + continue; $stat = false; $name = substr($tag,1); if((strpos($name,'@')) || (strpos($name,'http://'))) { diff --git a/mod/network.php b/mod/network.php index 32c7216d44..abdf59c486 100644 --- a/mod/network.php +++ b/mod/network.php @@ -92,6 +92,8 @@ function network_content(&$a, $update = 0) { '$upload' => t('Upload photo'), '$weblink' => t('Insert web link'), '$youtube' => t('Insert YouTube video'), + '$video' => t('Insert Vorbis [.ogg] video'), + '$audio' => t('Insert Vorbis [.ogg] audio'), '$setloc' => t('Set your location'), '$noloc' => t('Clear browser location'), '$wait' => t('Please wait'), @@ -217,6 +219,7 @@ function network_content(&$a, $update = 0) { $cmnt_tpl = load_view_file('view/comment_item.tpl'); $like_tpl = load_view_file('view/like.tpl'); + $noshare_tpl = load_view_file('view/like_noshare.tpl'); $tpl = load_view_file('view/wall_item.tpl'); $wallwall = load_view_file('view/wallwall_item.tpl'); @@ -360,10 +363,11 @@ function network_content(&$a, $update = 0) { $likebuttons = ''; if($item['id'] == $item['parent']) { - $likebuttons = replace_macros($like_tpl,array( + $likebuttons = replace_macros((($item['private']) ? $noshare_tpl : $like_tpl),array( '$id' => $item['id'], '$likethis' => t("I like this \x28toggle\x29"), '$nolike' => t("I don't like this \x28toggle\x29"), + '$share' => t('Share'), '$wait' => t('Please wait') )); } diff --git a/mod/photos.php b/mod/photos.php index 929d1c971c..4bb6e3eab4 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -1073,7 +1073,7 @@ function photos_content(&$a) { $tpl = load_view_file('view/photo_item.tpl'); $return_url = $a->cmd; - $like_tpl = load_view_file('view/like.tpl'); + $like_tpl = load_view_file('view/lik_noshare.tpl'); $likebuttons = ''; @@ -1082,6 +1082,7 @@ function photos_content(&$a) { '$id' => $item['id'], '$likethis' => t("I like this \x28toggle\x29"), '$nolike' => t("I don't like this \x28toggle\x29"), + '$share' => t('Share'), '$wait' => t('Please wait') )); } diff --git a/mod/profile.php b/mod/profile.php index 88fc16ebb1..c0989bd28a 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -157,6 +157,8 @@ function profile_content(&$a, $update = 0) { '$upload' => t('Upload photo'), '$weblink' => t('Insert web link'), '$youtube' => t('Insert YouTube video'), + '$video' => t('Insert Vorbis [.ogg] video'), + '$audio' => t('Insert Vorbis [.ogg] audio'), '$setloc' => t('Set your location'), '$noloc' => t('Clear browser location'), '$wait' => t('Please wait'), @@ -265,6 +267,7 @@ function profile_content(&$a, $update = 0) { $cmnt_tpl = load_view_file('view/comment_item.tpl'); $like_tpl = load_view_file('view/like.tpl'); + $noshare_tpl = load_view_file('view/like_noshare.tpl'); $tpl = load_view_file('view/wall_item.tpl'); @@ -307,10 +310,11 @@ function profile_content(&$a, $update = 0) { if(can_write_wall($a,$a->profile['profile_uid'])) { if($item['id'] == $item['parent']) { - $likebuttons = replace_macros($like_tpl,array( + $likebuttons = replace_macros((($item['private']) ? $noshare_tpl : $like_tpl),array( '$id' => $item['id'], '$likethis' => t("I like this \x28toggle\x29"), '$nolike' => t("I don't like this \x28toggle\x29"), + '$share' => t('Share'), '$wait' => t('Please wait') )); } diff --git a/mod/profile_photo.php b/mod/profile_photo.php index 0f84a85c92..5365aa3b87 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -87,7 +87,7 @@ function profile_photo_post(&$a) { ); // Update global directory in background - $url = $_SESSION['my_url']; + $url = $a->get_baseurl() . '/profile/' . $a->user['nickname']; if($url && strlen(get_config('system','directory_submit_url'))) proc_run('php',"include/directory.php","$url"); } diff --git a/mod/share.php b/mod/share.php new file mode 100644 index 0000000000..8a8229e8a1 --- /dev/null +++ b/mod/share.php @@ -0,0 +1,23 @@ +argc > 1) ? intval($a->argv[1]) : 0); + if((! $post_id) || (! local_user())) + killme(); + + $r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1", + intval($post_id) + ); + if(! count($r) || $r[0]['private']) + killme(); + + $o = ''; + + $o .= '♲ ' . $r[0]['author-name'] . '
'; + $o .= prepare_body($r[0]); + echo $o . '
'; + killme(); +} \ No newline at end of file diff --git a/view/de/jot-header.tpl b/view/de/jot-header.tpl index 58403f1ba6..62fbe84e48 100644 --- a/view/de/jot-header.tpl +++ b/view/de/jot-header.tpl @@ -104,6 +104,20 @@ tinyMCE.init({ } } + function jotVideoURL() { + reply = prompt("Please enter a video(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]'); + } + } + + function jotAudioURL() { + reply = prompt("Please enter an audio(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]'); + } + } + function jotGetLocation() { reply = prompt("Wo bist du im Moment?", $('#jot-location').val()); if(reply && reply.length) { @@ -111,6 +125,16 @@ tinyMCE.init({ } } + function jotShare(id) { + $('#like-rotator-' + id).show(); + $.get('share/' + id, function(data) { + tinyMCE.execCommand('mceInsertRawHTML',false,data); + $('#like-rotator-' + id).hide(); + $(window).scrollTop(0); + }); + } + + function linkdropper(event) { var linkFound = event.dataTransfer.types.contains("text/uri-list"); diff --git a/view/en/jot-header.tpl b/view/en/jot-header.tpl index fe818410e5..d73fe7d629 100644 --- a/view/en/jot-header.tpl +++ b/view/en/jot-header.tpl @@ -104,6 +104,21 @@ tinyMCE.init({ } } + function jotVideoURL() { + reply = prompt("Please enter a video(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]'); + } + } + + function jotAudioURL() { + reply = prompt("Please enter an audio(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]'); + } + } + + function jotGetLocation() { reply = prompt("Where are you right now?", $('#jot-location').val()); if(reply && reply.length) { @@ -111,6 +126,14 @@ tinyMCE.init({ } } + function jotShare(id) { + $('#like-rotator-' + id).show(); + $.get('share/' + id, function(data) { + tinyMCE.execCommand('mceInsertRawHTML',false,data); + $('#like-rotator-' + id).hide(); + $(window).scrollTop(0); + }); + } function linkdropper(event) { var linkFound = event.dataTransfer.types.contains("text/uri-list"); diff --git a/view/fr/jot-header.tpl b/view/fr/jot-header.tpl index ff7e543a5e..b1b6dacf01 100644 --- a/view/fr/jot-header.tpl +++ b/view/fr/jot-header.tpl @@ -103,6 +103,20 @@ tinyMCE.init({ } } + function jotVideoURL() { + reply = prompt("Please enter a video(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]'); + } + } + + function jotAudioURL() { + reply = prompt("Please enter an audio(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]'); + } + } + function jotGetLocation() { reply = prompt("Where are you right now?", $('#jot-location').val()); if(reply && reply.length) { @@ -110,6 +124,15 @@ tinyMCE.init({ } } + function jotShare(id) { + $('#like-rotator-' + id).show(); + $.get('share/' + id, function(data) { + tinyMCE.execCommand('mceInsertRawHTML',false,data); + $('#like-rotator-' + id).hide(); + $(window).scrollTop(0); + }); + } + function linkdropper(event) { var linkFound = event.dataTransfer.types.contains("text/uri-list"); diff --git a/view/it/jot-header.tpl b/view/it/jot-header.tpl index 117cd16511..8ca5a07174 100644 --- a/view/it/jot-header.tpl +++ b/view/it/jot-header.tpl @@ -104,6 +104,20 @@ tinyMCE.init({ } } + function jotVideoURL() { + reply = prompt("Please enter a video(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]'); + } + } + + function jotAudioURL() { + reply = prompt("Please enter an audio(.ogg) link/URL:"); + if(reply && reply.length) { + tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]'); + } + } + function jotGetLocation() { reply = prompt("Dove ti trovi ora?", $('#jot-location').val()); if(reply && reply.length) { @@ -111,6 +125,15 @@ tinyMCE.init({ } } + function jotShare(id) { + $('#like-rotator-' + id).show(); + $.get('share/' + id, function(data) { + tinyMCE.execCommand('mceInsertRawHTML',false,data); + $('#like-rotator-' + id).hide(); + $(window).scrollTop(0); + }); + } + function linkdropper(event) { var linkFound = event.dataTransfer.types.contains("text/uri-list"); diff --git a/view/jot.tpl b/view/jot.tpl index 68139ddc01..fd85b9267e 100644 --- a/view/jot.tpl +++ b/view/jot.tpl @@ -26,7 +26,13 @@ $weblink
- $youtube + $youtube +
+
+ $video +
+
+ $audio
$setloc diff --git a/view/like.tpl b/view/like.tpl index e36a624a41..4f530407e1 100644 --- a/view/like.tpl +++ b/view/like.tpl @@ -1,5 +1,6 @@
$likethis $nolike +
diff --git a/view/like_noshare.tpl b/view/like_noshare.tpl new file mode 100644 index 0000000000..e36a624a41 --- /dev/null +++ b/view/like_noshare.tpl @@ -0,0 +1,5 @@ +
+ $likethis + $nolike + +
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 54a522881f..ce75655fb9 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -206,8 +206,10 @@ div.wall-item-content-wrapper.shiny { /* from default */ #jot-perms-icon, #profile-location, -#profile-nolocation, +#profile-nolocation, +#profile-youtube, #profile-video, +#profile-audio, #profile-link, #wall-image-upload, #profile-upload-wrapper, @@ -921,6 +923,10 @@ input#dfrn-url { cursor: pointer; } +.wall-item-share-buttons { + margin-left: 10px; +} + .wall-item-links-wrapper { float: left; } @@ -1052,6 +1058,14 @@ input#dfrn-url { float: left; margin-left: 20px; } +#profile-video-wrapper { + float: left; + margin-left: 20px; +} +#profile-audio-wrapper { + float: left; + margin-left: 20px; +} #profile-location-wrapper { float: left; margin-left: 20px; @@ -1063,7 +1077,7 @@ input#dfrn-url { #profile-jot-perms { float: left; - margin-left: 200px; + margin-left: 150px; font-weight: bold; font-size: 1.2em; } diff --git a/view/theme/loozah/style.css b/view/theme/loozah/style.css index f1de801cb0..1c378793ad 100644 --- a/view/theme/loozah/style.css +++ b/view/theme/loozah/style.css @@ -107,8 +107,10 @@ blockquote:before { #jot-perms-icon, #profile-location, -#profile-nolocation, -#profile-video, +#profile-nolocation, +#profile-youtube, +#profile-video, +#profile-audio, #profile-link, #wall-image-upload, #profile-upload-wrapper, @@ -993,6 +995,10 @@ input#dfrn-url { border-right: 2px solid #fff; } +.wall-item-share-buttons { + margin-left: 5px; +} + .wall-item-links-wrapper { float: left; } @@ -1121,6 +1127,14 @@ padding: 5px 10px 0px; float: left; margin-left: 20px; } +#profile-video-wrapper { + float: left; + margin-left: 20px; +} +#profile-audio-wrapper { + float: left; + margin-left: 20px; +} #profile-location-wrapper { float: left; margin-left: 20px; @@ -1132,7 +1146,7 @@ padding: 5px 10px 0px; #profile-jot-perms { float: left; - margin-left: 200px; + margin-left: 150px; font-weight: bold; font-size: 1.2em; }