diff options
-rw-r--r-- | include/ItemObject.php | 10 | ||||
-rw-r--r-- | include/bookmarks.php | 2 | ||||
-rw-r--r-- | include/conversation.php | 8 | ||||
-rw-r--r-- | include/menu.php | 2 | ||||
-rw-r--r-- | mod/bookmarks.php | 34 | ||||
-rw-r--r-- | view/js/mod_connedit.js | 2 | ||||
-rw-r--r-- | view/js/mod_settings.js | 2 | ||||
-rwxr-xr-x | view/tpl/conv_item.tpl | 3 | ||||
-rwxr-xr-x | view/tpl/jot-header.tpl | 8 |
9 files changed, 66 insertions, 5 deletions
diff --git a/include/ItemObject.php b/include/ItemObject.php index e9a0b65c0..9b1a6fbcd 100644 --- a/include/ItemObject.php +++ b/include/ItemObject.php @@ -171,6 +171,15 @@ class Item extends BaseObject { ); } + $has_bookmarks = false; + if(is_array($item['term'])) { + foreach($item['term'] as $t) { + if($t['type'] == TERM_BOOKMARK) + $has_bookmarks = true; + } + } + + if($this->is_commentable()) { $like = array( t("I like this \x28toggle\x29"), t("like")); $dislike = array( t("I don't like this \x28toggle\x29"), t("dislike")); @@ -237,6 +246,7 @@ class Item extends BaseObject { 'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''), 'tagger' => ((feature_enabled($conv->get_profile_owner(),'commtag')) ? $tagger : ''), 'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''), + 'bookmark' => (($conv->get_profile_owner() == local_user() && $has_bookmarks) ? t('Bookmark Links') : ''), 'drop' => $drop, 'multidrop' => ((feature_enabled($conv->get_profile_owner(),'multi_delete')) ? $multidrop : ''), // end toolbar buttons diff --git a/include/bookmarks.php b/include/bookmarks.php index 62ec9fcab..3ca8ee1c1 100644 --- a/include/bookmarks.php +++ b/include/bookmarks.php @@ -29,7 +29,7 @@ function bookmark_add($channel,$sender,$taxonomy,$private) { $arr = array(); $arr['menu_name'] = substr($sender['xchan_hash'],0,16) . ' ' . $sender['xchan_name']; $arr['menu_desc'] = sprintf( t('%1$s\'s bookmarks'), $sender['xchan_name']); - $arr['menu_flags'] = MENU_SYSTEM|MENU_BOOKMARK; + $arr['menu_flags'] = (($sender['xchan_hash'] === $channel['channel_hash']) ? MENU_BOOKMARK : MENU_SYSTEM|MENU_BOOKMARK); $arr['menu_channel_id'] = $channel_id; $x = menu_list($arr['menu_channel_id'],$arr['menu_name'],$arr['menu_flags']); diff --git a/include/conversation.php b/include/conversation.php index 316bc1612..633435871 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1496,6 +1496,14 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ 'title' => t('Events and Calendar'), 'id' => 'events-tab', ); + + $tabs[] = array( + 'label' => t('Bookmarks'), + 'url' => $a->get_baseurl() . '/bookmarks', + 'sel' => ((argv(0) == 'bookmarks') ? 'active' : ''), + 'title' => t('Saved Bookmarks'), + 'id' => 'bookmarks-tab', + ); } if($is_owner && feature_enabled($a->profile['profile_uid'],'webpages')) { diff --git a/include/menu.php b/include/menu.php index e5bd4a680..105e4216b 100644 --- a/include/menu.php +++ b/include/menu.php @@ -110,7 +110,7 @@ function menu_create($arr) { function menu_list($channel_id, $name = '', $flags = 0) { $sel_options = ''; - $sel_options .= (($name) ? " and name = '" . protect_sprintf(dbesc($name)) . "' " : ''); + $sel_options .= (($name) ? " and menu_name = '" . protect_sprintf(dbesc($name)) . "' " : ''); $sel_options .= (($flags) ? " and menu_flags = " . intval($flags) . " " : ''); $r = q("select * from menu where menu_channel_id = %d $sel_options order by menu_name", diff --git a/mod/bookmarks.php b/mod/bookmarks.php index 25bf39a7a..fe5ec1e19 100644 --- a/mod/bookmarks.php +++ b/mod/bookmarks.php @@ -1,5 +1,39 @@ <?php +function bookmarks_init(&$a) { + if(! local_user()) + return; + $item_id = intval($_REQUEST['item']); + if(! $item_id) + return; + + $u = $a->get_channel(); + + $i = q("select * from item where id = %d and uid = %d limit 1", + intval($item_id), + intval(local_user()) + ); + if(! $i) + return; + + $i = fetch_post_tags($i); + + $item = $i[0]; + + $terms = get_terms_oftype($item['term'],TERM_BOOKMARK); + + if($terms && (! $i[0]['item_restrict'])) { + require_once('include/bookmarks.php'); + require_once('include/Contact.php'); + $s = channelx_by_hash($i[0]['author_xchan']); + foreach($terms as $t) { + bookmark_add($u,$s[0],$t,$i[0]['item_private']); + notice( t('Bookmark(s) added') . EOL); + } + } + killme(); +} + function bookmarks_content(&$a) { if(! local_user()) { notice( t('Permission denied.') . EOL); diff --git a/view/js/mod_connedit.js b/view/js/mod_connedit.js index 6bb39fb7a..7a33952dc 100644 --- a/view/js/mod_connedit.js +++ b/view/js/mod_connedit.js @@ -17,7 +17,7 @@ function connectFullShare() { $('#me_id_perms_chat').attr('checked','checked'); $('#me_id_perms_view_storage').attr('checked','checked'); $('#me_id_perms_republish').attr('checked','checked'); - $('#me_id_perms_bookmark').attr('checked','checked'); + } function connectCautiousShare() { diff --git a/view/js/mod_settings.js b/view/js/mod_settings.js index 7ede7fb73..16101db57 100644 --- a/view/js/mod_settings.js +++ b/view/js/mod_settings.js @@ -66,7 +66,7 @@ function channel_privacy_macro(n) { $('#id_write_pages option').eq(1).attr('selected','selected'); $('#id_delegate option').eq(0).attr('selected','selected'); $('#id_republish option').eq(0).attr('selected','selected'); - $('#id_bookmark option').eq(0).attr('selected','selected'); + $('#id_bookmark option').eq(1).attr('selected','selected'); $('#id_profile_in_directory_onoff .off').removeClass('hidden'); $('#id_profile_in_directory_onoff .on').addClass('hidden'); $('#id_profile_in_directory').val(0); diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 50a243ff4..869692bfa 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -85,6 +85,9 @@ {{/if}} {{if $item.filer}} <i id="filer-{{$item.id}}" onclick="itemFiler({{$item.id}}); return false;" class="filer-item icon-folder-open item-tool" title="{{$item.filer}}"></i> + {{/if}} + {{if $item.bookmark}} + <i id="bookmarker-{{$item.id}}" onclick="itemBookmark({{$item.id}}); return false;" class="bookmark-item icon-bookmark item-tool" title="{{$item.bookmark}}"></i> {{/if}} <div id="like-rotator-{{$item.id}}" class="like-rotator"></div> diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl index 878e1e7da..80421d552 100755 --- a/view/tpl/jot-header.tpl +++ b/view/tpl/jot-header.tpl @@ -185,7 +185,6 @@ function enableOnUser(){ } } - function jotGetLocation() { reply = prompt("{{$whereareu}}", $('#jot-location').val()); if(reply && reply.length) { @@ -295,6 +294,13 @@ function enableOnUser(){ } + function itemBookmark(id) { + $.get('{{$baseurl}}/bookmarks?f=&item=' + id); + if(timer) clearTimeout(timer); + timer = setTimeout(NavUpdate,1000); + } + + function jotClearLocation() { $('#jot-coord').val(''); $('#profile-nolocation-wrapper').hide(); |