From 88d5d9684a51119f62a60c588b2bf468f71fd884 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 25 May 2012 03:05:07 -0400 Subject: [PATCH 01/49] admin: remove update link in admin menu --- mod/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/admin.php b/mod/admin.php index d19118b78..6b1a53a30 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -98,7 +98,7 @@ function admin_content(&$a) { 'plugins'=> Array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"), 'themes' => Array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"), 'dbsync' => Array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync"), - 'update' => Array($a->get_baseurl(true)."/admin/update/", t("Software Update") , "update") + //'update' => Array($a->get_baseurl(true)."/admin/update/", t("Software Update") , "update") ); /* get plugins admin page */ From dfef0ec84d7b62445835ceed094a582d66b900ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20H=C3=B6=C3=9Fl?= Date: Tue, 29 May 2012 19:03:30 +0000 Subject: [PATCH 02/49] Add two hooks, event_created and event_updated. One Bugfix for the ... tag ($uri was never defined). Commented out the parse_event() function - its never called and would lead to a program abortion due to a broken require_once at the beginning --- include/event.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/include/event.php b/include/event.php index 29202badd..866ae8c3f 100644 --- a/include/event.php +++ b/include/event.php @@ -42,7 +42,7 @@ function format_event_html($ev) { return $o; } - +/* function parse_event($h) { require_once('include/Scrape.php'); @@ -108,7 +108,7 @@ function parse_event($h) { return $ret; } - +*/ function format_event_bbcode($ev) { @@ -162,7 +162,6 @@ function bbtoevent($s) { $match = ''; if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match)) $ev['adjust'] = $match[1]; - $match = ''; $ev['nofinish'] = (((x($ev, 'start') && $ev['start']) && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0); return $ev; @@ -294,10 +293,14 @@ function event_store($arr) { intval($arr['uid']) ); - return $r[0]['id']; + $item_id = $r[0]['id']; } else - return 0; + $item_id = 0; + + call_hooks("event_updated", $arr['id']); + + return $item_id; } else { @@ -361,7 +364,7 @@ function event_store($arr) { $item_arr['body'] = format_event_bbcode($event); - $item_arr['object'] = '' . xmlify(ACTIVITY_OBJ_EVENT) . '' . xmlify($uri) . ''; + $item_arr['object'] = '' . xmlify(ACTIVITY_OBJ_EVENT) . '' . xmlify($arr['uri']) . ''; $item_arr['object'] .= '' . xmlify(format_event_bbcode($event)) . ''; $item_arr['object'] .= '' . "\n"; @@ -383,6 +386,8 @@ function event_store($arr) { ); } + call_hooks("event_created", $event['id']); + return $item_id; } } From 5edc6735b77317fa6c54fc1ad4698cf9ebb2b744 Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Tue, 29 May 2012 15:06:22 -0400 Subject: [PATCH 03/49] Merge branch 'master', remote-tracking branch 'remotes/upstream/master' * remotes/upstream/master: ability to only expire contacts, not self Provide backend option to only expire other peoples' conversations. more theme cleanup rev update * master: From dd666e93d8a0ad68870d21a70c20eafea54bb602 Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Tue, 29 May 2012 16:09:02 -0400 Subject: [PATCH 04/49] fix toolbar. more size dynamicism Signed-off-by: Simon L'nu --- view/theme/dispy/conversation.tpl | 3 ++- view/theme/dispy/dark/style.css | 11 ++++++----- view/theme/dispy/dark/style.less | 15 +++++++++------ view/theme/dispy/light/style.css | 22 ++++++++++++---------- view/theme/dispy/light/style.less | 15 +++++++++------ 5 files changed, 38 insertions(+), 28 deletions(-) diff --git a/view/theme/dispy/conversation.tpl b/view/theme/dispy/conversation.tpl index 41b6aeadf..c49cdf26b 100644 --- a/view/theme/dispy/conversation.tpl +++ b/view/theme/dispy/conversation.tpl @@ -18,6 +18,7 @@ {{ if $dropping }} +
{{ endif }} diff --git a/view/theme/dispy/dark/style.css b/view/theme/dispy/dark/style.css index 965350749..82118275a 100644 --- a/view/theme/dispy/dark/style.css +++ b/view/theme/dispy/dark/style.css @@ -103,7 +103,7 @@ div.jGrowl div.info{background:#1353b1 url("../../../images/icons/48/info.png") nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");} .show{display:block;} #notifications{width:170px;height:20px;font-size:small;top:-19px;left:4px;position:absolute;} -#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;} +#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:270px;height:60px;} #nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;} .floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(dark/icons.png) -190px -60px no-repeat;} .search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} @@ -111,7 +111,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #search-text{border:1px solid #eeeeee;margin:5px 0;} #mini-search-text{font-size:8pt;height:14px;width:10em;margin:5px;} #scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;} -#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} +#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:80%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} #user-menu-label{font-size:small;padding:3px 20px 9px 5px;height:10px;} .nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(dark/notifications.png) 0 0 no-repeat;color:#111111;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;} .nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;} @@ -227,11 +227,12 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #connect-services,#extra-help{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:1em 0 0 0;}#connect-services li,#extra-help li{display:inline;} .ccollapse-wrapper{font-size:0.9em;margin-left:5em;} .hide-comments-outer{font-size:small;} -.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} +.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-info{width:5em;} +.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:4,5em;top:4em;background-position:35px center;} .wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:4.5em;top:5.5em;} .comment-wwedit-wrapper{border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:5px;} .comment-edit-wrapper{border-top:1px #aaa solid;} [class^="comment-edit-bb"]{margin:0px;padding:0px;list-style:none;list-style-position:inside;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;} diff --git a/view/theme/dispy/dark/style.less b/view/theme/dispy/dark/style.less index d394b13bf..0617aaced 100644 --- a/view/theme/dispy/dark/style.less +++ b/view/theme/dispy/dark/style.less @@ -639,7 +639,7 @@ nav #nav-notifications-linkmenu { color: transparent; .rounded_corners; z-index: 100; - .box(300px, 60px); + .box(270px, 60px); } #nav-buttons { clear: both; @@ -702,7 +702,7 @@ nav #nav-notifications-linkmenu { #user-menu { .box_shadow(5px, 0, 10px, 0); display: block; - width: 75%; + width: 80%; margin: 3px 0 0 0; position: relative; .rounded_corners; @@ -1526,6 +1526,9 @@ nav #nav-notifications-linkmenu { } .wall-item-outside-wrapper.comment { margin-left: 5em; + .wall-item-info { + width: 5em; + } .wall-item-photo { width: 40px !important; height: 40px !important; @@ -1534,16 +1537,16 @@ nav #nav-notifications-linkmenu { .box(40px, 40px); } .wall-item-photo-menu-button { - width: 50px; - top: 45px; + width: 4,5em; + top: 4em; background-position: 35px center; } .wall-item-author { margin-left: 0.2em; } .wall-item-photo-menu { - min-width: 50px; - top: 60px; + min-width: 4.5em; + top: 5.5em; } } .comment-wwedit-wrapper { diff --git a/view/theme/dispy/light/style.css b/view/theme/dispy/light/style.css index c9f7ef95a..e56696eab 100644 --- a/view/theme/dispy/light/style.css +++ b/view/theme/dispy/light/style.css @@ -58,7 +58,7 @@ h6{font-size:xx-small;} #articlemain{width:100%;height:100%;margin:0 auto;} .button{color:#111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:5px;cursor:pointer;}.button a{color:#111111;font-weight:bold;} #profile-listing-desc a{color:#eeeeec;font-weight:bold;} -[class$="-desc"],[id$="-desc"]{color:#eeeeec;background:#2e3436;border:3px ridge #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;} +[class$="-desc"],[id$="-desc"]{color:#eeeeec;background:#2e3436;border:2px outset #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;} #item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;} .intro-approve-as-friend-desc{margin-top:10px;} .intro-desc{margin-bottom:20px;font-weight:bold;} @@ -103,7 +103,7 @@ div.jGrowl div.info{background:#364e59 url("../../../images/icons/48/info.png") nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");} .show{display:block;} #notifications{width:170px;height:20px;font-size:small;top:-19px;left:4px;position:absolute;} -#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#2e3436;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;} +#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#2e3436;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:270px;height:60px;} #nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;} .floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(light/icons.png) -190px -60px no-repeat;} .search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} @@ -111,7 +111,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #search-text{border:1px solid #999999;margin:5px 0;} #mini-search-text{font-size:8pt;height:14px;width:10em;margin:5px;} #scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;} -#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} +#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:80%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} #user-menu-label{font-size:small;padding:3px 20px 9px 5px;height:10px;} .nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(light/notifications.png) 0 0 no-repeat;color:#111111;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;} .nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;} @@ -133,7 +133,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeeec;} -#asidemain{float:left;font-size:small;margin:20px 0 20px 35px;width:25%;display:inline;} +#asidemain{float:left;font-size:small;margin:1em;width:25%;display:inline;} #asideright,#asideleft{display:none;} .vcard .fn{font-size:1.5em;font-weight:bold;border-bottom:1px solid #284d7d;padding-bottom:3px;} .vcard #profile-photo-wrapper{margin:20px 0;background-color:#555753;padding:5px;width:175px;height:175px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;} @@ -187,7 +187,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #jot-title-display{font-weight:bold;} .jothidden{display:none;} #jot-preview-content{background-color:#f2f2c3;color:#111111;border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0px #111111;-o-box-shadow:5px 0 10px 0px #111111;-webkit-box-shadow:5px 0 10px 0px #111111;-ms-box-shadow:5px 0 10px 0px #111111;box-shadow:5px 0 10px 0px #111111;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;} -#sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;} +#sectionmain{margin:1em;font-size:0.8em;min-width:475px;width:69%;float:left;display:inline;} .tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;} .tab{border:1px solid #284d7d;padding:4px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.tab:active,.tab:hover{background:#f2f2c3;color:#111111;border:1px solid #284d7d;} .tab a{border:0;text-decoration:none;} @@ -203,7 +203,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm [id^="tread-wrapper"],[class^="tread-wrapper"]{margin:1.2em 0 0 0;padding:0px;} .wall-item-photo-menu{display:none;} .wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(light/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;} -.wall-item-info{float:left;width:8em;position:relative;} +.wall-item-info{float:left;width:7em;position:relative;} .wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} [class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{} .wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;} @@ -223,14 +223,16 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm .wall-item-arrowphoto-wrapper{position:absolute;left:35px;top:80px;z-index:10002;} .wall-item-photo-menu{min-width:92px;font-size:0.75em;border:2px solid #555753;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:0 5px 5px 5px;-webkit-border-radius:0 5px 5px 5px;-moz-border-radius:0 5px 5px 5px;-ms-border-radius:0 5px 5px 5px;border-radius:0 5px 5px 5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 6px;color:#eeeeec;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeec;} #item-delete-selected{overflow:auto;width:100%;} -#connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;} +#connect-services-header,#extra-help-header{margin:1.5em 0 0 0;} +#connect-services,#extra-help{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:1em 0 0 0;}#connect-services li,#extra-help li{display:inline;} .ccollapse-wrapper{font-size:0.9em;margin-left:5em;} .hide-comments-outer{font-size:small;} -.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} +.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-info{width:5em;} +.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:4,5em;top:4em;background-position:35px center;} .wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:4.5em;top:5.5em;} .comment-wwedit-wrapper{border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:5px;} .comment-edit-wrapper{border-top:1px #aaa solid;} [class^="comment-edit-bb"]{margin:0px;padding:0px;list-style:none;list-style-position:inside;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;} diff --git a/view/theme/dispy/light/style.less b/view/theme/dispy/light/style.less index 90cb8780b..72b3069a6 100644 --- a/view/theme/dispy/light/style.less +++ b/view/theme/dispy/light/style.less @@ -640,7 +640,7 @@ nav #nav-notifications-linkmenu { color: transparent; .rounded_corners; z-index: 100; - .box(300px, 60px); + .box(270px, 60px); } #nav-buttons { clear: both; @@ -703,7 +703,7 @@ nav #nav-notifications-linkmenu { #user-menu { .box_shadow(5px, 0, 10px, 0); display: block; - width: 75%; + width: 80%; margin: 3px 0 0 0; position: relative; .rounded_corners; @@ -1527,6 +1527,9 @@ nav #nav-notifications-linkmenu { } .wall-item-outside-wrapper.comment { margin-left: 5em; + .wall-item-info { + width: 5em; + } .wall-item-photo { width: 40px !important; height: 40px !important; @@ -1535,16 +1538,16 @@ nav #nav-notifications-linkmenu { .box(40px, 40px); } .wall-item-photo-menu-button { - width: 50px; - top: 45px; + width: 4,5em; + top: 4em; background-position: 35px center; } .wall-item-author { margin-left: 0.2em; } .wall-item-photo-menu { - min-width: 50px; - top: 60px; + min-width: 4.5em; + top: 5.5em; } } .comment-wwedit-wrapper { From 04119d31e51c749cfa81b9a8ac5f52005d71f8c4 Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Tue, 29 May 2012 16:13:27 -0400 Subject: [PATCH 05/49] Merge branch 'master', remote-tracking branch 'remotes/upstream/master' * remotes/upstream/master: Add two hooks, event_created and event_updated. One Bugfix for the ... tag ($uri was never defined). Commented out the parse_event() function - its never called and would lead to a program abortion due to a broken require_once at the beginning MySQL-Fulltext search option is disabled by default Disabled logging of SQL statements Doing negative caching for config values, special logfile for database optmisations Saved searches now can search for tags as well Deactivating the test output in db engine Speed optimisation by enabling the posibility of the MySQL fulltext engine Performance tests API: RSS-Feeds are now shortened to 1000 characters. (With added link) * master: From 419cf91aae555f6e42767765f476b1f1cc85e5df Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 29 May 2012 16:44:02 -0700 Subject: [PATCH 06/49] bugfixes: private photo embeds and search for strings with % --- boot.php | 2 +- include/items.php | 2 +- mod/search.php | 4 +- util/messages.po | 294 +++++++++++++++++++++++----------------------- 4 files changed, 154 insertions(+), 148 deletions(-) diff --git a/boot.php b/boot.php index affa351dc..9875b42ef 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1357' ); +define ( 'FRIENDICA_VERSION', '3.0.1358' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1144 ); diff --git a/include/items.php b/include/items.php index 3fe977b6f..b08e491be 100644 --- a/include/items.php +++ b/include/items.php @@ -2931,7 +2931,7 @@ function fix_private_photos($s,$uid, $item = null, $cid = 0) { $a = get_app(); logger('fix_private_photos', LOGGER_DEBUG); - $site = substr($a->get_baseurl(),strpos($a->get_baseurl,'://')); + $site = substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')); if(preg_match("/\[img\](.*?)\[\/img\]/is",$s,$matches)) { $image = $matches[1]; diff --git a/mod/search.php b/mod/search.php index 3e6bf68aa..6d4bd07e3 100644 --- a/mod/search.php +++ b/mod/search.php @@ -110,9 +110,9 @@ function search_content(&$a) { return $o; if($tag) - $sql_extra = sprintf(" AND `item`.`tag` REGEXP '%s' ", dbesc('\\]' . preg_quote($search) . '\\[')); + $sql_extra = sprintf(" AND `item`.`tag` REGEXP '%s' ", dbesc('\\]' . protect_sprintf(preg_quote($search)) . '\\[')); else - $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(preg_quote($search))); + $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search)))); diff --git a/util/messages.po b/util/messages.po index c39ac3bc1..37c1785d4 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1357\n" +"Project-Id-Version: 3.0.1358\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-28 10:00-0700\n" +"POT-Creation-Date: 2012-05-29 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,8 +39,8 @@ msgstr "" #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:920 #: ../../mod/editpost.php:10 ../../mod/install.php:151 #: ../../mod/notifications.php:66 ../../mod/contacts.php:125 -#: ../../mod/settings.php:105 ../../mod/settings.php:536 -#: ../../mod/settings.php:541 ../../mod/manage.php:86 ../../mod/network.php:6 +#: ../../mod/settings.php:106 ../../mod/settings.php:537 +#: ../../mod/settings.php:542 ../../mod/manage.php:86 ../../mod/network.php:6 #: ../../mod/notes.php:20 ../../mod/wallmessage.php:9 #: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79 #: ../../mod/wallmessage.php:103 ../../mod/attach.php:33 @@ -55,7 +55,7 @@ msgstr "" #: ../../mod/profiles.php:374 ../../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 -#: ../../include/items.php:3286 ../../index.php:306 +#: ../../include/items.php:3293 ../../index.php:306 msgid "Permission denied." msgstr "" @@ -84,8 +84,8 @@ msgstr "" msgid "Return to contact editor" msgstr "" -#: ../../mod/crepair.php:148 ../../mod/settings.php:556 -#: ../../mod/settings.php:582 ../../mod/admin.php:656 ../../mod/admin.php:665 +#: ../../mod/crepair.php:148 ../../mod/settings.php:557 +#: ../../mod/settings.php:583 ../../mod/admin.php:656 ../../mod/admin.php:665 msgid "Name" msgstr "" @@ -127,8 +127,8 @@ msgstr "" #: ../../mod/photos.php:1336 ../../mod/photos.php:1367 #: ../../mod/install.php:245 ../../mod/install.php:283 #: ../../mod/localtime.php:45 ../../mod/contacts.php:322 -#: ../../mod/settings.php:554 ../../mod/settings.php:700 -#: ../../mod/settings.php:761 ../../mod/settings.php:965 +#: ../../mod/settings.php:555 ../../mod/settings.php:701 +#: ../../mod/settings.php:762 ../../mod/settings.php:970 #: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:417 #: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 #: ../../mod/admin.php:1075 ../../mod/profiles.php:543 @@ -280,8 +280,8 @@ msgid "Share this event" msgstr "" #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 -#: ../../mod/dfrn_request.php:826 ../../mod/settings.php:555 -#: ../../mod/settings.php:581 ../../addon/js_upload/js_upload.php:45 +#: ../../mod/dfrn_request.php:826 ../../mod/settings.php:556 +#: ../../mod/settings.php:582 ../../addon/js_upload/js_upload.php:45 msgid "Cancel" msgstr "" @@ -325,24 +325,26 @@ msgid "" msgstr "" #: ../../mod/api.php:105 ../../mod/dfrn_request.php:814 -#: ../../mod/settings.php:876 ../../mod/settings.php:882 -#: ../../mod/settings.php:890 ../../mod/settings.php:894 -#: ../../mod/settings.php:899 ../../mod/settings.php:905 -#: ../../mod/settings.php:911 ../../mod/settings.php:917 -#: ../../mod/settings.php:953 ../../mod/settings.php:954 -#: ../../mod/settings.php:955 ../../mod/settings.php:956 -#: ../../mod/register.php:511 ../../mod/profiles.php:520 +#: ../../mod/settings.php:880 ../../mod/settings.php:886 +#: ../../mod/settings.php:894 ../../mod/settings.php:898 +#: ../../mod/settings.php:903 ../../mod/settings.php:909 +#: ../../mod/settings.php:915 ../../mod/settings.php:921 +#: ../../mod/settings.php:957 ../../mod/settings.php:958 +#: ../../mod/settings.php:959 ../../mod/settings.php:960 +#: ../../mod/settings.php:961 ../../mod/register.php:511 +#: ../../mod/profiles.php:520 msgid "Yes" msgstr "" #: ../../mod/api.php:106 ../../mod/dfrn_request.php:815 -#: ../../mod/settings.php:876 ../../mod/settings.php:882 -#: ../../mod/settings.php:890 ../../mod/settings.php:894 -#: ../../mod/settings.php:899 ../../mod/settings.php:905 -#: ../../mod/settings.php:911 ../../mod/settings.php:917 -#: ../../mod/settings.php:953 ../../mod/settings.php:954 -#: ../../mod/settings.php:955 ../../mod/settings.php:956 -#: ../../mod/register.php:512 ../../mod/profiles.php:521 +#: ../../mod/settings.php:880 ../../mod/settings.php:886 +#: ../../mod/settings.php:894 ../../mod/settings.php:898 +#: ../../mod/settings.php:903 ../../mod/settings.php:909 +#: ../../mod/settings.php:915 ../../mod/settings.php:921 +#: ../../mod/settings.php:957 ../../mod/settings.php:958 +#: ../../mod/settings.php:959 ../../mod/settings.php:960 +#: ../../mod/settings.php:961 ../../mod/register.php:512 +#: ../../mod/profiles.php:521 msgid "No" msgstr "" @@ -560,8 +562,8 @@ msgstr "" msgid "Preview" msgstr "" -#: ../../mod/photos.php:1394 ../../mod/settings.php:617 -#: ../../mod/settings.php:698 ../../mod/group.php:168 ../../mod/admin.php:660 +#: ../../mod/photos.php:1394 ../../mod/settings.php:618 +#: ../../mod/settings.php:699 ../../mod/group.php:168 ../../mod/admin.php:660 #: ../../include/conversation.php:322 ../../include/conversation.php:588 msgid "Delete" msgstr "" @@ -631,7 +633,7 @@ msgstr "" msgid "Post to Email" msgstr "" -#: ../../mod/editpost.php:95 ../../mod/settings.php:616 +#: ../../mod/editpost.php:95 ../../mod/settings.php:617 #: ../../include/conversation.php:575 msgid "Edit" msgstr "" @@ -861,7 +863,7 @@ msgstr "" msgid "StatusNet/Federated Social Web" msgstr "" -#: ../../mod/dfrn_request.php:820 ../../mod/settings.php:651 +#: ../../mod/dfrn_request.php:820 ../../mod/settings.php:652 #: ../../include/contact_selectors.php:80 msgid "Diaspora" msgstr "" @@ -1796,35 +1798,35 @@ msgstr "" msgid "Settings" msgstr "" -#: ../../mod/settings.php:132 +#: ../../mod/settings.php:133 msgid "Missing some important data!" msgstr "" -#: ../../mod/settings.php:135 ../../mod/settings.php:580 +#: ../../mod/settings.php:136 ../../mod/settings.php:581 msgid "Update" msgstr "" -#: ../../mod/settings.php:240 +#: ../../mod/settings.php:241 msgid "Failed to connect with email account using the settings provided." msgstr "" -#: ../../mod/settings.php:245 +#: ../../mod/settings.php:246 msgid "Email settings updated." msgstr "" -#: ../../mod/settings.php:304 +#: ../../mod/settings.php:305 msgid "Passwords do not match. Password unchanged." msgstr "" -#: ../../mod/settings.php:309 +#: ../../mod/settings.php:310 msgid "Empty passwords are not allowed. Password unchanged." msgstr "" -#: ../../mod/settings.php:320 +#: ../../mod/settings.php:321 msgid "Password changed." msgstr "" -#: ../../mod/settings.php:322 +#: ../../mod/settings.php:323 msgid "Password update failed. Please try again." msgstr "" @@ -1844,15 +1846,15 @@ msgstr "" msgid " Cannot change to that email." msgstr "" -#: ../../mod/settings.php:449 +#: ../../mod/settings.php:450 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "" -#: ../../mod/settings.php:453 +#: ../../mod/settings.php:454 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "" -#: ../../mod/settings.php:483 ../../addon/facebook/facebook.php:488 +#: ../../mod/settings.php:484 ../../addon/facebook/facebook.php:488 #: ../../addon/impressum/impressum.php:77 #: ../../addon/openstreetmap/openstreetmap.php:80 #: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105 @@ -1860,417 +1862,421 @@ msgstr "" msgid "Settings updated." msgstr "" -#: ../../mod/settings.php:553 ../../mod/settings.php:579 -#: ../../mod/settings.php:615 +#: ../../mod/settings.php:554 ../../mod/settings.php:580 +#: ../../mod/settings.php:616 msgid "Add application" msgstr "" -#: ../../mod/settings.php:557 ../../mod/settings.php:583 +#: ../../mod/settings.php:558 ../../mod/settings.php:584 #: ../../addon/statusnet/statusnet.php:555 msgid "Consumer Key" msgstr "" -#: ../../mod/settings.php:558 ../../mod/settings.php:584 +#: ../../mod/settings.php:559 ../../mod/settings.php:585 #: ../../addon/statusnet/statusnet.php:554 msgid "Consumer Secret" msgstr "" -#: ../../mod/settings.php:559 ../../mod/settings.php:585 +#: ../../mod/settings.php:560 ../../mod/settings.php:586 msgid "Redirect" msgstr "" -#: ../../mod/settings.php:560 ../../mod/settings.php:586 +#: ../../mod/settings.php:561 ../../mod/settings.php:587 msgid "Icon url" msgstr "" -#: ../../mod/settings.php:571 +#: ../../mod/settings.php:572 msgid "You can't edit this application." msgstr "" -#: ../../mod/settings.php:614 +#: ../../mod/settings.php:615 msgid "Connected Apps" msgstr "" -#: ../../mod/settings.php:618 +#: ../../mod/settings.php:619 msgid "Client key starts with" msgstr "" -#: ../../mod/settings.php:619 +#: ../../mod/settings.php:620 msgid "No name" msgstr "" -#: ../../mod/settings.php:620 +#: ../../mod/settings.php:621 msgid "Remove authorization" msgstr "" -#: ../../mod/settings.php:631 +#: ../../mod/settings.php:632 msgid "No Plugin settings configured" msgstr "" -#: ../../mod/settings.php:639 ../../addon/widgets/widgets.php:123 +#: ../../mod/settings.php:640 ../../addon/widgets/widgets.php:123 msgid "Plugin Settings" msgstr "" -#: ../../mod/settings.php:651 ../../mod/settings.php:652 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "" -#: ../../mod/settings.php:651 ../../mod/settings.php:652 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 msgid "enabled" msgstr "" -#: ../../mod/settings.php:651 ../../mod/settings.php:652 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 msgid "disabled" msgstr "" -#: ../../mod/settings.php:652 +#: ../../mod/settings.php:653 msgid "StatusNet" msgstr "" -#: ../../mod/settings.php:682 +#: ../../mod/settings.php:683 msgid "Connector Settings" msgstr "" -#: ../../mod/settings.php:687 +#: ../../mod/settings.php:688 msgid "Email/Mailbox Setup" msgstr "" -#: ../../mod/settings.php:688 +#: ../../mod/settings.php:689 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "" -#: ../../mod/settings.php:689 +#: ../../mod/settings.php:690 msgid "Last successful email check:" msgstr "" -#: ../../mod/settings.php:690 +#: ../../mod/settings.php:691 msgid "Email access is disabled on this site." msgstr "" -#: ../../mod/settings.php:691 +#: ../../mod/settings.php:692 msgid "IMAP server name:" msgstr "" -#: ../../mod/settings.php:692 +#: ../../mod/settings.php:693 msgid "IMAP port:" msgstr "" -#: ../../mod/settings.php:693 +#: ../../mod/settings.php:694 msgid "Security:" msgstr "" -#: ../../mod/settings.php:693 ../../mod/settings.php:698 +#: ../../mod/settings.php:694 ../../mod/settings.php:699 msgid "None" msgstr "" -#: ../../mod/settings.php:694 +#: ../../mod/settings.php:695 msgid "Email login name:" msgstr "" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:696 msgid "Email password:" msgstr "" -#: ../../mod/settings.php:696 +#: ../../mod/settings.php:697 msgid "Reply-to address:" msgstr "" -#: ../../mod/settings.php:697 +#: ../../mod/settings.php:698 msgid "Send public posts to all email contacts:" msgstr "" -#: ../../mod/settings.php:698 +#: ../../mod/settings.php:699 msgid "Action after import:" msgstr "" -#: ../../mod/settings.php:698 +#: ../../mod/settings.php:699 msgid "Mark as seen" msgstr "" -#: ../../mod/settings.php:698 +#: ../../mod/settings.php:699 msgid "Move to folder" msgstr "" -#: ../../mod/settings.php:699 +#: ../../mod/settings.php:700 msgid "Move to folder:" msgstr "" -#: ../../mod/settings.php:759 +#: ../../mod/settings.php:760 msgid "Display Settings" msgstr "" -#: ../../mod/settings.php:765 +#: ../../mod/settings.php:766 msgid "Display Theme:" msgstr "" -#: ../../mod/settings.php:766 +#: ../../mod/settings.php:767 msgid "Update browser every xx seconds" msgstr "" -#: ../../mod/settings.php:766 +#: ../../mod/settings.php:767 msgid "Minimum of 10 seconds, no maximum" msgstr "" -#: ../../mod/settings.php:767 +#: ../../mod/settings.php:768 msgid "Number of items to display on the network page:" msgstr "" -#: ../../mod/settings.php:767 +#: ../../mod/settings.php:768 msgid "Maximum of 100 items" msgstr "" -#: ../../mod/settings.php:768 +#: ../../mod/settings.php:769 msgid "Don't show emoticons" msgstr "" -#: ../../mod/settings.php:836 ../../mod/admin.php:180 ../../mod/admin.php:634 +#: ../../mod/settings.php:840 ../../mod/admin.php:180 ../../mod/admin.php:634 msgid "Normal Account" msgstr "" -#: ../../mod/settings.php:837 +#: ../../mod/settings.php:841 msgid "This account is a normal personal profile" msgstr "" -#: ../../mod/settings.php:840 ../../mod/admin.php:181 ../../mod/admin.php:635 +#: ../../mod/settings.php:844 ../../mod/admin.php:181 ../../mod/admin.php:635 msgid "Soapbox Account" msgstr "" -#: ../../mod/settings.php:841 +#: ../../mod/settings.php:845 msgid "Automatically approve all connection/friend requests as read-only fans" msgstr "" -#: ../../mod/settings.php:844 ../../mod/admin.php:182 ../../mod/admin.php:636 +#: ../../mod/settings.php:848 ../../mod/admin.php:182 ../../mod/admin.php:636 msgid "Community/Celebrity Account" msgstr "" -#: ../../mod/settings.php:845 +#: ../../mod/settings.php:849 msgid "Automatically approve all connection/friend requests as read-write fans" msgstr "" -#: ../../mod/settings.php:848 ../../mod/admin.php:183 ../../mod/admin.php:637 +#: ../../mod/settings.php:852 ../../mod/admin.php:183 ../../mod/admin.php:637 msgid "Automatic Friend Account" msgstr "" -#: ../../mod/settings.php:849 +#: ../../mod/settings.php:853 msgid "Automatically approve all connection/friend requests as friends" msgstr "" -#: ../../mod/settings.php:852 +#: ../../mod/settings.php:856 msgid "Private Forum" msgstr "" -#: ../../mod/settings.php:853 +#: ../../mod/settings.php:857 msgid "Private forum - approved members only [Experimental]" msgstr "" -#: ../../mod/settings.php:866 +#: ../../mod/settings.php:870 msgid "OpenID:" msgstr "" -#: ../../mod/settings.php:866 +#: ../../mod/settings.php:870 msgid "(Optional) Allow this OpenID to login to this account." msgstr "" -#: ../../mod/settings.php:876 +#: ../../mod/settings.php:880 msgid "Publish your default profile in your local site directory?" msgstr "" -#: ../../mod/settings.php:882 +#: ../../mod/settings.php:886 msgid "Publish your default profile in the global social directory?" msgstr "" -#: ../../mod/settings.php:890 +#: ../../mod/settings.php:894 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "" -#: ../../mod/settings.php:894 +#: ../../mod/settings.php:898 msgid "Hide your profile details from unknown viewers?" msgstr "" -#: ../../mod/settings.php:899 +#: ../../mod/settings.php:903 msgid "Allow friends to post to your profile page?" msgstr "" -#: ../../mod/settings.php:905 +#: ../../mod/settings.php:909 msgid "Allow friends to tag your posts?" msgstr "" -#: ../../mod/settings.php:911 +#: ../../mod/settings.php:915 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "" -#: ../../mod/settings.php:917 +#: ../../mod/settings.php:921 msgid "Permit unknown people to send you private mail?" msgstr "" -#: ../../mod/settings.php:928 +#: ../../mod/settings.php:932 msgid "Profile is not published." msgstr "" -#: ../../mod/settings.php:934 ../../mod/profile_photo.php:211 +#: ../../mod/settings.php:938 ../../mod/profile_photo.php:211 msgid "or" msgstr "" -#: ../../mod/settings.php:939 +#: ../../mod/settings.php:943 msgid "Your Identity Address is" msgstr "" -#: ../../mod/settings.php:950 +#: ../../mod/settings.php:954 msgid "Automatically expire posts after this many days:" msgstr "" -#: ../../mod/settings.php:950 +#: ../../mod/settings.php:954 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "" -#: ../../mod/settings.php:951 +#: ../../mod/settings.php:955 msgid "Advanced expiration settings" msgstr "" -#: ../../mod/settings.php:952 +#: ../../mod/settings.php:956 msgid "Advanced Expiration" msgstr "" -#: ../../mod/settings.php:953 +#: ../../mod/settings.php:957 msgid "Expire posts:" msgstr "" -#: ../../mod/settings.php:954 +#: ../../mod/settings.php:958 msgid "Expire personal notes:" msgstr "" -#: ../../mod/settings.php:955 +#: ../../mod/settings.php:959 msgid "Expire starred posts:" msgstr "" -#: ../../mod/settings.php:956 +#: ../../mod/settings.php:960 msgid "Expire photos:" msgstr "" -#: ../../mod/settings.php:963 +#: ../../mod/settings.php:961 +msgid "Only expire posts by others:" +msgstr "" + +#: ../../mod/settings.php:968 msgid "Account Settings" msgstr "" -#: ../../mod/settings.php:971 +#: ../../mod/settings.php:976 msgid "Password Settings" msgstr "" -#: ../../mod/settings.php:972 +#: ../../mod/settings.php:977 msgid "New Password:" msgstr "" -#: ../../mod/settings.php:973 +#: ../../mod/settings.php:978 msgid "Confirm:" msgstr "" -#: ../../mod/settings.php:973 +#: ../../mod/settings.php:978 msgid "Leave password fields blank unless changing" msgstr "" -#: ../../mod/settings.php:977 +#: ../../mod/settings.php:982 msgid "Basic Settings" msgstr "" -#: ../../mod/settings.php:978 ../../include/profile_advanced.php:15 +#: ../../mod/settings.php:983 ../../include/profile_advanced.php:15 msgid "Full Name:" msgstr "" -#: ../../mod/settings.php:979 +#: ../../mod/settings.php:984 msgid "Email Address:" msgstr "" -#: ../../mod/settings.php:980 +#: ../../mod/settings.php:985 msgid "Your Timezone:" msgstr "" -#: ../../mod/settings.php:981 +#: ../../mod/settings.php:986 msgid "Default Post Location:" msgstr "" -#: ../../mod/settings.php:982 +#: ../../mod/settings.php:987 msgid "Use Browser Location:" msgstr "" -#: ../../mod/settings.php:985 +#: ../../mod/settings.php:990 msgid "Security and Privacy Settings" msgstr "" -#: ../../mod/settings.php:987 +#: ../../mod/settings.php:992 msgid "Maximum Friend Requests/Day:" msgstr "" -#: ../../mod/settings.php:987 ../../mod/settings.php:1006 +#: ../../mod/settings.php:992 ../../mod/settings.php:1011 msgid "(to prevent spam abuse)" msgstr "" -#: ../../mod/settings.php:988 +#: ../../mod/settings.php:993 msgid "Default Post Permissions" msgstr "" -#: ../../mod/settings.php:989 +#: ../../mod/settings.php:994 msgid "(click to open/close)" msgstr "" -#: ../../mod/settings.php:1006 +#: ../../mod/settings.php:1011 msgid "Maximum private messages per day from unknown people:" msgstr "" -#: ../../mod/settings.php:1009 +#: ../../mod/settings.php:1014 msgid "Notification Settings" msgstr "" -#: ../../mod/settings.php:1010 +#: ../../mod/settings.php:1015 msgid "By default post a status message when:" msgstr "" -#: ../../mod/settings.php:1011 +#: ../../mod/settings.php:1016 msgid "accepting a friend request" msgstr "" -#: ../../mod/settings.php:1012 +#: ../../mod/settings.php:1017 msgid "joining a forum/community" msgstr "" -#: ../../mod/settings.php:1013 +#: ../../mod/settings.php:1018 msgid "making an interesting profile change" msgstr "" -#: ../../mod/settings.php:1014 +#: ../../mod/settings.php:1019 msgid "Send a notification email when:" msgstr "" -#: ../../mod/settings.php:1015 +#: ../../mod/settings.php:1020 msgid "You receive an introduction" msgstr "" -#: ../../mod/settings.php:1016 +#: ../../mod/settings.php:1021 msgid "Your introductions are confirmed" msgstr "" -#: ../../mod/settings.php:1017 +#: ../../mod/settings.php:1022 msgid "Someone writes on your profile wall" msgstr "" -#: ../../mod/settings.php:1018 +#: ../../mod/settings.php:1023 msgid "Someone writes a followup comment" msgstr "" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1024 msgid "You receive a private message" msgstr "" -#: ../../mod/settings.php:1020 +#: ../../mod/settings.php:1025 msgid "You receive a friend suggestion" msgstr "" -#: ../../mod/settings.php:1021 +#: ../../mod/settings.php:1026 msgid "You are tagged in a post" msgstr "" -#: ../../mod/settings.php:1024 +#: ../../mod/settings.php:1029 msgid "Advanced Page Settings" msgstr "" @@ -2841,7 +2847,7 @@ msgstr "" #: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156 #: ../../mod/admin.php:697 ../../mod/admin.php:896 ../../mod/display.php:37 -#: ../../mod/display.php:142 ../../include/items.php:3168 +#: ../../mod/display.php:142 ../../include/items.php:3175 msgid "Item not found." msgstr "" From 514c994e6a323cd8075da1442c32e65f036539ff Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 29 May 2012 17:14:35 -0700 Subject: [PATCH 07/49] possible sql injection in search --- include/api.php | 4 ++-- mod/search.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/api.php b/include/api.php index 5697fbdbc..5c17b35f5 100644 --- a/include/api.php +++ b/include/api.php @@ -995,8 +995,8 @@ else $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ", dbesc(protect_sprintf('%' . $myurl)), - dbesc(protect_sprintf('%' . $myurl . '\\]%')), - dbesc(protect_sprintf('%' . $diasp_url . '\\]%')) + dbesc(protect_sprintf('%' . $myurl . ']%')), + dbesc(protect_sprintf('%' . $diasp_url . ']%')) ); if ($max_id > 0) diff --git a/mod/search.php b/mod/search.php index 20007ada7..466ffc4c3 100644 --- a/mod/search.php +++ b/mod/search.php @@ -110,7 +110,7 @@ function search_content(&$a) { if (get_config('system','use_fulltext_engine')) { if($tag) - $sql_extra = sprintf(" AND MATCH (`item`.`tag`) AGAINST ('".'"%s"'."' in boolean mode) ", '#'.protect_sprintf($search)); + $sql_extra = sprintf(" AND MATCH (`item`.`tag`) AGAINST ('".'"%s"'."' in boolean mode) ", '#'.dbesc(protect_sprintf($search))); else $sql_extra = sprintf(" AND MATCH (`item`.`body`) AGAINST ('".'"%s"'."' in boolean mode) ", dbesc(protect_sprintf($search))); } else { From 52995e0b1f9b13d93d2655ff2ad83089ed22beaa Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 29 May 2012 18:14:21 -0700 Subject: [PATCH 08/49] private group fix --- mod/settings.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/settings.php b/mod/settings.php index b5214e917..bbdfe1ac9 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -445,7 +445,7 @@ function settings_post(&$a) { if($page_flags == PAGE_PRVGROUP) { $hidewall = 1; - if((! str_contact_allow) && (! str_group_allow) && (! str_contact_deny) && (! $str_group_deny)) { + if((! $str_contact_allow) && (! $str_group_allow) && (! $str_contact_deny) && (! $str_group_deny)) { if($def_gid) { info( t('Private forum has no privacy permissions. Using default privacy group.'). EOL); $str_group_allow = '<' . $def_gid . '>'; From c58b0b9cbbaa82f2547826c3ead9f263b762a842 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 29 May 2012 18:24:44 -0700 Subject: [PATCH 09/49] prvgroup should see intros --- include/nav.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/nav.php b/include/nav.php index 2c9c643a9..909ba9b54 100644 --- a/include/nav.php +++ b/include/nav.php @@ -117,7 +117,7 @@ function nav(&$a) { /* only show friend requests for normal pages. Other page types have automatic friendship. */ - if($_SESSION['page_flags'] == PAGE_NORMAL) { + if($_SESSION['page_flags'] == PAGE_NORMAL || $_SESSION['page_flags'] == PAGE_PRVGROUP) { $nav['introductions'] = array('notifications/intros', t('Introductions'), "", t('Friend Requests')); $nav['notifications'] = array('notifications', t('Notifications'), "", t('Notifications')); $nav['notifications']['all']=array('notifications/system', t('See all notifications'), "", ""); From b6fe837a643c9c7bb63a5196d4d14c508f3fce55 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 29 May 2012 18:43:56 -0700 Subject: [PATCH 10/49] hide private group if desired --- mod/dfrn_request.php | 16 ++++++++++------ view/dfrn_req_confirm.tpl | 4 ++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index b809929d7..896fe1792 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -68,7 +68,7 @@ function dfrn_request_post(&$a) { $dfrn_url = notags(trim($_POST['dfrn_url'])); $aes_allow = (((x($_POST,'aes_allow')) && ($_POST['aes_allow'] == 1)) ? 1 : 0); $confirm_key = ((x($_POST,'confirm_key')) ? $_POST['confirm_key'] : ""); - + $hidden = ((x($_POST,'hidden-contact')) ? intval($_POST['hidden-contact']) : 0); $contact_record = null; if(x($dfrn_url)) { @@ -98,8 +98,9 @@ function dfrn_request_post(&$a) { } if(is_array($contact_record)) { - $r = q("UPDATE `contact` SET `ret-aes` = %d WHERE `id` = %d LIMIT 1", + $r = q("UPDATE `contact` SET `ret-aes` = %d, hidden = %d WHERE `id` = %d LIMIT 1", intval($aes_allow), + intval($hidden), intval($contact_record['id']) ); } @@ -144,8 +145,8 @@ function dfrn_request_post(&$a) { */ $r = q("INSERT INTO `contact` ( `uid`, `created`,`url`, `nurl`, `name`, `nick`, `photo`, `site-pubkey`, - `request`, `confirm`, `notify`, `poll`, `poco`, `network`, `aes_allow`) - VALUES ( %d, '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)", + `request`, `confirm`, `notify`, `poll`, `poco`, `network`, `aes_allow`, `hidden`) + VALUES ( %d, '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d)", intval(local_user()), datetime_convert(), dbesc($dfrn_url), @@ -160,7 +161,8 @@ function dfrn_request_post(&$a) { $parms['dfrn-poll'], $parms['dfrn-poco'], dbesc(NETWORK_DFRN), - intval($aes_allow) + intval($aes_allow), + intval($hidden) ); } @@ -649,6 +651,8 @@ function dfrn_request_content(&$a) { $o = replace_macros($tpl,array( '$dfrn_url' => $dfrn_url, '$aes_allow' => (($aes_allow) ? '' : "" ), + '$hidethem' => t('Hide this contact'), + '$hidechecked' => '', '$confirm_key' => $confirm_key, '$welcome' => sprintf( t('Welcome home %s.'), $a->user['username']), '$please' => sprintf( t('Please confirm your introduction/connection request to %s.'), $dfrn_url), @@ -680,7 +684,7 @@ function dfrn_request_content(&$a) { $auto_confirm = false; if(count($r)) { - if($r[0]['page-flags'] != PAGE_NORMAL) + if(($r[0]['page-flags'] != PAGE_NORMAL) && ($r[0]['page-flags'] != PAGE_PRVGROUP)) $auto_confirm = true; if(! $auto_confirm) { diff --git a/view/dfrn_req_confirm.tpl b/view/dfrn_req_confirm.tpl index 58e9233aa..6c916323c 100644 --- a/view/dfrn_req_confirm.tpl +++ b/view/dfrn_req_confirm.tpl @@ -11,6 +11,10 @@ $please $aes_allow + + + +
From 88a0d6a1d53a93fa0d43591f85b72a8a72c13d53 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 29 May 2012 22:57:15 -0700 Subject: [PATCH 11/49] private group tests, cont. --- boot.php | 2 +- database.sql | 1 + include/items.php | 8 +++---- mod/dfrn_confirm.php | 9 +++++++- mod/dfrn_notify.php | 10 ++++++--- mod/item.php | 37 +++++++++++++++++++++---------- update.php | 10 ++++++--- view/theme/duepuntozero/style.css | 1 + 8 files changed, 54 insertions(+), 24 deletions(-) diff --git a/boot.php b/boot.php index 9875b42ef..54ab14d63 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '3.0.1358' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1144 ); +define ( 'DB_UPDATE_VERSION', 1145 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/database.sql b/database.sql index ed97cd4aa..48900839c 100644 --- a/database.sql +++ b/database.sql @@ -173,6 +173,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `readonly` tinyint(1) NOT NULL DEFAULT '0', `writable` tinyint(1) NOT NULL DEFAULT '0', `forum` tinyint(1) NOT NULL DEFAULT '0', + `prv` tinyint(1) NOT NULL DEFAULT '0', `hidden` tinyint(1) NOT NULL DEFAULT '0', `archive` tinyint(1) NOT NULL DEFAULT '0', `pending` tinyint(1) NOT NULL DEFAULT '1', diff --git a/include/items.php b/include/items.php index b08e491be..c6d852fe7 100644 --- a/include/items.php +++ b/include/items.php @@ -1063,9 +1063,6 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { $a = get_app(); -// if((! strlen($contact['issued-id'])) && (! $contact['duplex']) && (! ($owner['page-flags'] == PAGE_COMMUNITY))) -// return 3; - $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']); if($contact['duplex'] && $contact['dfrn-id']) @@ -1130,6 +1127,9 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { $rino_allowed = ((intval($res->rino) === 1) ? 1 : 0); $page = (($owner['page-flags'] == PAGE_COMMUNITY) ? 1 : 0); + if($owner['page-flags'] == PAGE_PRVGROUP) + $page = 2; + $final_dfrn_id = ''; if($perm) { @@ -1183,7 +1183,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { $postvars['ssl_policy'] = $ssl_policy; if($page) - $postvars['page'] = '1'; + $postvars['page'] = $page; if($rino && $rino_allowed && (! $dissolve)) { $key = substr(random_string(),0,16); diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 564ae5ca2..76b99cbca 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -202,6 +202,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if($user[0]['page-flags'] == PAGE_COMMUNITY) $params['page'] = 1; + if($user[0]['page-flags'] == PAGE_PRVGROUP) + $params['page'] = 2; logger('dfrn_confirm: Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA); @@ -537,6 +539,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $page = ((x($_POST,'page')) ? intval($_POST['page']) : 0 ); $version_id = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0); + $forum = (($page == 1) ? 1 : 0); + $prv = (($page == 2) ? 1 : 0); + logger('dfrn_confirm: requestee contacted: ' . $node); logger('dfrn_confirm: request: POST=' . print_r($_POST,true), LOGGER_DATA); @@ -691,6 +696,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { `pending` = 0, `duplex` = %d, `forum` = %d, + `prv` = %d, `network` = '%s' WHERE `id` = %d LIMIT 1 ", dbesc($photos[0]), @@ -701,7 +707,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc(datetime_convert()), dbesc(datetime_convert()), intval($duplex), - intval($page), + intval($forum), + intval($prv), dbesc(NETWORK_DFRN), intval($dfrn_record) ); diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 65d39d5fe..e55da5572 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -17,6 +17,9 @@ function dfrn_notify_post(&$a) { $ssl_policy = ((x($_POST,'ssl_policy')) ? notags(trim($_POST['ssl_policy'])): 'none'); $page = ((x($_POST,'page')) ? intval($_POST['page']) : 0); + $forum = (($page == 1) ? 1 : 0); + $prv = (($page == 2) ? 1 : 0); + $writable = (-1); if($dfrn_version >= 2.21) { $writable = (($perm === 'rw') ? 1 : 0); @@ -88,10 +91,11 @@ function dfrn_notify_post(&$a) { $importer = $r[0]; - if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $page)) { - q("UPDATE `contact` SET `writable` = %d, forum = %d WHERE `id` = %d LIMIT 1", + if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $forum) || ($importer['prv'] != $prv)) { + q("UPDATE `contact` SET `writable` = %d, forum = %d, prv = %d WHERE `id` = %d LIMIT 1", intval(($writable == (-1)) ? $importer['writable'] : $writable), - intval($page), + intval($forum), + intval($prv), intval($importer['id']) ); if($writable != (-1)) diff --git a/mod/item.php b/mod/item.php index df242d6f7..497cf5daa 100644 --- a/mod/item.php +++ b/mod/item.php @@ -262,17 +262,17 @@ function item_post(&$a) { } } - if(strlen($categories)) { - // get the "fileas" tags for this post - $filedas = file_tag_file_to_list($categories, 'file'); + if(strlen($categories)) { + // get the "fileas" tags for this post + $filedas = file_tag_file_to_list($categories, 'file'); } - // save old and new categories, so we can determine what needs to be deleted from pconfig - $categories_old = $categories; - $categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category'); - $categories_new = $categories; - if(strlen($filedas)) { - // append the fileas stuff to the new categories list - $categories .= file_tag_list_to_file($filedas, 'file'); + // save old and new categories, so we can determine what needs to be deleted from pconfig + $categories_old = $categories; + $categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category'); + $categories_new = $categories; + if(strlen($filedas)) { + // append the fileas stuff to the new categories list + $categories .= file_tag_list_to_file($filedas, 'file'); } // Work around doubled linefeeds in Tinymce 3.5b2 @@ -453,6 +453,7 @@ function item_post(&$a) { $tagged = array(); + $private_forum = false; if(count($tags)) { foreach($tags as $tag) { @@ -471,11 +472,22 @@ function item_post(&$a) { continue; $success = handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag); - if($success) + if($success['replaced']) $tagged[] = $tag; + if(is_array($success['contact']) && intval($success['contact']['prv'])) { + $private_forum = true; + $private_id = $success['contact']['id']; + } } } + if(($private_forum) && (! $parent) && (! $private)) { + // we tagged a private forum in a top level post and the message was public. + // Restrict it. + $private = 1; + $str_contact_allow = '<' . $private_id . '>'; + } + $attachments = ''; $match = false; @@ -893,6 +905,7 @@ function item_content(&$a) { function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { $replaced = false; + $r = null; //is it a hash tag? if(strpos($tag,'#') === 0) { @@ -1023,5 +1036,5 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { } } - return $replaced; + return array('replaced' => $replaced, 'contact' => $r[0]); } diff --git a/update.php b/update.php index f25d16f9d..f94b89fd3 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ Date: Wed, 30 May 2012 01:52:58 -0700 Subject: [PATCH 12/49] fix private photos that also have a size specification --- include/items.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/items.php b/include/items.php index c6d852fe7..8324d4bdd 100644 --- a/include/items.php +++ b/include/items.php @@ -2933,8 +2933,8 @@ function fix_private_photos($s,$uid, $item = null, $cid = 0) { logger('fix_private_photos', LOGGER_DEBUG); $site = substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')); - if(preg_match("/\[img\](.*?)\[\/img\]/is",$s,$matches)) { - $image = $matches[1]; + if(preg_match("/\[img(.*?)\](.*?)\[\/img\]/is",$s,$matches)) { + $image = $matches[2]; logger('fix_private_photos: found photo ' . $image, LOGGER_DEBUG); if(stristr($image , $site . '/photo/')) { $replace = false; From 7d77cfef56853fa5febb36b4cb4a1df8da7c3224 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 30 May 2012 04:20:01 -0700 Subject: [PATCH 13/49] Create a "potential default group" called "Friends" on registration. --- mod/register.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mod/register.php b/mod/register.php index 58bba8533..aeeec7c1f 100644 --- a/mod/register.php +++ b/mod/register.php @@ -290,6 +290,11 @@ function register_post(&$a) { dbesc(datetime_convert()) ); + // Create a group with no members. This allows somebody to use it + // right away as a default group for new contacts. + + require_once('include/group.php'); + group_add($newuid, t('Friends')); } From 3e226a665ce7005f2aea27098458ed8d1ae48ba6 Mon Sep 17 00:00:00 2001 From: Thomas Willingham Date: Wed, 30 May 2012 17:41:31 +0100 Subject: [PATCH 14/49] Friendicaland - you can't 'live' on a demo server. --- js/country.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/country.js b/js/country.js index 8d218bde6..6bc2e9db1 100644 --- a/js/country.js +++ b/js/country.js @@ -275,7 +275,7 @@ aStates[249]="|'Adan|'Ataq|Abyan|Al Bayda'|Al Hudaydah|Al Jawf|Al Mahrah|Al Mahw aStates[250]="|Kosovo|Montenegro|Serbia|Vojvodina"; aStates[251]="|Central|Copperbelt|Eastern|Luapula|Lusaka|North-Western|Northern|Southern|Western"; aStates[252]="|Bulawayo|Harare|ManicalandMashonaland Central|Mashonaland East|Mashonaland West|Masvingo|Matabeleland North|Matabeleland South|Midlands"; -aStates[253]="Self Hosted|Private Server|Architects Of Sleep|DFRN|Distributed Friend Network|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste?|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Oradons Friendica|Recolutionari.es|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other"; +aStates[253]="Self Hosted|Private Server|Architects Of Sleep|DFRN|Distributed Friend Network|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste?|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Recolutionari.es|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other"; /* * gArCountryInfo * (0) Country name From 069361f946509210663c7e6be8020c2f2b49195f Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 30 May 2012 15:50:30 -0700 Subject: [PATCH 15/49] rev update --- boot.php | 2 +- mod/acl.php | 2 +- util/messages.po | 336 ++++++++++++++++++++++++----------------------- 3 files changed, 172 insertions(+), 168 deletions(-) diff --git a/boot.php b/boot.php index 54ab14d63..fc5b9b2a6 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1358' ); +define ( 'FRIENDICA_VERSION', '3.0.1359' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1145 ); diff --git a/mod/acl.php b/mod/acl.php index 168b1f59f..1e8898ab6 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -135,7 +135,7 @@ function acl_init(&$a){ foreach($r as $g) { $x['photos'][] = $g['micro']; $x['links'][] = $g['url']; - $x['suggestions'][] = $g['name']; // sprintf( t('%s [%s]'),$g['name'],$g['url']); + $x['suggestions'][] = $g['name']; $x['data'][] = intval($g['id']); } } diff --git a/util/messages.po b/util/messages.po index 37c1785d4..eddec1e9f 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1358\n" +"Project-Id-Version: 3.0.1359\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-29 10:00-0700\n" +"POT-Creation-Date: 2012-05-30 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -159,7 +159,7 @@ msgstr "" #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102 #: ../../addon/posterous/posterous.php:103 #: ../../view/theme/cleanzero/config.php:80 -#: ../../view/theme/diabook/theme.php:752 +#: ../../view/theme/diabook/theme.php:757 #: ../../view/theme/diabook/config.php:190 #: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70 #: ../../include/conversation.php:559 @@ -220,7 +220,7 @@ msgstr "" msgid "link to source" msgstr "" -#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:126 +#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:131 #: ../../include/nav.php:52 ../../boot.php:1520 msgid "Events" msgstr "" @@ -280,7 +280,7 @@ msgid "Share this event" msgstr "" #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 -#: ../../mod/dfrn_request.php:826 ../../mod/settings.php:556 +#: ../../mod/dfrn_request.php:830 ../../mod/settings.php:556 #: ../../mod/settings.php:582 ../../addon/js_upload/js_upload.php:45 msgid "Cancel" msgstr "" @@ -324,26 +324,26 @@ msgid "" "and/or create new posts for you?" msgstr "" -#: ../../mod/api.php:105 ../../mod/dfrn_request.php:814 +#: ../../mod/api.php:105 ../../mod/dfrn_request.php:818 #: ../../mod/settings.php:880 ../../mod/settings.php:886 #: ../../mod/settings.php:894 ../../mod/settings.php:898 #: ../../mod/settings.php:903 ../../mod/settings.php:909 #: ../../mod/settings.php:915 ../../mod/settings.php:921 #: ../../mod/settings.php:957 ../../mod/settings.php:958 #: ../../mod/settings.php:959 ../../mod/settings.php:960 -#: ../../mod/settings.php:961 ../../mod/register.php:511 +#: ../../mod/settings.php:961 ../../mod/register.php:516 #: ../../mod/profiles.php:520 msgid "Yes" msgstr "" -#: ../../mod/api.php:106 ../../mod/dfrn_request.php:815 +#: ../../mod/api.php:106 ../../mod/dfrn_request.php:819 #: ../../mod/settings.php:880 ../../mod/settings.php:886 #: ../../mod/settings.php:894 ../../mod/settings.php:898 #: ../../mod/settings.php:903 ../../mod/settings.php:909 #: ../../mod/settings.php:915 ../../mod/settings.php:921 #: ../../mod/settings.php:957 ../../mod/settings.php:958 #: ../../mod/settings.php:959 ../../mod/settings.php:960 -#: ../../mod/settings.php:961 ../../mod/register.php:512 +#: ../../mod/settings.php:961 ../../mod/register.php:517 #: ../../mod/profiles.php:521 msgid "No" msgstr "" @@ -356,7 +356,7 @@ msgstr "" #: ../../mod/photos.php:1005 ../../mod/photos.php:1020 #: ../../mod/photos.php:1445 ../../mod/photos.php:1457 #: ../../addon/communityhome/communityhome.php:110 -#: ../../view/theme/diabook/theme.php:593 +#: ../../view/theme/diabook/theme.php:598 msgid "Contact Photos" msgstr "" @@ -373,13 +373,13 @@ msgid "Contact information unavailable" msgstr "" #: ../../mod/photos.php:151 ../../mod/photos.php:652 ../../mod/photos.php:1005 -#: ../../mod/photos.php:1020 ../../mod/register.php:314 -#: ../../mod/register.php:321 ../../mod/register.php:328 +#: ../../mod/photos.php:1020 ../../mod/register.php:319 +#: ../../mod/register.php:326 ../../mod/register.php:333 #: ../../mod/profile_photo.php:60 ../../mod/profile_photo.php:67 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261 #: ../../addon/communityhome/communityhome.php:111 -#: ../../view/theme/diabook/theme.php:594 +#: ../../view/theme/diabook/theme.php:599 msgid "Profile Photos" msgstr "" @@ -401,7 +401,7 @@ msgstr "" #: ../../mod/photos.php:583 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../view/theme/diabook/theme.php:565 ../../include/text.php:1311 +#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1311 #: ../../include/diaspora.php:1662 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" @@ -430,7 +430,7 @@ msgid "Image upload failed." msgstr "" #: ../../mod/photos.php:814 ../../mod/community.php:16 -#: ../../mod/dfrn_request.php:740 ../../mod/viewcontacts.php:17 +#: ../../mod/dfrn_request.php:744 ../../mod/viewcontacts.php:17 #: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29 msgid "Public access denied." msgstr "" @@ -580,12 +580,12 @@ msgstr "" msgid "Not available." msgstr "" -#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:128 +#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:133 #: ../../include/nav.php:101 msgid "Community" msgstr "" -#: ../../mod/community.php:61 ../../mod/search.php:138 +#: ../../mod/community.php:61 ../../mod/search.php:144 msgid "No results." msgstr "" @@ -702,184 +702,188 @@ msgstr "" msgid "This introduction has already been accepted." msgstr "" -#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:495 +#: ../../mod/dfrn_request.php:118 ../../mod/dfrn_request.php:497 msgid "Profile location is not valid or does not contain profile information." msgstr "" -#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:500 +#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:502 msgid "Warning: profile location has no identifiable owner name." msgstr "" -#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:502 +#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:504 msgid "Warning: profile location has no profile photo." msgstr "" -#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:505 +#: ../../mod/dfrn_request.php:128 ../../mod/dfrn_request.php:507 #, 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" msgstr[0] "" msgstr[1] "" -#: ../../mod/dfrn_request.php:168 +#: ../../mod/dfrn_request.php:170 msgid "Introduction complete." msgstr "" -#: ../../mod/dfrn_request.php:192 +#: ../../mod/dfrn_request.php:194 msgid "Unrecoverable protocol error." msgstr "" -#: ../../mod/dfrn_request.php:220 +#: ../../mod/dfrn_request.php:222 msgid "Profile unavailable." msgstr "" -#: ../../mod/dfrn_request.php:245 +#: ../../mod/dfrn_request.php:247 #, php-format msgid "%s has received too many connection requests today." msgstr "" -#: ../../mod/dfrn_request.php:246 +#: ../../mod/dfrn_request.php:248 msgid "Spam protection measures have been invoked." msgstr "" -#: ../../mod/dfrn_request.php:247 +#: ../../mod/dfrn_request.php:249 msgid "Friends are advised to please try again in 24 hours." msgstr "" -#: ../../mod/dfrn_request.php:309 +#: ../../mod/dfrn_request.php:311 msgid "Invalid locator" msgstr "" -#: ../../mod/dfrn_request.php:318 +#: ../../mod/dfrn_request.php:320 msgid "Invalid email address." msgstr "" -#: ../../mod/dfrn_request.php:344 +#: ../../mod/dfrn_request.php:346 msgid "This account has not been configured for email. Request failed." msgstr "" -#: ../../mod/dfrn_request.php:440 +#: ../../mod/dfrn_request.php:442 msgid "Unable to resolve your name at the provided location." msgstr "" -#: ../../mod/dfrn_request.php:453 +#: ../../mod/dfrn_request.php:455 msgid "You have already introduced yourself here." msgstr "" -#: ../../mod/dfrn_request.php:457 +#: ../../mod/dfrn_request.php:459 #, php-format msgid "Apparently you are already friends with %s." msgstr "" -#: ../../mod/dfrn_request.php:478 +#: ../../mod/dfrn_request.php:480 msgid "Invalid profile URL." msgstr "" -#: ../../mod/dfrn_request.php:484 ../../mod/follow.php:23 +#: ../../mod/dfrn_request.php:486 ../../mod/follow.php:23 msgid "Disallowed profile URL." msgstr "" -#: ../../mod/dfrn_request.php:553 ../../mod/contacts.php:102 +#: ../../mod/dfrn_request.php:555 ../../mod/contacts.php:102 msgid "Failed to update contact record." msgstr "" -#: ../../mod/dfrn_request.php:574 +#: ../../mod/dfrn_request.php:576 msgid "Your introduction has been sent." msgstr "" -#: ../../mod/dfrn_request.php:627 +#: ../../mod/dfrn_request.php:629 msgid "Please login to confirm introduction." msgstr "" -#: ../../mod/dfrn_request.php:641 +#: ../../mod/dfrn_request.php:643 msgid "" "Incorrect identity currently logged in. Please login to this profile." msgstr "" -#: ../../mod/dfrn_request.php:653 +#: ../../mod/dfrn_request.php:654 +msgid "Hide this contact" +msgstr "" + +#: ../../mod/dfrn_request.php:657 #, php-format msgid "Welcome home %s." msgstr "" -#: ../../mod/dfrn_request.php:654 +#: ../../mod/dfrn_request.php:658 #, php-format msgid "Please confirm your introduction/connection request to %s." msgstr "" -#: ../../mod/dfrn_request.php:655 +#: ../../mod/dfrn_request.php:659 msgid "Confirm" msgstr "" -#: ../../mod/dfrn_request.php:696 ../../include/items.php:2729 +#: ../../mod/dfrn_request.php:700 ../../include/items.php:2729 msgid "[Name Withheld]" msgstr "" -#: ../../mod/dfrn_request.php:789 +#: ../../mod/dfrn_request.php:793 msgid "" "Please enter your 'Identity Address' from one of the following supported " "communications networks:" msgstr "" -#: ../../mod/dfrn_request.php:805 +#: ../../mod/dfrn_request.php:809 msgid "Connect as an email follower (Coming soon)" msgstr "" -#: ../../mod/dfrn_request.php:807 +#: ../../mod/dfrn_request.php:811 msgid "" "If you are not yet a member of the free social web, follow this link to find a public Friendica site " "and join us today." msgstr "" -#: ../../mod/dfrn_request.php:810 +#: ../../mod/dfrn_request.php:814 msgid "Friend/Connection Request" msgstr "" -#: ../../mod/dfrn_request.php:811 +#: ../../mod/dfrn_request.php:815 msgid "" "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " "testuser@identi.ca" msgstr "" -#: ../../mod/dfrn_request.php:812 +#: ../../mod/dfrn_request.php:816 msgid "Please answer the following:" msgstr "" -#: ../../mod/dfrn_request.php:813 +#: ../../mod/dfrn_request.php:817 #, php-format msgid "Does %s know you?" msgstr "" -#: ../../mod/dfrn_request.php:816 +#: ../../mod/dfrn_request.php:820 msgid "Add a personal note:" msgstr "" -#: ../../mod/dfrn_request.php:818 ../../include/contact_selectors.php:76 +#: ../../mod/dfrn_request.php:822 ../../include/contact_selectors.php:76 msgid "Friendica" msgstr "" -#: ../../mod/dfrn_request.php:819 +#: ../../mod/dfrn_request.php:823 msgid "StatusNet/Federated Social Web" msgstr "" -#: ../../mod/dfrn_request.php:820 ../../mod/settings.php:652 +#: ../../mod/dfrn_request.php:824 ../../mod/settings.php:652 #: ../../include/contact_selectors.php:80 msgid "Diaspora" msgstr "" -#: ../../mod/dfrn_request.php:821 +#: ../../mod/dfrn_request.php:825 #, php-format msgid "" " - please do not use this form. Instead, enter %s into your Diaspora search " "bar." msgstr "" -#: ../../mod/dfrn_request.php:822 +#: ../../mod/dfrn_request.php:826 msgid "Your Identity Address:" msgstr "" -#: ../../mod/dfrn_request.php:825 +#: ../../mod/dfrn_request.php:829 msgid "Submit Request" msgstr "" @@ -1231,7 +1235,7 @@ msgstr "" msgid "Personal" msgstr "" -#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:122 +#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:127 #: ../../include/nav.php:77 ../../include/nav.php:115 msgid "Home" msgstr "" @@ -1672,7 +1676,7 @@ msgstr "" msgid "Edit contact" msgstr "" -#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:124 +#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:129 #: ../../include/nav.php:139 msgid "Contacts" msgstr "" @@ -1704,8 +1708,8 @@ msgid "Password reset requested at %s" msgstr "" #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107 -#: ../../mod/register.php:367 ../../mod/register.php:421 -#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:745 +#: ../../mod/register.php:372 ../../mod/register.php:426 +#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:752 #: ../../addon/facebook/facebook.php:688 #: ../../addon/facebook/facebook.php:1178 #: ../../addon/public_server/public_server.php:62 @@ -1793,8 +1797,8 @@ msgid "Remove account" msgstr "" #: ../../mod/settings.php:89 ../../mod/admin.php:748 ../../mod/admin.php:953 -#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:638 -#: ../../view/theme/diabook/theme.php:768 ../../include/nav.php:137 +#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:643 +#: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137 msgid "Settings" msgstr "" @@ -2639,7 +2643,7 @@ msgstr "" msgid "Profile Visibility Editor" msgstr "" -#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:123 +#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74 #: ../../include/nav.php:50 ../../boot.php:1505 msgid "Profile" @@ -2729,91 +2733,95 @@ msgstr "" msgid "An error occurred creating your default profile. Please try again." msgstr "" -#: ../../mod/register.php:365 ../../mod/regmod.php:52 +#: ../../mod/register.php:297 ../../include/profile_selectors.php:42 +msgid "Friends" +msgstr "" + +#: ../../mod/register.php:370 ../../mod/regmod.php:52 #, php-format msgid "Registration details for %s" msgstr "" -#: ../../mod/register.php:373 +#: ../../mod/register.php:378 msgid "" "Registration successful. Please check your email for further instructions." msgstr "" -#: ../../mod/register.php:377 +#: ../../mod/register.php:382 msgid "Failed to send email message. Here is the message that failed." msgstr "" -#: ../../mod/register.php:382 +#: ../../mod/register.php:387 msgid "Your registration can not be processed." msgstr "" -#: ../../mod/register.php:419 +#: ../../mod/register.php:424 #, php-format msgid "Registration request at %s" msgstr "" -#: ../../mod/register.php:428 +#: ../../mod/register.php:433 msgid "Your registration is pending approval by the site owner." msgstr "" -#: ../../mod/register.php:466 +#: ../../mod/register.php:471 msgid "" "This site has exceeded the number of allowed daily account registrations. " "Please try again tomorrow." msgstr "" -#: ../../mod/register.php:492 +#: ../../mod/register.php:497 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " "and clicking 'Register'." msgstr "" -#: ../../mod/register.php:493 +#: ../../mod/register.php:498 msgid "" "If you are not familiar with OpenID, please leave that field blank and fill " "in the rest of the items." msgstr "" -#: ../../mod/register.php:494 +#: ../../mod/register.php:499 msgid "Your OpenID (optional): " msgstr "" -#: ../../mod/register.php:508 +#: ../../mod/register.php:513 msgid "Include your profile in member directory?" msgstr "" -#: ../../mod/register.php:528 +#: ../../mod/register.php:533 msgid "Membership on this site is by invitation only." msgstr "" -#: ../../mod/register.php:529 +#: ../../mod/register.php:534 msgid "Your invitation ID: " msgstr "" -#: ../../mod/register.php:532 ../../mod/admin.php:418 +#: ../../mod/register.php:537 ../../mod/admin.php:418 msgid "Registration" msgstr "" -#: ../../mod/register.php:540 +#: ../../mod/register.php:545 msgid "Your Full Name (e.g. Joe Smith): " msgstr "" -#: ../../mod/register.php:541 +#: ../../mod/register.php:546 msgid "Your Email Address: " msgstr "" -#: ../../mod/register.php:542 +#: ../../mod/register.php:547 msgid "" "Choose a profile nickname. This must begin with a text character. Your " "profile address on this site will then be 'nickname@$sitename'." msgstr "" -#: ../../mod/register.php:543 +#: ../../mod/register.php:548 msgid "Choose a nickname: " msgstr "" -#: ../../mod/register.php:546 ../../include/nav.php:81 ../../boot.php:792 +#: ../../mod/register.php:551 ../../include/nav.php:81 ../../boot.php:792 msgid "Register" msgstr "" @@ -2825,8 +2833,8 @@ msgstr "" #: ../../addon/facebook/facebook.php:1572 #: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:167 -#: ../../view/theme/diabook/theme.php:560 -#: ../../view/theme/diabook/theme.php:569 ../../include/diaspora.php:1662 +#: ../../view/theme/diabook/theme.php:565 +#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1662 #: ../../include/conversation.php:48 ../../include/conversation.php:57 #: ../../include/conversation.php:121 ../../include/conversation.php:130 msgid "status" @@ -2834,7 +2842,7 @@ msgstr "" #: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1576 #: ../../addon/communityhome/communityhome.php:172 -#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1678 +#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1678 #: ../../include/conversation.php:65 #, php-format msgid "%1$s likes %2$s's %3$s" @@ -2855,7 +2863,7 @@ msgstr "" msgid "Access denied." msgstr "" -#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:125 +#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:130 #: ../../include/nav.php:51 ../../boot.php:1511 msgid "Photos" msgstr "" @@ -2891,28 +2899,28 @@ msgstr "" msgid "Wall Photos" msgstr "" -#: ../../mod/item.php:788 +#: ../../mod/item.php:800 msgid "System error. Post not saved." msgstr "" -#: ../../mod/item.php:813 +#: ../../mod/item.php:825 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social network." msgstr "" -#: ../../mod/item.php:815 +#: ../../mod/item.php:827 #, php-format msgid "You may visit them online at %s" msgstr "" -#: ../../mod/item.php:816 +#: ../../mod/item.php:828 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "" -#: ../../mod/item.php:818 +#: ../../mod/item.php:830 #, php-format msgid "%s posted an update." msgstr "" @@ -4125,7 +4133,7 @@ msgstr "" msgid "No entries." msgstr "" -#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:621 +#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:626 #: ../../include/contact_widgets.php:34 msgid "Friend Suggestions" msgstr "" @@ -4140,7 +4148,7 @@ msgstr "" msgid "Ignore/Hide" msgstr "" -#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:619 +#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:624 msgid "Global Directory" msgstr "" @@ -4250,83 +4258,83 @@ msgid "" "has already been approved." msgstr "" -#: ../../mod/dfrn_confirm.php:235 +#: ../../mod/dfrn_confirm.php:237 msgid "Response from remote site was not understood." msgstr "" -#: ../../mod/dfrn_confirm.php:244 +#: ../../mod/dfrn_confirm.php:246 msgid "Unexpected response from remote site: " msgstr "" -#: ../../mod/dfrn_confirm.php:252 +#: ../../mod/dfrn_confirm.php:254 msgid "Confirmation completed successfully." msgstr "" -#: ../../mod/dfrn_confirm.php:254 ../../mod/dfrn_confirm.php:268 -#: ../../mod/dfrn_confirm.php:275 +#: ../../mod/dfrn_confirm.php:256 ../../mod/dfrn_confirm.php:270 +#: ../../mod/dfrn_confirm.php:277 msgid "Remote site reported: " msgstr "" -#: ../../mod/dfrn_confirm.php:266 +#: ../../mod/dfrn_confirm.php:268 msgid "Temporary failure. Please wait and try again." msgstr "" -#: ../../mod/dfrn_confirm.php:273 +#: ../../mod/dfrn_confirm.php:275 msgid "Introduction failed or was revoked." msgstr "" -#: ../../mod/dfrn_confirm.php:418 +#: ../../mod/dfrn_confirm.php:420 msgid "Unable to set contact photo." msgstr "" -#: ../../mod/dfrn_confirm.php:475 ../../include/diaspora.php:507 +#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507 #: ../../include/conversation.php:101 #, php-format msgid "%1$s is now friends with %2$s" msgstr "" -#: ../../mod/dfrn_confirm.php:557 +#: ../../mod/dfrn_confirm.php:562 #, php-format msgid "No user record found for '%s' " msgstr "" -#: ../../mod/dfrn_confirm.php:567 +#: ../../mod/dfrn_confirm.php:572 msgid "Our site encryption key is apparently messed up." msgstr "" -#: ../../mod/dfrn_confirm.php:578 +#: ../../mod/dfrn_confirm.php:583 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "" -#: ../../mod/dfrn_confirm.php:599 +#: ../../mod/dfrn_confirm.php:604 msgid "Contact record was not found for you on our site." msgstr "" -#: ../../mod/dfrn_confirm.php:613 +#: ../../mod/dfrn_confirm.php:618 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "" -#: ../../mod/dfrn_confirm.php:633 +#: ../../mod/dfrn_confirm.php:638 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "" -#: ../../mod/dfrn_confirm.php:644 +#: ../../mod/dfrn_confirm.php:649 msgid "Unable to set your contact credentials on our system." msgstr "" -#: ../../mod/dfrn_confirm.php:709 +#: ../../mod/dfrn_confirm.php:716 msgid "Unable to update your contact profile details on our system" msgstr "" -#: ../../mod/dfrn_confirm.php:743 +#: ../../mod/dfrn_confirm.php:750 #, php-format msgid "Connection accepted at %s" msgstr "" -#: ../../mod/dfrn_confirm.php:792 +#: ../../mod/dfrn_confirm.php:799 #, php-format msgid "%1$s has joined %2$s" msgstr "" @@ -4725,7 +4733,7 @@ msgid "Latest likes" msgstr "" #: ../../addon/communityhome/communityhome.php:155 -#: ../../view/theme/diabook/theme.php:557 ../../include/text.php:1309 +#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1309 #: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "" @@ -5687,153 +5695,153 @@ msgstr "" msgid "Color scheme" msgstr "" -#: ../../view/theme/diabook/theme.php:122 ../../include/nav.php:49 +#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:49 #: ../../include/nav.php:115 msgid "Your posts and conversations" msgstr "" -#: ../../view/theme/diabook/theme.php:123 ../../include/nav.php:50 +#: ../../view/theme/diabook/theme.php:128 ../../include/nav.php:50 msgid "Your profile page" msgstr "" -#: ../../view/theme/diabook/theme.php:124 +#: ../../view/theme/diabook/theme.php:129 msgid "Your contacts" msgstr "" -#: ../../view/theme/diabook/theme.php:125 ../../include/nav.php:51 +#: ../../view/theme/diabook/theme.php:130 ../../include/nav.php:51 msgid "Your photos" msgstr "" -#: ../../view/theme/diabook/theme.php:126 ../../include/nav.php:52 +#: ../../view/theme/diabook/theme.php:131 ../../include/nav.php:52 msgid "Your events" msgstr "" -#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:53 +#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53 msgid "Personal notes" msgstr "" -#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:53 +#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53 msgid "Your personal photos" msgstr "" -#: ../../view/theme/diabook/theme.php:129 -#: ../../view/theme/diabook/theme.php:638 -#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:134 +#: ../../view/theme/diabook/theme.php:643 +#: ../../view/theme/diabook/theme.php:747 #: ../../view/theme/diabook/config.php:201 msgid "Community Pages" msgstr "" -#: ../../view/theme/diabook/theme.php:485 -#: ../../view/theme/diabook/theme.php:744 +#: ../../view/theme/diabook/theme.php:490 +#: ../../view/theme/diabook/theme.php:749 #: ../../view/theme/diabook/config.php:203 msgid "Community Profiles" msgstr "" -#: ../../view/theme/diabook/theme.php:506 -#: ../../view/theme/diabook/theme.php:749 +#: ../../view/theme/diabook/theme.php:511 +#: ../../view/theme/diabook/theme.php:754 #: ../../view/theme/diabook/config.php:208 msgid "Last users" msgstr "" -#: ../../view/theme/diabook/theme.php:535 -#: ../../view/theme/diabook/theme.php:751 +#: ../../view/theme/diabook/theme.php:540 +#: ../../view/theme/diabook/theme.php:756 #: ../../view/theme/diabook/config.php:210 msgid "Last likes" msgstr "" -#: ../../view/theme/diabook/theme.php:580 -#: ../../view/theme/diabook/theme.php:750 +#: ../../view/theme/diabook/theme.php:585 +#: ../../view/theme/diabook/theme.php:755 #: ../../view/theme/diabook/config.php:209 msgid "Last photos" msgstr "" -#: ../../view/theme/diabook/theme.php:617 -#: ../../view/theme/diabook/theme.php:747 +#: ../../view/theme/diabook/theme.php:622 +#: ../../view/theme/diabook/theme.php:752 #: ../../view/theme/diabook/config.php:206 msgid "Find Friends" msgstr "" -#: ../../view/theme/diabook/theme.php:618 +#: ../../view/theme/diabook/theme.php:623 msgid "Local Directory" msgstr "" -#: ../../view/theme/diabook/theme.php:620 ../../include/contact_widgets.php:35 +#: ../../view/theme/diabook/theme.php:625 ../../include/contact_widgets.php:35 msgid "Similar Interests" msgstr "" -#: ../../view/theme/diabook/theme.php:622 ../../include/contact_widgets.php:37 +#: ../../view/theme/diabook/theme.php:627 ../../include/contact_widgets.php:37 msgid "Invite Friends" msgstr "" -#: ../../view/theme/diabook/theme.php:673 -#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:678 +#: ../../view/theme/diabook/theme.php:748 #: ../../view/theme/diabook/config.php:202 msgid "Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:678 +#: ../../view/theme/diabook/theme.php:683 msgid "Set zoomfactor for Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:679 +#: ../../view/theme/diabook/theme.php:684 #: ../../view/theme/diabook/config.php:199 msgid "Set longitude (X) for Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:680 +#: ../../view/theme/diabook/theme.php:685 #: ../../view/theme/diabook/config.php:200 msgid "Set latitude (Y) for Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:693 -#: ../../view/theme/diabook/theme.php:745 +#: ../../view/theme/diabook/theme.php:698 +#: ../../view/theme/diabook/theme.php:750 #: ../../view/theme/diabook/config.php:204 msgid "Help or @NewHere ?" msgstr "" -#: ../../view/theme/diabook/theme.php:700 -#: ../../view/theme/diabook/theme.php:746 +#: ../../view/theme/diabook/theme.php:705 +#: ../../view/theme/diabook/theme.php:751 #: ../../view/theme/diabook/config.php:205 msgid "Connect Services" msgstr "" -#: ../../view/theme/diabook/theme.php:707 -#: ../../view/theme/diabook/theme.php:748 +#: ../../view/theme/diabook/theme.php:712 +#: ../../view/theme/diabook/theme.php:753 msgid "Last Tweets" msgstr "" -#: ../../view/theme/diabook/theme.php:710 +#: ../../view/theme/diabook/theme.php:715 #: ../../view/theme/diabook/config.php:197 msgid "Set twitter search term" msgstr "" -#: ../../view/theme/diabook/theme.php:730 -#: ../../view/theme/diabook/theme.php:731 -#: ../../view/theme/diabook/theme.php:732 -#: ../../view/theme/diabook/theme.php:733 -#: ../../view/theme/diabook/theme.php:734 #: ../../view/theme/diabook/theme.php:735 #: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:738 -#: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:288 +#: ../../view/theme/diabook/theme.php:739 +#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:741 +#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:288 msgid "don't show" msgstr "" -#: ../../view/theme/diabook/theme.php:730 -#: ../../view/theme/diabook/theme.php:731 -#: ../../view/theme/diabook/theme.php:732 -#: ../../view/theme/diabook/theme.php:733 -#: ../../view/theme/diabook/theme.php:734 #: ../../view/theme/diabook/theme.php:735 #: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:738 -#: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:287 +#: ../../view/theme/diabook/theme.php:739 +#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:741 +#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:287 msgid "show" msgstr "" -#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:745 msgid "Show/hide boxes at right-hand column:" msgstr "" @@ -6167,10 +6175,6 @@ msgstr "" msgid "Sex Addict" msgstr "" -#: ../../include/profile_selectors.php:42 -msgid "Friends" -msgstr "" - #: ../../include/profile_selectors.php:42 msgid "Friends/Benefits" msgstr "" From bdcb8d27dd23b389016268f281211af11db490b5 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 30 May 2012 15:52:17 -0700 Subject: [PATCH 16/49] transition to beta for private forums --- mod/settings.php | 1 - view/pagetypes.tpl | 2 -- 2 files changed, 3 deletions(-) diff --git a/mod/settings.php b/mod/settings.php index bbdfe1ac9..f011177fc 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -857,7 +857,6 @@ function settings_content(&$a) { t('Private forum - approved members only [Experimental]'), ($a->user['page-flags'] == PAGE_PRVGROUP)), - '$experimental' => ( (intval(get_config('system','prvgroup_testing'))) ? 'true' : ''), )); diff --git a/view/pagetypes.tpl b/view/pagetypes.tpl index 924fc47ac..796abf0ee 100644 --- a/view/pagetypes.tpl +++ b/view/pagetypes.tpl @@ -2,6 +2,4 @@ {{inc field_radio.tpl with $field=$page_soapbox }}{{endinc}} {{inc field_radio.tpl with $field=$page_community }}{{endinc}} {{inc field_radio.tpl with $field=$page_freelove }}{{endinc}} - {{ if $experimental }} {{inc field_radio.tpl with $field=$page_prvgroup }}{{endinc}} - {{ endif }} \ No newline at end of file From ebc4a05164930a425fabe2d73d5c682a9976f79d Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 30 May 2012 15:56:11 -0700 Subject: [PATCH 17/49] missing delimiter --- js/country.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/country.js b/js/country.js index 6bc2e9db1..c3add477f 100644 --- a/js/country.js +++ b/js/country.js @@ -275,7 +275,7 @@ aStates[249]="|'Adan|'Ataq|Abyan|Al Bayda'|Al Hudaydah|Al Jawf|Al Mahrah|Al Mahw aStates[250]="|Kosovo|Montenegro|Serbia|Vojvodina"; aStates[251]="|Central|Copperbelt|Eastern|Luapula|Lusaka|North-Western|Northern|Southern|Western"; aStates[252]="|Bulawayo|Harare|ManicalandMashonaland Central|Mashonaland East|Mashonaland West|Masvingo|Matabeleland North|Matabeleland South|Midlands"; -aStates[253]="Self Hosted|Private Server|Architects Of Sleep|DFRN|Distributed Friend Network|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste?|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Recolutionari.es|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other"; +aStates[253]="|Self Hosted|Private Server|Architects Of Sleep|DFRN|Distributed Friend Network|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste?|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Recolutionari.es|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other"; /* * gArCountryInfo * (0) Country name From 1180919c898155126b098d0a44de6d96feb9aef6 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 30 May 2012 16:30:51 -0700 Subject: [PATCH 18/49] some zero theming on settings page --- mod/settings.php | 15 ++++++++------- view/pagetypes.tpl | 4 ++-- view/settings.tpl | 7 +++++-- view/theme/duepuntozero/style.css | 12 +++++++++++- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/mod/settings.php b/mod/settings.php index f011177fc..92593d7a8 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -837,24 +837,24 @@ function settings_content(&$a) { $pageset_tpl = get_markup_template('pagetypes.tpl'); $pagetype = replace_macros($pageset_tpl,array( - '$page_normal' => array('page-flags', t('Normal Account'), PAGE_NORMAL, + '$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL, t('This account is a normal personal profile'), ($a->user['page-flags'] == PAGE_NORMAL)), - '$page_soapbox' => array('page-flags', t('Soapbox Account'), PAGE_SOAPBOX, + '$page_soapbox' => array('page-flags', t('Soapbox Page'), PAGE_SOAPBOX, t('Automatically approve all connection/friend requests as read-only fans'), ($a->user['page-flags'] == PAGE_SOAPBOX)), - '$page_community' => array('page-flags', t('Community/Celebrity Account'), PAGE_COMMUNITY, + '$page_community' => array('page-flags', t('Community Forum/Celebrity Account'), PAGE_COMMUNITY, t('Automatically approve all connection/friend requests as read-write fans'), ($a->user['page-flags'] == PAGE_COMMUNITY)), - '$page_freelove' => array('page-flags', t('Automatic Friend Account'), PAGE_FREELOVE, + '$page_freelove' => array('page-flags', t('Automatic Friend Page'), PAGE_FREELOVE, t('Automatically approve all connection/friend requests as friends'), ($a->user['page-flags'] == PAGE_FREELOVE)), - '$page_prvgroup' => array('page-flags', t('Private Forum'), PAGE_PRVGROUP, - t('Private forum - approved members only [Experimental]'), + '$page_prvgroup' => array('page-flags', t('Private Forum [Experimental]'), PAGE_PRVGROUP, + t('Private forum - approved members only'), ($a->user['page-flags'] == PAGE_PRVGROUP)), @@ -1025,7 +1025,8 @@ function settings_content(&$a) { '$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''), - '$h_advn' => t('Advanced Page Settings'), + '$h_advn' => t('Advanced Account/Page Type Settings'), + '$h_descadvn' => t('Change the behaviour of this account for special situations'), '$pagetype' => $pagetype, diff --git a/view/pagetypes.tpl b/view/pagetypes.tpl index 796abf0ee..c9022a1c1 100644 --- a/view/pagetypes.tpl +++ b/view/pagetypes.tpl @@ -1,5 +1,5 @@ {{inc field_radio.tpl with $field=$page_normal }}{{endinc}} - {{inc field_radio.tpl with $field=$page_soapbox }}{{endinc}} {{inc field_radio.tpl with $field=$page_community }}{{endinc}} - {{inc field_radio.tpl with $field=$page_freelove }}{{endinc}} {{inc field_radio.tpl with $field=$page_prvgroup }}{{endinc}} + {{inc field_radio.tpl with $field=$page_soapbox }}{{endinc}} + {{inc field_radio.tpl with $field=$page_freelove }}{{endinc}} diff --git a/view/settings.tpl b/view/settings.tpl index d61af072f..d7ef21210 100644 --- a/view/settings.tpl +++ b/view/settings.tpl @@ -104,15 +104,16 @@ $group_select

$h_not

+
-$activity_options +
$activity_options
{{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}} {{inc field_checkbox.tpl with $field=$post_joingroup }}{{endinc}} {{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}} -
$lbl_not
+
$lbl_not
{{inc field_intcheckbox.tpl with $field=$notify1 }}{{endinc}} @@ -124,6 +125,7 @@ $group_select {{inc field_intcheckbox.tpl with $field=$notify7 }}{{endinc}}
+
@@ -131,6 +133,7 @@ $group_select

$h_advn

+
$h_descadvn
$pagetype diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 2f792977b..5854ccc02 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -717,7 +717,17 @@ input#dfrn-url { #settings-community { float: left; } - +#settings-notifications label { + margin-left: 20px; +} +#settings-notify-desc, #settings-activity-desc { + font-weight: bold; + margin-bottom: 15px; +} +#settings-pagetype-desc { + color: #666666; + margin-bottom: 15px; +} #profile-in-dir-yes-label, #profile-in-dir-no-label, From 15c023a21809c486b057d83a30313597f35ececa Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 30 May 2012 17:22:51 -0700 Subject: [PATCH 19/49] y didn't i think of this b4? --- include/text.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/text.php b/include/text.php index d6a9ef5d3..376ac473d 100644 --- a/include/text.php +++ b/include/text.php @@ -742,6 +742,8 @@ function smilies($s, $sample = false) { ':homebrew', ':coffee', ':facepalm', + ':like', + ':dislike', '~friendika', '~friendica' @@ -778,6 +780,8 @@ function smilies($s, $sample = false) { ':homebrew', ':coffee', ':facepalm', + ':like', + ':dislike', '~friendika ~friendika', '~friendica ~friendica' ); From f0cf0ebb485432b444b1d85843385ebfda0260fd Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 30 May 2012 19:11:01 -0700 Subject: [PATCH 20/49] prevent email from leaking in feeds --- include/items.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/items.php b/include/items.php index 8324d4bdd..0ed16217f 100644 --- a/include/items.php +++ b/include/items.php @@ -180,6 +180,10 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) foreach($items as $item) { + // prevent private email from leaking. + if($item['network'] === NETWORK_MAIL) + continue; + // public feeds get html, our own nodes use bbcode if($public_feed) { From d5116689af17a6e5f941180204310a03a52fea29 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Thu, 31 May 2012 19:45:58 -0600 Subject: [PATCH 21/49] query using both `id` and `parent` --- include/diaspora.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/diaspora.php b/include/diaspora.php index 3f2cdf8e4..e32b6cb06 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -2055,7 +2055,11 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); $theiraddr = $contact['addr']; - $p = q("select guid from item where parent = %d limit 1", + // The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always + // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. + // The only item with `parent` and `id` as the parent id is the parent item. + $p = q("select guid from item where parent = %d and id = %d limit 1", + $item['parent'], $item['parent'] ); if(count($p)) @@ -2111,7 +2115,11 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { $theiraddr = $contact['addr']; - $p = q("select guid from item where parent = %d limit 1", + // The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always + // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. + // The only item with `parent` and `id` as the parent id is the parent item. + $p = q("select guid from item where parent = %d and id = %d limit 1", + $item['parent'], $item['parent'] ); if(count($p)) From 93bc29a711637c84a4ffc380078277de89af4e6d Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 31 May 2012 19:06:17 -0700 Subject: [PATCH 22/49] turn registration code into a standalone function for re-use --- boot.php | 2 +- include/diaspora.php | 8 +- include/user.php | 325 +++++++++++++++++++++++++++++++++++++++++ mod/register.php | 333 +++---------------------------------------- util/messages.po | 262 ++++++++++++++++++---------------- 5 files changed, 494 insertions(+), 436 deletions(-) create mode 100644 include/user.php diff --git a/boot.php b/boot.php index fc5b9b2a6..76cf5cbbe 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1359' ); +define ( 'FRIENDICA_VERSION', '3.0.1360' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1145 ); diff --git a/include/diaspora.php b/include/diaspora.php index e32b6cb06..f7c2c5e8e 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -2059,8 +2059,8 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. // The only item with `parent` and `id` as the parent id is the parent item. $p = q("select guid from item where parent = %d and id = %d limit 1", - $item['parent'], - $item['parent'] + intval($item['parent']), + intval($item['parent']) ); if(count($p)) $parent_guid = $p[0]['guid']; @@ -2119,8 +2119,8 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. // The only item with `parent` and `id` as the parent id is the parent item. $p = q("select guid from item where parent = %d and id = %d limit 1", - $item['parent'], - $item['parent'] + intval($item['parent']), + intval($item['parent']) ); if(count($p)) $parent_guid = $p[0]['guid']; diff --git a/include/user.php b/include/user.php new file mode 100644 index 000000000..75a91b096 --- /dev/null +++ b/include/user.php @@ -0,0 +1,325 @@ + false, 'user' => null, 'password' => '', 'message' => ''); + + $using_invites = get_config('system','invitation_only'); + $num_invites = get_config('system','number_invites'); + + + $invite_id = ((x($arr,'invite_id')) ? notags(trim($arr['invite_id'])) : ''); + $username = ((x($arr,'username')) ? notags(trim($arr['username'])) : ''); + $nickname = ((x($arr,'nickname')) ? notags(trim($arr['nickname'])) : ''); + $email = ((x($arr,'email')) ? notags(trim($arr['email'])) : ''); + $openid_url = ((x($arr,'openid_url')) ? notags(trim($arr['openid_url'])) : ''); + $photo = ((x($arr,'photo')) ? notags(trim($arr['photo'])) : ''); + $publish = ((x($arr,'profile_publish_reg') && intval($arr['profile_publish_reg'])) ? 1 : 0); + $password = ((x($arr,'password')) ? trim($arr['password']) : ''); + + $netpublish = ((strlen(get_config('system','directory_submit_url'))) ? $publish : 0); + + $tmp_str = $openid_url; + + if($using_invites) { + if(! $invite_id) { + $result['message'] .= t('An invitation is required.') . EOL; + return $result; + } + $r = q("select * from register where `hash` = '%s' limit 1", dbesc($invite_id)); + if(! results($r)) { + $result['message'] .= t('Invitation could not be verified.') . EOL; + return $result; + } + } + + if((! x($username)) || (! x($email)) || (! x($nickname))) { + if($openid_url) { + if(! validate_url($tmp_str)) { + $result['message'] .= t('Invalid OpenID url') . EOL; + return $result; + } + $_SESSION['register'] = 1; + $_SESSION['openid'] = $openid_url; + require_once('library/openid.php'); + $openid = new LightOpenID; + $openid->identity = $openid_url; + $openid->returnUrl = $a->get_baseurl() . '/openid'; + $openid->required = array('namePerson/friendly', 'contact/email', 'namePerson'); + $openid->optional = array('namePerson/first','media/image/aspect11','media/image/default'); + goaway($openid->authUrl()); + // NOTREACHED + } + + notice( t('Please enter the required information.') . EOL ); + return; + } + + if(! validate_url($tmp_str)) + $openid_url = ''; + + + $err = ''; + + // collapse multiple spaces in name + $username = preg_replace('/ +/',' ',$username); + + if(mb_strlen($username) > 48) + $result['message'] .= t('Please use a shorter name.') . EOL; + if(mb_strlen($username) < 3) + $result['message'] .= t('Name too short.') . EOL; + + // I don't really like having this rule, but it cuts down + // on the number of auto-registrations by Russian spammers + + // Using preg_match was completely unreliable, due to mixed UTF-8 regex support + // $no_utf = get_config('system','no_utf'); + // $pat = (($no_utf) ? '/^[a-zA-Z]* [a-zA-Z]*$/' : '/^\p{L}* \p{L}*$/u' ); + + // So now we are just looking for a space in the full name. + + $loose_reg = get_config('system','no_regfullname'); + if(! $loose_reg) { + $username = mb_convert_case($username,MB_CASE_TITLE,'UTF-8'); + if(! strpos($username,' ')) + $result['message'] .= t("That doesn't appear to be your full \x28First Last\x29 name.") . EOL; + } + + + if(! allowed_email($email)) + $result['message'] .= t('Your email domain is not among those allowed on this site.') . EOL; + + if((! valid_email($email)) || (! validate_email($email))) + $result['message'] .= t('Not a valid email address.') . EOL; + + // Disallow somebody creating an account using openid that uses the admin email address, + // since openid bypasses email verification. We'll allow it if there is not yet an admin account. + + if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0) && strlen($openid_url)) { + $r = q("SELECT * FROM `user` WHERE `email` = '%s' LIMIT 1", + dbesc($email) + ); + if(count($r)) + $result['message'] .= t('Cannot use that email.') . EOL; + } + + $nickname = $arr['nickname'] = strtolower($nickname); + + if(! preg_match("/^[a-z][a-z0-9\-\_]*$/",$nickname)) + $result['message'] .= t('Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.') . EOL; + $r = q("SELECT `uid` FROM `user` + WHERE `nickname` = '%s' LIMIT 1", + dbesc($nickname) + ); + if(count($r)) + $result['message'] .= t('Nickname is already registered. Please choose another.') . EOL; + + // Check deleted accounts that had this nickname. Doesn't matter to us, + // but could be a security issue for federated platforms. + + $r = q("SELECT * FROM `userd` + WHERE `username` = '%s' LIMIT 1", + dbesc($nickname) + ); + if(count($r)) + $result['message'] .= t('Nickname was once registered here and may not be re-used. Please choose another.') . EOL; + + if(strlen($result['message'])) { + return $result; + } + + $new_password = ((strlen($password)) ? $password : autoname(6) . mt_rand(100,9999)); + $new_password_encoded = hash('whirlpool',$new_password); + + $result['password'] = $new_password; + + require_once('include/crypto.php'); + + $keys = new_keypair(1024); + + if($keys === false) { + $result['message'] .= t('SERIOUS ERROR: Generation of security keys failed.') . EOL; + return $result; + } + + $prvkey = $keys['prvkey']; + $pubkey = $keys['pubkey']; + + /** + * + * Create another keypair for signing/verifying + * salmon protocol messages. We have to use a slightly + * less robust key because this won't be using openssl + * but the phpseclib. Since it is PHP interpreted code + * it is not nearly as efficient, and the larger keys + * will take several minutes each to process. + * + */ + + $sres = new_keypair(512); + $sprvkey = $sres['prvkey']; + $spubkey = $sres['pubkey']; + + $r = q("INSERT INTO `user` ( `guid`, `username`, `password`, `email`, `openid`, `nickname`, + `pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked`, `timezone` ) + VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 'UTC' )", + dbesc(generate_user_guid()), + dbesc($username), + dbesc($new_password_encoded), + dbesc($email), + dbesc($openid_url), + dbesc($nickname), + dbesc($pubkey), + dbesc($prvkey), + dbesc($spubkey), + dbesc($sprvkey), + dbesc(datetime_convert()), + intval($verified), + intval($blocked) + ); + + if($r) { + $r = q("SELECT * FROM `user` + WHERE `username` = '%s' AND `password` = '%s' LIMIT 1", + dbesc($username), + dbesc($new_password_encoded) + ); + if($r !== false && count($r)) { + $u = $r[0]; + $newuid = intval($r[0]['uid']); + } + } + else { + $result['message'] .= t('An error occurred during registration. Please try again.') . EOL ; + return $result; + } + + /** + * if somebody clicked submit twice very quickly, they could end up with two accounts + * due to race condition. Remove this one. + */ + + $r = q("SELECT `uid` FROM `user` + WHERE `nickname` = '%s' ", + dbesc($nickname) + ); + if((count($r) > 1) && $newuid) { + $result['message'] .= t('Nickname is already registered. Please choose another.') . EOL; + q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1", + intval($newuid) + ); + return $result; + } + + if(x($newuid) !== false) { + $r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` ) + VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ", + intval($newuid), + t('default'), + 1, + dbesc($username), + dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), + intval($publish), + intval($netpublish) + + ); + if($r === false) { + $result['message'] .= t('An error occurred creating your default profile. Please try again.') . EOL; + // Start fresh next time. + $r = q("DELETE FROM `user` WHERE `uid` = %d", + intval($newuid)); + return $result; + } + $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `micro`, `blocked`, `pending`, `url`, `nurl`, + `request`, `notify`, `poll`, `confirm`, `poco`, `name-date`, `uri-date`, `avatar-date`, `closeness` ) + VALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 0 ) ", + intval($newuid), + datetime_convert(), + dbesc($username), + dbesc($nickname), + dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/photo/micro/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/profile/$nickname"), + dbesc(normalise_link($a->get_baseurl() . "/profile/$nickname")), + dbesc($a->get_baseurl() . "/dfrn_request/$nickname"), + dbesc($a->get_baseurl() . "/dfrn_notify/$nickname"), + dbesc($a->get_baseurl() . "/dfrn_poll/$nickname"), + dbesc($a->get_baseurl() . "/dfrn_confirm/$nickname"), + dbesc($a->get_baseurl() . "/poco/$nickname"), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc(datetime_convert()) + ); + + // Create a group with no members. This allows somebody to use it + // right away as a default group for new contacts. + + require_once('include/group.php'); + group_add($newuid, t('Friends')); + + } + + // if we have no OpenID photo try to look up an avatar + if(! strlen($photo)) + $photo = avatar_img($email); + + // unless there is no avatar-plugin loaded + if(strlen($photo)) { + require_once('include/Photo.php'); + $photo_failure = false; + + $filename = basename($photo); + $img_str = fetch_url($photo,true); + $img = new Photo($img_str); + if($img->is_valid()) { + + $img->scaleImageSquare(175); + + $hash = photo_new_resource(); + + $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 ); + + if($r === false) + $photo_failure = true; + + $img->scaleImage(80); + + $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 5 ); + + if($r === false) + $photo_failure = true; + + $img->scaleImage(48); + + $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 6 ); + + if($r === false) + $photo_failure = true; + + if(! $photo_failure) { + q("UPDATE `photo` SET `profile` = 1 WHERE `resource-id` = '%s' ", + dbesc($hash) + ); + } + } + } + + call_hooks('register_account', $newuid); + + $result['success'] = true; + $result['user'] = $u; + return $result; + +} \ No newline at end of file diff --git a/mod/register.php b/mod/register.php index aeeec7c1f..b162f62be 100644 --- a/mod/register.php +++ b/mod/register.php @@ -43,331 +43,44 @@ function register_post(&$a) { break; } - $using_invites = get_config('system','invitation_only'); - $num_invites = get_config('system','number_invites'); + require_once('include/user.php'); + $result = create_user($_POST); - $invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : ''); - $username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : ''); - $nickname = ((x($_POST,'nickname')) ? notags(trim($_POST['nickname'])) : ''); - $email = ((x($_POST,'email')) ? notags(trim($_POST['email'])) : ''); - $openid_url = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : ''); - $photo = ((x($_POST,'photo')) ? notags(trim($_POST['photo'])) : ''); - $publish = ((x($_POST,'profile_publish_reg') && intval($_POST['profile_publish_reg'])) ? 1 : 0); - - $netpublish = ((strlen(get_config('system','directory_submit_url'))) ? $publish : 0); - - $tmp_str = $openid_url; - - if($using_invites) { - if(! $invite_id) { - notice( t('An invitation is required.') . EOL); - return; - } - $r = q("select * from register where `hash` = '%s' limit 1", dbesc($invite_id)); - if(! results($r)) { - notice( t('Invitation could not be verified.') . EOL); - return; - } - } - - if((! x($username)) || (! x($email)) || (! x($nickname))) { - if($openid_url) { - if(! validate_url($tmp_str)) { - notice( t('Invalid OpenID url') . EOL); - return; - } - $_SESSION['register'] = 1; - $_SESSION['openid'] = $openid_url; - require_once('library/openid.php'); - $openid = new LightOpenID; - $openid->identity = $openid_url; - $openid->returnUrl = $a->get_baseurl() . '/openid'; - $openid->required = array('namePerson/friendly', 'contact/email', 'namePerson'); - $openid->optional = array('namePerson/first','media/image/aspect11','media/image/default'); - goaway($openid->authUrl()); - // NOTREACHED - } - - notice( t('Please enter the required information.') . EOL ); + if(! $result['success']) { + notice($result['message']); return; } - if(! validate_url($tmp_str)) - $openid_url = ''; - - - $err = ''; - - // collapse multiple spaces in name - $username = preg_replace('/ +/',' ',$username); - - if(mb_strlen($username) > 48) - $err .= t('Please use a shorter name.') . EOL; - if(mb_strlen($username) < 3) - $err .= t('Name too short.') . EOL; - - // I don't really like having this rule, but it cuts down - // on the number of auto-registrations by Russian spammers - - // Using preg_match was completely unreliable, due to mixed UTF-8 regex support - // $no_utf = get_config('system','no_utf'); - // $pat = (($no_utf) ? '/^[a-zA-Z]* [a-zA-Z]*$/' : '/^\p{L}* \p{L}*$/u' ); - - // So now we are just looking for a space in the full name. - - $loose_reg = get_config('system','no_regfullname'); - if(! $loose_reg) { - $username = mb_convert_case($username,MB_CASE_TITLE,'UTF-8'); - if(! strpos($username,' ')) - $err .= t("That doesn't appear to be your full \x28First Last\x29 name.") . EOL; - } - - - if(! allowed_email($email)) - $err .= t('Your email domain is not among those allowed on this site.') . EOL; - - if((! valid_email($email)) || (! validate_email($email))) - $err .= t('Not a valid email address.') . EOL; - - // Disallow somebody creating an account using openid that uses the admin email address, - // since openid bypasses email verification. We'll allow it if there is not yet an admin account. - - if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0) && strlen($openid_url)) { - $r = q("SELECT * FROM `user` WHERE `email` = '%s' LIMIT 1", - dbesc($email) - ); - if(count($r)) - $err .= t('Cannot use that email.') . EOL; - } - - $nickname = $_POST['nickname'] = strtolower($nickname); - - if(! preg_match("/^[a-z][a-z0-9\-\_]*$/",$nickname)) - $err .= t('Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.') . EOL; - $r = q("SELECT `uid` FROM `user` - WHERE `nickname` = '%s' LIMIT 1", - dbesc($nickname) - ); - if(count($r)) - $err .= t('Nickname is already registered. Please choose another.') . EOL; - - // Check deleted accounts that had this nickname. Doesn't matter to us, - // but could be a security issue for federated platforms. - - $r = q("SELECT * FROM `userd` - WHERE `username` = '%s' LIMIT 1", - dbesc($nickname) - ); - if(count($r)) - $err .= t('Nickname was once registered here and may not be re-used. Please choose another.') . EOL; - - if(strlen($err)) { - notice( $err ); - return; - } - - - $new_password = autoname(6) . mt_rand(100,9999); - $new_password_encoded = hash('whirlpool',$new_password); - - require_once('include/crypto.php'); - - $result = new_keypair(1024); - - if($result === false) { - notice( t('SERIOUS ERROR: Generation of security keys failed.') . EOL); - return; - } - - $prvkey = $result['prvkey']; - $pubkey = $result['pubkey']; - - /** - * - * Create another keypair for signing/verifying - * salmon protocol messages. We have to use a slightly - * less robust key because this won't be using openssl - * but the phpseclib. Since it is PHP interpreted code - * it is not nearly as efficient, and the larger keys - * will take several minutes each to process. - * - */ - - $sres = new_keypair(512); - $sprvkey = $sres['prvkey']; - $spubkey = $sres['pubkey']; - - $r = q("INSERT INTO `user` ( `guid`, `username`, `password`, `email`, `openid`, `nickname`, - `pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked`, `timezone` ) - VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 'UTC' )", - dbesc(generate_user_guid()), - dbesc($username), - dbesc($new_password_encoded), - dbesc($email), - dbesc($openid_url), - dbesc($nickname), - dbesc($pubkey), - dbesc($prvkey), - dbesc($spubkey), - dbesc($sprvkey), - dbesc(datetime_convert()), - intval($verified), - intval($blocked) - ); - - if($r) { - $r = q("SELECT `uid` FROM `user` - WHERE `username` = '%s' AND `password` = '%s' LIMIT 1", - dbesc($username), - dbesc($new_password_encoded) - ); - if($r !== false && count($r)) - $newuid = intval($r[0]['uid']); - } - else { - notice( t('An error occurred during registration. Please try again.') . EOL ); - return; - } - - /** - * if somebody clicked submit twice very quickly, they could end up with two accounts - * due to race condition. Remove this one. - */ - - $r = q("SELECT `uid` FROM `user` - WHERE `nickname` = '%s' ", - dbesc($nickname) - ); - if((count($r) > 1) && $newuid) { - $err .= t('Nickname is already registered. Please choose another.') . EOL; - q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1", - intval($newuid) - ); - notice ($err); - return; - } - - if(x($newuid) !== false) { - $r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` ) - VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ", - intval($newuid), - 'default', - 1, - dbesc($username), - dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), - intval($publish), - intval($netpublish) - - ); - if($r === false) { - notice( t('An error occurred creating your default profile. Please try again.') . EOL ); - // Start fresh next time. - $r = q("DELETE FROM `user` WHERE `uid` = %d", - intval($newuid)); - return; - } - $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `micro`, `blocked`, `pending`, `url`, `nurl`, - `request`, `notify`, `poll`, `confirm`, `poco`, `name-date`, `uri-date`, `avatar-date`, `closeness` ) - VALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 0 ) ", - intval($newuid), - datetime_convert(), - dbesc($username), - dbesc($nickname), - dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/photo/micro/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/profile/$nickname"), - dbesc(normalise_link($a->get_baseurl() . "/profile/$nickname")), - dbesc($a->get_baseurl() . "/dfrn_request/$nickname"), - dbesc($a->get_baseurl() . "/dfrn_notify/$nickname"), - dbesc($a->get_baseurl() . "/dfrn_poll/$nickname"), - dbesc($a->get_baseurl() . "/dfrn_confirm/$nickname"), - dbesc($a->get_baseurl() . "/poco/$nickname"), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc(datetime_convert()) - ); - - // Create a group with no members. This allows somebody to use it - // right away as a default group for new contacts. - - require_once('include/group.php'); - group_add($newuid, t('Friends')); - - } - - // if we have no OpenID photo try to look up an avatar - if(! strlen($photo)) - $photo = avatar_img($email); - - // unless there is no avatar-plugin loaded - if(strlen($photo)) { - require_once('include/Photo.php'); - $photo_failure = false; - - $filename = basename($photo); - $img_str = fetch_url($photo,true); - $img = new Photo($img_str); - if($img->is_valid()) { - - $img->scaleImageSquare(175); - - $hash = photo_new_resource(); - - $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 ); - - if($r === false) - $photo_failure = true; - - $img->scaleImage(80); - - $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 5 ); - - if($r === false) - $photo_failure = true; - - $img->scaleImage(48); - - $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 6 ); - - if($r === false) - $photo_failure = true; - - if(! $photo_failure) { - q("UPDATE `photo` SET `profile` = 1 WHERE `resource-id` = '%s' ", - dbesc($hash) - ); - } - } - } - + $user = $result['user']; + if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) { - $url = $a->get_baseurl() . "/profile/$nickname"; + $url = $a->get_baseurl() . '/profile/' . $user['nickname']; proc_run('php',"include/directory.php","$url"); } + $using_invites = get_config('system','invitation_only'); + $num_invites = get_config('system','number_invites'); + $invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : ''); - call_hooks('register_account', $newuid); if( $a->config['register_policy'] == REGISTER_OPEN ) { if($using_invites && $invite_id) { q("delete * from register where hash = '%s' limit 1", dbesc($invite_id)); - set_pconfig($newuid,'system','invites_remaining',$num_invites); + set_pconfig($user['uid'],'system','invites_remaining',$num_invites); } $email_tpl = get_intltext_template("register_open_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], '$siteurl' => $a->get_baseurl(), - '$username' => $username, - '$email' => $email, - '$password' => $new_password, - '$uid' => $newuid )); + '$username' => $user['username'], + '$email' => $user['email'], + '$password' => $result['password'], + '$uid' => $user['uid'] )); - $res = mail($email, sprintf(t('Registration details for %s'), $a->config['sitename']), + $res = mail($user['email'], sprintf(t('Registration details for %s'), $a->config['sitename']), $email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n" . 'Content-type: text/plain; charset=UTF-8' . "\n" @@ -392,8 +105,8 @@ function register_post(&$a) { $r = q("INSERT INTO `register` ( `hash`, `created`, `uid`, `password`, `language` ) VALUES ( '%s', '%s', %d, '%s', '%s' ) ", dbesc($hash), dbesc(datetime_convert()), - intval($newuid), - dbesc($new_password), + intval($user['uid']), + dbesc($result['password']), dbesc($lang) ); @@ -407,17 +120,17 @@ function register_post(&$a) { if($using_invites && $invite_id) { q("delete * from register where hash = '%s' limit 1", dbesc($invite_id)); - set_pconfig($newuid,'system','invites_remaining',$num_invites); + set_pconfig($user['uid'],'system','invites_remaining',$num_invites); } $email_tpl = get_intltext_template("register_verify_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], '$siteurl' => $a->get_baseurl(), - '$username' => $username, - '$email' => $email, - '$password' => $new_password, - '$uid' => $newuid, + '$username' => $user['username'], + '$email' => $user['email'], + '$password' => $result['password'], + '$uid' => $user['uid'], '$hash' => $hash )); diff --git a/util/messages.po b/util/messages.po index eddec1e9f..69a9df6c3 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1359\n" +"Project-Id-Version: 3.0.1360\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-30 10:00-0700\n" +"POT-Creation-Date: 2012-05-31 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,7 +55,7 @@ msgstr "" #: ../../mod/profiles.php:374 ../../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 -#: ../../include/items.php:3293 ../../index.php:306 +#: ../../include/items.php:3297 ../../index.php:306 msgid "Permission denied." msgstr "" @@ -128,7 +128,7 @@ msgstr "" #: ../../mod/install.php:245 ../../mod/install.php:283 #: ../../mod/localtime.php:45 ../../mod/contacts.php:322 #: ../../mod/settings.php:555 ../../mod/settings.php:701 -#: ../../mod/settings.php:762 ../../mod/settings.php:970 +#: ../../mod/settings.php:762 ../../mod/settings.php:969 #: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:417 #: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 #: ../../mod/admin.php:1075 ../../mod/profiles.php:543 @@ -216,7 +216,7 @@ msgstr "" msgid "Edit event" msgstr "" -#: ../../mod/events.php:300 ../../include/text.php:1060 +#: ../../mod/events.php:300 ../../include/text.php:1064 msgid "link to source" msgstr "" @@ -325,25 +325,25 @@ msgid "" msgstr "" #: ../../mod/api.php:105 ../../mod/dfrn_request.php:818 -#: ../../mod/settings.php:880 ../../mod/settings.php:886 -#: ../../mod/settings.php:894 ../../mod/settings.php:898 -#: ../../mod/settings.php:903 ../../mod/settings.php:909 -#: ../../mod/settings.php:915 ../../mod/settings.php:921 -#: ../../mod/settings.php:957 ../../mod/settings.php:958 -#: ../../mod/settings.php:959 ../../mod/settings.php:960 -#: ../../mod/settings.php:961 ../../mod/register.php:516 +#: ../../mod/settings.php:879 ../../mod/settings.php:885 +#: ../../mod/settings.php:893 ../../mod/settings.php:897 +#: ../../mod/settings.php:902 ../../mod/settings.php:908 +#: ../../mod/settings.php:914 ../../mod/settings.php:920 +#: ../../mod/settings.php:956 ../../mod/settings.php:957 +#: ../../mod/settings.php:958 ../../mod/settings.php:959 +#: ../../mod/settings.php:960 ../../mod/register.php:516 #: ../../mod/profiles.php:520 msgid "Yes" msgstr "" #: ../../mod/api.php:106 ../../mod/dfrn_request.php:819 -#: ../../mod/settings.php:880 ../../mod/settings.php:886 -#: ../../mod/settings.php:894 ../../mod/settings.php:898 -#: ../../mod/settings.php:903 ../../mod/settings.php:909 -#: ../../mod/settings.php:915 ../../mod/settings.php:921 -#: ../../mod/settings.php:957 ../../mod/settings.php:958 -#: ../../mod/settings.php:959 ../../mod/settings.php:960 -#: ../../mod/settings.php:961 ../../mod/register.php:517 +#: ../../mod/settings.php:879 ../../mod/settings.php:885 +#: ../../mod/settings.php:893 ../../mod/settings.php:897 +#: ../../mod/settings.php:902 ../../mod/settings.php:908 +#: ../../mod/settings.php:914 ../../mod/settings.php:920 +#: ../../mod/settings.php:956 ../../mod/settings.php:957 +#: ../../mod/settings.php:958 ../../mod/settings.php:959 +#: ../../mod/settings.php:960 ../../mod/register.php:517 #: ../../mod/profiles.php:521 msgid "No" msgstr "" @@ -401,7 +401,7 @@ msgstr "" #: ../../mod/photos.php:583 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1311 +#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1315 #: ../../include/diaspora.php:1662 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" @@ -815,7 +815,7 @@ msgstr "" msgid "Confirm" msgstr "" -#: ../../mod/dfrn_request.php:700 ../../include/items.php:2729 +#: ../../mod/dfrn_request.php:700 ../../include/items.php:2733 msgid "[Name Withheld]" msgstr "" @@ -1713,7 +1713,7 @@ msgstr "" #: ../../addon/facebook/facebook.php:688 #: ../../addon/facebook/facebook.php:1178 #: ../../addon/public_server/public_server.php:62 -#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2738 +#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2742 #: ../../boot.php:694 msgid "Administrator" msgstr "" @@ -2032,32 +2032,32 @@ msgstr "" msgid "Don't show emoticons" msgstr "" -#: ../../mod/settings.php:840 ../../mod/admin.php:180 ../../mod/admin.php:634 -msgid "Normal Account" +#: ../../mod/settings.php:840 +msgid "Normal Account Page" msgstr "" #: ../../mod/settings.php:841 msgid "This account is a normal personal profile" msgstr "" -#: ../../mod/settings.php:844 ../../mod/admin.php:181 ../../mod/admin.php:635 -msgid "Soapbox Account" +#: ../../mod/settings.php:844 +msgid "Soapbox Page" msgstr "" #: ../../mod/settings.php:845 msgid "Automatically approve all connection/friend requests as read-only fans" msgstr "" -#: ../../mod/settings.php:848 ../../mod/admin.php:182 ../../mod/admin.php:636 -msgid "Community/Celebrity Account" +#: ../../mod/settings.php:848 +msgid "Community Forum/Celebrity Account" msgstr "" #: ../../mod/settings.php:849 msgid "Automatically approve all connection/friend requests as read-write fans" msgstr "" -#: ../../mod/settings.php:852 ../../mod/admin.php:183 ../../mod/admin.php:637 -msgid "Automatic Friend Account" +#: ../../mod/settings.php:852 +msgid "Automatic Friend Page" msgstr "" #: ../../mod/settings.php:853 @@ -2065,223 +2065,227 @@ msgid "Automatically approve all connection/friend requests as friends" msgstr "" #: ../../mod/settings.php:856 -msgid "Private Forum" +msgid "Private Forum [Experimental]" msgstr "" #: ../../mod/settings.php:857 -msgid "Private forum - approved members only [Experimental]" +msgid "Private forum - approved members only" msgstr "" -#: ../../mod/settings.php:870 +#: ../../mod/settings.php:869 msgid "OpenID:" msgstr "" -#: ../../mod/settings.php:870 +#: ../../mod/settings.php:869 msgid "(Optional) Allow this OpenID to login to this account." msgstr "" -#: ../../mod/settings.php:880 +#: ../../mod/settings.php:879 msgid "Publish your default profile in your local site directory?" msgstr "" -#: ../../mod/settings.php:886 +#: ../../mod/settings.php:885 msgid "Publish your default profile in the global social directory?" msgstr "" -#: ../../mod/settings.php:894 +#: ../../mod/settings.php:893 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "" -#: ../../mod/settings.php:898 +#: ../../mod/settings.php:897 msgid "Hide your profile details from unknown viewers?" msgstr "" -#: ../../mod/settings.php:903 +#: ../../mod/settings.php:902 msgid "Allow friends to post to your profile page?" msgstr "" -#: ../../mod/settings.php:909 +#: ../../mod/settings.php:908 msgid "Allow friends to tag your posts?" msgstr "" -#: ../../mod/settings.php:915 +#: ../../mod/settings.php:914 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "" -#: ../../mod/settings.php:921 +#: ../../mod/settings.php:920 msgid "Permit unknown people to send you private mail?" msgstr "" -#: ../../mod/settings.php:932 +#: ../../mod/settings.php:931 msgid "Profile is not published." msgstr "" -#: ../../mod/settings.php:938 ../../mod/profile_photo.php:211 +#: ../../mod/settings.php:937 ../../mod/profile_photo.php:211 msgid "or" msgstr "" -#: ../../mod/settings.php:943 +#: ../../mod/settings.php:942 msgid "Your Identity Address is" msgstr "" -#: ../../mod/settings.php:954 +#: ../../mod/settings.php:953 msgid "Automatically expire posts after this many days:" msgstr "" -#: ../../mod/settings.php:954 +#: ../../mod/settings.php:953 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "" -#: ../../mod/settings.php:955 +#: ../../mod/settings.php:954 msgid "Advanced expiration settings" msgstr "" -#: ../../mod/settings.php:956 +#: ../../mod/settings.php:955 msgid "Advanced Expiration" msgstr "" -#: ../../mod/settings.php:957 +#: ../../mod/settings.php:956 msgid "Expire posts:" msgstr "" -#: ../../mod/settings.php:958 +#: ../../mod/settings.php:957 msgid "Expire personal notes:" msgstr "" -#: ../../mod/settings.php:959 +#: ../../mod/settings.php:958 msgid "Expire starred posts:" msgstr "" -#: ../../mod/settings.php:960 +#: ../../mod/settings.php:959 msgid "Expire photos:" msgstr "" -#: ../../mod/settings.php:961 +#: ../../mod/settings.php:960 msgid "Only expire posts by others:" msgstr "" -#: ../../mod/settings.php:968 +#: ../../mod/settings.php:967 msgid "Account Settings" msgstr "" -#: ../../mod/settings.php:976 +#: ../../mod/settings.php:975 msgid "Password Settings" msgstr "" -#: ../../mod/settings.php:977 +#: ../../mod/settings.php:976 msgid "New Password:" msgstr "" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:977 msgid "Confirm:" msgstr "" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:977 msgid "Leave password fields blank unless changing" msgstr "" -#: ../../mod/settings.php:982 +#: ../../mod/settings.php:981 msgid "Basic Settings" msgstr "" -#: ../../mod/settings.php:983 ../../include/profile_advanced.php:15 +#: ../../mod/settings.php:982 ../../include/profile_advanced.php:15 msgid "Full Name:" msgstr "" -#: ../../mod/settings.php:984 +#: ../../mod/settings.php:983 msgid "Email Address:" msgstr "" -#: ../../mod/settings.php:985 +#: ../../mod/settings.php:984 msgid "Your Timezone:" msgstr "" -#: ../../mod/settings.php:986 +#: ../../mod/settings.php:985 msgid "Default Post Location:" msgstr "" -#: ../../mod/settings.php:987 +#: ../../mod/settings.php:986 msgid "Use Browser Location:" msgstr "" -#: ../../mod/settings.php:990 +#: ../../mod/settings.php:989 msgid "Security and Privacy Settings" msgstr "" -#: ../../mod/settings.php:992 +#: ../../mod/settings.php:991 msgid "Maximum Friend Requests/Day:" msgstr "" -#: ../../mod/settings.php:992 ../../mod/settings.php:1011 +#: ../../mod/settings.php:991 ../../mod/settings.php:1010 msgid "(to prevent spam abuse)" msgstr "" -#: ../../mod/settings.php:993 +#: ../../mod/settings.php:992 msgid "Default Post Permissions" msgstr "" -#: ../../mod/settings.php:994 +#: ../../mod/settings.php:993 msgid "(click to open/close)" msgstr "" -#: ../../mod/settings.php:1011 +#: ../../mod/settings.php:1010 msgid "Maximum private messages per day from unknown people:" msgstr "" -#: ../../mod/settings.php:1014 +#: ../../mod/settings.php:1013 msgid "Notification Settings" msgstr "" -#: ../../mod/settings.php:1015 +#: ../../mod/settings.php:1014 msgid "By default post a status message when:" msgstr "" -#: ../../mod/settings.php:1016 +#: ../../mod/settings.php:1015 msgid "accepting a friend request" msgstr "" -#: ../../mod/settings.php:1017 +#: ../../mod/settings.php:1016 msgid "joining a forum/community" msgstr "" -#: ../../mod/settings.php:1018 +#: ../../mod/settings.php:1017 msgid "making an interesting profile change" msgstr "" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1018 msgid "Send a notification email when:" msgstr "" -#: ../../mod/settings.php:1020 +#: ../../mod/settings.php:1019 msgid "You receive an introduction" msgstr "" -#: ../../mod/settings.php:1021 +#: ../../mod/settings.php:1020 msgid "Your introductions are confirmed" msgstr "" -#: ../../mod/settings.php:1022 +#: ../../mod/settings.php:1021 msgid "Someone writes on your profile wall" msgstr "" -#: ../../mod/settings.php:1023 +#: ../../mod/settings.php:1022 msgid "Someone writes a followup comment" msgstr "" -#: ../../mod/settings.php:1024 +#: ../../mod/settings.php:1023 msgid "You receive a private message" msgstr "" -#: ../../mod/settings.php:1025 +#: ../../mod/settings.php:1024 msgid "You receive a friend suggestion" msgstr "" -#: ../../mod/settings.php:1026 +#: ../../mod/settings.php:1025 msgid "You are tagged in a post" msgstr "" +#: ../../mod/settings.php:1028 +msgid "Advanced Account/Page Type Settings" +msgstr "" + #: ../../mod/settings.php:1029 -msgid "Advanced Page Settings" +msgid "Change the behaviour of this account for special situations" msgstr "" #: ../../mod/manage.php:90 @@ -2855,7 +2859,7 @@ msgstr "" #: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156 #: ../../mod/admin.php:697 ../../mod/admin.php:896 ../../mod/display.php:37 -#: ../../mod/display.php:142 ../../include/items.php:3175 +#: ../../mod/display.php:142 ../../include/items.php:3179 msgid "Item not found." msgstr "" @@ -3117,6 +3121,22 @@ msgstr "" msgid "User registrations waiting for confirmation" msgstr "" +#: ../../mod/admin.php:180 ../../mod/admin.php:634 +msgid "Normal Account" +msgstr "" + +#: ../../mod/admin.php:181 ../../mod/admin.php:635 +msgid "Soapbox Account" +msgstr "" + +#: ../../mod/admin.php:182 ../../mod/admin.php:636 +msgid "Community/Celebrity Account" +msgstr "" + +#: ../../mod/admin.php:183 ../../mod/admin.php:637 +msgid "Automatic Friend Account" +msgstr "" + #: ../../mod/admin.php:202 msgid "Message queues" msgstr "" @@ -4733,7 +4753,7 @@ msgid "Latest likes" msgstr "" #: ../../addon/communityhome/communityhome.php:155 -#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1309 +#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1313 #: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "" @@ -5895,7 +5915,7 @@ msgid "j F" msgstr "" #: ../../include/profile_advanced.php:30 ../../include/datetime.php:448 -#: ../../include/items.php:1419 +#: ../../include/items.php:1423 msgid "Birthday:" msgstr "" @@ -6303,127 +6323,127 @@ msgid_plural "%d Contacts" msgstr[0] "" msgstr[1] "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Monday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Tuesday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Wednesday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Thursday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Friday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Saturday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Sunday" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "January" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "February" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "March" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "April" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "May" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "June" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "July" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "August" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "September" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "October" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "November" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "December" msgstr "" -#: ../../include/text.php:920 +#: ../../include/text.php:924 msgid "bytes" msgstr "" -#: ../../include/text.php:940 ../../include/text.php:955 +#: ../../include/text.php:944 ../../include/text.php:959 msgid "remove" msgstr "" -#: ../../include/text.php:940 ../../include/text.php:955 +#: ../../include/text.php:944 ../../include/text.php:959 msgid "[remove]" msgstr "" -#: ../../include/text.php:943 +#: ../../include/text.php:947 msgid "Categories:" msgstr "" -#: ../../include/text.php:958 +#: ../../include/text.php:962 msgid "Filed under:" msgstr "" -#: ../../include/text.php:974 ../../include/text.php:986 +#: ../../include/text.php:978 ../../include/text.php:990 msgid "Click to open/close" msgstr "" -#: ../../include/text.php:1091 +#: ../../include/text.php:1095 msgid "default" msgstr "" -#: ../../include/text.php:1103 +#: ../../include/text.php:1107 msgid "Select an alternate language" msgstr "" -#: ../../include/text.php:1313 +#: ../../include/text.php:1317 msgid "activity" msgstr "" -#: ../../include/text.php:1315 +#: ../../include/text.php:1319 msgid "comment" msgstr "" -#: ../../include/text.php:1316 +#: ../../include/text.php:1320 msgid "post" msgstr "" -#: ../../include/text.php:1471 +#: ../../include/text.php:1475 msgid "Item filed" msgstr "" @@ -6958,11 +6978,11 @@ msgstr "" msgid "Please visit %s to approve or reject the suggestion." msgstr "" -#: ../../include/items.php:2736 +#: ../../include/items.php:2740 msgid "A new person is sharing with you at " msgstr "" -#: ../../include/items.php:2736 +#: ../../include/items.php:2740 msgid "You have a new follower at " msgstr "" From 1d1c50f6e33bf1411596d11527ed503b4c659d89 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 1 Jun 2012 03:31:24 -0400 Subject: [PATCH 23/49] install: fix bug #436 and small typo Function check_htaccess() don't perform check if curl is not installed. This was leading to wsod beacuse check_htaccess() uses fetch_url(). --- mod/install.php | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) mode change 100644 => 100755 mod/install.php diff --git a/mod/install.php b/mod/install.php old mode 100644 new mode 100755 index 6d6232a95..cb21a71eb --- a/mod/install.php +++ b/mod/install.php @@ -184,15 +184,16 @@ function install_content(&$a) { check_php($phpath, $checks); - check_htaccess($checks); - + check_htaccess($checks); + function check_passed($v, $c){ if ($c['required']) $v = $v && $c['status']; return $v; } $checkspassed = array_reduce($checks, "check_passed", true); - + + $tpl = get_markup_template('install_checks.tpl'); $o .= replace_macros($tpl, array( @@ -381,6 +382,7 @@ function check_funcs(&$checks) { check_add($ck_funcs, t('Apache mod_rewrite module'), true, true, ""); } } + if(! function_exists('curl_init')){ $ck_funcs[0]['status']= false; $ck_funcs[0]['help']= t('Error: libCURL PHP module required but not installed.'); @@ -421,21 +423,26 @@ function check_htconfig(&$checks) { $help .= t('At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder.').EOL; $help .= t('You can alternatively skip this procedure and perform a manual installation. Please see the file "INSTALL.txt" for instructions.').EOL; } - + check_add($checks, t('.htconfig.php is writable'), $status, false, $help); - + } function check_htaccess(&$checks) { $a = get_app(); $status = true; $help = ""; - $test = fetch_url($a->get_baseurl()."/install/testrewrite"); - if ($test!="ok") { - $status = false; - $help = t('Url rewrite in .htconfig is not working. Check your server configuration.'); - } - check_add($checks, t('Url rewrite is working'), $status, true, $help); + if (function_exists('curl_init')){ + $test = fetch_url($a->get_baseurl()."/install/testrewrite"); + if ($test!="ok") { + $status = false; + $help = t('Url rewrite in .htaccess is not working. Check your server configuration.'); + } + check_add($checks, t('Url rewrite is working'), $status, true, $help); + } else { + // cannot check modrewrite if libcurl is not installed + } + } From 7a5c85f62844c1e1cad80a8aa80571d4a967866b Mon Sep 17 00:00:00 2001 From: Thomas Willingham Date: Fri, 1 Jun 2012 23:31:07 +0100 Subject: [PATCH 24/49] [quote=somebody] was appearing as an extended spoiler tag. --- include/bbcode.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/bbcode.php b/include/bbcode.php index 85d310b75..ba4863de1 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -226,7 +226,7 @@ function bbcode($Text,$preserve_nl = false) { $endlessloop = 0; while ((strpos($Text, "[/quote]")!== false) and (strpos($Text, "[quote=") !== false) and (++$endlessloop < 20)) $Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism", - "
" . $t_wrote . "
$2
", + "
" . $t_wrote . "
$2
", $Text); // [img=widthxheight]image source[/img] From 0165d5dd2c8b12a71395cc881910974ddcbaf3fa Mon Sep 17 00:00:00 2001 From: friendica Date: Fri, 1 Jun 2012 15:42:13 -0700 Subject: [PATCH 25/49] registration issue after re-factor --- boot.php | 2 +- include/user.php | 4 +- mod/register.php | 7 +- util/messages.po | 318 +++++++++++++++++++++++------------------------ 4 files changed, 167 insertions(+), 164 deletions(-) diff --git a/boot.php b/boot.php index 76cf5cbbe..2e83d371f 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1360' ); +define ( 'FRIENDICA_VERSION', '3.0.1361' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1145 ); diff --git a/include/user.php b/include/user.php index 75a91b096..af43a2b52 100644 --- a/include/user.php +++ b/include/user.php @@ -24,9 +24,11 @@ function create_user($arr) { $email = ((x($arr,'email')) ? notags(trim($arr['email'])) : ''); $openid_url = ((x($arr,'openid_url')) ? notags(trim($arr['openid_url'])) : ''); $photo = ((x($arr,'photo')) ? notags(trim($arr['photo'])) : ''); - $publish = ((x($arr,'profile_publish_reg') && intval($arr['profile_publish_reg'])) ? 1 : 0); $password = ((x($arr,'password')) ? trim($arr['password']) : ''); + $blocked = ((x($arr,'blocked')) ? intval($arr['blocked']) : 0); + $verified = ((x($arr,'verified')) ? intval($arr['verified']) : 0); + $publish = ((x($arr,'profile_publish_reg') && intval($arr['profile_publish_reg'])) ? 1 : 0); $netpublish = ((strlen(get_config('system','directory_submit_url'))) ? $publish : 0); $tmp_str = $openid_url; diff --git a/mod/register.php b/mod/register.php index b162f62be..d52b5a6e1 100644 --- a/mod/register.php +++ b/mod/register.php @@ -45,7 +45,12 @@ function register_post(&$a) { require_once('include/user.php'); - $result = create_user($_POST); + $arr = $_POST; + + $arr['blocked'] = $blocked; + $arr['verified'] = $verified; + + $result = create_user($arr); if(! $result['success']) { notice($result['message']); diff --git a/util/messages.po b/util/messages.po index 69a9df6c3..304ba1d0e 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1360\n" +"Project-Id-Version: 3.0.1361\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-31 10:00-0700\n" +"POT-Creation-Date: 2012-06-01 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -125,7 +125,7 @@ msgstr "" #: ../../mod/events.php:428 ../../mod/photos.php:955 ../../mod/photos.php:1013 #: ../../mod/photos.php:1256 ../../mod/photos.php:1296 #: ../../mod/photos.php:1336 ../../mod/photos.php:1367 -#: ../../mod/install.php:245 ../../mod/install.php:283 +#: ../../mod/install.php:246 ../../mod/install.php:284 #: ../../mod/localtime.php:45 ../../mod/contacts.php:322 #: ../../mod/settings.php:555 ../../mod/settings.php:701 #: ../../mod/settings.php:762 ../../mod/settings.php:969 @@ -233,7 +233,7 @@ msgstr "" msgid "Previous" msgstr "" -#: ../../mod/events.php:327 ../../mod/install.php:204 +#: ../../mod/events.php:327 ../../mod/install.php:205 msgid "Next" msgstr "" @@ -331,7 +331,7 @@ msgstr "" #: ../../mod/settings.php:914 ../../mod/settings.php:920 #: ../../mod/settings.php:956 ../../mod/settings.php:957 #: ../../mod/settings.php:958 ../../mod/settings.php:959 -#: ../../mod/settings.php:960 ../../mod/register.php:516 +#: ../../mod/settings.php:960 ../../mod/register.php:229 #: ../../mod/profiles.php:520 msgid "Yes" msgstr "" @@ -343,7 +343,7 @@ msgstr "" #: ../../mod/settings.php:914 ../../mod/settings.php:920 #: ../../mod/settings.php:956 ../../mod/settings.php:957 #: ../../mod/settings.php:958 ../../mod/settings.php:959 -#: ../../mod/settings.php:960 ../../mod/register.php:517 +#: ../../mod/settings.php:960 ../../mod/register.php:230 #: ../../mod/profiles.php:521 msgid "No" msgstr "" @@ -373,13 +373,13 @@ msgid "Contact information unavailable" msgstr "" #: ../../mod/photos.php:151 ../../mod/photos.php:652 ../../mod/photos.php:1005 -#: ../../mod/photos.php:1020 ../../mod/register.php:319 -#: ../../mod/register.php:326 ../../mod/register.php:333 -#: ../../mod/profile_photo.php:60 ../../mod/profile_photo.php:67 -#: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174 -#: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261 +#: ../../mod/photos.php:1020 ../../mod/profile_photo.php:60 +#: ../../mod/profile_photo.php:67 ../../mod/profile_photo.php:74 +#: ../../mod/profile_photo.php:174 ../../mod/profile_photo.php:252 +#: ../../mod/profile_photo.php:261 #: ../../addon/communityhome/communityhome.php:111 -#: ../../view/theme/diabook/theme.php:599 +#: ../../view/theme/diabook/theme.php:599 ../../include/user.php:292 +#: ../../include/user.php:299 ../../include/user.php:306 msgid "Profile Photos" msgstr "" @@ -909,233 +909,233 @@ msgid "" "or mysql." msgstr "" -#: ../../mod/install.php:139 ../../mod/install.php:203 -#: ../../mod/install.php:482 +#: ../../mod/install.php:139 ../../mod/install.php:204 +#: ../../mod/install.php:489 msgid "Please see the file \"INSTALL.txt\"." msgstr "" -#: ../../mod/install.php:200 +#: ../../mod/install.php:201 msgid "System check" msgstr "" -#: ../../mod/install.php:205 +#: ../../mod/install.php:206 msgid "Check again" msgstr "" -#: ../../mod/install.php:224 +#: ../../mod/install.php:225 msgid "Database connection" msgstr "" -#: ../../mod/install.php:225 +#: ../../mod/install.php:226 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "" -#: ../../mod/install.php:226 +#: ../../mod/install.php:227 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "" -#: ../../mod/install.php:227 +#: ../../mod/install.php:228 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "" -#: ../../mod/install.php:231 +#: ../../mod/install.php:232 msgid "Database Server Name" msgstr "" -#: ../../mod/install.php:232 +#: ../../mod/install.php:233 msgid "Database Login Name" msgstr "" -#: ../../mod/install.php:233 +#: ../../mod/install.php:234 msgid "Database Login Password" msgstr "" -#: ../../mod/install.php:234 +#: ../../mod/install.php:235 msgid "Database Name" msgstr "" -#: ../../mod/install.php:235 ../../mod/install.php:274 +#: ../../mod/install.php:236 ../../mod/install.php:275 msgid "Site administrator email address" msgstr "" -#: ../../mod/install.php:235 ../../mod/install.php:274 +#: ../../mod/install.php:236 ../../mod/install.php:275 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "" -#: ../../mod/install.php:239 ../../mod/install.php:277 +#: ../../mod/install.php:240 ../../mod/install.php:278 msgid "Please select a default timezone for your website" msgstr "" -#: ../../mod/install.php:264 +#: ../../mod/install.php:265 msgid "Site settings" msgstr "" -#: ../../mod/install.php:317 +#: ../../mod/install.php:318 msgid "Could not find a command line version of PHP in the web server PATH." msgstr "" -#: ../../mod/install.php:318 +#: ../../mod/install.php:319 msgid "" "If you don't have a command line version of PHP installed on server, you " "will not be able to run background polling via cron. See 'Activating scheduled tasks'" msgstr "" -#: ../../mod/install.php:322 +#: ../../mod/install.php:323 msgid "PHP executable path" msgstr "" -#: ../../mod/install.php:322 +#: ../../mod/install.php:323 msgid "" "Enter full path to php executable. You can leave this blank to continue the " "installation." msgstr "" -#: ../../mod/install.php:327 +#: ../../mod/install.php:328 msgid "Command line PHP" msgstr "" -#: ../../mod/install.php:336 +#: ../../mod/install.php:337 msgid "" "The command line version of PHP on your system does not have " "\"register_argc_argv\" enabled." msgstr "" -#: ../../mod/install.php:337 +#: ../../mod/install.php:338 msgid "This is required for message delivery to work." msgstr "" -#: ../../mod/install.php:339 +#: ../../mod/install.php:340 msgid "PHP register_argc_argv" msgstr "" -#: ../../mod/install.php:360 +#: ../../mod/install.php:361 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "" -#: ../../mod/install.php:361 +#: ../../mod/install.php:362 msgid "" "If running under Windows, please see \"http://www.php.net/manual/en/openssl." "installation.php\"." msgstr "" -#: ../../mod/install.php:363 +#: ../../mod/install.php:364 msgid "Generate encryption keys" msgstr "" -#: ../../mod/install.php:370 +#: ../../mod/install.php:371 msgid "libCurl PHP module" msgstr "" -#: ../../mod/install.php:371 +#: ../../mod/install.php:372 msgid "GD graphics PHP module" msgstr "" -#: ../../mod/install.php:372 +#: ../../mod/install.php:373 msgid "OpenSSL PHP module" msgstr "" -#: ../../mod/install.php:373 +#: ../../mod/install.php:374 msgid "mysqli PHP module" msgstr "" -#: ../../mod/install.php:374 +#: ../../mod/install.php:375 msgid "mb_string PHP module" msgstr "" -#: ../../mod/install.php:379 ../../mod/install.php:381 +#: ../../mod/install.php:380 ../../mod/install.php:382 msgid "Apache mod_rewrite module" msgstr "" -#: ../../mod/install.php:379 +#: ../../mod/install.php:380 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "" -#: ../../mod/install.php:386 +#: ../../mod/install.php:388 msgid "Error: libCURL PHP module required but not installed." msgstr "" -#: ../../mod/install.php:390 +#: ../../mod/install.php:392 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "" -#: ../../mod/install.php:394 +#: ../../mod/install.php:396 msgid "Error: openssl PHP module required but not installed." msgstr "" -#: ../../mod/install.php:398 +#: ../../mod/install.php:400 msgid "Error: mysqli PHP module required but not installed." msgstr "" -#: ../../mod/install.php:402 +#: ../../mod/install.php:404 msgid "Error: mb_string PHP module required but not installed." msgstr "" -#: ../../mod/install.php:419 +#: ../../mod/install.php:421 msgid "" "The web installer needs to be able to create a file called \".htconfig.php\" " "in the top folder of your web server and it is unable to do so." msgstr "" -#: ../../mod/install.php:420 +#: ../../mod/install.php:422 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "" -#: ../../mod/install.php:421 +#: ../../mod/install.php:423 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named .htconfig.php in your Friendica top folder." msgstr "" -#: ../../mod/install.php:422 +#: ../../mod/install.php:424 msgid "" "You can alternatively skip this procedure and perform a manual installation. " "Please see the file \"INSTALL.txt\" for instructions." msgstr "" -#: ../../mod/install.php:425 +#: ../../mod/install.php:427 msgid ".htconfig.php is writable" msgstr "" -#: ../../mod/install.php:436 +#: ../../mod/install.php:439 msgid "" -"Url rewrite in .htconfig is not working. Check your server configuration." +"Url rewrite in .htaccess is not working. Check your server configuration." msgstr "" -#: ../../mod/install.php:438 +#: ../../mod/install.php:441 msgid "Url rewrite is working" msgstr "" -#: ../../mod/install.php:444 +#: ../../mod/install.php:451 msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "" -#: ../../mod/install.php:469 +#: ../../mod/install.php:476 msgid "Errors encountered creating database tables." msgstr "" -#: ../../mod/install.php:480 +#: ../../mod/install.php:487 msgid "

What next

" msgstr "" -#: ../../mod/install.php:481 +#: ../../mod/install.php:488 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the poller." msgstr "" @@ -1708,7 +1708,7 @@ msgid "Password reset requested at %s" msgstr "" #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107 -#: ../../mod/register.php:372 ../../mod/register.php:426 +#: ../../mod/register.php:85 ../../mod/register.php:139 #: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:752 #: ../../addon/facebook/facebook.php:688 #: ../../addon/facebook/facebook.php:1178 @@ -2669,163 +2669,91 @@ msgstr "" msgid "View Contacts" msgstr "" -#: ../../mod/register.php:64 -msgid "An invitation is required." -msgstr "" - -#: ../../mod/register.php:69 -msgid "Invitation could not be verified." -msgstr "" - -#: ../../mod/register.php:77 -msgid "Invalid OpenID url" -msgstr "" - -#: ../../mod/register.php:92 -msgid "Please enter the required information." -msgstr "" - -#: ../../mod/register.php:106 -msgid "Please use a shorter name." -msgstr "" - -#: ../../mod/register.php:108 -msgid "Name too short." -msgstr "" - -#: ../../mod/register.php:123 -msgid "That doesn't appear to be your full (First Last) name." -msgstr "" - -#: ../../mod/register.php:128 -msgid "Your email domain is not among those allowed on this site." -msgstr "" - -#: ../../mod/register.php:131 -msgid "Not a valid email address." -msgstr "" - -#: ../../mod/register.php:141 -msgid "Cannot use that email." -msgstr "" - -#: ../../mod/register.php:147 -msgid "" -"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and " -"must also begin with a letter." -msgstr "" - -#: ../../mod/register.php:153 ../../mod/register.php:243 -msgid "Nickname is already registered. Please choose another." -msgstr "" - -#: ../../mod/register.php:163 -msgid "" -"Nickname was once registered here and may not be re-used. Please choose " -"another." -msgstr "" - -#: ../../mod/register.php:179 -msgid "SERIOUS ERROR: Generation of security keys failed." -msgstr "" - -#: ../../mod/register.php:229 -msgid "An error occurred during registration. Please try again." -msgstr "" - -#: ../../mod/register.php:265 -msgid "An error occurred creating your default profile. Please try again." -msgstr "" - -#: ../../mod/register.php:297 ../../include/profile_selectors.php:42 -msgid "Friends" -msgstr "" - -#: ../../mod/register.php:370 ../../mod/regmod.php:52 +#: ../../mod/register.php:83 ../../mod/regmod.php:52 #, php-format msgid "Registration details for %s" msgstr "" -#: ../../mod/register.php:378 +#: ../../mod/register.php:91 msgid "" "Registration successful. Please check your email for further instructions." msgstr "" -#: ../../mod/register.php:382 +#: ../../mod/register.php:95 msgid "Failed to send email message. Here is the message that failed." msgstr "" -#: ../../mod/register.php:387 +#: ../../mod/register.php:100 msgid "Your registration can not be processed." msgstr "" -#: ../../mod/register.php:424 +#: ../../mod/register.php:137 #, php-format msgid "Registration request at %s" msgstr "" -#: ../../mod/register.php:433 +#: ../../mod/register.php:146 msgid "Your registration is pending approval by the site owner." msgstr "" -#: ../../mod/register.php:471 +#: ../../mod/register.php:184 msgid "" "This site has exceeded the number of allowed daily account registrations. " "Please try again tomorrow." msgstr "" -#: ../../mod/register.php:497 +#: ../../mod/register.php:210 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " "and clicking 'Register'." msgstr "" -#: ../../mod/register.php:498 +#: ../../mod/register.php:211 msgid "" "If you are not familiar with OpenID, please leave that field blank and fill " "in the rest of the items." msgstr "" -#: ../../mod/register.php:499 +#: ../../mod/register.php:212 msgid "Your OpenID (optional): " msgstr "" -#: ../../mod/register.php:513 +#: ../../mod/register.php:226 msgid "Include your profile in member directory?" msgstr "" -#: ../../mod/register.php:533 +#: ../../mod/register.php:246 msgid "Membership on this site is by invitation only." msgstr "" -#: ../../mod/register.php:534 +#: ../../mod/register.php:247 msgid "Your invitation ID: " msgstr "" -#: ../../mod/register.php:537 ../../mod/admin.php:418 +#: ../../mod/register.php:250 ../../mod/admin.php:418 msgid "Registration" msgstr "" -#: ../../mod/register.php:545 +#: ../../mod/register.php:258 msgid "Your Full Name (e.g. Joe Smith): " msgstr "" -#: ../../mod/register.php:546 +#: ../../mod/register.php:259 msgid "Your Email Address: " msgstr "" -#: ../../mod/register.php:547 +#: ../../mod/register.php:260 msgid "" "Choose a profile nickname. This must begin with a text character. Your " "profile address on this site will then be 'nickname@$sitename'." msgstr "" -#: ../../mod/register.php:548 +#: ../../mod/register.php:261 msgid "Choose a nickname: " msgstr "" -#: ../../mod/register.php:551 ../../include/nav.php:81 ../../boot.php:792 +#: ../../mod/register.php:264 ../../include/nav.php:81 ../../boot.php:792 msgid "Register" msgstr "" @@ -3109,10 +3037,6 @@ msgstr "" msgid "DB updates" msgstr "" -#: ../../mod/admin.php:101 -msgid "Software Update" -msgstr "" - #: ../../mod/admin.php:115 ../../mod/admin.php:1074 msgid "Logs" msgstr "" @@ -6195,6 +6119,10 @@ msgstr "" msgid "Sex Addict" msgstr "" +#: ../../include/profile_selectors.php:42 ../../include/user.php:270 +msgid "Friends" +msgstr "" + #: ../../include/profile_selectors.php:42 msgid "Friends/Benefits" msgstr "" @@ -6423,7 +6351,7 @@ msgstr "" msgid "Click to open/close" msgstr "" -#: ../../include/text.php:1095 +#: ../../include/text.php:1095 ../../include/user.php:228 msgid "default" msgstr "" @@ -6455,7 +6383,7 @@ msgstr "" msgid "Attachments:" msgstr "" -#: ../../include/diaspora.php:2160 +#: ../../include/diaspora.php:2168 #, php-format msgid "[Relayed] Comment authored by %s from network %s" msgstr "" @@ -6995,6 +6923,74 @@ msgstr "" msgid "link" msgstr "" +#: ../../include/user.php:36 +msgid "An invitation is required." +msgstr "" + +#: ../../include/user.php:41 +msgid "Invitation could not be verified." +msgstr "" + +#: ../../include/user.php:49 +msgid "Invalid OpenID url" +msgstr "" + +#: ../../include/user.php:64 +msgid "Please enter the required information." +msgstr "" + +#: ../../include/user.php:78 +msgid "Please use a shorter name." +msgstr "" + +#: ../../include/user.php:80 +msgid "Name too short." +msgstr "" + +#: ../../include/user.php:95 +msgid "That doesn't appear to be your full (First Last) name." +msgstr "" + +#: ../../include/user.php:100 +msgid "Your email domain is not among those allowed on this site." +msgstr "" + +#: ../../include/user.php:103 +msgid "Not a valid email address." +msgstr "" + +#: ../../include/user.php:113 +msgid "Cannot use that email." +msgstr "" + +#: ../../include/user.php:119 +msgid "" +"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and " +"must also begin with a letter." +msgstr "" + +#: ../../include/user.php:125 ../../include/user.php:217 +msgid "Nickname is already registered. Please choose another." +msgstr "" + +#: ../../include/user.php:135 +msgid "" +"Nickname was once registered here and may not be re-used. Please choose " +"another." +msgstr "" + +#: ../../include/user.php:151 +msgid "SERIOUS ERROR: Generation of security keys failed." +msgstr "" + +#: ../../include/user.php:203 +msgid "An error occurred during registration. Please try again." +msgstr "" + +#: ../../include/user.php:238 +msgid "An error occurred creating your default profile. Please try again." +msgstr "" + #: ../../include/security.php:21 msgid "Welcome " msgstr "" From 29bdf432f012af9b1959d5b4a33b3c45d220fd64 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 00:40:38 -0700 Subject: [PATCH 26/49] fewer "bob smith to bob smith via wall-to-wall". --- include/conversation.php | 45 ++++++++++++++++++++++++++-------------- mod/community.php | 2 +- mod/network.php | 2 +- mod/notes.php | 2 +- mod/profile.php | 2 +- mod/search.php | 2 +- 6 files changed, 35 insertions(+), 20 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index dc574ddff..5c9b604e7 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -496,7 +496,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { // On the network page, I am the owner. On the display page it will be the profile owner. // This will have been stored in $a->page_contact by our calling page. - // Put this person on the left of the wall-to-wall notice. + // Put this person as the wall owner of the wall-to-wall notice. $owner_url = zrl($a->page_contact['url']); $owner_photo = $a->page_contact['thumb']; @@ -504,23 +504,38 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $template = $wallwall; $commentww = 'ww'; } - if((! $item['wall']) && (strlen($item['owner-link'])) && (! link_compare($item['owner-link'],$item['author-link']))) { - // Could be anybody. + if((! $item['wall']) && $item['owner-link']) { - $owner_url = $item['owner-link']; - $owner_photo = $item['owner-avatar']; - $owner_name = $item['owner-name']; - $template = $wallwall; - $commentww = 'ww'; - // If it is our contact, use a friendly redirect link - if((link_compare($item['owner-link'],$item['url'])) - && ($item['network'] === NETWORK_DFRN)) { - $owner_url = $redirect_url; - $osparkle = ' sparkle'; + $owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link'])); + $alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link'])); + $owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']); + if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) { + + // The author url doesn't match the owner (typically the contact) + // and also doesn't match the contact alias. + // The name match is a hack to catch several weird cases where URLs are + // all over the park. It can be tricked, but this prevents you from + // seeing "Bob Smith to Bob Smith via Wall-to-wall" and you know darn + // well that it's the same Bob Smith. + + // But it could be somebody else with the same name. It just isn't highly likely. + + + $owner_url = $item['owner-link']; + $owner_photo = $item['owner-avatar']; + $owner_name = $item['owner-name']; + $template = $wallwall; + $commentww = 'ww'; + // If it is our contact, use a friendly redirect link + if((link_compare($item['owner-link'],$item['url'])) + && ($item['network'] === NETWORK_DFRN)) { + $owner_url = $redirect_url; + $osparkle = ' sparkle'; + } + else + $owner_url = zrl($owner_url); } - else - $owner_url = zrl($owner_url); } } diff --git a/mod/community.php b/mod/community.php index bfe5a3089..fb28f7805 100644 --- a/mod/community.php +++ b/mod/community.php @@ -63,7 +63,7 @@ function community_content(&$a, $update = 0) { } $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`, - `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, + `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`, `user`.`nickname`, `user`.`hidewall` diff --git a/mod/network.php b/mod/network.php index 7c4c1ac04..b998a3107 100644 --- a/mod/network.php +++ b/mod/network.php @@ -534,7 +534,7 @@ function network_content(&$a, $update = 0) { $parents_str = implode(', ', $parents_arr); $items = q("SELECT `item`.*, `item`.`id` AS `item_id`, - `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`, + `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, `contact`.`writable`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` FROM `item`, `contact` diff --git a/mod/notes.php b/mod/notes.php index 703c898e6..625bbd2ee 100644 --- a/mod/notes.php +++ b/mod/notes.php @@ -117,7 +117,7 @@ function notes_content(&$a,$update = false) { $parents_str = implode(', ', $parents_arr); $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, - `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`network`, `contact`.`rel`, + `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`network`, `contact`.`rel`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` diff --git a/mod/profile.php b/mod/profile.php index 69f044e89..7658a9647 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -242,7 +242,7 @@ function profile_content(&$a, $update = 0) { $parents_str = implode(', ', $parents_arr); $items = q("SELECT `item`.*, `item`.`id` AS `item_id`, - `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`network`, `contact`.`rel`, + `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`network`, `contact`.`rel`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` FROM `item`, `contact` diff --git a/mod/search.php b/mod/search.php index 466ffc4c3..320ffddce 100644 --- a/mod/search.php +++ b/mod/search.php @@ -146,7 +146,7 @@ function search_content(&$a) { } $r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`, - `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, + `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`, `user`.`nickname` From 608d424b0b94eacd99ceeeca3e2caf112abd5b48 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 02:30:26 -0700 Subject: [PATCH 27/49] "howlong" added to marital status. --- boot.php | 2 +- database.sql | 1 + include/datetime.php | 6 ++++-- include/profile_advanced.php | 3 +++ mod/profiles.php | 10 ++++++++++ update.php | 11 ++++++++++- view/profile_advanced.tpl | 2 +- view/profile_edit.tpl | 3 +++ 8 files changed, 33 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index 2e83d371f..219e3c466 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '3.0.1361' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1145 ); +define ( 'DB_UPDATE_VERSION', 1146 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/database.sql b/database.sql index 48900839c..e32bca5ac 100644 --- a/database.sql +++ b/database.sql @@ -823,6 +823,7 @@ CREATE TABLE IF NOT EXISTS `profile` ( `gender` char(32) NOT NULL, `marital` char(255) NOT NULL, `with` text NOT NULL, + `howlong` datetime NOT NULL default '0000-00-00 00:00:00', `sexual` char(255) NOT NULL, `politic` char(255) NOT NULL, `religion` char(255) NOT NULL, diff --git a/include/datetime.php b/include/datetime.php index f4dcfce62..3b1491e4d 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -244,7 +244,7 @@ function timesel($pre,$h,$m) { // Limited to range of timestamps if(! function_exists('relative_date')) { -function relative_date($posted_date) { +function relative_date($posted_date,$format = null) { $localtime = datetime_convert('UTC',date_default_timezone_get(),$posted_date); @@ -274,7 +274,9 @@ function relative_date($posted_date) { if ($d >= 1) { $r = round($d); // translators - e.g. 22 hours ago, 1 minute ago - return sprintf( t('%1$d %2$s ago'),$r, (($r == 1) ? $str[0] : $str[1])); + if(! $format) + $format = t('%1$d %2$s ago'); + return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1])); } } }} diff --git a/include/profile_advanced.php b/include/profile_advanced.php index 8c2acd8e7..2326ae716 100644 --- a/include/profile_advanced.php +++ b/include/profile_advanced.php @@ -39,6 +39,9 @@ function advanced_profile(&$a) { if($a->profile['with']) $profile['marital']['with'] = $a->profile['with']; + if(strlen($a->profile['howlong']) && $a->profile['howlong'] !== '0000-00-00 00:00:00') { + $profile['howlong'] = relative_date($a->profile['howlong'], t('for %1$d %2$s')); + } if($a->profile['sexual']) $profile['sexual'] = array( t('Sexual Preference:'), $a->profile['sexual'] ); diff --git a/mod/profiles.php b/mod/profiles.php index ca3890eb9..e32fdb33d 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -62,9 +62,15 @@ function profiles_post(&$a) { $pub_keywords = notags(trim($_POST['pub_keywords'])); $prv_keywords = notags(trim($_POST['prv_keywords'])); $marital = notags(trim($_POST['marital'])); + $howlong = notags(trim($_POST['howlong'])); $with = ((x($_POST,'with')) ? notags(trim($_POST['with'])) : ''); + if(! strlen($howlong)) + $howlong = '0000-00-00 00:00:00'; + else + $howlong = datetime_convert(date_default_timezone_get(),'UTC',$howlong); + // linkify the relationship target if applicable $withchanged = false; @@ -207,6 +213,7 @@ function profiles_post(&$a) { `country-name` = '%s', `marital` = '%s', `with` = '%s', + `howlong` = '%s', `sexual` = '%s', `homepage` = '%s', `politic` = '%s', @@ -237,6 +244,7 @@ function profiles_post(&$a) { dbesc($country_name), dbesc($marital), dbesc($with), + dbesc($howlong), dbesc($sexual), dbesc($homepage), dbesc($politic), @@ -558,6 +566,7 @@ function profiles_content(&$a) { '$lbl_marital' => t(' Marital Status:'), '$lbl_with' => t("Who: \x28if applicable\x29"), '$lbl_ex1' => t('Examples: cathy123, Cathy Williams, cathy@example.com'), + '$lbl_howlong' => t('Since [date]:'), '$lbl_sexual' => t('Sexual Preference:'), '$lbl_homepage' => t('Homepage URL:'), '$lbl_politic' => t('Political Views:'), @@ -595,6 +604,7 @@ function profiles_content(&$a) { '$gender' => gender_selector($r[0]['gender']), '$marital' => marital_selector($r[0]['marital']), '$with' => strip_tags($r[0]['with']), + '$howlong' => ($r[0]['howlong'] === '0000-00-00 00:00:00' ? '' : datetime_convert('UTC',date_default_timezone_get(),$r[0]['howlong'])), '$sexual' => sexpref_selector($r[0]['sexual']), '$about' => $r[0]['about'], '$homepage' => $r[0]['homepage'], diff --git a/update.php b/update.php index f94b89fd3..3ac9d1721 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@
$profile.marital.0
-
$profile.marital.1 {{ if $profile.marital.with }}($profile.marital.with){{ endif }}
+
$profile.marital.1{{ if $profile.marital.with }} ($profile.marital.with){{ endif }}{{ if $profile.howlong }} $profile.howlong{{ endif }}
{{ endif }} diff --git a/view/profile_edit.tpl b/view/profile_edit.tpl index 2139fcf13..077fb0aaa 100644 --- a/view/profile_edit.tpl +++ b/view/profile_edit.tpl @@ -108,6 +108,9 @@ $marital
+ + +
From 4978ee12d10a9a18f9fc26795e09515ef6db7949 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 18:05:23 -0700 Subject: [PATCH 28/49] webfinger profile linker --- boot.php | 2 +- include/bbcode.php | 7 + include/text.php | 1 + mod/acctlink.php | 16 ++ util/messages.po | 469 +++++++++++++++++++++++---------------------- 5 files changed, 264 insertions(+), 231 deletions(-) create mode 100644 mod/acctlink.php diff --git a/boot.php b/boot.php index 219e3c466..b887b07d2 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1361' ); +define ( 'FRIENDICA_VERSION', '3.0.1362' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1146 ); diff --git a/include/bbcode.php b/include/bbcode.php index ba4863de1..efc362880 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -52,6 +52,8 @@ function bb_unspacefy_and_trim($st) { function bbcode($Text,$preserve_nl = false) { + $a = get_app(); + // Hide all [noparse] contained bbtags spacefying them $Text = preg_replace_callback("/\[noparse\](.*?)\[\/noparse\]/ism", 'bb_spacefy',$Text); @@ -114,6 +116,11 @@ function bbcode($Text,$preserve_nl = false) { $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $Text); //$Text = preg_replace("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", '$2', $Text); + // we may need to restrict this further if it picks up too many strays + // link acct:user@host to a webfinger profile redirector + + $Text = preg_replace('/acct:(.*?)@(.*?)([ ,])/', 'acct:' . "$1@$2$3" . '',$Text); // Perform MAIL Search $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $Text); diff --git a/include/text.php b/include/text.php index 376ac473d..d4a4d5580 100644 --- a/include/text.php +++ b/include/text.php @@ -891,6 +891,7 @@ function prepare_body($item,$attach = false) { } else $s = prepare_text($item['body']); + $prep_arr = array('item' => $item, 'html' => $s); call_hooks('prepare_body', $prep_arr); $s = $prep_arr['html']; diff --git a/mod/acctlink.php b/mod/acctlink.php new file mode 100644 index 000000000..a2365803a --- /dev/null +++ b/mod/acctlink.php @@ -0,0 +1,16 @@ +\n" "Language-Team: LANGUAGE \n" @@ -52,7 +52,7 @@ msgstr "" #: ../../mod/message.php:96 ../../mod/allfriends.php:9 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53 #: ../../mod/follow.php:8 ../../mod/display.php:138 ../../mod/profiles.php:7 -#: ../../mod/profiles.php:374 ../../mod/delegate.php:6 +#: ../../mod/profiles.php:382 ../../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 #: ../../include/items.php:3297 ../../index.php:306 @@ -131,7 +131,7 @@ msgstr "" #: ../../mod/settings.php:762 ../../mod/settings.php:969 #: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:417 #: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 -#: ../../mod/admin.php:1075 ../../mod/profiles.php:543 +#: ../../mod/admin.php:1075 ../../mod/profiles.php:551 #: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:605 #: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93 #: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158 @@ -162,7 +162,7 @@ msgstr "" #: ../../view/theme/diabook/theme.php:757 #: ../../view/theme/diabook/config.php:190 #: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70 -#: ../../include/conversation.php:559 +#: ../../include/conversation.php:574 msgid "Submit" msgstr "" @@ -331,8 +331,8 @@ msgstr "" #: ../../mod/settings.php:914 ../../mod/settings.php:920 #: ../../mod/settings.php:956 ../../mod/settings.php:957 #: ../../mod/settings.php:958 ../../mod/settings.php:959 -#: ../../mod/settings.php:960 ../../mod/register.php:229 -#: ../../mod/profiles.php:520 +#: ../../mod/settings.php:960 ../../mod/register.php:234 +#: ../../mod/profiles.php:528 msgid "Yes" msgstr "" @@ -343,8 +343,8 @@ msgstr "" #: ../../mod/settings.php:914 ../../mod/settings.php:920 #: ../../mod/settings.php:956 ../../mod/settings.php:957 #: ../../mod/settings.php:958 ../../mod/settings.php:959 -#: ../../mod/settings.php:960 ../../mod/register.php:230 -#: ../../mod/profiles.php:521 +#: ../../mod/settings.php:960 ../../mod/register.php:235 +#: ../../mod/profiles.php:529 msgid "No" msgstr "" @@ -378,8 +378,8 @@ msgstr "" #: ../../mod/profile_photo.php:174 ../../mod/profile_photo.php:252 #: ../../mod/profile_photo.php:261 #: ../../addon/communityhome/communityhome.php:111 -#: ../../view/theme/diabook/theme.php:599 ../../include/user.php:292 -#: ../../include/user.php:299 ../../include/user.php:306 +#: ../../view/theme/diabook/theme.php:599 ../../include/user.php:294 +#: ../../include/user.php:301 ../../include/user.php:308 msgid "Profile Photos" msgstr "" @@ -527,44 +527,44 @@ msgstr "" msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "" -#: ../../mod/photos.php:1274 ../../include/conversation.php:533 +#: ../../mod/photos.php:1274 ../../include/conversation.php:548 msgid "I like this (toggle)" msgstr "" -#: ../../mod/photos.php:1275 ../../include/conversation.php:534 +#: ../../mod/photos.php:1275 ../../include/conversation.php:549 msgid "I don't like this (toggle)" msgstr "" -#: ../../mod/photos.php:1276 ../../include/conversation.php:968 +#: ../../mod/photos.php:1276 ../../include/conversation.php:983 msgid "Share" msgstr "" #: ../../mod/photos.php:1277 ../../mod/editpost.php:104 #: ../../mod/wallmessage.php:145 ../../mod/message.php:214 #: ../../mod/message.php:408 ../../include/conversation.php:365 -#: ../../include/conversation.php:710 ../../include/conversation.php:987 +#: ../../include/conversation.php:725 ../../include/conversation.php:1002 msgid "Please wait" msgstr "" #: ../../mod/photos.php:1293 ../../mod/photos.php:1333 -#: ../../mod/photos.php:1364 ../../include/conversation.php:556 +#: ../../mod/photos.php:1364 ../../include/conversation.php:571 msgid "This is you" msgstr "" #: ../../mod/photos.php:1295 ../../mod/photos.php:1335 -#: ../../mod/photos.php:1366 ../../include/conversation.php:558 +#: ../../mod/photos.php:1366 ../../include/conversation.php:573 #: ../../boot.php:514 msgid "Comment" msgstr "" #: ../../mod/photos.php:1297 ../../mod/editpost.php:125 -#: ../../include/conversation.php:568 ../../include/conversation.php:1005 +#: ../../include/conversation.php:583 ../../include/conversation.php:1020 msgid "Preview" msgstr "" #: ../../mod/photos.php:1394 ../../mod/settings.php:618 #: ../../mod/settings.php:699 ../../mod/group.php:168 ../../mod/admin.php:660 -#: ../../include/conversation.php:322 ../../include/conversation.php:588 +#: ../../include/conversation.php:322 ../../include/conversation.php:603 msgid "Delete" msgstr "" @@ -629,28 +629,28 @@ msgstr "" msgid "Edit post" msgstr "" -#: ../../mod/editpost.php:80 ../../include/conversation.php:954 +#: ../../mod/editpost.php:80 ../../include/conversation.php:969 msgid "Post to Email" msgstr "" #: ../../mod/editpost.php:95 ../../mod/settings.php:617 -#: ../../include/conversation.php:575 +#: ../../include/conversation.php:590 msgid "Edit" msgstr "" #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143 #: ../../mod/message.php:212 ../../mod/message.php:406 -#: ../../include/conversation.php:969 +#: ../../include/conversation.php:984 msgid "Upload photo" msgstr "" -#: ../../mod/editpost.php:97 ../../include/conversation.php:971 +#: ../../mod/editpost.php:97 ../../include/conversation.php:986 msgid "Attach file" msgstr "" #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144 #: ../../mod/message.php:213 ../../mod/message.php:407 -#: ../../include/conversation.php:973 +#: ../../include/conversation.php:988 msgid "Insert web link" msgstr "" @@ -666,35 +666,35 @@ msgstr "" msgid "Insert Vorbis [.ogg] audio" msgstr "" -#: ../../mod/editpost.php:102 ../../include/conversation.php:979 +#: ../../mod/editpost.php:102 ../../include/conversation.php:994 msgid "Set your location" msgstr "" -#: ../../mod/editpost.php:103 ../../include/conversation.php:981 +#: ../../mod/editpost.php:103 ../../include/conversation.php:996 msgid "Clear browser location" msgstr "" -#: ../../mod/editpost.php:105 ../../include/conversation.php:988 +#: ../../mod/editpost.php:105 ../../include/conversation.php:1003 msgid "Permission settings" msgstr "" -#: ../../mod/editpost.php:113 ../../include/conversation.php:997 +#: ../../mod/editpost.php:113 ../../include/conversation.php:1012 msgid "CC: email addresses" msgstr "" -#: ../../mod/editpost.php:114 ../../include/conversation.php:998 +#: ../../mod/editpost.php:114 ../../include/conversation.php:1013 msgid "Public post" msgstr "" -#: ../../mod/editpost.php:117 ../../include/conversation.php:984 +#: ../../mod/editpost.php:117 ../../include/conversation.php:999 msgid "Set title" msgstr "" -#: ../../mod/editpost.php:119 ../../include/conversation.php:986 +#: ../../mod/editpost.php:119 ../../include/conversation.php:1001 msgid "Categories (comma-separated list)" msgstr "" -#: ../../mod/editpost.php:120 ../../include/conversation.php:1000 +#: ../../mod/editpost.php:120 ../../include/conversation.php:1015 msgid "Example: bob@example.com, mary@example.com" msgstr "" @@ -1708,7 +1708,7 @@ msgid "Password reset requested at %s" msgstr "" #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107 -#: ../../mod/register.php:85 ../../mod/register.php:139 +#: ../../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 @@ -2439,7 +2439,7 @@ msgid "No recipient." msgstr "" #: ../../mod/wallmessage.php:124 ../../mod/message.php:171 -#: ../../include/conversation.php:922 +#: ../../include/conversation.php:937 msgid "Please enter a link URL:" msgstr "" @@ -2648,7 +2648,7 @@ msgid "Profile Visibility Editor" msgstr "" #: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128 -#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74 +#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:77 #: ../../include/nav.php:50 ../../boot.php:1505 msgid "Profile" msgstr "" @@ -2669,91 +2669,91 @@ msgstr "" msgid "View Contacts" msgstr "" -#: ../../mod/register.php:83 ../../mod/regmod.php:52 +#: ../../mod/register.php:88 ../../mod/regmod.php:52 #, php-format msgid "Registration details for %s" msgstr "" -#: ../../mod/register.php:91 +#: ../../mod/register.php:96 msgid "" "Registration successful. Please check your email for further instructions." msgstr "" -#: ../../mod/register.php:95 +#: ../../mod/register.php:100 msgid "Failed to send email message. Here is the message that failed." msgstr "" -#: ../../mod/register.php:100 +#: ../../mod/register.php:105 msgid "Your registration can not be processed." msgstr "" -#: ../../mod/register.php:137 +#: ../../mod/register.php:142 #, php-format msgid "Registration request at %s" msgstr "" -#: ../../mod/register.php:146 +#: ../../mod/register.php:151 msgid "Your registration is pending approval by the site owner." msgstr "" -#: ../../mod/register.php:184 +#: ../../mod/register.php:189 msgid "" "This site has exceeded the number of allowed daily account registrations. " "Please try again tomorrow." msgstr "" -#: ../../mod/register.php:210 +#: ../../mod/register.php:215 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " "and clicking 'Register'." msgstr "" -#: ../../mod/register.php:211 +#: ../../mod/register.php:216 msgid "" "If you are not familiar with OpenID, please leave that field blank and fill " "in the rest of the items." msgstr "" -#: ../../mod/register.php:212 +#: ../../mod/register.php:217 msgid "Your OpenID (optional): " msgstr "" -#: ../../mod/register.php:226 +#: ../../mod/register.php:231 msgid "Include your profile in member directory?" msgstr "" -#: ../../mod/register.php:246 +#: ../../mod/register.php:251 msgid "Membership on this site is by invitation only." msgstr "" -#: ../../mod/register.php:247 +#: ../../mod/register.php:252 msgid "Your invitation ID: " msgstr "" -#: ../../mod/register.php:250 ../../mod/admin.php:418 +#: ../../mod/register.php:255 ../../mod/admin.php:418 msgid "Registration" msgstr "" -#: ../../mod/register.php:258 +#: ../../mod/register.php:263 msgid "Your Full Name (e.g. Joe Smith): " msgstr "" -#: ../../mod/register.php:259 +#: ../../mod/register.php:264 msgid "Your Email Address: " msgstr "" -#: ../../mod/register.php:260 +#: ../../mod/register.php:265 msgid "" "Choose a profile nickname. This must begin with a text character. Your " "profile address on this site will then be 'nickname@$sitename'." msgstr "" -#: ../../mod/register.php:261 +#: ../../mod/register.php:266 msgid "Choose a nickname: " msgstr "" -#: ../../mod/register.php:264 ../../include/nav.php:81 ../../boot.php:792 +#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:792 msgid "Register" msgstr "" @@ -3746,8 +3746,8 @@ msgstr "" msgid "Search" msgstr "" -#: ../../mod/profiles.php:21 ../../mod/profiles.php:384 -#: ../../mod/profiles.php:498 ../../mod/dfrn_confirm.php:62 +#: ../../mod/profiles.php:21 ../../mod/profiles.php:392 +#: ../../mod/profiles.php:506 ../../mod/dfrn_confirm.php:62 msgid "Profile not found." msgstr "" @@ -3755,281 +3755,285 @@ msgstr "" msgid "Profile Name is required." msgstr "" -#: ../../mod/profiles.php:145 +#: ../../mod/profiles.php:151 msgid "Marital Status" msgstr "" -#: ../../mod/profiles.php:149 +#: ../../mod/profiles.php:155 msgid "Romantic Partner" msgstr "" -#: ../../mod/profiles.php:153 +#: ../../mod/profiles.php:159 msgid "Work/Employment" msgstr "" -#: ../../mod/profiles.php:156 +#: ../../mod/profiles.php:162 msgid "Religion" msgstr "" -#: ../../mod/profiles.php:160 +#: ../../mod/profiles.php:166 msgid "Political Views" msgstr "" -#: ../../mod/profiles.php:164 +#: ../../mod/profiles.php:170 msgid "Gender" msgstr "" -#: ../../mod/profiles.php:168 +#: ../../mod/profiles.php:174 msgid "Sexual Preference" msgstr "" -#: ../../mod/profiles.php:172 +#: ../../mod/profiles.php:178 msgid "Homepage" msgstr "" -#: ../../mod/profiles.php:176 +#: ../../mod/profiles.php:182 msgid "Interests" msgstr "" -#: ../../mod/profiles.php:180 +#: ../../mod/profiles.php:186 msgid "Address" msgstr "" -#: ../../mod/profiles.php:187 +#: ../../mod/profiles.php:193 msgid "Location" msgstr "" -#: ../../mod/profiles.php:262 +#: ../../mod/profiles.php:270 msgid "Profile updated." msgstr "" -#: ../../mod/profiles.php:329 +#: ../../mod/profiles.php:337 msgid " and " msgstr "" -#: ../../mod/profiles.php:337 +#: ../../mod/profiles.php:345 msgid "public profile" msgstr "" -#: ../../mod/profiles.php:340 +#: ../../mod/profiles.php:348 #, php-format msgid "%1$s changed %2$s to “%3$s”" msgstr "" -#: ../../mod/profiles.php:341 +#: ../../mod/profiles.php:349 #, php-format msgid " - Visit %1$s's %2$s" msgstr "" -#: ../../mod/profiles.php:344 +#: ../../mod/profiles.php:352 #, php-format msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" -#: ../../mod/profiles.php:403 +#: ../../mod/profiles.php:411 msgid "Profile deleted." msgstr "" -#: ../../mod/profiles.php:421 ../../mod/profiles.php:455 +#: ../../mod/profiles.php:429 ../../mod/profiles.php:463 msgid "Profile-" msgstr "" -#: ../../mod/profiles.php:440 ../../mod/profiles.php:482 +#: ../../mod/profiles.php:448 ../../mod/profiles.php:490 msgid "New profile created." msgstr "" -#: ../../mod/profiles.php:461 +#: ../../mod/profiles.php:469 msgid "Profile unavailable to clone." msgstr "" -#: ../../mod/profiles.php:519 +#: ../../mod/profiles.php:527 msgid "Hide your contact/friend list from viewers of this profile?" msgstr "" -#: ../../mod/profiles.php:542 +#: ../../mod/profiles.php:550 msgid "Edit Profile Details" msgstr "" -#: ../../mod/profiles.php:544 +#: ../../mod/profiles.php:552 msgid "View this profile" msgstr "" -#: ../../mod/profiles.php:545 +#: ../../mod/profiles.php:553 msgid "Create a new profile using these settings" msgstr "" -#: ../../mod/profiles.php:546 +#: ../../mod/profiles.php:554 msgid "Clone this profile" msgstr "" -#: ../../mod/profiles.php:547 +#: ../../mod/profiles.php:555 msgid "Delete this profile" msgstr "" -#: ../../mod/profiles.php:548 +#: ../../mod/profiles.php:556 msgid "Profile Name:" msgstr "" -#: ../../mod/profiles.php:549 +#: ../../mod/profiles.php:557 msgid "Your Full Name:" msgstr "" -#: ../../mod/profiles.php:550 +#: ../../mod/profiles.php:558 msgid "Title/Description:" msgstr "" -#: ../../mod/profiles.php:551 +#: ../../mod/profiles.php:559 msgid "Your Gender:" msgstr "" -#: ../../mod/profiles.php:552 +#: ../../mod/profiles.php:560 #, php-format msgid "Birthday (%s):" msgstr "" -#: ../../mod/profiles.php:553 +#: ../../mod/profiles.php:561 msgid "Street Address:" msgstr "" -#: ../../mod/profiles.php:554 +#: ../../mod/profiles.php:562 msgid "Locality/City:" msgstr "" -#: ../../mod/profiles.php:555 +#: ../../mod/profiles.php:563 msgid "Postal/Zip Code:" msgstr "" -#: ../../mod/profiles.php:556 +#: ../../mod/profiles.php:564 msgid "Country:" msgstr "" -#: ../../mod/profiles.php:557 +#: ../../mod/profiles.php:565 msgid "Region/State:" msgstr "" -#: ../../mod/profiles.php:558 +#: ../../mod/profiles.php:566 msgid " Marital Status:" msgstr "" -#: ../../mod/profiles.php:559 +#: ../../mod/profiles.php:567 msgid "Who: (if applicable)" msgstr "" -#: ../../mod/profiles.php:560 +#: ../../mod/profiles.php:568 msgid "Examples: cathy123, Cathy Williams, cathy@example.com" msgstr "" -#: ../../mod/profiles.php:561 ../../include/profile_advanced.php:43 +#: ../../mod/profiles.php:569 +msgid "Since [date]:" +msgstr "" + +#: ../../mod/profiles.php:570 ../../include/profile_advanced.php:46 msgid "Sexual Preference:" msgstr "" -#: ../../mod/profiles.php:562 +#: ../../mod/profiles.php:571 msgid "Homepage URL:" msgstr "" -#: ../../mod/profiles.php:563 ../../include/profile_advanced.php:49 +#: ../../mod/profiles.php:572 ../../include/profile_advanced.php:52 msgid "Political Views:" msgstr "" -#: ../../mod/profiles.php:564 +#: ../../mod/profiles.php:573 msgid "Religious Views:" msgstr "" -#: ../../mod/profiles.php:565 +#: ../../mod/profiles.php:574 msgid "Public Keywords:" msgstr "" -#: ../../mod/profiles.php:566 +#: ../../mod/profiles.php:575 msgid "Private Keywords:" msgstr "" -#: ../../mod/profiles.php:567 +#: ../../mod/profiles.php:576 msgid "Example: fishing photography software" msgstr "" -#: ../../mod/profiles.php:568 +#: ../../mod/profiles.php:577 msgid "(Used for suggesting potential friends, can be seen by others)" msgstr "" -#: ../../mod/profiles.php:569 +#: ../../mod/profiles.php:578 msgid "(Used for searching profiles, never shown to others)" msgstr "" -#: ../../mod/profiles.php:570 +#: ../../mod/profiles.php:579 msgid "Tell us about yourself..." msgstr "" -#: ../../mod/profiles.php:571 +#: ../../mod/profiles.php:580 msgid "Hobbies/Interests" msgstr "" -#: ../../mod/profiles.php:572 +#: ../../mod/profiles.php:581 msgid "Contact information and Social Networks" msgstr "" -#: ../../mod/profiles.php:573 +#: ../../mod/profiles.php:582 msgid "Musical interests" msgstr "" -#: ../../mod/profiles.php:574 +#: ../../mod/profiles.php:583 msgid "Books, literature" msgstr "" -#: ../../mod/profiles.php:575 +#: ../../mod/profiles.php:584 msgid "Television" msgstr "" -#: ../../mod/profiles.php:576 +#: ../../mod/profiles.php:585 msgid "Film/dance/culture/entertainment" msgstr "" -#: ../../mod/profiles.php:577 +#: ../../mod/profiles.php:586 msgid "Love/romance" msgstr "" -#: ../../mod/profiles.php:578 +#: ../../mod/profiles.php:587 msgid "Work/employment" msgstr "" -#: ../../mod/profiles.php:579 +#: ../../mod/profiles.php:588 msgid "School/education" msgstr "" -#: ../../mod/profiles.php:584 +#: ../../mod/profiles.php:593 msgid "" "This is your public profile.
It may " "be visible to anybody using the internet." msgstr "" -#: ../../mod/profiles.php:594 ../../mod/directory.php:111 +#: ../../mod/profiles.php:603 ../../mod/directory.php:111 msgid "Age: " msgstr "" -#: ../../mod/profiles.php:629 +#: ../../mod/profiles.php:639 msgid "Edit/Manage Profiles" msgstr "" -#: ../../mod/profiles.php:630 ../../boot.php:1066 +#: ../../mod/profiles.php:640 ../../boot.php:1066 msgid "Change profile photo" msgstr "" -#: ../../mod/profiles.php:631 ../../boot.php:1067 +#: ../../mod/profiles.php:641 ../../boot.php:1067 msgid "Create New Profile" msgstr "" -#: ../../mod/profiles.php:642 ../../boot.php:1077 +#: ../../mod/profiles.php:652 ../../boot.php:1077 msgid "Profile Image" msgstr "" -#: ../../mod/profiles.php:644 ../../boot.php:1080 +#: ../../mod/profiles.php:654 ../../boot.php:1080 msgid "visible to everybody" msgstr "" -#: ../../mod/profiles.php:645 ../../boot.php:1081 +#: ../../mod/profiles.php:655 ../../boot.php:1081 msgid "Edit visibility" msgstr "" -#: ../../mod/filer.php:29 ../../include/conversation.php:926 +#: ../../mod/filer.php:29 ../../include/conversation.php:941 msgid "Save to Folder:" msgstr "" @@ -5838,7 +5842,7 @@ msgstr "" msgid "j F" msgstr "" -#: ../../include/profile_advanced.php:30 ../../include/datetime.php:448 +#: ../../include/profile_advanced.php:30 ../../include/datetime.php:450 #: ../../include/items.php:1423 msgid "Birthday:" msgstr "" @@ -5851,55 +5855,60 @@ msgstr "" msgid "Status:" msgstr "" -#: ../../include/profile_advanced.php:45 ../../boot.php:1107 +#: ../../include/profile_advanced.php:43 +#, php-format +msgid "for %1$d %2$s" +msgstr "" + +#: ../../include/profile_advanced.php:48 ../../boot.php:1107 msgid "Homepage:" msgstr "" -#: ../../include/profile_advanced.php:47 +#: ../../include/profile_advanced.php:50 msgid "Tags:" msgstr "" -#: ../../include/profile_advanced.php:51 +#: ../../include/profile_advanced.php:54 msgid "Religion:" msgstr "" -#: ../../include/profile_advanced.php:53 +#: ../../include/profile_advanced.php:56 msgid "About:" msgstr "" -#: ../../include/profile_advanced.php:55 +#: ../../include/profile_advanced.php:58 msgid "Hobbies/Interests:" msgstr "" -#: ../../include/profile_advanced.php:57 +#: ../../include/profile_advanced.php:60 msgid "Contact information and Social Networks:" msgstr "" -#: ../../include/profile_advanced.php:59 +#: ../../include/profile_advanced.php:62 msgid "Musical interests:" msgstr "" -#: ../../include/profile_advanced.php:61 +#: ../../include/profile_advanced.php:64 msgid "Books, literature:" msgstr "" -#: ../../include/profile_advanced.php:63 +#: ../../include/profile_advanced.php:66 msgid "Television:" msgstr "" -#: ../../include/profile_advanced.php:65 +#: ../../include/profile_advanced.php:68 msgid "Film/dance/culture/entertainment:" msgstr "" -#: ../../include/profile_advanced.php:67 +#: ../../include/profile_advanced.php:70 msgid "Love/Romance:" msgstr "" -#: ../../include/profile_advanced.php:69 +#: ../../include/profile_advanced.php:72 msgid "Work/employment:" msgstr "" -#: ../../include/profile_advanced.php:71 +#: ../../include/profile_advanced.php:74 msgid "School/education:" msgstr "" @@ -6119,7 +6128,7 @@ msgstr "" msgid "Sex Addict" msgstr "" -#: ../../include/profile_selectors.php:42 ../../include/user.php:270 +#: ../../include/profile_selectors.php:42 ../../include/user.php:272 msgid "Friends" msgstr "" @@ -6351,7 +6360,7 @@ msgstr "" msgid "Click to open/close" msgstr "" -#: ../../include/text.php:1095 ../../include/user.php:228 +#: ../../include/text.php:1095 ../../include/user.php:230 msgid "default" msgstr "" @@ -6688,7 +6697,7 @@ msgstr "" msgid "seconds" msgstr "" -#: ../../include/datetime.php:277 +#: ../../include/datetime.php:278 #, php-format msgid "%1$d %2$s ago" msgstr "" @@ -6923,71 +6932,71 @@ msgstr "" msgid "link" msgstr "" -#: ../../include/user.php:36 +#: ../../include/user.php:38 msgid "An invitation is required." msgstr "" -#: ../../include/user.php:41 +#: ../../include/user.php:43 msgid "Invitation could not be verified." msgstr "" -#: ../../include/user.php:49 +#: ../../include/user.php:51 msgid "Invalid OpenID url" msgstr "" -#: ../../include/user.php:64 +#: ../../include/user.php:66 msgid "Please enter the required information." msgstr "" -#: ../../include/user.php:78 +#: ../../include/user.php:80 msgid "Please use a shorter name." msgstr "" -#: ../../include/user.php:80 +#: ../../include/user.php:82 msgid "Name too short." msgstr "" -#: ../../include/user.php:95 +#: ../../include/user.php:97 msgid "That doesn't appear to be your full (First Last) name." msgstr "" -#: ../../include/user.php:100 +#: ../../include/user.php:102 msgid "Your email domain is not among those allowed on this site." msgstr "" -#: ../../include/user.php:103 +#: ../../include/user.php:105 msgid "Not a valid email address." msgstr "" -#: ../../include/user.php:113 +#: ../../include/user.php:115 msgid "Cannot use that email." msgstr "" -#: ../../include/user.php:119 +#: ../../include/user.php:121 msgid "" "Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and " "must also begin with a letter." msgstr "" -#: ../../include/user.php:125 ../../include/user.php:217 +#: ../../include/user.php:127 ../../include/user.php:219 msgid "Nickname is already registered. Please choose another." msgstr "" -#: ../../include/user.php:135 +#: ../../include/user.php:137 msgid "" "Nickname was once registered here and may not be re-used. Please choose " "another." msgstr "" -#: ../../include/user.php:151 +#: ../../include/user.php:153 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "" -#: ../../include/user.php:203 +#: ../../include/user.php:205 msgid "An error occurred during registration. Please try again." msgstr "" -#: ../../include/user.php:238 +#: ../../include/user.php:240 msgid "An error occurred creating your default profile. Please try again." msgstr "" @@ -7013,30 +7022,30 @@ msgstr "" msgid "stopped following" msgstr "" -#: ../../include/Contact.php:203 ../../include/conversation.php:821 +#: ../../include/Contact.php:203 ../../include/conversation.php:836 msgid "View Status" msgstr "" -#: ../../include/Contact.php:204 ../../include/conversation.php:822 +#: ../../include/Contact.php:204 ../../include/conversation.php:837 msgid "View Profile" msgstr "" -#: ../../include/Contact.php:205 ../../include/conversation.php:823 +#: ../../include/Contact.php:205 ../../include/conversation.php:838 msgid "View Photos" msgstr "" #: ../../include/Contact.php:206 ../../include/Contact.php:219 -#: ../../include/conversation.php:824 +#: ../../include/conversation.php:839 msgid "Network Posts" msgstr "" #: ../../include/Contact.php:207 ../../include/Contact.php:219 -#: ../../include/conversation.php:825 +#: ../../include/conversation.php:840 msgid "Edit Contact" msgstr "" #: ../../include/Contact.php:208 ../../include/Contact.php:219 -#: ../../include/conversation.php:826 +#: ../../include/conversation.php:841 msgid "Send PM" msgstr "" @@ -7049,17 +7058,17 @@ msgstr "" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "" -#: ../../include/conversation.php:321 ../../include/conversation.php:587 +#: ../../include/conversation.php:321 ../../include/conversation.php:602 msgid "Select" msgstr "" -#: ../../include/conversation.php:338 ../../include/conversation.php:680 -#: ../../include/conversation.php:681 +#: ../../include/conversation.php:338 ../../include/conversation.php:695 +#: ../../include/conversation.php:696 #, php-format msgid "View %s's profile @ %s" msgstr "" -#: ../../include/conversation.php:348 ../../include/conversation.php:692 +#: ../../include/conversation.php:348 ../../include/conversation.php:707 #, php-format msgid "%s from %s" msgstr "" @@ -7075,190 +7084,190 @@ msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: ../../include/conversation.php:533 +#: ../../include/conversation.php:548 msgid "like" msgstr "" -#: ../../include/conversation.php:534 +#: ../../include/conversation.php:549 msgid "dislike" msgstr "" -#: ../../include/conversation.php:536 +#: ../../include/conversation.php:551 msgid "Share this" msgstr "" -#: ../../include/conversation.php:536 +#: ../../include/conversation.php:551 msgid "share" msgstr "" -#: ../../include/conversation.php:560 +#: ../../include/conversation.php:575 msgid "Bold" msgstr "" -#: ../../include/conversation.php:561 +#: ../../include/conversation.php:576 msgid "Italic" msgstr "" -#: ../../include/conversation.php:562 +#: ../../include/conversation.php:577 msgid "Underline" msgstr "" -#: ../../include/conversation.php:563 +#: ../../include/conversation.php:578 msgid "Quote" msgstr "" -#: ../../include/conversation.php:564 +#: ../../include/conversation.php:579 msgid "Code" msgstr "" -#: ../../include/conversation.php:565 +#: ../../include/conversation.php:580 msgid "Image" msgstr "" -#: ../../include/conversation.php:566 +#: ../../include/conversation.php:581 msgid "Link" msgstr "" -#: ../../include/conversation.php:567 +#: ../../include/conversation.php:582 msgid "Video" msgstr "" -#: ../../include/conversation.php:600 +#: ../../include/conversation.php:615 msgid "add star" msgstr "" -#: ../../include/conversation.php:601 +#: ../../include/conversation.php:616 msgid "remove star" msgstr "" -#: ../../include/conversation.php:602 +#: ../../include/conversation.php:617 msgid "toggle star status" msgstr "" -#: ../../include/conversation.php:605 +#: ../../include/conversation.php:620 msgid "starred" msgstr "" -#: ../../include/conversation.php:606 +#: ../../include/conversation.php:621 msgid "add tag" msgstr "" -#: ../../include/conversation.php:610 +#: ../../include/conversation.php:625 msgid "save to folder" msgstr "" -#: ../../include/conversation.php:682 +#: ../../include/conversation.php:697 msgid "to" msgstr "" -#: ../../include/conversation.php:683 +#: ../../include/conversation.php:698 msgid "Wall-to-Wall" msgstr "" -#: ../../include/conversation.php:684 +#: ../../include/conversation.php:699 msgid "via Wall-To-Wall:" msgstr "" -#: ../../include/conversation.php:729 +#: ../../include/conversation.php:744 msgid "Delete Selected Items" msgstr "" -#: ../../include/conversation.php:880 -#, php-format -msgid "%s likes this." -msgstr "" - -#: ../../include/conversation.php:880 -#, php-format -msgid "%s doesn't like this." -msgstr "" - -#: ../../include/conversation.php:884 -#, php-format -msgid "%2$d people like this." -msgstr "" - -#: ../../include/conversation.php:886 -#, php-format -msgid "%2$d people don't like this." -msgstr "" - -#: ../../include/conversation.php:892 -msgid "and" -msgstr "" - #: ../../include/conversation.php:895 #, php-format +msgid "%s likes this." +msgstr "" + +#: ../../include/conversation.php:895 +#, php-format +msgid "%s doesn't like this." +msgstr "" + +#: ../../include/conversation.php:899 +#, php-format +msgid "%2$d people like this." +msgstr "" + +#: ../../include/conversation.php:901 +#, php-format +msgid "%2$d people don't like this." +msgstr "" + +#: ../../include/conversation.php:907 +msgid "and" +msgstr "" + +#: ../../include/conversation.php:910 +#, php-format msgid ", and %d other people" msgstr "" -#: ../../include/conversation.php:896 +#: ../../include/conversation.php:911 #, php-format msgid "%s like this." msgstr "" -#: ../../include/conversation.php:896 +#: ../../include/conversation.php:911 #, php-format msgid "%s don't like this." msgstr "" -#: ../../include/conversation.php:921 +#: ../../include/conversation.php:936 msgid "Visible to everybody" msgstr "" -#: ../../include/conversation.php:923 +#: ../../include/conversation.php:938 msgid "Please enter a video link/URL:" msgstr "" -#: ../../include/conversation.php:924 +#: ../../include/conversation.php:939 msgid "Please enter an audio link/URL:" msgstr "" -#: ../../include/conversation.php:925 +#: ../../include/conversation.php:940 msgid "Tag term:" msgstr "" -#: ../../include/conversation.php:927 +#: ../../include/conversation.php:942 msgid "Where are you right now?" msgstr "" -#: ../../include/conversation.php:970 +#: ../../include/conversation.php:985 msgid "upload photo" msgstr "" -#: ../../include/conversation.php:972 +#: ../../include/conversation.php:987 msgid "attach file" msgstr "" -#: ../../include/conversation.php:974 +#: ../../include/conversation.php:989 msgid "web link" msgstr "" -#: ../../include/conversation.php:975 +#: ../../include/conversation.php:990 msgid "Insert video link" msgstr "" -#: ../../include/conversation.php:976 +#: ../../include/conversation.php:991 msgid "video link" msgstr "" -#: ../../include/conversation.php:977 +#: ../../include/conversation.php:992 msgid "Insert audio link" msgstr "" -#: ../../include/conversation.php:978 +#: ../../include/conversation.php:993 msgid "audio link" msgstr "" -#: ../../include/conversation.php:980 +#: ../../include/conversation.php:995 msgid "set location" msgstr "" -#: ../../include/conversation.php:982 +#: ../../include/conversation.php:997 msgid "clear location" msgstr "" -#: ../../include/conversation.php:989 +#: ../../include/conversation.php:1004 msgid "permissions" msgstr "" From 3d39e6e59489cf5013d7515a6e9deb2175d433ee Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 18:23:54 -0700 Subject: [PATCH 29/49] bug #439 - remove web port number from notification email "from" address --- include/enotify.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/enotify.php b/include/enotify.php index f7ef74fac..fe0f128b6 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -20,6 +20,9 @@ function notification($params) { $sender_name = $product; $hostname = $a->get_hostname(); + if(strpos($hostname,':')) + $hostname = substr($hostname,0,strpos($hostname,':')); + $sender_email = t('noreply') . '@' . $hostname; $additional_mail_header = ""; From d27c6de84e28f8094c695b3857dc69f103cffa08 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 20:58:20 -0700 Subject: [PATCH 30/49] add hometown to profiles --- boot.php | 2 +- database.sql | 1 + include/profile_advanced.php | 2 ++ mod/profiles.php | 5 +++++ update.php | 9 ++++++++- view/profile_advanced.tpl | 7 +++++++ view/profile_edit.tpl | 6 ++++++ view/theme/duepuntozero/style.css | 6 ++++-- 8 files changed, 34 insertions(+), 4 deletions(-) diff --git a/boot.php b/boot.php index b887b07d2..559cd8c32 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '3.0.1362' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1146 ); +define ( 'DB_UPDATE_VERSION', 1147 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/database.sql b/database.sql index e32bca5ac..b20846bad 100644 --- a/database.sql +++ b/database.sql @@ -820,6 +820,7 @@ CREATE TABLE IF NOT EXISTS `profile` ( `region` char(255) NOT NULL, `postal-code` char(32) NOT NULL, `country-name` char(255) NOT NULL, + `hometown` char(255) NOT NULL, `gender` char(32) NOT NULL, `marital` char(255) NOT NULL, `with` text NOT NULL, diff --git a/include/profile_advanced.php b/include/profile_advanced.php index 2326ae716..ffb45090b 100644 --- a/include/profile_advanced.php +++ b/include/profile_advanced.php @@ -47,6 +47,8 @@ function advanced_profile(&$a) { if($a->profile['homepage']) $profile['homepage'] = array( t('Homepage:'), linkify($a->profile['homepage']) ); + if($a->profile['hometown']) $profile['hometown'] = array( t('Hometown:'), linkify($a->profile['hometown']) ); + if($a->profile['pub_keywords']) $profile['pub_keywords'] = array( t('Tags:'), $a->profile['pub_keywords']); if($a->profile['politic']) $profile['politic'] = array( t('Political Views:'), $a->profile['politic']); diff --git a/mod/profiles.php b/mod/profiles.php index e32fdb33d..6a8ce9e1e 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -126,6 +126,7 @@ function profiles_post(&$a) { $sexual = notags(trim($_POST['sexual'])); $homepage = notags(trim($_POST['homepage'])); + $hometown = notags(trim($_POST['hometown'])); $politic = notags(trim($_POST['politic'])); $religion = notags(trim($_POST['religion'])); @@ -216,6 +217,7 @@ function profiles_post(&$a) { `howlong` = '%s', `sexual` = '%s', `homepage` = '%s', + `hometown` = '%s', `politic` = '%s', `religion` = '%s', `pub_keywords` = '%s', @@ -247,6 +249,7 @@ function profiles_post(&$a) { dbesc($howlong), dbesc($sexual), dbesc($homepage), + dbesc($hometown), dbesc($politic), dbesc($religion), dbesc($pub_keywords), @@ -569,6 +572,7 @@ function profiles_content(&$a) { '$lbl_howlong' => t('Since [date]:'), '$lbl_sexual' => t('Sexual Preference:'), '$lbl_homepage' => t('Homepage URL:'), + '$lbl_hometown' => t('Hometown:'), '$lbl_politic' => t('Political Views:'), '$lbl_religion' => t('Religious Views:'), '$lbl_pubkey' => t('Public Keywords:'), @@ -608,6 +612,7 @@ function profiles_content(&$a) { '$sexual' => sexpref_selector($r[0]['sexual']), '$about' => $r[0]['about'], '$homepage' => $r[0]['homepage'], + '$hometown' => $r[0]['hometown'], '$politic' => $r[0]['politic'], '$religion' => $r[0]['religion'], '$pub_keywords' => $r[0]['pub_keywords'], diff --git a/update.php b/update.php index 3ac9d1721..1b2098e6e 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ {{ endif }} +{{ if $profile.hometown }} +
+
$profile.hometown.0
+
$profile.hometown.1
+
+{{ endif }} + {{ if $profile.politic }}
$profile.politic.0
diff --git a/view/profile_edit.tpl b/view/profile_edit.tpl index 077fb0aaa..ad34b9956 100644 --- a/view/profile_edit.tpl +++ b/view/profile_edit.tpl @@ -97,6 +97,12 @@ $hide_friends
+
+ + +
+
+
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 5854ccc02..ab660888f 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -679,7 +679,8 @@ input#dfrn-url { #profile-edit-religion-label, #profile-edit-pubkeywords-label, #profile-edit-prvkeywords-label, -#profile-edit-homepage-label { +#profile-edit-homepage-label, +#profile-edit-hometown-label { float: left; width: 175px; } @@ -774,7 +775,7 @@ input#dfrn-url { } -#profile-edit-homepage { +#profile-edit-homepage, #profile-edit-hometown { float: left; margin-bottom: 35px; } @@ -814,6 +815,7 @@ input#dfrn-url { #profile-edit-pubkeywords-end, #profile-edit-prvkeywords-end, #profile-edit-homepage-end, +#profile-edit-hometown-end, #profile-in-dir-break, #profile-in-dir-end, #profile-in-netdir-break, From 82cf664920348ae9fcccae37e986eb97373b8cbd Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 23:12:20 -0700 Subject: [PATCH 31/49] turn "follow" into a function --- include/follow.php | 231 +++++++++++++++++++++++++++++++++++++++++++++ mod/follow.php | 222 +------------------------------------------ 2 files changed, 236 insertions(+), 217 deletions(-) create mode 100644 include/follow.php diff --git a/include/follow.php b/include/follow.php new file mode 100644 index 000000000..55b800b8b --- /dev/null +++ b/include/follow.php @@ -0,0 +1,231 @@ + false,'message' => ''); + + $a = get_app(); + + // remove ajax junk, e.g. Twitter + + $url = str_replace('/#!/','/',$url); + + if(! allowed_url($url)) { + $result['message'] = t('Disallowed profile URL.'); + return $result; + } + + if(! $url) { + $result['message'] = t('Connect URL missing.'); + return $result; + } + + $arr = array('url' => $url, 'contact' => array()); + + call_hooks('follow', $arr); + + if(x($arr['contact'],'name')) + $ret = $arr['contact']; + else + $ret = probe_url($url); + + if($ret['network'] === NETWORK_DFRN) { + if($interactive) { + if(strlen($a->path)) + $myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']); + else + $myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname()); + + goaway($ret['request'] . "&addr=$myaddr"); + + // NOTREACHED + } + } + else { + if(get_config('system','dfrn_only')) { + $result['message'] = t('This site is not configured to allow communications with other networks.') . EOL; + $result['message'] != t('No compatible communication protocols or feeds were discovered.') . EOL; + return $result; + } + } + + // This extra param just confuses things, remove it + if($ret['network'] === NETWORK_DIASPORA) + $ret['url'] = str_replace('?absolute=true','',$ret['url']); + + + // do we have enough information? + + if(! ((x($ret,'name')) && (x($ret,'poll')) && ((x($ret,'url')) || (x($ret,'addr'))))) { + $result['message'] .= t('The profile address specified does not provide adequate information.') . EOL; + if(! x($ret,'poll')) + $result['message'] .= t('No compatible communication protocols or feeds were discovered.') . EOL; + if(! x($ret,'name')) + $result['message'] .= t('An author or name was not found.') . EOL; + if(! x($ret,'url')) + $result['message'] .= t('No browser URL could be matched to this address.') . EOL; + if(strpos($url,'@') !== false) { + $result['message'] .= t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL; + $result['message'] .= t('Use mailto: in front of address to force email check.') . EOL; + } + return $result; + } + + if($ret['network'] === NETWORK_OSTATUS && get_config('system','ostatus_disabled')) { + $result['message'] .= t('The profile address specified belongs to a network which has been disabled on this site.') . EOL; + $ret['notify'] = ''; + } + + if(! $ret['notify']) { + $result['message'] .= t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL; + } + + $writeable = ((($ret['network'] === NETWORK_OSTATUS) && ($ret['notify'])) ? 1 : 0); + $hidden = (($ret['network'] === NETWORK_MAIL) ? 1 : 0); + + if($ret['network'] === NETWORK_MAIL) { + $writeable = 1; + + } + if($ret['network'] === NETWORK_DIASPORA) + $writeable = 1; + + // check if we already have a contact + // the poll url is more reliable than the profile url, as we may have + // indirect links or webfinger links + + $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `poll` = '%s' LIMIT 1", + intval($uid), + dbesc($ret['poll']) + ); + + + if(count($r)) { + // update contact + if($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) { + q("UPDATE `contact` SET `rel` = %d , `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1", + intval(CONTACT_IS_FRIEND), + intval($r[0]['id']), + intval($uid) + ); + } + } + else { + + $new_relation = (($ret['network'] === NETWORK_MAIL) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING); + if($ret['network'] === NETWORK_DIASPORA) + $new_relation = CONTACT_IS_FOLLOWER; + + // create contact record + $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`, + `writable`, `hidden`, `blocked`, `readonly`, `pending` ) + VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0 ) ", + intval($uid), + dbesc(datetime_convert()), + dbesc($ret['url']), + dbesc(normalise_link($ret['url'])), + dbesc($ret['addr']), + dbesc($ret['alias']), + dbesc($ret['batch']), + dbesc($ret['notify']), + dbesc($ret['poll']), + dbesc($ret['poco']), + dbesc($ret['name']), + dbesc($ret['nick']), + dbesc($ret['photo']), + dbesc($ret['network']), + dbesc($ret['pubkey']), + intval($new_relation), + intval($ret['priority']), + intval($writeable), + intval($hidden) + ); + } + + $r = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1", + dbesc($ret['url']), + intval($uid) + ); + + if(! count($r)) { + $result['message'] .= t('Unable to retrieve contact information.') . EOL; + return $result; + } + + $contact = $r[0]; + $contact_id = $r[0]['id']; + + + $g = q("select def_gid from user where uid = %d limit 1", + intval($uid) + ); + if($g && intval($g[0]['def_gid'])) { + require_once('include/group.php'); + group_add_member($uid,'',$contact_id,$g[0]['def_gid']); + } + + require_once("Photo.php"); + + $photos = import_profile_photo($ret['photo'],$uid,$contact_id); + + $r = q("UPDATE `contact` SET `photo` = '%s', + `thumb` = '%s', + `micro` = '%s', + `name-date` = '%s', + `uri-date` = '%s', + `avatar-date` = '%s' + WHERE `id` = %d LIMIT 1 + ", + dbesc($photos[0]), + dbesc($photos[1]), + dbesc($photos[2]), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + intval($contact_id) + ); + + + // pull feed and consume it, which should subscribe to the hub. + + proc_run('php',"include/poller.php","$contact_id"); + + // create a follow slap + + $tpl = get_markup_template('follow_slap.tpl'); + $slap = replace_macros($tpl, array( + '$name' => $a->user['username'], + '$profile_page' => $a->get_baseurl() . '/profile/' . $a->user['nickname'], + '$photo' => $a->contact['photo'], + '$thumb' => $a->contact['thumb'], + '$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME), + '$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':follow:' . random_string(), + '$title' => '', + '$type' => 'text', + '$content' => t('following'), + '$nick' => $a->user['nickname'], + '$verb' => ACTIVITY_FOLLOW, + '$ostat_follow' => '' + )); + + $r = q("SELECT `contact`.*, `user`.* FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` + WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", + intval($uid) + ); + + if(count($r)) { + if(($contact['network'] == NETWORK_OSTATUS) && (strlen($contact['notify']))) { + require_once('include/salmon.php'); + slapper($r[0],$contact['notify'],$slap); + } + if($contact['network'] == NETWORK_DIASPORA) { + require_once('include/diaspora.php'); + $ret = diaspora_share($a->user,$contact); + logger('mod_follow: diaspora_share returns: ' . $ret); + } + } + + $result['success'] = true; + return $result; +} diff --git a/mod/follow.php b/mod/follow.php index cdecd5f2a..9186b90ef 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -1,6 +1,7 @@ $url, 'contact' => array()); - - call_hooks('follow', $arr); - - if(x($arr['contact'],'name')) - $ret = $arr['contact']; - else - $ret = probe_url($url); - - if($ret['network'] === NETWORK_DFRN) { - if(strlen($a->path)) - $myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']); - else - $myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname()); - - goaway($ret['request'] . "&addr=$myaddr"); - - // NOTREACHED - } - else { - if(get_config('system','dfrn_only')) { - notice( t('This site is not configured to allow communications with other networks.') . EOL); - notice( t('No compatible communication protocols or feeds were discovered.') . EOL); - goaway($return_url); - } - } - - // This extra param just confuses things, remove it - if($ret['network'] === NETWORK_DIASPORA) - $ret['url'] = str_replace('?absolute=true','',$ret['url']); - - - // do we have enough information? - - if(! ((x($ret,'name')) && (x($ret,'poll')) && ((x($ret,'url')) || (x($ret,'addr'))))) { - notice( t('The profile address specified does not provide adequate information.') . EOL); - if(! x($ret,'poll')) - notice( t('No compatible communication protocols or feeds were discovered.') . EOL); - if(! x($ret,'name')) - notice( t('An author or name was not found.') . EOL); - if(! x($ret,'url')) - notice( t('No browser URL could be matched to this address.') . EOL); - if(strpos($url,'@') !== false) { - notice( t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL); - notice( t('Use mailto: in front of address to force email check.') . EOL); - } - goaway($return_url); - } - - if($ret['network'] === NETWORK_OSTATUS && get_config('system','ostatus_disabled')) { - notice( t('The profile address specified belongs to a network which has been disabled on this site.') . EOL); - $ret['notify'] = ''; - } - - if(! $ret['notify']) { - notice( t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL); - } - - $writeable = ((($ret['network'] === NETWORK_OSTATUS) && ($ret['notify'])) ? 1 : 0); - $hidden = (($ret['network'] === NETWORK_MAIL) ? 1 : 0); - - if($ret['network'] === NETWORK_MAIL) { - $writeable = 1; - - } - if($ret['network'] === NETWORK_DIASPORA) - $writeable = 1; - - // check if we already have a contact - // the poll url is more reliable than the profile url, as we may have - // indirect links or webfinger links - - $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `poll` = '%s' LIMIT 1", - intval($uid), - dbesc($ret['poll']) - ); - - - if(count($r)) { - // update contact - if($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) { - q("UPDATE `contact` SET `rel` = %d , `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval(CONTACT_IS_FRIEND), - intval($r[0]['id']), - intval($uid) - ); - } - } - else { - - $new_relation = (($ret['network'] === NETWORK_MAIL) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING); - if($ret['network'] === NETWORK_DIASPORA) - $new_relation = CONTACT_IS_FOLLOWER; - - // create contact record - $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`, - `writable`, `hidden`, `blocked`, `readonly`, `pending` ) - VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0 ) ", - intval($uid), - dbesc(datetime_convert()), - dbesc($ret['url']), - dbesc(normalise_link($ret['url'])), - dbesc($ret['addr']), - dbesc($ret['alias']), - dbesc($ret['batch']), - dbesc($ret['notify']), - dbesc($ret['poll']), - dbesc($ret['poco']), - dbesc($ret['name']), - dbesc($ret['nick']), - dbesc($ret['photo']), - dbesc($ret['network']), - dbesc($ret['pubkey']), - intval($new_relation), - intval($ret['priority']), - intval($writeable), - intval($hidden) - ); - } - - $r = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1", - dbesc($ret['url']), - intval($uid) - ); - - if(! count($r)) { - notice( t('Unable to retrieve contact information.') . EOL); - goaway($return_url); - // NOTREACHED - } - - $contact = $r[0]; - $contact_id = $r[0]['id']; - - - $g = q("select def_gid from user where uid = %d limit 1", - intval($uid) - ); - if($g && intval($g[0]['def_gid'])) { - require_once('include/group.php'); - group_add_member($uid,'',$contact_id,$g[0]['def_gid']); - } - - require_once("Photo.php"); - - $photos = import_profile_photo($ret['photo'],$uid,$contact_id); - - $r = q("UPDATE `contact` SET `photo` = '%s', - `thumb` = '%s', - `micro` = '%s', - `name-date` = '%s', - `uri-date` = '%s', - `avatar-date` = '%s' - WHERE `id` = %d LIMIT 1 - ", - dbesc($photos[0]), - dbesc($photos[1]), - dbesc($photos[2]), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - intval($contact_id) - ); - - - // pull feed and consume it, which should subscribe to the hub. - - proc_run('php',"include/poller.php","$contact_id"); - - // create a follow slap - - $tpl = get_markup_template('follow_slap.tpl'); - $slap = replace_macros($tpl, array( - '$name' => $a->user['username'], - '$profile_page' => $a->get_baseurl() . '/profile/' . $a->user['nickname'], - '$photo' => $a->contact['photo'], - '$thumb' => $a->contact['thumb'], - '$published' => datetime_convert('UTC','UTC', 'now', ATOM_TIME), - '$item_id' => 'urn:X-dfrn:' . $a->get_hostname() . ':follow:' . random_string(), - '$title' => '', - '$type' => 'text', - '$content' => t('following'), - '$nick' => $a->user['nickname'], - '$verb' => ACTIVITY_FOLLOW, - '$ostat_follow' => '' - )); - - $r = q("SELECT `contact`.*, `user`.* FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid` - WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1", - intval($uid) - ); - - if(count($r)) { - if(($contact['network'] == NETWORK_OSTATUS) && (strlen($contact['notify']))) { - require_once('include/salmon.php'); - slapper($r[0],$contact['notify'],$slap); - } - if($contact['network'] == NETWORK_DIASPORA) { - require_once('include/diaspora.php'); - $ret = diaspora_share($a->user,$contact); - logger('mod_follow: diaspora_share returns: ' . $ret); - } } if(strstr($return_url,'contacts')) From ee42c3be9474e4f193a211e8ba5f843d7c5d1448 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 23:17:49 -0700 Subject: [PATCH 32/49] cleanup --- mod/follow.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mod/follow.php b/mod/follow.php index 9186b90ef..5e48174c9 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -12,7 +12,7 @@ function follow_init(&$a) { } $uid = local_user(); - $url = $orig_url = notags(trim($_REQUEST['url'])); + $url = notags(trim($_REQUEST['url'])); $return_url = $_SESSION['return_url']; @@ -24,6 +24,8 @@ function follow_init(&$a) { goaway($return_url); } + info( t('Contact added') . EOL); + if(strstr($return_url,'contacts')) goaway($a->get_baseurl() . '/contacts/' . $contact_id); From 97576e3e33c1581ececc56588ae526d2990b092f Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 2 Jun 2012 23:22:02 -0700 Subject: [PATCH 33/49] doco --- include/follow.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/follow.php b/include/follow.php index 55b800b8b..d92d7577d 100644 --- a/include/follow.php +++ b/include/follow.php @@ -1,6 +1,18 @@ false,'message' => ''); From daa4f5213f726b22846859f2f12d06889e9bdc9b Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 3 Jun 2012 01:53:11 -0700 Subject: [PATCH 34/49] zrl's when visiting public photos at the source site --- include/conversation.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/conversation.php b/include/conversation.php index 5c9b604e7..a9c6287a9 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -173,6 +173,12 @@ function localize_item(&$item){ $item['body'] = str_replace($mtch[0],'@[url=' . zrl($mtch[1]). ']',$item['body']); } } + 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']); + } + } } From 6fbeafc8433abc0212dff3af1cab9ea51381625f Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 3 Jun 2012 17:16:29 +0200 Subject: [PATCH 35/49] prv messages: make submit translateable --- mod/message.php | 3 ++- view/prv_message.tpl | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mod/message.php b/mod/message.php index 71f83b47a..fb2241985 100644 --- a/mod/message.php +++ b/mod/message.php @@ -211,7 +211,8 @@ function message_content(&$a) { '$parent' => '', '$upload' => t('Upload photo'), '$insert' => t('Insert web link'), - '$wait' => t('Please wait') + '$wait' => t('Please wait'), + '$submit' => t('Submit') )); return $o; diff --git a/view/prv_message.tpl b/view/prv_message.tpl index 2ce07ce6f..ecfef95d6 100644 --- a/view/prv_message.tpl +++ b/view/prv_message.tpl @@ -17,7 +17,7 @@ $select
- +
From 283524d990a5c8a3aa6118149bbd4cde78d74d15 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 3 Jun 2012 17:33:28 +0200 Subject: [PATCH 36/49] DE: update to the strings --- view/de/messages.po | 1655 ++++++++++++++++++++++--------------------- view/de/strings.php | 99 +-- 2 files changed, 909 insertions(+), 845 deletions(-) diff --git a/view/de/messages.po b/view/de/messages.po index ae78afc29..5bc060237 100644 --- a/view/de/messages.po +++ b/view/de/messages.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n" -"POT-Creation-Date: 2012-05-23 10:00-0700\n" -"PO-Revision-Date: 2012-05-24 08:21+0000\n" +"POT-Creation-Date: 2012-06-02 10:00-0700\n" +"PO-Revision-Date: 2012-06-03 15:30+0000\n" "Last-Translator: bavatar \n" "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n" "MIME-Version: 1.0\n" @@ -49,10 +49,10 @@ msgstr "Konnte den Kontakt nicht aktualisieren." #: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44 #: ../../mod/fsuggest.php:78 ../../mod/events.php:138 ../../mod/api.php:26 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:920 -#: ../../mod/editpost.php:10 ../../mod/install.php:171 +#: ../../mod/editpost.php:10 ../../mod/install.php:151 #: ../../mod/notifications.php:66 ../../mod/contacts.php:125 -#: ../../mod/settings.php:104 ../../mod/settings.php:535 -#: ../../mod/settings.php:540 ../../mod/manage.php:86 ../../mod/network.php:6 +#: ../../mod/settings.php:106 ../../mod/settings.php:537 +#: ../../mod/settings.php:542 ../../mod/manage.php:86 ../../mod/network.php:6 #: ../../mod/notes.php:20 ../../mod/wallmessage.php:9 #: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79 #: ../../mod/wallmessage.php:103 ../../mod/attach.php:33 @@ -64,10 +64,10 @@ msgstr "Konnte den Kontakt nicht aktualisieren." #: ../../mod/message.php:96 ../../mod/allfriends.php:9 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53 #: ../../mod/follow.php:8 ../../mod/display.php:138 ../../mod/profiles.php:7 -#: ../../mod/profiles.php:365 ../../mod/delegate.php:6 +#: ../../mod/profiles.php:382 ../../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 -#: ../../include/items.php:3214 ../../index.php:306 +#: ../../include/items.php:3297 ../../index.php:306 msgid "Permission denied." msgstr "Zugriff verweigert." @@ -96,8 +96,8 @@ msgstr "Bitte nutze den Zurück-Button deines Browsers jetzt, w msgid "Return to contact editor" msgstr "Zurück zum Kontakteditor" -#: ../../mod/crepair.php:148 ../../mod/settings.php:555 -#: ../../mod/settings.php:581 ../../mod/admin.php:656 ../../mod/admin.php:665 +#: ../../mod/crepair.php:148 ../../mod/settings.php:557 +#: ../../mod/settings.php:583 ../../mod/admin.php:656 ../../mod/admin.php:665 msgid "Name" msgstr "Name" @@ -137,13 +137,13 @@ msgstr "Neues Foto von dieser URL" #: ../../mod/events.php:428 ../../mod/photos.php:955 ../../mod/photos.php:1013 #: ../../mod/photos.php:1256 ../../mod/photos.php:1296 #: ../../mod/photos.php:1336 ../../mod/photos.php:1367 -#: ../../mod/install.php:251 ../../mod/install.php:289 +#: ../../mod/install.php:246 ../../mod/install.php:284 #: ../../mod/localtime.php:45 ../../mod/contacts.php:322 -#: ../../mod/settings.php:553 ../../mod/settings.php:699 -#: ../../mod/settings.php:760 ../../mod/settings.php:964 +#: ../../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/admin.php:417 #: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 -#: ../../mod/admin.php:1075 ../../mod/profiles.php:534 +#: ../../mod/admin.php:1075 ../../mod/profiles.php:551 #: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:605 #: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93 #: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158 @@ -171,10 +171,10 @@ msgstr "Neues Foto von dieser URL" #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102 #: ../../addon/posterous/posterous.php:103 #: ../../view/theme/cleanzero/config.php:80 -#: ../../view/theme/diabook/theme.php:752 +#: ../../view/theme/diabook/theme.php:757 #: ../../view/theme/diabook/config.php:190 #: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70 -#: ../../include/conversation.php:559 +#: ../../include/conversation.php:574 msgid "Submit" msgstr "Senden" @@ -228,12 +228,12 @@ msgstr "l, F j" msgid "Edit event" msgstr "Veranstaltung bearbeiten" -#: ../../mod/events.php:300 ../../include/text.php:1060 +#: ../../mod/events.php:300 ../../include/text.php:1064 msgid "link to source" msgstr "Link zum Originalbeitrag" -#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:126 -#: ../../include/nav.php:52 ../../boot.php:1523 +#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:131 +#: ../../include/nav.php:52 ../../boot.php:1520 msgid "Events" msgstr "Veranstaltungen" @@ -245,7 +245,7 @@ msgstr "Neue Veranstaltung erstellen" msgid "Previous" msgstr "Vorherige" -#: ../../mod/events.php:327 ../../mod/install.php:210 +#: ../../mod/events.php:327 ../../mod/install.php:205 msgid "Next" msgstr "Nächste" @@ -283,7 +283,7 @@ msgid "Description:" msgstr "Beschreibung" #: ../../mod/events.php:423 ../../include/event.php:37 -#: ../../include/bb2diaspora.php:260 ../../boot.php:1103 +#: ../../include/bb2diaspora.php:265 ../../boot.php:1100 msgid "Location:" msgstr "Ort:" @@ -292,8 +292,8 @@ msgid "Share this event" msgstr "Veranstaltung teilen" #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 -#: ../../mod/dfrn_request.php:826 ../../mod/settings.php:554 -#: ../../mod/settings.php:580 ../../addon/js_upload/js_upload.php:45 +#: ../../mod/dfrn_request.php:830 ../../mod/settings.php:556 +#: ../../mod/settings.php:582 ../../addon/js_upload/js_upload.php:45 msgid "Cancel" msgstr "Abbrechen" @@ -336,29 +336,31 @@ msgid "" " and/or create new posts for you?" msgstr "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in deinem Namen gestatten?" -#: ../../mod/api.php:105 ../../mod/dfrn_request.php:814 -#: ../../mod/settings.php:875 ../../mod/settings.php:881 -#: ../../mod/settings.php:889 ../../mod/settings.php:893 -#: ../../mod/settings.php:898 ../../mod/settings.php:904 -#: ../../mod/settings.php:910 ../../mod/settings.php:916 -#: ../../mod/settings.php:952 ../../mod/settings.php:953 -#: ../../mod/settings.php:954 ../../mod/settings.php:955 -#: ../../mod/register.php:511 ../../mod/profiles.php:511 +#: ../../mod/api.php:105 ../../mod/dfrn_request.php:818 +#: ../../mod/settings.php:879 ../../mod/settings.php:885 +#: ../../mod/settings.php:893 ../../mod/settings.php:897 +#: ../../mod/settings.php:902 ../../mod/settings.php:908 +#: ../../mod/settings.php:914 ../../mod/settings.php:920 +#: ../../mod/settings.php:956 ../../mod/settings.php:957 +#: ../../mod/settings.php:958 ../../mod/settings.php:959 +#: ../../mod/settings.php:960 ../../mod/register.php:234 +#: ../../mod/profiles.php:528 msgid "Yes" msgstr "Ja" -#: ../../mod/api.php:106 ../../mod/dfrn_request.php:815 -#: ../../mod/settings.php:875 ../../mod/settings.php:881 -#: ../../mod/settings.php:889 ../../mod/settings.php:893 -#: ../../mod/settings.php:898 ../../mod/settings.php:904 -#: ../../mod/settings.php:910 ../../mod/settings.php:916 -#: ../../mod/settings.php:952 ../../mod/settings.php:953 -#: ../../mod/settings.php:954 ../../mod/settings.php:955 -#: ../../mod/register.php:512 ../../mod/profiles.php:512 +#: ../../mod/api.php:106 ../../mod/dfrn_request.php:819 +#: ../../mod/settings.php:879 ../../mod/settings.php:885 +#: ../../mod/settings.php:893 ../../mod/settings.php:897 +#: ../../mod/settings.php:902 ../../mod/settings.php:908 +#: ../../mod/settings.php:914 ../../mod/settings.php:920 +#: ../../mod/settings.php:956 ../../mod/settings.php:957 +#: ../../mod/settings.php:958 ../../mod/settings.php:959 +#: ../../mod/settings.php:960 ../../mod/register.php:235 +#: ../../mod/profiles.php:529 msgid "No" msgstr "Nein" -#: ../../mod/photos.php:43 ../../boot.php:1517 +#: ../../mod/photos.php:43 ../../boot.php:1514 msgid "Photo Albums" msgstr "Fotoalben" @@ -366,7 +368,7 @@ msgstr "Fotoalben" #: ../../mod/photos.php:1005 ../../mod/photos.php:1020 #: ../../mod/photos.php:1445 ../../mod/photos.php:1457 #: ../../addon/communityhome/communityhome.php:110 -#: ../../view/theme/diabook/theme.php:593 +#: ../../view/theme/diabook/theme.php:598 msgid "Contact Photos" msgstr "Kontaktbilder" @@ -374,7 +376,7 @@ msgstr "Kontaktbilder" msgid "Upload New Photos" msgstr "Weitere Fotos hochladen" -#: ../../mod/photos.php:69 ../../mod/settings.php:20 +#: ../../mod/photos.php:69 ../../mod/settings.php:21 msgid "everybody" msgstr "jeder" @@ -383,13 +385,13 @@ msgid "Contact information unavailable" msgstr "Kontaktinformationen nicht verfügbar" #: ../../mod/photos.php:151 ../../mod/photos.php:652 ../../mod/photos.php:1005 -#: ../../mod/photos.php:1020 ../../mod/register.php:314 -#: ../../mod/register.php:321 ../../mod/register.php:328 -#: ../../mod/profile_photo.php:60 ../../mod/profile_photo.php:67 -#: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174 -#: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261 +#: ../../mod/photos.php:1020 ../../mod/profile_photo.php:60 +#: ../../mod/profile_photo.php:67 ../../mod/profile_photo.php:74 +#: ../../mod/profile_photo.php:174 ../../mod/profile_photo.php:252 +#: ../../mod/profile_photo.php:261 #: ../../addon/communityhome/communityhome.php:111 -#: ../../view/theme/diabook/theme.php:594 +#: ../../view/theme/diabook/theme.php:599 ../../include/user.php:294 +#: ../../include/user.php:301 ../../include/user.php:308 msgid "Profile Photos" msgstr "Profilbilder" @@ -411,7 +413,7 @@ msgstr "wurde getaggt in einem" #: ../../mod/photos.php:583 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../view/theme/diabook/theme.php:565 ../../include/text.php:1311 +#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1315 #: ../../include/diaspora.php:1662 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" @@ -440,7 +442,7 @@ msgid "Image upload failed." msgstr "Hochladen des Bildes gescheitert." #: ../../mod/photos.php:814 ../../mod/community.php:16 -#: ../../mod/dfrn_request.php:740 ../../mod/viewcontacts.php:17 +#: ../../mod/dfrn_request.php:744 ../../mod/viewcontacts.php:17 #: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29 msgid "Public access denied." msgstr "Öffentlicher Zugriff verweigert." @@ -519,7 +521,7 @@ msgstr "[Tag entfernen]" #: ../../mod/photos.php:1243 msgid "Rotate CW" -msgstr "" +msgstr "Im Uhrzeigersinn rotieren" #: ../../mod/photos.php:1245 msgid "New album name" @@ -538,44 +540,44 @@ msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -#: ../../mod/photos.php:1274 ../../include/conversation.php:533 +#: ../../mod/photos.php:1274 ../../include/conversation.php:548 msgid "I like this (toggle)" msgstr "Ich mag das (toggle)" -#: ../../mod/photos.php:1275 ../../include/conversation.php:534 +#: ../../mod/photos.php:1275 ../../include/conversation.php:549 msgid "I don't like this (toggle)" msgstr "Ich mag das nicht (toggle)" -#: ../../mod/photos.php:1276 ../../include/conversation.php:968 +#: ../../mod/photos.php:1276 ../../include/conversation.php:983 msgid "Share" msgstr "Teilen" #: ../../mod/photos.php:1277 ../../mod/editpost.php:104 #: ../../mod/wallmessage.php:145 ../../mod/message.php:214 #: ../../mod/message.php:408 ../../include/conversation.php:365 -#: ../../include/conversation.php:710 ../../include/conversation.php:987 +#: ../../include/conversation.php:725 ../../include/conversation.php:1002 msgid "Please wait" msgstr "Bitte warten" #: ../../mod/photos.php:1293 ../../mod/photos.php:1333 -#: ../../mod/photos.php:1364 ../../include/conversation.php:556 +#: ../../mod/photos.php:1364 ../../include/conversation.php:571 msgid "This is you" msgstr "Das bist du" #: ../../mod/photos.php:1295 ../../mod/photos.php:1335 -#: ../../mod/photos.php:1366 ../../include/conversation.php:558 -#: ../../boot.php:517 +#: ../../mod/photos.php:1366 ../../include/conversation.php:573 +#: ../../boot.php:514 msgid "Comment" msgstr "Kommentar" #: ../../mod/photos.php:1297 ../../mod/editpost.php:125 -#: ../../include/conversation.php:568 ../../include/conversation.php:1005 +#: ../../include/conversation.php:583 ../../include/conversation.php:1020 msgid "Preview" msgstr "Vorschau" -#: ../../mod/photos.php:1394 ../../mod/settings.php:616 -#: ../../mod/settings.php:697 ../../mod/group.php:168 ../../mod/admin.php:660 -#: ../../include/conversation.php:322 ../../include/conversation.php:588 +#: ../../mod/photos.php:1394 ../../mod/settings.php:618 +#: ../../mod/settings.php:699 ../../mod/group.php:168 ../../mod/admin.php:660 +#: ../../include/conversation.php:322 ../../include/conversation.php:603 msgid "Delete" msgstr "Löschen" @@ -591,12 +593,12 @@ msgstr "Neueste Fotos" msgid "Not available." msgstr "Nicht verfügbar." -#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:128 +#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:133 #: ../../include/nav.php:101 msgid "Community" msgstr "Gemeinschaft" -#: ../../mod/community.php:61 ../../mod/search.php:138 +#: ../../mod/community.php:61 ../../mod/search.php:144 msgid "No results." msgstr "Keine Ergebnisse." @@ -640,28 +642,28 @@ msgstr "Beitrag nicht gefunden" msgid "Edit post" msgstr "Beitrag bearbeiten" -#: ../../mod/editpost.php:80 ../../include/conversation.php:954 +#: ../../mod/editpost.php:80 ../../include/conversation.php:969 msgid "Post to Email" msgstr "An E-Mail senden" -#: ../../mod/editpost.php:95 ../../mod/settings.php:615 -#: ../../include/conversation.php:575 +#: ../../mod/editpost.php:95 ../../mod/settings.php:617 +#: ../../include/conversation.php:590 msgid "Edit" msgstr "Bearbeiten" #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143 #: ../../mod/message.php:212 ../../mod/message.php:406 -#: ../../include/conversation.php:969 +#: ../../include/conversation.php:984 msgid "Upload photo" msgstr "Foto hochladen" -#: ../../mod/editpost.php:97 ../../include/conversation.php:971 +#: ../../mod/editpost.php:97 ../../include/conversation.php:986 msgid "Attach file" msgstr "Datei anhängen" #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144 #: ../../mod/message.php:213 ../../mod/message.php:407 -#: ../../include/conversation.php:973 +#: ../../include/conversation.php:988 msgid "Insert web link" msgstr "einen Link einfügen" @@ -677,35 +679,35 @@ msgstr "Vorbis [.ogg] Video einfügen" msgid "Insert Vorbis [.ogg] audio" msgstr "Vorbis [.ogg] Audio einfügen" -#: ../../mod/editpost.php:102 ../../include/conversation.php:979 +#: ../../mod/editpost.php:102 ../../include/conversation.php:994 msgid "Set your location" msgstr "Deinen Standort festlegen" -#: ../../mod/editpost.php:103 ../../include/conversation.php:981 +#: ../../mod/editpost.php:103 ../../include/conversation.php:996 msgid "Clear browser location" msgstr "Browser-Standort leeren" -#: ../../mod/editpost.php:105 ../../include/conversation.php:988 +#: ../../mod/editpost.php:105 ../../include/conversation.php:1003 msgid "Permission settings" msgstr "Berechtigungseinstellungen" -#: ../../mod/editpost.php:113 ../../include/conversation.php:997 +#: ../../mod/editpost.php:113 ../../include/conversation.php:1012 msgid "CC: email addresses" msgstr "Cc:-E-Mail-Addressen" -#: ../../mod/editpost.php:114 ../../include/conversation.php:998 +#: ../../mod/editpost.php:114 ../../include/conversation.php:1013 msgid "Public post" msgstr "Öffentlicher Beitrag" -#: ../../mod/editpost.php:117 ../../include/conversation.php:984 +#: ../../mod/editpost.php:117 ../../include/conversation.php:999 msgid "Set title" msgstr "Titel setzen" -#: ../../mod/editpost.php:119 ../../include/conversation.php:986 +#: ../../mod/editpost.php:119 ../../include/conversation.php:1001 msgid "Categories (comma-separated list)" msgstr "Kategorien (kommasepariert)" -#: ../../mod/editpost.php:120 ../../include/conversation.php:1000 +#: ../../mod/editpost.php:120 ../../include/conversation.php:1015 msgid "Example: bob@example.com, mary@example.com" msgstr "Z.B.: bob@example.com, mary@example.com" @@ -713,201 +715,200 @@ msgstr "Z.B.: bob@example.com, mary@example.com" msgid "This introduction has already been accepted." msgstr "Diese Kontaktanfrage wurde bereits akzeptiert." -#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:495 +#: ../../mod/dfrn_request.php:118 ../../mod/dfrn_request.php:497 msgid "Profile location is not valid or does not contain profile information." msgstr "Profiladresse ist ungültig oder stellt einige Profildaten nicht zur Verfügung." -#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:500 +#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:502 msgid "Warning: profile location has no identifiable owner name." msgstr "Warnung: Es konnte kein Name des Besitzers von der angegebenen Profiladresse gefunden werden." -#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:502 +#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:504 msgid "Warning: profile location has no profile photo." msgstr "Warnung: Es konnte kein Profilbild bei der angegebenen Profiladresse gefunden werden." -#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:505 +#: ../../mod/dfrn_request.php:128 ../../mod/dfrn_request.php:507 #, 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" msgstr[0] "%d benötigter Parameter wurde an der angegebenen Stelle nicht gefunden" msgstr[1] "%d benötigte Parameter wurden an der angegebenen Stelle nicht gefunden" -#: ../../mod/dfrn_request.php:168 +#: ../../mod/dfrn_request.php:170 msgid "Introduction complete." msgstr "Kontaktanfrage abgeschlossen." -#: ../../mod/dfrn_request.php:192 +#: ../../mod/dfrn_request.php:194 msgid "Unrecoverable protocol error." msgstr "Nicht behebbarer Protokollfehler." -#: ../../mod/dfrn_request.php:220 +#: ../../mod/dfrn_request.php:222 msgid "Profile unavailable." msgstr "Profil nicht verfügbar." -#: ../../mod/dfrn_request.php:245 +#: ../../mod/dfrn_request.php:247 #, php-format msgid "%s has received too many connection requests today." msgstr "%s hat heute zu viele Freundschaftsanfragen erhalten." -#: ../../mod/dfrn_request.php:246 +#: ../../mod/dfrn_request.php:248 msgid "Spam protection measures have been invoked." msgstr "Maßnahmen zum Spamschutz wurden ergriffen." -#: ../../mod/dfrn_request.php:247 +#: ../../mod/dfrn_request.php:249 msgid "Friends are advised to please try again in 24 hours." msgstr "Freunde sind angehalten, es in 24 Stunden erneut zu versuchen." -#: ../../mod/dfrn_request.php:309 +#: ../../mod/dfrn_request.php:311 msgid "Invalid locator" msgstr "Ungültiger Locator" -#: ../../mod/dfrn_request.php:318 +#: ../../mod/dfrn_request.php:320 msgid "Invalid email address." msgstr "Ungültige E-Mail Adresse." -#: ../../mod/dfrn_request.php:344 +#: ../../mod/dfrn_request.php:346 msgid "This account has not been configured for email. Request failed." msgstr "Dieses Konto ist nicht für Email konfiguriert. Anfrage fehlgeschlagen." -#: ../../mod/dfrn_request.php:440 +#: ../../mod/dfrn_request.php:442 msgid "Unable to resolve your name at the provided location." msgstr "Konnte deinen Namen an der angegebenen Stelle nicht finden." -#: ../../mod/dfrn_request.php:453 +#: ../../mod/dfrn_request.php:455 msgid "You have already introduced yourself here." msgstr "Du hast dich hier bereits vorgestellt." -#: ../../mod/dfrn_request.php:457 +#: ../../mod/dfrn_request.php:459 #, php-format msgid "Apparently you are already friends with %s." msgstr "Es scheint so, als ob du bereits mit %s befreundet bist." -#: ../../mod/dfrn_request.php:478 +#: ../../mod/dfrn_request.php:480 msgid "Invalid profile URL." msgstr "Ungültige Profil-URL." -#: ../../mod/dfrn_request.php:484 ../../mod/follow.php:23 +#: ../../mod/dfrn_request.php:486 ../../mod/follow.php:23 msgid "Disallowed profile URL." msgstr "Nicht erlaubte Profil-URL." -#: ../../mod/dfrn_request.php:553 ../../mod/contacts.php:102 +#: ../../mod/dfrn_request.php:555 ../../mod/contacts.php:102 msgid "Failed to update contact record." msgstr "Aktualisierung der Kontaktdaten fehlgeschlagen." -#: ../../mod/dfrn_request.php:574 +#: ../../mod/dfrn_request.php:576 msgid "Your introduction has been sent." msgstr "Deine Kontaktanfrage wurde gesendet." -#: ../../mod/dfrn_request.php:627 +#: ../../mod/dfrn_request.php:629 msgid "Please login to confirm introduction." msgstr "Bitte melde dich an, um die Kontaktanfrage zu bestätigen." -#: ../../mod/dfrn_request.php:641 +#: ../../mod/dfrn_request.php:643 msgid "" "Incorrect identity currently logged in. Please login to " "this profile." msgstr "Momentan bist du mit einer anderen Identität angemeldet. Bitte melde Dich mit diesem Profil an." -#: ../../mod/dfrn_request.php:653 +#: ../../mod/dfrn_request.php:654 +msgid "Hide this contact" +msgstr "Verberge diese Kontakt" + +#: ../../mod/dfrn_request.php:657 #, php-format msgid "Welcome home %s." msgstr "Willkommen zurück %s." -#: ../../mod/dfrn_request.php:654 +#: ../../mod/dfrn_request.php:658 #, php-format msgid "Please confirm your introduction/connection request to %s." msgstr "Bitte bestätige deine Kontaktanfrage bei %s." -#: ../../mod/dfrn_request.php:655 +#: ../../mod/dfrn_request.php:659 msgid "Confirm" msgstr "Bestätigen" -#: ../../mod/dfrn_request.php:696 ../../include/items.php:2729 +#: ../../mod/dfrn_request.php:700 ../../include/items.php:2733 msgid "[Name Withheld]" msgstr "[Name unterdrückt]" -#: ../../mod/dfrn_request.php:789 +#: ../../mod/dfrn_request.php:793 msgid "" "Please enter your 'Identity Address' from one of the following supported " "communications networks:" msgstr "Bitte gib die Adresse deines Profils in einem der unterstützten sozialen Netzwerke an:" -#: ../../mod/dfrn_request.php:805 +#: ../../mod/dfrn_request.php:809 msgid "Connect as an email follower (Coming soon)" msgstr "Als E-Mail-Kontakt verbinden (In Kürze verfügbar)" -#: ../../mod/dfrn_request.php:807 +#: ../../mod/dfrn_request.php:811 msgid "" "If you are not yet a member of the free social web, follow this link to find a public" " Friendica site and join us today." msgstr "Wenn du noch kein Mitglied dieses freien sozialen Netzwerks bist, folge diesem Link um einen öffentlichen Friendica-Server zu finden und beizutreten." -#: ../../mod/dfrn_request.php:810 +#: ../../mod/dfrn_request.php:814 msgid "Friend/Connection Request" msgstr "Freundschafts-/Kontaktanfrage" -#: ../../mod/dfrn_request.php:811 +#: ../../mod/dfrn_request.php:815 msgid "" "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " "testuser@identi.ca" msgstr "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" -#: ../../mod/dfrn_request.php:812 +#: ../../mod/dfrn_request.php:816 msgid "Please answer the following:" msgstr "Bitte beantworte Folgendes:" -#: ../../mod/dfrn_request.php:813 +#: ../../mod/dfrn_request.php:817 #, php-format msgid "Does %s know you?" msgstr "Kennt %s dich?" -#: ../../mod/dfrn_request.php:816 +#: ../../mod/dfrn_request.php:820 msgid "Add a personal note:" msgstr "Eine persönliche Notiz beifügen:" -#: ../../mod/dfrn_request.php:818 ../../include/contact_selectors.php:76 +#: ../../mod/dfrn_request.php:822 ../../include/contact_selectors.php:76 msgid "Friendica" msgstr "Friendica" -#: ../../mod/dfrn_request.php:819 +#: ../../mod/dfrn_request.php:823 msgid "StatusNet/Federated Social Web" msgstr "StatusNet/Federated Social Web" -#: ../../mod/dfrn_request.php:820 ../../mod/settings.php:650 +#: ../../mod/dfrn_request.php:824 ../../mod/settings.php:652 #: ../../include/contact_selectors.php:80 msgid "Diaspora" msgstr "Diaspora" -#: ../../mod/dfrn_request.php:821 +#: ../../mod/dfrn_request.php:825 #, php-format msgid "" " - please do not use this form. Instead, enter %s into your Diaspora search" " bar." msgstr " - bitte verwende dieses Formular nicht. Stattdessen suche nach %s in deiner Diaspora Suchleiste." -#: ../../mod/dfrn_request.php:822 +#: ../../mod/dfrn_request.php:826 msgid "Your Identity Address:" msgstr "Adresse deines Profils:" -#: ../../mod/dfrn_request.php:825 +#: ../../mod/dfrn_request.php:829 msgid "Submit Request" msgstr "Anfrage abschicken" -#: ../../mod/install.php:111 +#: ../../mod/install.php:117 msgid "Friendica Social Communications Server - Setup" msgstr "Friendica-Server für soziale Netzwerke – Setup" -#: ../../mod/install.php:117 ../../mod/install.php:157 -#: ../../mod/install.php:230 -msgid "Database connection" -msgstr "Datenbankverbindung" - -#: ../../mod/install.php:124 +#: ../../mod/install.php:123 msgid "Could not connect to database." msgstr "Verbindung zur Datenbank gescheitert" -#: ../../mod/install.php:128 +#: ../../mod/install.php:127 msgid "Could not create table." msgstr "Konnte Tabelle nicht erstellen." @@ -915,232 +916,246 @@ msgstr "Konnte Tabelle nicht erstellen." msgid "Your Friendica site database has been installed." msgstr "Die Datenbank deiner Friendica Seite wurde installiert." -#: ../../mod/install.php:134 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten." - -#: ../../mod/install.php:135 ../../mod/install.php:151 -#: ../../mod/install.php:209 -msgid "Please see the file \"INSTALL.txt\"." -msgstr "Lies bitte die \"INSTALL.txt\"." - -#: ../../mod/install.php:137 -msgid "Proceed to registration" -msgstr "Mit der Registrierung fortfahren" - -#: ../../mod/install.php:143 -msgid "Proceed with Installation" -msgstr "Mit der Installation fortfahren" - -#: ../../mod/install.php:150 +#: ../../mod/install.php:138 msgid "" "You may need to import the file \"database.sql\" manually using phpmyadmin " "or mysql." msgstr "Möglicherweise musst du die Datei \"database.sql\" manuell mit phpmyadmin oder mysql importieren." -#: ../../mod/install.php:158 -msgid "Database import failed." -msgstr "Import der Datenbank schlug fehl." +#: ../../mod/install.php:139 ../../mod/install.php:204 +#: ../../mod/install.php:489 +msgid "Please see the file \"INSTALL.txt\"." +msgstr "Lies bitte die \"INSTALL.txt\"." -#: ../../mod/install.php:206 +#: ../../mod/install.php:201 msgid "System check" msgstr "Systemtest" -#: ../../mod/install.php:211 +#: ../../mod/install.php:206 msgid "Check again" msgstr "Noch einmal testen" -#: ../../mod/install.php:231 +#: ../../mod/install.php:225 +msgid "Database connection" +msgstr "Datenbankverbindung" + +#: ../../mod/install.php:226 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "Um Friendica installieren zu können, müssen wir wissen, wie wir zu deiner Datenbank Kontakt aufnehmen können." -#: ../../mod/install.php:232 +#: ../../mod/install.php:227 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "Bitte kontaktiere den Hosting Provider oder den Administrator der Seite, falls du Fragen zu diesen Einstellungen haben solltest." -#: ../../mod/install.php:233 +#: ../../mod/install.php:228 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "Die Datenbank, die du unten angibst, sollte bereits existieren. Ist dies noch nicht der Fall, erzeuge sie bitte bevor du mit der Installation fortfährst." -#: ../../mod/install.php:237 +#: ../../mod/install.php:232 msgid "Database Server Name" msgstr "Datenbank-Server" -#: ../../mod/install.php:238 +#: ../../mod/install.php:233 msgid "Database Login Name" msgstr "Datenbank-Nutzer" -#: ../../mod/install.php:239 +#: ../../mod/install.php:234 msgid "Database Login Password" msgstr "Datenbank-Passwort" -#: ../../mod/install.php:240 +#: ../../mod/install.php:235 msgid "Database Name" msgstr "Datenbank-Name" -#: ../../mod/install.php:241 ../../mod/install.php:280 +#: ../../mod/install.php:236 ../../mod/install.php:275 msgid "Site administrator email address" msgstr "E-Mail-Adresse des Administrators" -#: ../../mod/install.php:241 ../../mod/install.php:280 +#: ../../mod/install.php:236 ../../mod/install.php:275 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "Die E-Mail-Adresse, die in deinem Friendica-Account eingetragen ist, muss mit dieser Adresse übereinstimmen, damit du das Admin-Panel benutzen kannst." -#: ../../mod/install.php:245 ../../mod/install.php:283 +#: ../../mod/install.php:240 ../../mod/install.php:278 msgid "Please select a default timezone for your website" msgstr "Bitte wähle die Standardzeitzone deiner Webseite" -#: ../../mod/install.php:270 +#: ../../mod/install.php:265 msgid "Site settings" msgstr "Server-Einstellungen" -#: ../../mod/install.php:323 +#: ../../mod/install.php:318 msgid "Could not find a command line version of PHP in the web server PATH." msgstr "Konnte keine Kommandozeilenversion von PHP im PATH des Servers finden." -#: ../../mod/install.php:326 +#: ../../mod/install.php:319 +msgid "" +"If you don't have a command line version of PHP installed on server, you " +"will not be able to run background polling via cron. See 'Activating scheduled tasks'" +msgstr "Wenn du keine Kommandozeilen Version von PHP auf deinem Server installiert hast, kannst du keine Hintergrundprozesse via cron starten. Siehe 'Activating scheduled tasks'" + +#: ../../mod/install.php:323 msgid "PHP executable path" msgstr "Pfad zu PHP" -#: ../../mod/install.php:326 -msgid "Enter full path to php executable" -msgstr "Kompletter Pfad zum PHP-Executable" +#: ../../mod/install.php:323 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Gib den kompletten Pfad zur ausführbaren Datei von PHP an. Du kannst diesen Feld auch frei lassen und mit der Installation fortfahren." -#: ../../mod/install.php:331 +#: ../../mod/install.php:328 msgid "Command line PHP" msgstr "Kommandozeilen-PHP" -#: ../../mod/install.php:340 +#: ../../mod/install.php:337 msgid "" "The command line version of PHP on your system does not have " "\"register_argc_argv\" enabled." msgstr "Die Kommandozeilenversion von PHP auf deinem System hat \"register_argc_argv\" nicht aktiviert." -#: ../../mod/install.php:341 +#: ../../mod/install.php:338 msgid "This is required for message delivery to work." msgstr "Dies wird für die Auslieferung von Nachrichten benötigt." -#: ../../mod/install.php:343 +#: ../../mod/install.php:340 msgid "PHP register_argc_argv" msgstr "PHP register_argc_argv" -#: ../../mod/install.php:364 +#: ../../mod/install.php:361 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "Fehler: Die Funktion \"openssl_pkey_new\" auf diesem System ist nicht in der Lage, Verschlüsselungsschlüssel zu erzeugen" -#: ../../mod/install.php:365 +#: ../../mod/install.php:362 msgid "" "If running under Windows, please see " "\"http://www.php.net/manual/en/openssl.installation.php\"." msgstr "Wenn der Server unter Windows läuft, schau dir bitte \"http://www.php.net/manual/en/openssl.installation.php\" an." -#: ../../mod/install.php:367 +#: ../../mod/install.php:364 msgid "Generate encryption keys" msgstr "Schlüssel erzeugen" -#: ../../mod/install.php:374 +#: ../../mod/install.php:371 msgid "libCurl PHP module" msgstr "PHP: libCurl-Modul" -#: ../../mod/install.php:375 +#: ../../mod/install.php:372 msgid "GD graphics PHP module" msgstr "PHP: GD-Grafikmodul" -#: ../../mod/install.php:376 +#: ../../mod/install.php:373 msgid "OpenSSL PHP module" msgstr "PHP: OpenSSL-Modul" -#: ../../mod/install.php:377 +#: ../../mod/install.php:374 msgid "mysqli PHP module" msgstr "PHP: mysqli-Modul" -#: ../../mod/install.php:378 +#: ../../mod/install.php:375 msgid "mb_string PHP module" msgstr "PHP: mb_string-Modul" -#: ../../mod/install.php:383 ../../mod/install.php:385 +#: ../../mod/install.php:380 ../../mod/install.php:382 msgid "Apache mod_rewrite module" msgstr "Apache mod_rewrite module" -#: ../../mod/install.php:383 +#: ../../mod/install.php:380 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "Fehler: Das Apache-Modul mod-rewrite wird benötigt, es ist allerdings nicht installiert." -#: ../../mod/install.php:390 +#: ../../mod/install.php:388 msgid "Error: libCURL PHP module required but not installed." msgstr "Fehler: Das libCURL PHP Modul wird benötigt ist aber nicht installiert." -#: ../../mod/install.php:394 +#: ../../mod/install.php:392 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "Fehler: Das GD-Graphikmodul für PHP mit JPEG-Unterstützung ist nicht installiert." -#: ../../mod/install.php:398 +#: ../../mod/install.php:396 msgid "Error: openssl PHP module required but not installed." msgstr "Fehler: Das openssl-Modul von PHP ist nicht installiert." -#: ../../mod/install.php:402 +#: ../../mod/install.php:400 msgid "Error: mysqli PHP module required but not installed." msgstr "Fehler: Das mysqli-Modul von PHP ist nicht installiert." -#: ../../mod/install.php:406 +#: ../../mod/install.php:404 msgid "Error: mb_string PHP module required but not installed." msgstr "Fehler: mb_string PHP Module wird benötigt ist aber nicht installiert." -#: ../../mod/install.php:423 +#: ../../mod/install.php:421 msgid "" "The web installer needs to be able to create a file called \".htconfig.php\"" " in the top folder of your web server and it is unable to do so." msgstr "Der Installationswizard muss in der Lage sein, eine Datei im Stammverzeichnis deines Webservers anzulegen, ist allerdings derzeit nicht in der Lage, dies zu tun." -#: ../../mod/install.php:424 +#: ../../mod/install.php:422 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "In den meisten Fällen ist dies ein Problem mit den Schreibrechten, der Webserver könnte keine Schreiberlaubnis haben, selbst wenn du sie hast." -#: ../../mod/install.php:425 +#: ../../mod/install.php:423 msgid "" -"Please check with your site documentation or support people to see if this " -"situation can be corrected." -msgstr "Bitte überprüfe die Einstellungen und frage im Zweifelsfall dein Support Team, um diese Situation zu beheben." +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Friendica top folder." +msgstr "Nachdem du alles ausgefüllt hast, erhältst du einen Text, den du in eine Datei namens .htconfig.php in deinem Friendica-Wurzelverzeichnis kopieren musst." -#: ../../mod/install.php:426 +#: ../../mod/install.php:424 msgid "" -"If not, you may be required to perform a manual installation. Please see the" -" file \"INSTALL.txt\" for instructions." -msgstr "Sollte dies nicht möglich sein, musst du die Installation manuell durchführen. Lies dazu bitte in der Datei \"INSTALL.txt\"." +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"INSTALL.txt\" for instructions." +msgstr "Alternativ kannst du diesen Schritt aber auch überspringen und die Installation manuell durchführen. Eine Anleitung dazu (Englisch) findest du in der Datei INSTALL.txt." -#: ../../mod/install.php:429 +#: ../../mod/install.php:427 msgid ".htconfig.php is writable" msgstr "Schreibrechte auf .htconfig.php" -#: ../../mod/install.php:436 +#: ../../mod/install.php:439 +msgid "" +"Url rewrite in .htaccess is not working. Check your server configuration." +msgstr "Umschreiben der URLs in der .htaccess funktioniert nicht. Überprüfe die Konfiguration des Servers." + +#: ../../mod/install.php:441 +msgid "Url rewrite is working" +msgstr "URL rewrite funktioniert" + +#: ../../mod/install.php:451 msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "Die Konfigurationsdatei \".htconfig.php\" konnte nicht angelegt werden. Bitte verwende den angefügten Text, um die Datei im Stammverzeichnis deiner Friendica-Installation zu erzeugen." -#: ../../mod/install.php:461 +#: ../../mod/install.php:476 msgid "Errors encountered creating database tables." msgstr "Fehler aufgetreten während der Erzeugung der Datenbanktabellen." +#: ../../mod/install.php:487 +msgid "

What next

" +msgstr "

Wie geht es weiter?

" + +#: ../../mod/install.php:488 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten." + #: ../../mod/localtime.php:12 ../../include/event.php:11 -#: ../../include/bb2diaspora.php:238 +#: ../../include/bb2diaspora.php:243 msgid "l F d, Y \\@ g:i A" msgstr "l F d, Y \\@ g:i A" @@ -1186,7 +1201,7 @@ msgid "is interested in:" msgstr "ist interessiert an:" #: ../../mod/match.php:58 ../../mod/suggest.php:59 -#: ../../include/contact_widgets.php:9 ../../boot.php:1047 +#: ../../include/contact_widgets.php:9 ../../boot.php:1044 msgid "Connect" msgstr "Verbinden" @@ -1234,7 +1249,7 @@ msgstr "Netzwerk" msgid "Personal" msgstr "Persönlich" -#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:122 +#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:127 #: ../../include/nav.php:77 ../../include/nav.php:115 msgid "Home" msgstr "Pinnwand" @@ -1675,7 +1690,7 @@ msgstr "du bist Fan von" msgid "Edit contact" msgstr "Kontakt bearbeiten" -#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:124 +#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:129 #: ../../include/nav.php:139 msgid "Contacts" msgstr "Kontakte" @@ -1707,13 +1722,13 @@ msgid "Password reset requested at %s" msgstr "Anfrage zum Zurücksetzen des Passworts auf %s erhalten" #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107 -#: ../../mod/register.php:367 ../../mod/register.php:421 -#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:745 +#: ../../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/public_server/public_server.php:62 -#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2738 -#: ../../boot.php:697 +#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2742 +#: ../../boot.php:694 msgid "Administrator" msgstr "Administrator" @@ -1723,7 +1738,7 @@ msgid "" "Password reset failed." msgstr "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits eine ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert." -#: ../../mod/lostpass.php:83 ../../boot.php:829 +#: ../../mod/lostpass.php:83 ../../boot.php:826 msgid "Password Reset" msgstr "Passwort zurücksetzen" @@ -1767,97 +1782,97 @@ msgstr "Spitzname oder Email:" msgid "Reset" msgstr "Zurücksetzen" -#: ../../mod/settings.php:49 ../../include/nav.php:137 +#: ../../mod/settings.php:50 ../../include/nav.php:137 msgid "Account settings" msgstr "Account-Einstellungen" -#: ../../mod/settings.php:54 +#: ../../mod/settings.php:55 msgid "Display settings" msgstr "Anzeige-Einstellungen" -#: ../../mod/settings.php:60 +#: ../../mod/settings.php:61 msgid "Connector settings" msgstr "Connector-Einstellungen" -#: ../../mod/settings.php:65 +#: ../../mod/settings.php:66 msgid "Plugin settings" msgstr "Plugin-Einstellungen" -#: ../../mod/settings.php:70 +#: ../../mod/settings.php:71 msgid "Connected apps" msgstr "Verbundene Programme" -#: ../../mod/settings.php:75 +#: ../../mod/settings.php:76 msgid "Export personal data" msgstr "Persönliche Daten exportieren" -#: ../../mod/settings.php:80 +#: ../../mod/settings.php:81 msgid "Remove account" msgstr "Account entfernen" -#: ../../mod/settings.php:88 ../../mod/admin.php:748 ../../mod/admin.php:953 -#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:638 -#: ../../view/theme/diabook/theme.php:768 ../../include/nav.php:137 +#: ../../mod/settings.php:89 ../../mod/admin.php:748 ../../mod/admin.php:953 +#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:643 +#: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137 msgid "Settings" msgstr "Einstellungen" -#: ../../mod/settings.php:131 +#: ../../mod/settings.php:133 msgid "Missing some important data!" msgstr "Wichtige Daten fehlen!" -#: ../../mod/settings.php:134 ../../mod/settings.php:579 +#: ../../mod/settings.php:136 ../../mod/settings.php:581 msgid "Update" msgstr "Aktualisierungen" -#: ../../mod/settings.php:239 +#: ../../mod/settings.php:241 msgid "Failed to connect with email account using the settings provided." msgstr "Konnte das Email Konto mit den angegebenen Einstellungen nicht erreichen." -#: ../../mod/settings.php:244 +#: ../../mod/settings.php:246 msgid "Email settings updated." msgstr "EMail Einstellungen bearbeitet." -#: ../../mod/settings.php:303 +#: ../../mod/settings.php:305 msgid "Passwords do not match. Password unchanged." msgstr "Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert." -#: ../../mod/settings.php:308 +#: ../../mod/settings.php:310 msgid "Empty passwords are not allowed. Password unchanged." msgstr "Leere Passwörter sind nicht erlaubt. Passwort bleibt unverändert." -#: ../../mod/settings.php:319 +#: ../../mod/settings.php:321 msgid "Password changed." msgstr "Passwort ändern." -#: ../../mod/settings.php:321 +#: ../../mod/settings.php:323 msgid "Password update failed. Please try again." msgstr "Aktualisierung des Passworts gescheitert, bitte versuche es noch einmal." -#: ../../mod/settings.php:385 +#: ../../mod/settings.php:386 msgid " Please use a shorter name." msgstr " Bitte verwende einen kürzeren Namen." -#: ../../mod/settings.php:387 +#: ../../mod/settings.php:388 msgid " Name too short." msgstr " Name ist zu kurz." -#: ../../mod/settings.php:393 +#: ../../mod/settings.php:394 msgid " Not valid email." msgstr " Keine gültige E-Mail." -#: ../../mod/settings.php:395 +#: ../../mod/settings.php:396 msgid " Cannot change to that email." msgstr "Ändern der E-Mail nicht möglich. " -#: ../../mod/settings.php:448 +#: ../../mod/settings.php:450 msgid "Private forum has no privacy permissions. Using default privacy group." -msgstr "" +msgstr "Für das private Forum sind keine Zugriffsrechte eingestellt. Die voreingestellte Gruppe für neue Kontakte wird benutzt." -#: ../../mod/settings.php:452 +#: ../../mod/settings.php:454 msgid "Private forum has no privacy permissions and no default privacy group." -msgstr "" +msgstr "Für das private Forum sind keine Zugriffsrechte eingestellt, und es gibt keine voreingestellte Gruppe für neue Kontakte." -#: ../../mod/settings.php:482 ../../addon/facebook/facebook.php:488 +#: ../../mod/settings.php:484 ../../addon/facebook/facebook.php:488 #: ../../addon/impressum/impressum.php:77 #: ../../addon/openstreetmap/openstreetmap.php:80 #: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105 @@ -1865,420 +1880,428 @@ msgstr "" msgid "Settings updated." msgstr "Einstellungen aktualisiert." -#: ../../mod/settings.php:552 ../../mod/settings.php:578 -#: ../../mod/settings.php:614 +#: ../../mod/settings.php:554 ../../mod/settings.php:580 +#: ../../mod/settings.php:616 msgid "Add application" msgstr "Programm hinzufügen" -#: ../../mod/settings.php:556 ../../mod/settings.php:582 +#: ../../mod/settings.php:558 ../../mod/settings.php:584 #: ../../addon/statusnet/statusnet.php:555 msgid "Consumer Key" msgstr "Consumer Key" -#: ../../mod/settings.php:557 ../../mod/settings.php:583 +#: ../../mod/settings.php:559 ../../mod/settings.php:585 #: ../../addon/statusnet/statusnet.php:554 msgid "Consumer Secret" msgstr "Consumer Secret" -#: ../../mod/settings.php:558 ../../mod/settings.php:584 +#: ../../mod/settings.php:560 ../../mod/settings.php:586 msgid "Redirect" msgstr "Umleiten" -#: ../../mod/settings.php:559 ../../mod/settings.php:585 +#: ../../mod/settings.php:561 ../../mod/settings.php:587 msgid "Icon url" msgstr "Icon URL" -#: ../../mod/settings.php:570 +#: ../../mod/settings.php:572 msgid "You can't edit this application." msgstr "Du kannst dieses Programm nicht bearbeiten." -#: ../../mod/settings.php:613 +#: ../../mod/settings.php:615 msgid "Connected Apps" msgstr "Verbundene Programme" -#: ../../mod/settings.php:617 +#: ../../mod/settings.php:619 msgid "Client key starts with" msgstr "Anwenderschlüssel beginnt mit" -#: ../../mod/settings.php:618 +#: ../../mod/settings.php:620 msgid "No name" msgstr "Kein Name" -#: ../../mod/settings.php:619 +#: ../../mod/settings.php:621 msgid "Remove authorization" msgstr "Autorisierung entziehen" -#: ../../mod/settings.php:630 +#: ../../mod/settings.php:632 msgid "No Plugin settings configured" msgstr "Keine Plugin-Einstellungen konfiguriert" -#: ../../mod/settings.php:638 ../../addon/widgets/widgets.php:123 +#: ../../mod/settings.php:640 ../../addon/widgets/widgets.php:123 msgid "Plugin Settings" msgstr "Plugin-Einstellungen" -#: ../../mod/settings.php:650 ../../mod/settings.php:651 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "Eingebaute Unterstützung für Verbindungen zu %s ist %s" -#: ../../mod/settings.php:650 ../../mod/settings.php:651 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 msgid "enabled" msgstr "eingeschaltet" -#: ../../mod/settings.php:650 ../../mod/settings.php:651 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 msgid "disabled" msgstr "ausgeschaltet" -#: ../../mod/settings.php:651 +#: ../../mod/settings.php:653 msgid "StatusNet" msgstr "StatusNet" -#: ../../mod/settings.php:681 +#: ../../mod/settings.php:683 msgid "Connector Settings" msgstr "Verbindungs-Einstellungen" -#: ../../mod/settings.php:686 +#: ../../mod/settings.php:688 msgid "Email/Mailbox Setup" msgstr "E-Mail/Postfach-Einstellungen" -#: ../../mod/settings.php:687 +#: ../../mod/settings.php:689 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "Wenn du mit E-Mail-Kontakten über diesen Service kommunizieren möchtest (optional), gib bitte die Einstellungen für dein Postfach an." -#: ../../mod/settings.php:688 +#: ../../mod/settings.php:690 msgid "Last successful email check:" msgstr "Letzter erfolgreicher Email Check" -#: ../../mod/settings.php:689 +#: ../../mod/settings.php:691 msgid "Email access is disabled on this site." msgstr "Zugriff auf E-Mails für diese Seite deaktiviert." -#: ../../mod/settings.php:690 +#: ../../mod/settings.php:692 msgid "IMAP server name:" msgstr "IMAP-Server-Name:" -#: ../../mod/settings.php:691 +#: ../../mod/settings.php:693 msgid "IMAP port:" msgstr "IMAP-Port:" -#: ../../mod/settings.php:692 +#: ../../mod/settings.php:694 msgid "Security:" msgstr "Sicherheit:" -#: ../../mod/settings.php:692 ../../mod/settings.php:697 +#: ../../mod/settings.php:694 ../../mod/settings.php:699 msgid "None" msgstr "Keine" -#: ../../mod/settings.php:693 +#: ../../mod/settings.php:695 msgid "Email login name:" msgstr "E-Mail-Login-Name:" -#: ../../mod/settings.php:694 +#: ../../mod/settings.php:696 msgid "Email password:" msgstr "E-Mail-Passwort:" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Reply-to address:" msgstr "Reply-to Adresse:" -#: ../../mod/settings.php:696 +#: ../../mod/settings.php:698 msgid "Send public posts to all email contacts:" msgstr "Sende öffentliche Beiträge an alle E-Mail-Kontakte:" -#: ../../mod/settings.php:697 +#: ../../mod/settings.php:699 msgid "Action after import:" msgstr "Aktion nach Import:" -#: ../../mod/settings.php:697 +#: ../../mod/settings.php:699 msgid "Mark as seen" msgstr "Als gelesen markieren" -#: ../../mod/settings.php:697 +#: ../../mod/settings.php:699 msgid "Move to folder" msgstr "In einen Ordner verschieben" -#: ../../mod/settings.php:698 +#: ../../mod/settings.php:700 msgid "Move to folder:" msgstr "In diesen Ordner verschieben:" -#: ../../mod/settings.php:758 +#: ../../mod/settings.php:760 msgid "Display Settings" msgstr "Anzeige-Einstellungen" -#: ../../mod/settings.php:764 +#: ../../mod/settings.php:766 msgid "Display Theme:" msgstr "Theme:" -#: ../../mod/settings.php:765 +#: ../../mod/settings.php:767 msgid "Update browser every xx seconds" msgstr "Browser alle xx Sekunden aktualisieren" -#: ../../mod/settings.php:765 +#: ../../mod/settings.php:767 msgid "Minimum of 10 seconds, no maximum" msgstr "Minimal 10 Sekunden, kein Maximum" -#: ../../mod/settings.php:766 +#: ../../mod/settings.php:768 msgid "Number of items to display on the network page:" msgstr "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: " -#: ../../mod/settings.php:766 +#: ../../mod/settings.php:768 msgid "Maximum of 100 items" msgstr "Maximal 100 Beiträge" -#: ../../mod/settings.php:767 +#: ../../mod/settings.php:769 msgid "Don't show emoticons" msgstr "Keine Smilies anzeigen" -#: ../../mod/settings.php:835 ../../mod/admin.php:180 ../../mod/admin.php:634 -msgid "Normal Account" -msgstr "Normaler Account" +#: ../../mod/settings.php:840 +msgid "Normal Account Page" +msgstr "Normale Account Seite" -#: ../../mod/settings.php:836 +#: ../../mod/settings.php:841 msgid "This account is a normal personal profile" msgstr "Dieser Account ist ein normales persönliches Profil" -#: ../../mod/settings.php:839 ../../mod/admin.php:181 ../../mod/admin.php:635 -msgid "Soapbox Account" -msgstr "Sandkasten-Account" +#: ../../mod/settings.php:844 +msgid "Soapbox Page" +msgstr "Sandkasten Seite" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:845 msgid "Automatically approve all connection/friend requests as read-only fans" msgstr "Kontaktanfragen werden automatisch als Nurlese-Fans akzeptiert" -#: ../../mod/settings.php:843 ../../mod/admin.php:182 ../../mod/admin.php:636 -msgid "Community/Celebrity Account" -msgstr "Gemeinschafts-/Promi-Account" +#: ../../mod/settings.php:848 +msgid "Community Forum/Celebrity Account" +msgstr "Gemeinschafts Forum / Promi Konto" -#: ../../mod/settings.php:844 +#: ../../mod/settings.php:849 msgid "" "Automatically approve all connection/friend requests as read-write fans" msgstr "Kontaktanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert" -#: ../../mod/settings.php:847 ../../mod/admin.php:183 ../../mod/admin.php:637 -msgid "Automatic Friend Account" -msgstr "Automatischer Freundesaccount" +#: ../../mod/settings.php:852 +msgid "Automatic Friend Page" +msgstr "Automatische Freunde Seite" -#: ../../mod/settings.php:848 +#: ../../mod/settings.php:853 msgid "Automatically approve all connection/friend requests as friends" msgstr "Kontaktanfragen werden automatisch als Freund akzeptiert" -#: ../../mod/settings.php:851 -msgid "Private Forum" -msgstr "" +#: ../../mod/settings.php:856 +msgid "Private Forum [Experimental]" +msgstr "Privates Forum [Versuchsstadium]" -#: ../../mod/settings.php:852 -msgid "Private forum - approved members only [Experimental]" -msgstr "" +#: ../../mod/settings.php:857 +msgid "Private forum - approved members only" +msgstr "Privates Forum - Ausschließlich für Mitglieder" -#: ../../mod/settings.php:865 +#: ../../mod/settings.php:869 msgid "OpenID:" msgstr "OpenID:" -#: ../../mod/settings.php:865 +#: ../../mod/settings.php:869 msgid "(Optional) Allow this OpenID to login to this account." msgstr "(Optional) Erlaube die Anmeldung für diesen Account mit dieser OpenID." -#: ../../mod/settings.php:875 +#: ../../mod/settings.php:879 msgid "Publish your default profile in your local site directory?" msgstr "Veröffentliche dein Standardprofil im Verzeichnis der lokalen Seite?" -#: ../../mod/settings.php:881 +#: ../../mod/settings.php:885 msgid "Publish your default profile in the global social directory?" msgstr "Veröffentliche dein Standardprofil im weltweiten Verzeichnis?" -#: ../../mod/settings.php:889 +#: ../../mod/settings.php:893 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "Liste der Kontakte vor Betrachtern des Standardprofils verbergen?" -#: ../../mod/settings.php:893 +#: ../../mod/settings.php:897 msgid "Hide your profile details from unknown viewers?" msgstr "Profil-Details vor unbekannten Betrachtern verbergen?" -#: ../../mod/settings.php:898 +#: ../../mod/settings.php:902 msgid "Allow friends to post to your profile page?" msgstr "Deinen Kontakten erlauben, auf deine Pinnwand zu schreiben?" -#: ../../mod/settings.php:904 +#: ../../mod/settings.php:908 msgid "Allow friends to tag your posts?" msgstr "Deinen Kontakten erlauben, deine Beiträge mit Schlagwörtern zu versehen?" -#: ../../mod/settings.php:910 +#: ../../mod/settings.php:914 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Erlaube uns dich als potentiellen Kontakt für neue Mitglieder vorzuschlagen?" -#: ../../mod/settings.php:916 +#: ../../mod/settings.php:920 msgid "Permit unknown people to send you private mail?" msgstr "Erlaube es Unbekannten dir private Nachrichten zu schicken?" -#: ../../mod/settings.php:927 +#: ../../mod/settings.php:931 msgid "Profile is not published." msgstr "Profil ist nicht veröffentlicht." -#: ../../mod/settings.php:933 ../../mod/profile_photo.php:211 +#: ../../mod/settings.php:937 ../../mod/profile_photo.php:211 msgid "or" msgstr "oder" -#: ../../mod/settings.php:938 +#: ../../mod/settings.php:942 msgid "Your Identity Address is" msgstr "Die Adresse deines Profils lautet:" -#: ../../mod/settings.php:949 +#: ../../mod/settings.php:953 msgid "Automatically expire posts after this many days:" msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen" -#: ../../mod/settings.php:949 +#: ../../mod/settings.php:953 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Wenn leer verfallen Beiträge nie automatisch. Verfallene Beiträge werden gelöscht." -#: ../../mod/settings.php:950 +#: ../../mod/settings.php:954 msgid "Advanced expiration settings" msgstr "Erweiterte Verfallseinstellungen" -#: ../../mod/settings.php:951 +#: ../../mod/settings.php:955 msgid "Advanced Expiration" msgstr "Erweitertes Verfallen" -#: ../../mod/settings.php:952 +#: ../../mod/settings.php:956 msgid "Expire posts:" msgstr "Beiträge verfallen lassen:" -#: ../../mod/settings.php:953 +#: ../../mod/settings.php:957 msgid "Expire personal notes:" msgstr "Persönliche Notizen verfallen lassen:" -#: ../../mod/settings.php:954 +#: ../../mod/settings.php:958 msgid "Expire starred posts:" msgstr "Markierte Beiträge verfallen lassen:" -#: ../../mod/settings.php:955 +#: ../../mod/settings.php:959 msgid "Expire photos:" msgstr "Fotos verfallen lassen:" -#: ../../mod/settings.php:962 +#: ../../mod/settings.php:960 +msgid "Only expire posts by others:" +msgstr "Nur Beiträge anderer verfallen" + +#: ../../mod/settings.php:967 msgid "Account Settings" msgstr "Account-Einstellungen" -#: ../../mod/settings.php:970 +#: ../../mod/settings.php:975 msgid "Password Settings" msgstr "Passwort-Einstellungen" -#: ../../mod/settings.php:971 +#: ../../mod/settings.php:976 msgid "New Password:" msgstr "Neues Passwort:" -#: ../../mod/settings.php:972 +#: ../../mod/settings.php:977 msgid "Confirm:" msgstr "Bestätigen:" -#: ../../mod/settings.php:972 +#: ../../mod/settings.php:977 msgid "Leave password fields blank unless changing" msgstr "Lass die Passwort-Felder leer, außer du willst das Passwort ändern" -#: ../../mod/settings.php:976 +#: ../../mod/settings.php:981 msgid "Basic Settings" msgstr "Grundeinstellungen" -#: ../../mod/settings.php:977 ../../include/profile_advanced.php:15 +#: ../../mod/settings.php:982 ../../include/profile_advanced.php:15 msgid "Full Name:" msgstr "Kompletter Name:" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:983 msgid "Email Address:" msgstr "Emailadresse:" -#: ../../mod/settings.php:979 +#: ../../mod/settings.php:984 msgid "Your Timezone:" msgstr "Deine Zeitzone:" -#: ../../mod/settings.php:980 +#: ../../mod/settings.php:985 msgid "Default Post Location:" msgstr "Standardstandort:" -#: ../../mod/settings.php:981 +#: ../../mod/settings.php:986 msgid "Use Browser Location:" msgstr "Verwende den Standort des Browsers:" -#: ../../mod/settings.php:984 +#: ../../mod/settings.php:989 msgid "Security and Privacy Settings" msgstr "Sicherheits- und Privatsphäre-Einstellungen" -#: ../../mod/settings.php:986 +#: ../../mod/settings.php:991 msgid "Maximum Friend Requests/Day:" msgstr "Maximale Anzahl von Freundschaftsanfragen/Tag:" -#: ../../mod/settings.php:986 ../../mod/settings.php:1005 +#: ../../mod/settings.php:991 ../../mod/settings.php:1010 msgid "(to prevent spam abuse)" msgstr "(um SPAM zu vermeiden)" -#: ../../mod/settings.php:987 +#: ../../mod/settings.php:992 msgid "Default Post Permissions" msgstr "Standard-Zugriffsrechte für Beiträge" -#: ../../mod/settings.php:988 +#: ../../mod/settings.php:993 msgid "(click to open/close)" msgstr "(klicke zum öffnen/schließen)" -#: ../../mod/settings.php:1005 +#: ../../mod/settings.php:1010 msgid "Maximum private messages per day from unknown people:" msgstr "Maximale Anzahl von privaten Nachrichten, die dir unbekannte Personen pro Tag senden dürfen:" -#: ../../mod/settings.php:1008 +#: ../../mod/settings.php:1013 msgid "Notification Settings" msgstr "Benachrichtigungseinstellungen" -#: ../../mod/settings.php:1009 +#: ../../mod/settings.php:1014 msgid "By default post a status message when:" msgstr "Standardmäßig eine Statusnachricht posten, wenn:" -#: ../../mod/settings.php:1010 +#: ../../mod/settings.php:1015 msgid "accepting a friend request" msgstr "– du eine Kontaktanfrage akzeptierst" -#: ../../mod/settings.php:1011 +#: ../../mod/settings.php:1016 msgid "joining a forum/community" msgstr "– du einem Forum/einer Gemeinschaftsseite beitrittst" -#: ../../mod/settings.php:1012 +#: ../../mod/settings.php:1017 msgid "making an interesting profile change" msgstr "– du eine interessante Änderung an deinem Profil durchführst" -#: ../../mod/settings.php:1013 +#: ../../mod/settings.php:1018 msgid "Send a notification email when:" msgstr "Benachrichtigungs-E-Mail senden wenn:" -#: ../../mod/settings.php:1014 +#: ../../mod/settings.php:1019 msgid "You receive an introduction" msgstr "– du eine Kontaktanfrage erhältst" -#: ../../mod/settings.php:1015 +#: ../../mod/settings.php:1020 msgid "Your introductions are confirmed" msgstr "– eine deiner Kontaktanfragen akzeptiert wurde" -#: ../../mod/settings.php:1016 +#: ../../mod/settings.php:1021 msgid "Someone writes on your profile wall" msgstr "– jemand etwas auf deine Pinnwand schreibt" -#: ../../mod/settings.php:1017 +#: ../../mod/settings.php:1022 msgid "Someone writes a followup comment" msgstr "– jemand auch einen Kommentar verfasst" -#: ../../mod/settings.php:1018 +#: ../../mod/settings.php:1023 msgid "You receive a private message" msgstr "– du eine private Nachricht erhältst" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1024 msgid "You receive a friend suggestion" msgstr "- du eine Empfehlung erhältst" -#: ../../mod/settings.php:1020 +#: ../../mod/settings.php:1025 msgid "You are tagged in a post" msgstr "- du in einem Beitrag erwähnt wurdest" -#: ../../mod/settings.php:1023 -msgid "Advanced Page Settings" -msgstr "Erweiterte Seiten-Einstellungen" +#: ../../mod/settings.php:1028 +msgid "Advanced Account/Page Type Settings" +msgstr "" + +#: ../../mod/settings.php:1029 +msgid "Change the behaviour of this account for special situations" +msgstr "Ändere das Verhalten deines Accounts für spezielle Situationen." #: ../../mod/manage.php:90 msgid "Manage Identities and/or Pages" @@ -2390,13 +2413,13 @@ msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gela msgid "Invalid contact." msgstr "Ungültiger Kontakt." -#: ../../mod/notes.php:44 ../../boot.php:1529 +#: ../../mod/notes.php:44 ../../boot.php:1526 msgid "Personal Notes" msgstr "Persönliche Notizen" #: ../../mod/notes.php:63 ../../mod/filer.php:30 #: ../../addon/facebook/facebook.php:756 -#: ../../addon/privacy_image_cache/privacy_image_cache.php:148 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:150 #: ../../include/text.php:652 msgid "Save" msgstr "Speichern" @@ -2431,7 +2454,7 @@ msgid "No recipient." msgstr "Kein Empfänger." #: ../../mod/wallmessage.php:124 ../../mod/message.php:171 -#: ../../include/conversation.php:922 +#: ../../include/conversation.php:937 msgid "Please enter a link URL:" msgstr "Bitte gib die URL des Links ein:" @@ -2639,9 +2662,9 @@ msgstr "Ungültiger Profil-Bezeichner" msgid "Profile Visibility Editor" msgstr "Editor für die Profil-Sichtbarkeit" -#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:123 -#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74 -#: ../../include/nav.php:50 ../../boot.php:1508 +#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128 +#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:77 +#: ../../include/nav.php:50 ../../boot.php:1505 msgid "Profile" msgstr "Profil" @@ -2661,159 +2684,91 @@ msgstr "Keine Kontakte." msgid "View Contacts" msgstr "Kontakte anzeigen" -#: ../../mod/register.php:64 -msgid "An invitation is required." -msgstr "Du benötigst eine Einladung." - -#: ../../mod/register.php:69 -msgid "Invitation could not be verified." -msgstr "Die Einladung konnte nicht überprüft werden." - -#: ../../mod/register.php:77 -msgid "Invalid OpenID url" -msgstr "Ungültige OpenID URL" - -#: ../../mod/register.php:92 -msgid "Please enter the required information." -msgstr "Bitte trage die erforderlichen Informationen ein." - -#: ../../mod/register.php:106 -msgid "Please use a shorter name." -msgstr "Bitte verwende einen kürzeren Namen." - -#: ../../mod/register.php:108 -msgid "Name too short." -msgstr "Der Name ist zu kurz." - -#: ../../mod/register.php:123 -msgid "That doesn't appear to be your full (First Last) name." -msgstr "Das scheint nicht dein kompletter Name (Vor- und Nachname) zu sein." - -#: ../../mod/register.php:128 -msgid "Your email domain is not among those allowed on this site." -msgstr "Die Domain deiner E-Mail Adresse ist auf dieser Seite nicht erlaubt." - -#: ../../mod/register.php:131 -msgid "Not a valid email address." -msgstr "Keine gültige E-Mail-Adresse." - -#: ../../mod/register.php:141 -msgid "Cannot use that email." -msgstr "Konnte diese E-Mail-Adresse nicht verwenden." - -#: ../../mod/register.php:147 -msgid "" -"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and " -"must also begin with a letter." -msgstr "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\", \"_\" und \"-\") bestehen, außerdem muss er mit einem Buchstaben beginnen." - -#: ../../mod/register.php:153 ../../mod/register.php:243 -msgid "Nickname is already registered. Please choose another." -msgstr "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen." - -#: ../../mod/register.php:163 -msgid "" -"Nickname was once registered here and may not be re-used. Please choose " -"another." -msgstr "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen." - -#: ../../mod/register.php:179 -msgid "SERIOUS ERROR: Generation of security keys failed." -msgstr "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden." - -#: ../../mod/register.php:229 -msgid "An error occurred during registration. Please try again." -msgstr "Wärend der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal." - -#: ../../mod/register.php:265 -msgid "An error occurred creating your default profile. Please try again." -msgstr "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal." - -#: ../../mod/register.php:365 ../../mod/regmod.php:52 +#: ../../mod/register.php:88 ../../mod/regmod.php:52 #, php-format msgid "Registration details for %s" msgstr "Details der Registration von %s" -#: ../../mod/register.php:373 +#: ../../mod/register.php:96 msgid "" "Registration successful. Please check your email for further instructions." msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet." -#: ../../mod/register.php:377 +#: ../../mod/register.php:100 msgid "Failed to send email message. Here is the message that failed." msgstr "Konnte die E-Mail nicht versenden. Hier ist die Nachricht, die nicht gesendet werden konnte." -#: ../../mod/register.php:382 +#: ../../mod/register.php:105 msgid "Your registration can not be processed." msgstr "Deine Registrierung konnte nicht verarbeitet werden." -#: ../../mod/register.php:419 +#: ../../mod/register.php:142 #, php-format msgid "Registration request at %s" msgstr "Registrierungsanfrage auf %s" -#: ../../mod/register.php:428 +#: ../../mod/register.php:151 msgid "Your registration is pending approval by the site owner." msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden." -#: ../../mod/register.php:466 +#: ../../mod/register.php:189 msgid "" "This site has exceeded the number of allowed daily account registrations. " "Please try again tomorrow." msgstr "Die maximale Anzahl täglicher Registrierungen auf dieser Seite wurde überschritten. Bitte versuche es morgen noch einmal." -#: ../../mod/register.php:492 +#: ../../mod/register.php:215 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " "and clicking 'Register'." msgstr "Du kannst dieses Formular auch (optional) mit deiner OpenID ausfüllen, indem du deine OpenID angibst und 'Registrieren' klickst." -#: ../../mod/register.php:493 +#: ../../mod/register.php:216 msgid "" "If you are not familiar with OpenID, please leave that field blank and fill " "in the rest of the items." msgstr "Wenn du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus." -#: ../../mod/register.php:494 +#: ../../mod/register.php:217 msgid "Your OpenID (optional): " msgstr "Deine OpenID (optional): " -#: ../../mod/register.php:508 +#: ../../mod/register.php:231 msgid "Include your profile in member directory?" msgstr "Soll dein Profil im Nutzerverzeichnis angezeigt werden?" -#: ../../mod/register.php:528 +#: ../../mod/register.php:251 msgid "Membership on this site is by invitation only." msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich." -#: ../../mod/register.php:529 +#: ../../mod/register.php:252 msgid "Your invitation ID: " msgstr "ID deiner Einladung: " -#: ../../mod/register.php:532 ../../mod/admin.php:418 +#: ../../mod/register.php:255 ../../mod/admin.php:418 msgid "Registration" msgstr "Registrierung" -#: ../../mod/register.php:540 +#: ../../mod/register.php:263 msgid "Your Full Name (e.g. Joe Smith): " msgstr "Vollständiger Name (z.B. Max Mustermann): " -#: ../../mod/register.php:541 +#: ../../mod/register.php:264 msgid "Your Email Address: " msgstr "Deine E-Mail-Adresse: " -#: ../../mod/register.php:542 +#: ../../mod/register.php:265 msgid "" "Choose a profile nickname. This must begin with a text character. Your " "profile address on this site will then be " "'nickname@$sitename'." msgstr "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse deines Profils auf dieser Seite wird 'spitzname@$sitename' sein." -#: ../../mod/register.php:543 +#: ../../mod/register.php:266 msgid "Choose a nickname: " msgstr "Spitznamen wählen: " -#: ../../mod/register.php:546 ../../include/nav.php:81 ../../boot.php:795 +#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:792 msgid "Register" msgstr "Registrieren" @@ -2825,8 +2780,8 @@ msgstr "Personen Suche" #: ../../addon/facebook/facebook.php:1572 #: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:167 -#: ../../view/theme/diabook/theme.php:560 -#: ../../view/theme/diabook/theme.php:569 ../../include/diaspora.php:1662 +#: ../../view/theme/diabook/theme.php:565 +#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1662 #: ../../include/conversation.php:48 ../../include/conversation.php:57 #: ../../include/conversation.php:121 ../../include/conversation.php:130 msgid "status" @@ -2834,7 +2789,7 @@ msgstr "Status" #: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1576 #: ../../addon/communityhome/communityhome.php:172 -#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1678 +#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1678 #: ../../include/conversation.php:65 #, php-format msgid "%1$s likes %2$s's %3$s" @@ -2847,7 +2802,7 @@ msgstr "%1$s mag %2$ss %3$s nicht" #: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156 #: ../../mod/admin.php:697 ../../mod/admin.php:896 ../../mod/display.php:37 -#: ../../mod/display.php:142 ../../include/items.php:3096 +#: ../../mod/display.php:142 ../../include/items.php:3179 msgid "Item not found." msgstr "Beitrag nicht gefunden." @@ -2855,8 +2810,8 @@ msgstr "Beitrag nicht gefunden." msgid "Access denied." msgstr "Zugriff verweigert." -#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:125 -#: ../../include/nav.php:51 ../../boot.php:1514 +#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:130 +#: ../../include/nav.php:51 ../../boot.php:1511 msgid "Photos" msgstr "Bilder" @@ -2885,35 +2840,35 @@ msgstr "Konnte den Originalbeitrag nicht finden." msgid "Empty post discarded." msgstr "Leerer Beitrag wurde verworfen." -#: ../../mod/item.php:377 ../../mod/wall_upload.php:99 +#: ../../mod/item.php:379 ../../mod/wall_upload.php:99 #: ../../mod/wall_upload.php:108 ../../mod/wall_upload.php:115 #: ../../include/message.php:144 msgid "Wall Photos" msgstr "Pinnwand-Bilder" -#: ../../mod/item.php:786 +#: ../../mod/item.php:800 msgid "System error. Post not saved." msgstr "Systemfehler. Beitrag konnte nicht gespeichert werden." -#: ../../mod/item.php:811 +#: ../../mod/item.php:825 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social " "network." msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica." -#: ../../mod/item.php:813 +#: ../../mod/item.php:827 #, php-format msgid "You may visit them online at %s" msgstr "Du kannst sie online unter %s besuchen" -#: ../../mod/item.php:814 +#: ../../mod/item.php:828 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest." -#: ../../mod/item.php:816 +#: ../../mod/item.php:830 #, php-format msgid "%s posted an update." msgstr "%s hat ein Update veröffentlicht." @@ -3098,10 +3053,6 @@ msgstr "Themen" msgid "DB updates" msgstr "DB Updates" -#: ../../mod/admin.php:101 -msgid "Software Update" -msgstr "Software Update" - #: ../../mod/admin.php:115 ../../mod/admin.php:1074 msgid "Logs" msgstr "Protokolle" @@ -3110,9 +3061,25 @@ msgstr "Protokolle" msgid "User registrations waiting for confirmation" msgstr "Nutzeranmeldungen die auf Bestätigung warten" +#: ../../mod/admin.php:180 ../../mod/admin.php:634 +msgid "Normal Account" +msgstr "Normaler Account" + +#: ../../mod/admin.php:181 ../../mod/admin.php:635 +msgid "Soapbox Account" +msgstr "Sandkasten-Account" + +#: ../../mod/admin.php:182 ../../mod/admin.php:636 +msgid "Community/Celebrity Account" +msgstr "Gemeinschafts-/Promi-Account" + +#: ../../mod/admin.php:183 ../../mod/admin.php:637 +msgid "Automatic Friend Account" +msgstr "Automatischer Freundesaccount" + #: ../../mod/admin.php:202 msgid "Message queues" -msgstr "" +msgstr "Nachrichten-Warteschlangen" #: ../../mod/admin.php:207 ../../mod/admin.php:415 ../../mod/admin.php:651 #: ../../mod/admin.php:745 ../../mod/admin.php:787 ../../mod/admin.php:950 @@ -3640,7 +3607,7 @@ msgstr "FTP Nutzername" msgid "FTP Password" msgstr "FTP Passwort" -#: ../../mod/profile.php:21 ../../boot.php:960 +#: ../../mod/profile.php:21 ../../boot.php:957 msgid "Requested profile is not available." msgstr "Das angefragte Profil ist nicht vorhanden." @@ -3710,10 +3677,10 @@ msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "Account wurde nicht gefunden und OpenID Registrierung auf diesem Server nicht gestattet." -#: ../../mod/openid.php:93 ../../include/auth.php:97 -#: ../../include/auth.php:160 +#: ../../mod/openid.php:93 ../../include/auth.php:99 +#: ../../include/auth.php:162 msgid "Login failed." -msgstr "Annmeldung fehlgeschlagen." +msgstr "Anmeldung fehlgeschlagen." #: ../../mod/follow.php:30 msgid "Connect URL missing." @@ -3790,12 +3757,13 @@ msgstr "Anwendungen" msgid "No installed applications." msgstr "Keine Applikationen installiert." -#: ../../mod/search.php:83 ../../include/text.php:650 ../../include/nav.php:91 +#: ../../mod/search.php:83 ../../include/text.php:649 +#: ../../include/text.php:650 ../../include/nav.php:91 msgid "Search" msgstr "Suche" -#: ../../mod/profiles.php:21 ../../mod/profiles.php:375 -#: ../../mod/profiles.php:489 ../../mod/dfrn_confirm.php:62 +#: ../../mod/profiles.php:21 ../../mod/profiles.php:392 +#: ../../mod/profiles.php:506 ../../mod/dfrn_confirm.php:62 msgid "Profile not found." msgstr "Profil nicht gefunden." @@ -3803,277 +3771,285 @@ msgstr "Profil nicht gefunden." msgid "Profile Name is required." msgstr "Profilname ist erforderlich." -#: ../../mod/profiles.php:145 +#: ../../mod/profiles.php:151 msgid "Marital Status" msgstr "Familienstand" -#: ../../mod/profiles.php:149 +#: ../../mod/profiles.php:155 msgid "Romantic Partner" msgstr "Romanze" -#: ../../mod/profiles.php:153 +#: ../../mod/profiles.php:159 msgid "Work/Employment" msgstr "Arbeit / Beschäftigung" -#: ../../mod/profiles.php:156 +#: ../../mod/profiles.php:162 msgid "Religion" msgstr "Religion" -#: ../../mod/profiles.php:160 +#: ../../mod/profiles.php:166 msgid "Political Views" msgstr "Politische Ansichten" -#: ../../mod/profiles.php:164 +#: ../../mod/profiles.php:170 msgid "Gender" msgstr "Geschlecht" -#: ../../mod/profiles.php:168 +#: ../../mod/profiles.php:174 msgid "Sexual Preference" msgstr "Sexuelle Vorlieben" -#: ../../mod/profiles.php:172 +#: ../../mod/profiles.php:178 msgid "Homepage" msgstr "Webseite" -#: ../../mod/profiles.php:176 +#: ../../mod/profiles.php:182 msgid "Interests" msgstr "Interessen" -#: ../../mod/profiles.php:181 +#: ../../mod/profiles.php:186 +msgid "Address" +msgstr "Adresse" + +#: ../../mod/profiles.php:193 msgid "Location" msgstr "Wohnort" -#: ../../mod/profiles.php:253 +#: ../../mod/profiles.php:270 msgid "Profile updated." msgstr "Profil aktualisiert." -#: ../../mod/profiles.php:320 +#: ../../mod/profiles.php:337 msgid " and " msgstr " und " -#: ../../mod/profiles.php:328 +#: ../../mod/profiles.php:345 msgid "public profile" msgstr "öffentliches Profil" -#: ../../mod/profiles.php:331 +#: ../../mod/profiles.php:348 #, php-format msgid "%1$s changed %2$s to “%3$s”" msgstr "%1$s hat %2$s geändert auf “%3$s”" -#: ../../mod/profiles.php:332 +#: ../../mod/profiles.php:349 #, php-format msgid " - Visit %1$s's %2$s" -msgstr "" +msgstr " – %1$ss %2$s besuchen" -#: ../../mod/profiles.php:335 +#: ../../mod/profiles.php:352 #, php-format msgid "%1$s has an updated %2$s, changing %3$s." msgstr "%1$s hat folgendes aktualisiert %2$s, verändert wurde %3$s." -#: ../../mod/profiles.php:394 +#: ../../mod/profiles.php:411 msgid "Profile deleted." msgstr "Profil gelöscht." -#: ../../mod/profiles.php:412 ../../mod/profiles.php:446 +#: ../../mod/profiles.php:429 ../../mod/profiles.php:463 msgid "Profile-" msgstr "Profil-" -#: ../../mod/profiles.php:431 ../../mod/profiles.php:473 +#: ../../mod/profiles.php:448 ../../mod/profiles.php:490 msgid "New profile created." msgstr "Neues Profil angelegt." -#: ../../mod/profiles.php:452 +#: ../../mod/profiles.php:469 msgid "Profile unavailable to clone." msgstr "Profil nicht zum Duplizieren verfügbar." -#: ../../mod/profiles.php:510 +#: ../../mod/profiles.php:527 msgid "Hide your contact/friend list from viewers of this profile?" msgstr "Liste der Kontakte vor Betrachtern dieses Profils verbergen?" -#: ../../mod/profiles.php:533 +#: ../../mod/profiles.php:550 msgid "Edit Profile Details" msgstr "Profil bearbeiten" -#: ../../mod/profiles.php:535 +#: ../../mod/profiles.php:552 msgid "View this profile" msgstr "Dieses Profil anzeigen" -#: ../../mod/profiles.php:536 +#: ../../mod/profiles.php:553 msgid "Create a new profile using these settings" msgstr "Neues Profil anlegen und diese Einstellungen verwenden" -#: ../../mod/profiles.php:537 +#: ../../mod/profiles.php:554 msgid "Clone this profile" msgstr "Dieses Profil duplizieren" -#: ../../mod/profiles.php:538 +#: ../../mod/profiles.php:555 msgid "Delete this profile" msgstr "Dieses Profil löschen" -#: ../../mod/profiles.php:539 +#: ../../mod/profiles.php:556 msgid "Profile Name:" msgstr "Profilname:" -#: ../../mod/profiles.php:540 +#: ../../mod/profiles.php:557 msgid "Your Full Name:" msgstr "Dein kompletter Name:" -#: ../../mod/profiles.php:541 +#: ../../mod/profiles.php:558 msgid "Title/Description:" msgstr "Titel/Beschreibung:" -#: ../../mod/profiles.php:542 +#: ../../mod/profiles.php:559 msgid "Your Gender:" msgstr "Dein Geschlecht:" -#: ../../mod/profiles.php:543 +#: ../../mod/profiles.php:560 #, php-format msgid "Birthday (%s):" msgstr "Geburtstag (%s):" -#: ../../mod/profiles.php:544 +#: ../../mod/profiles.php:561 msgid "Street Address:" msgstr "Adresse:" -#: ../../mod/profiles.php:545 +#: ../../mod/profiles.php:562 msgid "Locality/City:" msgstr "Wohnort/Stadt:" -#: ../../mod/profiles.php:546 +#: ../../mod/profiles.php:563 msgid "Postal/Zip Code:" msgstr "Postleitzahl:" -#: ../../mod/profiles.php:547 +#: ../../mod/profiles.php:564 msgid "Country:" msgstr "Land:" -#: ../../mod/profiles.php:548 +#: ../../mod/profiles.php:565 msgid "Region/State:" msgstr "Region/Bundesstaat:" -#: ../../mod/profiles.php:549 +#: ../../mod/profiles.php:566 msgid " Marital Status:" msgstr " Beziehungsstatus:" -#: ../../mod/profiles.php:550 +#: ../../mod/profiles.php:567 msgid "Who: (if applicable)" msgstr "Wer: (falls anwendbar)" -#: ../../mod/profiles.php:551 +#: ../../mod/profiles.php:568 msgid "Examples: cathy123, Cathy Williams, cathy@example.com" msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com" -#: ../../mod/profiles.php:552 ../../include/profile_advanced.php:43 +#: ../../mod/profiles.php:569 +msgid "Since [date]:" +msgstr "Seit [Datum]:" + +#: ../../mod/profiles.php:570 ../../include/profile_advanced.php:46 msgid "Sexual Preference:" msgstr "Sexuelle Vorlieben:" -#: ../../mod/profiles.php:553 +#: ../../mod/profiles.php:571 msgid "Homepage URL:" msgstr "Adresse der Homepage:" -#: ../../mod/profiles.php:554 ../../include/profile_advanced.php:49 +#: ../../mod/profiles.php:572 ../../include/profile_advanced.php:52 msgid "Political Views:" msgstr "Politische Ansichten:" -#: ../../mod/profiles.php:555 +#: ../../mod/profiles.php:573 msgid "Religious Views:" msgstr "Religiöse Ansichten:" -#: ../../mod/profiles.php:556 +#: ../../mod/profiles.php:574 msgid "Public Keywords:" msgstr "Öffentliche Schlüsselwörter:" -#: ../../mod/profiles.php:557 +#: ../../mod/profiles.php:575 msgid "Private Keywords:" msgstr "Private Schlüsselwörter:" -#: ../../mod/profiles.php:558 +#: ../../mod/profiles.php:576 msgid "Example: fishing photography software" msgstr "Beispiel: Fischen Fotografie Software" -#: ../../mod/profiles.php:559 +#: ../../mod/profiles.php:577 msgid "(Used for suggesting potential friends, can be seen by others)" msgstr "(Wird verwendet, um potentielle Freunde zu finden, könnte von Fremden eingesehen werden)" -#: ../../mod/profiles.php:560 +#: ../../mod/profiles.php:578 msgid "(Used for searching profiles, never shown to others)" msgstr "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)" -#: ../../mod/profiles.php:561 +#: ../../mod/profiles.php:579 msgid "Tell us about yourself..." msgstr "Erzähle uns ein bisschen von dir …" -#: ../../mod/profiles.php:562 +#: ../../mod/profiles.php:580 msgid "Hobbies/Interests" msgstr "Hobbies/Interessen" -#: ../../mod/profiles.php:563 +#: ../../mod/profiles.php:581 msgid "Contact information and Social Networks" msgstr "Kontaktinformationen und Soziale Netzwerke" -#: ../../mod/profiles.php:564 +#: ../../mod/profiles.php:582 msgid "Musical interests" msgstr "Musikalische Interessen" -#: ../../mod/profiles.php:565 +#: ../../mod/profiles.php:583 msgid "Books, literature" msgstr "Literatur/Bücher" -#: ../../mod/profiles.php:566 +#: ../../mod/profiles.php:584 msgid "Television" msgstr "Fernsehen" -#: ../../mod/profiles.php:567 +#: ../../mod/profiles.php:585 msgid "Film/dance/culture/entertainment" msgstr "Filme/Tänze/Kultur/Unterhaltung" -#: ../../mod/profiles.php:568 +#: ../../mod/profiles.php:586 msgid "Love/romance" msgstr "Liebesleben" -#: ../../mod/profiles.php:569 +#: ../../mod/profiles.php:587 msgid "Work/employment" msgstr "Arbeit/Beschäftigung" -#: ../../mod/profiles.php:570 +#: ../../mod/profiles.php:588 msgid "School/education" msgstr "Schule/Ausbildung" -#: ../../mod/profiles.php:575 +#: ../../mod/profiles.php:593 msgid "" "This is your public profile.
It may " "be visible to anybody using the internet." msgstr "Dies ist dein öffentliches Profil.
Es könnte für jeden Nutzer des Internets sichtbar sein." -#: ../../mod/profiles.php:585 ../../mod/directory.php:111 +#: ../../mod/profiles.php:603 ../../mod/directory.php:111 msgid "Age: " msgstr "Alter: " -#: ../../mod/profiles.php:620 +#: ../../mod/profiles.php:639 msgid "Edit/Manage Profiles" msgstr "Verwalte/Editiere Profile" -#: ../../mod/profiles.php:621 ../../boot.php:1069 +#: ../../mod/profiles.php:640 ../../boot.php:1066 msgid "Change profile photo" msgstr "Profilbild ändern" -#: ../../mod/profiles.php:622 ../../boot.php:1070 +#: ../../mod/profiles.php:641 ../../boot.php:1067 msgid "Create New Profile" msgstr "Neues Profil anlegen" -#: ../../mod/profiles.php:633 ../../boot.php:1080 +#: ../../mod/profiles.php:652 ../../boot.php:1077 msgid "Profile Image" msgstr "Profilbild" -#: ../../mod/profiles.php:635 ../../boot.php:1083 +#: ../../mod/profiles.php:654 ../../boot.php:1080 msgid "visible to everybody" msgstr "sichtbar für jeden" -#: ../../mod/profiles.php:636 ../../boot.php:1084 +#: ../../mod/profiles.php:655 ../../boot.php:1081 msgid "Edit visibility" msgstr "Sichtbarkeit bearbeiten" -#: ../../mod/filer.php:29 ../../include/conversation.php:926 +#: ../../mod/filer.php:29 ../../include/conversation.php:941 msgid "Save to Folder:" msgstr "In diesen Ordner verschieben:" @@ -4121,7 +4097,7 @@ msgstr "Hinzufügen" msgid "No entries." msgstr "Keine Einträge" -#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:621 +#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:626 #: ../../include/contact_widgets.php:34 msgid "Friend Suggestions" msgstr "Kontaktvorschläge" @@ -4136,7 +4112,7 @@ msgstr "Keine Vorschläge. Falls der Server frisch aufgesetzt wurde, versuche es msgid "Ignore/Hide" msgstr "Ignorieren/Verbergen" -#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:619 +#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:624 msgid "Global Directory" msgstr "Weltweites Verzeichnis" @@ -4246,83 +4222,83 @@ msgid "" " has already been approved." msgstr "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde." -#: ../../mod/dfrn_confirm.php:235 +#: ../../mod/dfrn_confirm.php:237 msgid "Response from remote site was not understood." msgstr "Antwort der Gegenstelle unverständlich." -#: ../../mod/dfrn_confirm.php:244 +#: ../../mod/dfrn_confirm.php:246 msgid "Unexpected response from remote site: " msgstr "Unerwartete Antwort der Gegenstelle: " -#: ../../mod/dfrn_confirm.php:252 +#: ../../mod/dfrn_confirm.php:254 msgid "Confirmation completed successfully." msgstr "Bestätigung erfolgreich abgeschlossen." -#: ../../mod/dfrn_confirm.php:254 ../../mod/dfrn_confirm.php:268 -#: ../../mod/dfrn_confirm.php:275 +#: ../../mod/dfrn_confirm.php:256 ../../mod/dfrn_confirm.php:270 +#: ../../mod/dfrn_confirm.php:277 msgid "Remote site reported: " msgstr "Gegenstelle meldet: " -#: ../../mod/dfrn_confirm.php:266 +#: ../../mod/dfrn_confirm.php:268 msgid "Temporary failure. Please wait and try again." msgstr "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal." -#: ../../mod/dfrn_confirm.php:273 +#: ../../mod/dfrn_confirm.php:275 msgid "Introduction failed or was revoked." msgstr "Kontaktanfrage schlug fehl oder wurde zurück gezogen." -#: ../../mod/dfrn_confirm.php:418 +#: ../../mod/dfrn_confirm.php:420 msgid "Unable to set contact photo." msgstr "Konnte das Bild des Kontakts nicht speichern." -#: ../../mod/dfrn_confirm.php:475 ../../include/diaspora.php:507 +#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507 #: ../../include/conversation.php:101 #, php-format msgid "%1$s is now friends with %2$s" msgstr "%1$s ist nun mit %2$s befreundet" -#: ../../mod/dfrn_confirm.php:557 +#: ../../mod/dfrn_confirm.php:562 #, php-format msgid "No user record found for '%s' " msgstr "Für '%s' wurde kein Nutzer gefunden" -#: ../../mod/dfrn_confirm.php:567 +#: ../../mod/dfrn_confirm.php:572 msgid "Our site encryption key is apparently messed up." msgstr "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend im Arsch." -#: ../../mod/dfrn_confirm.php:578 +#: ../../mod/dfrn_confirm.php:583 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden." -#: ../../mod/dfrn_confirm.php:599 +#: ../../mod/dfrn_confirm.php:604 msgid "Contact record was not found for you on our site." msgstr "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden." -#: ../../mod/dfrn_confirm.php:613 +#: ../../mod/dfrn_confirm.php:618 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server." -#: ../../mod/dfrn_confirm.php:633 +#: ../../mod/dfrn_confirm.php:638 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "Die ID, die uns dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal." -#: ../../mod/dfrn_confirm.php:644 +#: ../../mod/dfrn_confirm.php:649 msgid "Unable to set your contact credentials on our system." msgstr "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden." -#: ../../mod/dfrn_confirm.php:709 +#: ../../mod/dfrn_confirm.php:716 msgid "Unable to update your contact profile details on our system" msgstr "Die Updates für dein Profil konnten nicht gespeichert werden" -#: ../../mod/dfrn_confirm.php:743 +#: ../../mod/dfrn_confirm.php:750 #, php-format msgid "Connection accepted at %s" msgstr "Auf %s wurde die Verbindung akzeptiert" -#: ../../mod/dfrn_confirm.php:792 +#: ../../mod/dfrn_confirm.php:799 #, php-format msgid "%1$s has joined %2$s" msgstr "%1$s ist %2$s beigetreten" @@ -4532,23 +4508,23 @@ msgid "" "The connection between your accounts on %2$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3$sre-authenticate the Facebook-connector%4$s." msgstr "Hi %1$s,\n\ndie Verbindung von deinem Account auf %2$s und Facebook funktioniert derzeit nicht. Dies ist im Allgemeinen das Ergebnis einer Passwortänderung bei Facebook. Um die Verbindung wieder zu aktivieren musst du %3$sden Facebook-Connector neu Authentifizieren%4$s." -#: ../../addon/privacy_image_cache/privacy_image_cache.php:145 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:147 msgid "Lifetime of the cache (in hours)" msgstr "Lebenszeit des Caches (in Stunden)" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:150 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:152 msgid "Cache Statistics" msgstr "Cache Statistik" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:153 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:155 msgid "Number of items" msgstr "Anzahl der Einträge" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:155 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:157 msgid "Size of the cache" msgstr "Größe des Caches" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:157 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:159 msgid "Delete the whole cache" msgstr "Cache leeren" @@ -4675,7 +4651,7 @@ msgstr "Foren" #: ../../addon/page/page.php:63 ../../addon/showmore/showmore.php:87 #: ../../include/contact_widgets.php:188 ../../include/conversation.php:470 -#: ../../boot.php:518 +#: ../../boot.php:515 msgid "show more" msgstr "mehr anzeigen" @@ -4691,7 +4667,7 @@ msgstr "Aktiviere Planeten Plugin" #: ../../addon/communityhome/communityhome.php:34 #: ../../addon/communityhome/twillingham/communityhome.php:28 #: ../../addon/communityhome/twillingham/communityhome.php:34 -#: ../../include/nav.php:64 ../../boot.php:816 +#: ../../include/nav.php:64 ../../boot.php:813 msgid "Login" msgstr "Anmeldung" @@ -4719,7 +4695,7 @@ msgid "Latest likes" msgstr "Neueste Favoriten" #: ../../addon/communityhome/communityhome.php:155 -#: ../../view/theme/diabook/theme.php:557 ../../include/text.php:1309 +#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1313 #: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "Veranstaltung" @@ -4878,15 +4854,15 @@ msgstr "Beitrag via Friendica" #: ../../addon/startpage/startpage.php:83 msgid "Startpage Settings" -msgstr "" +msgstr "Startseiten-Einstellungen" #: ../../addon/startpage/startpage.php:85 msgid "Home page to load after login - leave blank for profile wall" -msgstr "" +msgstr "Seite, die nach dem Anmelden geladen werden soll. Leer = Pinnwand" #: ../../addon/startpage/startpage.php:88 msgid "Examples: "network" or "notifications/system"" -msgstr "" +msgstr "Beispiele: network, notifications/system" #: ../../addon/geonames/geonames.php:143 msgid "Geonames settings updated." @@ -4908,7 +4884,7 @@ msgstr "Dein Konto auf %s wird in ein paar Tagen verfallen." #: ../../addon/public_server/public_server.php:127 msgid "Your Friendica account is about to expire." -msgstr "" +msgstr "Dein Friendica-Account wird in Kürze auslaufen." #: ../../addon/public_server/public_server.php:128 #, php-format @@ -4916,7 +4892,7 @@ msgid "" "Hi %1$s,\n" "\n" "Your account on %2$s will expire in less than five days. You may keep your account by logging in at least once every 30 days" -msgstr "" +msgstr "Hallo %1$s,\n\ndein Account auf %2$s wird in weniger als fünf Tagen auslaufen. Du kannst das verhindern, indem du dich mindestens einmal alle 30 Tage anmeldest." #: ../../addon/js_upload/js_upload.php:43 msgid "Upload a file" @@ -5439,11 +5415,11 @@ msgstr "Standardmäßig auf WordPress veröffentlichen" #: ../../addon/wppost/wppost.php:102 msgid "Provide a backlink to the Friendica post" -msgstr "" +msgstr "Einen zurück zum Friendica-Beitrag hinzufügen" #: ../../addon/wppost/wppost.php:204 msgid "Read the original post and comment stream on Friendica" -msgstr "" +msgstr "Den Original-Beitrag samt Kommentaren bei Friendica lesen" #: ../../addon/showmore/showmore.php:38 msgid "\"Show more\" Settings" @@ -5676,153 +5652,153 @@ msgstr "Theme Breite festlegen" msgid "Color scheme" msgstr "Farbschema" -#: ../../view/theme/diabook/theme.php:122 ../../include/nav.php:49 +#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:49 #: ../../include/nav.php:115 msgid "Your posts and conversations" msgstr "Deine Beiträge und Unterhaltungen" -#: ../../view/theme/diabook/theme.php:123 ../../include/nav.php:50 +#: ../../view/theme/diabook/theme.php:128 ../../include/nav.php:50 msgid "Your profile page" msgstr "Deine Profilseite" -#: ../../view/theme/diabook/theme.php:124 +#: ../../view/theme/diabook/theme.php:129 msgid "Your contacts" msgstr "Deine Kontakte" -#: ../../view/theme/diabook/theme.php:125 ../../include/nav.php:51 +#: ../../view/theme/diabook/theme.php:130 ../../include/nav.php:51 msgid "Your photos" msgstr "Deine Fotos" -#: ../../view/theme/diabook/theme.php:126 ../../include/nav.php:52 +#: ../../view/theme/diabook/theme.php:131 ../../include/nav.php:52 msgid "Your events" msgstr "Deine Ereignisse" -#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:53 +#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53 msgid "Personal notes" msgstr "Persönliche Notizen" -#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:53 +#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53 msgid "Your personal photos" msgstr "Deine privaten Fotos" -#: ../../view/theme/diabook/theme.php:129 -#: ../../view/theme/diabook/theme.php:638 -#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:134 +#: ../../view/theme/diabook/theme.php:643 +#: ../../view/theme/diabook/theme.php:747 #: ../../view/theme/diabook/config.php:201 msgid "Community Pages" msgstr "Foren" -#: ../../view/theme/diabook/theme.php:485 -#: ../../view/theme/diabook/theme.php:744 +#: ../../view/theme/diabook/theme.php:490 +#: ../../view/theme/diabook/theme.php:749 #: ../../view/theme/diabook/config.php:203 msgid "Community Profiles" msgstr "Community-Profile" -#: ../../view/theme/diabook/theme.php:506 -#: ../../view/theme/diabook/theme.php:749 +#: ../../view/theme/diabook/theme.php:511 +#: ../../view/theme/diabook/theme.php:754 #: ../../view/theme/diabook/config.php:208 msgid "Last users" msgstr "Letzte Nutzer" -#: ../../view/theme/diabook/theme.php:535 -#: ../../view/theme/diabook/theme.php:751 +#: ../../view/theme/diabook/theme.php:540 +#: ../../view/theme/diabook/theme.php:756 #: ../../view/theme/diabook/config.php:210 msgid "Last likes" msgstr "Zuletzt gemocht" -#: ../../view/theme/diabook/theme.php:580 -#: ../../view/theme/diabook/theme.php:750 +#: ../../view/theme/diabook/theme.php:585 +#: ../../view/theme/diabook/theme.php:755 #: ../../view/theme/diabook/config.php:209 msgid "Last photos" msgstr "Letzte Fotos" -#: ../../view/theme/diabook/theme.php:617 -#: ../../view/theme/diabook/theme.php:747 +#: ../../view/theme/diabook/theme.php:622 +#: ../../view/theme/diabook/theme.php:752 #: ../../view/theme/diabook/config.php:206 msgid "Find Friends" msgstr "Freunde finden" -#: ../../view/theme/diabook/theme.php:618 +#: ../../view/theme/diabook/theme.php:623 msgid "Local Directory" msgstr "Lokales Verzeichnis" -#: ../../view/theme/diabook/theme.php:620 ../../include/contact_widgets.php:35 +#: ../../view/theme/diabook/theme.php:625 ../../include/contact_widgets.php:35 msgid "Similar Interests" msgstr "Ähnliche Interessen" -#: ../../view/theme/diabook/theme.php:622 ../../include/contact_widgets.php:37 +#: ../../view/theme/diabook/theme.php:627 ../../include/contact_widgets.php:37 msgid "Invite Friends" msgstr "Freunde einladen" -#: ../../view/theme/diabook/theme.php:673 -#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:678 +#: ../../view/theme/diabook/theme.php:748 #: ../../view/theme/diabook/config.php:202 msgid "Earth Layers" msgstr "Earth Layers" -#: ../../view/theme/diabook/theme.php:678 +#: ../../view/theme/diabook/theme.php:683 msgid "Set zoomfactor for Earth Layers" msgstr "Zoomfaktor der Earth Layer" -#: ../../view/theme/diabook/theme.php:679 +#: ../../view/theme/diabook/theme.php:684 #: ../../view/theme/diabook/config.php:199 msgid "Set longitude (X) for Earth Layers" msgstr "Longitude (X) der Earth Layer" -#: ../../view/theme/diabook/theme.php:680 +#: ../../view/theme/diabook/theme.php:685 #: ../../view/theme/diabook/config.php:200 msgid "Set latitude (Y) for Earth Layers" msgstr "Latitude (Y) der Earth Layer" -#: ../../view/theme/diabook/theme.php:693 -#: ../../view/theme/diabook/theme.php:745 +#: ../../view/theme/diabook/theme.php:698 +#: ../../view/theme/diabook/theme.php:750 #: ../../view/theme/diabook/config.php:204 msgid "Help or @NewHere ?" msgstr "Hilfe oder @NewHere" -#: ../../view/theme/diabook/theme.php:700 -#: ../../view/theme/diabook/theme.php:746 +#: ../../view/theme/diabook/theme.php:705 +#: ../../view/theme/diabook/theme.php:751 #: ../../view/theme/diabook/config.php:205 msgid "Connect Services" msgstr "Verbinde Dienste" -#: ../../view/theme/diabook/theme.php:707 -#: ../../view/theme/diabook/theme.php:748 +#: ../../view/theme/diabook/theme.php:712 +#: ../../view/theme/diabook/theme.php:753 msgid "Last Tweets" msgstr "Neueste Tweets" -#: ../../view/theme/diabook/theme.php:710 +#: ../../view/theme/diabook/theme.php:715 #: ../../view/theme/diabook/config.php:197 msgid "Set twitter search term" msgstr "Twitter Suchbegriff" -#: ../../view/theme/diabook/theme.php:730 -#: ../../view/theme/diabook/theme.php:731 -#: ../../view/theme/diabook/theme.php:732 -#: ../../view/theme/diabook/theme.php:733 -#: ../../view/theme/diabook/theme.php:734 #: ../../view/theme/diabook/theme.php:735 #: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:738 -#: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:288 +#: ../../view/theme/diabook/theme.php:739 +#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:741 +#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:288 msgid "don't show" msgstr "nicht zeigen" -#: ../../view/theme/diabook/theme.php:730 -#: ../../view/theme/diabook/theme.php:731 -#: ../../view/theme/diabook/theme.php:732 -#: ../../view/theme/diabook/theme.php:733 -#: ../../view/theme/diabook/theme.php:734 #: ../../view/theme/diabook/theme.php:735 #: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:738 -#: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:287 +#: ../../view/theme/diabook/theme.php:739 +#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:741 +#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:287 msgid "show" msgstr "zeigen" -#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:745 msgid "Show/hide boxes at right-hand column:" msgstr "Rahmen auf der rechten Seite anzeigen/verbergen" @@ -5863,7 +5839,7 @@ msgstr "Mitte" msgid "Set colour scheme" msgstr "Farbschema wählen" -#: ../../include/profile_advanced.php:17 ../../boot.php:1105 +#: ../../include/profile_advanced.php:17 ../../boot.php:1102 msgid "Gender:" msgstr "Geschlecht:" @@ -5875,8 +5851,8 @@ msgstr "j F, Y" msgid "j F" msgstr "j F" -#: ../../include/profile_advanced.php:30 ../../include/datetime.php:448 -#: ../../include/items.php:1419 +#: ../../include/profile_advanced.php:30 ../../include/datetime.php:450 +#: ../../include/items.php:1423 msgid "Birthday:" msgstr "Geburtstag:" @@ -5884,59 +5860,64 @@ msgstr "Geburtstag:" msgid "Age:" msgstr "Alter:" -#: ../../include/profile_advanced.php:37 ../../boot.php:1108 +#: ../../include/profile_advanced.php:37 ../../boot.php:1105 msgid "Status:" msgstr "Status:" -#: ../../include/profile_advanced.php:45 ../../boot.php:1110 +#: ../../include/profile_advanced.php:43 +#, php-format +msgid "for %1$d %2$s" +msgstr "für %1$d %2$s" + +#: ../../include/profile_advanced.php:48 ../../boot.php:1107 msgid "Homepage:" msgstr "Homepage:" -#: ../../include/profile_advanced.php:47 +#: ../../include/profile_advanced.php:50 msgid "Tags:" msgstr "Tags" -#: ../../include/profile_advanced.php:51 +#: ../../include/profile_advanced.php:54 msgid "Religion:" msgstr "Religion:" -#: ../../include/profile_advanced.php:53 +#: ../../include/profile_advanced.php:56 msgid "About:" msgstr "Über:" -#: ../../include/profile_advanced.php:55 +#: ../../include/profile_advanced.php:58 msgid "Hobbies/Interests:" msgstr "Hobbies/Interessen:" -#: ../../include/profile_advanced.php:57 +#: ../../include/profile_advanced.php:60 msgid "Contact information and Social Networks:" msgstr "Kontaktinformationen und Soziale Netzwerke:" -#: ../../include/profile_advanced.php:59 +#: ../../include/profile_advanced.php:62 msgid "Musical interests:" msgstr "Musikalische Interessen:" -#: ../../include/profile_advanced.php:61 +#: ../../include/profile_advanced.php:64 msgid "Books, literature:" msgstr "Literatur/Bücher:" -#: ../../include/profile_advanced.php:63 +#: ../../include/profile_advanced.php:66 msgid "Television:" msgstr "Fernsehen:" -#: ../../include/profile_advanced.php:65 +#: ../../include/profile_advanced.php:68 msgid "Film/dance/culture/entertainment:" msgstr "Filme/Tänze/Kultur/Unterhaltung:" -#: ../../include/profile_advanced.php:67 +#: ../../include/profile_advanced.php:70 msgid "Love/Romance:" msgstr "Liebesleben:" -#: ../../include/profile_advanced.php:69 +#: ../../include/profile_advanced.php:72 msgid "Work/employment:" msgstr "Arbeit/Beschäftigung:" -#: ../../include/profile_advanced.php:71 +#: ../../include/profile_advanced.php:74 msgid "School/education:" msgstr "Schule/Ausbildung:" @@ -6068,187 +6049,187 @@ msgstr "Andere" msgid "Undecided" msgstr "Unentschieden" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Males" msgstr "Männer" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Females" msgstr "Frauen" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Gay" msgstr "Schwul" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Lesbian" msgstr "Lesbisch" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "No Preference" msgstr "Keine Vorlieben" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Bisexual" msgstr "Bisexuell" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Autosexual" msgstr "Autosexual" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Abstinent" msgstr "Abstinent" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Virgin" msgstr "Jungfrauen" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Deviant" msgstr "Deviant" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Fetish" msgstr "Fetish" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Oodles" msgstr "Oodles" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Nonsexual" msgstr "Nonsexual" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Single" msgstr "Single" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Lonely" msgstr "Einsam" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Available" msgstr "Verfügbar" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Unavailable" msgstr "Nicht verfügbar" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Has crush" msgstr "verknallt" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Infatuated" msgstr "verliebt" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Dating" msgstr "Dating" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Unfaithful" msgstr "Untreu" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Sex Addict" msgstr "Sexbesessen" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 ../../include/user.php:272 msgid "Friends" msgstr "Freunde" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Friends/Benefits" msgstr "Freunde/Zuwendungen" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Casual" msgstr "Casual" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Engaged" msgstr "Verlobt" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Married" msgstr "Verheiratet" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Imaginarily married" msgstr "imaginär verheiratet" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Partners" msgstr "Partner" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Cohabiting" msgstr "zusammenlebend" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Common law" msgstr "wilde Ehe" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Happy" msgstr "Glücklich" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Not looking" msgstr "Nicht auf der Suche" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Swinger" msgstr "Swinger" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Betrayed" msgstr "Betrogen" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Separated" msgstr "Getrennt" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Unstable" msgstr "Unstabil" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Divorced" msgstr "Geschieden" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Imaginarily divorced" msgstr "imaginär geschieden" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Widowed" msgstr "Verwitwet" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Uncertain" msgstr "Unsicher" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "It's complicated" msgstr "Ist kompliziert" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Don't care" msgstr "Ist mir nicht wichtig" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Ask me" msgstr "Frag mich" -#: ../../include/event.php:17 ../../include/bb2diaspora.php:244 +#: ../../include/event.php:17 ../../include/bb2diaspora.php:249 msgid "Starts:" msgstr "Beginnt:" -#: ../../include/event.php:27 ../../include/bb2diaspora.php:252 +#: ../../include/event.php:27 ../../include/bb2diaspora.php:257 msgid "Finishes:" msgstr "Endet:" @@ -6288,127 +6269,127 @@ msgid_plural "%d Contacts" msgstr[0] "%d Kontakt" msgstr[1] "%d Kontakte" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Monday" msgstr "Montag" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Tuesday" msgstr "Dienstag" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Wednesday" msgstr "Mittwoch" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Thursday" msgstr "Donnerstag" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Friday" msgstr "Freitag" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Saturday" msgstr "Samstag" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Sunday" msgstr "Sonntag" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "January" msgstr "Januar" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "February" msgstr "Februar" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "March" msgstr "März" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "April" msgstr "April" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "May" msgstr "Mai" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "June" msgstr "Juni" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "July" msgstr "Juli" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "August" msgstr "August" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "September" msgstr "September" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "October" msgstr "Oktober" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "November" msgstr "November" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "December" msgstr "Dezember" -#: ../../include/text.php:920 +#: ../../include/text.php:924 msgid "bytes" msgstr "Byte" -#: ../../include/text.php:940 ../../include/text.php:955 +#: ../../include/text.php:944 ../../include/text.php:959 msgid "remove" msgstr "löschen" -#: ../../include/text.php:940 ../../include/text.php:955 +#: ../../include/text.php:944 ../../include/text.php:959 msgid "[remove]" msgstr "[löschen]" -#: ../../include/text.php:943 +#: ../../include/text.php:947 msgid "Categories:" msgstr "Kategorien:" -#: ../../include/text.php:958 +#: ../../include/text.php:962 msgid "Filed under:" msgstr "Abgelegt unter:" -#: ../../include/text.php:974 ../../include/text.php:986 +#: ../../include/text.php:978 ../../include/text.php:990 msgid "Click to open/close" msgstr "Zum öffnen/schließen klicken" -#: ../../include/text.php:1091 +#: ../../include/text.php:1095 ../../include/user.php:230 msgid "default" msgstr "standard" -#: ../../include/text.php:1103 +#: ../../include/text.php:1107 msgid "Select an alternate language" msgstr "Alternative Sprache auswählen" -#: ../../include/text.php:1313 +#: ../../include/text.php:1317 msgid "activity" msgstr "Aktivität" -#: ../../include/text.php:1315 +#: ../../include/text.php:1319 msgid "comment" msgstr "Kommentar" -#: ../../include/text.php:1316 +#: ../../include/text.php:1320 msgid "post" msgstr "Beitrag" -#: ../../include/text.php:1471 +#: ../../include/text.php:1475 msgid "Item filed" msgstr "Beitrag abgelegt" @@ -6420,7 +6401,7 @@ msgstr "Freigabe-Benachrichtigung von Diaspora" msgid "Attachments:" msgstr "Anhänge:" -#: ../../include/diaspora.php:2160 +#: ../../include/diaspora.php:2168 #, php-format msgid "[Relayed] Comment authored by %s from network %s" msgstr "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk" @@ -6446,7 +6427,7 @@ msgstr "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende B #: ../../include/group.php:176 msgid "Default privacy group for new contacts" -msgstr "" +msgstr "Voreingestellte Gruppe für neue Kontakte" #: ../../include/group.php:195 msgid "Everybody" @@ -6472,7 +6453,7 @@ msgstr "Neue Gruppe erstellen" msgid "Contacts not in any group" msgstr "Kontakte in keiner Gruppe" -#: ../../include/nav.php:46 ../../boot.php:815 +#: ../../include/nav.php:46 ../../boot.php:812 msgid "Logout" msgstr "Abmelden" @@ -6480,7 +6461,7 @@ msgstr "Abmelden" msgid "End this session" msgstr "Diese Sitzung beenden" -#: ../../include/nav.php:49 ../../boot.php:1502 +#: ../../include/nav.php:49 ../../boot.php:1499 msgid "Status" msgstr "Status" @@ -6560,11 +6541,11 @@ msgstr "Verwalten" msgid "Manage other pages" msgstr "Andere Seiten verwalten" -#: ../../include/nav.php:138 ../../boot.php:1063 +#: ../../include/nav.php:138 ../../boot.php:1060 msgid "Profiles" msgstr "Profile" -#: ../../include/nav.php:138 ../../boot.php:1063 +#: ../../include/nav.php:138 ../../boot.php:1060 msgid "Manage/edit profiles" msgstr "Profile verwalten/editieren" @@ -6647,13 +6628,13 @@ msgstr "Kategorien" msgid "Logged out." msgstr "Abgemeldet." -#: ../../include/auth.php:113 +#: ../../include/auth.php:115 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "Beim Versuch dich mit der von dir angegebenen OpenID anzumelden trat ein Problem auf. Bitte überprüfe, dass du die OpenID richtig geschrieben hast." -#: ../../include/auth.php:113 +#: ../../include/auth.php:115 msgid "The error message was:" msgstr "Die Fehlermeldung lautete:" @@ -6725,7 +6706,7 @@ msgstr "Sekunde" msgid "seconds" msgstr "Sekunden" -#: ../../include/datetime.php:277 +#: ../../include/datetime.php:278 #, php-format msgid "%1$d %2$s ago" msgstr "%1$d %2$s her" @@ -6943,11 +6924,11 @@ msgstr "Foto:" msgid "Please visit %s to approve or reject the suggestion." msgstr "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen." -#: ../../include/items.php:2736 +#: ../../include/items.php:2740 msgid "A new person is sharing with you at " msgstr "Eine neue Person teilt mit dir auf " -#: ../../include/items.php:2736 +#: ../../include/items.php:2740 msgid "You have a new follower at " msgstr "Du hast einen neuen Kontakt auf " @@ -6960,6 +6941,74 @@ msgstr "Bild/Foto" msgid "link" msgstr "Verweis" +#: ../../include/user.php:38 +msgid "An invitation is required." +msgstr "Du benötigst eine Einladung." + +#: ../../include/user.php:43 +msgid "Invitation could not be verified." +msgstr "Die Einladung konnte nicht überprüft werden." + +#: ../../include/user.php:51 +msgid "Invalid OpenID url" +msgstr "Ungültige OpenID URL" + +#: ../../include/user.php:66 +msgid "Please enter the required information." +msgstr "Bitte trage die erforderlichen Informationen ein." + +#: ../../include/user.php:80 +msgid "Please use a shorter name." +msgstr "Bitte verwende einen kürzeren Namen." + +#: ../../include/user.php:82 +msgid "Name too short." +msgstr "Der Name ist zu kurz." + +#: ../../include/user.php:97 +msgid "That doesn't appear to be your full (First Last) name." +msgstr "Das scheint nicht dein kompletter Name (Vor- und Nachname) zu sein." + +#: ../../include/user.php:102 +msgid "Your email domain is not among those allowed on this site." +msgstr "Die Domain deiner E-Mail Adresse ist auf dieser Seite nicht erlaubt." + +#: ../../include/user.php:105 +msgid "Not a valid email address." +msgstr "Keine gültige E-Mail-Adresse." + +#: ../../include/user.php:115 +msgid "Cannot use that email." +msgstr "Konnte diese E-Mail-Adresse nicht verwenden." + +#: ../../include/user.php:121 +msgid "" +"Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and " +"must also begin with a letter." +msgstr "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\", \"_\" und \"-\") bestehen, außerdem muss er mit einem Buchstaben beginnen." + +#: ../../include/user.php:127 ../../include/user.php:219 +msgid "Nickname is already registered. Please choose another." +msgstr "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen." + +#: ../../include/user.php:137 +msgid "" +"Nickname was once registered here and may not be re-used. Please choose " +"another." +msgstr "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen." + +#: ../../include/user.php:153 +msgid "SERIOUS ERROR: Generation of security keys failed." +msgstr "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden." + +#: ../../include/user.php:205 +msgid "An error occurred during registration. Please try again." +msgstr "Wärend der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal." + +#: ../../include/user.php:240 +msgid "An error occurred creating your default profile. Please try again." +msgstr "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal." + #: ../../include/security.php:21 msgid "Welcome " msgstr "Willkommen " @@ -6982,30 +7031,30 @@ msgstr "Das Sicherheitsmerkmal war nicht korrekt. Das passiert meistens wenn das msgid "stopped following" msgstr "wird nicht mehr gefolgt" -#: ../../include/Contact.php:203 ../../include/conversation.php:821 +#: ../../include/Contact.php:203 ../../include/conversation.php:836 msgid "View Status" msgstr "Pinnwand anschauen" -#: ../../include/Contact.php:204 ../../include/conversation.php:822 +#: ../../include/Contact.php:204 ../../include/conversation.php:837 msgid "View Profile" msgstr "Profil anschauen" -#: ../../include/Contact.php:205 ../../include/conversation.php:823 +#: ../../include/Contact.php:205 ../../include/conversation.php:838 msgid "View Photos" msgstr "Bilder anschauen" #: ../../include/Contact.php:206 ../../include/Contact.php:219 -#: ../../include/conversation.php:824 +#: ../../include/conversation.php:839 msgid "Network Posts" msgstr "Netzwerkbeiträge" #: ../../include/Contact.php:207 ../../include/Contact.php:219 -#: ../../include/conversation.php:825 +#: ../../include/conversation.php:840 msgid "Edit Contact" msgstr "Kontakt bearbeiten" #: ../../include/Contact.php:208 ../../include/Contact.php:219 -#: ../../include/conversation.php:826 +#: ../../include/conversation.php:841 msgid "Send PM" msgstr "Private Nachricht senden" @@ -7018,17 +7067,17 @@ msgstr "Nachricht/Beitrag" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert" -#: ../../include/conversation.php:321 ../../include/conversation.php:587 +#: ../../include/conversation.php:321 ../../include/conversation.php:602 msgid "Select" msgstr "Auswählen" -#: ../../include/conversation.php:338 ../../include/conversation.php:680 -#: ../../include/conversation.php:681 +#: ../../include/conversation.php:338 ../../include/conversation.php:695 +#: ../../include/conversation.php:696 #, php-format msgid "View %s's profile @ %s" msgstr "Das Profil von %s auf %s betrachten." -#: ../../include/conversation.php:348 ../../include/conversation.php:692 +#: ../../include/conversation.php:348 ../../include/conversation.php:707 #, php-format msgid "%s from %s" msgstr "%s von %s" @@ -7044,283 +7093,283 @@ msgid_plural "%d comments" msgstr[0] "%d Kommentar" msgstr[1] "%d Kommentare" -#: ../../include/conversation.php:533 +#: ../../include/conversation.php:548 msgid "like" msgstr "mag ich" -#: ../../include/conversation.php:534 +#: ../../include/conversation.php:549 msgid "dislike" msgstr "mag ich nicht" -#: ../../include/conversation.php:536 +#: ../../include/conversation.php:551 msgid "Share this" msgstr "Teile dieses" -#: ../../include/conversation.php:536 +#: ../../include/conversation.php:551 msgid "share" msgstr "Teilen" -#: ../../include/conversation.php:560 +#: ../../include/conversation.php:575 msgid "Bold" msgstr "Fett" -#: ../../include/conversation.php:561 +#: ../../include/conversation.php:576 msgid "Italic" msgstr "Kursiv" -#: ../../include/conversation.php:562 +#: ../../include/conversation.php:577 msgid "Underline" msgstr "Unterstrichen" -#: ../../include/conversation.php:563 +#: ../../include/conversation.php:578 msgid "Quote" msgstr "Zitat" -#: ../../include/conversation.php:564 +#: ../../include/conversation.php:579 msgid "Code" msgstr "Code" -#: ../../include/conversation.php:565 +#: ../../include/conversation.php:580 msgid "Image" msgstr "Bild" -#: ../../include/conversation.php:566 +#: ../../include/conversation.php:581 msgid "Link" msgstr "Verweis" -#: ../../include/conversation.php:567 +#: ../../include/conversation.php:582 msgid "Video" msgstr "Video" -#: ../../include/conversation.php:600 +#: ../../include/conversation.php:615 msgid "add star" msgstr "markieren" -#: ../../include/conversation.php:601 +#: ../../include/conversation.php:616 msgid "remove star" msgstr "Markierung entfernen" -#: ../../include/conversation.php:602 +#: ../../include/conversation.php:617 msgid "toggle star status" msgstr "Markierung umschalten" -#: ../../include/conversation.php:605 +#: ../../include/conversation.php:620 msgid "starred" msgstr "markiert" -#: ../../include/conversation.php:606 +#: ../../include/conversation.php:621 msgid "add tag" msgstr "Tag hinzufügen" -#: ../../include/conversation.php:610 +#: ../../include/conversation.php:625 msgid "save to folder" msgstr "In Ordner speichern" -#: ../../include/conversation.php:682 +#: ../../include/conversation.php:697 msgid "to" msgstr "zu" -#: ../../include/conversation.php:683 +#: ../../include/conversation.php:698 msgid "Wall-to-Wall" msgstr "Wall-to-Wall" -#: ../../include/conversation.php:684 +#: ../../include/conversation.php:699 msgid "via Wall-To-Wall:" msgstr "via Wall-To-Wall:" -#: ../../include/conversation.php:729 +#: ../../include/conversation.php:744 msgid "Delete Selected Items" msgstr "Lösche die markierten Beiträge" -#: ../../include/conversation.php:880 +#: ../../include/conversation.php:895 #, php-format msgid "%s likes this." msgstr "%s mag das." -#: ../../include/conversation.php:880 +#: ../../include/conversation.php:895 #, php-format msgid "%s doesn't like this." msgstr "%s mag das nicht." -#: ../../include/conversation.php:884 +#: ../../include/conversation.php:899 #, php-format msgid "%2$d people like this." msgstr "%2$d Leute mögen das." -#: ../../include/conversation.php:886 +#: ../../include/conversation.php:901 #, php-format msgid "%2$d people don't like this." msgstr "%2$d Leute mögen das nicht." -#: ../../include/conversation.php:892 +#: ../../include/conversation.php:907 msgid "and" msgstr "und" -#: ../../include/conversation.php:895 +#: ../../include/conversation.php:910 #, php-format msgid ", and %d other people" msgstr " und %d andere" -#: ../../include/conversation.php:896 +#: ../../include/conversation.php:911 #, php-format msgid "%s like this." msgstr "%s mögen das." -#: ../../include/conversation.php:896 +#: ../../include/conversation.php:911 #, php-format msgid "%s don't like this." msgstr "%s mögen das nicht." -#: ../../include/conversation.php:921 +#: ../../include/conversation.php:936 msgid "Visible to everybody" msgstr "Für jedermann sichtbar" -#: ../../include/conversation.php:923 +#: ../../include/conversation.php:938 msgid "Please enter a video link/URL:" msgstr "Bitte Link/URL zum Video einfügen:" -#: ../../include/conversation.php:924 +#: ../../include/conversation.php:939 msgid "Please enter an audio link/URL:" msgstr "Bitte Link/URL zum Audio einfügen:" -#: ../../include/conversation.php:925 +#: ../../include/conversation.php:940 msgid "Tag term:" msgstr "Tag:" -#: ../../include/conversation.php:927 +#: ../../include/conversation.php:942 msgid "Where are you right now?" msgstr "Wo hältst du dich jetzt gerade auf?" -#: ../../include/conversation.php:970 +#: ../../include/conversation.php:985 msgid "upload photo" msgstr "Bild hochladen" -#: ../../include/conversation.php:972 +#: ../../include/conversation.php:987 msgid "attach file" msgstr "Datei anhängen" -#: ../../include/conversation.php:974 +#: ../../include/conversation.php:989 msgid "web link" msgstr "Weblink" -#: ../../include/conversation.php:975 +#: ../../include/conversation.php:990 msgid "Insert video link" msgstr "Video-Adresse einfügen" -#: ../../include/conversation.php:976 +#: ../../include/conversation.php:991 msgid "video link" msgstr "Video-Link" -#: ../../include/conversation.php:977 +#: ../../include/conversation.php:992 msgid "Insert audio link" msgstr "Audio-Adresse einfügen" -#: ../../include/conversation.php:978 +#: ../../include/conversation.php:993 msgid "audio link" msgstr "Audio-Link" -#: ../../include/conversation.php:980 +#: ../../include/conversation.php:995 msgid "set location" msgstr "Ort setzen" -#: ../../include/conversation.php:982 +#: ../../include/conversation.php:997 msgid "clear location" msgstr "Ort löschen" -#: ../../include/conversation.php:989 +#: ../../include/conversation.php:1004 msgid "permissions" msgstr "Zugriffsrechte" -#: ../../boot.php:516 +#: ../../boot.php:513 msgid "Delete this item?" msgstr "Diesen Beitrag löschen?" -#: ../../boot.php:519 +#: ../../boot.php:516 msgid "show fewer" msgstr "weniger anzeigen" -#: ../../boot.php:692 +#: ../../boot.php:689 #, php-format msgid "Update %s failed. See error logs." msgstr "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen." -#: ../../boot.php:694 +#: ../../boot.php:691 #, php-format msgid "Update Error at %s" msgstr "Updatefehler bei %s" -#: ../../boot.php:794 +#: ../../boot.php:791 msgid "Create a New Account" msgstr "Neuen Account erstellen" -#: ../../boot.php:818 +#: ../../boot.php:815 msgid "Nickname or Email address: " msgstr "Spitzname oder Email-Adresse: " -#: ../../boot.php:819 +#: ../../boot.php:816 msgid "Password: " msgstr "Passwort: " -#: ../../boot.php:822 +#: ../../boot.php:819 msgid "Or login using OpenID: " msgstr "Oder melde dich mit deiner OpenID an: " -#: ../../boot.php:828 +#: ../../boot.php:825 msgid "Forgot your password?" msgstr "Passwort vergessen?" -#: ../../boot.php:995 +#: ../../boot.php:992 msgid "Edit profile" msgstr "Profil bearbeiten" -#: ../../boot.php:1055 +#: ../../boot.php:1052 msgid "Message" msgstr "Nachricht" -#: ../../boot.php:1171 ../../boot.php:1247 +#: ../../boot.php:1168 ../../boot.php:1244 msgid "g A l F d" msgstr "l, d. F G \\U\\h\\r" -#: ../../boot.php:1172 ../../boot.php:1248 +#: ../../boot.php:1169 ../../boot.php:1245 msgid "F d" msgstr "d. F" -#: ../../boot.php:1217 ../../boot.php:1288 +#: ../../boot.php:1214 ../../boot.php:1285 msgid "[today]" msgstr "[heute]" -#: ../../boot.php:1229 +#: ../../boot.php:1226 msgid "Birthday Reminders" msgstr "Geburtstagserinnerungen" -#: ../../boot.php:1230 +#: ../../boot.php:1227 msgid "Birthdays this week:" msgstr "Geburtstage diese Woche:" -#: ../../boot.php:1281 +#: ../../boot.php:1278 msgid "[No description]" msgstr "[keine Beschreibung]" -#: ../../boot.php:1299 +#: ../../boot.php:1296 msgid "Event Reminders" msgstr "Veranstaltungserinnerungen" -#: ../../boot.php:1300 +#: ../../boot.php:1297 msgid "Events this week:" msgstr "Veranstaltungen diese Woche" -#: ../../boot.php:1505 +#: ../../boot.php:1502 msgid "Status Messages and Posts" msgstr "Statusnachrichten und Beiträge" -#: ../../boot.php:1511 +#: ../../boot.php:1508 msgid "Profile Details" msgstr "Profildetails" -#: ../../boot.php:1526 +#: ../../boot.php:1523 msgid "Events and Calendar" msgstr "Ereignisse und Kalender" -#: ../../boot.php:1532 +#: ../../boot.php:1529 msgid "Only You Can See This" msgstr "Nur Du Kannst Das Sehen" diff --git a/view/de/strings.php b/view/de/strings.php index 7c127894a..1b0ef4b89 100644 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -98,6 +98,7 @@ $a->strings["Private Message"] = "Private Nachricht"; $a->strings["View Full Size"] = "Betrachte Originalgröße"; $a->strings["Tags: "] = "Tags: "; $a->strings["[Remove any tag]"] = "[Tag entfernen]"; +$a->strings["Rotate CW"] = "Im Uhrzeigersinn rotieren"; $a->strings["New album name"] = "Name des neuen Albums"; $a->strings["Caption"] = "Bildunterschrift"; $a->strings["Add a Tag"] = "Tag hinzufügen"; @@ -166,6 +167,7 @@ $a->strings["Failed to update contact record."] = "Aktualisierung der Kontaktdat $a->strings["Your introduction has been sent."] = "Deine Kontaktanfrage wurde gesendet."; $a->strings["Please login to confirm introduction."] = "Bitte melde dich an, um die Kontaktanfrage zu bestätigen."; $a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Momentan bist du mit einer anderen Identität angemeldet. Bitte melde Dich mit diesem Profil an."; +$a->strings["Hide this contact"] = "Verberge diese Kontakt"; $a->strings["Welcome home %s."] = "Willkommen zurück %s."; $a->strings["Please confirm your introduction/connection request to %s."] = "Bitte bestätige deine Kontaktanfrage bei %s."; $a->strings["Confirm"] = "Bestätigen"; @@ -185,18 +187,14 @@ $a->strings[" - please do not use this form. Instead, enter %s into your Diaspo $a->strings["Your Identity Address:"] = "Adresse deines Profils:"; $a->strings["Submit Request"] = "Anfrage abschicken"; $a->strings["Friendica Social Communications Server - Setup"] = "Friendica-Server für soziale Netzwerke – Setup"; -$a->strings["Database connection"] = "Datenbankverbindung"; $a->strings["Could not connect to database."] = "Verbindung zur Datenbank gescheitert"; $a->strings["Could not create table."] = "Konnte Tabelle nicht erstellen."; $a->strings["Your Friendica site database has been installed."] = "Die Datenbank deiner Friendica Seite wurde installiert."; -$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten."; -$a->strings["Please see the file \"INSTALL.txt\"."] = "Lies bitte die \"INSTALL.txt\"."; -$a->strings["Proceed to registration"] = "Mit der Registrierung fortfahren"; -$a->strings["Proceed with Installation"] = "Mit der Installation fortfahren"; $a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Möglicherweise musst du die Datei \"database.sql\" manuell mit phpmyadmin oder mysql importieren."; -$a->strings["Database import failed."] = "Import der Datenbank schlug fehl."; +$a->strings["Please see the file \"INSTALL.txt\"."] = "Lies bitte die \"INSTALL.txt\"."; $a->strings["System check"] = "Systemtest"; $a->strings["Check again"] = "Noch einmal testen"; +$a->strings["Database connection"] = "Datenbankverbindung"; $a->strings["In order to install Friendica we need to know how to connect to your database."] = "Um Friendica installieren zu können, müssen wir wissen, wie wir zu deiner Datenbank Kontakt aufnehmen können."; $a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere den Hosting Provider oder den Administrator der Seite, falls du Fragen zu diesen Einstellungen haben solltest."; $a->strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die du unten angibst, sollte bereits existieren. Ist dies noch nicht der Fall, erzeuge sie bitte bevor du mit der Installation fortfährst."; @@ -209,8 +207,9 @@ $a->strings["Your account email address must match this in order to use the web $a->strings["Please select a default timezone for your website"] = "Bitte wähle die Standardzeitzone deiner Webseite"; $a->strings["Site settings"] = "Server-Einstellungen"; $a->strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte keine Kommandozeilenversion von PHP im PATH des Servers finden."; +$a->strings["If you don't have a command line version of PHP installed on server, you will not be able to run background polling via cron. See 'Activating scheduled tasks'"] = "Wenn du keine Kommandozeilen Version von PHP auf deinem Server installiert hast, kannst du keine Hintergrundprozesse via cron starten. Siehe 'Activating scheduled tasks'"; $a->strings["PHP executable path"] = "Pfad zu PHP"; -$a->strings["Enter full path to php executable"] = "Kompletter Pfad zum PHP-Executable"; +$a->strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Gib den kompletten Pfad zur ausführbaren Datei von PHP an. Du kannst diesen Feld auch frei lassen und mit der Installation fortfahren."; $a->strings["Command line PHP"] = "Kommandozeilen-PHP"; $a->strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Die Kommandozeilenversion von PHP auf deinem System hat \"register_argc_argv\" nicht aktiviert."; $a->strings["This is required for message delivery to work."] = "Dies wird für die Auslieferung von Nachrichten benötigt."; @@ -232,11 +231,15 @@ $a->strings["Error: mysqli PHP module required but not installed."] = "Fehler: D $a->strings["Error: mb_string PHP module required but not installed."] = "Fehler: mb_string PHP Module wird benötigt ist aber nicht installiert."; $a->strings["The web installer needs to be able to create a file called \".htconfig.php\ in the top folder of your web server and it is unable to do so."] = "Der Installationswizard muss in der Lage sein, eine Datei im Stammverzeichnis deines Webservers anzulegen, ist allerdings derzeit nicht in der Lage, dies zu tun."; $a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "In den meisten Fällen ist dies ein Problem mit den Schreibrechten, der Webserver könnte keine Schreiberlaubnis haben, selbst wenn du sie hast."; -$a->strings["Please check with your site documentation or support people to see if this situation can be corrected."] = "Bitte überprüfe die Einstellungen und frage im Zweifelsfall dein Support Team, um diese Situation zu beheben."; -$a->strings["If not, you may be required to perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Sollte dies nicht möglich sein, musst du die Installation manuell durchführen. Lies dazu bitte in der Datei \"INSTALL.txt\"."; +$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "Nachdem du alles ausgefüllt hast, erhältst du einen Text, den du in eine Datei namens .htconfig.php in deinem Friendica-Wurzelverzeichnis kopieren musst."; +$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "Alternativ kannst du diesen Schritt aber auch überspringen und die Installation manuell durchführen. Eine Anleitung dazu (Englisch) findest du in der Datei INSTALL.txt."; $a->strings[".htconfig.php is writable"] = "Schreibrechte auf .htconfig.php"; +$a->strings["Url rewrite in .htaccess is not working. Check your server configuration."] = "Umschreiben der URLs in der .htaccess funktioniert nicht. Überprüfe die Konfiguration des Servers."; +$a->strings["Url rewrite is working"] = "URL rewrite funktioniert"; $a->strings["The database configuration file \".htconfig.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Die Konfigurationsdatei \".htconfig.php\" konnte nicht angelegt werden. Bitte verwende den angefügten Text, um die Datei im Stammverzeichnis deiner Friendica-Installation zu erzeugen."; $a->strings["Errors encountered creating database tables."] = "Fehler aufgetreten während der Erzeugung der Datenbanktabellen."; +$a->strings["

What next

"] = "

Wie geht es weiter?

"; +$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob (o.ä.) für den Poller einrichten."; $a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; $a->strings["Time Conversion"] = "Zeitumrechnung"; $a->strings["Friendika provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica bietet diese Funktion an, um das Teilen von Events mit den Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann."; @@ -403,8 +406,8 @@ $a->strings[" Please use a shorter name."] = " Bitte verwende einen kürzeren Na $a->strings[" Name too short."] = " Name ist zu kurz."; $a->strings[" Not valid email."] = " Keine gültige E-Mail."; $a->strings[" Cannot change to that email."] = "Ändern der E-Mail nicht möglich. "; -$a->strings["Private forum has no privacy permissions. Using default privacy group."] = ""; -$a->strings["Private forum has no privacy permissions and no default privacy group."] = ""; +$a->strings["Private forum has no privacy permissions. Using default privacy group."] = "Für das private Forum sind keine Zugriffsrechte eingestellt. Die voreingestellte Gruppe für neue Kontakte wird benutzt."; +$a->strings["Private forum has no privacy permissions and no default privacy group."] = "Für das private Forum sind keine Zugriffsrechte eingestellt, und es gibt keine voreingestellte Gruppe für neue Kontakte."; $a->strings["Settings updated."] = "Einstellungen aktualisiert."; $a->strings["Add application"] = "Programm hinzufügen"; $a->strings["Consumer Key"] = "Consumer Key"; @@ -446,16 +449,16 @@ $a->strings["Minimum of 10 seconds, no maximum"] = "Minimal 10 Sekunden, kein Ma $a->strings["Number of items to display on the network page:"] = "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: "; $a->strings["Maximum of 100 items"] = "Maximal 100 Beiträge"; $a->strings["Don't show emoticons"] = "Keine Smilies anzeigen"; -$a->strings["Normal Account"] = "Normaler Account"; +$a->strings["Normal Account Page"] = "Normale Account Seite"; $a->strings["This account is a normal personal profile"] = "Dieser Account ist ein normales persönliches Profil"; -$a->strings["Soapbox Account"] = "Sandkasten-Account"; +$a->strings["Soapbox Page"] = "Sandkasten Seite"; $a->strings["Automatically approve all connection/friend requests as read-only fans"] = "Kontaktanfragen werden automatisch als Nurlese-Fans akzeptiert"; -$a->strings["Community/Celebrity Account"] = "Gemeinschafts-/Promi-Account"; +$a->strings["Community Forum/Celebrity Account"] = "Gemeinschafts Forum / Promi Konto"; $a->strings["Automatically approve all connection/friend requests as read-write fans"] = "Kontaktanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert"; -$a->strings["Automatic Friend Account"] = "Automatischer Freundesaccount"; +$a->strings["Automatic Friend Page"] = "Automatische Freunde Seite"; $a->strings["Automatically approve all connection/friend requests as friends"] = "Kontaktanfragen werden automatisch als Freund akzeptiert"; -$a->strings["Private Forum"] = ""; -$a->strings["Private forum - approved members only [Experimental]"] = ""; +$a->strings["Private Forum [Experimental]"] = "Privates Forum [Versuchsstadium]"; +$a->strings["Private forum - approved members only"] = "Privates Forum - Ausschließlich für Mitglieder"; $a->strings["OpenID:"] = "OpenID:"; $a->strings["(Optional) Allow this OpenID to login to this account."] = "(Optional) Erlaube die Anmeldung für diesen Account mit dieser OpenID."; $a->strings["Publish your default profile in your local site directory?"] = "Veröffentliche dein Standardprofil im Verzeichnis der lokalen Seite?"; @@ -477,6 +480,7 @@ $a->strings["Expire posts:"] = "Beiträge verfallen lassen:"; $a->strings["Expire personal notes:"] = "Persönliche Notizen verfallen lassen:"; $a->strings["Expire starred posts:"] = "Markierte Beiträge verfallen lassen:"; $a->strings["Expire photos:"] = "Fotos verfallen lassen:"; +$a->strings["Only expire posts by others:"] = "Nur Beiträge anderer verfallen"; $a->strings["Account Settings"] = "Account-Einstellungen"; $a->strings["Password Settings"] = "Passwort-Einstellungen"; $a->strings["New Password:"] = "Neues Passwort:"; @@ -507,7 +511,8 @@ $a->strings["Someone writes a followup comment"] = "– jemand auch einen Kommen $a->strings["You receive a private message"] = "– du eine private Nachricht erhältst"; $a->strings["You receive a friend suggestion"] = "- du eine Empfehlung erhältst"; $a->strings["You are tagged in a post"] = "- du in einem Beitrag erwähnt wurdest"; -$a->strings["Advanced Page Settings"] = "Erweiterte Seiten-Einstellungen"; +$a->strings["Advanced Account/Page Type Settings"] = ""; +$a->strings["Change the behaviour of this account for special situations"] = "Ändere das Verhalten deines Accounts für spezielle Situationen."; $a->strings["Manage Identities and/or Pages"] = "Verwalte Identitäten und/oder Seiten"; $a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Wechsle zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppen-Seiten, die deine Zugangsdetails teilen oder zu denen du \"Manage\" Befugnisse bekommen hast."; $a->strings["Select an identity to manage: "] = "Wähle eine Identität zum Verwalten: "; @@ -590,22 +595,6 @@ $a->strings["Visible To"] = "Sichtbar für"; $a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profilzugriff)"; $a->strings["No contacts."] = "Keine Kontakte."; $a->strings["View Contacts"] = "Kontakte anzeigen"; -$a->strings["An invitation is required."] = "Du benötigst eine Einladung."; -$a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht überprüft werden."; -$a->strings["Invalid OpenID url"] = "Ungültige OpenID URL"; -$a->strings["Please enter the required information."] = "Bitte trage die erforderlichen Informationen ein."; -$a->strings["Please use a shorter name."] = "Bitte verwende einen kürzeren Namen."; -$a->strings["Name too short."] = "Der Name ist zu kurz."; -$a->strings["That doesn't appear to be your full (First Last) name."] = "Das scheint nicht dein kompletter Name (Vor- und Nachname) zu sein."; -$a->strings["Your email domain is not among those allowed on this site."] = "Die Domain deiner E-Mail Adresse ist auf dieser Seite nicht erlaubt."; -$a->strings["Not a valid email address."] = "Keine gültige E-Mail-Adresse."; -$a->strings["Cannot use that email."] = "Konnte diese E-Mail-Adresse nicht verwenden."; -$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\", \"_\" und \"-\") bestehen, außerdem muss er mit einem Buchstaben beginnen."; -$a->strings["Nickname is already registered. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; -$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; -$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden."; -$a->strings["An error occurred during registration. Please try again."] = "Wärend der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; -$a->strings["An error occurred creating your default profile. Please try again."] = "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; $a->strings["Registration details for %s"] = "Details der Registration von %s"; $a->strings["Registration successful. Please check your email for further instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet."; $a->strings["Failed to send email message. Here is the message that failed."] = "Konnte die E-Mail nicht versenden. Hier ist die Nachricht, die nicht gesendet werden konnte."; @@ -688,9 +677,13 @@ $a->strings["Users"] = "Nutzer"; $a->strings["Plugins"] = "Plugins"; $a->strings["Themes"] = "Themen"; $a->strings["DB updates"] = "DB Updates"; -$a->strings["Software Update"] = "Software Update"; $a->strings["Logs"] = "Protokolle"; $a->strings["User registrations waiting for confirmation"] = "Nutzeranmeldungen die auf Bestätigung warten"; +$a->strings["Normal Account"] = "Normaler Account"; +$a->strings["Soapbox Account"] = "Sandkasten-Account"; +$a->strings["Community/Celebrity Account"] = "Gemeinschafts-/Promi-Account"; +$a->strings["Automatic Friend Account"] = "Automatischer Freundesaccount"; +$a->strings["Message queues"] = "Nachrichten-Warteschlangen"; $a->strings["Administration"] = "Administration"; $a->strings["Summary"] = "Zusammenfassung"; $a->strings["Registered users"] = "Registrierte Nutzer"; @@ -830,7 +823,7 @@ $a->strings["{0} mentioned you in a post"] = "{0} hat dich in einem Beitrag erw $a->strings["Contacts who are not members of a group"] = "Kontakte, die keiner Gruppe zugewiesen sind"; $a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben."; $a->strings["Account not found and OpenID registration is not permitted on this site."] = "Account wurde nicht gefunden und OpenID Registrierung auf diesem Server nicht gestattet."; -$a->strings["Login failed."] = "Annmeldung fehlgeschlagen."; +$a->strings["Login failed."] = "Anmeldung fehlgeschlagen."; $a->strings["Connect URL missing."] = "Connect-URL fehlt"; $a->strings["This site is not configured to allow communications with other networks."] = "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann."; $a->strings["No compatible communication protocols or feeds were discovered."] = "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden."; @@ -860,12 +853,13 @@ $a->strings["Gender"] = "Geschlecht"; $a->strings["Sexual Preference"] = "Sexuelle Vorlieben"; $a->strings["Homepage"] = "Webseite"; $a->strings["Interests"] = "Interessen"; +$a->strings["Address"] = "Adresse"; $a->strings["Location"] = "Wohnort"; $a->strings["Profile updated."] = "Profil aktualisiert."; $a->strings[" and "] = " und "; $a->strings["public profile"] = "öffentliches Profil"; $a->strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s hat %2\$s geändert auf “%3\$s”"; -$a->strings[" - Visit %1\$s's %2\$s"] = ""; +$a->strings[" - Visit %1\$s's %2\$s"] = " – %1\$ss %2\$s besuchen"; $a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hat folgendes aktualisiert %2\$s, verändert wurde %3\$s."; $a->strings["Profile deleted."] = "Profil gelöscht."; $a->strings["Profile-"] = "Profil-"; @@ -890,6 +884,7 @@ $a->strings["Region/State:"] = "Region/Bundesstaat:"; $a->strings[" Marital Status:"] = " Beziehungsstatus:"; $a->strings["Who: (if applicable)"] = "Wer: (falls anwendbar)"; $a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Beispiele: cathy123, Cathy Williams, cathy@example.com"; +$a->strings["Since [date]:"] = "Seit [Datum]:"; $a->strings["Sexual Preference:"] = "Sexuelle Vorlieben:"; $a->strings["Homepage URL:"] = "Adresse der Homepage:"; $a->strings["Political Views:"] = "Politische Ansichten:"; @@ -1099,12 +1094,15 @@ $a->strings["Drupal site URL"] = "URL der Drupal Seite"; $a->strings["Drupal site uses clean URLS"] = "Drupal Seite verwendet bereinigte URLs"; $a->strings["Post to Drupal by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Drupal"; $a->strings["Post from Friendica"] = "Beitrag via Friendica"; +$a->strings["Startpage Settings"] = "Startseiten-Einstellungen"; +$a->strings["Home page to load after login - leave blank for profile wall"] = "Seite, die nach dem Anmelden geladen werden soll. Leer = Pinnwand"; +$a->strings["Examples: "network" or "notifications/system""] = "Beispiele: network, notifications/system"; $a->strings["Geonames settings updated."] = "Geonames Einstellungen aktualisiert"; $a->strings["Geonames Settings"] = "Geonames Einstellungen"; $a->strings["Enable Geonames Plugin"] = "Geonames Plugin aktivieren"; $a->strings["Your account on %s will expire in a few days."] = "Dein Konto auf %s wird in ein paar Tagen verfallen."; -$a->strings["Your Friendica account is about to expire."] = ""; -$a->strings["Hi %1\$s,\n\nYour account on %2\$s will expire in less than five days. You may keep your account by logging in at least once every 30 days"] = ""; +$a->strings["Your Friendica account is about to expire."] = "Dein Friendica-Account wird in Kürze auslaufen."; +$a->strings["Hi %1\$s,\n\nYour account on %2\$s will expire in less than five days. You may keep your account by logging in at least once every 30 days"] = "Hallo %1\$s,\n\ndein Account auf %2\$s wird in weniger als fünf Tagen auslaufen. Du kannst das verhindern, indem du dich mindestens einmal alle 30 Tage anmeldest."; $a->strings["Upload a file"] = "Datei hochladen"; $a->strings["Drop files here to upload"] = "Ziehe Dateien hierher, um sie hochzuladen"; $a->strings["Failed"] = "Fehlgeschlagen"; @@ -1223,8 +1221,8 @@ $a->strings["WordPress username"] = "WordPress-Benutzername"; $a->strings["WordPress password"] = "WordPress-Passwort"; $a->strings["WordPress API URL"] = "WordPress-API-URL"; $a->strings["Post to WordPress by default"] = "Standardmäßig auf WordPress veröffentlichen"; -$a->strings["Provide a backlink to the Friendica post"] = ""; -$a->strings["Read the original post and comment stream on Friendica"] = ""; +$a->strings["Provide a backlink to the Friendica post"] = "Einen zurück zum Friendica-Beitrag hinzufügen"; +$a->strings["Read the original post and comment stream on Friendica"] = "Den Original-Beitrag samt Kommentaren bei Friendica lesen"; $a->strings["\"Show more\" Settings"] = "\"Mehr zeigen\" Einstellungen"; $a->strings["Enable Show More"] = "Aktiviere \"Mehr zeigen\""; $a->strings["Cutting posts after how much characters"] = "Begrenze Beiträge nach einer bestimmten Anzahl an Buchstaben"; @@ -1318,6 +1316,7 @@ $a->strings["j F"] = "j F"; $a->strings["Birthday:"] = "Geburtstag:"; $a->strings["Age:"] = "Alter:"; $a->strings["Status:"] = "Status:"; +$a->strings["for %1\$d %2\$s"] = "für %1\$d %2\$s"; $a->strings["Homepage:"] = "Homepage:"; $a->strings["Tags:"] = "Tags"; $a->strings["Religion:"] = "Religion:"; @@ -1458,7 +1457,7 @@ $a->strings["view full size"] = "Volle Größe anzeigen"; $a->strings["Embedded content"] = "Eingebetteter Inhalt"; $a->strings["Embedding disabled"] = "Einbettungen deaktiviert"; $a->strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen könnten auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls du dies nicht möchtest, erstelle bitte eine andere Gruppe mit einem anderen Namen."; -$a->strings["Default privacy group for new contacts"] = ""; +$a->strings["Default privacy group for new contacts"] = "Voreingestellte Gruppe für neue Kontakte"; $a->strings["Everybody"] = "Alle Kontakte"; $a->strings["edit"] = "bearbeiten"; $a->strings["Groups"] = "Gruppen"; @@ -1581,6 +1580,22 @@ $a->strings["A new person is sharing with you at "] = "Eine neue Person teilt mi $a->strings["You have a new follower at "] = "Du hast einen neuen Kontakt auf "; $a->strings["image/photo"] = "Bild/Foto"; $a->strings["link"] = "Verweis"; +$a->strings["An invitation is required."] = "Du benötigst eine Einladung."; +$a->strings["Invitation could not be verified."] = "Die Einladung konnte nicht überprüft werden."; +$a->strings["Invalid OpenID url"] = "Ungültige OpenID URL"; +$a->strings["Please enter the required information."] = "Bitte trage die erforderlichen Informationen ein."; +$a->strings["Please use a shorter name."] = "Bitte verwende einen kürzeren Namen."; +$a->strings["Name too short."] = "Der Name ist zu kurz."; +$a->strings["That doesn't appear to be your full (First Last) name."] = "Das scheint nicht dein kompletter Name (Vor- und Nachname) zu sein."; +$a->strings["Your email domain is not among those allowed on this site."] = "Die Domain deiner E-Mail Adresse ist auf dieser Seite nicht erlaubt."; +$a->strings["Not a valid email address."] = "Keine gültige E-Mail-Adresse."; +$a->strings["Cannot use that email."] = "Konnte diese E-Mail-Adresse nicht verwenden."; +$a->strings["Your \"nickname\" can only contain \"a-z\", \"0-9\", \"-\", and \"_\", and must also begin with a letter."] = "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\", \"_\" und \"-\") bestehen, außerdem muss er mit einem Buchstaben beginnen."; +$a->strings["Nickname is already registered. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; +$a->strings["Nickname was once registered here and may not be re-used. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; +$a->strings["SERIOUS ERROR: Generation of security keys failed."] = "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden."; +$a->strings["An error occurred during registration. Please try again."] = "Wärend der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; +$a->strings["An error occurred creating your default profile. Please try again."] = "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; $a->strings["Welcome "] = "Willkommen "; $a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch."; $a->strings["Welcome back "] = "Willkommen zurück "; From 2741ce67f87f462e8b4f50d58937219223a8f3dd Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 3 Jun 2012 17:38:05 +0200 Subject: [PATCH 37/49] privacy settings: make submit button translateable --- view/settings.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/settings.tpl b/view/settings.tpl index d7ef21210..99ee9b51e 100644 --- a/view/settings.tpl +++ b/view/settings.tpl @@ -98,7 +98,7 @@ $group_select
- +
From 959b264c440e0c39ec235defdec42cb485069f18 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 3 Jun 2012 22:32:42 +0200 Subject: [PATCH 38/49] quattro: admin panel styling and 1st buttons for addon/theme overview --- view/theme/quattro/dark/style.css | 135 +++++++++++++++++++------ view/theme/quattro/green/style.css | 135 +++++++++++++++++++------ view/theme/quattro/icons.less | 15 ++- view/theme/quattro/icons/addon_off.png | Bin 0 -> 438 bytes view/theme/quattro/icons/addon_on.png | Bin 0 -> 428 bytes view/theme/quattro/quattro.less | 61 +++++++++++ 6 files changed, 281 insertions(+), 65 deletions(-) create mode 100644 view/theme/quattro/icons/addon_off.png create mode 100644 view/theme/quattro/icons/addon_on.png diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css index 1fa03b253..d59ace8e3 100644 --- a/view/theme/quattro/dark/style.css +++ b/view/theme/quattro/dark/style.css @@ -243,6 +243,18 @@ .icon.s48.language { background-image: url("icons/language.png"); } +.icon.on { + background-image: url("icons/addon_on.png"); + min-width: 16px; + height: 16px; + background-position: 0px 0px; +} +.icon.off { + background-image: url("icons/addon_off.png"); + width: 16px; + height: 16px; + background-position: 0px 0px; +} /* global */ body { font-family: Liberation Sans, helvetica, arial, clean, sans-serif; @@ -255,8 +267,7 @@ body { h4 { font-size: 1.1em; } -a, -a:link { +a, a:link { color: #005c94; text-decoration: none; } @@ -478,8 +489,7 @@ nav #nav-site-linkmenu .menu-popup { right: 0px; left: auto; } -nav #nav-notifications-linkmenu.on .icon.s22.notify, -nav #nav-notifications-linkmenu.selected .icon.s22.notify { +nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-linkmenu.selected .icon.s22.notify { background-image: url("../../../images/icons/22/notify_on.png"); } nav #nav-apps-link.selected { @@ -668,15 +678,11 @@ aside #profiles-menu { height: 48px; } /* group member */ -#contact-edit-drop-link, -.mail-list-delete-wrapper, -.group-delete-wrapper { +#contact-edit-drop-link, .mail-list-delete-wrapper, .group-delete-wrapper { float: right; margin-right: 50px; } -#contact-edit-drop-link .drophide, -.mail-list-delete-wrapper .drophide, -.group-delete-wrapper .drophide { +#contact-edit-drop-link .drophide, .mail-list-delete-wrapper .drophide, .group-delete-wrapper .drophide { background-image: url('../../../images/icons/22/delete.png'); display: block; width: 22px; @@ -685,9 +691,7 @@ aside #profiles-menu { position: relative; top: -50px; } -#contact-edit-drop-link .drop, -.mail-list-delete-wrapper .drop, -.group-delete-wrapper .drop { +#contact-edit-drop-link .drop, .mail-list-delete-wrapper .drop, .group-delete-wrapper .drop { background-image: url('../../../images/icons/22/delete.png'); display: block; width: 22px; @@ -817,8 +821,7 @@ section { display: table; width: 750px; } -.wall-item-container .wall-item-item, -.wall-item-container .wall-item-bottom { +.wall-item-container .wall-item-item, .wall-item-container .wall-item-bottom { display: table-row; } .wall-item-container .wall-item-bottom { @@ -856,13 +859,11 @@ section { .wall-item-container .wall-item-content img { max-width: 710px; } -.wall-item-container .wall-item-links, -.wall-item-container .wall-item-actions { +.wall-item-container .wall-item-links, .wall-item-container .wall-item-actions { display: table-cell; vertical-align: middle; } -.wall-item-container .wall-item-links .icon, -.wall-item-container .wall-item-actions .icon { +.wall-item-container .wall-item-links .icon, .wall-item-container .wall-item-actions .icon { opacity: 0.5; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; @@ -870,8 +871,7 @@ section { -ms-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } -.wall-item-container .wall-item-links .icon:hover, -.wall-item-container .wall-item-actions .icon:hover { +.wall-item-container .wall-item-links .icon:hover, .wall-item-container .wall-item-actions .icon:hover { opacity: 1; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; @@ -1015,6 +1015,9 @@ section { opacity: 0.5; } .wwto { + position: absolute !important; + width: 25px; + height: 25px; background: #FFFFFF; border: 2px solid #364e59; height: 25px; @@ -1245,9 +1248,7 @@ section { height: 18px; }*/ /** acl **/ -#photo-edit-perms-select, -#photos-upload-permissions-wrapper, -#profile-jot-acl-wrapper { +#photo-edit-perms-select, #photos-upload-permissions-wrapper, #profile-jot-acl-wrapper { display: block!important; } #acl-wrapper { @@ -1406,12 +1407,10 @@ ul.tabs li .active { float: left; width: 200px; } -.field input, -.field textarea { +.field input, .field textarea { width: 400px; } -.field input[type="checkbox"], -.field input[type="radio"] { +.field input[type="checkbox"], .field input[type="radio"] { width: auto; } .field textarea { @@ -1642,15 +1641,13 @@ ul.tabs li .active { transition: all 0.2s ease-in-out; } /* theme screenshot */ -.screenshot, -#theme-preview { +.screenshot, #theme-preview { position: absolute; width: 202px; left: 70%; top: 50px; } -.screenshot img, -#theme-preview img { +.screenshot img, #theme-preview img { width: 200px; height: 150px; } @@ -1663,3 +1660,77 @@ footer { margin-top: 25px; clear: both; } +/** + * ADMIN + */ +#pending-update { + float: right; + color: #ffffff; + font-weight: bold; + background-color: #FF0000; + padding: 0em 0.3em; +} +#adminpage dl { + clear: left; + margin-bottom: 2px; + padding-bottom: 2px; + border-bottom: 1px solid black; +} +#adminpage dt { + width: 200px; + float: left; + font-weight: bold; +} +#adminpage dd { + margin-left: 200px; +} +#adminpage h3 { + border-bottom: 1px solid #cccccc; +} +#adminpage .field label { + font-weight: bold; +} +#adminpage .submit { + clear: left; + text-align: right; +} +#adminpage #pluginslist { + margin: 0px; + padding: 0px; +} +#adminpage .plugin { + list-style: none; + display: block; + border: 1px solid #888888; + padding: 1em; + margin-bottom: 5px; + clear: left; +} +#adminpage .plugin .desc { + margin-left: 2.5em; +} +#adminpage .toggleplugin { + float: left; + margin-right: 1em; +} +#adminpage table { + width: 100%; + border-bottom: 1px solid #000000; + margin: 5px 0px; +} +#adminpage table th { + text-align: left; +} +#adminpage td .icon { + float: left; +} +#adminpage table#users img { + width: 16px; + height: 16px; +} +#adminpage table tr:hover { + background-color: #bbc7d7; +} +#adminpage .selectall { + text-align: right; +} diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css index 317112f6f..d764886c1 100644 --- a/view/theme/quattro/green/style.css +++ b/view/theme/quattro/green/style.css @@ -243,6 +243,18 @@ .icon.s48.language { background-image: url("icons/language.png"); } +.icon.on { + background-image: url("icons/addon_on.png"); + min-width: 16px; + height: 16px; + background-position: 0px 0px; +} +.icon.off { + background-image: url("icons/addon_off.png"); + width: 16px; + height: 16px; + background-position: 0px 0px; +} /* global */ body { font-family: Liberation Sans, helvetica, arial, clean, sans-serif; @@ -255,8 +267,7 @@ body { h4 { font-size: 1.1em; } -a, -a:link { +a, a:link { color: #009100; text-decoration: none; } @@ -478,8 +489,7 @@ nav #nav-site-linkmenu .menu-popup { right: 0px; left: auto; } -nav #nav-notifications-linkmenu.on .icon.s22.notify, -nav #nav-notifications-linkmenu.selected .icon.s22.notify { +nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-linkmenu.selected .icon.s22.notify { background-image: url("../../../images/icons/22/notify_on.png"); } nav #nav-apps-link.selected { @@ -668,15 +678,11 @@ aside #profiles-menu { height: 48px; } /* group member */ -#contact-edit-drop-link, -.mail-list-delete-wrapper, -.group-delete-wrapper { +#contact-edit-drop-link, .mail-list-delete-wrapper, .group-delete-wrapper { float: right; margin-right: 50px; } -#contact-edit-drop-link .drophide, -.mail-list-delete-wrapper .drophide, -.group-delete-wrapper .drophide { +#contact-edit-drop-link .drophide, .mail-list-delete-wrapper .drophide, .group-delete-wrapper .drophide { background-image: url('../../../images/icons/22/delete.png'); display: block; width: 22px; @@ -685,9 +691,7 @@ aside #profiles-menu { position: relative; top: -50px; } -#contact-edit-drop-link .drop, -.mail-list-delete-wrapper .drop, -.group-delete-wrapper .drop { +#contact-edit-drop-link .drop, .mail-list-delete-wrapper .drop, .group-delete-wrapper .drop { background-image: url('../../../images/icons/22/delete.png'); display: block; width: 22px; @@ -817,8 +821,7 @@ section { display: table; width: 750px; } -.wall-item-container .wall-item-item, -.wall-item-container .wall-item-bottom { +.wall-item-container .wall-item-item, .wall-item-container .wall-item-bottom { display: table-row; } .wall-item-container .wall-item-bottom { @@ -856,13 +859,11 @@ section { .wall-item-container .wall-item-content img { max-width: 710px; } -.wall-item-container .wall-item-links, -.wall-item-container .wall-item-actions { +.wall-item-container .wall-item-links, .wall-item-container .wall-item-actions { display: table-cell; vertical-align: middle; } -.wall-item-container .wall-item-links .icon, -.wall-item-container .wall-item-actions .icon { +.wall-item-container .wall-item-links .icon, .wall-item-container .wall-item-actions .icon { opacity: 0.5; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; @@ -870,8 +871,7 @@ section { -ms-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } -.wall-item-container .wall-item-links .icon:hover, -.wall-item-container .wall-item-actions .icon:hover { +.wall-item-container .wall-item-links .icon:hover, .wall-item-container .wall-item-actions .icon:hover { opacity: 1; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; @@ -1015,6 +1015,9 @@ section { opacity: 0.5; } .wwto { + position: absolute !important; + width: 25px; + height: 25px; background: #FFFFFF; border: 2px solid #364e59; height: 25px; @@ -1245,9 +1248,7 @@ section { height: 18px; }*/ /** acl **/ -#photo-edit-perms-select, -#photos-upload-permissions-wrapper, -#profile-jot-acl-wrapper { +#photo-edit-perms-select, #photos-upload-permissions-wrapper, #profile-jot-acl-wrapper { display: block!important; } #acl-wrapper { @@ -1406,12 +1407,10 @@ ul.tabs li .active { float: left; width: 200px; } -.field input, -.field textarea { +.field input, .field textarea { width: 400px; } -.field input[type="checkbox"], -.field input[type="radio"] { +.field input[type="checkbox"], .field input[type="radio"] { width: auto; } .field textarea { @@ -1642,15 +1641,13 @@ ul.tabs li .active { transition: all 0.2s ease-in-out; } /* theme screenshot */ -.screenshot, -#theme-preview { +.screenshot, #theme-preview { position: absolute; width: 202px; left: 70%; top: 50px; } -.screenshot img, -#theme-preview img { +.screenshot img, #theme-preview img { width: 200px; height: 150px; } @@ -1663,3 +1660,77 @@ footer { margin-top: 25px; clear: both; } +/** + * ADMIN + */ +#pending-update { + float: right; + color: #ffffff; + font-weight: bold; + background-color: #FF0000; + padding: 0em 0.3em; +} +#adminpage dl { + clear: left; + margin-bottom: 2px; + padding-bottom: 2px; + border-bottom: 1px solid black; +} +#adminpage dt { + width: 200px; + float: left; + font-weight: bold; +} +#adminpage dd { + margin-left: 200px; +} +#adminpage h3 { + border-bottom: 1px solid #cccccc; +} +#adminpage .field label { + font-weight: bold; +} +#adminpage .submit { + clear: left; + text-align: right; +} +#adminpage #pluginslist { + margin: 0px; + padding: 0px; +} +#adminpage .plugin { + list-style: none; + display: block; + border: 1px solid #888888; + padding: 1em; + margin-bottom: 5px; + clear: left; +} +#adminpage .plugin .desc { + margin-left: 2.5em; +} +#adminpage .toggleplugin { + float: left; + margin-right: 1em; +} +#adminpage table { + width: 100%; + border-bottom: 1px solid #000000; + margin: 5px 0px; +} +#adminpage table th { + text-align: left; +} +#adminpage td .icon { + float: left; +} +#adminpage table#users img { + width: 16px; + height: 16px; +} +#adminpage table tr:hover { + background-color: #bbc7d7; +} +#adminpage .selectall { + text-align: right; +} diff --git a/view/theme/quattro/icons.less b/view/theme/quattro/icons.less index 24e96b5aa..ae7459dfc 100644 --- a/view/theme/quattro/icons.less +++ b/view/theme/quattro/icons.less @@ -21,7 +21,8 @@ &.type-text { background-image: url("../../../images/icons/@{size}/text.png"); } &.language { background-image: url("icons/language.png"); } - + + } @@ -59,5 +60,17 @@ .icons(48); } + &.on { + background-image: url("icons/addon_on.png"); + min-width:16px; + height: 16px; + background-position: 0px 0px; + } + &.off { + background-image: url("icons/addon_off.png"); + width: 16px; + height: 16px; + background-position: 0px 0px; + } } diff --git a/view/theme/quattro/icons/addon_off.png b/view/theme/quattro/icons/addon_off.png new file mode 100644 index 0000000000000000000000000000000000000000..40b53259a20a616c8b35e779cb1c086023a17125 GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1Ig&jCImu4aCb zLjd_w(~;qe`r|-hQ4-`A%;50sMjD8d?NMQuIzW%m_@`T{iL`ZfI|A7E{-7*my;6?a7idK%?NMQuIzW%m_@|oPNuG31Qb&Bba4!kxSX7DfJ;J=p_f}cDaA$DQ9J=iF6?JWY)|~f cdUZQP!g+>6ff^V*UHx3vIVCg!04kt$cK`qY literal 0 HcmV?d00001 diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less index 4c3279943..ce03dd6da 100644 --- a/view/theme/quattro/quattro.less +++ b/view/theme/quattro/quattro.less @@ -1152,3 +1152,64 @@ footer { height: 100px; display: table-row; } clear: both; } +/** + * ADMIN + */ +#pending-update { + float:right; + color: #ffffff; + font-weight: bold; + background-color: #FF0000; + padding: 0em 0.3em; + +} +#adminpage dl { + clear: left; + margin-bottom: 2px; + padding-bottom: 2px; + border-bottom: 1px solid black; +} +#adminpage dt { + width: 200px; + float: left; + font-weight: bold; +} +#adminpage dd { + margin-left: 200px; +} + +#adminpage h3 { + border-bottom: 1px solid #cccccc; +} +#adminpage .field label { + font-weight: bold; +} +#adminpage .submit { + clear:left; + text-align: right; +} + +#adminpage #pluginslist { + margin: 0px; padding: 0px; +} +#adminpage .plugin { + list-style: none; + display: block; + border: 1px solid #888888; + padding: 1em; + margin-bottom: 5px; + clear: left; +} +#adminpage .plugin .desc { margin-left: 2.5em;} +#adminpage .toggleplugin { + float:left; + margin-right: 1em; +} + +#adminpage table {width:100%; border-bottom: 1px solid #000000; margin: 5px 0px;} +#adminpage table th { text-align: left;} +#adminpage td .icon { float: left;} +#adminpage table#users img { width: 16px; height: 16px; } +#adminpage table tr:hover { background-color: #bbc7d7; } +#adminpage .selectall { text-align: right; } + From 1fe1ac022f0755d73c62bac86f1b54fdbd6b50f5 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Fri, 25 May 2012 18:26:09 -0600 Subject: [PATCH 39/49] Support relayable_retractions that are relayed to us by the top-level post owner --- include/delivery.php | 1 + include/diaspora.php | 46 +++++++++++++++++++++++++++++++++++--------- include/notifier.php | 1 + 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/include/delivery.php b/include/delivery.php index 32943d5da..0e40e3db7 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -113,6 +113,7 @@ function delivery_run($argv, $argc){ $uid = $r[0]['uid']; $updated = $r[0]['edited']; + // The following seems superfluous. We've already checked for "if (! intval($r[0]['parent']))" a few lines up if(! $parent_id) continue; diff --git a/include/diaspora.php b/include/diaspora.php index f7c2c5e8e..8b8050a61 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -83,6 +83,9 @@ function diaspora_dispatch($importer,$msg) { elseif($xmlbase->signed_retraction) { $ret = diaspora_signed_retraction($importer,$xmlbase->signed_retraction,$msg); } + elseif($xmlbase->relayable_retraction) { + $ret = diaspora_signed_retraction($importer,$xmlbase->relayable_retraction,$msg); + } elseif($xmlbase->photo) { $ret = diaspora_photo($importer,$xmlbase->photo,$msg); } @@ -677,7 +680,7 @@ function diaspora_post($importer,$xml) { return; } - // allocate a guid on our system - we aren't fixing any collisions. + // allocate a guid on our system - we aren't fixing any collisions. // we're ignoring them $g = q("select * from guid where guid = '%s' limit 1", @@ -844,7 +847,7 @@ function diaspora_reshare($importer,$xml) { $prefix = '♲ ' . $details . "\n"; - // allocate a guid on our system - we aren't fixing any collisions. + // allocate a guid on our system - we aren't fixing any collisions. // we're ignoring them $g = q("select * from guid where guid = '%s' limit 1", @@ -948,7 +951,7 @@ function diaspora_asphoto($importer,$xml) { return; } - // allocate a guid on our system - we aren't fixing any collisions. + // allocate a guid on our system - we aren't fixing any collisions. // we're ignoring them $g = q("select * from guid where guid = '%s' limit 1", @@ -1783,28 +1786,53 @@ function diaspora_signed_retraction($importer,$xml,$msg) { $type = notags(unxmlify($xml->target_type)); $sig = notags(unxmlify($xml->target_author_signature)); + $parent_author_signature = (($xml->parent_author_signature) ? notags(unxmlify($xml->parent_author_signature)) : ''); + $contact = diaspora_get_contact_by_handle($importer['uid'],$diaspora_handle); if(! $contact) { logger('diaspora_signed_retraction: no contact'); return; } - // this may not yet work for comments. Need to see how the relaying works - // and figure out who signs it. - $signed_data = $guid . ';' . $type ; $sig = base64_decode($sig); - $key = $msg['key']; + if(strcasecmp($diaspora_handle,$msg['author']) == 0) { + $person = $contact; + $key = $msg['key']; + } + else { + $person = find_diaspora_person_by_handle($diaspora_handle); + + if(is_array($person) && x($person,'pubkey')) + $key = $person['pubkey']; + else { + logger('diaspora_signed_retraction: unable to find author details'); + return; + } + } if(! rsa_verify($signed_data,$sig,$key,'sha256')) { - logger('diaspora_signed_retraction: owner verification failed.' . print_r($msg,true)); + logger('diaspora_signed_retraction: retraction-owner verification failed.' . print_r($msg,true)); return; } - if($type === 'StatusMessage') { + if($parent_author_signature) { + $owner_signed_data = $guid . ';' . $type ; + + $parent_author_signature = base64_decode($parent_author_signature); + + $key = $msg['key']; + + if(! rsa_verify($owner_signed_data,$parent_author_signature,$key,'sha256')) { + logger('diaspora_signed_retraction: failed to verify person relaying the retraction (e.g. owner of a post relaying a retracted comment'); + return; + } + } + + if($type === 'StatusMessage' || $type === 'Comment') { $r = q("select * from item where guid = '%s' and uid = %d and not file like '%%[%%' limit 1", dbesc($guid), intval($importer['uid']) diff --git a/include/notifier.php b/include/notifier.php index 070e7a436..47ad29310 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -125,6 +125,7 @@ function notifier_run($argv, $argc){ $uid = $r[0]['uid']; $updated = $r[0]['edited']; + // The following seems superfluous. We've already checked for "if (! intval($r[0]['parent']))" a few lines up if(! $parent_id) return; From c0af6dbb1a5507dcf0fffaf13b42cfd71b0d0c50 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Thu, 31 May 2012 19:40:12 -0600 Subject: [PATCH 40/49] Implement relaying of relayable_retractions Also: some whitespace cleanup, fix Diaspora parent DB query --- include/delivery.php | 4 +- include/diaspora.php | 151 ++++++++++++++++++++----- include/items.php | 31 ++++- include/notifier.php | 15 ++- mod/item.php | 10 +- update.php | 5 +- view/diaspora_relay_retraction.tpl | 10 ++ view/diaspora_relayable_retraction.tpl | 11 ++ 8 files changed, 194 insertions(+), 43 deletions(-) create mode 100644 view/diaspora_relay_retraction.tpl create mode 100644 view/diaspora_relayable_retraction.tpl diff --git a/include/delivery.php b/include/delivery.php index 0e40e3db7..62c9f9202 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -509,7 +509,7 @@ function delivery_run($argv, $argc){ // unsupported break; } - elseif(($target_item['deleted']) && ($target_item['verb'] !== ACTIVITY_LIKE)) { + elseif(($target_item['deleted']) && ($top_level) && ($target_item['verb'] !== ACTIVITY_LIKE)) { logger('delivery: diaspora retract: ' . $loc); // diaspora delete, diaspora_send_retraction($target_item,$owner,$contact,$public_message); @@ -519,7 +519,7 @@ function delivery_run($argv, $argc){ logger('delivery: diaspora relay: ' . $loc); - // we are the relay - send comments, likes and unlikes to our conversants + // we are the relay - send comments, likes, unlikes and relayable_retractions to our conversants diaspora_send_relay($target_item,$owner,$contact,$public_message); break; } diff --git a/include/diaspora.php b/include/diaspora.php index 8b8050a61..584be5ef2 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -680,7 +680,7 @@ function diaspora_post($importer,$xml) { return; } - // allocate a guid on our system - we aren't fixing any collisions. + // allocate a guid on our system - we aren't fixing any collisions. // we're ignoring them $g = q("select * from guid where guid = '%s' limit 1", @@ -847,7 +847,7 @@ function diaspora_reshare($importer,$xml) { $prefix = '♲ ' . $details . "\n"; - // allocate a guid on our system - we aren't fixing any collisions. + // allocate a guid on our system - we aren't fixing any collisions. // we're ignoring them $g = q("select * from guid where guid = '%s' limit 1", @@ -951,7 +951,7 @@ function diaspora_asphoto($importer,$xml) { return; } - // allocate a guid on our system - we aren't fixing any collisions. + // allocate a guid on our system - we aren't fixing any collisions. // we're ignoring them $g = q("select * from guid where guid = '%s' limit 1", @@ -1168,7 +1168,22 @@ function diaspora_comment($importer,$xml,$msg) { ); } - if(($parent_item['origin']) && (! $parent_author_signature)) { + if(($parent_item['origin']) && (! $parent_author_signature)) { if(($parent_item['origin']) && (! $parent_author_signature)) { + q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", + intval($message_id), + dbesc($author_signed_data), + dbesc(base64_encode($author_signature)), + dbesc($diaspora_handle) + ); + + // if the message isn't already being relayed, notify others + // the existence of parent_author_signature means the parent_author or owner + // is already relaying. + + proc_run('php','include/notifier.php','comment',$message_id); + } + + q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", intval($message_id), dbesc($author_signed_data), @@ -1797,7 +1812,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) { $signed_data = $guid . ';' . $type ; - $sig = base64_decode($sig); + $sig_decode = base64_decode($sig); if(strcasecmp($diaspora_handle,$msg['author']) == 0) { $person = $contact; @@ -1814,22 +1829,21 @@ function diaspora_signed_retraction($importer,$xml,$msg) { } } - if(! rsa_verify($signed_data,$sig,$key,'sha256')) { + if(! rsa_verify($signed_data,$sig_decode,$key,'sha256')) { logger('diaspora_signed_retraction: retraction-owner verification failed.' . print_r($msg,true)); return; } if($parent_author_signature) { - $owner_signed_data = $guid . ';' . $type ; - $parent_author_signature = base64_decode($parent_author_signature); $key = $msg['key']; - if(! rsa_verify($owner_signed_data,$parent_author_signature,$key,'sha256')) { + if(! rsa_verify($signed_data,$parent_author_signature,$key,'sha256')) { logger('diaspora_signed_retraction: failed to verify person relaying the retraction (e.g. owner of a post relaying a retracted comment'); return; } + } if($type === 'StatusMessage' || $type === 'Comment') { @@ -1839,10 +1853,36 @@ function diaspora_signed_retraction($importer,$xml,$msg) { ); if(count($r)) { if(link_compare($r[0]['author-link'],$contact['url'])) { - q("update item set `deleted` = 1, `changed` = '%s' where `id` = %d limit 1", + q("update item set `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '' , `title` = '' where `id` = %d limit 1", dbesc(datetime_convert()), intval($r[0]['id']) ); + + // Now check if the retraction needs to be relayed by us + // + // The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always + // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. + // The only item with `parent` and `id` as the parent id is the parent item. + $p = q("select origin from item where parent = %d and id = %d limit 1", + $r[0]['parent'], + $r[0]['parent'] + ); + if(count($p)) { + if(($p[0]['origin']) && (! $parent_author_signature)) { + q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", + $r[0]['id'], + dbesc($signed_data), + dbesc($sig), + dbesc($diaspora_handle) + ); + + // the existence of parent_author_signature would have meant the parent_author or owner + // is already relaying. + logger('diaspora_signed_retraction: relaying relayable_retraction'); + + proc_run('php','include/notifier.php','relayable_retraction',$r[0]['id']); + } + } } } } @@ -2136,10 +2176,28 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { +// I think the first comment or like on a post whose home is our Friendica server is saved as an item +// as the top-level post owner's contact for writer of the comment or post. Thus, the "uid" +// on the item is `user`.`id` of the top-level post owner. That user is passed to this function +// as "$owner." +// +// I'm assuming for now that "$owner" will be the user of the top-level post for retractions too. Be +// aware that another reasonable possibility is that it's the "$owner" of the deleted comment. + +// TODO +// CHECK 1. If we receive a retraction from Diaspora to be relayed by us, we need to insert the signature +// into the DB and call notifier.php +// CHECK 2. diaspora_send_retraction() needs to be modified to send +// Diaspora a retraction for it to relay when appropriate +// CHECK 3. notifier.php (and delivery.php?) need to be modified to call the right functions for the right +// retraction situation +// 4. If possible, modify notifier.php (and delivery.php?) to remove the relayable retraction's signature +// from the DB after finishing with relaying retractions + $a = get_app(); - $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); + $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); $theiraddr = $contact['addr']; @@ -2155,29 +2213,42 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { else return; + $like = false; + $relay_retract = false; + $sql_sign_id = 'iid'; if($item['verb'] === ACTIVITY_LIKE) { $tpl = get_markup_template('diaspora_like_relay.tpl'); $like = true; $target_type = 'Post'; $positive = (($item['deleted']) ? 'false' : 'true'); } - else { + elseif(! $item['deleted']) { $tpl = get_markup_template('diaspora_comment_relay.tpl'); - $like = false; + } + else { + $tpl = get_markup_template('diaspora_relayable_retraction.tpl'); + $relay_retract = true; + $sql_sign_id = 'retract_iid'; + $target_type = 'Comment'; } $body = $item['body']; $text = html_entity_decode(bb2diaspora($body)); + // fetch the original signature if somebody sent the post to us to relay + // // If we are relaying for a reply originating on our own account, there wasn't a 'send to relay' // action. It wasn't needed. In that case create the original signature and the // owner (parent author) signature + // Note that mod/item.php seems to take care of creating a signature for Diaspora for replies + // created on our own account + // // comments from other networks will be relayed under our name, with a brief // preamble to describe what's happening and noting the real author - $r = q("select * from sign where iid = %d limit 1", + $r = q("select * from sign where " . $sql_sign_id . " = %d limit 1", intval($item['id']) ); if(count($r)) { @@ -2196,29 +2267,39 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { $prefix = sprintf( t('[Relayed] Comment authored by %s from network %s'), '['. $item['author-name'] . ']' . '(' . $item['author-link'] . ')', network_to_name($itemcontact['network'])) . "\n"; + // "$body" was assigned to "$text" above. It isn't used after that, so I don't think + // the following change will do anything $body = $prefix . $body; + + // I think this comment will fail upon reaching Diaspora, because "$signed_text" is not defined } } else { + // I'm confused about this "else." Since it sets "$handle = $myaddr," it seems like it should be for the case + // where the top-level post owner commented on his own post, i.e. "$itemcontact[0]['self']" is true. But it's + // positioned to be for the case where "count($itemcontact)" is 0. + + $handle = $myaddr; if($like) - $signed_text = $item['guid'] . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $myaddr; + $signed_text = $item['guid'] . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $handle; + elseif($relay_retract) + $signed_text = $item['guid'] . ';' . $target_type; else - $signed_text = $item['guid'] . ';' . $parent_guid . ';' . $text . ';' . $myaddr; + $signed_text = $item['guid'] . ';' . $parent_guid . ';' . $text . ';' . $handle; $authorsig = base64_encode(rsa_sign($signed_text,$owner['uprvkey'],'sha256')); - q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", + q("insert into sign (`" . $sql_sign_id . "`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", intval($item['id']), dbesc($signed_text), - dbesc(base64_encode($authorsig)), - dbesc($myaddr) + dbesc($authorsig), + dbesc($handle) ); - $handle = $myaddr; } } - // sign it + // sign it with the top-level owner's signature $parentauthorsig = base64_encode(rsa_sign($signed_text,$owner['uprvkey'],'sha256')); @@ -2226,14 +2307,15 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { '$guid' => xmlify($item['guid']), '$parent_guid' => xmlify($parent_guid), '$target_type' =>xmlify($target_type), - '$authorsig' => xmlify($orig_sign['signature']), + '$authorsig' => xmlify($authorsig), '$parentsig' => xmlify($parentauthorsig), '$body' => xmlify($text), '$positive' => xmlify($positive), '$handle' => xmlify($handle) )); - logger('diaspora_relay_comment: base message: ' . $msg, LOGGER_DATA); + logger('diaspora_send_relay: base message: ' . $msg, LOGGER_DATA); + $slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['uprvkey'],$contact['pubkey'],$public_batch))); @@ -2248,14 +2330,25 @@ function diaspora_send_retraction($item,$owner,$contact,$public_batch = false) { $a = get_app(); $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); - $signed_text = $item['guid'] . ';' . 'StatusMessage'; + // Check if the retraction is for a top-level post, or whether it's for a comment + if( $item['id'] !== $item['parent'] ) { + + $tpl = get_markup_template('diaspora_relay_retraction.tpl'); + $target_type = 'Comment'; + } + else { + + $tpl = get_markup_template('diaspora_signed_retract.tpl'); + $target_type = 'StatusMessage'; + } + + $signed_text = $item['guid'] . ';' . $target_type; - $tpl = get_markup_template('diaspora_signed_retract.tpl'); $msg = replace_macros($tpl, array( - '$guid' => $item['guid'], - '$type' => 'StatusMessage', - '$handle' => $myaddr, - '$signature' => base64_encode(rsa_sign($signed_text,$owner['uprvkey'],'sha256')) + '$guid' => xmlify($item['guid']), + '$type' => xmlify($target_type), + '$handle' => xmlify($myaddr), + '$signature' => xmlify(base64_encode(rsa_sign($signed_text,$owner['uprvkey'],'sha256'))) )); $slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['uprvkey'],$contact['pubkey'],$public_batch))); diff --git a/include/items.php b/include/items.php index 0ed16217f..8858ca64f 100644 --- a/include/items.php +++ b/include/items.php @@ -3278,7 +3278,36 @@ function drop_item($id,$interactive = true) { q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1", intval($r[0]['id']) ); - } + } + + // Add a relayable_retraction signature for Diaspora. Note that we can't add a target_author_signature + // if the comment was deleted by a remote user. That should be ok, because if a remote user is deleting + // the comment, that means we're the home of the post, and Diaspora will only + // check the parent_author_signature of retractions that it doesn't have to relay further + if( strcmp($item['type'], 'activity') != 0) { + $signed_text = $item['guid'] . ';' . 'Comment'; + + if(local_user() == $item['uid']) { + + $handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); + $authorsig = base64_encode(rsa_sign($signed_text,$a->user['prvkey'],'sha256')); + } + else { + $r = q("SELECT `nick`, `url` FROM `contact` WHERE `id` = '%d' LIMIT 1", + $item['contact-id'] + ); + if(count($r)) + $handle = $r['nick'] . '@' . substr($r['url'], strpos($r['url'],'://') + 3, strpos($r['url'],'/profile') - 1); + } + + if(isset($handle) + q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", + intval($item['id']), + dbesc($signed_text), + dbesc($authorsig), + dbesc($handle) + ); + } } $drop_id = intval($item['id']); diff --git a/include/notifier.php b/include/notifier.php index 47ad29310..68f230a05 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -597,7 +597,7 @@ function notifier_run($argv, $argc){ break; case NETWORK_OSTATUS: - // Do not send to otatus if we are not configured to send to public networks + // Do not send to ostatus if we are not configured to send to public networks if($owner['prvnets']) break; if(get_config('system','ostatus_disabled') || get_config('system','dfrn_only')) @@ -738,8 +738,8 @@ function notifier_run($argv, $argc){ // unsupported break; } - elseif(($target_item['deleted']) && ($target_item['verb'] !== ACTIVITY_LIKE)) { - // diaspora delete, + elseif(($target_item['deleted']) && ($top_level || $followup) && ($target_item['verb'] !== ACTIVITY_LIKE)) { + // diaspora delete, including relayable_retractions that need to be relayed diaspora_send_retraction($target_item,$owner,$contact); break; } @@ -749,7 +749,7 @@ function notifier_run($argv, $argc){ break; } elseif($target_item['parent'] != $target_item['id']) { - // we are the relay - send comments, likes and unlikes to our conversants + // we are the relay - send comments, likes, unlikes and relayable_retractions to our conversants diaspora_send_relay($target_item,$owner,$contact); break; } @@ -859,6 +859,13 @@ function notifier_run($argv, $argc){ } + // If the item was deleted, clean up the `sign` table + if($target_item['deleted']) { + $r = q("DELETE FROM sign where `retract_iid` = %d", + intval($target_item['id']) + ); + } + logger('notifier: calling hooks', LOGGER_DEBUG); if($normal_mode) diff --git a/mod/item.php b/mod/item.php index 497cf5daa..c1c0b14ec 100644 --- a/mod/item.php +++ b/mod/item.php @@ -737,16 +737,16 @@ function item_post(&$a) { if($datarray['verb'] === ACTIVITY_LIKE) $signed_text = $datarray['guid'] . ';' . 'Post' . ';' . $parent_item['guid'] . ';' . 'true' . ';' . $myaddr; else - $signed_text = $datarray['guid'] . ';' . $parent_item['guid'] . ';' . $signed_body . ';' . $myaddr; + $signed_text = $datarray['guid'] . ';' . $parent_item['guid'] . ';' . $signed_body . ';' . $myaddr; $authorsig = base64_encode(rsa_sign($signed_text,$a->user['prvkey'],'sha256')); q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", intval($post_id), - dbesc($signed_text), - dbesc(base64_encode($authorsig)), - dbesc($myaddr) - ); + dbesc($signed_text), + dbesc(base64_encode($authorsig)), + dbesc($myaddr) + ); } } else { diff --git a/update.php b/update.php index 1b2098e6e..e1a554533 100644 --- a/update.php +++ b/update.php @@ -1137,8 +1137,8 @@ INDEX ( `username` ) } function update_1133() { -q("ALTER TABLE `user` ADD `unkmail` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `blocktags` , ADD INDEX ( `unkmail` ) "); -q("ALTER TABLE `user` ADD `cntunkmail` INT NOT NULL DEFAULT '10' AFTER `unkmail` , ADD INDEX ( `cntunkmail` ) "); +q("ALTER TABLE `user` ADD `unkmail` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `blocktags` , ADD INDEX ( `unkmail` ) "); +q("ALTER TABLE `user` ADD `cntunkmail` INT NOT NULL DEFAULT '10' AFTER `unkmail` , ADD INDEX ( `cntunkmail` ) "); q("ALTER TABLE `mail` ADD `unknown` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `replied` , ADD INDEX ( `unknown` ) "); } @@ -1274,4 +1274,5 @@ function update_1146() { return UPDATE_SUCCESS ; } +//ALTER TABLE `sign` MODIFY column int Default '10'; diff --git a/view/diaspora_relay_retraction.tpl b/view/diaspora_relay_retraction.tpl new file mode 100644 index 000000000..e76c7c6c5 --- /dev/null +++ b/view/diaspora_relay_retraction.tpl @@ -0,0 +1,10 @@ + + + + $type + $guid + $signature + $handle + + + diff --git a/view/diaspora_relayable_retraction.tpl b/view/diaspora_relayable_retraction.tpl new file mode 100644 index 000000000..27936f7f3 --- /dev/null +++ b/view/diaspora_relayable_retraction.tpl @@ -0,0 +1,11 @@ + + + + $target_type + $guid + $parentauthorsig + $authorsig + $handle + + + From b000088ded0d0f677114da0af1c5ea6436a97560 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Fri, 1 Jun 2012 09:07:51 -0600 Subject: [PATCH 41/49] prepare to implement database update --- update.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/update.php b/update.php index e1a554533..9d534a127 100644 --- a/update.php +++ b/update.php @@ -1274,5 +1274,15 @@ function update_1146() { return UPDATE_SUCCESS ; } -//ALTER TABLE `sign` MODIFY column int Default '10'; +/* +function update_xxxx() { + $r1 = q("ALTER TABLE `sign` MODIFY `iid` SET DEFAULT '0'"); + $r2 = q("ALTER TABLE `sign` ADD `retract_iid` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `iid`"); + $r3 = q("ALTER TABLE `sign` ADD INDEX ( `retract_iid` )"); + if((! $r1) || (! $r2) || (! $r3)) + return UPDATE_FAILED ; + return UPDATE_SUCCESS ; +} +*/ +// dump DB schema: mysqldump -d -h localhost -u root -pmypassword databasename > dumpfile.sql From 77962aa79df5671e206635cc6980e4b1ac969bf9 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 2 Jun 2012 16:11:31 -0600 Subject: [PATCH 42/49] Fix bugs in the retraction code Currently, the following seems to be the functional status: For a Diaspora top-level post: Friendica comments show up AND delete Diaspora comments show up AND delete for top-level owner Diaspora comments show up for non-owner Diaspora comments sometimes don't delete for non-owner -> Appears to be Diaspora's fault, as a "not a valid object" error shows up in the log Friendica likes show up, but can't unlike (Friendica doesn't even message Diaspora) Diaspora likes show up Diaspora non-owner can't unlike -> Same as comments, seems to be Diaspora's fault For a Friendica top-level post: Friendica comments show up AND delete Diaspora comments show up AND delete Friendica likes don't show up in Diaspora sometimes Friendica doesn't even message Diaspora for unlikes (sometimes?) Diaspora likes and unlikes work --- include/delivery.php | 4 +-- include/diaspora.php | 46 ++++++-------------------- include/items.php | 46 +++++++++++++------------- include/notifier.php | 4 +-- update.php | 2 +- view/diaspora_like_relay.tpl | 4 +-- view/diaspora_relayable_retraction.tpl | 2 +- 7 files changed, 42 insertions(+), 66 deletions(-) mode change 100644 => 100755 view/diaspora_like_relay.tpl mode change 100644 => 100755 view/diaspora_relayable_retraction.tpl diff --git a/include/delivery.php b/include/delivery.php index 62c9f9202..235b766c5 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -509,13 +509,13 @@ function delivery_run($argv, $argc){ // unsupported break; } - elseif(($target_item['deleted']) && ($top_level) && ($target_item['verb'] !== ACTIVITY_LIKE)) { + elseif(($target_item['deleted']) && ($target_item['uri'] === $target_item['parent-uri']) && ($target_item['verb'] !== ACTIVITY_LIKE)) { logger('delivery: diaspora retract: ' . $loc); // diaspora delete, diaspora_send_retraction($target_item,$owner,$contact,$public_message); break; } - elseif($target_item['parent'] != $target_item['id']) { + elseif($target_item['uri'] !== $target_item['parent-uri']) { logger('delivery: diaspora relay: ' . $loc); diff --git a/include/diaspora.php b/include/diaspora.php index 584be5ef2..10c56564b 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -1168,22 +1168,7 @@ function diaspora_comment($importer,$xml,$msg) { ); } - if(($parent_item['origin']) && (! $parent_author_signature)) { if(($parent_item['origin']) && (! $parent_author_signature)) { - q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", - intval($message_id), - dbesc($author_signed_data), - dbesc(base64_encode($author_signature)), - dbesc($diaspora_handle) - ); - - // if the message isn't already being relayed, notify others - // the existence of parent_author_signature means the parent_author or owner - // is already relaying. - - proc_run('php','include/notifier.php','comment',$message_id); - } - - + if(($parent_item['origin']) && (! $parent_author_signature)) { q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", intval($message_id), dbesc($author_signed_data), @@ -1846,7 +1831,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) { } - if($type === 'StatusMessage' || $type === 'Comment') { + if($type === 'StatusMessage' || $type === 'Comment' || $type === 'Like') { $r = q("select * from item where guid = '%s' and uid = %d and not file like '%%[%%' limit 1", dbesc($guid), intval($importer['uid']) @@ -1854,6 +1839,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) { if(count($r)) { if(link_compare($r[0]['author-link'],$contact['url'])) { q("update item set `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '' , `title` = '' where `id` = %d limit 1", + dbesc(datetime_convert()), dbesc(datetime_convert()), intval($r[0]['id']) ); @@ -2184,16 +2170,6 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { // I'm assuming for now that "$owner" will be the user of the top-level post for retractions too. Be // aware that another reasonable possibility is that it's the "$owner" of the deleted comment. -// TODO -// CHECK 1. If we receive a retraction from Diaspora to be relayed by us, we need to insert the signature -// into the DB and call notifier.php -// CHECK 2. diaspora_send_retraction() needs to be modified to send -// Diaspora a retraction for it to relay when appropriate -// CHECK 3. notifier.php (and delivery.php?) need to be modified to call the right functions for the right -// retraction situation -// 4. If possible, modify notifier.php (and delivery.php?) to remove the relayable retraction's signature -// from the DB after finishing with relaying retractions - $a = get_app(); @@ -2216,20 +2192,20 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { $like = false; $relay_retract = false; $sql_sign_id = 'iid'; - if($item['verb'] === ACTIVITY_LIKE) { + if( $item['deleted']) { + $tpl = get_markup_template('diaspora_relayable_retraction.tpl'); + $relay_retract = true; + $sql_sign_id = 'retract_iid'; + $target_type = ( ($item['verb'] === ACTIVITY_LIKE) ? 'Like' : 'Comment'); + } + elseif($item['verb'] === ACTIVITY_LIKE) { $tpl = get_markup_template('diaspora_like_relay.tpl'); $like = true; $target_type = 'Post'; $positive = (($item['deleted']) ? 'false' : 'true'); } - elseif(! $item['deleted']) { - $tpl = get_markup_template('diaspora_comment_relay.tpl'); - } else { - $tpl = get_markup_template('diaspora_relayable_retraction.tpl'); - $relay_retract = true; - $sql_sign_id = 'retract_iid'; - $target_type = 'Comment'; + $tpl = get_markup_template('diaspora_comment_relay.tpl'); } $body = $item['body']; diff --git a/include/items.php b/include/items.php index 8858ca64f..897036c26 100644 --- a/include/items.php +++ b/include/items.php @@ -3281,33 +3281,33 @@ function drop_item($id,$interactive = true) { } // Add a relayable_retraction signature for Diaspora. Note that we can't add a target_author_signature - // if the comment was deleted by a remote user. That should be ok, because if a remote user is deleting - // the comment, that means we're the home of the post, and Diaspora will only + // if the comment/like was deleted by a remote user. That should be ok, because if a remote user is deleting + // the comment/like, that means we're the home of the post, and Diaspora will only // check the parent_author_signature of retractions that it doesn't have to relay further - if( strcmp($item['type'], 'activity') != 0) { - $signed_text = $item['guid'] . ';' . 'Comment'; + $signed_text = $item['guid'] . ';' . ( ($item['verb'] === ACTIVITY_LIKE) ? 'Like' : 'Comment'); - if(local_user() == $item['uid']) { + if(local_user() == $item['uid']) { - $handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); - $authorsig = base64_encode(rsa_sign($signed_text,$a->user['prvkey'],'sha256')); - } - else { - $r = q("SELECT `nick`, `url` FROM `contact` WHERE `id` = '%d' LIMIT 1", - $item['contact-id'] - ); - if(count($r)) - $handle = $r['nick'] . '@' . substr($r['url'], strpos($r['url'],'://') + 3, strpos($r['url'],'/profile') - 1); - } - - if(isset($handle) - q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", - intval($item['id']), - dbesc($signed_text), - dbesc($authorsig), - dbesc($handle) - ); + $handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); + $authorsig = base64_encode(rsa_sign($signed_text,$a->user['prvkey'],'sha256')); } + else { + $r = q("SELECT `nick`, `url` FROM `contact` WHERE `id` = '%d' LIMIT 1", + $item['contact-id'] + ); + if(count($r)) { + $handle = $r['nick'] . '@' . substr($r['url'], strpos($r['url'],'://') + 3, strpos($r['url'],'/profile') - 1); + $authorsig = ''; + } + } + + if(isset($handle)) + q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", + intval($item['id']), + dbesc($signed_text), + dbesc($authorsig), + dbesc($handle) + ); } $drop_id = intval($item['id']); diff --git a/include/notifier.php b/include/notifier.php index 68f230a05..be50366d5 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -738,7 +738,7 @@ function notifier_run($argv, $argc){ // unsupported break; } - elseif(($target_item['deleted']) && ($top_level || $followup) && ($target_item['verb'] !== ACTIVITY_LIKE)) { + elseif(($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup) && ($target_item['verb'] !== ACTIVITY_LIKE)) { // diaspora delete, including relayable_retractions that need to be relayed diaspora_send_retraction($target_item,$owner,$contact); break; @@ -748,7 +748,7 @@ function notifier_run($argv, $argc){ diaspora_send_followup($target_item,$owner,$contact); break; } - elseif($target_item['parent'] != $target_item['id']) { + elseif($target_item['uri'] !== $target_item['parent-uri']) { // we are the relay - send comments, likes, unlikes and relayable_retractions to our conversants diaspora_send_relay($target_item,$owner,$contact); break; diff --git a/update.php b/update.php index 9d534a127..b542d75ba 100644 --- a/update.php +++ b/update.php @@ -1276,7 +1276,7 @@ function update_1146() { /* function update_xxxx() { - $r1 = q("ALTER TABLE `sign` MODIFY `iid` SET DEFAULT '0'"); + $r1 = q("ALTER TABLE `sign` ALTER `iid` SET DEFAULT '0'"); $r2 = q("ALTER TABLE `sign` ADD `retract_iid` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `iid`"); $r3 = q("ALTER TABLE `sign` ADD INDEX ( `retract_iid` )"); if((! $r1) || (! $r2) || (! $r3)) diff --git a/view/diaspora_like_relay.tpl b/view/diaspora_like_relay.tpl old mode 100644 new mode 100755 index 65559b05b..8b67f4de3 --- a/view/diaspora_like_relay.tpl +++ b/view/diaspora_like_relay.tpl @@ -5,9 +5,9 @@ $target_type $parent_guid $parentsig - $authrosig + $authorsig $positive $handle - \ No newline at end of file + diff --git a/view/diaspora_relayable_retraction.tpl b/view/diaspora_relayable_retraction.tpl old mode 100644 new mode 100755 index 27936f7f3..73cff8343 --- a/view/diaspora_relayable_retraction.tpl +++ b/view/diaspora_relayable_retraction.tpl @@ -3,7 +3,7 @@ $target_type $guid - $parentauthorsig + $parentsig $authorsig $handle From cde0de965f8f2fde2b289ebcb1c1814ffa303ca6 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 2 Jun 2012 23:56:42 -0600 Subject: [PATCH 43/49] first shot at getting like/unlike functions to work consistently --- include/delivery.php | 12 ++--- include/diaspora.php | 22 ++++++--- include/items.php | 8 ++- include/notifier.php | 9 ++-- mod/like.php | 113 ++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 142 insertions(+), 22 deletions(-) diff --git a/include/delivery.php b/include/delivery.php index 235b766c5..e6cfc8155 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -509,17 +509,17 @@ function delivery_run($argv, $argc){ // unsupported break; } - elseif(($target_item['deleted']) && ($target_item['uri'] === $target_item['parent-uri']) && ($target_item['verb'] !== ACTIVITY_LIKE)) { - logger('delivery: diaspora retract: ' . $loc); - // diaspora delete, + elseif(($target_item['deleted']) && ($target_item['uri'] === $target_item['parent-uri'])) { + // top-level retraction + logger('delivery: diaspora retract: ' . $loc); + diaspora_send_retraction($target_item,$owner,$contact,$public_message); break; } elseif($target_item['uri'] !== $target_item['parent-uri']) { + // we are the relay - send comments, likes and relayable_retractions to our conversants + logger('delivery: diaspora relay: ' . $loc); - logger('delivery: diaspora relay: ' . $loc); - - // we are the relay - send comments, likes, unlikes and relayable_retractions to our conversants diaspora_send_relay($target_item,$owner,$contact,$public_message); break; } diff --git a/include/diaspora.php b/include/diaspora.php index 10c56564b..3bf4a9cc6 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -2125,7 +2125,8 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { $tpl = get_markup_template('diaspora_like.tpl'); $like = true; $target_type = 'Post'; - $positive = (($item['deleted']) ? 'false' : 'true'); +// $positive = (($item['deleted']) ? 'false' : 'true'); + $positive = 'true'; } else { $tpl = get_markup_template('diaspora_comment.tpl'); @@ -2202,7 +2203,8 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { $tpl = get_markup_template('diaspora_like_relay.tpl'); $like = true; $target_type = 'Post'; - $positive = (($item['deleted']) ? 'false' : 'true'); +// $positive = (($item['deleted']) ? 'false' : 'true'); + $positive = 'true'; } else { $tpl = get_markup_template('diaspora_comment_relay.tpl'); @@ -2220,9 +2222,6 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { // owner (parent author) signature // Note that mod/item.php seems to take care of creating a signature for Diaspora for replies // created on our own account - // - // comments from other networks will be relayed under our name, with a brief - // preamble to describe what's happening and noting the real author $r = q("select * from sign where " . $sql_sign_id . " = %d limit 1", intval($item['id']) @@ -2235,6 +2234,12 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { } else { + // Author signature information (for likes, comments, and retractions of likes or comments, + // whether from Diaspora or Friendica) must be placed in the `sign` table before this + // function is called + logger('diaspora_send_relay: original author signature not found, cannot send relayable'); + return; +/* $itemcontact = q("select * from contact where `id` = %d limit 1", intval($item['contact-id']) ); @@ -2273,6 +2278,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { dbesc($handle) ); } +*/ } // sign it with the top-level owner's signature @@ -2306,11 +2312,11 @@ function diaspora_send_retraction($item,$owner,$contact,$public_batch = false) { $a = get_app(); $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); - // Check if the retraction is for a top-level post, or whether it's for a comment - if( $item['id'] !== $item['parent'] ) { + // Check whether the retraction is for a top-level post or whether it's a relayable + if( $item['uri'] !== $item['parent-uri'] ) { $tpl = get_markup_template('diaspora_relay_retraction.tpl'); - $target_type = 'Comment'; + $target_type = (($item['verb'] === ACTIVITY_LIKE) ? 'Like' : 'Comment'); } else { diff --git a/include/items.php b/include/items.php index 897036c26..6b16810b2 100644 --- a/include/items.php +++ b/include/items.php @@ -3281,9 +3281,11 @@ function drop_item($id,$interactive = true) { } // Add a relayable_retraction signature for Diaspora. Note that we can't add a target_author_signature - // if the comment/like was deleted by a remote user. That should be ok, because if a remote user is deleting - // the comment/like, that means we're the home of the post, and Diaspora will only + // if the comment was deleted by a remote user. That should be ok, because if a remote user is deleting + // the comment, that means we're the home of the post, and Diaspora will only // check the parent_author_signature of retractions that it doesn't have to relay further + // + // I don't think this function gets called for an "unlike," but I'll check anyway $signed_text = $item['guid'] . ';' . ( ($item['verb'] === ACTIVITY_LIKE) ? 'Like' : 'Comment'); if(local_user() == $item['uid']) { @@ -3296,6 +3298,8 @@ function drop_item($id,$interactive = true) { $item['contact-id'] ); if(count($r)) { + // The below handle only works for NETWORK_DFRN. I think that's ok, because this function + // only handles DFRN deletes $handle = $r['nick'] . '@' . substr($r['url'], strpos($r['url'],'://') + 3, strpos($r['url'],'/profile') - 1); $authorsig = ''; } diff --git a/include/notifier.php b/include/notifier.php index be50366d5..f0a1940d4 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -738,18 +738,19 @@ function notifier_run($argv, $argc){ // unsupported break; } - elseif(($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup) && ($target_item['verb'] !== ACTIVITY_LIKE)) { - // diaspora delete, including relayable_retractions that need to be relayed + elseif(($target_item['deleted']) && (($target_item['uri'] === $target_item['parent-uri']) || $followup)) { + // send both top-level retractions and relayable retractions for owner to relay diaspora_send_retraction($target_item,$owner,$contact); break; } elseif($followup) { - // send comments, likes and retractions of likes to owner to relay + // send comments and likes to owner to relay diaspora_send_followup($target_item,$owner,$contact); break; } elseif($target_item['uri'] !== $target_item['parent-uri']) { - // we are the relay - send comments, likes, unlikes and relayable_retractions to our conversants + // we are the relay - send comments, likes and relayable_retractions + // (of comments and likes) to our conversants diaspora_send_relay($target_item,$owner,$contact); break; } diff --git a/mod/like.php b/mod/like.php index 6b97fafb5..06d27659b 100644 --- a/mod/like.php +++ b/mod/like.php @@ -104,6 +104,7 @@ function like_content(&$a) { return; } + $r = q("SELECT `id` FROM `item` WHERE `verb` = '%s' AND `deleted` = 0 AND `contact-id` = %d AND ( `parent` = '%s' OR `parent-uri` = '%s') LIMIT 1", dbesc($activity), @@ -118,7 +119,58 @@ function like_content(&$a) { intval($r[0]['id']) ); - proc_run('php',"include/notifier.php","like","$post_id"); + // Clean up the `sign` table + $r2 = q("DELETE FROM `sign` WHERE `iid` = %d", + intval($r[0]['id']) + ); + + // Save the author information for the unlike in case we need to relay to Diaspora + // Note that we can only create a signature for a user of the local server. We don't have + // a key for remote users. That is ok, because if a remote user is "unlike"ing a post, it + // means we are the relay, and for relayable_retractions, Diaspora + // only checks the parent_author_signature if it doesn't have to relay further + // + // If $item['resource-id'] exists, it means the item is a photo. Diaspora doesn't support + // likes on photos, so don't bother. + + if(($activity === ACTIVITY_LIKE) && (! $item['resource-id'])) { + $signed_text = $r[0]['guid'] . ';' . 'Like'; + + if( contact['network'] === NETWORK_DIASPORA) + $diaspora_handle = $contact['addr']; + else { // Only works for NETWORK_DFRN + $contact_baseurl = substr($contact['url'], strpos($contact['url'],'://') + 3, strpos($contact['url'],'/profile') - 1); + $diaspora_handle = $contact['nick'] . '@' . $contact_baseurl; + + // Get contact's private key if he's a user of the local Friendica server + $r2 = q("SELECT `contact`.`uid` FROM `contact` WHERE `url` = '%s' AND `self` = 1 LIMIT 1", + dbesc(contact['url']) + ); + + if( $r2) { + $contact_uid = $r2['uid']; + $r2 = q("SELECT prvkey FROM user WHERE id = %d LIMIT 1", + intval($contact_uid) + ); + + if( $r2) + $authorsig = base64_encode(rsa_sign($signed_text,$r2['prvkey'],'sha256')); + } + } + + if(! isset($authorsig)) + $authorsig = ''; + + q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", + intval($r[0]['id']), + dbesc($signed_text), + dbesc($authorsig), + dbesc($diaspora_handle) + ); + } + +// proc_run('php',"include/notifier.php","like","$post_id"); // $post_id isn't defined here! + proc_run('php',"include/notifier.php","like","$r[0]['id']"); return; } @@ -191,6 +243,63 @@ EOT; ); } + + // Save the author information for the like in case we need to relay to Diaspora + // Note that we can only create a signature for a user of the local server. We don't have + // a key for remote users. That is ok, because if a remote user is "unlike"ing a post, it + // means we are the relay, and for relayable_retractions, Diaspora + // only checks the parent_author_signature if it doesn't have to relay further + + if(($activity === ACTIVITY_LIKE) && ($post_type === t('status'))) { + if( contact['network'] === NETWORK_DIASPORA) + $diaspora_handle = $contact['addr']; + else { // Only works for NETWORK_DFRN + $contact_baseurl = substr($contact['url'], strpos($contact['url'],'://') + 3, strpos($contact['url'],'/profile') - 1); + $diaspora_handle = $contact['nick'] . '@' . $contact_baseurl; + + // Get contact's private key if he's a user of the local Friendica server + $r2 = q("SELECT `contact`.`uid` FROM `contact` WHERE `url` = '%s' AND `self` = 1 LIMIT 1", + dbesc(contact['url']) + ); + + if( $r2) { + $contact_uid = $r2['uid']; + $r2 = q("SELECT prvkey FROM user WHERE id = %d LIMIT 1", + intval($contact_uid) + ); + + if( $r2) + $contact_uprvkey = $r2['prvkey']; + } + } + + $r = q("SELECT guid, parent FROM `item` WHERE id = %d LIMIT 1", + intval($post_id) + ); + if( $r) { + $p = q("SELECT guid FROM `item` WHERE id = %d AND parent = %d LIMIT 1", + intval($r[0]['parent'), + intval($r[0]['parent') + ); + if( $p) { + $signed_text = $r[0]['guid'] . ';Post;' . $p[0]['guid'] . ';true;' . $diaspora_handle; + + if(isset($contact_uprvkey)) + $authorsig = base64_encode(rsa_sign($signed_text,$contact_uprvkey,'sha256')); + else + $authorsig = ''; + + q("insert into sign (`iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", + intval($post_id), + dbesc($signed_text), + dbesc($authorsig), + dbesc($diaspora_handle) + ); + } + } + } + + $arr['id'] = $post_id; call_hooks('post_local_end', $arr); @@ -199,4 +308,4 @@ EOT; killme(); // return; // NOTREACHED -} \ No newline at end of file +} From 06263f72a8d37688f305b563543bca86d939653e Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sun, 3 Jun 2012 11:12:16 -0600 Subject: [PATCH 44/49] cleanup and logging --- include/diaspora.php | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/include/diaspora.php b/include/diaspora.php index 3bf4a9cc6..1e6662f04 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -1605,22 +1605,28 @@ function diaspora_like($importer,$xml,$msg) { logger('diaspora_like: duplicate like: ' . $guid); return; } + // Note: I don't think "Like" objects with positive = "false" are ever actually used + // It looks like "RelayableRetractions" are used for "unlike" instead if($positive === 'false') { - q("UPDATE `item` SET `deleted` = 1 WHERE `id` = %d AND `uid` = %d LIMIT 1", + logger('diaspora_like: received a like with positive set to "false"...ignoring'); +/* q("UPDATE `item` SET `deleted` = 1 WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($r[0]['id']), intval($importer['uid']) - ); + );*/ // FIXME // send notification via proc_run() return; } } + // Note: I don't think "Like" objects with positive = "false" are ever actually used + // It looks like "RelayableRetractions" are used for "unlike" instead if($positive === 'false') { - logger('diaspora_like: unlike received with no corresponding like'); + logger('diaspora_like: received a like with positive set to "false"'); + logger('diaspora_like: unlike received with no corresponding like...ignoring'); return; } - $author_signed_data = $guid . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $diaspora_handle; + $signed_data = $guid . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $diaspora_handle; $author_signature = base64_decode($author_signature); @@ -1638,20 +1644,20 @@ function diaspora_like($importer,$xml,$msg) { } } - if(! rsa_verify($author_signed_data,$author_signature,$key,'sha256')) { + if(! rsa_verify($signed_data,$author_signature,$key,'sha256')) { logger('diaspora_like: verification failed.'); return; } if($parent_author_signature) { - $owner_signed_data = $guid . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $diaspora_handle; + //$owner_signed_data = $guid . ';' . $target_type . ';' . $parent_guid . ';' . $positive . ';' . $diaspora_handle; $parent_author_signature = base64_decode($parent_author_signature); $key = $msg['key']; - if(! rsa_verify($owner_signed_data,$parent_author_signature,$key,'sha256')) { + if(! rsa_verify($signed_data,$parent_author_signature,$key,'sha256')) { logger('diaspora_like: owner verification failed.'); return; } @@ -2127,6 +2133,9 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { $target_type = 'Post'; // $positive = (($item['deleted']) ? 'false' : 'true'); $positive = 'true'; + + if(($item['deleted'])) + logger('diaspora_send_followup: received deleted "like". Those should go to diaspora_send_retraction'); } else { $tpl = get_markup_template('diaspora_comment.tpl'); @@ -2163,14 +2172,6 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { -// I think the first comment or like on a post whose home is our Friendica server is saved as an item -// as the top-level post owner's contact for writer of the comment or post. Thus, the "uid" -// on the item is `user`.`id` of the top-level post owner. That user is passed to this function -// as "$owner." -// -// I'm assuming for now that "$owner" will be the user of the top-level post for retractions too. Be -// aware that another reasonable possibility is that it's the "$owner" of the deleted comment. - $a = get_app(); @@ -2215,13 +2216,8 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { $text = html_entity_decode(bb2diaspora($body)); - // fetch the original signature if somebody sent the post to us to relay - // - // If we are relaying for a reply originating on our own account, there wasn't a 'send to relay' - // action. It wasn't needed. In that case create the original signature and the - // owner (parent author) signature - // Note that mod/item.php seems to take care of creating a signature for Diaspora for replies - // created on our own account + // fetch the original signature if the relayable was created by a Diaspora + // or DFRN user. Relayables for other networks are not supported. $r = q("select * from sign where " . $sql_sign_id . " = %d limit 1", intval($item['id']) @@ -2454,3 +2450,5 @@ function diaspora_transmit($owner,$contact,$slap,$public_batch) { return(($return_code) ? $return_code : (-1)); } + + From 9920fb39e566a10c44aa7ead9603ff3d1893a01a Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sun, 3 Jun 2012 14:32:17 -0600 Subject: [PATCH 45/49] Debugged implementation of Diaspora relayable_retractions Diaspora "relayable_retraction" is now supported by Friendica. The following should now work: Friendica top-level post: Diaspora comment deleted, disappears in Friendica Friendica comment deleted, disappears in Diaspora Diaspora like retracted, disappears in Friendica Friendica like retracted, disappears in Diaspora Diaspora top-level post: Same There are still exceptions, however. First, Friendica and Diaspora seem to frequently reject comments with an "invalid signature" error. This can probably be fixed. Also, some comments/likes/retractions seem to just disappear on the Diaspora side. In the Diaspora log these seem to be accompanied by a "not a valid object" error, often preceeded by a "received a comment but no corresponding post" error. These seem to be purely internal, since sometimes it works for some Diaspora contacts but not others. --- include/diaspora.php | 0 include/items.php | 4 ++- mod/like.php | 62 +++++++++++++++++++++++++------------------- 3 files changed, 38 insertions(+), 28 deletions(-) mode change 100644 => 100755 include/diaspora.php mode change 100644 => 100755 include/items.php mode change 100644 => 100755 mod/like.php diff --git a/include/diaspora.php b/include/diaspora.php old mode 100644 new mode 100755 diff --git a/include/items.php b/include/items.php old mode 100644 new mode 100755 index 6b16810b2..4513db1db --- a/include/items.php +++ b/include/items.php @@ -3300,7 +3300,9 @@ function drop_item($id,$interactive = true) { if(count($r)) { // The below handle only works for NETWORK_DFRN. I think that's ok, because this function // only handles DFRN deletes - $handle = $r['nick'] . '@' . substr($r['url'], strpos($r['url'],'://') + 3, strpos($r['url'],'/profile') - 1); + $handle_baseurl_start = strpos($r['url'],'://') + 3; + $handle_baseurl_length = strpos($r['url'],'/profile') - $handle_baseurl_start; + $handle = $r['nick'] . '@' . substr($r['url'], $handle_baseurl_start, $handle_baseurl_length); $authorsig = ''; } } diff --git a/mod/like.php b/mod/like.php old mode 100644 new mode 100755 index 06d27659b..942a04fe7 --- a/mod/like.php +++ b/mod/like.php @@ -105,7 +105,7 @@ function like_content(&$a) { } - $r = q("SELECT `id` FROM `item` WHERE `verb` = '%s' AND `deleted` = 0 + $r = q("SELECT * FROM `item` WHERE `verb` = '%s' AND `deleted` = 0 AND `contact-id` = %d AND ( `parent` = '%s' OR `parent-uri` = '%s') LIMIT 1", dbesc($activity), intval($contact['id']), @@ -113,15 +113,17 @@ function like_content(&$a) { dbesc($item_id) ); if(count($r)) { + $like_item = $r[0]; + // Already voted, undo it $r = q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1", dbesc(datetime_convert()), - intval($r[0]['id']) + intval($like_item['id']) ); // Clean up the `sign` table - $r2 = q("DELETE FROM `sign` WHERE `iid` = %d", - intval($r[0]['id']) + $r = q("DELETE FROM `sign` WHERE `iid` = %d", + intval($like_item['id']) ); // Save the author information for the unlike in case we need to relay to Diaspora @@ -134,27 +136,29 @@ function like_content(&$a) { // likes on photos, so don't bother. if(($activity === ACTIVITY_LIKE) && (! $item['resource-id'])) { - $signed_text = $r[0]['guid'] . ';' . 'Like'; + $signed_text = $like_item['guid'] . ';' . 'Like'; - if( contact['network'] === NETWORK_DIASPORA) + if( $contact['network'] === NETWORK_DIASPORA) $diaspora_handle = $contact['addr']; else { // Only works for NETWORK_DFRN - $contact_baseurl = substr($contact['url'], strpos($contact['url'],'://') + 3, strpos($contact['url'],'/profile') - 1); + $contact_baseurl_start = strpos($contact['url'],'://') + 3; + $contact_baseurl_length = strpos($contact['url'],'/profile') - $contact_baseurl_start; + $contact_baseurl = substr($contact['url'], $contact_baseurl_start, $contact_baseurl_length); $diaspora_handle = $contact['nick'] . '@' . $contact_baseurl; // Get contact's private key if he's a user of the local Friendica server - $r2 = q("SELECT `contact`.`uid` FROM `contact` WHERE `url` = '%s' AND `self` = 1 LIMIT 1", - dbesc(contact['url']) + $r = q("SELECT `contact`.`uid` FROM `contact` WHERE `url` = '%s' AND `self` = 1 LIMIT 1", + dbesc($contact['url']) ); - if( $r2) { - $contact_uid = $r2['uid']; - $r2 = q("SELECT prvkey FROM user WHERE id = %d LIMIT 1", + if( $r) { + $contact_uid = $r['uid']; + $r = q("SELECT prvkey FROM user WHERE uid = %d LIMIT 1", intval($contact_uid) ); - if( $r2) - $authorsig = base64_encode(rsa_sign($signed_text,$r2['prvkey'],'sha256')); + if( $r) + $authorsig = base64_encode(rsa_sign($signed_text,$r['prvkey'],'sha256')); } } @@ -162,15 +166,17 @@ function like_content(&$a) { $authorsig = ''; q("insert into sign (`retract_iid`,`signed_text`,`signature`,`signer`) values (%d,'%s','%s','%s') ", - intval($r[0]['id']), + intval($like_item['id']), dbesc($signed_text), dbesc($authorsig), dbesc($diaspora_handle) ); } + // proc_run('php',"include/notifier.php","like","$post_id"); // $post_id isn't defined here! - proc_run('php',"include/notifier.php","like","$r[0]['id']"); + $like_item_id = $like_item['id']; + proc_run('php',"include/notifier.php","like","$like_item_id"); return; } @@ -251,25 +257,27 @@ EOT; // only checks the parent_author_signature if it doesn't have to relay further if(($activity === ACTIVITY_LIKE) && ($post_type === t('status'))) { - if( contact['network'] === NETWORK_DIASPORA) + if( $contact['network'] === NETWORK_DIASPORA) $diaspora_handle = $contact['addr']; else { // Only works for NETWORK_DFRN - $contact_baseurl = substr($contact['url'], strpos($contact['url'],'://') + 3, strpos($contact['url'],'/profile') - 1); + $contact_baseurl_start = strpos($contact['url'],'://') + 3; + $contact_baseurl_length = strpos($contact['url'],'/profile') - $contact_baseurl_start; + $contact_baseurl = substr($contact['url'], $contact_baseurl_start, $contact_baseurl_length); $diaspora_handle = $contact['nick'] . '@' . $contact_baseurl; // Get contact's private key if he's a user of the local Friendica server - $r2 = q("SELECT `contact`.`uid` FROM `contact` WHERE `url` = '%s' AND `self` = 1 LIMIT 1", - dbesc(contact['url']) + $r = q("SELECT `contact`.`uid` FROM `contact` WHERE `url` = '%s' AND `self` = 1 LIMIT 1", + dbesc($contact['url']) ); - if( $r2) { - $contact_uid = $r2['uid']; - $r2 = q("SELECT prvkey FROM user WHERE id = %d LIMIT 1", + if( $r) { + $contact_uid = $r['uid']; + $r = q("SELECT prvkey FROM user WHERE uid = %d LIMIT 1", intval($contact_uid) ); - if( $r2) - $contact_uprvkey = $r2['prvkey']; + if( $r) + $contact_uprvkey = $r['prvkey']; } } @@ -278,8 +286,8 @@ EOT; ); if( $r) { $p = q("SELECT guid FROM `item` WHERE id = %d AND parent = %d LIMIT 1", - intval($r[0]['parent'), - intval($r[0]['parent') + intval($r[0]['parent']), + intval($r[0]['parent']) ); if( $p) { $signed_text = $r[0]['guid'] . ';Post;' . $p[0]['guid'] . ';true;' . $diaspora_handle; From 2a01ae8149e8a16ea0c0c5619a8dd0b682dba21c Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sun, 3 Jun 2012 14:52:42 -0600 Subject: [PATCH 46/49] database updates --- boot.php | 2 +- database.sql | 6 ++++-- update.php | 7 ++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/boot.php b/boot.php index 559cd8c32..742948f7b 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '3.0.1362' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1147 ); +define ( 'DB_UPDATE_VERSION', 1148 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/database.sql b/database.sql index b20846bad..c1d1b27e4 100644 --- a/database.sql +++ b/database.sql @@ -944,12 +944,14 @@ CREATE TABLE IF NOT EXISTS `session` ( CREATE TABLE IF NOT EXISTS `sign` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `iid` int(10) unsigned NOT NULL, + `iid` int(10) unsigned NOT NULL DEFAULT '0', + `retract_iid` int(10) unsigned NOT NULL DEFAULT '0', `signed_text` mediumtext NOT NULL, `signature` text NOT NULL, `signer` char(255) NOT NULL, PRIMARY KEY (`id`), - KEY `iid` (`iid`) + KEY `iid` (`iid`), + KEY `retract_iid` (`retract_iid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- diff --git a/update.php b/update.php index b542d75ba..35a6771b0 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ dumpfile.sql From 0b657aa2357bf8785302b55e2cafb397d67cb377 Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 3 Jun 2012 14:47:53 -0700 Subject: [PATCH 47/49] rev update --- boot.php | 2 +- util/messages.po | 598 ++++++++++++++++++++++++----------------------- 2 files changed, 304 insertions(+), 296 deletions(-) diff --git a/boot.php b/boot.php index 559cd8c32..6a4287819 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1362' ); +define ( 'FRIENDICA_VERSION', '3.0.1363' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1147 ); diff --git a/util/messages.po b/util/messages.po index f0f51fb40..43368ced0 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1362\n" +"Project-Id-Version: 3.0.1363\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-06-02 10:00-0700\n" +"POT-Creation-Date: 2012-06-03 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -51,8 +51,8 @@ msgstr "" #: ../../mod/profile_photo.php:163 ../../mod/message.php:44 #: ../../mod/message.php:96 ../../mod/allfriends.php:9 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53 -#: ../../mod/follow.php:8 ../../mod/display.php:138 ../../mod/profiles.php:7 -#: ../../mod/profiles.php:382 ../../mod/delegate.php:6 +#: ../../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 #: ../../include/items.php:3297 ../../index.php:306 @@ -131,7 +131,7 @@ msgstr "" #: ../../mod/settings.php:762 ../../mod/settings.php:969 #: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:417 #: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 -#: ../../mod/admin.php:1075 ../../mod/profiles.php:551 +#: ../../mod/admin.php:1075 ../../mod/profiles.php:554 #: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:605 #: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93 #: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158 @@ -162,7 +162,7 @@ msgstr "" #: ../../view/theme/diabook/theme.php:757 #: ../../view/theme/diabook/config.php:190 #: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70 -#: ../../include/conversation.php:574 +#: ../../include/conversation.php:580 msgid "Submit" msgstr "" @@ -216,7 +216,7 @@ msgstr "" msgid "Edit event" msgstr "" -#: ../../mod/events.php:300 ../../include/text.php:1064 +#: ../../mod/events.php:300 ../../include/text.php:1065 msgid "link to source" msgstr "" @@ -332,7 +332,7 @@ msgstr "" #: ../../mod/settings.php:956 ../../mod/settings.php:957 #: ../../mod/settings.php:958 ../../mod/settings.php:959 #: ../../mod/settings.php:960 ../../mod/register.php:234 -#: ../../mod/profiles.php:528 +#: ../../mod/profiles.php:531 msgid "Yes" msgstr "" @@ -344,7 +344,7 @@ msgstr "" #: ../../mod/settings.php:956 ../../mod/settings.php:957 #: ../../mod/settings.php:958 ../../mod/settings.php:959 #: ../../mod/settings.php:960 ../../mod/register.php:235 -#: ../../mod/profiles.php:529 +#: ../../mod/profiles.php:532 msgid "No" msgstr "" @@ -401,7 +401,7 @@ msgstr "" #: ../../mod/photos.php:583 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1315 +#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1316 #: ../../include/diaspora.php:1662 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" @@ -491,7 +491,7 @@ msgstr "" msgid "Use as profile photo" msgstr "" -#: ../../mod/photos.php:1140 ../../include/conversation.php:484 +#: ../../mod/photos.php:1140 ../../include/conversation.php:490 msgid "Private Message" msgstr "" @@ -527,44 +527,44 @@ msgstr "" msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "" -#: ../../mod/photos.php:1274 ../../include/conversation.php:548 +#: ../../mod/photos.php:1274 ../../include/conversation.php:554 msgid "I like this (toggle)" msgstr "" -#: ../../mod/photos.php:1275 ../../include/conversation.php:549 +#: ../../mod/photos.php:1275 ../../include/conversation.php:555 msgid "I don't like this (toggle)" msgstr "" -#: ../../mod/photos.php:1276 ../../include/conversation.php:983 +#: ../../mod/photos.php:1276 ../../include/conversation.php:989 msgid "Share" msgstr "" #: ../../mod/photos.php:1277 ../../mod/editpost.php:104 #: ../../mod/wallmessage.php:145 ../../mod/message.php:214 -#: ../../mod/message.php:408 ../../include/conversation.php:365 -#: ../../include/conversation.php:725 ../../include/conversation.php:1002 +#: ../../mod/message.php:408 ../../include/conversation.php:371 +#: ../../include/conversation.php:731 ../../include/conversation.php:1008 msgid "Please wait" msgstr "" #: ../../mod/photos.php:1293 ../../mod/photos.php:1333 -#: ../../mod/photos.php:1364 ../../include/conversation.php:571 +#: ../../mod/photos.php:1364 ../../include/conversation.php:577 msgid "This is you" msgstr "" #: ../../mod/photos.php:1295 ../../mod/photos.php:1335 -#: ../../mod/photos.php:1366 ../../include/conversation.php:573 +#: ../../mod/photos.php:1366 ../../include/conversation.php:579 #: ../../boot.php:514 msgid "Comment" msgstr "" #: ../../mod/photos.php:1297 ../../mod/editpost.php:125 -#: ../../include/conversation.php:583 ../../include/conversation.php:1020 +#: ../../include/conversation.php:589 ../../include/conversation.php:1026 msgid "Preview" msgstr "" #: ../../mod/photos.php:1394 ../../mod/settings.php:618 #: ../../mod/settings.php:699 ../../mod/group.php:168 ../../mod/admin.php:660 -#: ../../include/conversation.php:322 ../../include/conversation.php:603 +#: ../../include/conversation.php:328 ../../include/conversation.php:609 msgid "Delete" msgstr "" @@ -629,28 +629,28 @@ msgstr "" msgid "Edit post" msgstr "" -#: ../../mod/editpost.php:80 ../../include/conversation.php:969 +#: ../../mod/editpost.php:80 ../../include/conversation.php:975 msgid "Post to Email" msgstr "" #: ../../mod/editpost.php:95 ../../mod/settings.php:617 -#: ../../include/conversation.php:590 +#: ../../include/conversation.php:596 msgid "Edit" msgstr "" #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143 #: ../../mod/message.php:212 ../../mod/message.php:406 -#: ../../include/conversation.php:984 +#: ../../include/conversation.php:990 msgid "Upload photo" msgstr "" -#: ../../mod/editpost.php:97 ../../include/conversation.php:986 +#: ../../mod/editpost.php:97 ../../include/conversation.php:992 msgid "Attach file" msgstr "" #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144 #: ../../mod/message.php:213 ../../mod/message.php:407 -#: ../../include/conversation.php:988 +#: ../../include/conversation.php:994 msgid "Insert web link" msgstr "" @@ -666,35 +666,35 @@ msgstr "" msgid "Insert Vorbis [.ogg] audio" msgstr "" -#: ../../mod/editpost.php:102 ../../include/conversation.php:994 +#: ../../mod/editpost.php:102 ../../include/conversation.php:1000 msgid "Set your location" msgstr "" -#: ../../mod/editpost.php:103 ../../include/conversation.php:996 +#: ../../mod/editpost.php:103 ../../include/conversation.php:1002 msgid "Clear browser location" msgstr "" -#: ../../mod/editpost.php:105 ../../include/conversation.php:1003 +#: ../../mod/editpost.php:105 ../../include/conversation.php:1009 msgid "Permission settings" msgstr "" -#: ../../mod/editpost.php:113 ../../include/conversation.php:1012 +#: ../../mod/editpost.php:113 ../../include/conversation.php:1018 msgid "CC: email addresses" msgstr "" -#: ../../mod/editpost.php:114 ../../include/conversation.php:1013 +#: ../../mod/editpost.php:114 ../../include/conversation.php:1019 msgid "Public post" msgstr "" -#: ../../mod/editpost.php:117 ../../include/conversation.php:999 +#: ../../mod/editpost.php:117 ../../include/conversation.php:1005 msgid "Set title" msgstr "" -#: ../../mod/editpost.php:119 ../../include/conversation.php:1001 +#: ../../mod/editpost.php:119 ../../include/conversation.php:1007 msgid "Categories (comma-separated list)" msgstr "" -#: ../../mod/editpost.php:120 ../../include/conversation.php:1015 +#: ../../mod/editpost.php:120 ../../include/conversation.php:1021 msgid "Example: bob@example.com, mary@example.com" msgstr "" @@ -775,7 +775,7 @@ msgstr "" msgid "Invalid profile URL." msgstr "" -#: ../../mod/dfrn_request.php:486 ../../mod/follow.php:23 +#: ../../mod/dfrn_request.php:486 ../../include/follow.php:27 msgid "Disallowed profile URL." msgstr "" @@ -2439,7 +2439,7 @@ msgid "No recipient." msgstr "" #: ../../mod/wallmessage.php:124 ../../mod/message.php:171 -#: ../../include/conversation.php:937 +#: ../../include/conversation.php:943 msgid "Please enter a link URL:" msgstr "" @@ -2648,7 +2648,7 @@ msgid "Profile Visibility Editor" msgstr "" #: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128 -#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:77 +#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:79 #: ../../include/nav.php:50 ../../boot.php:1505 msgid "Profile" msgstr "" @@ -3666,59 +3666,8 @@ msgstr "" msgid "Login failed." msgstr "" -#: ../../mod/follow.php:30 -msgid "Connect URL missing." -msgstr "" - -#: ../../mod/follow.php:56 -msgid "" -"This site is not configured to allow communications with other networks." -msgstr "" - -#: ../../mod/follow.php:57 ../../mod/follow.php:72 -msgid "No compatible communication protocols or feeds were discovered." -msgstr "" - -#: ../../mod/follow.php:70 -msgid "The profile address specified does not provide adequate information." -msgstr "" - -#: ../../mod/follow.php:74 -msgid "An author or name was not found." -msgstr "" - -#: ../../mod/follow.php:76 -msgid "No browser URL could be matched to this address." -msgstr "" - -#: ../../mod/follow.php:78 -msgid "" -"Unable to match @-style Identity Address with a known protocol or email " -"contact." -msgstr "" - -#: ../../mod/follow.php:79 -msgid "Use mailto: in front of address to force email check." -msgstr "" - -#: ../../mod/follow.php:85 -msgid "" -"The profile address specified belongs to a network which has been disabled " -"on this site." -msgstr "" - -#: ../../mod/follow.php:90 -msgid "" -"Limited profile. This person will be unable to receive direct/personal " -"notifications from you." -msgstr "" - -#: ../../mod/follow.php:161 -msgid "Unable to retrieve contact information." -msgstr "" - -#: ../../mod/follow.php:216 -msgid "following" +#: ../../mod/follow.php:27 +msgid "Contact added" msgstr "" #: ../../mod/common.php:42 @@ -3746,8 +3695,8 @@ msgstr "" msgid "Search" msgstr "" -#: ../../mod/profiles.php:21 ../../mod/profiles.php:392 -#: ../../mod/profiles.php:506 ../../mod/dfrn_confirm.php:62 +#: ../../mod/profiles.php:21 ../../mod/profiles.php:395 +#: ../../mod/profiles.php:509 ../../mod/dfrn_confirm.php:62 msgid "Profile not found." msgstr "" @@ -3755,285 +3704,289 @@ msgstr "" msgid "Profile Name is required." msgstr "" -#: ../../mod/profiles.php:151 +#: ../../mod/profiles.php:152 msgid "Marital Status" msgstr "" -#: ../../mod/profiles.php:155 +#: ../../mod/profiles.php:156 msgid "Romantic Partner" msgstr "" -#: ../../mod/profiles.php:159 +#: ../../mod/profiles.php:160 msgid "Work/Employment" msgstr "" -#: ../../mod/profiles.php:162 +#: ../../mod/profiles.php:163 msgid "Religion" msgstr "" -#: ../../mod/profiles.php:166 +#: ../../mod/profiles.php:167 msgid "Political Views" msgstr "" -#: ../../mod/profiles.php:170 +#: ../../mod/profiles.php:171 msgid "Gender" msgstr "" -#: ../../mod/profiles.php:174 +#: ../../mod/profiles.php:175 msgid "Sexual Preference" msgstr "" -#: ../../mod/profiles.php:178 +#: ../../mod/profiles.php:179 msgid "Homepage" msgstr "" -#: ../../mod/profiles.php:182 +#: ../../mod/profiles.php:183 msgid "Interests" msgstr "" -#: ../../mod/profiles.php:186 +#: ../../mod/profiles.php:187 msgid "Address" msgstr "" -#: ../../mod/profiles.php:193 +#: ../../mod/profiles.php:194 msgid "Location" msgstr "" -#: ../../mod/profiles.php:270 +#: ../../mod/profiles.php:273 msgid "Profile updated." msgstr "" -#: ../../mod/profiles.php:337 +#: ../../mod/profiles.php:340 msgid " and " msgstr "" -#: ../../mod/profiles.php:345 +#: ../../mod/profiles.php:348 msgid "public profile" msgstr "" -#: ../../mod/profiles.php:348 +#: ../../mod/profiles.php:351 #, php-format msgid "%1$s changed %2$s to “%3$s”" msgstr "" -#: ../../mod/profiles.php:349 +#: ../../mod/profiles.php:352 #, php-format msgid " - Visit %1$s's %2$s" msgstr "" -#: ../../mod/profiles.php:352 +#: ../../mod/profiles.php:355 #, php-format msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" -#: ../../mod/profiles.php:411 +#: ../../mod/profiles.php:414 msgid "Profile deleted." msgstr "" -#: ../../mod/profiles.php:429 ../../mod/profiles.php:463 +#: ../../mod/profiles.php:432 ../../mod/profiles.php:466 msgid "Profile-" msgstr "" -#: ../../mod/profiles.php:448 ../../mod/profiles.php:490 +#: ../../mod/profiles.php:451 ../../mod/profiles.php:493 msgid "New profile created." msgstr "" -#: ../../mod/profiles.php:469 +#: ../../mod/profiles.php:472 msgid "Profile unavailable to clone." msgstr "" -#: ../../mod/profiles.php:527 +#: ../../mod/profiles.php:530 msgid "Hide your contact/friend list from viewers of this profile?" msgstr "" -#: ../../mod/profiles.php:550 +#: ../../mod/profiles.php:553 msgid "Edit Profile Details" msgstr "" -#: ../../mod/profiles.php:552 +#: ../../mod/profiles.php:555 msgid "View this profile" msgstr "" -#: ../../mod/profiles.php:553 +#: ../../mod/profiles.php:556 msgid "Create a new profile using these settings" msgstr "" -#: ../../mod/profiles.php:554 +#: ../../mod/profiles.php:557 msgid "Clone this profile" msgstr "" -#: ../../mod/profiles.php:555 +#: ../../mod/profiles.php:558 msgid "Delete this profile" msgstr "" -#: ../../mod/profiles.php:556 +#: ../../mod/profiles.php:559 msgid "Profile Name:" msgstr "" -#: ../../mod/profiles.php:557 +#: ../../mod/profiles.php:560 msgid "Your Full Name:" msgstr "" -#: ../../mod/profiles.php:558 +#: ../../mod/profiles.php:561 msgid "Title/Description:" msgstr "" -#: ../../mod/profiles.php:559 +#: ../../mod/profiles.php:562 msgid "Your Gender:" msgstr "" -#: ../../mod/profiles.php:560 +#: ../../mod/profiles.php:563 #, php-format msgid "Birthday (%s):" msgstr "" -#: ../../mod/profiles.php:561 +#: ../../mod/profiles.php:564 msgid "Street Address:" msgstr "" -#: ../../mod/profiles.php:562 +#: ../../mod/profiles.php:565 msgid "Locality/City:" msgstr "" -#: ../../mod/profiles.php:563 +#: ../../mod/profiles.php:566 msgid "Postal/Zip Code:" msgstr "" -#: ../../mod/profiles.php:564 +#: ../../mod/profiles.php:567 msgid "Country:" msgstr "" -#: ../../mod/profiles.php:565 +#: ../../mod/profiles.php:568 msgid "Region/State:" msgstr "" -#: ../../mod/profiles.php:566 +#: ../../mod/profiles.php:569 msgid " Marital Status:" msgstr "" -#: ../../mod/profiles.php:567 +#: ../../mod/profiles.php:570 msgid "Who: (if applicable)" msgstr "" -#: ../../mod/profiles.php:568 +#: ../../mod/profiles.php:571 msgid "Examples: cathy123, Cathy Williams, cathy@example.com" msgstr "" -#: ../../mod/profiles.php:569 +#: ../../mod/profiles.php:572 msgid "Since [date]:" msgstr "" -#: ../../mod/profiles.php:570 ../../include/profile_advanced.php:46 +#: ../../mod/profiles.php:573 ../../include/profile_advanced.php:46 msgid "Sexual Preference:" msgstr "" -#: ../../mod/profiles.php:571 +#: ../../mod/profiles.php:574 msgid "Homepage URL:" msgstr "" -#: ../../mod/profiles.php:572 ../../include/profile_advanced.php:52 +#: ../../mod/profiles.php:575 ../../include/profile_advanced.php:50 +msgid "Hometown:" +msgstr "" + +#: ../../mod/profiles.php:576 ../../include/profile_advanced.php:54 msgid "Political Views:" msgstr "" -#: ../../mod/profiles.php:573 +#: ../../mod/profiles.php:577 msgid "Religious Views:" msgstr "" -#: ../../mod/profiles.php:574 +#: ../../mod/profiles.php:578 msgid "Public Keywords:" msgstr "" -#: ../../mod/profiles.php:575 +#: ../../mod/profiles.php:579 msgid "Private Keywords:" msgstr "" -#: ../../mod/profiles.php:576 +#: ../../mod/profiles.php:580 msgid "Example: fishing photography software" msgstr "" -#: ../../mod/profiles.php:577 +#: ../../mod/profiles.php:581 msgid "(Used for suggesting potential friends, can be seen by others)" msgstr "" -#: ../../mod/profiles.php:578 +#: ../../mod/profiles.php:582 msgid "(Used for searching profiles, never shown to others)" msgstr "" -#: ../../mod/profiles.php:579 +#: ../../mod/profiles.php:583 msgid "Tell us about yourself..." msgstr "" -#: ../../mod/profiles.php:580 +#: ../../mod/profiles.php:584 msgid "Hobbies/Interests" msgstr "" -#: ../../mod/profiles.php:581 +#: ../../mod/profiles.php:585 msgid "Contact information and Social Networks" msgstr "" -#: ../../mod/profiles.php:582 +#: ../../mod/profiles.php:586 msgid "Musical interests" msgstr "" -#: ../../mod/profiles.php:583 +#: ../../mod/profiles.php:587 msgid "Books, literature" msgstr "" -#: ../../mod/profiles.php:584 +#: ../../mod/profiles.php:588 msgid "Television" msgstr "" -#: ../../mod/profiles.php:585 +#: ../../mod/profiles.php:589 msgid "Film/dance/culture/entertainment" msgstr "" -#: ../../mod/profiles.php:586 +#: ../../mod/profiles.php:590 msgid "Love/romance" msgstr "" -#: ../../mod/profiles.php:587 +#: ../../mod/profiles.php:591 msgid "Work/employment" msgstr "" -#: ../../mod/profiles.php:588 +#: ../../mod/profiles.php:592 msgid "School/education" msgstr "" -#: ../../mod/profiles.php:593 +#: ../../mod/profiles.php:597 msgid "" "This is your public profile.
It may " "be visible to anybody using the internet." msgstr "" -#: ../../mod/profiles.php:603 ../../mod/directory.php:111 +#: ../../mod/profiles.php:607 ../../mod/directory.php:111 msgid "Age: " msgstr "" -#: ../../mod/profiles.php:639 +#: ../../mod/profiles.php:644 msgid "Edit/Manage Profiles" msgstr "" -#: ../../mod/profiles.php:640 ../../boot.php:1066 +#: ../../mod/profiles.php:645 ../../boot.php:1066 msgid "Change profile photo" msgstr "" -#: ../../mod/profiles.php:641 ../../boot.php:1067 +#: ../../mod/profiles.php:646 ../../boot.php:1067 msgid "Create New Profile" msgstr "" -#: ../../mod/profiles.php:652 ../../boot.php:1077 +#: ../../mod/profiles.php:657 ../../boot.php:1077 msgid "Profile Image" msgstr "" -#: ../../mod/profiles.php:654 ../../boot.php:1080 +#: ../../mod/profiles.php:659 ../../boot.php:1080 msgid "visible to everybody" msgstr "" -#: ../../mod/profiles.php:655 ../../boot.php:1081 +#: ../../mod/profiles.php:660 ../../boot.php:1081 msgid "Edit visibility" msgstr "" -#: ../../mod/filer.php:29 ../../include/conversation.php:941 +#: ../../mod/filer.php:29 ../../include/conversation.php:947 msgid "Save to Folder:" msgstr "" @@ -4636,7 +4589,7 @@ msgid "Forums" msgstr "" #: ../../addon/page/page.php:63 ../../addon/showmore/showmore.php:87 -#: ../../include/contact_widgets.php:188 ../../include/conversation.php:470 +#: ../../include/contact_widgets.php:188 ../../include/conversation.php:476 #: ../../boot.php:515 msgid "show more" msgstr "" @@ -4681,7 +4634,7 @@ msgid "Latest likes" msgstr "" #: ../../addon/communityhome/communityhome.php:155 -#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1313 +#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1314 #: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "" @@ -5864,51 +5817,51 @@ msgstr "" msgid "Homepage:" msgstr "" -#: ../../include/profile_advanced.php:50 +#: ../../include/profile_advanced.php:52 msgid "Tags:" msgstr "" -#: ../../include/profile_advanced.php:54 +#: ../../include/profile_advanced.php:56 msgid "Religion:" msgstr "" -#: ../../include/profile_advanced.php:56 +#: ../../include/profile_advanced.php:58 msgid "About:" msgstr "" -#: ../../include/profile_advanced.php:58 +#: ../../include/profile_advanced.php:60 msgid "Hobbies/Interests:" msgstr "" -#: ../../include/profile_advanced.php:60 +#: ../../include/profile_advanced.php:62 msgid "Contact information and Social Networks:" msgstr "" -#: ../../include/profile_advanced.php:62 +#: ../../include/profile_advanced.php:64 msgid "Musical interests:" msgstr "" -#: ../../include/profile_advanced.php:64 +#: ../../include/profile_advanced.php:66 msgid "Books, literature:" msgstr "" -#: ../../include/profile_advanced.php:66 +#: ../../include/profile_advanced.php:68 msgid "Television:" msgstr "" -#: ../../include/profile_advanced.php:68 +#: ../../include/profile_advanced.php:70 msgid "Film/dance/culture/entertainment:" msgstr "" -#: ../../include/profile_advanced.php:70 +#: ../../include/profile_advanced.php:72 msgid "Love/Romance:" msgstr "" -#: ../../include/profile_advanced.php:72 +#: ../../include/profile_advanced.php:74 msgid "Work/employment:" msgstr "" -#: ../../include/profile_advanced.php:74 +#: ../../include/profile_advanced.php:76 msgid "School/education:" msgstr "" @@ -6228,7 +6181,7 @@ msgstr "" msgid "(no subject)" msgstr "" -#: ../../include/delivery.php:462 ../../include/enotify.php:23 +#: ../../include/delivery.php:462 ../../include/enotify.php:26 #: ../../include/notifier.php:684 msgid "noreply" msgstr "" @@ -6336,51 +6289,51 @@ msgstr "" msgid "December" msgstr "" -#: ../../include/text.php:924 +#: ../../include/text.php:925 msgid "bytes" msgstr "" -#: ../../include/text.php:944 ../../include/text.php:959 +#: ../../include/text.php:945 ../../include/text.php:960 msgid "remove" msgstr "" -#: ../../include/text.php:944 ../../include/text.php:959 +#: ../../include/text.php:945 ../../include/text.php:960 msgid "[remove]" msgstr "" -#: ../../include/text.php:947 +#: ../../include/text.php:948 msgid "Categories:" msgstr "" -#: ../../include/text.php:962 +#: ../../include/text.php:963 msgid "Filed under:" msgstr "" -#: ../../include/text.php:978 ../../include/text.php:990 +#: ../../include/text.php:979 ../../include/text.php:991 msgid "Click to open/close" msgstr "" -#: ../../include/text.php:1095 ../../include/user.php:230 +#: ../../include/text.php:1096 ../../include/user.php:230 msgid "default" msgstr "" -#: ../../include/text.php:1107 +#: ../../include/text.php:1108 msgid "Select an alternate language" msgstr "" -#: ../../include/text.php:1317 +#: ../../include/text.php:1318 msgid "activity" msgstr "" -#: ../../include/text.php:1319 +#: ../../include/text.php:1320 msgid "comment" msgstr "" -#: ../../include/text.php:1320 +#: ../../include/text.php:1321 msgid "post" msgstr "" -#: ../../include/text.php:1475 +#: ../../include/text.php:1476 msgid "Item filed" msgstr "" @@ -6706,11 +6659,11 @@ msgstr "" msgid "From: " msgstr "" -#: ../../include/bbcode.php:203 ../../include/bbcode.php:223 +#: ../../include/bbcode.php:210 ../../include/bbcode.php:230 msgid "$1 wrote:" msgstr "" -#: ../../include/bbcode.php:238 ../../include/bbcode.php:307 +#: ../../include/bbcode.php:245 ../../include/bbcode.php:314 msgid "Image/photo" msgstr "" @@ -6740,181 +6693,236 @@ msgstr "" msgid "%s Administrator" msgstr "" -#: ../../include/enotify.php:35 +#: ../../include/enotify.php:38 #, php-format msgid "%s " msgstr "" -#: ../../include/enotify.php:39 +#: ../../include/enotify.php:42 #, php-format msgid "[Friendica:Notify] New mail received at %s" msgstr "" -#: ../../include/enotify.php:41 +#: ../../include/enotify.php:44 #, php-format msgid "%s sent you a new private message at %s." msgstr "" -#: ../../include/enotify.php:42 +#: ../../include/enotify.php:45 #, php-format msgid "%s sent you %s." msgstr "" -#: ../../include/enotify.php:42 +#: ../../include/enotify.php:45 msgid "a private message" msgstr "" -#: ../../include/enotify.php:43 +#: ../../include/enotify.php:46 #, php-format msgid "Please visit %s to view and/or reply to your private messages." msgstr "" -#: ../../include/enotify.php:73 +#: ../../include/enotify.php:76 #, php-format msgid "%s's" msgstr "" -#: ../../include/enotify.php:77 +#: ../../include/enotify.php:80 msgid "your" msgstr "" -#: ../../include/enotify.php:84 +#: ../../include/enotify.php:87 #, php-format msgid "[Friendica:Notify] Comment to conversation #%d by %s" msgstr "" -#: ../../include/enotify.php:85 +#: ../../include/enotify.php:88 #, php-format msgid "%s commented on an item/conversation you have been following." msgstr "" -#: ../../include/enotify.php:86 +#: ../../include/enotify.php:89 #, php-format msgid "%s commented on %s." msgstr "" -#: ../../include/enotify.php:88 ../../include/enotify.php:101 -#: ../../include/enotify.php:112 ../../include/enotify.php:123 +#: ../../include/enotify.php:91 ../../include/enotify.php:104 +#: ../../include/enotify.php:115 ../../include/enotify.php:126 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "" -#: ../../include/enotify.php:95 +#: ../../include/enotify.php:98 #, php-format msgid "[Friendica:Notify] %s posted to your profile wall" msgstr "" -#: ../../include/enotify.php:97 +#: ../../include/enotify.php:100 #, php-format msgid "%s posted to your profile wall at %s" msgstr "" -#: ../../include/enotify.php:99 +#: ../../include/enotify.php:102 #, php-format msgid "%s posted to %s" msgstr "" -#: ../../include/enotify.php:99 +#: ../../include/enotify.php:102 msgid "your profile wall." msgstr "" -#: ../../include/enotify.php:108 +#: ../../include/enotify.php:111 #, php-format msgid "[Friendica:Notify] %s tagged you" msgstr "" -#: ../../include/enotify.php:109 +#: ../../include/enotify.php:112 #, php-format msgid "%s tagged you at %s" msgstr "" -#: ../../include/enotify.php:110 +#: ../../include/enotify.php:113 #, php-format msgid "%s %s." msgstr "" -#: ../../include/enotify.php:110 +#: ../../include/enotify.php:113 msgid "tagged you" msgstr "" -#: ../../include/enotify.php:119 +#: ../../include/enotify.php:122 #, php-format msgid "[Friendica:Notify] %s tagged your post" msgstr "" -#: ../../include/enotify.php:120 +#: ../../include/enotify.php:123 #, php-format msgid "%s tagged your post at %s" msgstr "" -#: ../../include/enotify.php:121 +#: ../../include/enotify.php:124 #, php-format msgid "%s tagged %s" msgstr "" -#: ../../include/enotify.php:121 +#: ../../include/enotify.php:124 msgid "your post" msgstr "" -#: ../../include/enotify.php:130 +#: ../../include/enotify.php:133 msgid "[Friendica:Notify] Introduction received" msgstr "" -#: ../../include/enotify.php:131 +#: ../../include/enotify.php:134 #, php-format msgid "You've received an introduction from '%s' at %s" msgstr "" -#: ../../include/enotify.php:132 +#: ../../include/enotify.php:135 #, php-format msgid "You've received %s from %s." msgstr "" -#: ../../include/enotify.php:132 +#: ../../include/enotify.php:135 msgid "an introduction" msgstr "" -#: ../../include/enotify.php:133 ../../include/enotify.php:150 +#: ../../include/enotify.php:136 ../../include/enotify.php:153 #, php-format msgid "You may visit their profile at %s" msgstr "" -#: ../../include/enotify.php:135 +#: ../../include/enotify.php:138 #, php-format msgid "Please visit %s to approve or reject the introduction." msgstr "" -#: ../../include/enotify.php:142 +#: ../../include/enotify.php:145 msgid "[Friendica:Notify] Friend suggestion received" msgstr "" -#: ../../include/enotify.php:143 +#: ../../include/enotify.php:146 #, php-format msgid "You've received a friend suggestion from '%s' at %s" msgstr "" -#: ../../include/enotify.php:144 +#: ../../include/enotify.php:147 #, php-format msgid "You've received %s for %s from %s." msgstr "" -#: ../../include/enotify.php:145 +#: ../../include/enotify.php:148 msgid "a friend suggestion" msgstr "" -#: ../../include/enotify.php:148 +#: ../../include/enotify.php:151 msgid "Name:" msgstr "" -#: ../../include/enotify.php:149 +#: ../../include/enotify.php:152 msgid "Photo:" msgstr "" -#: ../../include/enotify.php:152 +#: ../../include/enotify.php:155 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "" +#: ../../include/follow.php:32 +msgid "Connect URL missing." +msgstr "" + +#: ../../include/follow.php:59 +msgid "" +"This site is not configured to allow communications with other networks." +msgstr "" + +#: ../../include/follow.php:60 ../../include/follow.php:75 +msgid "No compatible communication protocols or feeds were discovered." +msgstr "" + +#: ../../include/follow.php:73 +msgid "The profile address specified does not provide adequate information." +msgstr "" + +#: ../../include/follow.php:77 +msgid "An author or name was not found." +msgstr "" + +#: ../../include/follow.php:79 +msgid "No browser URL could be matched to this address." +msgstr "" + +#: ../../include/follow.php:81 +msgid "" +"Unable to match @-style Identity Address with a known protocol or email " +"contact." +msgstr "" + +#: ../../include/follow.php:82 +msgid "Use mailto: in front of address to force email check." +msgstr "" + +#: ../../include/follow.php:88 +msgid "" +"The profile address specified belongs to a network which has been disabled " +"on this site." +msgstr "" + +#: ../../include/follow.php:93 +msgid "" +"Limited profile. This person will be unable to receive direct/personal " +"notifications from you." +msgstr "" + +#: ../../include/follow.php:164 +msgid "Unable to retrieve contact information." +msgstr "" + +#: ../../include/follow.php:218 +msgid "following" +msgstr "" + #: ../../include/items.php:2740 msgid "A new person is sharing with you at " msgstr "" @@ -7022,30 +7030,30 @@ msgstr "" msgid "stopped following" msgstr "" -#: ../../include/Contact.php:203 ../../include/conversation.php:836 +#: ../../include/Contact.php:203 ../../include/conversation.php:842 msgid "View Status" msgstr "" -#: ../../include/Contact.php:204 ../../include/conversation.php:837 +#: ../../include/Contact.php:204 ../../include/conversation.php:843 msgid "View Profile" msgstr "" -#: ../../include/Contact.php:205 ../../include/conversation.php:838 +#: ../../include/Contact.php:205 ../../include/conversation.php:844 msgid "View Photos" msgstr "" #: ../../include/Contact.php:206 ../../include/Contact.php:219 -#: ../../include/conversation.php:839 +#: ../../include/conversation.php:845 msgid "Network Posts" msgstr "" #: ../../include/Contact.php:207 ../../include/Contact.php:219 -#: ../../include/conversation.php:840 +#: ../../include/conversation.php:846 msgid "Edit Contact" msgstr "" #: ../../include/Contact.php:208 ../../include/Contact.php:219 -#: ../../include/conversation.php:841 +#: ../../include/conversation.php:847 msgid "Send PM" msgstr "" @@ -7058,216 +7066,216 @@ msgstr "" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "" -#: ../../include/conversation.php:321 ../../include/conversation.php:602 +#: ../../include/conversation.php:327 ../../include/conversation.php:608 msgid "Select" msgstr "" -#: ../../include/conversation.php:338 ../../include/conversation.php:695 -#: ../../include/conversation.php:696 +#: ../../include/conversation.php:344 ../../include/conversation.php:701 +#: ../../include/conversation.php:702 #, php-format msgid "View %s's profile @ %s" msgstr "" -#: ../../include/conversation.php:348 ../../include/conversation.php:707 +#: ../../include/conversation.php:354 ../../include/conversation.php:713 #, php-format msgid "%s from %s" msgstr "" -#: ../../include/conversation.php:363 +#: ../../include/conversation.php:369 msgid "View in context" msgstr "" -#: ../../include/conversation.php:469 +#: ../../include/conversation.php:475 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: ../../include/conversation.php:548 +#: ../../include/conversation.php:554 msgid "like" msgstr "" -#: ../../include/conversation.php:549 +#: ../../include/conversation.php:555 msgid "dislike" msgstr "" -#: ../../include/conversation.php:551 +#: ../../include/conversation.php:557 msgid "Share this" msgstr "" -#: ../../include/conversation.php:551 +#: ../../include/conversation.php:557 msgid "share" msgstr "" -#: ../../include/conversation.php:575 +#: ../../include/conversation.php:581 msgid "Bold" msgstr "" -#: ../../include/conversation.php:576 +#: ../../include/conversation.php:582 msgid "Italic" msgstr "" -#: ../../include/conversation.php:577 +#: ../../include/conversation.php:583 msgid "Underline" msgstr "" -#: ../../include/conversation.php:578 +#: ../../include/conversation.php:584 msgid "Quote" msgstr "" -#: ../../include/conversation.php:579 +#: ../../include/conversation.php:585 msgid "Code" msgstr "" -#: ../../include/conversation.php:580 +#: ../../include/conversation.php:586 msgid "Image" msgstr "" -#: ../../include/conversation.php:581 +#: ../../include/conversation.php:587 msgid "Link" msgstr "" -#: ../../include/conversation.php:582 +#: ../../include/conversation.php:588 msgid "Video" msgstr "" -#: ../../include/conversation.php:615 +#: ../../include/conversation.php:621 msgid "add star" msgstr "" -#: ../../include/conversation.php:616 +#: ../../include/conversation.php:622 msgid "remove star" msgstr "" -#: ../../include/conversation.php:617 +#: ../../include/conversation.php:623 msgid "toggle star status" msgstr "" -#: ../../include/conversation.php:620 +#: ../../include/conversation.php:626 msgid "starred" msgstr "" -#: ../../include/conversation.php:621 +#: ../../include/conversation.php:627 msgid "add tag" msgstr "" -#: ../../include/conversation.php:625 +#: ../../include/conversation.php:631 msgid "save to folder" msgstr "" -#: ../../include/conversation.php:697 +#: ../../include/conversation.php:703 msgid "to" msgstr "" -#: ../../include/conversation.php:698 +#: ../../include/conversation.php:704 msgid "Wall-to-Wall" msgstr "" -#: ../../include/conversation.php:699 +#: ../../include/conversation.php:705 msgid "via Wall-To-Wall:" msgstr "" -#: ../../include/conversation.php:744 +#: ../../include/conversation.php:750 msgid "Delete Selected Items" msgstr "" -#: ../../include/conversation.php:895 -#, php-format -msgid "%s likes this." -msgstr "" - -#: ../../include/conversation.php:895 -#, php-format -msgid "%s doesn't like this." -msgstr "" - -#: ../../include/conversation.php:899 -#, php-format -msgid "%2$d people like this." -msgstr "" - #: ../../include/conversation.php:901 #, php-format -msgid "%2$d people don't like this." +msgid "%s likes this." +msgstr "" + +#: ../../include/conversation.php:901 +#, php-format +msgid "%s doesn't like this." +msgstr "" + +#: ../../include/conversation.php:905 +#, php-format +msgid "%2$d people like this." msgstr "" #: ../../include/conversation.php:907 +#, php-format +msgid "%2$d people don't like this." +msgstr "" + +#: ../../include/conversation.php:913 msgid "and" msgstr "" -#: ../../include/conversation.php:910 +#: ../../include/conversation.php:916 #, php-format msgid ", and %d other people" msgstr "" -#: ../../include/conversation.php:911 +#: ../../include/conversation.php:917 #, php-format msgid "%s like this." msgstr "" -#: ../../include/conversation.php:911 +#: ../../include/conversation.php:917 #, php-format msgid "%s don't like this." msgstr "" -#: ../../include/conversation.php:936 +#: ../../include/conversation.php:942 msgid "Visible to everybody" msgstr "" -#: ../../include/conversation.php:938 +#: ../../include/conversation.php:944 msgid "Please enter a video link/URL:" msgstr "" -#: ../../include/conversation.php:939 +#: ../../include/conversation.php:945 msgid "Please enter an audio link/URL:" msgstr "" -#: ../../include/conversation.php:940 +#: ../../include/conversation.php:946 msgid "Tag term:" msgstr "" -#: ../../include/conversation.php:942 +#: ../../include/conversation.php:948 msgid "Where are you right now?" msgstr "" -#: ../../include/conversation.php:985 +#: ../../include/conversation.php:991 msgid "upload photo" msgstr "" -#: ../../include/conversation.php:987 +#: ../../include/conversation.php:993 msgid "attach file" msgstr "" -#: ../../include/conversation.php:989 +#: ../../include/conversation.php:995 msgid "web link" msgstr "" -#: ../../include/conversation.php:990 +#: ../../include/conversation.php:996 msgid "Insert video link" msgstr "" -#: ../../include/conversation.php:991 +#: ../../include/conversation.php:997 msgid "video link" msgstr "" -#: ../../include/conversation.php:992 +#: ../../include/conversation.php:998 msgid "Insert audio link" msgstr "" -#: ../../include/conversation.php:993 +#: ../../include/conversation.php:999 msgid "audio link" msgstr "" -#: ../../include/conversation.php:995 +#: ../../include/conversation.php:1001 msgid "set location" msgstr "" -#: ../../include/conversation.php:997 +#: ../../include/conversation.php:1003 msgid "clear location" msgstr "" -#: ../../include/conversation.php:1004 +#: ../../include/conversation.php:1010 msgid "permissions" msgstr "" From 34f210bc2d3e94e2150156e892a2a27d095f410c Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Sun, 3 Jun 2012 18:10:04 -0400 Subject: [PATCH 48/49] fix mini photo-menu bug Signed-off-by: Simon L'nu --- view/theme/dispy/dark/style.css | 2 +- view/theme/dispy/dark/style.less | 4 ++-- view/theme/dispy/light/style.css | 2 +- view/theme/dispy/light/style.less | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/view/theme/dispy/dark/style.css b/view/theme/dispy/dark/style.css index 82118275a..b94e5ec34 100644 --- a/view/theme/dispy/dark/style.css +++ b/view/theme/dispy/dark/style.css @@ -230,7 +230,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm .wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-info{width:5em;} .wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:4,5em;top:4em;background-position:35px center;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:3.35em;top:3.2em;background-position:35px center;} .wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;} .wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:4.5em;top:5.5em;} .comment-wwedit-wrapper{border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:5px;} diff --git a/view/theme/dispy/dark/style.less b/view/theme/dispy/dark/style.less index 0617aaced..c15706c36 100644 --- a/view/theme/dispy/dark/style.less +++ b/view/theme/dispy/dark/style.less @@ -1537,8 +1537,8 @@ nav #nav-notifications-linkmenu { .box(40px, 40px); } .wall-item-photo-menu-button { - width: 4,5em; - top: 4em; + width: 3.35em; + top: 3.2em; background-position: 35px center; } .wall-item-author { diff --git a/view/theme/dispy/light/style.css b/view/theme/dispy/light/style.css index e56696eab..0e7fc1f8d 100644 --- a/view/theme/dispy/light/style.css +++ b/view/theme/dispy/light/style.css @@ -230,7 +230,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm .wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-info{width:5em;} .wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:4,5em;top:4em;background-position:35px center;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:3.35em;top:3.2em;background-position:35px center;} .wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;} .wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:4.5em;top:5.5em;} .comment-wwedit-wrapper{border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:5px;} diff --git a/view/theme/dispy/light/style.less b/view/theme/dispy/light/style.less index 72b3069a6..ba8e0093b 100644 --- a/view/theme/dispy/light/style.less +++ b/view/theme/dispy/light/style.less @@ -1538,8 +1538,8 @@ nav #nav-notifications-linkmenu { .box(40px, 40px); } .wall-item-photo-menu-button { - width: 4,5em; - top: 4em; + width: 3.35em; + top: 3.2em; background-position: 35px center; } .wall-item-author { From ca105f1c669950768a1f4cd6b93f471cabbc5114 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Mon, 4 Jun 2012 07:17:23 +0200 Subject: [PATCH 49/49] quattro: cleanup the less file --- view/theme/quattro/dark/style.css | 10 ++--- view/theme/quattro/green/style.css | 10 ++--- view/theme/quattro/quattro.less | 68 ++++++++++++++++++------------ 3 files changed, 50 insertions(+), 38 deletions(-) diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css index d59ace8e3..14b7c75b3 100644 --- a/view/theme/quattro/dark/style.css +++ b/view/theme/quattro/dark/style.css @@ -1706,7 +1706,7 @@ footer { margin-bottom: 5px; clear: left; } -#adminpage .plugin .desc { +#adminpage .plugin desc { margin-left: 2.5em; } #adminpage .toggleplugin { @@ -1721,16 +1721,16 @@ footer { #adminpage table th { text-align: left; } -#adminpage td .icon { +#adminpage table td .icon { float: left; } +#adminpage table tr:hover { + background-color: #bbc7d7; +} #adminpage table#users img { width: 16px; height: 16px; } -#adminpage table tr:hover { - background-color: #bbc7d7; -} #adminpage .selectall { text-align: right; } diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css index d764886c1..f33c45eae 100644 --- a/view/theme/quattro/green/style.css +++ b/view/theme/quattro/green/style.css @@ -1706,7 +1706,7 @@ footer { margin-bottom: 5px; clear: left; } -#adminpage .plugin .desc { +#adminpage .plugin desc { margin-left: 2.5em; } #adminpage .toggleplugin { @@ -1721,16 +1721,16 @@ footer { #adminpage table th { text-align: left; } -#adminpage td .icon { +#adminpage table td .icon { float: left; } +#adminpage table tr:hover { + background-color: #bbc7d7; +} #adminpage table#users img { width: 16px; height: 16px; } -#adminpage table tr:hover { - background-color: #bbc7d7; -} #adminpage .selectall { text-align: right; } diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less index ce03dd6da..4d57719d9 100644 --- a/view/theme/quattro/quattro.less +++ b/view/theme/quattro/quattro.less @@ -1163,53 +1163,65 @@ footer { height: 100px; display: table-row; } padding: 0em 0.3em; } -#adminpage dl { +#adminpage { + dl { clear: left; margin-bottom: 2px; padding-bottom: 2px; border-bottom: 1px solid black; -} -#adminpage dt { + } + dt { width: 200px; float: left; font-weight: bold; -} -#adminpage dd { + } + dd { margin-left: 200px; -} - -#adminpage h3 { + } + h3 { border-bottom: 1px solid #cccccc; -} -#adminpage .field label { + } + .field label { font-weight: bold; -} -#adminpage .submit { + } + .submit { clear:left; text-align: right; -} - -#adminpage #pluginslist { + } + #pluginslist { margin: 0px; padding: 0px; -} -#adminpage .plugin { + } + .plugin { list-style: none; display: block; border: 1px solid #888888; padding: 1em; margin-bottom: 5px; clear: left; -} -#adminpage .plugin .desc { margin-left: 2.5em;} -#adminpage .toggleplugin { + desc { + margin-left: 2.5em; + } + } + .toggleplugin { float:left; margin-right: 1em; + } + table { + width:100%; + border-bottom: 1px solid #000000; + margin: 5px 0px; + th { + text-align: left; + } + td .icon { + float: left; + } + tr:hover { + background-color: #bbc7d7; + } + } + table#users img { + width: 16px; height: 16px; + } + .selectall { text-align: right; } } - -#adminpage table {width:100%; border-bottom: 1px solid #000000; margin: 5px 0px;} -#adminpage table th { text-align: left;} -#adminpage td .icon { float: left;} -#adminpage table#users img { width: 16px; height: 16px; } -#adminpage table tr:hover { background-color: #bbc7d7; } -#adminpage .selectall { text-align: right; } -