From e24fd2410d69d433854a34772450ce2164858e77 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 7 Oct 2012 15:28:05 -0700 Subject: [PATCH 01/10] rev update --- boot.php | 2 +- util/messages.po | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/boot.php b/boot.php index d52607503..a0438ad49 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1486' ); +define ( 'FRIENDICA_VERSION', '3.0.1489' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1156 ); diff --git a/util/messages.po b/util/messages.po index f770b636f..c63d46a54 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1486\n" +"Project-Id-Version: 3.0.1489\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-04 10:00-0700\n" +"POT-Creation-Date: 2012-10-07 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -148,7 +148,7 @@ msgstr "" #: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93 #: ../../addon/drpost/drpost.php:110 ../../addon/startpage/startpage.php:92 #: ../../addon/geonames/geonames.php:187 ../../addon/oembed.old/oembed.php:41 -#: ../../addon/forumlist/forumlist.php:164 +#: ../../addon/forumlist/forumlist.php:175 #: ../../addon/impressum/impressum.php:83 #: ../../addon/notimeline/notimeline.php:64 ../../addon/blockem/blockem.php:57 #: ../../addon/qcomment/qcomment.php:61 @@ -5284,11 +5284,11 @@ msgid "%s - Click to open/close" msgstr "" #: ../../addon/page/page.php:62 ../../addon/page/page.php:92 -#: ../../addon/forumlist/forumlist.php:56 +#: ../../addon/forumlist/forumlist.php:60 msgid "Forums" msgstr "" -#: ../../addon/page/page.php:130 ../../addon/forumlist/forumlist.php:90 +#: ../../addon/page/page.php:130 ../../addon/forumlist/forumlist.php:94 msgid "Forums:" msgstr "" @@ -6133,30 +6133,34 @@ msgstr "" msgid "URL to embed:" msgstr "" -#: ../../addon/forumlist/forumlist.php:59 +#: ../../addon/forumlist/forumlist.php:63 msgid "show/hide" msgstr "" -#: ../../addon/forumlist/forumlist.php:73 +#: ../../addon/forumlist/forumlist.php:77 msgid "No forum subscriptions" msgstr "" -#: ../../addon/forumlist/forumlist.php:126 +#: ../../addon/forumlist/forumlist.php:131 msgid "Forumlist settings updated." msgstr "" -#: ../../addon/forumlist/forumlist.php:151 +#: ../../addon/forumlist/forumlist.php:159 msgid "Forumlist Settings" msgstr "" -#: ../../addon/forumlist/forumlist.php:153 +#: ../../addon/forumlist/forumlist.php:161 msgid "Randomise forum list" msgstr "" -#: ../../addon/forumlist/forumlist.php:156 +#: ../../addon/forumlist/forumlist.php:164 msgid "Show forums on profile page" msgstr "" +#: ../../addon/forumlist/forumlist.php:167 +msgid "Show forums on network page" +msgstr "" + #: ../../addon/impressum/impressum.php:37 msgid "Impressum" msgstr "" From c3cf459b278b8eb833d1baa56897cd58f73eadc8 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Tue, 9 Oct 2012 09:35:32 -0600 Subject: [PATCH 02/10] use getWidth and getHeight, which are agnostic to Imagick being enabled --- include/Photo.php | 64 ++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/include/Photo.php b/include/Photo.php index 25a2b7080..ec967ac74 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -129,11 +129,12 @@ class Photo { $this->image->setCompressionQuality($quality); } - $this->width = $this->image->getImageWidth(); + // The 'width' and 'height' properties are only used by non-Imagick routines. + $this->width = $this->image->getImageWidth(); $this->height = $this->image->getImageHeight(); $this->valid = true; - return true; + return true; } $this->valid = false; @@ -205,8 +206,8 @@ class Photo { if(!$this->is_valid()) return FALSE; - $width = $this->width; - $height = $this->height; + $width = $this->getWidth(); + $height = $this->getHeight(); $dest_width = $dest_height = 0; @@ -263,24 +264,25 @@ class Photo { if($this->is_imagick()) { - /** - * If it is not animated, there will be only one iteration here, - * so don't bother checking - */ - // Don't forget to go back to the first frame - $this->image->setFirstIterator(); - do { + /** + * If it is not animated, there will be only one iteration here, + * so don't bother checking + */ + // Don't forget to go back to the first frame + $this->image->setFirstIterator(); + do { // FIXME - implement horizantal bias for scaling as in followin GD functions // to allow very tall images to be constrained only horizontally. - $this->image->scaleImage($dest_width, $dest_height); - } while ($this->image->nextImage()); + $this->image->scaleImage($dest_width, $dest_height); + } while ($this->image->nextImage()); - // FIXME - also we need to copy the new dimensions to $this->height, $this->width as other functions - // may rely on it. + // These may not be necessary any more + $this->width = $this->image->getImageWidth(); + $this->height = $this->image->getImageHeight(); - return; + return; } @@ -402,8 +404,8 @@ class Photo { return FALSE; - $width = $this->width; - $height = $this->height; + $width = $this->getWidth(); + $height = $this->getHeight(); $dest_width = $dest_height = 0; @@ -483,19 +485,19 @@ class Photo { if(!$this->is_valid()) return FALSE; - if($this->is_imagick()) { - $this->image->setFirstIterator(); - do { - $this->image->cropImage($w, $h, $x, $y); - /** - * We need to remove the canva, - * or the image is not resized to the crop: - * http://php.net/manual/en/imagick.cropimage.php#97232 - */ - $this->image->setImagePage(0, 0, 0, 0); - } while ($this->image->nextImage()); - return $this->scaleImage($max); - } + if($this->is_imagick()) { + $this->image->setFirstIterator(); + do { + $this->image->cropImage($w, $h, $x, $y); + /** + * We need to remove the canva, + * or the image is not resized to the crop: + * http://php.net/manual/en/imagick.cropimage.php#97232 + */ + $this->image->setImagePage(0, 0, 0, 0); + } while ($this->image->nextImage()); + return $this->scaleImage($max); + } $dest = imagecreatetruecolor( $max, $max ); imagealphablending($dest, false); From 0ea89852d20e3bc99433c8d1392bf552269f6755 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Tue, 9 Oct 2012 09:41:33 -0600 Subject: [PATCH 03/10] allow themes to decide where live updates appear --- include/conversation.php | 67 ++++++++++++++++--- mod/community.php | 2 - mod/display.php | 6 +- mod/network.php | 25 ------- mod/notes.php | 4 -- mod/profile.php | 13 +--- mod/search.php | 4 +- view/conversation.tpl | 2 + view/theme/dispy/conversation.tpl | 2 + view/theme/dispy/threaded_conversation.tpl | 15 +++++ view/theme/facepark/conversation.tpl | 2 + view/theme/frost-mobile/conversation.tpl | 2 + .../frost-mobile/threaded_conversation.tpl | 2 + view/theme/quattro/conversation.tpl | 2 + view/theme/vier/threaded_conversation.tpl | 2 + view/threaded_conversation.tpl | 2 + 16 files changed, 93 insertions(+), 59 deletions(-) create mode 100644 view/theme/dispy/threaded_conversation.tpl diff --git a/include/conversation.php b/include/conversation.php index b41f3f0b7..6b7c3afb0 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -374,33 +374,79 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $ssl_state = ((local_user()) ? true : false); $profile_owner = 0; - $page_writeable = false; + $page_writeable = false; + $live_update_div = ''; $previewing = (($preview) ? ' preview ' : ''); if($mode === 'network') { $profile_owner = local_user(); $page_writeable = true; - } + if(!$update) { + // The special div is needed for liveUpdate to kick in for this page. + // We only launch liveUpdate if you aren't filtering in some incompatible + // way and also you aren't writing a comment (discovered in javascript). - if($mode === 'profile') { + $live_update_div = '
' . "\r\n" + . "\r\n"; + } + } + else if($mode === 'profile') { $profile_owner = $a->profile['profile_uid']; $page_writeable = can_write_wall($a,$profile_owner); - } - if($mode === 'notes') { + if(!$update) { + $tab = notags(trim($_GET['tab'])); + if($tab === 'posts') { + // This is ugly, but we can't pass the profile_uid through the session to the ajax updater, + // because browser prefetching might change it on us. We have to deliver it with the page. + + $live_update_div = '
' . "\r\n" + . "\r\n"; + } + } + } + else if($mode === 'notes') { $profile_owner = local_user(); $page_writeable = true; + if(!$update) { + $live_update_div = '
' . "\r\n" + . "\r\n"; + } } - - if($mode === 'display') { + else if($mode === 'display') { $profile_owner = $a->profile['uid']; $page_writeable = can_write_wall($a,$profile_owner); + $live_update_div = '
' . "\r\n"; } - - if($mode === 'community') { + else if($mode === 'community') { $profile_owner = 0; $page_writeable = false; + if(!$update) { + $live_update_div = '
' . "\r\n" + . "\r\n"; + } + } + else if($mode === 'search') { + $live_update_div = '' . "\r\n"; } $page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false); @@ -630,7 +676,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $o = replace_macros($page_template, array( '$baseurl' => $a->get_baseurl($ssl_state), - '$remove' => t('remove'), + '$live_update' => $live_update_div, + '$remove' => t('remove'), '$mode' => $mode, '$user' => $a->user, '$threads' => $threads, diff --git a/mod/community.php b/mod/community.php index 4f6c3d3c9..defc873b0 100644 --- a/mod/community.php +++ b/mod/community.php @@ -32,8 +32,6 @@ function community_content(&$a, $update = 0) { $o .= '

' . t('Community') . '

'; if(! $update) { nav_set_selected('community'); - $o .= '
' . "\r\n"; - $o .= "\r\n"; } if(x($a->data,'search')) diff --git a/mod/display.php b/mod/display.php index 64df4cc6a..be4a0ab9f 100644 --- a/mod/display.php +++ b/mod/display.php @@ -14,7 +14,7 @@ function display_content(&$a) { require_once('include/acl_selectors.php'); - $o = '
' . "\r\n"; + $o = ''; $a->page['htmlhead'] .= get_markup_template('display-head.tpl'); @@ -78,7 +78,7 @@ function display_content(&$a) { return; } - if ($is_owner) + if ($is_owner) { $celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false); $x = array( @@ -93,7 +93,7 @@ function display_content(&$a) { 'profile_uid' => local_user() ); $o .= status_editor($a,$x,0,true); - + } $sql_extra = item_permissions_sql($a->profile['uid'],$remote_contact,$groups); diff --git a/mod/network.php b/mod/network.php index ef1fd877b..4d3603843 100644 --- a/mod/network.php +++ b/mod/network.php @@ -584,31 +584,6 @@ function network_content(&$a, $update = 0) { $o .= get_events(); } - if(! $update) { - // The special div is needed for liveUpdate to kick in for this page. - // We only launch liveUpdate if you aren't filtering in some incompatible - // way and also you aren't writing a comment (discovered in javascript). - - $o .= '
' . "\r\n"; - $o .= "\r\n"; - } - $sql_extra3 = ''; if($datequery) { diff --git a/mod/notes.php b/mod/notes.php index afaa60f70..62796ed13 100644 --- a/mod/notes.php +++ b/mod/notes.php @@ -66,10 +66,6 @@ function notes_content(&$a,$update = false) { $o .= status_editor($a,$x,$a->contact['id']); - $o .= '
' . "\r\n"; - $o .= "\r\n"; - } // Construct permissions diff --git a/mod/profile.php b/mod/profile.php index b33b181de..e7135515f 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -8,8 +8,6 @@ function profile_init(&$a) { if(! x($a->page,'aside')) $a->page['aside'] = ''; - $blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); - if($a->argc > 1) $which = $a->argv[1]; else { @@ -33,6 +31,7 @@ function profile_init(&$a) { profile_load($a,$which,$profile); + $blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); $userblock = (($a->profile['hidewall'] && (! local_user()) && (! remote_user())) ? true : false); if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) { @@ -309,16 +308,6 @@ function profile_content(&$a, $update = 0) { $o .= get_events(); } - if((! $update) && ($tab === 'posts')) { - - // This is ugly, but we can't pass the profile_uid through the session to the ajax updater, - // because browser prefetching might change it on us. We have to deliver it with the page. - - $o .= '
' . "\r\n"; - $o .= "\r\n"; - } - if($is_owner) { $r = q("UPDATE `item` SET `unseen` = 0 diff --git a/mod/search.php b/mod/search.php index 87c72367e..ac848a0ce 100644 --- a/mod/search.php +++ b/mod/search.php @@ -93,9 +93,7 @@ function search_content(&$a) { require_once('include/security.php'); require_once('include/conversation.php'); - $o = '' . "\r\n"; - - $o .= '

' . t('Search') . '

'; + $o = '

' . t('Search') . '

'; if(x($a->data,'search')) $search = notags(trim($a->data['search'])); diff --git a/view/conversation.tpl b/view/conversation.tpl index fccd9a8bb..0e1464621 100644 --- a/view/conversation.tpl +++ b/view/conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $thread }}
{{ for $thread.items as $item }} diff --git a/view/theme/dispy/conversation.tpl b/view/theme/dispy/conversation.tpl index 4a93dacf3..8eae2d6d1 100644 --- a/view/theme/dispy/conversation.tpl +++ b/view/theme/dispy/conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $thread }}
{{ for $thread.items as $item }} diff --git a/view/theme/dispy/threaded_conversation.tpl b/view/theme/dispy/threaded_conversation.tpl new file mode 100644 index 000000000..3afb02c6a --- /dev/null +++ b/view/theme/dispy/threaded_conversation.tpl @@ -0,0 +1,15 @@ +$live_update + +{{ for $threads as $item }} +{{ inc $item.template }}{{ endinc }} +{{ endfor }} + +
+ +{{ if $dropping }} + +
+{{ endif }} diff --git a/view/theme/facepark/conversation.tpl b/view/theme/facepark/conversation.tpl index fccd9a8bb..0e1464621 100644 --- a/view/theme/facepark/conversation.tpl +++ b/view/theme/facepark/conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $thread }}
{{ for $thread.items as $item }} diff --git a/view/theme/frost-mobile/conversation.tpl b/view/theme/frost-mobile/conversation.tpl index 43b4d63ff..54ddafbb1 100644 --- a/view/theme/frost-mobile/conversation.tpl +++ b/view/theme/frost-mobile/conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $thread }}
{{ for $thread.items as $item }} diff --git a/view/theme/frost-mobile/threaded_conversation.tpl b/view/theme/frost-mobile/threaded_conversation.tpl index 6e017ac29..26ff683f2 100644 --- a/view/theme/frost-mobile/threaded_conversation.tpl +++ b/view/theme/frost-mobile/threaded_conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $item }} {{ inc $item.template }}{{ endinc }} {{ endfor }} diff --git a/view/theme/quattro/conversation.tpl b/view/theme/quattro/conversation.tpl index 0d0faac37..36afc392e 100644 --- a/view/theme/quattro/conversation.tpl +++ b/view/theme/quattro/conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $thread }}
{{ for $thread.items as $item }} diff --git a/view/theme/vier/threaded_conversation.tpl b/view/theme/vier/threaded_conversation.tpl index 13c38acb2..ad510185e 100644 --- a/view/theme/vier/threaded_conversation.tpl +++ b/view/theme/vier/threaded_conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $item }}
diff --git a/view/threaded_conversation.tpl b/view/threaded_conversation.tpl index f60839e49..56adc8c96 100644 --- a/view/threaded_conversation.tpl +++ b/view/threaded_conversation.tpl @@ -1,3 +1,5 @@ +$live_update + {{ for $threads as $item }} {{ inc $item.template }}{{ endinc }} {{ endfor }} From 96a245409b04f32c1610843b0b784ab65981500a Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Tue, 9 Oct 2012 09:45:54 -0600 Subject: [PATCH 04/10] allow changing the lockview content with a plugin --- mod/lockview.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mod/lockview.php b/mod/lockview.php index 0307103f8..0ae54c8c1 100644 --- a/mod/lockview.php +++ b/mod/lockview.php @@ -24,8 +24,13 @@ function lockview_content(&$a) { if(! count($r)) killme(); $item = $r[0]; - if($item['uid'] != local_user()) + + call_hooks('lockview_content', $item); + + if($item['uid'] != local_user()) { + echo t('Remote privacy information not available.') . '
'; killme(); + } if(($item['private'] == 1) && (! strlen($item['allow_cid'])) && (! strlen($item['allow_gid'])) From 86d6f380dcca6f6446d9ab2bc5c3d46bb8db6001 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Tue, 9 Oct 2012 09:47:14 -0600 Subject: [PATCH 05/10] add home_init hook to manage to call startpage plugin --- mod/manage.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mod/manage.php b/mod/manage.php index 4bc7a3bab..1b8e2f1e2 100644 --- a/mod/manage.php +++ b/mod/manage.php @@ -75,7 +75,10 @@ function manage_post(&$a) { if($limited_id) $_SESSION['submanage'] = $original_id; - goaway($a->get_baseurl(true) . '/profile/' . $a->user['nickname']); + $ret = array(); + call_hooks('home_init',$ret); + + goaway( $a->get_baseurl() . "/profile/" . $a->user['nickname'] ); // NOTREACHED } From b9818185db7e326fca3f98c4da3711eff5aacea3 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Tue, 9 Oct 2012 09:50:24 -0600 Subject: [PATCH 06/10] for profile and photos, detect contacts from local hub and auto-redir --- include/redir.php | 60 +++++++++++++++++++++++++++++++++++++++++++++++ mod/photos.php | 4 ++++ mod/profile.php | 4 ++++ 3 files changed, 68 insertions(+) create mode 100644 include/redir.php diff --git a/include/redir.php b/include/redir.php new file mode 100644 index 000000000..ecc07dfbe --- /dev/null +++ b/include/redir.php @@ -0,0 +1,60 @@ +user['nickname']), + dbesc(NETWORK_DFRN) + ); + if(!$r || $r[0]['id'] == remote_user()) + return; + + + $r = q("SELECT * FROM contact WHERE nick = '%s' AND network = '%s' AND uid = %d LIMIT 1", + dbesc($contact_nick), + dbesc(NETWORK_DFRN), + intval(local_user()) + ); + + if(! $r) + return; + + $cid = $r[0]['id']; + + $dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']); + + if($r[0]['duplex'] && $r[0]['issued-id']) { + $orig_id = $r[0]['issued-id']; + $dfrn_id = '1:' . $orig_id; + } + if($r[0]['duplex'] && $r[0]['dfrn-id']) { + $orig_id = $r[0]['dfrn-id']; + $dfrn_id = '0:' . $orig_id; + } + + $sec = random_string(); + + q("INSERT INTO `profile_check` ( `uid`, `cid`, `dfrn_id`, `sec`, `expire`) + VALUES( %d, %s, '%s', '%s', %d )", + intval(local_user()), + intval($cid), + dbesc($dfrn_id), + dbesc($sec), + intval(time() + 45) + ); + + $url = curPageURL(); + + logger('check_redir: ' . $r[0]['name'] . ' ' . $sec, LOGGER_DEBUG); + $dest = (($url) ? '&destination_url=' . $url : ''); + goaway ($r[0]['poll'] . '?dfrn_id=' . $dfrn_id + . '&dfrn_version=' . DFRN_PROTOCOL_VERSION . '&type=profile&sec=' . $sec . $dest ); + } + + return; +} + + diff --git a/mod/photos.php b/mod/photos.php index 9a3a402a4..7108e9569 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -4,14 +4,18 @@ require_once('include/items.php'); require_once('include/acl_selectors.php'); require_once('include/bbcode.php'); require_once('include/security.php'); +require_once('include/redir.php'); function photos_init(&$a) { + if($a->argc > 1) + auto_redir($a, $a->argv[1]); if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { return; } + $o = ''; if($a->argc > 1) { diff --git a/mod/profile.php b/mod/profile.php index b33b181de..3eb97e157 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -1,6 +1,7 @@ user['nickname']; $profile = $a->argv[1]; } + else { + auto_redir($a, $which); + } profile_load($a,$which,$profile); From 17679152d5eec1e65af72ad45cabfea9807463db Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 9 Oct 2012 17:00:29 -0700 Subject: [PATCH 07/10] rev update --- boot.php | 2 +- util/messages.po | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/boot.php b/boot.php index a0438ad49..1aa5ba13f 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1489' ); +define ( 'FRIENDICA_VERSION', '3.0.1491' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1156 ); diff --git a/util/messages.po b/util/messages.po index c63d46a54..aa6120ae6 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1489\n" +"Project-Id-Version: 3.0.1491\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-07 10:00-0700\n" +"POT-Creation-Date: 2012-10-09 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 987b8b48809f5f9835f3b5de5b4d2d06cab21c4a Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 9 Oct 2012 17:03:00 -0700 Subject: [PATCH 08/10] tinymce tag complete - only replace tagged text --- js/fk.autocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/fk.autocomplete.js b/js/fk.autocomplete.js index b1db92c41..b1bc40be2 100644 --- a/js/fk.autocomplete.js +++ b/js/fk.autocomplete.js @@ -104,7 +104,7 @@ ACPopup.prototype._search = function(){ else { txt = tinyMCE.activeEditor.getContent(); // alert(that.searchText + ':' + t); - newtxt = txt.replace(that.searchText,t+' '); + newtxt = txt.replace('@' + that.searchText,'@' + t +' '); tinyMCE.activeEditor.setContent(newtxt); tinyMCE.activeEditor.focus(); that.close(); From 675aa56b029976647d788b785ef59e540c7b9c36 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 10 Oct 2012 15:57:40 -0700 Subject: [PATCH 09/10] rev update - prevent messages with no parent from being counted as unseen, because they cannot ever be cleared --- boot.php | 2 +- mod/ping.php | 4 ++-- util/messages.po | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index 1aa5ba13f..60a255add 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1491' ); +define ( 'FRIENDICA_VERSION', '3.0.1492' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1156 ); diff --git a/mod/ping.php b/mod/ping.php index 9704fe700..6520dc77a 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -63,8 +63,8 @@ function ping_init(&$a) { `item`.`contact-id`, `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`, `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink` FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` - WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND - `item`.`deleted` = 0 AND `item`.`uid` = %d + WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND + `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`parent` != 0 ORDER BY `item`.`created` DESC", intval(local_user()) ); diff --git a/util/messages.po b/util/messages.po index aa6120ae6..d535adce0 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1491\n" +"Project-Id-Version: 3.0.1492\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-09 10:00-0700\n" +"POT-Creation-Date: 2012-10-10 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 816db4396a65942248462e2c61b784b217625896 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 10 Oct 2012 16:17:40 -0700 Subject: [PATCH 10/10] better fix for threads with no parent showing up as unseen --- mod/notifications.php | 2 +- mod/ping.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/notifications.php b/mod/notifications.php index b28b1478d..88c0b938d 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -229,7 +229,7 @@ function notifications_content(&$a) { `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`, `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink` FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` - WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND + WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND `pitem`.`parent` != 0 `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" , intval(local_user()) ); diff --git a/mod/ping.php b/mod/ping.php index 6520dc77a..a5bf315b5 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -64,7 +64,7 @@ function ping_init(&$a) { `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink` FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent` WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND - `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`parent` != 0 + `item`.`deleted` = 0 AND `item`.`uid` = %d AND `pitem`.`parent` != 0 ORDER BY `item`.`created` DESC", intval(local_user()) );