aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitattributes2
-rw-r--r--boot.php43
-rw-r--r--include/Contact.php17
-rw-r--r--include/Photo.php113
-rw-r--r--include/api.php1
-rw-r--r--include/conversation.php4
-rw-r--r--include/datetime.php2
-rw-r--r--include/enotify.php62
-rwxr-xr-xinclude/items.php121
-rw-r--r--include/onepoll.php27
-rw-r--r--include/poller.php4
-rw-r--r--include/queue_fn.php7
-rw-r--r--include/text.php21
-rw-r--r--index.php9
-rw-r--r--mod/contacts.php2
-rw-r--r--mod/dfrn_request.php15
-rw-r--r--mod/manage.php5
-rw-r--r--mod/network.php215
-rw-r--r--mod/profile.php40
-rw-r--r--util/messages.po738
-rw-r--r--view/categories_widget.tpl1
-rw-r--r--view/contact_block.tpl1
-rw-r--r--view/contact_edit.tpl3
-rw-r--r--view/conversation.tpl2
-rw-r--r--view/posted_date_widget.tpl9
-rw-r--r--view/search_item.tpl2
-rw-r--r--view/theme/dispy/conversation.tpl2
-rw-r--r--view/theme/duepuntozero/style.css6
-rw-r--r--view/theme/facepark/conversation.tpl2
-rw-r--r--view/theme/quattro/conversation.tpl7
-rw-r--r--view/theme/slackr/style.css14
-rw-r--r--view/theme/testbubble/conversation.tpl2
-rw-r--r--view/wall_item.tpl2
-rw-r--r--view/wallwall_item.tpl2
34 files changed, 979 insertions, 524 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..4be1c9185
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Disable LF normalization for all files
+* -text \ No newline at end of file
diff --git a/boot.php b/boot.php
index 24ab5da82..01dcb6a1d 100644
--- a/boot.php
+++ b/boot.php
@@ -4,12 +4,13 @@ require_once('include/config.php');
require_once('include/network.php');
require_once('include/plugin.php');
require_once('include/text.php');
+require_once('include/datetime.php');
require_once('include/pgettext.php');
require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
-define ( 'FRIENDICA_VERSION', '3.0.1369' );
+define ( 'FRIENDICA_VERSION', '3.0.1375' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1149 );
@@ -333,6 +334,12 @@ if(! class_exists('App')) {
function __construct() {
+ global $default_timezone;
+
+ $this->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
+
+ date_default_timezone_set($this->timezone);
+
$this->config = array();
$this->page = array();
$this->pager= array();
@@ -407,9 +414,6 @@ if(! class_exists('App')) {
$this->argc = count($this->argv);
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
$this->module = str_replace(".", "_", $this->argv[0]);
- if(array_key_exists('2',$this->argv)) {
- $this->category = $this->argv[2];
- }
}
else {
$this->argc = 1;
@@ -432,7 +436,7 @@ if(! class_exists('App')) {
* pagination
*/
- $this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1);
+ $this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
$this->pager['itemspage'] = 50;
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
$this->pager['total'] = 0;
@@ -499,7 +503,7 @@ if(! class_exists('App')) {
}
function set_pager_itemspage($n) {
- $this->pager['itemspage'] = intval($n);
+ $this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
}
@@ -1573,3 +1577,30 @@ function zrl($s,$force = false) {
return $s . $achar . 'zrl=' . urlencode($mine);
return $s;
}
+
+/**
+* returns querystring as string from a mapped array
+*
+* @param params Array
+* @return string
+*/
+function build_querystring($params, $name=null) {
+ $ret = "";
+ foreach($params as $key=>$val) {
+ if(is_array($val)) {
+ if($name==null) {
+ $ret .= build_querystring($val, $key);
+ } else {
+ $ret .= build_querystring($val, $name."[$key]");
+ }
+ } else {
+ $val = urlencode($val);
+ if($name!=null) {
+ $ret.=$name."[$key]"."=$val&";
+ } else {
+ $ret.= "$key=$val&";
+ }
+ }
+ }
+ return $ret;
+}
diff --git a/include/Contact.php b/include/Contact.php
index 675d1c81e..14e1a52cd 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -139,6 +139,10 @@ function terminate_friendship($user,$self,$contact) {
if(! function_exists('mark_for_death')) {
function mark_for_death($contact) {
+
+ if($contact['archive'])
+ return;
+
if($contact['term-date'] == '0000-00-00 00:00:00') {
q("UPDATE `contact` SET `term-date` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
@@ -146,12 +150,23 @@ function mark_for_death($contact) {
);
}
else {
+
+ // TODO: We really should send a notification to the owner after 2-3 weeks
+ // so they won't be surprised when the contact vanishes and can take
+ // remedial action if this was a serious mistake or glitch
+
$expiry = $contact['term-date'] . ' + 32 days ';
if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) {
// relationship is really truly dead.
+ // archive them rather than delete
+ // though if the owner tries to unarchive them we'll start the whole process over again
+
+ q("update contact set `archive` = 1 where id = %d limit 1",
+ intval($contact['id'])
+ );
- contact_remove($contact['id']);
+ //contact_remove($contact['id']);
}
}
diff --git a/include/Photo.php b/include/Photo.php
index f769a70a6..aa6f5f113 100644
--- a/include/Photo.php
+++ b/include/Photo.php
@@ -256,35 +256,81 @@ class Photo {
else
$guid = get_guid();
- $r = q("INSERT INTO `photo`
- ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
- VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )",
- intval($uid),
- intval($cid),
- dbesc($guid),
- dbesc($rid),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc(basename($filename)),
- dbesc($this->type),
- dbesc($album),
- intval($this->height),
- intval($this->width),
- dbesc($this->imageString()),
- intval($scale),
- intval($profile),
- dbesc($allow_cid),
- dbesc($allow_gid),
- dbesc($deny_cid),
- dbesc($deny_gid)
+ $x = q("select id from photo where `resource-id` = '%s' and uid = %d and `contact-id` = %d and `scale` = %d limit 1",
+ dbesc($rid),
+ intval($uid),
+ intval($cid),
+ intval($scale)
);
+ if(count($x)) {
+ $r = q("UPDATE `photo`
+ set `uid` = %d,
+ `contact-id` = %d,
+ `guid` = '%s',
+ `resource-id` = '%s',
+ `created` = '%s',
+ `edited` = '%s',
+ `filename` = '%s',
+ `type` = '%s',
+ `album` = '%s',
+ `height` = %d,
+ `width` = %d,
+ `data` = '%s',
+ `scale` = %d,
+ `profile` = %d,
+ `allow_cid` = '%s',
+ `allow_gid` = '%s',
+ `deny_cid` = '%s',
+ `deny_gid` = '%s'
+ where id = %d limit 1",
+
+ intval($uid),
+ intval($cid),
+ dbesc($guid),
+ dbesc($rid),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc(basename($filename)),
+ dbesc($this->type),
+ dbesc($album),
+ intval($this->height),
+ intval($this->width),
+ dbesc($this->imageString()),
+ intval($scale),
+ intval($profile),
+ dbesc($allow_cid),
+ dbesc($allow_gid),
+ dbesc($deny_cid),
+ dbesc($deny_gid),
+ intval($x[0]['id'])
+ );
+ }
+ else {
+ $r = q("INSERT INTO `photo`
+ ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )
+ VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )",
+ intval($uid),
+ intval($cid),
+ dbesc($guid),
+ dbesc($rid),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc(basename($filename)),
+ dbesc($this->type),
+ dbesc($album),
+ intval($this->height),
+ intval($this->width),
+ dbesc($this->imageString()),
+ intval($scale),
+ intval($profile),
+ dbesc($allow_cid),
+ dbesc($allow_gid),
+ dbesc($deny_cid),
+ dbesc($deny_gid)
+ );
+ }
return $r;
}
-
-
-
-
-
}}
@@ -326,6 +372,17 @@ function import_profile_photo($photo,$uid,$cid) {
$a = get_app();
+ $r = q("select `resource-id` from photo where `uid` = %d and `contact-id` = %d and `scale` = 4 and `album` = 'Contact Photos' limit 1",
+ intval($uid),
+ intval($cid)
+ );
+ if(count($r)) {
+ $hash = $r[0]['resource-id'];
+ }
+ else {
+ $hash = photo_new_resource();
+ }
+
$photo_failure = false;
$filename = basename($photo);
@@ -340,8 +397,6 @@ function import_profile_photo($photo,$uid,$cid) {
$img->scaleImageSquare(175);
- $hash = photo_new_resource();
-
$r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4 );
if($r === false)
@@ -361,8 +416,6 @@ function import_profile_photo($photo,$uid,$cid) {
if($r === false)
$photo_failure = true;
-
-
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();
diff --git a/include/api.php b/include/api.php
index 9925b5766..9f2a5fb3b 100644
--- a/include/api.php
+++ b/include/api.php
@@ -1654,7 +1654,6 @@ account/update_profile_background_image
account/update_profile_image
blocks/create
blocks/destroy
-oauth/authorize
Not implemented in status.net:
statuses/retweeted_to_me
diff --git a/include/conversation.php b/include/conversation.php
index a9c6287a9..1d5a92284 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -173,8 +173,8 @@ function localize_item(&$item){
$item['body'] = str_replace($mtch[0],'@[url=' . zrl($mtch[1]). ']',$item['body']);
}
}
+ // add zrl's to public images
if(preg_match_all('/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
-logger('matched');
foreach($matches as $mtch) {
$item['body'] = str_replace($mtch[0],'[url=' . zrl($mtch[1] . '/photos/' . $mtch[2] . '/image/' . $mtch[3] ,true) . '][img' . $mtch[4] . ']h' . $mtch[5] . '[/img][/url]',$item['body']);
}
@@ -546,7 +546,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
$likebuttons = '';
- $shareable = ((($profile_owner == local_user()) && (! $item['private'])) ? true : false); //($mode != 'display') &&
+ $shareable = ((($profile_owner == local_user()) && ((! $item['private']) || $item['network'] === NETWORK_FEED)) ? true : false);
if($page_writeable) {
if($toplevelpost) {
diff --git a/include/datetime.php b/include/datetime.php
index 3b1491e4d..58a618610 100644
--- a/include/datetime.php
+++ b/include/datetime.php
@@ -87,7 +87,7 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
$from = 'UTC';
if($to === '')
$to = 'UTC';
- if($s === '')
+ if( ($s === '') || (! is_string($s)) )
$s = 'now';
// Slight hackish adjustment so that 'zero' datetime actually returns what is intended
diff --git a/include/enotify.php b/include/enotify.php
index fe0f128b6..81f3e11eb 100644
--- a/include/enotify.php
+++ b/include/enotify.php
@@ -41,8 +41,8 @@ function notification($params) {
$subject = sprintf( t('[Friendica:Notify] New mail received at %s'),$sitename);
- $preamble = sprintf( t('%s sent you a new private message at %s.'),$params['source_name'],$sitename);
- $epreamble = sprintf( t('%s sent you %s.'),'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a private message') . '[/url]');
+ $preamble = sprintf( t('%1$s sent you a new private message at %2$s.'),$params['source_name'],$sitename);
+ $epreamble = sprintf( t('%1$s sent you %2$s.'),'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a private message') . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to your private messages.');
$tsitelink = sprintf( $sitelink, $siteurl . '/message/' . $params['item']['id'] );
$hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '/message/' . $params['item']['id'] . '">' . $sitename . '</a>');
@@ -66,27 +66,38 @@ function notification($params) {
);
}
- $possess_desc = str_replace('<!item_type!>',item_post_type($p[0]),$possess_desc);
+ $item_post_type = item_post_type($p[0]);
+ //$possess_desc = str_replace('<!item_type!>',$possess_desc);
// "a post"
- $dest_str = sprintf($possess_desc,'a');
+ $dest_str = sprintf(t('%1$s commented on [url=%2$s]a %3$s[/url]'),
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
+ $itemlink,
+ $item_post_type);
// "George Bull's post"
if($p)
- $dest_str = sprintf($possess_desc,sprintf( t("%s's"),$p[0]['author-name']));
+ $dest_str = sprintf(t('%1$s commented on [url=%2$s]%3$s\'s %4$s[/url]'),
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
+ $itemlink,
+ $p[0]['author-name'],
+ $item_post_type);
// "your post"
if($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall'])
- $dest_str = sprintf($possess_desc, t('your') );
+ $dest_str = sprintf(t('%1$s commented on [url=%2$s]your %3$s[/url]'),
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
+ $itemlink,
+ $item_post_type);
// Some mail softwares relies on subject field for threading.
// So, we cannot have different subjects for notifications of the same thread.
// Before this we have the name of the replier on the subject rendering
// differents subjects for messages on the same thread.
- $subject = sprintf( t('[Friendica:Notify] Comment to conversation #%d by %s'), $parent_id, $params['source_name']);
+ $subject = sprintf( t('[Friendica:Notify] Comment to conversation #%1$d by %2$s'), $parent_id, $params['source_name']);
$preamble = sprintf( t('%s commented on an item/conversation you have been following.'), $params['source_name']);
- $epreamble = sprintf( t('%s commented on %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . $dest_str . '[/url]');
+ $epreamble = $dest_str;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -97,9 +108,11 @@ function notification($params) {
if($params['type'] == NOTIFY_WALL) {
$subject = sprintf( t('[Friendica:Notify] %s posted to your profile wall') , $params['source_name']);
- $preamble = sprintf( t('%s posted to your profile wall at %s') , $params['source_name'], $sitename);
+ $preamble = sprintf( t('%1$s posted to your profile wall at %2$s') , $params['source_name'], $sitename);
- $epreamble = sprintf( t('%s posted to %s') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('your profile wall.') . '[/url]');
+ $epreamble = sprintf( t('%1$s posted to [url=%2s]your wall[/url]') ,
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
+ $itemlink);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -109,8 +122,10 @@ function notification($params) {
if($params['type'] == NOTIFY_TAGSELF) {
$subject = sprintf( t('[Friendica:Notify] %s tagged you') , $params['source_name']);
- $preamble = sprintf( t('%s tagged you at %s') , $params['source_name'], $sitename);
- $epreamble = sprintf( t('%s %s.') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=' . $params['link'] . ']' . t('tagged you') . '[/url]');
+ $preamble = sprintf( t('%1$s tagged you at %2$s') , $params['source_name'], $sitename);
+ $epreamble = sprintf( t('%1$s [url=%2s]tagged you[/url].') ,
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
+ $params['link']);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -120,8 +135,10 @@ function notification($params) {
if($params['type'] == NOTIFY_TAGSHARE) {
$subject = sprintf( t('[Friendica:Notify] %s tagged your post') , $params['source_name']);
- $preamble = sprintf( t('%s tagged your post at %s') , $params['source_name'], $sitename);
- $epreamble = sprintf( t('%s tagged %s') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('your post') . '[/url]' );
+ $preamble = sprintf( t('%1$s tagged your post at %2$s') , $params['source_name'], $sitename);
+ $epreamble = sprintf( t('%1$s tagged [url=%2$s]your post[/url]') ,
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]',
+ $itemlink);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -131,8 +148,10 @@ function notification($params) {
if($params['type'] == NOTIFY_INTRO) {
$subject = sprintf( t('[Friendica:Notify] Introduction received'));
- $preamble = sprintf( t('You\'ve received an introduction from \'%s\' at %s'), $params['source_name'], $sitename);
- $epreamble = sprintf( t('You\'ve received %s from %s.'), '[url=$itemlink]' . t('an introduction') . '[/url]' , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
+ $preamble = sprintf( t('You\'ve received an introduction from \'%1$s\' at %2$s'), $params['source_name'], $sitename);
+ $epreamble = sprintf( t('You\'ve received [url=%1$s]an introduction[/url] from %2$s.'),
+ $itemlink,
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
$body = sprintf( t('You may visit their profile at %s'),$params['source_link']);
$sitelink = t('Please visit %s to approve or reject the introduction.');
@@ -143,11 +162,12 @@ function notification($params) {
if($params['type'] == NOTIFY_SUGGEST) {
$subject = sprintf( t('[Friendica:Notify] Friend suggestion received'));
- $preamble = sprintf( t('You\'ve received a friend suggestion from \'%s\' at %s'), $params['source_name'], $sitename);
- $epreamble = sprintf( t('You\'ve received %s for %s from %s.'),
- '[url=$itemlink]' . t('a friend suggestion') . '[/url]',
- '[url=' . $params['item']['url'] . ']' . $params['item']['name'] . '[/url]',
- '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
+ $preamble = sprintf( t('You\'ve received a friend suggestion from \'%1$s\' at %2$s'), $params['source_name'], $sitename);
+ $epreamble = sprintf( t('You\'ve received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s.'),
+ $itemlink,
+ '[url=' . $params['item']['url'] . ']' . $params['item']['name'] . '[/url]',
+ '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
+
$body = t('Name:') . ' ' . $params['item']['name'] . "\n";
$body .= t('Photo:') . ' ' . $params['item']['photo'] . "\n";
$body .= sprintf( t('You may visit their profile at %s'),$params['item']['url']);
diff --git a/include/items.php b/include/items.php
index ccc11d5be..3db1a2802 100755
--- a/include/items.php
+++ b/include/items.php
@@ -22,8 +22,6 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
if($a->argv[$x] === 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1]))
$category = $a->argv[$x+1];
}
-
-
}
@@ -693,6 +691,8 @@ function encode_rel_links($links) {
return xmlify($o);
}
+
+
function item_store($arr,$force_parent = false) {
// If a Diaspora signature structure was passed in, pull it out of the
@@ -806,6 +806,14 @@ function item_store($arr,$force_parent = false) {
$deny_cid = $r[0]['deny_cid'];
$deny_gid = $r[0]['deny_gid'];
$arr['wall'] = $r[0]['wall'];
+
+ // if the parent is private, force privacy for the entire conversation
+ // This differs from the above settings as it subtly allows comments from
+ // email correspondents to be private even if the overall thread is not.
+
+ if($r[0]['private'])
+ $arr['private'] = 1;
+
}
else {
@@ -900,6 +908,16 @@ function item_store($arr,$force_parent = false) {
intval($current_post)
);
+ $arr['id'] = $current_post;
+ $arr['parent'] = $parent_id;
+ $arr['allow_cid'] = $allow_cid;
+ $arr['allow_gid'] = $allow_gid;
+ $arr['deny_cid'] = $deny_cid;
+ $arr['deny_gid'] = $deny_gid;
+ $arr['private'] = $private;
+ $arr['deleted'] = $parent_deleted;
+ call_hooks('post_remote_end',$arr);
+
// update the commented timestamp on the parent
q("UPDATE `item` set `commented` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
@@ -1635,6 +1653,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if(count($r)) {
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
+
+ // do not accept (ignore) an earlier edit than one we currently have.
+ if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
+ continue;
+
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
@@ -1781,6 +1804,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if(count($r)) {
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
+
+ // do not accept (ignore) an earlier edit than one we currently have.
+ if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
+ continue;
+
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
@@ -1836,9 +1864,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
if(($contact['network'] === NETWORK_FEED) || (! strlen($contact['notify']))) {
- // one way feed - no remote comment ability
- $datarray['last-child'] = 0;
+ // one way feed - no remote comment ability
+ $datarray['last-child'] = 0;
}
+ if($contact['network'] === NETWORK_FEED)
+ $datarray['private'] = 1;
// This is my contact on another system, but it's really me.
// Turn this into a wall post.
@@ -2264,7 +2294,12 @@ function local_delivery($importer,$data) {
if(count($r)) {
$iid = $r[0]['id'];
- if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
+ if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
+
+ // do not accept (ignore) an earlier edit than one we currently have.
+ if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
+ continue;
+
logger('received updated comment' , LOGGER_DEBUG);
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
@@ -2443,6 +2478,11 @@ function local_delivery($importer,$data) {
if(count($r)) {
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
+
+ // do not accept (ignore) an earlier edit than one we currently have.
+ if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
+ continue;
+
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
@@ -2609,6 +2649,11 @@ function local_delivery($importer,$data) {
if(count($r)) {
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
+
+ // do not accept (ignore) an earlier edit than one we currently have.
+ if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
+ continue;
+
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
dbesc($datarray['body']),
@@ -3345,3 +3390,69 @@ function drop_item($id,$interactive = true) {
}
}
+
+
+function first_post_date($uid,$wall = false) {
+ $r = q("select id, created from item
+ where uid = %d and wall = %d and deleted = 0 and visible = 1 AND moderated = 0
+ and id = parent
+ order by created asc limit 1",
+ intval($uid),
+ intval($wall ? 1 : 0)
+ );
+ if(count($r)) {
+// logger('first_post_date: ' . $r[0]['id'] . ' ' . $r[0]['created'], LOGGER_DATA);
+ return substr(datetime_convert('',date_default_timezone_get(),$r[0]['created']),0,10);
+ }
+ return false;
+}
+
+function posted_dates($uid,$wall) {
+ $dnow = datetime_convert('',date_default_timezone_get(),'now','Y-m-d');
+
+ $dthen = first_post_date($uid,$wall);
+ if(! $dthen)
+ return array();
+
+ // If it's near the end of a long month, backup to the 28th so that in
+ // consecutive loops we'll always get a whole month difference.
+
+ if(intval(substr($dnow,8)) > 28)
+ $dnow = substr($dnow,0,8) . '28';
+ if(intval(substr($dthen,8)) > 28)
+ $dnow = substr($dthen,0,8) . '28';
+
+ $ret = array();
+ while($dnow >= $dthen) {
+ $dstart = substr($dnow,0,8) . '01';
+ $dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5)));
+ $start_month = datetime_convert('','',$dstart,'Y-m-d');
+ $end_month = datetime_convert('','',$dend,'Y-m-d');
+ $str = day_translate(datetime_convert('','',$dnow,'F Y'));
+ $ret[] = array($str,$end_month,$start_month);
+ $dnow = datetime_convert('','',$dnow . ' -1 month', 'Y-m-d');
+ }
+ return $ret;
+}
+
+
+function posted_date_widget($url,$uid,$wall) {
+ $o = '';
+
+ // For former Facebook folks that left because of "timeline"
+
+ if($wall && intval(get_pconfig($uid,'system','no_wall_archive_widget')))
+ return $o;
+
+ $ret = posted_dates($uid,$wall);
+ if(! count($ret))
+ return $o;
+
+ $o = replace_macros(get_markup_template('posted_date_widget.tpl'),array(
+ '$title' => t('Archives'),
+ '$size' => ((count($ret) > 6) ? 6 : count($ret)),
+ '$url' => $url,
+ '$dates' => $ret
+ ));
+ return $o;
+} \ No newline at end of file
diff --git a/include/onepoll.php b/include/onepoll.php
index ba7d5ebaf..d68f26883 100644
--- a/include/onepoll.php
+++ b/include/onepoll.php
@@ -36,11 +36,6 @@ function onepoll_run($argv, $argc){
logger('onepoll: start');
- $abandon_days = intval(get_config('system','account_abandon_days'));
- if($abandon_days < 1)
- $abandon_days = 0;
-
-
$manual_id = 0;
$generation = 0;
$hub_update = false;
@@ -54,9 +49,7 @@ function onepoll_run($argv, $argc){
logger('onepoll: no contact');
return;
}
-
- if(was_recently_delayed($contact_id))
- return;
+
$d = datetime_convert();
@@ -64,11 +57,6 @@ function onepoll_run($argv, $argc){
// and which have a polling address and ignore Diaspora since
// we are unable to match those posts with a Diaspora GUID and prevent duplicates.
- $abandon_sql = (($abandon_days)
- ? sprintf(" AND `user`.`login_date` > UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days))
- : ''
- );
-
$contacts = q("SELECT `contact`.* FROM `contact`
WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != ''
AND NOT `network` IN ( '%s', '%s' )
@@ -88,14 +76,13 @@ function onepoll_run($argv, $argc){
$contact = $contacts[0];
-
$xml = false;
$t = $contact['last-update'];
if($contact['subhub']) {
- $interval = get_config('system','pushpoll_frequency');
- $contact['priority'] = (($interval !== false) ? intval($interval) : 3);
+ $poll_interval = get_config('system','pushpoll_frequency');
+ $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3);
$hub_update = false;
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
@@ -139,15 +126,18 @@ function onepoll_run($argv, $argc){
. '&perm=' . $perm ;
$handshake_xml = fetch_url($url);
+ $html_code = $a->get_curl_code();
logger('onepoll: handshake with url ' . $url . ' returns xml: ' . $handshake_xml, LOGGER_DATA);
- if(! $handshake_xml) {
+ if((! strlen($handshake_xml)) || ($html_code >= 400) || (! $html_code)) {
logger("poller: $url appears to be dead - marking for death ");
+
// dead connection - might be a transient event, or this might
// mean the software was uninstalled or the domain expired.
// Will keep trying for one month.
+
mark_for_death($contact);
// set the last-update so we don't keep polling
@@ -161,6 +151,9 @@ function onepoll_run($argv, $argc){
if(! strstr($handshake_xml,'<?xml')) {
logger('poller: response from ' . $url . ' did not contain XML.');
+
+ mark_for_death($contact);
+
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
intval($contact['id'])
diff --git a/include/poller.php b/include/poller.php
index 6b12445d1..fefc9b381 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -201,8 +201,8 @@ function poller_run($argv, $argc){
if($contact['subhub']) {
- $interval = get_config('system','pushpoll_frequency');
- $contact['priority'] = (($interval !== false) ? intval($interval) : 3);
+ $poll_interval = get_config('system','pushpoll_frequency');
+ $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3);
$hub_update = false;
if((datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) || $force)
diff --git a/include/queue_fn.php b/include/queue_fn.php
index 2aca338f5..e43912431 100644
--- a/include/queue_fn.php
+++ b/include/queue_fn.php
@@ -23,6 +23,13 @@ function was_recently_delayed($cid) {
);
if(count($r))
return true;
+
+ $r = q("select `term-date` from contact where id = %d and `term-date` != '' and `term-date` != '0000-00-00 00:00:00' limit 1",
+ intval($cid)
+ );
+ if(count($r))
+ return true;
+
return false;
}
diff --git a/include/text.php b/include/text.php
index d4a4d5580..cc4bee268 100644
--- a/include/text.php
+++ b/include/text.php
@@ -1059,7 +1059,7 @@ function feed_salmonlinks($nick) {
if(! function_exists('get_plink')) {
function get_plink($item) {
$a = get_app();
- if (x($item,'plink') && (! $item['private'])){
+ if (x($item,'plink') && ((! $item['private']) || ($item['network'] === NETWORK_FEED))){
return array(
'href' => $item['plink'],
'title' => t('link to source'),
@@ -1255,13 +1255,13 @@ function bb_translate_video($s) {
function html2bb_video($s) {
- $s = preg_replace('#<object[^>]+>(.*?)https+://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+)(.*?)</object>#ism',
+ $s = preg_replace('#<object[^>]+>(.*?)https?://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+)(.*?)</object>#ism',
'[youtube]$2[/youtube]', $s);
- $s = preg_replace('#<iframe[^>](.*?)https+://www.youtube.com/embed/([A-Za-z0-9\-_=]+)(.*?)</iframe>#ism',
+ $s = preg_replace('#<iframe[^>](.*?)https?://www.youtube.com/embed/([A-Za-z0-9\-_=]+)(.*?)</iframe>#ism',
'[youtube]$2[/youtube]', $s);
- $s = preg_replace('#<iframe[^>](.*?)https+://player.vimeo.com/video/([0-9]+)(.*?)</iframe>#ism',
+ $s = preg_replace('#<iframe[^>](.*?)https?://player.vimeo.com/video/([0-9]+)(.*?)</iframe>#ism',
'[vimeo]$2[/vimeo]', $s);
return $s;
@@ -1541,3 +1541,16 @@ function protect_sprintf($s) {
return(str_replace('%','%%',$s));
}
+
+function is_a_date_arg($s) {
+ $i = intval($s);
+ if($i > 1900) {
+ $y = date('Y');
+ if($i <= $y+1 && strpos($s,'-') == 4) {
+ $m = intval(substr($s,5));
+ if($m > 0 && $m <= 12)
+ return true;
+ }
+ }
+ return false;
+}
diff --git a/index.php b/index.php
index 94329eedc..6967d0f31 100644
--- a/index.php
+++ b/index.php
@@ -59,8 +59,7 @@ if(! $install) {
/**
*
* Important stuff we always need to do.
- * Initialise authentication and date and time.
- * Create the HTML head for the page, even if we may not use it (xml, etc.)
+ *
* The order of these may be important so use caution if you think they're all
* intertwingled with no logical order and decide to sort it out. Some of the
* dependencies have changed, but at least at one time in the recent past - the
@@ -68,12 +67,6 @@ if(! $install) {
*
*/
-require_once("datetime.php");
-
-$a->timezone = (($default_timezone) ? $default_timezone : 'UTC');
-
-date_default_timezone_set($a->timezone);
-
session_start();
/**
diff --git a/mod/contacts.php b/mod/contacts.php
index a3e3f409b..f84a988c8 100644
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -335,6 +335,7 @@ function contacts_content(&$a) {
$tab_tpl = get_markup_template('common_tabs.tpl');
$tab_str = replace_macros($tab_tpl, array('$tabs' => $tabs));
+ $lost_contact = (($contact['archive'] && $contact['term-date'] != '0000-00-00 00:00:00' && $contact['term-date'] < datetime_convert('','','now')) ? t('Communications lost with this contact!') : '');
$o .= replace_macros($tpl,array(
'$header' => t('Contact Editor'),
@@ -359,6 +360,7 @@ function contacts_content(&$a) {
'$poll_interval' => contact_poll_interval($contact['priority'],(! $poll_enabled)),
'$poll_enabled' => $poll_enabled,
'$lastupdtext' => t('Last update:'),
+ '$lost_contact' => $lost_contact,
'$updpub' => t('Update public posts'),
'$last_update' => $last_update,
'$udnow' => t('Update now'),
diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php
index 896fe1792..3c76034c3 100644
--- a/mod/dfrn_request.php
+++ b/mod/dfrn_request.php
@@ -170,6 +170,21 @@ function dfrn_request_post(&$a) {
info( t("Introduction complete.") . EOL);
}
+ $r = q("select id from contact where uid = %d and url = '%s' and `site-pubkey` = '%s limit 1",
+ intval(local_user()),
+ dbesc($dfrn_url),
+ $parms['key'] // this was already escaped
+ );
+ if(count($r)) {
+ $g = q("select def_gid from user where uid = %d limit 1",
+ intval(local_user())
+ );
+ if($g && intval($g[0]['def_gid'])) {
+ require_once('include/group.php');
+ group_add_member(local_user(),'',$r[0]['id'],$g[0]['def_gid']);
+ }
+ }
+
/**
* Allow the blocked remote notification to complete
*/
diff --git a/mod/manage.php b/mod/manage.php
index 84dfa6917..96d420c78 100644
--- a/mod/manage.php
+++ b/mod/manage.php
@@ -96,7 +96,7 @@ function manage_content(&$a) {
$o .= '<div id="identity-selector-wrapper">' . "\r\n";
$o .= '<form action="manage" method="post" >' . "\r\n";
- $o .= '<select name="identity" size="4">' . "\r\n";
+ $o .= '<select name="identity" size="4" onchange="this.form.submit();" >' . "\r\n";
foreach($a->identities as $rr) {
$selected = (($rr['nickname'] === $a->user['nickname']) ? ' selected="selected" ' : '');
@@ -106,7 +106,8 @@ function manage_content(&$a) {
$o .= '</select>' . "\r\n";
$o .= '<div id="identity-select-break"></div>' . "\r\n";
- $o .= '<input id="identity-submit" type="submit" name="submit" value="' . t('Submit') . '" /></div></form>' . "\r\n";
+// $o .= '<input id="identity-submit" type="submit" name="submit" value="' . t('Submit') . '" />';
+ $o .= '</div></form>' . "\r\n";
return $o;
diff --git a/mod/network.php b/mod/network.php
index b998a3107..5f009dacd 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -6,11 +6,65 @@ function network_init(&$a) {
notice( t('Permission denied.') . EOL);
return;
}
-
+
+ $is_a_date_query = false;
+
+ if($a->argc > 1) {
+ for($x = 1; $x < $a->argc; $x ++) {
+ if(is_a_date_arg($a->argv[$x])) {
+ $is_a_date_query = true;
+ break;
+ }
+ }
+ }
+
+ // convert query string to array and remove first element (wich is friendica args)
+ $query_array = array();
+ parse_str($a->query_string, $query_array);
+ array_shift($query_array);
+
+ // fetch last used tab and redirect if needed
+ $sel_tabs = network_query_get_sel_tab($a);
+ $last_sel_tabs = get_pconfig(local_user(), 'network.view','tab.selected');
+ if (is_array($last_sel_tabs)){
+ $tab_urls = array(
+ '/network?f=&order=comment',//all
+ '/network?f=&order=post', //postord
+ '/network?f=&conv=1', //conv
+ '/network/new', //new
+ '/network?f=&star=1', //starred
+ '/network?f=&bmark=1', //bookmarked
+ '/network?f=&spam=1', //spam
+ );
+
+ // redirect if current selected tab is 'no_active' and
+ // last selected tab is _not_ 'all_active'.
+ // and this isn't a date query
+
+ if ($sel_tabs[0] == 'active' && $last_sel_tabs[0]!='active' && (! $is_a_date_query)) {
+ $k = array_search('active', $last_sel_tabs);
+
+ // merge tab querystring with request querystring
+ $dest_qa = array();
+ list($dest_url,$dest_qs) = explode("?", $tab_urls[$k]);
+ parse_str( $dest_qs, $dest_qa);
+ $dest_qa = array_merge($query_array, $dest_qa);
+ $dest_qs = build_querystring($dest_qa);
+
+ // groups filter is in form of "network/nnn". Add it to $dest_url, if it's possible
+ if ($a->argc==2 && is_numeric($a->argv[1]) && strpos($dest_url, "/",1)===false){
+ $dest_url .= "/".$a->argv[1];
+ }
+
+ goaway($a->get_baseurl() . $dest_url."?".$dest_qs);
+ }
+ }
+
$group_id = (($a->argc > 1 && intval($a->argv[1])) ? intval($a->argv[1]) : 0);
require_once('include/group.php');
require_once('include/contact_widgets.php');
+ require_once('include/items.php');
if(! x($a->page,'aside'))
$a->page['aside'] = '';
@@ -42,8 +96,9 @@ function network_init(&$a) {
if(x($_GET,'search')) {
$a->page['content'] .= '<h2>' . t('Search Results For:') . ' ' . $search . '</h2>';
}
-
+
$a->page['aside'] .= group_side('network','network',true,$group_id);
+ $a->page['aside'] .= posted_date_widget($a->get_baseurl() . '/network',local_user(),false);
$a->page['aside'] .= networks_widget($a->get_baseurl(true) . '/network',(x($_GET, 'nets') ? $_GET['nets'] : ''));
$a->page['aside'] .= saved_searches($search);
$a->page['aside'] .= fileas_widget($a->get_baseurl(true) . '/network',(x($_GET, 'file') ? $_GET['file'] : ''));
@@ -98,26 +153,23 @@ function saved_searches($search) {
}
-
-function network_content(&$a, $update = 0) {
-
- require_once('include/conversation.php');
-
- if(! local_user()) {
- $_SESSION['return_url'] = $a->query_string;
- return login(false);
- }
-
- $arr = array('query' => $a->query_string);
-
- call_hooks('network_content_init', $arr);
-
- $o = '';
-
- // item filter tabs
- // TODO: fix this logic, reduce duplication
- //$a->page['content'] .= '<div class="tabs-wrapper">';
-
+/**
+ * Return selected tab from query
+ *
+ * urls -> returns
+ * '/network' => $no_active = 'active'
+ * '/network?f=&order=comment' => $comment_active = 'active'
+ * '/network?f=&order=post' => $postord_active = 'active'
+ * '/network?f=&conv=1', => $conv_active = 'active'
+ * '/network/new', => $new_active = 'active'
+ * '/network?f=&star=1', => $starred_active = 'active'
+ * '/network?f=&bmark=1', => $bookmarked_active = 'active'
+ * '/network?f=&spam=1', => $spam_active = 'active'
+ *
+ * @return Array ( $no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active );
+ */
+function network_query_get_sel_tab($a) {
+ $no_active='';
$starred_active = '';
$new_active = '';
$bookmarked_active = '';
@@ -125,6 +177,7 @@ function network_content(&$a, $update = 0) {
$search_active = '';
$conv_active = '';
$spam_active = '';
+ $postord_active = '';
if(($a->argc > 1 && $a->argv[1] === 'new')
|| ($a->argc > 2 && $a->argv[2] === 'new')) {
@@ -152,59 +205,118 @@ function network_content(&$a, $update = 0) {
}
+
if (($new_active == '')
&& ($starred_active == '')
&& ($bookmarked_active == '')
&& ($conv_active == '')
&& ($search_active == '')
&& ($spam_active == '')) {
- $all_active = 'active';
+ $no_active = 'active';
}
+ if ($no_active=='active' && x($_GET,'order')) {
+ switch($_GET['order']){
+ case 'post': $postord_active = 'active'; $no_active=''; break;
+ case 'comment' : $all_active = 'active'; $no_active=''; break;
+ }
+ }
- $postord_active = '';
+ return array($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active);
+}
+
+
+function network_content(&$a, $update = 0) {
+
+ require_once('include/conversation.php');
+
+ if(! local_user()) {
+ $_SESSION['return_url'] = $a->query_string;
+ return login(false);
+ }
+
+ $arr = array('query' => $a->query_string);
+
+ call_hooks('network_content_init', $arr);
+
+
+ $datequery = $datequery2 = '';
+
+ $group = 0;
+
+ $nouveau = false;
- if($all_active && x($_GET,'order') && $_GET['order'] !== 'comment') {
- $all_active = '';
- $postord_active = 'active';
+ if($a->argc > 1) {
+ for($x = 1; $x < $a->argc; $x ++) {
+ if(is_a_date_arg($a->argv[$x])) {
+ if($datequery)
+ $datequery2 = escape_tags($a->argv[$x]);
+ else {
+ $datequery = escape_tags($a->argv[$x]);
+ $_GET['order'] = 'post';
+ }
+ }
+ elseif($a->argv[$x] === 'new') {
+ $nouveau = true;
+ }
+ elseif(intval($a->argv[$x])) {
+ $group = intval($a->argv[$x]);
+ $def_acl = array('allow_gid' => '<' . $group . '>');
+ }
+ }
}
-
+
+
+ $o = '';
+
+ // item filter tabs
+ // TODO: fix this logic, reduce duplication
+ //$a->page['content'] .= '<div class="tabs-wrapper">';
+
+ list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) = network_query_get_sel_tab($a);
+ // if no tabs are selected, defaults to comments
+ if ($no_active=='active') $all_active='active';
+ //echo "<pre>"; var_dump($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active); killme();
+
+ $cmd = (($datequery) ? '' : $a->cmd);
+ $len_naked_cmd = strlen(str_replace('/new','',$cmd));
+
// tabs
$tabs = array(
array(
'label' => t('Commented Order'),
- 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '?f=&cid=' . $_GET['cid'] : ''),
+ 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
'sel'=>$all_active,
'title'=> t('Sort by Comment Date'),
),
array(
'label' => t('Posted Order'),
- 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
+ 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
'sel'=>$postord_active,
'title' => t('Sort by Post Date'),
),
array(
'label' => t('Personal'),
- 'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
+ 'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
'sel' => $conv_active,
'title' => t('Posts that mention or involve you'),
),
array(
'label' => t('New'),
- 'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
+ 'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ($len_naked_cmd ? '/' : '') . 'new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
'sel' => $new_active,
'title' => t('Activity Stream - by date'),
),
array(
'label' => t('Starred'),
- 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
+ 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
'sel'=>$starred_active,
'title' => t('Favourite Posts'),
),
array(
'label' => t('Shared Links'),
- 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
+ 'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
'sel'=>$bookmarked_active,
'title'=> t('Interesting Links'),
),
@@ -215,8 +327,12 @@ function network_content(&$a, $update = 0) {
// 'title' => t('Posts flagged as SPAM'),
// ),
-
);
+
+ // save selected tab, but only if not in search or file mode
+ if(!x($_GET,'search') && !x($_GET,'file')) {
+ set_pconfig( local_user(), 'network.view','tab.selected',array($all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) );
+ }
$arr = array('tabs' => $tabs);
call_hooks('network_tabs', $arr);
@@ -231,9 +347,6 @@ function network_content(&$a, $update = 0) {
$contact_id = $a->cid;
- $group = 0;
-
- $nouveau = false;
require_once('include/acl_selectors.php');
$cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0);
@@ -248,17 +361,7 @@ function network_content(&$a, $update = 0) {
$cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99);
$file = ((x($_GET,'file')) ? $_GET['file'] : '');
- if(($a->argc > 2) && $a->argv[2] === 'new')
- $nouveau = true;
- if($a->argc > 1) {
- if($a->argv[1] === 'new')
- $nouveau = true;
- else {
- $group = intval($a->argv[1]);
- $def_acl = array('allow_gid' => '<' . $group . '>');
- }
- }
if(x($_GET,'search') || x($_GET,'file'))
$nouveau = true;
@@ -398,7 +501,17 @@ function network_content(&$a, $update = 0) {
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
+ $sql_extra3 = '';
+
+ if($datequery) {
+ $sql_extra3 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
+ }
+ if($datequery2) {
+ $sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
+ }
+
$sql_extra2 = (($nouveau) ? '' : " AND `item`.`parent` = `item`.`id` ");
+ $sql_extra3 = (($nouveau) ? '' : $sql_extra3);
if(x($_GET,'search')) {
$search = escape_tags($_GET['search']);
@@ -454,7 +567,7 @@ function network_content(&$a, $update = 0) {
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- $sql_extra2
+ $sql_extra2 $sql_extra3
$sql_extra $sql_nets ",
intval($_SESSION['uid'])
);
@@ -506,7 +619,7 @@ function network_content(&$a, $update = 0) {
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
and `item`.`moderated` = 0 and `item`.`unseen` = 1
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- $sql_extra $sql_nets ",
+ $sql_extra3 $sql_extra $sql_nets ",
intval(local_user())
);
}
@@ -516,7 +629,7 @@ function network_content(&$a, $update = 0) {
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`parent` = `item`.`id`
- $sql_extra $sql_nets
+ $sql_extra3 $sql_extra $sql_nets
ORDER BY `item`.$ordering DESC $pager_sql ",
intval(local_user())
);
diff --git a/mod/profile.php b/mod/profile.php
index 7658a9647..24e03d6ea 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -67,11 +67,23 @@ function profile_init(&$a) {
function profile_content(&$a, $update = 0) {
- if (x($a->category)) {
- $category = $a->category;
+ $category = $datequery = $datequery2 = '';
+
+ if($a->argc > 2) {
+ for($x = 2; $x < $a->argc; $x ++) {
+ if(is_a_date_arg($a->argv[$x])) {
+ if($datequery)
+ $datequery2 = escape_tags($a->argv[$x]);
+ else
+ $datequery = escape_tags($a->argv[$x]);
+ }
+ else
+ $category = $a->argv[$x];
+ }
}
- else {
- $category = ((x($_GET,'category')) ? $_GET['category'] : '');
+
+ if(! x($category)) {
+ $category = ((x($_GET,'category')) ? $_GET['category'] : '');
}
if(get_config('system','block_public') && (! local_user()) && (! remote_user())) {
@@ -82,6 +94,8 @@ function profile_content(&$a, $update = 0) {
require_once('include/security.php');
require_once('include/conversation.php');
require_once('include/acl_selectors.php');
+ require_once('include/items.php');
+
$groups = array();
$tab = 'posts';
@@ -97,6 +111,7 @@ function profile_content(&$a, $update = 0) {
}
}
+
$contact = null;
$remote_contact = false;
@@ -155,6 +170,7 @@ function profile_content(&$a, $update = 0) {
$celeb = ((($a->profile['page-flags'] == PAGE_SOAPBOX) || ($a->profile['page-flags'] == PAGE_COMMUNITY)) ? true : false);
+ $a->page['aside'] .= posted_date_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],$a->profile['profile_uid'],true);
$a->page['aside'] .= categories_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],(x($category) ? xmlify($category) : ''));
if(can_write_wall($a,$a->profile['profile_uid'])) {
@@ -200,16 +216,24 @@ function profile_content(&$a, $update = 0) {
}
else {
- if(x($category)) {
- $sql_extra .= file_tag_file_query('item',$category,'category');
+ if(x($category)) {
+ $sql_extra .= protect_sprintf(file_tag_file_query('item',$category,'category'));
+ }
+
+ if($datequery) {
+ $sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
+ }
+ if($datequery2) {
+ $sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
}
+
$r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
and `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 1
- $sql_extra ",
+ $sql_extra $sql_extra2 ",
intval($a->profile['profile_uid'])
);
@@ -225,7 +249,7 @@ function profile_content(&$a, $update = 0) {
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
and `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 1
- $sql_extra
+ $sql_extra $sql_extra2
ORDER BY `item`.`created` DESC $pager_sql ",
intval($a->profile['profile_uid'])
diff --git a/util/messages.po b/util/messages.po
index c9d7877cf..5a1142fbf 100644
--- a/util/messages.po
+++ b/util/messages.po
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 3.0.1369\n"
+"Project-Id-Version: 3.0.1375\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-06-09 10:00-0700\n"
+"POT-Creation-Date: 2012-06-15 10:00-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -54,9 +54,9 @@ msgstr ""
#: ../../mod/follow.php:9 ../../mod/display.php:138 ../../mod/profiles.php:7
#: ../../mod/profiles.php:385 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
-#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:503
-#: ../../addon/dav/layout.fnk.php:387 ../../include/items.php:3342
-#: ../../index.php:306
+#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:507
+#: ../../addon/dav/layout.fnk.php:353 ../../include/items.php:3387
+#: ../../index.php:299
msgid "Permission denied."
msgstr ""
@@ -127,13 +127,13 @@ msgstr ""
#: ../../mod/photos.php:1266 ../../mod/photos.php:1306
#: ../../mod/photos.php:1346 ../../mod/photos.php:1377
#: ../../mod/install.php:246 ../../mod/install.php:284
-#: ../../mod/localtime.php:45 ../../mod/contacts.php:342
+#: ../../mod/localtime.php:45 ../../mod/contacts.php:343
#: ../../mod/settings.php:555 ../../mod/settings.php:701
#: ../../mod/settings.php:762 ../../mod/settings.php:969
-#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/message.php:216
-#: ../../mod/admin.php:420 ../../mod/admin.php:656 ../../mod/admin.php:792
-#: ../../mod/admin.php:991 ../../mod/admin.php:1078 ../../mod/profiles.php:554
-#: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:605
+#: ../../mod/group.php:85 ../../mod/message.php:216 ../../mod/admin.php:420
+#: ../../mod/admin.php:656 ../../mod/admin.php:792 ../../mod/admin.php:991
+#: ../../mod/admin.php:1078 ../../mod/profiles.php:554
+#: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:609
#: ../../addon/snautofollow/snautofollow.php:64
#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93
#: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158
@@ -141,7 +141,8 @@ 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/impressum/impressum.php:82 ../../addon/blockem/blockem.php:57
+#: ../../addon/impressum/impressum.php:82
+#: ../../addon/notimeline/notimeline.php:64 ../../addon/blockem/blockem.php:57
#: ../../addon/qcomment/qcomment.php:61
#: ../../addon/openstreetmap/openstreetmap.php:70
#: ../../addon/libertree/libertree.php:90 ../../addon/mathjax/mathjax.php:42
@@ -173,16 +174,16 @@ msgstr ""
msgid "Help:"
msgstr ""
-#: ../../mod/help.php:34 ../../addon/dav/layout.fnk.php:112
+#: ../../mod/help.php:34 ../../addon/dav/layout.fnk.php:116
#: ../../include/nav.php:86
msgid "Help"
msgstr ""
-#: ../../mod/help.php:38 ../../index.php:225
+#: ../../mod/help.php:38 ../../index.php:218
msgid "Not Found"
msgstr ""
-#: ../../mod/help.php:41 ../../index.php:228
+#: ../../mod/help.php:41 ../../index.php:221
msgid "Page not found."
msgstr ""
@@ -225,7 +226,7 @@ msgid "link to source"
msgstr ""
#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:131
-#: ../../include/nav.php:52 ../../boot.php:1525
+#: ../../include/nav.php:52 ../../boot.php:1529
msgid "Events"
msgstr ""
@@ -233,12 +234,12 @@ msgstr ""
msgid "Create New Event"
msgstr ""
-#: ../../mod/events.php:326 ../../addon/dav/layout.fnk.php:147
+#: ../../mod/events.php:326 ../../addon/dav/layout.fnk.php:154
msgid "Previous"
msgstr ""
#: ../../mod/events.php:327 ../../mod/install.php:205
-#: ../../addon/dav/layout.fnk.php:150
+#: ../../addon/dav/layout.fnk.php:157
msgid "Next"
msgstr ""
@@ -276,7 +277,7 @@ msgid "Description:"
msgstr ""
#: ../../mod/events.php:423 ../../include/event.php:37
-#: ../../include/bb2diaspora.php:265 ../../boot.php:1105
+#: ../../include/bb2diaspora.php:265 ../../boot.php:1109
msgid "Location:"
msgstr ""
@@ -285,7 +286,7 @@ msgid "Share this event"
msgstr ""
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-#: ../../mod/dfrn_request.php:830 ../../mod/settings.php:556
+#: ../../mod/dfrn_request.php:845 ../../mod/settings.php:556
#: ../../mod/settings.php:582 ../../addon/js_upload/js_upload.php:45
msgid "Cancel"
msgstr ""
@@ -329,7 +330,7 @@ msgid ""
"and/or create new posts for you?"
msgstr ""
-#: ../../mod/api.php:105 ../../mod/dfrn_request.php:818
+#: ../../mod/api.php:105 ../../mod/dfrn_request.php:833
#: ../../mod/settings.php:879 ../../mod/settings.php:885
#: ../../mod/settings.php:893 ../../mod/settings.php:897
#: ../../mod/settings.php:902 ../../mod/settings.php:908
@@ -341,7 +342,7 @@ msgstr ""
msgid "Yes"
msgstr ""
-#: ../../mod/api.php:106 ../../mod/dfrn_request.php:819
+#: ../../mod/api.php:106 ../../mod/dfrn_request.php:834
#: ../../mod/settings.php:879 ../../mod/settings.php:885
#: ../../mod/settings.php:893 ../../mod/settings.php:897
#: ../../mod/settings.php:902 ../../mod/settings.php:908
@@ -353,7 +354,7 @@ msgstr ""
msgid "No"
msgstr ""
-#: ../../mod/photos.php:44 ../../boot.php:1519
+#: ../../mod/photos.php:44 ../../boot.php:1523
msgid "Photo Albums"
msgstr ""
@@ -435,7 +436,7 @@ msgid "Image upload failed."
msgstr ""
#: ../../mod/photos.php:820 ../../mod/community.php:16
-#: ../../mod/dfrn_request.php:744 ../../mod/viewcontacts.php:17
+#: ../../mod/dfrn_request.php:759 ../../mod/viewcontacts.php:17
#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29
msgid "Public access denied."
msgstr ""
@@ -558,7 +559,7 @@ msgstr ""
#: ../../mod/photos.php:1305 ../../mod/photos.php:1345
#: ../../mod/photos.php:1376 ../../include/conversation.php:579
-#: ../../boot.php:519
+#: ../../boot.php:523
msgid "Comment"
msgstr ""
@@ -707,19 +708,19 @@ msgstr ""
msgid "This introduction has already been accepted."
msgstr ""
-#: ../../mod/dfrn_request.php:118 ../../mod/dfrn_request.php:497
+#: ../../mod/dfrn_request.php:118 ../../mod/dfrn_request.php:512
msgid "Profile location is not valid or does not contain profile information."
msgstr ""
-#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:502
+#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:517
msgid "Warning: profile location has no identifiable owner name."
msgstr ""
-#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:504
+#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:519
msgid "Warning: profile location has no profile photo."
msgstr ""
-#: ../../mod/dfrn_request.php:128 ../../mod/dfrn_request.php:507
+#: ../../mod/dfrn_request.php:128 ../../mod/dfrn_request.php:522
#, php-format
msgid "%d required parameter was not found at the given location"
msgid_plural "%d required parameters were not found at the given location"
@@ -730,165 +731,165 @@ msgstr[1] ""
msgid "Introduction complete."
msgstr ""
-#: ../../mod/dfrn_request.php:194
+#: ../../mod/dfrn_request.php:209
msgid "Unrecoverable protocol error."
msgstr ""
-#: ../../mod/dfrn_request.php:222
+#: ../../mod/dfrn_request.php:237
msgid "Profile unavailable."
msgstr ""
-#: ../../mod/dfrn_request.php:247
+#: ../../mod/dfrn_request.php:262
#, php-format
msgid "%s has received too many connection requests today."
msgstr ""
-#: ../../mod/dfrn_request.php:248
+#: ../../mod/dfrn_request.php:263
msgid "Spam protection measures have been invoked."
msgstr ""
-#: ../../mod/dfrn_request.php:249
+#: ../../mod/dfrn_request.php:264
msgid "Friends are advised to please try again in 24 hours."
msgstr ""
-#: ../../mod/dfrn_request.php:311
+#: ../../mod/dfrn_request.php:326
msgid "Invalid locator"
msgstr ""
-#: ../../mod/dfrn_request.php:320
+#: ../../mod/dfrn_request.php:335
msgid "Invalid email address."
msgstr ""
-#: ../../mod/dfrn_request.php:346
+#: ../../mod/dfrn_request.php:361
msgid "This account has not been configured for email. Request failed."
msgstr ""
-#: ../../mod/dfrn_request.php:442
+#: ../../mod/dfrn_request.php:457
msgid "Unable to resolve your name at the provided location."
msgstr ""
-#: ../../mod/dfrn_request.php:455
+#: ../../mod/dfrn_request.php:470
msgid "You have already introduced yourself here."
msgstr ""
-#: ../../mod/dfrn_request.php:459
+#: ../../mod/dfrn_request.php:474
#, php-format
msgid "Apparently you are already friends with %s."
msgstr ""
-#: ../../mod/dfrn_request.php:480
+#: ../../mod/dfrn_request.php:495
msgid "Invalid profile URL."
msgstr ""
-#: ../../mod/dfrn_request.php:486 ../../include/follow.php:27
+#: ../../mod/dfrn_request.php:501 ../../include/follow.php:27
msgid "Disallowed profile URL."
msgstr ""
-#: ../../mod/dfrn_request.php:555 ../../mod/contacts.php:122
+#: ../../mod/dfrn_request.php:570 ../../mod/contacts.php:122
msgid "Failed to update contact record."
msgstr ""
-#: ../../mod/dfrn_request.php:576
+#: ../../mod/dfrn_request.php:591
msgid "Your introduction has been sent."
msgstr ""
-#: ../../mod/dfrn_request.php:629
+#: ../../mod/dfrn_request.php:644
msgid "Please login to confirm introduction."
msgstr ""
-#: ../../mod/dfrn_request.php:643
+#: ../../mod/dfrn_request.php:658
msgid ""
"Incorrect identity currently logged in. Please login to <strong>this</"
"strong> profile."
msgstr ""
-#: ../../mod/dfrn_request.php:654
+#: ../../mod/dfrn_request.php:669
msgid "Hide this contact"
msgstr ""
-#: ../../mod/dfrn_request.php:657
+#: ../../mod/dfrn_request.php:672
#, php-format
msgid "Welcome home %s."
msgstr ""
-#: ../../mod/dfrn_request.php:658
+#: ../../mod/dfrn_request.php:673
#, php-format
msgid "Please confirm your introduction/connection request to %s."
msgstr ""
-#: ../../mod/dfrn_request.php:659
+#: ../../mod/dfrn_request.php:674
msgid "Confirm"
msgstr ""
-#: ../../mod/dfrn_request.php:700 ../../include/items.php:2738
+#: ../../mod/dfrn_request.php:715 ../../include/items.php:2783
msgid "[Name Withheld]"
msgstr ""
-#: ../../mod/dfrn_request.php:793
+#: ../../mod/dfrn_request.php:808
msgid ""
"Please enter your 'Identity Address' from one of the following supported "
"communications networks:"
msgstr ""
-#: ../../mod/dfrn_request.php:809
+#: ../../mod/dfrn_request.php:824
msgid "<strike>Connect as an email follower</strike> (Coming soon)"
msgstr ""
-#: ../../mod/dfrn_request.php:811
+#: ../../mod/dfrn_request.php:826
msgid ""
"If you are not yet a member of the free social web, <a href=\"http://dir."
"friendica.com/siteinfo\">follow this link to find a public Friendica site "
"and join us today</a>."
msgstr ""
-#: ../../mod/dfrn_request.php:814
+#: ../../mod/dfrn_request.php:829
msgid "Friend/Connection Request"
msgstr ""
-#: ../../mod/dfrn_request.php:815
+#: ../../mod/dfrn_request.php:830
msgid ""
"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
"testuser@identi.ca"
msgstr ""
-#: ../../mod/dfrn_request.php:816
+#: ../../mod/dfrn_request.php:831
msgid "Please answer the following:"
msgstr ""
-#: ../../mod/dfrn_request.php:817
+#: ../../mod/dfrn_request.php:832
#, php-format
msgid "Does %s know you?"
msgstr ""
-#: ../../mod/dfrn_request.php:820
+#: ../../mod/dfrn_request.php:835
msgid "Add a personal note:"
msgstr ""
-#: ../../mod/dfrn_request.php:822 ../../include/contact_selectors.php:76
+#: ../../mod/dfrn_request.php:837 ../../include/contact_selectors.php:76
msgid "Friendica"
msgstr ""
-#: ../../mod/dfrn_request.php:823
+#: ../../mod/dfrn_request.php:838
msgid "StatusNet/Federated Social Web"
msgstr ""
-#: ../../mod/dfrn_request.php:824 ../../mod/settings.php:652
+#: ../../mod/dfrn_request.php:839 ../../mod/settings.php:652
#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr ""
-#: ../../mod/dfrn_request.php:825
+#: ../../mod/dfrn_request.php:840
#, php-format
msgid ""
" - please do not use this form. Instead, enter %s into your Diaspora search "
"bar."
msgstr ""
-#: ../../mod/dfrn_request.php:826
+#: ../../mod/dfrn_request.php:841
msgid "Your Identity Address:"
msgstr ""
-#: ../../mod/dfrn_request.php:829
+#: ../../mod/dfrn_request.php:844
msgid "Submit Request"
msgstr ""
@@ -1192,7 +1193,7 @@ msgid "is interested in:"
msgstr ""
#: ../../mod/match.php:58 ../../mod/suggest.php:59
-#: ../../include/contact_widgets.php:9 ../../boot.php:1049
+#: ../../include/contact_widgets.php:9 ../../boot.php:1053
msgid "Connect"
msgstr ""
@@ -1224,7 +1225,7 @@ msgstr ""
#: ../../mod/notifications.php:51 ../../mod/notifications.php:160
#: ../../mod/notifications.php:206 ../../mod/contacts.php:316
-#: ../../mod/contacts.php:368
+#: ../../mod/contacts.php:370
msgid "Ignore"
msgstr ""
@@ -1236,7 +1237,7 @@ msgstr ""
msgid "Network"
msgstr ""
-#: ../../mod/notifications.php:85 ../../mod/network.php:188
+#: ../../mod/notifications.php:85 ../../mod/network.php:300
msgid "Personal"
msgstr ""
@@ -1276,7 +1277,7 @@ msgid "suggested by %s"
msgstr ""
#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
-#: ../../mod/contacts.php:374
+#: ../../mod/contacts.php:376
msgid "Hide this contact from others"
msgstr ""
@@ -1489,12 +1490,12 @@ msgstr[1] ""
msgid "View all contacts"
msgstr ""
-#: ../../mod/contacts.php:310 ../../mod/contacts.php:367
+#: ../../mod/contacts.php:310 ../../mod/contacts.php:369
#: ../../mod/admin.php:665
msgid "Unblock"
msgstr ""
-#: ../../mod/contacts.php:310 ../../mod/contacts.php:367
+#: ../../mod/contacts.php:310 ../../mod/contacts.php:369
#: ../../mod/admin.php:664
msgid "Block"
msgstr ""
@@ -1503,7 +1504,7 @@ msgstr ""
msgid "Toggle Blocked status"
msgstr ""
-#: ../../mod/contacts.php:316 ../../mod/contacts.php:368
+#: ../../mod/contacts.php:316 ../../mod/contacts.php:370
msgid "Unignore"
msgstr ""
@@ -1531,170 +1532,174 @@ msgstr ""
msgid "Advanced Contact Settings"
msgstr ""
-#: ../../mod/contacts.php:340
+#: ../../mod/contacts.php:338
+msgid "Communications lost with this contact!"
+msgstr ""
+
+#: ../../mod/contacts.php:341
msgid "Contact Editor"
msgstr ""
-#: ../../mod/contacts.php:343
+#: ../../mod/contacts.php:344
msgid "Profile Visibility"
msgstr ""
-#: ../../mod/contacts.php:344
+#: ../../mod/contacts.php:345
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr ""
-#: ../../mod/contacts.php:345
+#: ../../mod/contacts.php:346
msgid "Contact Information / Notes"
msgstr ""
-#: ../../mod/contacts.php:346
+#: ../../mod/contacts.php:347
msgid "Edit contact notes"
msgstr ""
-#: ../../mod/contacts.php:351 ../../mod/contacts.php:542
+#: ../../mod/contacts.php:352 ../../mod/contacts.php:544
#: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
#, php-format
msgid "Visit %s's profile [%s]"
msgstr ""
-#: ../../mod/contacts.php:352
+#: ../../mod/contacts.php:353
msgid "Block/Unblock contact"
msgstr ""
-#: ../../mod/contacts.php:353
+#: ../../mod/contacts.php:354
msgid "Ignore contact"
msgstr ""
-#: ../../mod/contacts.php:354
+#: ../../mod/contacts.php:355
msgid "Repair URL settings"
msgstr ""
-#: ../../mod/contacts.php:355
+#: ../../mod/contacts.php:356
msgid "View conversations"
msgstr ""
-#: ../../mod/contacts.php:357
+#: ../../mod/contacts.php:358
msgid "Delete contact"
msgstr ""
-#: ../../mod/contacts.php:361
+#: ../../mod/contacts.php:362
msgid "Last update:"
msgstr ""
-#: ../../mod/contacts.php:362
+#: ../../mod/contacts.php:364
msgid "Update public posts"
msgstr ""
-#: ../../mod/contacts.php:364 ../../mod/admin.php:1136
+#: ../../mod/contacts.php:366 ../../mod/admin.php:1136
msgid "Update now"
msgstr ""
-#: ../../mod/contacts.php:371
+#: ../../mod/contacts.php:373
msgid "Currently blocked"
msgstr ""
-#: ../../mod/contacts.php:372
+#: ../../mod/contacts.php:374
msgid "Currently ignored"
msgstr ""
-#: ../../mod/contacts.php:373
+#: ../../mod/contacts.php:375
msgid "Currently archived"
msgstr ""
-#: ../../mod/contacts.php:374
+#: ../../mod/contacts.php:376
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
-#: ../../mod/contacts.php:427
+#: ../../mod/contacts.php:429
msgid "Suggestions"
msgstr ""
-#: ../../mod/contacts.php:430
+#: ../../mod/contacts.php:432
msgid "Suggest potential friends"
msgstr ""
-#: ../../mod/contacts.php:433 ../../mod/group.php:191
+#: ../../mod/contacts.php:435 ../../mod/group.php:191
msgid "All Contacts"
msgstr ""
-#: ../../mod/contacts.php:436
+#: ../../mod/contacts.php:438
msgid "Show all contacts"
msgstr ""
-#: ../../mod/contacts.php:439
+#: ../../mod/contacts.php:441
msgid "Unblocked"
msgstr ""
-#: ../../mod/contacts.php:442
+#: ../../mod/contacts.php:444
msgid "Only show unblocked contacts"
msgstr ""
-#: ../../mod/contacts.php:446
+#: ../../mod/contacts.php:448
msgid "Blocked"
msgstr ""
-#: ../../mod/contacts.php:449
+#: ../../mod/contacts.php:451
msgid "Only show blocked contacts"
msgstr ""
-#: ../../mod/contacts.php:453
+#: ../../mod/contacts.php:455
msgid "Ignored"
msgstr ""
-#: ../../mod/contacts.php:456
+#: ../../mod/contacts.php:458
msgid "Only show ignored contacts"
msgstr ""
-#: ../../mod/contacts.php:460
+#: ../../mod/contacts.php:462
msgid "Archived"
msgstr ""
-#: ../../mod/contacts.php:463
+#: ../../mod/contacts.php:465
msgid "Only show archived contacts"
msgstr ""
-#: ../../mod/contacts.php:467
+#: ../../mod/contacts.php:469
msgid "Hidden"
msgstr ""
-#: ../../mod/contacts.php:470
+#: ../../mod/contacts.php:472
msgid "Only show hidden contacts"
msgstr ""
-#: ../../mod/contacts.php:518
+#: ../../mod/contacts.php:520
msgid "Mutual Friendship"
msgstr ""
-#: ../../mod/contacts.php:522
+#: ../../mod/contacts.php:524
msgid "is a fan of yours"
msgstr ""
-#: ../../mod/contacts.php:526
+#: ../../mod/contacts.php:528
msgid "you are a fan of"
msgstr ""
-#: ../../mod/contacts.php:543 ../../mod/nogroup.php:41
+#: ../../mod/contacts.php:545 ../../mod/nogroup.php:41
msgid "Edit contact"
msgstr ""
-#: ../../mod/contacts.php:564 ../../view/theme/diabook/theme.php:129
+#: ../../mod/contacts.php:566 ../../view/theme/diabook/theme.php:129
#: ../../include/nav.php:139
msgid "Contacts"
msgstr ""
-#: ../../mod/contacts.php:568
+#: ../../mod/contacts.php:570
msgid "Search your contacts"
msgstr ""
-#: ../../mod/contacts.php:569 ../../mod/directory.php:57
+#: ../../mod/contacts.php:571 ../../mod/directory.php:57
msgid "Finding: "
msgstr ""
-#: ../../mod/contacts.php:570 ../../mod/directory.php:59
+#: ../../mod/contacts.php:572 ../../mod/directory.php:59
#: ../../include/contact_widgets.php:33
msgid "Find"
msgstr ""
@@ -1715,11 +1720,11 @@ msgstr ""
#: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
#: ../../mod/register.php:90 ../../mod/register.php:144
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:752
-#: ../../addon/facebook/facebook.php:688
-#: ../../addon/facebook/facebook.php:1178
+#: ../../addon/facebook/facebook.php:692
+#: ../../addon/facebook/facebook.php:1182
#: ../../addon/public_server/public_server.php:62
-#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2747
-#: ../../boot.php:699
+#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2792
+#: ../../boot.php:703
msgid "Administrator"
msgstr ""
@@ -1729,7 +1734,7 @@ msgid ""
"Password reset failed."
msgstr ""
-#: ../../mod/lostpass.php:83 ../../boot.php:831
+#: ../../mod/lostpass.php:83 ../../boot.php:835
msgid "Password Reset"
msgstr ""
@@ -1802,7 +1807,7 @@ msgid "Remove account"
msgstr ""
#: ../../mod/settings.php:89 ../../mod/admin.php:751 ../../mod/admin.php:956
-#: ../../addon/dav/layout.fnk.php:112 ../../addon/mathjax/mathjax.php:36
+#: ../../addon/dav/layout.fnk.php:116 ../../addon/mathjax/mathjax.php:36
#: ../../view/theme/diabook/theme.php:643
#: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137
msgid "Settings"
@@ -1864,7 +1869,7 @@ msgstr ""
msgid "Private forum has no privacy permissions and no default privacy group."
msgstr ""
-#: ../../mod/settings.php:484 ../../addon/facebook/facebook.php:488
+#: ../../mod/settings.php:484 ../../addon/facebook/facebook.php:492
#: ../../addon/impressum/impressum.php:77
#: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
@@ -2308,67 +2313,67 @@ msgstr ""
msgid "Select an identity to manage: "
msgstr ""
-#: ../../mod/network.php:43
+#: ../../mod/network.php:97
msgid "Search Results For:"
msgstr ""
-#: ../../mod/network.php:82 ../../mod/search.php:16
+#: ../../mod/network.php:137 ../../mod/search.php:16
msgid "Remove term"
msgstr ""
-#: ../../mod/network.php:91 ../../mod/search.php:13
+#: ../../mod/network.php:146 ../../mod/search.php:13
msgid "Saved Searches"
msgstr ""
-#: ../../mod/network.php:92 ../../include/group.php:244
+#: ../../mod/network.php:147 ../../include/group.php:244
msgid "add"
msgstr ""
-#: ../../mod/network.php:175
+#: ../../mod/network.php:287
msgid "Commented Order"
msgstr ""
-#: ../../mod/network.php:178
+#: ../../mod/network.php:290
msgid "Sort by Comment Date"
msgstr ""
-#: ../../mod/network.php:181
+#: ../../mod/network.php:293
msgid "Posted Order"
msgstr ""
-#: ../../mod/network.php:184
+#: ../../mod/network.php:296
msgid "Sort by Post Date"
msgstr ""
-#: ../../mod/network.php:191
+#: ../../mod/network.php:303
msgid "Posts that mention or involve you"
msgstr ""
-#: ../../mod/network.php:194
+#: ../../mod/network.php:306
msgid "New"
msgstr ""
-#: ../../mod/network.php:197
+#: ../../mod/network.php:309
msgid "Activity Stream - by date"
msgstr ""
-#: ../../mod/network.php:200
+#: ../../mod/network.php:312
msgid "Starred"
msgstr ""
-#: ../../mod/network.php:203
+#: ../../mod/network.php:315
msgid "Favourite Posts"
msgstr ""
-#: ../../mod/network.php:206
+#: ../../mod/network.php:318
msgid "Shared Links"
msgstr ""
-#: ../../mod/network.php:209
+#: ../../mod/network.php:321
msgid "Interesting Links"
msgstr ""
-#: ../../mod/network.php:285
+#: ../../mod/network.php:388
#, php-format
msgid "Warning: This group contains %s member from an insecure network."
msgid_plural ""
@@ -2376,42 +2381,42 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ../../mod/network.php:288
+#: ../../mod/network.php:391
msgid "Private messages to this group are at risk of public disclosure."
msgstr ""
-#: ../../mod/network.php:333
+#: ../../mod/network.php:436
msgid "No such group"
msgstr ""
-#: ../../mod/network.php:344
+#: ../../mod/network.php:447
msgid "Group is empty"
msgstr ""
-#: ../../mod/network.php:348
+#: ../../mod/network.php:451
msgid "Group: "
msgstr ""
-#: ../../mod/network.php:358
+#: ../../mod/network.php:461
msgid "Contact: "
msgstr ""
-#: ../../mod/network.php:360
+#: ../../mod/network.php:463
msgid "Private messages to this person are at risk of public disclosure."
msgstr ""
-#: ../../mod/network.php:365
+#: ../../mod/network.php:468
msgid "Invalid contact."
msgstr ""
-#: ../../mod/notes.php:44 ../../boot.php:1531
+#: ../../mod/notes.php:44 ../../boot.php:1535
msgid "Personal Notes"
msgstr ""
#: ../../mod/notes.php:63 ../../mod/filer.php:30
-#: ../../addon/facebook/facebook.php:756
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:178
-#: ../../addon/dav/layout.fnk.php:418 ../../include/text.php:652
+#: ../../addon/facebook/facebook.php:760
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:185
+#: ../../addon/dav/layout.fnk.php:384 ../../include/text.php:652
msgid "Save"
msgstr ""
@@ -2613,7 +2618,7 @@ msgstr ""
msgid "Group name changed."
msgstr ""
-#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305
+#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:298
msgid "Permission denied"
msgstr ""
@@ -2655,7 +2660,7 @@ msgstr ""
#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128
#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:79
-#: ../../include/nav.php:50 ../../boot.php:1510
+#: ../../include/nav.php:50 ../../boot.php:1514
msgid "Profile"
msgstr ""
@@ -2759,7 +2764,7 @@ msgstr ""
msgid "Choose a nickname: "
msgstr ""
-#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:797
+#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:801
msgid "Register"
msgstr ""
@@ -2768,7 +2773,7 @@ msgid "People Search"
msgstr ""
#: ../../mod/like.php:185 ../../mod/like.php:259 ../../mod/tagger.php:70
-#: ../../addon/facebook/facebook.php:1572
+#: ../../addon/facebook/facebook.php:1576
#: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167
#: ../../view/theme/diabook/theme.php:565
@@ -2778,7 +2783,7 @@ msgstr ""
msgid "status"
msgstr ""
-#: ../../mod/like.php:202 ../../addon/facebook/facebook.php:1576
+#: ../../mod/like.php:202 ../../addon/facebook/facebook.php:1580
#: ../../addon/communityhome/communityhome.php:172
#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1687
#: ../../include/conversation.php:65
@@ -2793,7 +2798,7 @@ msgstr ""
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:159
#: ../../mod/admin.php:700 ../../mod/admin.php:899 ../../mod/display.php:37
-#: ../../mod/display.php:142 ../../include/items.php:3189
+#: ../../mod/display.php:142 ../../include/items.php:3234
msgid "Item not found."
msgstr ""
@@ -2802,7 +2807,7 @@ msgid "Access denied."
msgstr ""
#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:130
-#: ../../include/nav.php:51 ../../boot.php:1516
+#: ../../include/nav.php:51 ../../boot.php:1520
msgid "Photos"
msgstr ""
@@ -3605,15 +3610,15 @@ msgstr ""
msgid "FTP Password"
msgstr ""
-#: ../../mod/profile.php:21 ../../boot.php:962
+#: ../../mod/profile.php:21 ../../boot.php:966
msgid "Requested profile is not available."
msgstr ""
-#: ../../mod/profile.php:126 ../../mod/display.php:75
+#: ../../mod/profile.php:141 ../../mod/display.php:75
msgid "Access to this profile has been restricted."
msgstr ""
-#: ../../mod/profile.php:151
+#: ../../mod/profile.php:166
msgid "Tips for New Members"
msgstr ""
@@ -3758,7 +3763,7 @@ msgstr ""
msgid "Address"
msgstr ""
-#: ../../mod/profiles.php:194
+#: ../../mod/profiles.php:194 ../../addon/dav/layout.fnk.php:310
msgid "Location"
msgstr ""
@@ -3980,23 +3985,23 @@ msgstr ""
msgid "Edit/Manage Profiles"
msgstr ""
-#: ../../mod/profiles.php:645 ../../boot.php:1071
+#: ../../mod/profiles.php:645 ../../boot.php:1075
msgid "Change profile photo"
msgstr ""
-#: ../../mod/profiles.php:646 ../../boot.php:1072
+#: ../../mod/profiles.php:646 ../../boot.php:1076
msgid "Create New Profile"
msgstr ""
-#: ../../mod/profiles.php:657 ../../boot.php:1082
+#: ../../mod/profiles.php:657 ../../boot.php:1086
msgid "Profile Image"
msgstr ""
-#: ../../mod/profiles.php:659 ../../boot.php:1085
+#: ../../mod/profiles.php:659 ../../boot.php:1089
msgid "visible to everybody"
msgstr ""
-#: ../../mod/profiles.php:660 ../../boot.php:1086
+#: ../../mod/profiles.php:660 ../../boot.php:1090
msgid "Edit visibility"
msgstr ""
@@ -4254,83 +4259,83 @@ msgstr ""
msgid "%1$s has joined %2$s"
msgstr ""
-#: ../../addon/facebook/facebook.php:509
+#: ../../addon/facebook/facebook.php:513
msgid "Facebook disabled"
msgstr ""
-#: ../../addon/facebook/facebook.php:514
+#: ../../addon/facebook/facebook.php:518
msgid "Updating contacts"
msgstr ""
-#: ../../addon/facebook/facebook.php:537
+#: ../../addon/facebook/facebook.php:541
msgid "Facebook API key is missing."
msgstr ""
-#: ../../addon/facebook/facebook.php:544
+#: ../../addon/facebook/facebook.php:548
msgid "Facebook Connect"
msgstr ""
-#: ../../addon/facebook/facebook.php:550
+#: ../../addon/facebook/facebook.php:554
msgid "Install Facebook connector for this account."
msgstr ""
-#: ../../addon/facebook/facebook.php:557
+#: ../../addon/facebook/facebook.php:561
msgid "Remove Facebook connector"
msgstr ""
-#: ../../addon/facebook/facebook.php:562
+#: ../../addon/facebook/facebook.php:566
msgid ""
"Re-authenticate [This is necessary whenever your Facebook password is "
"changed.]"
msgstr ""
-#: ../../addon/facebook/facebook.php:569
+#: ../../addon/facebook/facebook.php:573
msgid "Post to Facebook by default"
msgstr ""
-#: ../../addon/facebook/facebook.php:575
+#: ../../addon/facebook/facebook.php:579
msgid ""
"Facebook friend linking has been disabled on this site. The following "
"settings will have no effect."
msgstr ""
-#: ../../addon/facebook/facebook.php:579
+#: ../../addon/facebook/facebook.php:583
msgid ""
"Facebook friend linking has been disabled on this site. If you disable it, "
"you will be unable to re-enable it."
msgstr ""
-#: ../../addon/facebook/facebook.php:582
+#: ../../addon/facebook/facebook.php:586
msgid "Link all your Facebook friends and conversations on this website"
msgstr ""
-#: ../../addon/facebook/facebook.php:584
+#: ../../addon/facebook/facebook.php:588
msgid ""
"Facebook conversations consist of your <em>profile wall</em> and your friend "
"<em>stream</em>."
msgstr ""
-#: ../../addon/facebook/facebook.php:585
+#: ../../addon/facebook/facebook.php:589
msgid "On this website, your Facebook friend stream is only visible to you."
msgstr ""
-#: ../../addon/facebook/facebook.php:586
+#: ../../addon/facebook/facebook.php:590
msgid ""
"The following settings determine the privacy of your Facebook profile wall "
"on this website."
msgstr ""
-#: ../../addon/facebook/facebook.php:590
+#: ../../addon/facebook/facebook.php:594
msgid ""
"On this website your Facebook profile wall conversations will only be "
"visible to you"
msgstr ""
-#: ../../addon/facebook/facebook.php:595
+#: ../../addon/facebook/facebook.php:599
msgid "Do not import your Facebook profile wall conversations"
msgstr ""
-#: ../../addon/facebook/facebook.php:597
+#: ../../addon/facebook/facebook.php:601
msgid ""
"If you choose to link conversations and leave both of these boxes unchecked, "
"your Facebook profile wall will be merged with your profile wall on this "
@@ -4338,120 +4343,120 @@ msgid ""
"who may see the conversations."
msgstr ""
-#: ../../addon/facebook/facebook.php:602
+#: ../../addon/facebook/facebook.php:606
msgid "Comma separated applications to ignore"
msgstr ""
-#: ../../addon/facebook/facebook.php:686
+#: ../../addon/facebook/facebook.php:690
msgid "Problems with Facebook Real-Time Updates"
msgstr ""
-#: ../../addon/facebook/facebook.php:714
+#: ../../addon/facebook/facebook.php:718
#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr ""
-#: ../../addon/facebook/facebook.php:715
+#: ../../addon/facebook/facebook.php:719
msgid "Facebook Connector Settings"
msgstr ""
-#: ../../addon/facebook/facebook.php:730
+#: ../../addon/facebook/facebook.php:734
msgid "Facebook API Key"
msgstr ""
-#: ../../addon/facebook/facebook.php:740
+#: ../../addon/facebook/facebook.php:744
msgid ""
"Error: it appears that you have specified the App-ID and -Secret in your ."
"htconfig.php file. As long as they are specified there, they cannot be set "
"using this form.<br><br>"
msgstr ""
-#: ../../addon/facebook/facebook.php:745
+#: ../../addon/facebook/facebook.php:749
msgid ""
"Error: the given API Key seems to be incorrect (the application access token "
"could not be retrieved)."
msgstr ""
-#: ../../addon/facebook/facebook.php:747
+#: ../../addon/facebook/facebook.php:751
msgid "The given API Key seems to work correctly."
msgstr ""
-#: ../../addon/facebook/facebook.php:749
+#: ../../addon/facebook/facebook.php:753
msgid ""
"The correctness of the API Key could not be detected. Somthing strange's "
"going on."
msgstr ""
-#: ../../addon/facebook/facebook.php:752
+#: ../../addon/facebook/facebook.php:756
msgid "App-ID / API-Key"
msgstr ""
-#: ../../addon/facebook/facebook.php:753
+#: ../../addon/facebook/facebook.php:757
msgid "Application secret"
msgstr ""
-#: ../../addon/facebook/facebook.php:754
+#: ../../addon/facebook/facebook.php:758
#, php-format
msgid "Polling Interval in minutes (minimum %1$s minutes)"
msgstr ""
-#: ../../addon/facebook/facebook.php:755
+#: ../../addon/facebook/facebook.php:759
msgid ""
"Synchronize comments (no comments on Facebook are missed, at the cost of "
"increased system load)"
msgstr ""
-#: ../../addon/facebook/facebook.php:759
+#: ../../addon/facebook/facebook.php:763
msgid "Real-Time Updates"
msgstr ""
-#: ../../addon/facebook/facebook.php:763
+#: ../../addon/facebook/facebook.php:767
msgid "Real-Time Updates are activated."
msgstr ""
-#: ../../addon/facebook/facebook.php:764
+#: ../../addon/facebook/facebook.php:768
msgid "Deactivate Real-Time Updates"
msgstr ""
-#: ../../addon/facebook/facebook.php:766
+#: ../../addon/facebook/facebook.php:770
msgid "Real-Time Updates not activated."
msgstr ""
-#: ../../addon/facebook/facebook.php:766
+#: ../../addon/facebook/facebook.php:770
msgid "Activate Real-Time Updates"
msgstr ""
-#: ../../addon/facebook/facebook.php:785 ../../addon/dav/layout.fnk.php:394
+#: ../../addon/facebook/facebook.php:789 ../../addon/dav/layout.fnk.php:360
msgid "The new values have been saved."
msgstr ""
-#: ../../addon/facebook/facebook.php:809
+#: ../../addon/facebook/facebook.php:813
msgid "Post to Facebook"
msgstr ""
-#: ../../addon/facebook/facebook.php:907
+#: ../../addon/facebook/facebook.php:911
msgid ""
"Post to Facebook cancelled because of multi-network access permission "
"conflict."
msgstr ""
-#: ../../addon/facebook/facebook.php:1127
+#: ../../addon/facebook/facebook.php:1131
msgid "View on Friendica"
msgstr ""
-#: ../../addon/facebook/facebook.php:1160
+#: ../../addon/facebook/facebook.php:1164
msgid "Facebook post failed. Queued for retry."
msgstr ""
-#: ../../addon/facebook/facebook.php:1200
+#: ../../addon/facebook/facebook.php:1204
msgid "Your Facebook connection became invalid. Please Re-authenticate."
msgstr ""
-#: ../../addon/facebook/facebook.php:1201
+#: ../../addon/facebook/facebook.php:1205
msgid "Facebook connection became invalid"
msgstr ""
-#: ../../addon/facebook/facebook.php:1202
+#: ../../addon/facebook/facebook.php:1206
#, php-format
msgid ""
"Hi %1$s,\n"
@@ -4473,23 +4478,23 @@ msgstr ""
msgid "Automatically follow any StatusNet followers/mentioners"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:175
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:182
msgid "Lifetime of the cache (in hours)"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:180
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:187
msgid "Cache Statistics"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:183
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:190
msgid "Number of items"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:185
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:192
msgid "Size of the cache"
msgstr ""
-#: ../../addon/privacy_image_cache/privacy_image_cache.php:187
+#: ../../addon/privacy_image_cache/privacy_image_cache.php:194
msgid "Delete the whole cache"
msgstr ""
@@ -4616,7 +4621,7 @@ msgstr ""
#: ../../addon/page/page.php:63 ../../addon/showmore/showmore.php:87
#: ../../include/contact_widgets.php:188 ../../include/conversation.php:476
-#: ../../boot.php:520
+#: ../../boot.php:524
msgid "show more"
msgstr ""
@@ -4632,7 +4637,7 @@ msgstr ""
#: ../../addon/communityhome/communityhome.php:34
#: ../../addon/communityhome/twillingham/communityhome.php:28
#: ../../addon/communityhome/twillingham/communityhome.php:34
-#: ../../include/nav.php:64 ../../boot.php:818
+#: ../../include/nav.php:64 ../../boot.php:822
msgid "Login"
msgstr ""
@@ -4673,98 +4678,116 @@ msgstr ""
msgid "German Time Format (dd.mm.YYYY)"
msgstr ""
-#: ../../addon/dav/common/calendar.fnk.php:507
-#: ../../addon/dav/common/calendar.fnk.php:576
-#: ../../addon/dav/common/calendar.fnk.php:603
-#: ../../addon/dav/layout.fnk.php:266
+#: ../../addon/dav/common/calendar.fnk.php:517
+#: ../../addon/dav/common/calendar.fnk.php:533
+#: ../../addon/dav/layout.fnk.php:200
+msgid "Error"
+msgstr ""
+
+#: ../../addon/dav/common/calendar.fnk.php:568
+#: ../../addon/dav/common/calendar.fnk.php:637
+#: ../../addon/dav/common/calendar.fnk.php:664
+#: ../../addon/dav/layout.fnk.php:231
msgid "No access"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:116
+#: ../../addon/dav/layout.fnk.php:119
+msgid "New event"
+msgstr ""
+
+#: ../../addon/dav/layout.fnk.php:123
msgid "Today"
msgstr ""
#: ../../addon/dav/layout.fnk.php:132
-msgid "Week"
+msgid "Day"
msgstr ""
#: ../../addon/dav/layout.fnk.php:139
+msgid "Week"
+msgstr ""
+
+#: ../../addon/dav/layout.fnk.php:146
msgid "Month"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:144
+#: ../../addon/dav/layout.fnk.php:151
msgid "Reload"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:155
+#: ../../addon/dav/layout.fnk.php:162
msgid "Date"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:193 ../../addon/dav/layout.fnk.php:237
-msgid "Error"
-msgstr ""
-
-#: ../../addon/dav/layout.fnk.php:259
+#: ../../addon/dav/layout.fnk.php:224
msgid "Not found"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:326 ../../addon/dav/layout.fnk.php:399
+#: ../../addon/dav/layout.fnk.php:292 ../../addon/dav/layout.fnk.php:365
msgid "Go back to the calendar"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:346
+#: ../../addon/dav/layout.fnk.php:300
+msgid "Starts"
+msgstr ""
+
+#: ../../addon/dav/layout.fnk.php:305
+msgid "Ends"
+msgstr ""
+
+#: ../../addon/dav/layout.fnk.php:312
msgid "Description"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:349
+#: ../../addon/dav/layout.fnk.php:315
msgid "Notification"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:358
+#: ../../addon/dav/layout.fnk.php:324
msgid "Minutes"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:361
+#: ../../addon/dav/layout.fnk.php:327
msgid "Hours"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:364
+#: ../../addon/dav/layout.fnk.php:330
msgid "Days"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:365
+#: ../../addon/dav/layout.fnk.php:331
msgid "before"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:401
+#: ../../addon/dav/layout.fnk.php:367
msgid "Calendar Settings"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:407
+#: ../../addon/dav/layout.fnk.php:373
msgid "Date format"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:416
+#: ../../addon/dav/layout.fnk.php:382
msgid "Time zone"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:421
+#: ../../addon/dav/layout.fnk.php:387
msgid "Limitations"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:425
+#: ../../addon/dav/layout.fnk.php:391
msgid "Warning"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:429
+#: ../../addon/dav/layout.fnk.php:395
msgid "Synchronization (iPhone, Thunderbird Lightning, Android, ...)"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:436
+#: ../../addon/dav/layout.fnk.php:402
msgid "Synchronizing this calendar with the iPhone"
msgstr ""
-#: ../../addon/dav/layout.fnk.php:447
+#: ../../addon/dav/layout.fnk.php:413
msgid "Synchronizing your Friendica-Contacts with the iPhone"
msgstr ""
@@ -4776,71 +4799,71 @@ msgstr ""
msgid "Your Friendica-Contacts"
msgstr ""
-#: ../../addon/dav/main.php:229
+#: ../../addon/dav/main.php:244
msgid "Calendar"
msgstr ""
-#: ../../addon/dav/main.php:232
+#: ../../addon/dav/main.php:247
msgid "Extended calendar with CalDAV-support"
msgstr ""
-#: ../../addon/dav/main.php:248
+#: ../../addon/dav/main.php:263
msgid "The database tables have been installed."
msgstr ""
-#: ../../addon/dav/main.php:249
+#: ../../addon/dav/main.php:264
msgid "An error occurred during the installation."
msgstr ""
-#: ../../addon/dav/main.php:265
+#: ../../addon/dav/main.php:280
msgid "No system-wide settings yet."
msgstr ""
-#: ../../addon/dav/main.php:268
+#: ../../addon/dav/main.php:283
msgid "Database status"
msgstr ""
-#: ../../addon/dav/main.php:271
+#: ../../addon/dav/main.php:286
msgid "Installed"
msgstr ""
-#: ../../addon/dav/main.php:274
+#: ../../addon/dav/main.php:289
msgid "Upgrade needed"
msgstr ""
-#: ../../addon/dav/main.php:274
+#: ../../addon/dav/main.php:289
msgid "Upgrade"
msgstr ""
-#: ../../addon/dav/main.php:277
+#: ../../addon/dav/main.php:292
msgid "Not installed"
msgstr ""
-#: ../../addon/dav/main.php:277
+#: ../../addon/dav/main.php:292
msgid "Install"
msgstr ""
-#: ../../addon/dav/main.php:282
+#: ../../addon/dav/main.php:297
msgid "Troubleshooting"
msgstr ""
-#: ../../addon/dav/main.php:283
+#: ../../addon/dav/main.php:298
msgid "Manual creation of the database tables:"
msgstr ""
-#: ../../addon/dav/main.php:284
+#: ../../addon/dav/main.php:299
msgid "Show SQL-statements"
msgstr ""
-#: ../../addon/dav/calendar.friendica.fnk.php:128
+#: ../../addon/dav/calendar.friendica.fnk.php:151
msgid "Private Calendar"
msgstr ""
-#: ../../addon/dav/calendar.friendica.fnk.php:135
+#: ../../addon/dav/calendar.friendica.fnk.php:158
msgid "Friendica Events: Mine"
msgstr ""
-#: ../../addon/dav/calendar.friendica.fnk.php:138
+#: ../../addon/dav/calendar.friendica.fnk.php:161
msgid "Friendica Events: Contacts"
msgstr ""
@@ -5147,6 +5170,18 @@ msgstr ""
msgid "Report Bug"
msgstr ""
+#: ../../addon/notimeline/notimeline.php:32
+msgid "No Timeline settings updated."
+msgstr ""
+
+#: ../../addon/notimeline/notimeline.php:56
+msgid "No Timeline Settings"
+msgstr ""
+
+#: ../../addon/notimeline/notimeline.php:58
+msgid "Disable Archive selector on profile wall"
+msgstr ""
+
#: ../../addon/blockem/blockem.php:51
msgid "\"Blockem\" Settings"
msgstr ""
@@ -6016,7 +6051,7 @@ msgstr ""
msgid "Set colour scheme"
msgstr ""
-#: ../../include/profile_advanced.php:17 ../../boot.php:1107
+#: ../../include/profile_advanced.php:17 ../../boot.php:1111
msgid "Gender:"
msgstr ""
@@ -6029,7 +6064,7 @@ msgid "j F"
msgstr ""
#: ../../include/profile_advanced.php:30 ../../include/datetime.php:450
-#: ../../include/items.php:1428
+#: ../../include/items.php:1446
msgid "Birthday:"
msgstr ""
@@ -6037,7 +6072,7 @@ msgstr ""
msgid "Age:"
msgstr ""
-#: ../../include/profile_advanced.php:37 ../../boot.php:1110
+#: ../../include/profile_advanced.php:37 ../../boot.php:1114
msgid "Status:"
msgstr ""
@@ -6046,7 +6081,7 @@ msgstr ""
msgid "for %1$d %2$s"
msgstr ""
-#: ../../include/profile_advanced.php:48 ../../boot.php:1112
+#: ../../include/profile_advanced.php:48 ../../boot.php:1116
msgid "Homepage:"
msgstr ""
@@ -6625,7 +6660,7 @@ msgstr ""
msgid "Contacts not in any group"
msgstr ""
-#: ../../include/nav.php:46 ../../boot.php:817
+#: ../../include/nav.php:46 ../../boot.php:821
msgid "Logout"
msgstr ""
@@ -6633,7 +6668,7 @@ msgstr ""
msgid "End this session"
msgstr ""
-#: ../../include/nav.php:49 ../../boot.php:1504
+#: ../../include/nav.php:49 ../../boot.php:1508
msgid "Status"
msgstr ""
@@ -6713,11 +6748,11 @@ msgstr ""
msgid "Manage other pages"
msgstr ""
-#: ../../include/nav.php:138 ../../boot.php:1065
+#: ../../include/nav.php:138 ../../boot.php:1069
msgid "Profiles"
msgstr ""
-#: ../../include/nav.php:138 ../../boot.php:1065
+#: ../../include/nav.php:138 ../../boot.php:1069
msgid "Manage/edit profiles"
msgstr ""
@@ -6879,7 +6914,7 @@ msgstr ""
msgid "%1$d %2$s ago"
msgstr ""
-#: ../../include/onepoll.php:406
+#: ../../include/onepoll.php:409
msgid "From: "
msgstr ""
@@ -6929,12 +6964,12 @@ msgstr ""
#: ../../include/enotify.php:44
#, php-format
-msgid "%s sent you a new private message at %s."
+msgid "%1$s sent you a new private message at %2$s."
msgstr ""
#: ../../include/enotify.php:45
#, php-format
-msgid "%s sent you %s."
+msgid "%1$s sent you %2$s."
msgstr ""
#: ../../include/enotify.php:45
@@ -6946,148 +6981,129 @@ msgstr ""
msgid "Please visit %s to view and/or reply to your private messages."
msgstr ""
-#: ../../include/enotify.php:76
+#: ../../include/enotify.php:73
#, php-format
-msgid "%s's"
+msgid "%1$s commented on [url=%2$s]a %3$s[/url]"
msgstr ""
#: ../../include/enotify.php:80
-msgid "your"
+#, php-format
+msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]"
msgstr ""
-#: ../../include/enotify.php:87
+#: ../../include/enotify.php:88
#, php-format
-msgid "[Friendica:Notify] Comment to conversation #%d by %s"
+msgid "%1$s commented on [url=%2$s]your %3$s[/url]"
msgstr ""
-#: ../../include/enotify.php:88
+#: ../../include/enotify.php:98
#, php-format
-msgid "%s commented on an item/conversation you have been following."
+msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s"
msgstr ""
-#: ../../include/enotify.php:89
+#: ../../include/enotify.php:99
#, php-format
-msgid "%s commented on %s."
+msgid "%s commented on an item/conversation you have been following."
msgstr ""
-#: ../../include/enotify.php:91 ../../include/enotify.php:104
-#: ../../include/enotify.php:115 ../../include/enotify.php:126
+#: ../../include/enotify.php:102 ../../include/enotify.php:117
+#: ../../include/enotify.php:130 ../../include/enotify.php:143
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
-#: ../../include/enotify.php:98
+#: ../../include/enotify.php:109
#, php-format
msgid "[Friendica:Notify] %s posted to your profile wall"
msgstr ""
-#: ../../include/enotify.php:100
+#: ../../include/enotify.php:111
#, php-format
-msgid "%s posted to your profile wall at %s"
+msgid "%1$s posted to your profile wall at %2$s"
msgstr ""
-#: ../../include/enotify.php:102
+#: ../../include/enotify.php:113
#, php-format
-msgid "%s posted to %s"
+msgid "%1$s posted to [url=%2s]your wall[/url]"
msgstr ""
-#: ../../include/enotify.php:102
-msgid "your profile wall."
-msgstr ""
-
-#: ../../include/enotify.php:111
+#: ../../include/enotify.php:124
#, php-format
msgid "[Friendica:Notify] %s tagged you"
msgstr ""
-#: ../../include/enotify.php:112
+#: ../../include/enotify.php:125
#, php-format
-msgid "%s tagged you at %s"
+msgid "%1$s tagged you at %2$s"
msgstr ""
-#: ../../include/enotify.php:113
+#: ../../include/enotify.php:126
#, php-format
-msgid "%s %s."
+msgid "%1$s [url=%2s]tagged you[/url]."
msgstr ""
-#: ../../include/enotify.php:113
-msgid "tagged you"
-msgstr ""
-
-#: ../../include/enotify.php:122
+#: ../../include/enotify.php:137
#, php-format
msgid "[Friendica:Notify] %s tagged your post"
msgstr ""
-#: ../../include/enotify.php:123
+#: ../../include/enotify.php:138
#, php-format
-msgid "%s tagged your post at %s"
+msgid "%1$s tagged your post at %2$s"
msgstr ""
-#: ../../include/enotify.php:124
+#: ../../include/enotify.php:139
#, php-format
-msgid "%s tagged %s"
-msgstr ""
-
-#: ../../include/enotify.php:124
-msgid "your post"
+msgid "%1$s tagged [url=%2$s]your post[/url]"
msgstr ""
-#: ../../include/enotify.php:133
+#: ../../include/enotify.php:150
msgid "[Friendica:Notify] Introduction received"
msgstr ""
-#: ../../include/enotify.php:134
+#: ../../include/enotify.php:151
#, php-format
-msgid "You've received an introduction from '%s' at %s"
+msgid "You've received an introduction from '%1$s' at %2$s"
msgstr ""
-#: ../../include/enotify.php:135
+#: ../../include/enotify.php:152
#, php-format
-msgid "You've received %s from %s."
-msgstr ""
-
-#: ../../include/enotify.php:135
-msgid "an introduction"
+msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr ""
-#: ../../include/enotify.php:136 ../../include/enotify.php:153
+#: ../../include/enotify.php:155 ../../include/enotify.php:173
#, php-format
msgid "You may visit their profile at %s"
msgstr ""
-#: ../../include/enotify.php:138
+#: ../../include/enotify.php:157
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr ""
-#: ../../include/enotify.php:145
+#: ../../include/enotify.php:164
msgid "[Friendica:Notify] Friend suggestion received"
msgstr ""
-#: ../../include/enotify.php:146
+#: ../../include/enotify.php:165
#, php-format
-msgid "You've received a friend suggestion from '%s' at %s"
+msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
-#: ../../include/enotify.php:147
+#: ../../include/enotify.php:166
#, php-format
-msgid "You've received %s for %s from %s."
-msgstr ""
-
-#: ../../include/enotify.php:148
-msgid "a friend suggestion"
+msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
msgstr ""
-#: ../../include/enotify.php:151
+#: ../../include/enotify.php:171
msgid "Name:"
msgstr ""
-#: ../../include/enotify.php:152
+#: ../../include/enotify.php:172
msgid "Photo:"
msgstr ""
-#: ../../include/enotify.php:155
+#: ../../include/enotify.php:175
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
@@ -7147,14 +7163,18 @@ msgstr ""
msgid "following"
msgstr ""
-#: ../../include/items.php:2745
+#: ../../include/items.php:2790
msgid "A new person is sharing with you at "
msgstr ""
-#: ../../include/items.php:2745
+#: ../../include/items.php:2790
msgid "You have a new follower at "
msgstr ""
+#: ../../include/items.php:3452
+msgid "Archives"
+msgstr ""
+
#: ../../include/bb2diaspora.php:102 ../../include/bb2diaspora.php:112
#: ../../include/bb2diaspora.php:113
msgid "image/photo"
@@ -7254,29 +7274,29 @@ msgstr ""
msgid "stopped following"
msgstr ""
-#: ../../include/Contact.php:203 ../../include/conversation.php:842
+#: ../../include/Contact.php:218 ../../include/conversation.php:842
msgid "View Status"
msgstr ""
-#: ../../include/Contact.php:204 ../../include/conversation.php:843
+#: ../../include/Contact.php:219 ../../include/conversation.php:843
msgid "View Profile"
msgstr ""
-#: ../../include/Contact.php:205 ../../include/conversation.php:844
+#: ../../include/Contact.php:220 ../../include/conversation.php:844
msgid "View Photos"
msgstr ""
-#: ../../include/Contact.php:206 ../../include/Contact.php:219
+#: ../../include/Contact.php:221 ../../include/Contact.php:234
#: ../../include/conversation.php:845
msgid "Network Posts"
msgstr ""
-#: ../../include/Contact.php:207 ../../include/Contact.php:219
+#: ../../include/Contact.php:222 ../../include/Contact.php:234
#: ../../include/conversation.php:846
msgid "Edit Contact"
msgstr ""
-#: ../../include/Contact.php:208 ../../include/Contact.php:219
+#: ../../include/Contact.php:223 ../../include/Contact.php:234
#: ../../include/conversation.php:847
msgid "Send PM"
msgstr ""
@@ -7503,96 +7523,96 @@ msgstr ""
msgid "permissions"
msgstr ""
-#: ../../boot.php:518
+#: ../../boot.php:522
msgid "Delete this item?"
msgstr ""
-#: ../../boot.php:521
+#: ../../boot.php:525
msgid "show fewer"
msgstr ""
-#: ../../boot.php:694
+#: ../../boot.php:698
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
-#: ../../boot.php:696
+#: ../../boot.php:700
#, php-format
msgid "Update Error at %s"
msgstr ""
-#: ../../boot.php:796
+#: ../../boot.php:800
msgid "Create a New Account"
msgstr ""
-#: ../../boot.php:820
+#: ../../boot.php:824
msgid "Nickname or Email address: "
msgstr ""
-#: ../../boot.php:821
+#: ../../boot.php:825
msgid "Password: "
msgstr ""
-#: ../../boot.php:824
+#: ../../boot.php:828
msgid "Or login using OpenID: "
msgstr ""
-#: ../../boot.php:830
+#: ../../boot.php:834
msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:997
+#: ../../boot.php:1001
msgid "Edit profile"
msgstr ""
-#: ../../boot.php:1057
+#: ../../boot.php:1061
msgid "Message"
msgstr ""
-#: ../../boot.php:1173 ../../boot.php:1249
+#: ../../boot.php:1177 ../../boot.php:1253
msgid "g A l F d"
msgstr ""
-#: ../../boot.php:1174 ../../boot.php:1250
+#: ../../boot.php:1178 ../../boot.php:1254
msgid "F d"
msgstr ""
-#: ../../boot.php:1219 ../../boot.php:1290
+#: ../../boot.php:1223 ../../boot.php:1294
msgid "[today]"
msgstr ""
-#: ../../boot.php:1231
+#: ../../boot.php:1235
msgid "Birthday Reminders"
msgstr ""
-#: ../../boot.php:1232
+#: ../../boot.php:1236
msgid "Birthdays this week:"
msgstr ""
-#: ../../boot.php:1283
+#: ../../boot.php:1287
msgid "[No description]"
msgstr ""
-#: ../../boot.php:1301
+#: ../../boot.php:1305
msgid "Event Reminders"
msgstr ""
-#: ../../boot.php:1302
+#: ../../boot.php:1306
msgid "Events this week:"
msgstr ""
-#: ../../boot.php:1507
+#: ../../boot.php:1511
msgid "Status Messages and Posts"
msgstr ""
-#: ../../boot.php:1513
+#: ../../boot.php:1517
msgid "Profile Details"
msgstr ""
-#: ../../boot.php:1528
+#: ../../boot.php:1532
msgid "Events and Calendar"
msgstr ""
-#: ../../boot.php:1534
+#: ../../boot.php:1538
msgid "Only You Can See This"
msgstr ""
diff --git a/view/categories_widget.tpl b/view/categories_widget.tpl
index 061821beb..5dbd871a8 100644
--- a/view/categories_widget.tpl
+++ b/view/categories_widget.tpl
@@ -1,4 +1,3 @@
-<div class="clear"></div>
<div id="categories-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
diff --git a/view/contact_block.tpl b/view/contact_block.tpl
index eb46c6c43..a79648712 100644
--- a/view/contact_block.tpl
+++ b/view/contact_block.tpl
@@ -9,3 +9,4 @@
</div>
{{ endif }}
</div>
+<div class="clear"></div>
diff --git a/view/contact_edit.tpl b/view/contact_edit.tpl
index eeedda3a4..c68ca7f1d 100644
--- a/view/contact_edit.tpl
+++ b/view/contact_edit.tpl
@@ -17,6 +17,9 @@
<ul>
<li><div id="contact-edit-rel">$relation_text</div></li>
<li><div id="contact-edit-nettype">$nettype</div></li>
+ {{ if $lost_contact }}
+ <li><div id="lost-contact-message">$lost_contact</div></li>
+ {{ endif }}
{{ if $insecure }}
<li><div id="insecure-message">$insecure</div></li>
{{ endif }}
diff --git a/view/conversation.tpl b/view/conversation.tpl
index 43bb1dd47..fccd9a8bb 100644
--- a/view/conversation.tpl
+++ b/view/conversation.tpl
@@ -16,6 +16,8 @@
</div>
{{ endfor }}
+<div id="conversation-end"></div>
+
{{ if $dropping }}
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
<div id="item-delete-selected-icon" class="icon drophide" title="$dropping" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
diff --git a/view/posted_date_widget.tpl b/view/posted_date_widget.tpl
new file mode 100644
index 000000000..3e2ee5a3e
--- /dev/null
+++ b/view/posted_date_widget.tpl
@@ -0,0 +1,9 @@
+<div id="datebrowse-sidebar" class="widget">
+ <h3>$title</h3>
+<script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
+<select id="posted-date-selector" name="posted-date-select" onchange="dateSubmit($(this).val());" size="$size">
+{{ for $dates as $d }}
+<option value="$url/$d.1/$d.2" >$d.0</option>
+{{ endfor }}
+</select>
+</div>
diff --git a/view/search_item.tpl b/view/search_item.tpl
index 22314d88a..47f34685f 100644
--- a/view/search_item.tpl
+++ b/view/search_item.tpl
@@ -1,4 +1,4 @@
-<a name="$item.id" />
+<a name="$item.id" ></a>
<div class="wall-item-outside-wrapper$item.indent$item.previewing" id="wall-item-outside-wrapper-$item.id" >
<div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info" id="wall-item-info-$item.id">
diff --git a/view/theme/dispy/conversation.tpl b/view/theme/dispy/conversation.tpl
index c49cdf26b..ca1b560a6 100644
--- a/view/theme/dispy/conversation.tpl
+++ b/view/theme/dispy/conversation.tpl
@@ -16,6 +16,8 @@
</div>
{{ endfor }}
+<div id="conversation-end"></div>
+
{{ if $dropping }}
<div class="delete-checked">
<a href="#" onclick="deleteCheckedItems();return false;"><span class="icon delete"></span><span class="s22 text" onmouseover="imgbright(this);" onmouseout="imgdull(this);">$dropping</span></a>
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index ab660888f..be755d411 100644
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -1608,7 +1608,7 @@ input#dfrn-url {
.contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; }
-#block-message, #ignore-message, #archive-message {
+#block-message, #ignore-message, #archive-message, #lost-contact-message {
color: #FF0000;
}
@@ -3226,3 +3226,7 @@ ul.menu-popup {
.autocomplete { color:#000; border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; }
.autocomplete .selected { background:#F0F0F0; }
.autocomplete div { padding:2px 5px; white-space:nowrap; overflow:hidden; }
+
+#datebrowse-sidebar select {
+ margin-left: 25px;
+}
diff --git a/view/theme/facepark/conversation.tpl b/view/theme/facepark/conversation.tpl
index 43bb1dd47..fccd9a8bb 100644
--- a/view/theme/facepark/conversation.tpl
+++ b/view/theme/facepark/conversation.tpl
@@ -16,6 +16,8 @@
</div>
{{ endfor }}
+<div id="conversation-end"></div>
+
{{ if $dropping }}
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
<div id="item-delete-selected-icon" class="icon drophide" title="$dropping" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
diff --git a/view/theme/quattro/conversation.tpl b/view/theme/quattro/conversation.tpl
index 7bb7cd2fd..7ca3daea7 100644
--- a/view/theme/quattro/conversation.tpl
+++ b/view/theme/quattro/conversation.tpl
@@ -1,6 +1,8 @@
{{ for $threads as $thread }}
<div id="tread-wrapper-$thread.id" class="tread-wrapper">
{{ for $thread.items as $item }}
+ {{if $mode == display}}
+ {{ else }}
{{if $item.comment_firstcollapsed}}
<div class="hide-comments-outer">
<span id="hide-comments-total-$thread.id" class="hide-comments-total">$thread.num_comments</span> <span id="hide-comments-$thread.id" class="hide-comments fakelink" onclick="showHideComments($thread.id);">$thread.hide_text</span>
@@ -8,7 +10,8 @@
<div id="collapsed-comments-$thread.id" class="collapsed-comments" style="display: none;">
{{endif}}
{{if $item.comment_lastcollapsed}}</div>{{endif}}
-
+ {{ endif }}
+
{{ if $item.type == tag }}
{{ inc wall_item_tag.tpl }}{{ endinc }}
{{ else }}
@@ -19,6 +22,8 @@
</div>
{{ endfor }}
+<div id="conversation-end"></div>
+
{{ if $dropping }}
<a href="#" onclick="deleteCheckedItems();return false;">
<span class="icon s22 delete text">$dropping</span>
diff --git a/view/theme/slackr/style.css b/view/theme/slackr/style.css
index aa4d4b800..8a8f8c726 100644
--- a/view/theme/slackr/style.css
+++ b/view/theme/slackr/style.css
@@ -88,6 +88,20 @@ nav #site-location {
box-shadow: 4px 4px 3px 0 #444444;
}
+#datebrowse-sidebar select {
+ margin-left: 25px;
+ border-radius: 3px;
+ -moz-border-radius: 3px;
+ opacity: 0.3;
+ filter:alpha(opacity=30);
+}
+
+#datebrowse-sidebar select:hover {
+ opacity: 1.0;
+ filter:alpha(opacity=100);
+}
+
+
.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .profile-jot-text, .group-selected, .nets-selected, .fileas-selected, #profile-jot-submit, .categories-selected {
border-radius: 3px;
-moz-border-radius: 3px;
diff --git a/view/theme/testbubble/conversation.tpl b/view/theme/testbubble/conversation.tpl
index 43bb1dd47..fccd9a8bb 100644
--- a/view/theme/testbubble/conversation.tpl
+++ b/view/theme/testbubble/conversation.tpl
@@ -16,6 +16,8 @@
</div>
{{ endfor }}
+<div id="conversation-end"></div>
+
{{ if $dropping }}
<div id="item-delete-selected" class="fakelink" onclick="deleteCheckedItems();">
<div id="item-delete-selected-icon" class="icon drophide" title="$dropping" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></div>
diff --git a/view/wall_item.tpl b/view/wall_item.tpl
index a3a79598e..a6a96d879 100644
--- a/view/wall_item.tpl
+++ b/view/wall_item.tpl
@@ -1,4 +1,4 @@
-<a name="$item.id" />
+<a name="$item.id" ></a>
<div class="wall-item-outside-wrapper$item.indent$item.previewing" id="wall-item-outside-wrapper-$item.id" >
<div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info" id="wall-item-info-$item.id">
diff --git a/view/wallwall_item.tpl b/view/wallwall_item.tpl
index 1044f7ae4..37e56ee8b 100644
--- a/view/wallwall_item.tpl
+++ b/view/wallwall_item.tpl
@@ -1,4 +1,4 @@
-<a name="$item.id" />
+<a name="$item.id" ></a>
<div class="wall-item-outside-wrapper$item.indent$item.previewing wallwall" id="wall-item-outside-wrapper-$item.id" >
<div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info wallwall" id="wall-item-info-$item.id">