aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xLICENSE2
-rw-r--r--README4
-rwxr-xr-xboot.php4
-rwxr-xr-xdatabase.sql48
-rwxr-xr-xinclude/Scrape.php32
-rwxr-xr-xinclude/bb2diaspora.php32
-rw-r--r--[-rwxr-xr-x]include/bbcode.php7
-rwxr-xr-xinclude/config.php2
-rwxr-xr-xinclude/conversation.php20
-rwxr-xr-xinclude/delivery.php38
-rwxr-xr-xinclude/diaspora.php12
-rwxr-xr-xinclude/email.php200
-rwxr-xr-xinclude/enotify.php231
-rwxr-xr-xinclude/event.php2
-rwxr-xr-xinclude/html2bbcode.php6
-rw-r--r--include/html2plain.php180
-rwxr-xr-xinclude/items.php69
-rwxr-xr-xinclude/network.php59
-rwxr-xr-xinclude/notifier.php24
-rwxr-xr-xinclude/plugin.php9
-rwxr-xr-xinclude/poller.php72
-rw-r--r--include/quoteconvert.php132
-rwxr-xr-xinclude/template_processor.php23
-rwxr-xr-xinclude/text.php15
-rwxr-xr-xjs/main.js6
-rw-r--r--library/spam/b8/storage/storage_frndc.php54
-rwxr-xr-xmod/acl.php4
-rwxr-xr-xmod/admin.php6
-rwxr-xr-xmod/contacts.php3
-rw-r--r--mod/dfrn_confirm.php12
-rwxr-xr-xmod/display.php8
-rwxr-xr-xmod/item.php5
-rwxr-xr-xmod/network.php2
-rw-r--r--mod/notify.php6
-rwxr-xr-xmod/photo.php2
-rw-r--r--mod/ping.php28
-rwxr-xr-xmod/profile.php8
-rwxr-xr-xmod/settings.php57
-rwxr-xr-xmod/tagger.php1
-rwxr-xr-xmod/viewcontacts.php3
-rwxr-xr-xupdate.php42
-rwxr-xr-xview/admin_plugins.tpl2
-rwxr-xr-xview/contact_template.tpl4
-rw-r--r--view/de/messages.po1469
-rwxr-xr-xview/de/strings.php88
-rwxr-xr-xview/email_notify_html.tpl2
-rwxr-xr-xview/email_notify_text.tpl2
-rwxr-xr-xview/head.tpl4
-rwxr-xr-xview/jot-header.tpl3
-rwxr-xr-xview/settings_connectors.tpl2
-rw-r--r--view/theme/clean/unsupported0
-rw-r--r--view/theme/darkness/unsupported0
-rwxr-xr-xview/theme/darkzero-NS/border.jpgbin0 -> 521 bytes
-rwxr-xr-xview/theme/darkzero-NS/head.jpgbin0 -> 1269 bytes
-rwxr-xr-xview/theme/darkzero-NS/sectionend.jpgbin0 -> 355 bytes
-rwxr-xr-xview/theme/darkzero-NS/shiny.pngbin0 -> 362 bytes
-rwxr-xr-xview/theme/darkzero-NS/style.css99
-rwxr-xr-xview/theme/darkzero-NS/theme.php57
-rw-r--r--view/theme/darkzero-NS/unsupported0
-rwxr-xr-xview/theme/darkzero/style.css4
-rwxr-xr-xview/theme/darkzero/theme.php2
-rwxr-xr-xview/theme/dispy/premium.pngbin0 -> 2317 bytes
-rwxr-xr-xview/theme/dispy/star.pngbin0 -> 2129 bytes
-rwxr-xr-xview/theme/dispy/style.css15
-rw-r--r--view/theme/dispy/tag.pngbin0 -> 632 bytes
-rwxr-xr-xview/theme/dispy/wall_item.tpl1
-rwxr-xr-xview/theme/dispy/wallwall_item.tpl1
-rwxr-xr-xview/theme/duepuntozero/nav.tpl2
-rwxr-xr-xview/theme/duepuntozero/wallwall_item.tpl1
-rw-r--r--view/theme/easterbunny/unsupported0
-rw-r--r--view/theme/ghost/unsupported0
-rw-r--r--view/theme/goldenrod/unsupported0
-rw-r--r--view/theme/loozah/unsupported0
-rwxr-xr-xview/theme/loozah/wall_item.tpl2
-rwxr-xr-xview/theme/loozah/wallwall_item.tpl1
-rw-r--r--view/theme/shady/unsupported0
-rw-r--r--view/theme/vier/colors.less4
-rw-r--r--view/theme/vier/icons.less5
-rw-r--r--view/theme/vier/quattro.less250
-rwxr-xr-xview/theme/vier/search_item.tpl5
-rw-r--r--view/theme/vier/style.css698
-rw-r--r--view/theme/vier/wall_item.tpl7
-rw-r--r--view/theme/vier/wallwall_item.tpl6
-rwxr-xr-xview/wallwall_item.tpl2
84 files changed, 2846 insertions, 1362 deletions
diff --git a/LICENSE b/LICENSE
index 65ec68b9c..15c3e825b 100755
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2010, 2011 the Friendica Project
+Copyright (c) 2010-2012 the Friendica Project
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/README b/README
index e69de29bb..152d481ea 100644
--- a/README
+++ b/README
@@ -0,0 +1,4 @@
+Friendica Social Communications Server
+======================================
+
+Welcome to the free social web.
diff --git a/boot.php b/boot.php
index d9d361ee3..aee236de3 100755
--- a/boot.php
+++ b/boot.php
@@ -9,9 +9,9 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
-define ( 'FRIENDICA_VERSION', '2.3.1263' );
+define ( 'FRIENDICA_VERSION', '2.3.1267' );
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
-define ( 'DB_UPDATE_VERSION', 1125 );
+define ( 'DB_UPDATE_VERSION', 1130 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
diff --git a/database.sql b/database.sql
index f4199cb55..806f75419 100755
--- a/database.sql
+++ b/database.sql
@@ -634,7 +634,8 @@ CREATE TABLE IF NOT EXISTS `mailacct` (
`mailbox` CHAR( 255 ) NOT NULL,
`user` CHAR( 255 ) NOT NULL ,
`pass` TEXT NOT NULL ,
-`reply_to` CHAR( 255 ) NOT NULL ,
+`action` INT NOT NULL ,
+`movetofolder` CHAR(255) NOT NULL ,
`pubmail` TINYINT(1) NOT NULL DEFAULT '0',
`last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
@@ -751,14 +752,18 @@ CREATE TABLE IF NOT EXISTS `notify` (
`msg` MEDIUMTEXT NOT NULL ,
`uid` INT NOT NULL ,
`link` CHAR( 255 ) NOT NULL ,
+`parent` INT( 11 ) NOT NULL,
`seen` TINYINT( 1 ) NOT NULL DEFAULT '0',
`verb` CHAR( 255 ) NOT NULL,
`otype` CHAR( 16 ) NOT NULL,
INDEX ( `hash` ),
INDEX ( `type` ),
INDEX ( `uid` ),
+INDEX ( `link` ),
+INDEX ( `parent` ),
INDEX ( `seen` ),
-INDEX ( `date` )
+INDEX ( `date` ),
+INDEX ( `otype` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `item_id` (
@@ -810,5 +815,44 @@ INDEX ( `uid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
+--
+-- Table structure for table `notify-threads`
+--
+-- notify-id: notify.id of the first notification of this thread
+-- master-parent-item: item.id of the parent item
+-- parent-item: item.id of the imediate parent (only for multi-thread)
+-- not used yet.
+-- receiver-uid: user.uid of the receiver of this notification.
+--
+-- If we query for a master-parent-item and receiver-uid...
+-- * Returns 1 item: this is not the parent notification,
+-- so just "follow" the thread (references to this notification)
+-- * Returns no item: this is the first notification related to
+-- this parent item. So, create the record and use the message-id
+-- header.
+
+
+CREATE TABLE IF NOT EXISTS `notify-threads` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`notify-id` INT NOT NULL,
+`master-parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
+`parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
+`receiver-uid` INT NOT NULL,
+INDEX ( `master-parent-item` ),
+INDEX ( `receiver-uid` )
+) ENGINE = MyISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `spam` (
+`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`uid` INT NOT NULL,
+`spam` INT NOT NULL DEFAULT '0',
+`ham` INT NOT NULL DEFAULT '0',
+`term` CHAR(255) NOT NULL,
+`date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
+INDEX ( `uid` ),
+INDEX ( `spam` ),
+INDEX ( `ham` ),
+INDEX ( `term` )
+) ENGINE = MyISAM DEFAULT CHARSET=utf8;
diff --git a/include/Scrape.php b/include/Scrape.php
index 52405ae2d..4c4ad3cdb 100755
--- a/include/Scrape.php
+++ b/include/Scrape.php
@@ -230,11 +230,16 @@ function scrape_feed($url) {
$ret = array();
$s = fetch_url($url);
- if(! $s)
+ $headers = $a->get_curl_headers();
+ $code = $a->get_curl_code();
+
+ logger('scrape_feed: returns: ' . $code . ' headers=' . $headers, LOGGER_DEBUG);
+
+ if(! $s) {
+ logger('scrape_feed: no data returned for ' . $url);
return $ret;
+ }
- $headers = $a->get_curl_headers();
- logger('scrape_feed: headers=' . $headers, LOGGER_DEBUG);
$lines = explode("\n",$headers);
if(count($lines)) {
@@ -258,8 +263,10 @@ function scrape_feed($url) {
logger('scrape_feed: parse error: ' . $e);
}
- if(! $dom)
+ if(! $dom) {
+ logger('scrape_feed: failed to parse.');
return $ret;
+ }
$head = $dom->getElementsByTagName('base');
@@ -445,10 +452,19 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$adr = imap_rfc822_parse_adrlist($x->to,'');
if(isset($adr)) {
foreach($adr as $feadr) {
- if((strcasecmp($feadr->mailbox,$name) == 0)
- &&(strcasecmp($feadr->host,$phost) == 0)
+ if((strcasecmp($feadr->mailbox,$name) == 0)
+ &&(strcasecmp($feadr->host,$phost) == 0)
&& (strlen($feadr->personal))) {
- $vcard['fn'] = notags($feadr->personal);
+
+ $personal = imap_mime_header_decode($feadr->personal);
+ $vcard['fn'] = "";
+ foreach($personal as $perspart)
+ if ($perspart->charset != "default")
+ $vcard['fn'] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text);
+ else
+ $vcard['fn'] .= $perspart->text;
+
+ $vcard['fn'] = notags($vcard['fn']);
}
}
}
@@ -556,7 +572,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
if($check_feed) {
$feedret = scrape_feed(($poll) ? $poll : $url);
- logger('probe_url: scrape_feed returns: ' . print_r($feedret,true), LOGGER_DATA);
+ logger('probe_url: scrape_feed ' . (($poll)? $poll : $url) . ' returns: ' . print_r($feedret,true), LOGGER_DATA);
if(count($feedret) && ($feedret['feed_atom'] || $feedret['feed_rss'])) {
$poll = ((x($feedret,'feed_atom')) ? unamp($feedret['feed_atom']) : unamp($feedret['feed_rss']));
if(! x($vcard))
diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index bcef86616..8487f845a 100755
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -55,42 +55,12 @@ function diaspora2bb($s) {
$s = preg_replace("/(\[code\])+(.*?)(\[\/code\])+/ism","[code]$2[/code]", $s);
// Don't show link to full picture (until it is fixed)
- $s = scale_diaspora_images($s, false);
+ $s = scale_external_images($s, false);
return $s;
}
-function scale_diaspora_images($s,$include_link = true) {
-
- $matches = null;
- $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
- if($c) {
- require_once('include/Photo.php');
- foreach($matches as $mtch) {
- logger('scale_diaspora_image: ' . $mtch[1]);
- $i = fetch_url($mtch[1]);
- if($i) {
- $ph = new Photo($i);
- if($ph->is_valid()) {
- if($ph->getWidth() > 600 || $ph->getHeight() > 600) {
- $ph->scaleImage(600);
- $new_width = $ph->getWidth();
- $new_height = $ph->getHeight();
- logger('scale_diaspora_image: ' . $new_width . 'w ' . $new_height . 'h' . 'match: ' . $mtch[0], LOGGER_DEBUG);
- $s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]'
- . "\n" . (($include_link)
- ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n"
- : ''),$s);
- logger('scale_diaspora_image: new string: ' . $s, LOGGER_DEBUG);
- }
- }
- }
- }
- }
- return $s;
-}
-
function stripdcode_br_cb($s) {
return '[code]' . str_replace('<br />', "\n\t", $s[1]) . '[/code]';
}
diff --git a/include/bbcode.php b/include/bbcode.php
index 32053b4ec..cff26f5c8 100755..100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -151,7 +151,7 @@ function bbcode($Text,$preserve_nl = false) {
// handle nested lists
$endlessloop = 0;
- while (strpos($Text, "[/list]") and strpos($Text, "[list") and (++$endlessloop < 20)) {
+ while ((strpos($Text, "[/list]") !== false) and (strpos($Text, "[list") !== false) and (++$endlessloop < 20)) {
$Text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '<ul class="listbullet" style="list-style-type: circle;">$1</ul>' ,$Text);
$Text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '<ul class="listnone" style="list-style-type: none;">$1</ul>' ,$Text);
$Text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>' ,$Text);
@@ -194,7 +194,7 @@ function bbcode($Text,$preserve_nl = false) {
// Check for [quote] text
// handle nested quotes
$endlessloop = 0;
- while (strpos($Text, "[/quote]") !== false and strpos($Text, "[quote]") !== false and (++$endlessloop < 20))
+ while ((strpos($Text, "[/quote]") !== false) and (strpos($Text, "[quote]") !== false) and (++$endlessloop < 20))
$Text = preg_replace("/\[quote\](.*?)\[\/quote\]/ism","$QuoteLayout", $Text);
// Check for [quote=Author] text
@@ -203,7 +203,7 @@ function bbcode($Text,$preserve_nl = false) {
// handle nested quotes
$endlessloop = 0;
- while (strpos($Text, "[/quote]") !== false and strpos($Text, "[quote=") !== false and (++$endlessloop < 20))
+ while ((strpos($Text, "[/quote]")!== false) and (strpos($Text, "[quote=") !== false) and (++$endlessloop < 20))
$Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism",
"<blockquote><strong>" . $t_wrote . "</strong> $2</blockquote>",
$Text);
@@ -285,3 +285,4 @@ function bbcode($Text,$preserve_nl = false) {
return $Text;
}
+
diff --git a/include/config.php b/include/config.php
index 92694f519..2cddda0b8 100755
--- a/include/config.php
+++ b/include/config.php
@@ -162,7 +162,7 @@ function del_config($family,$key) {
if(x($a->config[$family],$key))
unset($a->config[$family][$key]);
$ret = q("DELETE FROM `config` WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1",
- dbesc($cat),
+ dbesc($family),
dbesc($key)
);
return $ret;
diff --git a/include/conversation.php b/include/conversation.php
index 3d13a1179..2ef37694d 100755
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -6,6 +6,11 @@
function localize_item(&$item){
$Text = $item['body'];
+
+
+ // find private image (w/data url) if present and convert image
+ // link to a magic-auth redirect.
+
$saved_image = '';
$img_start = strpos($Text,'[img]data:');
$img_end = strpos($Text,'[/img]');
@@ -232,7 +237,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$alike = array();
$dlike = array();
-
+ $o = "";
// array with html for each thread (parent+comments)
$threads = array();
@@ -403,6 +408,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$toplevelprivate = false;
// Take care of author collapsing and comment collapsing
+ // (author collapsing is currently disabled)
// If a single author has more than 3 consecutive top-level posts, squash the remaining ones.
// If there are more than two comments, squash all but the last 2.
@@ -410,7 +416,9 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$toplevelprivate = (($toplevelpost && $item['private']) ? true : false);
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
- /*if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
+ // DISABLED
+ /*
+ if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
$blowhard_count ++;
if($blowhard_count == 3) {
$o .= '<div class="icollapse-wrapper fakelink" id="icollapse-wrapper-' . $item['parent']
@@ -424,7 +432,9 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
if($blowhard_count >= 3)
$o .= '</div>';
$blowhard_count = 0;
- }*/
+ }
+ // END DISABLED
+ */
$comments_seen = 0;
$comments_collapsed = false;
@@ -436,7 +446,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
else {
// prevent private email from leaking into public conversation
- if((! $toplevelpost) && (! toplevelprivate) && ($item['private']) && ($profile_owner != local_user()))
+ if((! $toplevelpost) && (! $toplevelprivate) && ($item['private']) && ($profile_owner != local_user()))
continue;
$comments_seen ++;
}
@@ -641,7 +651,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$body = prepare_body($item,true);
$tmp_item = replace_macros($template,array(
- '$type' => implode("",array_slice(split("/",$item['verb']),-1)),
+ '$type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'$tags' => $tags,
'$body' => template_escape($body),
'$id' => $item['item_id'],
diff --git a/include/delivery.php b/include/delivery.php
index cbf602a0b..c1ff07bd5 100755
--- a/include/delivery.php
+++ b/include/delivery.php
@@ -1,6 +1,7 @@
<?php
require_once("boot.php");
require_once('include/queue_fn.php');
+require_once('include/html2plain.php');
function delivery_run($argv, $argc){
global $a, $db;
@@ -8,7 +9,7 @@ function delivery_run($argv, $argc){
if(is_null($a)){
$a = new App;
}
-
+
if(is_null($db)) {
@include(".htconfig.php");
require_once("dba.php");
@@ -293,7 +294,7 @@ function delivery_run($argv, $argc){
$sql_extra = sprintf(" AND `dfrn-id` = '%s' ", dbesc($contact['issued-id']));
else
$sql_extra = sprintf(" AND `issued-id` = '%s' ", dbesc($contact['dfrn-id']));
-
+
$x = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`,
`contact`.`pubkey` AS `cpubkey`,
`contact`.`prvkey` AS `cprvkey`,
@@ -322,14 +323,14 @@ function delivery_run($argv, $argc){
require_once('library/simplepie/simplepie.inc');
logger('mod-delivery: local delivery');
local_delivery($x[0],$atom);
- break;
+ break;
}
}
$deliver_status = dfrn_deliver($owner,$contact,$atom);
logger('notifier: dfrn_delivery returns ' . $deliver_status);
-
+
if($deliver_status == (-1)) {
logger('notifier: delivery failed: queuing message');
add_to_queue($contact['id'],NETWORK_DFRN,$atom);
@@ -382,7 +383,7 @@ function delivery_run($argv, $argc){
case NETWORK_MAIL :
case NETWORK_MAIL2:
-
+
if(get_config('system','dfrn_only'))
break;
// WARNING: does not currently convert to RFC2047 header encodings, etc.
@@ -432,9 +433,19 @@ function delivery_run($argv, $argc){
if($reply_to)
$headers .= 'Reply-to: ' . $reply_to . "\n";
- $headers .= 'Message-id: <' . $it['uri'] . '>' . "\n";
+
+ // for testing purposes: Collect exported mails
+ $file = tempnam("/tmp/friendica/", "mail-out-");
+ file_put_contents($file, json_encode($it));
+
+ $headers .= 'Message-Id: <' . iri2msgid($it['uri']). '>' . "\n";
+
+ //logger("Mail: uri: ".$it['uri']." parent-uri ".$it['parent-uri'], LOGGER_DEBUG);
+ //logger("Mail: Data: ".print_r($it, true), LOGGER_DEBUG);
+ //logger("Mail: Data: ".print_r($it, true), LOGGER_DATA);
+
if($it['uri'] !== $it['parent-uri']) {
- $header .= 'References: <' . $it['parent-uri'] . '>' . "\n";
+ $headers .= 'References: <' . iri2msgid($it['parent-uri']) . '>' . "\n";
if(! strlen($it['title'])) {
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
dbesc($it['parent-uri'])
@@ -450,13 +461,16 @@ function delivery_run($argv, $argc){
}
}
}
- $headers .= 'MIME-Version: 1.0' . "\n";
- $headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
+ /*$headers .= 'MIME-Version: 1.0' . "\n";
+ //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
+ $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
$html = prepare_body($it);
- $message = '<html><body>' . $html . '</body></html>';
+ //$message = '<html><body>' . $html . '</body></html>';
+ $message = html2plain($html);
logger('notifier: email delivery to ' . $addr);
- mail($addr, $subject, $message, $headers);
+ mail($addr, $subject, $message, $headers);*/
+ email_send($addr, $subject, $headers, $it);
}
break;
@@ -473,7 +487,7 @@ function delivery_run($argv, $argc){
if((! $contact['pubkey']) && (! $public_message))
break;
-
+
if($target_item['verb'] === ACTIVITY_DISLIKE) {
// unsupported
break;
diff --git a/include/diaspora.php b/include/diaspora.php
index 5896f1bfd..dca857a19 100755
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -794,15 +794,15 @@ function diaspora_reshare($importer,$xml) {
if(strlen($source_xml->post->asphoto->objectId) && ($source_xml->post->asphoto->objectId != 0) && ($source_xml->post->asphoto->image_url)) {
$body = '[url=' . notags(unxmlify($source_xml->post->asphoto->image_url)) . '][img]' . notags(unxmlify($source_xml->post->asphoto->objectId)) . '[/img][/url]' . "\n";
- $body = scale_diaspora_images($body,false);
+ $body = scale_external_images($body,false);
}
elseif($source_xml->post->asphoto->image_url) {
$body = '[img]' . notags(unxmlify($source_xml->post->asphoto->image_url)) . '[/img]' . "\n";
- $body = scale_diaspora_images($body);
+ $body = scale_external_images($body);
}
elseif($source_xml->post->status_message) {
$body = diaspora2bb($source_xml->post->status_message->raw_message);
- $body = scale_diaspora_images($body);
+ $body = scale_external_images($body);
}
else {
@@ -945,11 +945,11 @@ function diaspora_asphoto($importer,$xml) {
if(strlen($xml->objectId) && ($xml->objectId != 0) && ($xml->image_url)) {
$body = '[url=' . notags(unxmlify($xml->image_url)) . '][img]' . notags(unxmlify($xml->objectId)) . '[/img][/url]' . "\n";
- $body = scale_diaspora_images($body,false);
+ $body = scale_external_images($body,false);
}
elseif($xml->image_url) {
$body = '[img]' . notags(unxmlify($xml->image_url)) . '[/img]' . "\n";
- $body = scale_diaspora_images($body);
+ $body = scale_external_images($body);
}
else {
logger('diaspora_asphoto: no photo url found.');
@@ -1476,7 +1476,7 @@ function diaspora_photo($importer,$xml,$msg) {
$link_text = '[img]' . $remote_photo_path . $remote_photo_name . '[/img]' . "\n";
- $link_text = scale_diaspora_images($link_text);
+ $link_text = scale_external_images($link_text);
if(strpos($parent_item['body'],$link_text) === false) {
$r = q("update item set `body` = '%s', `visible` = 1 where `id` = %d and `uid` = %d limit 1",
diff --git a/include/email.php b/include/email.php
index 3e6a8186d..659978b6e 100755
--- a/include/email.php
+++ b/include/email.php
@@ -1,4 +1,5 @@
<?php
+require_once('include/html2plain.php');
function email_connect($mailbox,$username,$password) {
if(! function_exists('imap_open'))
@@ -79,15 +80,32 @@ function email_get_msg($mbox,$uid) {
if(! $struc)
return $ret;
+ // for testing purposes: Collect imported mails
+ // $file = tempnam("/tmp/friendica2/", "mail-in-");
+ // file_put_contents($file, json_encode($struc));
+
if(! $struc->parts) {
- $ret['body'] = email_get_part($mbox,$uid,$struc,0);
+ $ret['body'] = email_get_part($mbox,$uid,$struc,0, 'html');
+
+ if (trim($ret['body']) == '')
+ $ret['body'] = email_get_part($mbox,$uid,$struc,0, 'plain');
+ else
+ $ret['body'] = html2bbcode($ret['body']);
}
else {
+ $text = '';
+ $html = '';
foreach($struc->parts as $ptop => $p) {
- $x = email_get_part($mbox,$uid,$p,$ptop + 1);
- if($x)
- $ret['body'] = $x;
+ $x = email_get_part($mbox,$uid,$p,$ptop + 1, 'plain');
+ if($x) $text .= $x;
+
+ $x = email_get_part($mbox,$uid,$p,$ptop + 1, 'html');
+ if($x) $html .= $x;
}
+ if (trim($html) != '')
+ $ret['body'] = html2bbcode($html);
+ else
+ $ret['body'] = $text;
}
return $ret;
}
@@ -95,74 +113,81 @@ function email_get_msg($mbox,$uid) {
// At the moment - only return plain/text.
// Later we'll repackage inline images as data url's and make the HTML safe
-function email_get_part($mbox,$uid,$p,$partno) {
- // $partno = '1', '2', '2.1', '2.1.3', etc for multipart, 0 if simple
- global $htmlmsg,$plainmsg,$charset,$attachments;
+function email_get_part($mbox,$uid,$p,$partno, $subtype) {
+ // $partno = '1', '2', '2.1', '2.1.3', etc for multipart, 0 if simple
+ global $htmlmsg,$plainmsg,$charset,$attachments;
- echo $partno;
+ //echo $partno."\n";
- // DECODE DATA
- $data = ($partno)
+ // DECODE DATA
+ $data = ($partno)
? @imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK)
- : @imap_body($mbox,$uid,FT_UID|FT_PEEK);
-
- // Any part may be encoded, even plain text messages, so check everything.
- if ($p->encoding==4)
- $data = quoted_printable_decode($data);
- elseif ($p->encoding==3)
- $data = base64_decode($data);
-
- // PARAMETERS
- // get all parameters, like charset, filenames of attachments, etc.
- $params = array();
- if ($p->parameters)
- foreach ($p->parameters as $x)
- $params[strtolower($x->attribute)] = $x->value;
- if ($p->dparameters)
- foreach ($p->dparameters as $x)
- $params[strtolower($x->attribute)] = $x->value;
-
- // ATTACHMENT
- // Any part with a filename is an attachment,
- // so an attached text file (type 0) is not mistaken as the message.
-
- if ($params['filename'] || $params['name']) {
- // filename may be given as 'Filename' or 'Name' or both
- $filename = ($params['filename'])? $params['filename'] : $params['name'];
- // filename may be encoded, so see imap_mime_header_decode()
- $attachments[$filename] = $data; // this is a problem if two files have same name
- }
+ : @imap_body($mbox,$uid,FT_UID|FT_PEEK);
+
+ // for testing purposes: Collect imported mails
+ // $file = tempnam("/tmp/friendica2/", "mail-body-");
+ // file_put_contents($file, $data);
+
+ // Any part may be encoded, even plain text messages, so check everything.
+ if ($p->encoding==4)
+ $data = quoted_printable_decode($data);
+ elseif ($p->encoding==3)
+ $data = base64_decode($data);
+
+ // PARAMETERS
+ // get all parameters, like charset, filenames of attachments, etc.
+ $params = array();
+ if ($p->parameters)
+ foreach ($p->parameters as $x)
+ $params[strtolower($x->attribute)] = $x->value;
+ if (isset($p->dparameters) and $p->dparameters)
+ foreach ($p->dparameters as $x)
+ $params[strtolower($x->attribute)] = $x->value;
+
+ // ATTACHMENT
+ // Any part with a filename is an attachment,
+ // so an attached text file (type 0) is not mistaken as the message.
+
+ if ((isset($params['filename']) and $params['filename']) || (isset($params['name']) and $params['name'])) {
+ // filename may be given as 'Filename' or 'Name' or both
+ $filename = ($params['filename'])? $params['filename'] : $params['name'];
+ // filename may be encoded, so see imap_mime_header_decode()
+ $attachments[$filename] = $data; // this is a problem if two files have same name
+ }
- // TEXT
- if ($p->type == 0 && $data) {
- // Messages may be split in different parts because of inline attachments,
- // so append parts together with blank row.
- if (strtolower($p->subtype)=='plain')
- return (trim($data) ."\n\n");
- else
+ // TEXT
+ if ($p->type == 0 && $data) {
+ // Messages may be split in different parts because of inline attachments,
+ // so append parts together with blank row.
+ if (strtolower($p->subtype)==$subtype) {
+ $data = iconv($params['charset'], 'UTF-8//IGNORE', $data);
+ return (trim($data) ."\n\n");
+ } else
$data = '';
// $htmlmsg .= $data ."<br><br>";
- $charset = $params['charset']; // assume all parts are same charset
- }
+ $charset = $params['charset']; // assume all parts are same charset
+ }
- // EMBEDDED MESSAGE
- // Many bounce notifications embed the original message as type 2,
- // but AOL uses type 1 (multipart), which is not handled here.
- // There are no PHP functions to parse embedded messages,
- // so this just appends the raw source to the main message.
-// elseif ($p->type==2 && $data) {
-// $plainmsg .= $data."\n\n";
-// }
-
- // SUBPART RECURSION
- if ($p->parts) {
- foreach ($p->parts as $partno0=>$p2) {
- $x = email_get_part($mbox,$uid,$p2,$partno . '.' . ($partno0+1)); // 1.2, 1.2.1, etc.
- if($x)
- return $x;
+ // EMBEDDED MESSAGE
+ // Many bounce notifications embed the original message as type 2,
+ // but AOL uses type 1 (multipart), which is not handled here.
+ // There are no PHP functions to parse embedded messages,
+ // so this just appends the raw source to the main message.
+// elseif ($p->type==2 && $data) {
+// $plainmsg .= $data."\n\n";
+// }
+
+ // SUBPART RECURSION
+ if (isset($p->parts) and $p->parts) {
+ $x = "";
+ foreach ($p->parts as $partno0=>$p2) {
+ $x .= email_get_part($mbox,$uid,$p2,$partno . '.' . ($partno0+1), $subtype); // 1.2, 1.2.1, etc.
+ //if($x)
+ // return $x;
}
- }
+ return $x;
+ }
}
@@ -216,6 +241,53 @@ function email_header_encode($in_str, $charset) {
$out_str = $start . $out_str . $end;
}
return $out_str;
-}
+}
+
+function email_send($addr, $subject, $headers, $item) {
+ //$headers .= 'MIME-Version: 1.0' . "\n";
+ //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
+ //$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
+ //$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
+
+ $part = uniqid("", true);
+ $html = prepare_body($item);
+ $headers .= "Mime-Version: 1.0\n";
+ $headers .= 'Content-Type: multipart/alternative; boundary="=_'.$part.'"'."\n\n";
+
+ $body = "\n--=_".$part."\n";
+ $body .= "Content-Transfer-Encoding: 8bit\n";
+ $body .= "Content-Type: text/plain; charset=utf-8; format=flowed\n\n";
+
+ $body .= html2plain($html)."\n";
+
+ $body .= "--=_".$part."\n";
+ $body .= "Content-Transfer-Encoding: 8bit\n";
+ $body .= "Content-Type: text/html; charset=utf-8\n\n";
+
+ $body .= '<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">'.$html."</body></html>\n";
+
+ $body .= "--=_".$part."--";
+
+ //$message = '<html><body>' . $html . '</body></html>';
+ //$message = html2plain($html);
+ logger('notifier: email delivery to ' . $addr);
+ mail($addr, $subject, $body, $headers);
+}
+
+function iri2msgid($iri) {
+ if (!strpos($iri, "@"))
+ $msgid = preg_replace("/urn:(\S+):(\S+)\.(\S+):(\d+):(\S+)/i", "urn!$1!$4!$5@$2.$3", $iri);
+ else
+ $msgid = $iri;
+ return($msgid);
+}
+
+function msgid2iri($msgid) {
+ if (strpos($msgid, "@"))
+ $iri = preg_replace("/urn!(\S+)!(\d+)!(\S+)@(\S+)\.(\S+)/i", "urn:$1:$4.$5:$2:$3", $msgid);
+ else
+ $iri = $msgid;
+ return($iri);
+}
diff --git a/include/enotify.php b/include/enotify.php
index 1eb3b5476..a505f1f04 100755
--- a/include/enotify.php
+++ b/include/enotify.php
@@ -13,7 +13,9 @@ function notification($params) {
$site_admin = sprintf( t('%s Administrator'), $sitename);
$sender_name = $product;
- $sender_email = t('noreply') . '@' . $a->get_hostname();
+ $hostname = $a->get_hostname();
+ $sender_email = t('noreply') . '@' . $hostname;
+ $additional_mail_header = "";
if(array_key_exists('item',$params)) {
$title = $params['item']['title'];
@@ -23,9 +25,12 @@ function notification($params) {
$title = $body = '';
}
+ // e.g. "your post", "David's photo", etc.
+ $possess_desc = t('%s <!item_type!>');
+
if($params['type'] == NOTIFY_MAIL) {
- $subject = sprintf( t('New mail received at %s'),$sitename);
+ $subject = sprintf( t('[Friendica:Notify] New mail received at %s'),$sitename);
$preamble = sprintf( t('%s sent you a new private message at %s.'),$params['source_name'],$sitename);
$epreamble = sprintf( t('%s sent you %s.'),'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a private message') . '[/url]');
@@ -36,10 +41,43 @@ function notification($params) {
}
if($params['type'] == NOTIFY_COMMENT) {
+// logger("notification: params = " . print_r($params, true), LOGGER_DEBUG);
+
+ $parent_id = $params['parent'];
+
+
+ // if it's a post figure out who's post it is.
+
+ $p = null;
+
+ if($params['otype'] === 'item' && $parent_id) {
+ $p = q("select * from item where id = %d and uid = %d limit 1",
+ intval($parent_id),
+ intval($params['uid'])
+ );
+ }
+
+ $possess_desc = str_replace('<!item_type!>',item_post_type($p[0]),$possess_desc);
- $subject = sprintf( t('%s commented on an item at %s'), $params['source_name'], $sitename);
+ // "a post"
+ $dest_str = sprintf($possess_desc,'a');
+
+ // "George Bull's post"
+ if($p)
+ $dest_str = sprintf($possess_desc,sprintf( t("%s's"),$p[0]['author-name']));
+
+ // "your post"
+ if($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall'])
+ $dest_str = sprintf($possess_desc, t('your') );
+
+ // Some mail softwares relies on subject field for threading.
+ // So, we cannot have different subjects for notifications of the same thread.
+ // Before this we have the name of the replier on the subject rendering
+ // differents subjects for messages on the same thread.
+
+ $subject = sprintf( t('[Friendica:Notify] Comment to conversation #%d by %s'), $parent_id, $params['source_name']);
$preamble = sprintf( t('%s commented on an item/conversation you have been following.'), $params['source_name']);
- $epreamble = sprintf( t('%s commented in %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a watched conversation') . '[/url]');
+ $epreamble = sprintf( t('%s commented on %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . $dest_str . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -48,7 +86,10 @@ function notification($params) {
}
if($params['type'] == NOTIFY_WALL) {
- $preamble = $subject = sprintf( t('%s posted to your profile wall at %s') , $params['source_name'], $sitename);
+ $subject = sprintf( t('[Friendica:Notify] %s posted to your profile wall') , $params['source_name']);
+
+ $preamble = sprintf( t('%s posted to your profile wall at %s') , $params['source_name'], $sitename);
+
$epreamble = sprintf( t('%s posted to %s') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('your profile wall.') . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -58,7 +99,8 @@ function notification($params) {
}
if($params['type'] == NOTIFY_TAGSELF) {
- $preamble = $subject = sprintf( t('%s tagged you at %s') , $params['source_name'], $sitename);
+ $subject = sprintf( t('[Friendica:Notify] %s tagged you') , $params['source_name']);
+ $preamble = sprintf( t('%s tagged you at %s') , $params['source_name'], $sitename);
$epreamble = sprintf( t('%s %s.') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=' . $params['link'] . ']' . t('tagged you') . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -68,7 +110,8 @@ function notification($params) {
}
if($params['type'] == NOTIFY_TAGSHARE) {
- $preamble = $subject = sprintf( t('%s tagged your post at %s') , $params['source_name'], $sitename);
+ $subject = sprintf( t('[Friendica:Notify] %s tagged your post') , $params['source_name']);
+ $preamble = sprintf( t('%s tagged your post at %s') , $params['source_name'], $sitename);
$epreamble = sprintf( t('%s tagged %s') , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('your post') . '[/url]' );
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -78,7 +121,7 @@ function notification($params) {
}
if($params['type'] == NOTIFY_INTRO) {
- $subject = sprintf( t('Introduction received at %s'), $sitename);
+ $subject = sprintf( t('[Friendica:Notify] Introduction received'));
$preamble = sprintf( t('You\'ve received an introduction from \'%s\' at %s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('You\'ve received %s from %s.'), '[url=$itemlink]' . t('an introduction') . '[/url]' , '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
$body = sprintf( t('You may visit their profile at %s'),$params['source_link']);
@@ -90,7 +133,7 @@ function notification($params) {
}
if($params['type'] == NOTIFY_SUGGEST) {
- $subject = sprintf( t('Friend suggestion received at %s'), $sitename);
+ $subject = sprintf( t('[Friendica:Notify] Friend suggestion received'));
$preamble = sprintf( t('You\'ve received a friend suggestion from \'%s\' at %s'), $params['source_name'], $sitename);
$epreamble = sprintf( t('You\'ve received %s for %s from %s.'),
'[url=$itemlink]' . t('a friend suggestion') . '[/url]',
@@ -126,22 +169,36 @@ function notification($params) {
} while($dups == true);
-
+ $datarray = array();
+ $datarray['hash'] = $hash;
+ $datarray['name'] = $params['source_name'];
+ $datarray['url'] = $params['source_link'];
+ $datarray['photo'] = $params['source_photo'];
+ $datarray['date'] = datetime_convert();
+ $datarray['uid'] = $params['uid'];
+ $datarray['link'] = $itemlink;
+ $datarray['parent'] = $parent_id;
+ $datarray['type'] = $params['type'];
+ $datarray['verb'] = $params['verb'];
+ $datarray['otype'] = $params['otype'];
+
+ call_hooks('enotify_store', $datarray);
// create notification entry in DB
- $r = q("insert into notify (hash,name,url,photo,date,uid,link,type,verb,otype)
- values('%s','%s','%s','%s','%s',%d,'%s',%d,'%s','%s')",
- dbesc($hash),
- dbesc($params['source_name']),
- dbesc($params['source_link']),
- dbesc($params['source_photo']),
- dbesc(datetime_convert()),
- intval($params['uid']),
- dbesc($itemlink),
- intval($params['type']),
- dbesc($params['verb']),
- dbesc($params['otype'])
+ $r = q("insert into notify (hash,name,url,photo,date,uid,link,parent,type,verb,otype)
+ values('%s','%s','%s','%s','%s',%d,'%s',%d,%d,'%s','%s')",
+ dbesc($datarray['hash']),
+ dbesc($datarray['name']),
+ dbesc($datarray['url']),
+ dbesc($datarray['photo']),
+ dbesc($datarray['date']),
+ intval($datarray['uid']),
+ dbesc($datarray['link']),
+ intval($datarray['parent']),
+ intval($datarray['type']),
+ dbesc($datarray['verb']),
+ dbesc($datarray['otype'])
);
$r = q("select id from notify where hash = '%s' and uid = %d limit 1",
@@ -170,50 +227,111 @@ function notification($params) {
logger('notification: sending notification email');
+ $id_for_parent = "${params['parent']}@${hostname}";
+
+ // Is this the first email notification for this parent item and user?
+
+ $r = q("select `id` from `notify-threads` where `master-parent-item` = %d and `receiver-uid` = %d limit 1",
+ intval($params['parent']),
+ intval($params['uid']) );
+
+ // If so, create the record of it and use a message-id smtp header.
+
+ if(!$r) {
+ logger("norify_id:" . intval($notify_id). ", parent: " . intval($params['parent']) . "uid: " .
+intval($params['uid']), LOGGER_DEBUG);
+ $r = q("insert into `notify-threads` (`notify-id`, `master-parent-item`, `receiver-uid`, `parent-item`)
+ values(%d,%d,%d,%d)",
+ intval($notify_id),
+ intval($params['parent']),
+ intval($params['uid']),
+ 0 );
+
+ $additional_mail_header .= "Message-ID: <${id_for_parent}>\n";
+ $log_msg = "include/enotify: No previous notification found for this parent:\n" .
+ " parent: ${params['parent']}\n" . " uid : ${params['uid']}\n";
+ logger($log_msg, LOGGER_DEBUG);
+ }
+
+ // If not, just "follow" the thread.
+
+ else {
+ $additional_mail_header = "References: <${id_for_parent}>\nIn-Reply-To: <${id_for_parent}>\n";
+ logger("include/enotify: There's already a notification for this parent:\n" . print_r($r, true), LOGGER_DEBUG);
+ }
+
+
$textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n",
$body))),ENT_QUOTES,'UTF-8'));
$htmlversion = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"),
"<br />\n",$body))));
+ $datarray = array();
+ $datarray['banner'] = $banner;
+ $datarray['product'] = $product;
+ $datarray['preamble'] = $preamble;
+ $datarray['sitename'] = $sitename;
+ $datarray['siteurl'] = $siteurl;
+ $datarray['type'] = $params['type'];
+ $datarray['parent'] = $params['parent'];
+ $datarray['source_name'] = $params['source_name'];
+ $datarray['source_link'] = $params['source_link'];
+ $datarray['source_photo'] = $params['source_photo'];
+ $datarray['uid'] = $params['uid'];
+ $datarray['username'] = $params['to_name'];
+ $datarray['hsitelink'] = $hsitelink;
+ $datarray['tsitelink'] = $tsitelink;
+ $datarray['hitemlink'] = '<a href="' . $itemlink . '">' . $itemlink . '</a>';
+ $datarray['titemlink'] = $itemlink;
+ $datarray['thanks'] = $thanks;
+ $datarray['site_admin'] = $site_admin;
+ $datarray['title'] = stripslashes($title);
+ $datarray['htmlversion'] = $htmlversion;
+ $datarray['textversion'] = $textversion;
+ $datarray['subject'] = $subject;
+ $datarray['headers'] = $additional_mail_header;
+
+ call_hooks('enotify_mail', $datarray);
+
// load the template for private message notifications
$tpl = get_markup_template('email_notify_html.tpl');
$email_html_body = replace_macros($tpl,array(
- '$banner' => $banner,
- '$product' => $product,
- '$preamble' => $preamble,
- '$sitename' => $sitename,
- '$siteurl' => $siteurl,
- '$source_name' => $params['source_name'],
- '$source_link' => $params['source_link'],
- '$source_photo' => $params['source_photo'],
- '$username' => $params['to_name'],
- '$hsitelink' => $hsitelink,
- '$itemlink' => '<a href="' . $itemlink . '">' . $itemlink . '</a>',
- '$thanks' => $thanks,
- '$site_admin' => $site_admin,
- '$title' => stripslashes($title),
- '$htmlversion' => $htmlversion,
+ '$banner' => $datarray['banner'],
+ '$product' => $datarray['product'],
+ '$preamble' => $datarray['preamble'],
+ '$sitename' => $datarray['sitename'],
+ '$siteurl' => $datarray['siteurl'],
+ '$source_name' => $datarray['source_name'],
+ '$source_link' => $datarray['source_link'],
+ '$source_photo' => $datarray['source_photo'],
+ '$username' => $datarray['to_name'],
+ '$hsitelink' => $datarray['hsitelink'],
+ '$hitemlink' => $datarray['hitemlink'],
+ '$thanks' => $datarray['thanks'],
+ '$site_admin' => $datarray['site_admin'],
+ '$title' => $datarray['title'],
+ '$htmlversion' => $datarray['htmlversion'],
));
// load the template for private message notifications
$tpl = get_markup_template('email_notify_text.tpl');
$email_text_body = replace_macros($tpl,array(
- '$banner' => $banner,
- '$product' => $product,
- '$preamble' => $preamble,
- '$sitename' => $sitename,
- '$siteurl' => $siteurl,
- '$source_name' => $params['source_name'],
- '$source_link' => $params['source_link'],
- '$source_photo' => $params['source_photo'],
- '$username' => $params['to_name'],
- '$tsitelink' => $tsitelink,
- '$itemlink' => $itemlink,
- '$thanks' => $thanks,
- '$site_admin' => $site_admin,
- '$title' => stripslashes($title),
- '$textversion' => $textversion,
+ '$banner' => $datarray['banner'],
+ '$product' => $datarray['product'],
+ '$preamble' => $datarray['preamble'],
+ '$sitename' => $datarray['sitename'],
+ '$siteurl' => $datarray['siteurl'],
+ '$source_name' => $datarray['source_name'],
+ '$source_link' => $datarray['source_link'],
+ '$source_photo' => $datarray['source_photo'],
+ '$username' => $datarray['to_name'],
+ '$tsitelink' => $datarray['tsitelink'],
+ '$titemlink' => $datarray['titemlink'],
+ '$thanks' => $datarray['thanks'],
+ '$site_admin' => $datarray['site_admin'],
+ '$title' => $datarray['title'],
+ '$textversion' => $datarray['textversion'],
));
// logger('text: ' . $email_text_body);
@@ -225,9 +343,10 @@ function notification($params) {
'fromEmail' => $sender_email,
'replyTo' => $sender_email,
'toEmail' => $params['to_email'],
- 'messageSubject' => $subject,
+ 'messageSubject' => $datarray['subject'],
'htmlVersion' => $email_html_body,
- 'textVersion' => $email_text_body
+ 'textVersion' => $email_text_body,
+ 'additionalMailHeader' => $datarray['headers'],
));
}
@@ -248,6 +367,7 @@ class enotify {
* @param messageSubject subject of the message
* @param htmlVersion html version of the message
* @param textVersion text only version of the message
+ * @param additionalMailHeader additions to the smtp mail header
*/
static public function send($params) {
@@ -262,6 +382,7 @@ class enotify {
// generate a multipart/alternative message header
$messageHeader =
+ $params['additionalMailHeader'] .
"From: {$params['fromName']} <{$params['fromEmail']}>\n" .
"Reply-To: {$params['fromName']} <{$params['replyTo']}>\n" .
"MIME-Version: 1.0\n" .
@@ -291,4 +412,4 @@ class enotify {
logger("notification: enotify::send returns " . $res, LOGGER_DEBUG);
}
}
-?> \ No newline at end of file
+?>
diff --git a/include/event.php b/include/event.php
index c7669b381..4a9a9a004 100755
--- a/include/event.php
+++ b/include/event.php
@@ -163,7 +163,7 @@ function bbtoevent($s) {
if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match))
$ev['adjust'] = $match[1];
$match = '';
- $ev['nofinish'] = (($ev['start'] && (! $ev['finish'])) ? 1 : 0);
+ $ev['nofinish'] = (($ev['start'] && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0);
return $ev;
}
diff --git a/include/html2bbcode.php b/include/html2bbcode.php
index d8f1a24f1..51d629940 100755
--- a/include/html2bbcode.php
+++ b/include/html2bbcode.php
@@ -10,7 +10,7 @@ Originally made for the syncom project: http://wiki.piratenpartei.de/Syncom
function node2bbcode(&$doc, $oldnode, $attributes, $startbb, $endbb)
{
do {
- $done = node2bbcodesub(&$doc, $oldnode, $attributes, $startbb, $endbb);
+ $done = node2bbcodesub($doc, $oldnode, $attributes, $startbb, $endbb);
} while ($done);
}
@@ -258,7 +258,7 @@ function html2bbcode($message)
"[hr]\n",
"\n[list",
"[/list]\n",
- "\n[/list]",
+ "\n[/",
"[list]\n",
"[list=1]\n",
"\n[*]"),
@@ -268,7 +268,7 @@ function html2bbcode($message)
"[hr]",
"[list",
"[/list]",
- "[/list]",
+ "[/",
"[list]",
"[list=1]",
"[*]"),
diff --git a/include/html2plain.php b/include/html2plain.php
new file mode 100644
index 000000000..2a4cf6639
--- /dev/null
+++ b/include/html2plain.php
@@ -0,0 +1,180 @@
+<?php
+require_once "html2bbcode.php";
+
+function breaklines($line, $level)
+{
+ $wraplen = 75-$level;
+
+ $newlines = array();
+
+ do {
+ $oldline = $line;
+
+ $subline = substr($line, 0, $wraplen);
+
+ $pos = strrpos($subline, ' ');
+
+ if ($pos == 0)
+ $pos = strpos($line, ' ');
+
+ if (($pos > 0) and strlen($line) > $wraplen) {
+ $newline = trim(substr($line, 0, $pos));
+ if ($level > 0)
+ $newline = str_repeat(">", $level).' '.$newline;
+
+ $newlines[] = $newline." ";
+ $line = substr($line, $pos+1);
+ }
+
+ } while ((strlen($line) > $wraplen) and !($oldline == $line));
+
+ if ($level > 0)
+ $line = str_repeat(">", $level).' '.$line;
+
+ $newlines[] = $line;
+
+
+ return(implode($newlines, "\n"));
+}
+
+function quotelevel($message)
+{
+ $lines = explode("\n", $message);
+
+ $newlines = array();
+ $level = 0;
+ foreach($lines as $line) {;
+ $line = trim($line);
+ $startquote = false;
+ while (strpos("*".$line, '[quote]') > 0) {
+ $level++;
+ $pos = strpos($line, '[quote]');
+ $line = substr($line, 0, $pos).substr($line, $pos+7);
+ $startquote = true;
+ }
+
+ $currlevel = $level;
+
+ while (strpos("*".$line, '[/quote]') > 0) {
+ $level--;
+ if ($level < 0)
+ $level = 0;
+
+ $pos = strpos($line, '[/quote]');
+ $line = substr($line, 0, $pos).substr($line, $pos+8);
+ }
+
+ if (!$startquote or ($line != ''))
+ $newlines[] = breaklines($line, $currlevel);
+ }
+ return(implode($newlines, "\n"));
+}
+
+function html2plain($html)
+{
+ global $lang;
+
+ $message = str_replace("\r", "", $html);
+
+ $doc = new DOMDocument();
+ $doc->preserveWhiteSpace = false;
+
+ $message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8");
+
+ @$doc->loadHTML($message);
+
+ $xpath = new DomXPath($doc);
+ $list = $xpath->query("//pre");
+ foreach ($list as $node) {
+ $node->nodeValue = str_replace("\n", "\r", $node->nodeValue);
+ }
+
+ $message = $doc->saveHTML();
+ $message = str_replace(array("\n<", ">\n", "\r", "\n", "\xC3\x82\xC2\xA0"), array("<", ">", "<br>", " ", ""), $message);
+ $message = preg_replace('= [\s]*=i', " ", $message);
+
+ // nach <a href="...">...</a> suchen, die ... miteinander vergleichen und bei Gleichheit durch ein einzelnes ... ersetzen.
+ $pattern = '/<a.*?href="(.*?)".*?>(.*?)<\/a>/is';
+ preg_match_all($pattern, $message, $result, PREG_SET_ORDER);
+
+ foreach ($result as $treffer) {
+ if ($treffer[1] == $treffer[2]) {
+ $search = '<a href="'.$treffer[1].'" target="_blank">'.$treffer[1].'</a>';
+ $message = str_replace($search, $treffer[1], $message);
+ }
+ }
+ @$doc->loadHTML($message);
+
+ node2bbcode($doc, 'html', array(), '', '');
+ node2bbcode($doc, 'body', array(), '', '');
+
+ // MyBB-Auszeichnungen
+ node2bbcode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_');
+ node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/');
+ node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*');
+
+ node2bbcode($doc, 'strong', array(), '*', '*');
+ node2bbcode($doc, 'b', array(), '*', '*');
+ node2bbcode($doc, 'i', array(), '/', '/');
+ node2bbcode($doc, 'u', array(), '_', '_');
+
+ node2bbcode($doc, 'blockquote', array(), '[quote]', "[/quote]\n");
+
+ node2bbcode($doc, 'br', array(), "\n", '');
+
+ node2bbcode($doc, 'span', array(), "", "");
+ node2bbcode($doc, 'pre', array(), "", "");
+ node2bbcode($doc, 'div', array(), "\r", "\r");
+ node2bbcode($doc, 'p', array(), "\n", "\n");
+
+ //node2bbcode($doc, 'ul', array(), "\n[list]", "[/list]\n");
+ //node2bbcode($doc, 'ol', array(), "\n[list=1]", "[/list]\n");
+ node2bbcode($doc, 'li', array(), "\n* ", "\n");
+
+ node2bbcode($doc, 'hr', array(), str_repeat("-", 70), "");
+
+ node2bbcode($doc, 'tr', array(), "\n", "");
+ node2bbcode($doc, 'td', array(), "\t", "");
+
+ node2bbcode($doc, 'h1', array(), "\n\n*", "*\n");
+ node2bbcode($doc, 'h2', array(), "\n\n*", "*\n");
+ node2bbcode($doc, 'h3', array(), "\n\n*", "*\n");
+ node2bbcode($doc, 'h4', array(), "\n\n*", "*\n");
+ node2bbcode($doc, 'h5', array(), "\n\n*", "*\n");
+ node2bbcode($doc, 'h6', array(), "\n\n*", "*\n");
+
+ node2bbcode($doc, 'a', array('href'=>'/(.+)/'), ' $1', '', true);
+ node2bbcode($doc, 'img', array('alt'=>'/(.+)/'), '$1', '');
+ node2bbcode($doc, 'img', array('title'=>'/(.+)/'), '$1', '');
+ node2bbcode($doc, 'img', array(), '', '');
+ node2bbcode($doc, 'img', array('src'=>'/(.+)/'), '[img]$1', '[/img]');
+
+ $message = $doc->saveHTML();
+
+ $message = str_replace("[img]", "", $message);
+ $message = str_replace("[/img]", "", $message);
+
+ // was ersetze ich da?
+ // Irgendein stoerrisches UTF-Zeug
+ $message = str_replace(chr(194).chr(160), ' ', $message);
+
+ $message = str_replace("&nbsp;", " ", $message);
+
+ // Aufeinanderfolgende DIVs
+ $message = preg_replace('=\r *\r=i', "\n", $message);
+ $message = str_replace("\r", "\n", $message);
+
+ $message = strip_tags($message);
+
+ $message = html_entity_decode($message, ENT_QUOTES, 'UTF-8');
+
+ do {
+ $oldmessage = $message;
+ $message = str_replace("\n\n\n", "\n\n", $message);
+ } while ($oldmessage != $message);
+
+ $message = quotelevel(trim($message));
+
+ return(trim($message));
+}
+?>
diff --git a/include/items.php b/include/items.php
index de3ade6b4..a1254e165 100755
--- a/include/items.php
+++ b/include/items.php
@@ -308,7 +308,7 @@ function get_atom_elements($feed,$item) {
if($rawauthor && $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) {
$base = $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
foreach($base as $link) {
- if(! $res['author-avatar']) {
+ if(!x($res, 'author-avatar') || !$res['author-avatar']) {
if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar')
$res['author-avatar'] = unxmlify($link['attribs']['']['href']);
}
@@ -323,7 +323,7 @@ function get_atom_elements($feed,$item) {
foreach($base as $link) {
if($link['attribs']['']['rel'] === 'alternate' && (! $res['author-link']))
$res['author-link'] = unxmlify($link['attribs']['']['href']);
- if(! $res['author-avatar']) {
+ if(!x($res, 'author-avatar') || !$res['author-avatar']) {
if($link['attribs']['']['rel'] === 'avatar' || $link['attribs']['']['rel'] === 'photo')
$res['author-avatar'] = unxmlify($link['attribs']['']['href']);
}
@@ -503,7 +503,7 @@ function get_atom_elements($feed,$item) {
$base = $rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
foreach($base as $link) {
- if(! $res['owner-avatar']) {
+ if(!x($res, 'owner-avatar') || !$res['owner-avatar']) {
if($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar')
$res['owner-avatar'] = unxmlify($link['attribs']['']['href']);
}
@@ -2223,7 +2223,8 @@ function local_delivery($importer,$data) {
'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
? $importer['thumb'] : $datarray['author-avatar']),
'verb' => ACTIVITY_POST,
- 'otype' => 'item'
+ 'otype' => 'item',
+ 'parent' => $parent,
));
@@ -2317,39 +2318,51 @@ function local_delivery($importer,$data) {
if($datarray['type'] != 'activity') {
- $myconv = q("SELECT `author-link`, `author-avatar` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ",
+ $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ",
dbesc($parent_uri),
intval($importer['importer_uid'])
);
if(count($myconv)) {
$importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
- foreach($myconv as $conv) {
-
- if(! link_compare($conv['author-link'],$importer_url))
- continue;
- require_once('include/enotify.php');
+ // first make sure this isn't our own post coming back to us from a wall-to-wall event
+ if(! link_compare($datarray['author-link'],$importer_url)) {
- notification(array(
- 'type' => NOTIFY_COMMENT,
- 'notify_flags' => $importer['notify-flags'],
- 'language' => $importer['language'],
- 'to_name' => $importer['username'],
- 'to_email' => $importer['email'],
- 'uid' => $importer['importer_uid'],
- 'item' => $datarray,
- 'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
- 'source_name' => stripslashes($datarray['author-name']),
- 'source_link' => $datarray['author-link'],
- 'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
- ? $importer['thumb'] : $datarray['author-avatar']),
- 'verb' => ACTIVITY_POST,
- 'otype' => 'item'
+
+ foreach($myconv as $conv) {
- ));
+ // now if we find a match, it means we're in this conversation
+
+ if(! link_compare($conv['author-link'],$importer_url))
+ continue;
- break;
+ require_once('include/enotify.php');
+
+ $conv_parent = $conv['parent'];
+
+ notification(array(
+ 'type' => NOTIFY_COMMENT,
+ 'notify_flags' => $importer['notify-flags'],
+ 'language' => $importer['language'],
+ 'to_name' => $importer['username'],
+ 'to_email' => $importer['email'],
+ 'uid' => $importer['importer_uid'],
+ 'item' => $datarray,
+ 'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
+ 'source_name' => stripslashes($datarray['author-name']),
+ 'source_link' => $datarray['author-link'],
+ 'source_photo' => ((link_compare($datarray['author-link'],$importer['url']))
+ ? $importer['thumb'] : $datarray['author-avatar']),
+ 'verb' => ACTIVITY_POST,
+ 'otype' => 'item',
+ 'parent' => $conv_parent,
+
+ ));
+
+ // only send one notification
+ break;
+ }
}
}
}
@@ -2420,7 +2433,7 @@ function local_delivery($importer,$data) {
// This is my contact on another system, but it's really me.
// Turn this into a wall post.
- if($contact['remote_self'])
+ if($importer['remote_self'])
$datarray['wall'] = 1;
$datarray['parent-uri'] = $item_id;
diff --git a/include/network.php b/include/network.php
index 25db62d16..c72919dd8 100755
--- a/include/network.php
+++ b/include/network.php
@@ -17,7 +17,7 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
if (!is_null($accept_content)){
curl_setopt($ch,CURLOPT_HTTPHEADER, array (
- "Accept: "+$accept_content
+ "Accept: " . $accept_content
));
}
@@ -60,6 +60,7 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
$curl_info = @curl_getinfo($ch);
$http_code = $curl_info['http_code'];
+// logger('fetch_url:' . $http_code . ' data: ' . $s);
$header = '';
// Pull out multiple headers, e.g. proxy and continuation headers
@@ -74,11 +75,13 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
- $url = trim(array_pop($matches));
- $url_parsed = @parse_url($url);
+ $newurl = trim(array_pop($matches));
+ if(strpos($newurl,'/') === 0)
+ $newurl = $url . $newurl;
+ $url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
$redirects++;
- return fetch_url($url,$binary,$redirects,$timeout);
+ return fetch_url($newurl,$binary,$redirects,$timeout);
}
}
@@ -163,11 +166,13 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
if($http_code == 301 || $http_code == 302 || $http_code == 303) {
$matches = array();
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
- $url = trim(array_pop($matches));
- $url_parsed = @parse_url($url);
+ $newurl = trim(array_pop($matches));
+ if(strpos($newurl,'/') === 0)
+ $newurl = $url . $newurl;
+ $url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
$redirects++;
- return post_url($url,$params,$headers,$redirects,$timeout);
+ return fetch_url($newurl,$binary,$redirects,$timeout);
}
}
$a->set_curl_code($http_code);
@@ -776,3 +781,43 @@ function add_fcontact($arr,$update = false) {
return $r;
}
+
+
+function scale_external_images($s,$include_link = true) {
+
+ $a = get_app();
+
+ $matches = null;
+ $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
+ if($c) {
+ require_once('include/Photo.php');
+ foreach($matches as $mtch) {
+ logger('scale_external_image: ' . $mtch[1]);
+ $hostname = str_replace('www.','',substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3));
+ if(stristr($mtch[1],$hostname))
+ continue;
+ $i = fetch_url($mtch[1]);
+ if($i) {
+ $ph = new Photo($i);
+ if($ph->is_valid()) {
+ $orig_width = $ph->getWidth();
+ $orig_height = $ph->getHeight();
+
+ if($orig_width > 640 || $orig_height > 640) {
+
+ $ph->scaleImage(640);
+ $new_width = $ph->getWidth();
+ $new_height = $ph->getHeight();
+ logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG);
+ $s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]'
+ . "\n" . (($include_link)
+ ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n"
+ : ''),$s);
+ logger('scale_external_images: new string: ' . $s, LOGGER_DEBUG);
+ }
+ }
+ }
+ }
+ }
+ return $s;
+}
diff --git a/include/notifier.php b/include/notifier.php
index 8ec625286..4765cca06 100755
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -2,6 +2,7 @@
require_once("boot.php");
require_once('include/queue_fn.php');
+require_once('include/html2plain.php');
/*
* This file was at one time responsible for doing all deliveries, but this caused
@@ -633,7 +634,7 @@ function notifier_run($argv, $argc){
);
if($r1 && $r1[0]['reply_to'])
$reply_to = $r1[0]['reply_to'];
-
+
$subject = (($it['title']) ? email_header_encode($it['title'],'UTF-8') : t("\x28no subject\x29")) ;
// only expose our real email address to true friends
@@ -646,10 +647,14 @@ function notifier_run($argv, $argc){
if($reply_to)
$headers .= 'Reply-to: ' . $reply_to . "\n";
- $headers .= 'Message-id: <' . $it['uri'] . '>' . "\n";
+ // for testing purposes: Collect exported mails
+ $file = tempnam("/tmp/friendica/", "mail-out2-");
+ file_put_contents($file, json_encode($it));
+
+ $headers .= 'Message-Id: <' . iri2msgid($it['uri']) . '>' . "\n";
if($it['uri'] !== $it['parent-uri']) {
- $header .= 'References: <' . $it['parent-uri'] . '>' . "\n";
+ $headers .= 'References: <' . iri2msgid($it['parent-uri']) . '>' . "\n";
if(! strlen($it['title'])) {
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
dbesc($it['parent-uri'])
@@ -666,13 +671,16 @@ function notifier_run($argv, $argc){
}
}
- $headers .= 'MIME-Version: 1.0' . "\n";
- $headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
+ /*$headers .= 'MIME-Version: 1.0' . "\n";
+ //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
+ $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
$html = prepare_body($it);
- $message = '<html><body>' . $html . '</body></html>';
+ //$message = '<html><body>' . $html . '</body></html>';
+ $message = html2plain($html);
logger('notifier: email delivery to ' . $addr);
- mail($addr, $subject, $message, $headers);
+ mail($addr, $subject, $message, $headers);*/
+ email_send($addr, $subject, $headers, $it);
}
break;
case NETWORK_DIASPORA:
@@ -719,7 +727,7 @@ function notifier_run($argv, $argc){
// we are the relay - send comments, likes and unlikes to our conversants
diaspora_send_relay($target_item,$owner,$contact);
break;
- }
+ }
elseif(($top_level) && (! $walltowall)) {
// currently no workable solution for sending walltowall
diaspora_send_status($target_item,$owner,$contact);
diff --git a/include/plugin.php b/include/plugin.php
index 57f77cb57..8280b1022 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -225,9 +225,16 @@ function get_theme_info($theme){
'description' => "",
'author' => array(),
'maintainer' => array(),
- 'version' => ""
+ 'version' => "",
+ 'experimental' => false,
+ 'unsupported' => false
);
+ if(file_exists("view/theme/$theme/experimental"))
+ $info['experimental'] = true;
+ if(file_exists("view/theme/$theme/unsupported"))
+ $info['unsupported'] = true;
+
if (!is_file("view/theme/$theme/theme.php")) return $info;
$f = file_get_contents("view/theme/$theme/theme.php");
diff --git a/include/poller.php b/include/poller.php
index 3e7a1e9b4..cfbc46b87 100755
--- a/include/poller.php
+++ b/include/poller.php
@@ -1,6 +1,7 @@
<?php
require_once("boot.php");
+require_once("include/quoteconvert.php");
function poller_run($argv, $argc){
@@ -419,13 +420,13 @@ function poller_run($argv, $argc){
// look for a 'references' header and try and match with a parent item we have locally.
$raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
- $datarray['uri'] = trim($meta->message_id,'<>');
+ $datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
if($raw_refs) {
$refs_arr = explode(' ', $raw_refs);
if(count($refs_arr)) {
for($x = 0; $x < count($refs_arr); $x ++)
- $refs_arr[$x] = "'" . str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x])) . "'";
+ $refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
}
$qstr = implode(',',$refs_arr);
$r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
@@ -453,9 +454,39 @@ function poller_run($argv, $argc){
intval($r[0]['id'])
);
}
+ switch ($mailconf[0]['action']) {
+ case 0:
+ break;
+ case 1:
+ logger("Mail: Deleting ".$msg_uid);
+ imap_delete($mbox, $msg_uid, FT_UID);
+ break;
+ case 2:
+ logger("Mail: Mark as seen ".$msg_uid);
+ imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+ break;
+ case 3:
+ logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
+ imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+ if ($mailconf[0]['movetofolder'] != "")
+ imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
+ break;
+ }
continue;
}
- $datarray['title'] = notags(trim($meta->subject));
+
+ // Decoding the header
+ $subject = imap_mime_header_decode($meta->subject);
+ $datarray['title'] = "";
+ foreach($subject as $subpart)
+ if ($subpart->charset != "default")
+ $datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text);
+ else
+ $datarray['title'] .= $subpart->text;
+
+ $datarray['title'] = notags(trim($datarray['title']));
+
+ //$datarray['title'] = notags(trim($meta->subject));
$datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
$r = email_get_msg($mbox,$msg_uid);
@@ -463,15 +494,24 @@ function poller_run($argv, $argc){
logger("Mail: can't fetch msg ".$msg_uid);
continue;
}
- $datarray['body'] = escape_tags($r['body']);
+ $datarray['body'] = escape_tags(convertquote($r['body'], false));
logger("Mail: Importing ".$msg_uid);
// some mailing lists have the original author as 'from' - add this sender info to msg body.
// todo: adding a gravatar for the original author would be cool
- if(! stristr($meta->from,$contact['addr']))
- $datarray['body'] = t('From: ') . escape_tags($meta->from) . "\n\n" . $datarray['body'];
+ if(! stristr($meta->from,$contact['addr'])) {
+ $from = imap_mime_header_decode($meta->from);
+ $fromdecoded = "";
+ foreach($from as $frompart)
+ if ($frompart->charset != "default")
+ $fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text);
+ else
+ $fromdecoded .= $frompart->text;
+
+ $datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body'];
+ }
$datarray['uid'] = $importer_uid;
$datarray['contact-id'] = $contact['id'];
@@ -493,6 +533,24 @@ function poller_run($argv, $argc){
q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
intval($stored_item)
);
+ switch ($mailconf[0]['action']) {
+ case 0:
+ break;
+ case 1:
+ logger("Mail: Deleting ".$msg_uid);
+ imap_delete($mbox, $msg_uid, FT_UID);
+ break;
+ case 2:
+ logger("Mail: Mark as seen ".$msg_uid);
+ imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+ break;
+ case 3:
+ logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
+ imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
+ if ($mailconf[0]['movetofolder'] != "")
+ imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
+ break;
+ }
}
}
@@ -501,7 +559,7 @@ function poller_run($argv, $argc){
}
elseif($contact['network'] === NETWORK_FACEBOOK) {
// This is picked up by the Facebook plugin on a cron hook.
- // Ignored here.
+ // Ignored here.
}
if($xml) {
diff --git a/include/quoteconvert.php b/include/quoteconvert.php
new file mode 100644
index 000000000..3aee93234
--- /dev/null
+++ b/include/quoteconvert.php
@@ -0,0 +1,132 @@
+<?php
+function convertquote($body, $reply)
+{
+ // Convert Quotes
+ $arrbody = explode("\n", trim($body));
+ $arrlevel = array();
+
+ for ($i = 0; $i < count($arrbody); $i++) {
+ $quotelevel = 0;
+ $quoteline = $arrbody[$i];
+
+ while ((strlen($quoteline)>0) and ((substr($quoteline, 0, 1) == '>')
+ or (substr($quoteline, 0, 1) == ' '))) {
+ if (substr($quoteline, 0, 1) == '>')
+ $quotelevel++;
+
+ $quoteline = ltrim(substr($quoteline, 1));
+ }
+
+ //echo $quotelevel.'*'.$quoteline."\r\n";
+
+ $arrlevel[$i] = $quotelevel;
+ $arrbody[$i] = $quoteline;
+ }
+
+ $quotelevel = 0;
+ $previousquote = 0;
+ $arrbodyquoted = array();
+
+ for ($i = 0; $i < count($arrbody); $i++) {
+
+ $previousquote = $quotelevel;
+ $quotelevel = $arrlevel[$i];
+ $currline = $arrbody[$i];
+
+ while ($previousquote < $quotelevel) {
+ if ($sender != '') {
+ $quote = "[quote title=$sender]";
+ $sender = '';
+ } else
+ $quote = "[quote]";
+
+ $arrbody[$i] = $quote.$arrbody[$i];
+ $previousquote++;
+ }
+
+ while ($previousquote > $quotelevel) {
+ $arrbody[$i] = '[/quote]'.$arrbody[$i];
+ $previousquote--;
+ }
+
+ $arrbodyquoted[] = $arrbody[$i];
+ }
+ while ($quotelevel > 0) {
+ $arrbodyquoted[] = '[/quote]';
+ $quotelevel--;
+ }
+
+ $body = implode("\n", $arrbodyquoted);
+
+ if (strlen($body) > 0)
+ $body = $body."\n\n";
+
+ if ($reply)
+ $body = removetofu($body);
+
+ return($body);
+}
+
+function removetofu($message)
+{
+ $message = trim($message);
+
+ do {
+ $oldmessage = $message;
+ $message = preg_replace('=\[/quote\][\s](.*?)\[quote\]=i', '$1', $message);
+ $message = str_replace("[/quote][quote]", "", $message);
+ } while ($message != $oldmessage);
+
+ $quotes = array();
+
+ $startquotes = 0;
+
+ $start = 0;
+
+ while(($pos = strpos($message, '[quote', $start)) > 0) {
+ $quotes[$pos] = -1;
+ $start = $pos + 7;
+ $startquotes++;
+ }
+
+ $endquotes = 0;
+ $start = 0;
+
+ while(($pos = strpos($message, '[/quote]', $start)) > 0) {
+ $start = $pos + 7;
+ $endquotes++;
+ }
+
+ while ($endquotes < $startquotes) {
+ $message .= '[/quote]';
+ ++$endquotes;
+ }
+
+ $start = 0;
+
+ while(($pos = strpos($message, '[/quote]', $start)) > 0) {
+ $quotes[$pos] = 1;
+ $start = $pos + 7;
+ }
+
+ if (strtolower(substr($message, -8)) != '[/quote]')
+ return($message);
+
+ krsort($quotes);
+
+ $quotelevel = 0;
+ $quotestart = 0;
+ foreach ($quotes as $index => $quote) {
+ $quotelevel += $quote;
+
+ if (($quotelevel == 0) and ($quotestart == 0))
+ $quotestart = $index;
+ }
+
+ if ($quotestart != 0) {
+ $message = trim(substr($message, 0, $quotestart))."\n[collapsed]\n".substr($message, $quotestart+7, -8).'[/collapsed]';
+ }
+
+ return($message);
+}
+?>
diff --git a/include/template_processor.php b/include/template_processor.php
index 0d476f0e6..28c3f07dd 100755
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -32,11 +32,12 @@
if(is_array($r) && count($r)) {
foreach ($r as $k => $v ) {
- if (is_array($v))
+ if (is_array($v)) {
$this->_build_replace($v, "$prefix$k.");
-
- $this->search[] = $prefix . $k;
- $this->replace[] = $v;
+ } else {
+ $this->search[] = $prefix . $k;
+ $this->replace[] = $v;
+ }
}
}
}
@@ -53,7 +54,7 @@
$keys = array_map('trim',explode(".",$name));
$val = $this->r;
foreach($keys as $k) {
- $val = $val[$k];
+ $val = (isset($val[$k]) ? $val[$k] : null);
}
return $val;
}
@@ -79,8 +80,8 @@
} else {
$val = $this->_get_var($args[2]);
}
- list($strue, $sfalse)= preg_split("|{{ *else *}}|", $args[3]);
- return ($val?$strue:$sfalse);
+ $x = preg_split("|{{ *else *}}|", $args[3]);
+ return ( $val ? $x[0] : (isset($x[1]) ? $x[1] : ""));
}
/**
@@ -159,7 +160,8 @@
krsort($this->nodes);
return $s;
}
-
+
+ /*
private function _str_replace($str){
#$this->search,$this->replace,
$searchs = $this->search;
@@ -182,7 +184,7 @@
}
return str_replace($this->search,$this->replace, $str);
- }
+ }*/
public function replace($s, $r) {
@@ -204,7 +206,8 @@
$os = ""; $count=0;
while($os!=$s && $count<10){
$os=$s; $count++;
- $s = $this->_str_replace($s);
+ //$s = $this->_str_replace($s);
+ $s = str_replace($this->search, $this->replace, $s);
}
return template_unescape($s);
}
diff --git a/include/text.php b/include/text.php
index 0f7d2f731..81e22527a 100755
--- a/include/text.php
+++ b/include/text.php
@@ -996,7 +996,7 @@ function lang_selector() {
}
$ll = substr($l,5);
$ll = substr($ll,0,strrpos($ll,'/'));
- $selected = (($ll === $lang && (x($_SESSION['language']))) ? ' selected="selected" ' : '');
+ $selected = (($ll === $lang && (x($_SESSION, 'language'))) ? ' selected="selected" ' : '');
$o .= '<option value="' . $ll . '"' . $selected . '>' . $ll . '</option>';
}
}
@@ -1201,3 +1201,16 @@ function reltoabs($text, $base)
return $text;
}
+function item_post_type($item) {
+ if(intval($item['event-id']))
+ return t('event');
+ if(strlen($item['resource-id']))
+ return t('photo');
+ if(strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST)
+ return t('activity');
+ if($item['id'] != $item['parent'])
+ return t('comment');
+ return t('post');
+}
+
+
diff --git a/js/main.js b/js/main.js
index 36ef946ca..a5d1214cb 100755
--- a/js/main.js
+++ b/js/main.js
@@ -114,7 +114,7 @@
var eNotif = $(data).find('notif')
notif = eNotif.attr('count');
- if (notif>0){
+ if (notif>=0){
$("#nav-notifications-linkmenu").addClass("on");
nnm = $("#nav-notifications-menu");
@@ -129,8 +129,8 @@
});
} else {
- $("#nav-notifications-linkmenu").removeClass("on");
- $("#nav-notifications-menu").html(notifications_empty);
+ // $("#nav-notifications-linkmenu").removeClass("on");
+ // $("#nav-notifications-menu").html(notifications_empty);
}
if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
$('#notify-update').html(notif);
diff --git a/library/spam/b8/storage/storage_frndc.php b/library/spam/b8/storage/storage_frndc.php
index cbc6fe81a..7702c108b 100644
--- a/library/spam/b8/storage/storage_frndc.php
+++ b/library/spam/b8/storage/storage_frndc.php
@@ -147,58 +147,8 @@ class b8_storage_frndc extends b8_storage_base
public function connect()
{
- return TRUE;
-
- # Are we already connected?
- if($this->connected === TRUE)
- return TRUE;
-
- # Are we using an existing passed resource?
- if($this->config['connection'] === FALSE) {
- # ... yes we are, but the connection is not a resource, so return an error
- $this->connected = FALSE;
- return self::DATABASE_CONNECTION_BAD_RESOURCE;
- }
-
- elseif($this->config['connection'] === NULL) {
-
- # ... no we aren't so we have to connect.
-
- if($this->_connection = mysql_connect($this->config['host'], $this->config['user'], $this->config['pass'])) {
- if(mysql_select_db($this->config['database'], $this->_connection) === FALSE) {
- $this->connected = FALSE;
- return self::DATABASE_SELECT_ERROR . ": " . mysql_error();
- }
- }
- else {
- $this->connected = FALSE;
- return self::DATABASE_CONNECTION_ERROR;
- }
-
- }
-
- else {
- # ... yes we are
- $this->_connection = $this->config['connection'];
- }
-
- # Just in case ...
- if($this->_connection === NULL) {
- $this->connected = FALSE;
- return self::DATABASE_CONNECTION_FAIL;
- }
-
- # Check to see if the wordlist table exists
- if(mysql_query('DESCRIBE ' . $this->config['table_name'], $this->_connection) === FALSE) {
- $this->connected = FALSE;
- return self::DATABASE_TABLE_ACCESS_FAIL . ": " . mysql_error();
- }
-
- # Everything is okay and connected
$this->connected = TRUE;
-
- # Let's see if this is a b8 database and the version is okay
- return $this->check_database();
+ return TRUE;
}
@@ -235,7 +185,7 @@ class b8_storage_frndc extends b8_storage_base
# ... and fetch the data
$result = q('
- SELECT token, count
+ SELECT *
FROM ' . $this->config['table_name'] . '
WHERE ' . $where . ' AND uid = ' . $uid );
diff --git a/mod/acl.php b/mod/acl.php
index 98ca90ded..375c618c8 100755
--- a/mod/acl.php
+++ b/mod/acl.php
@@ -16,6 +16,8 @@ function acl_init(&$a){
if ($search!=""){
$sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'";
$sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')";
+ } else {
+ $sql_extra = $sql_extra2 = "";
}
// count groups and contacts
@@ -75,7 +77,7 @@ function acl_init(&$a){
if ($type=='' || $type=='c'){
- $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url` FROM `contact`
+ $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''
$sql_extra2
ORDER BY `name` ASC ",
diff --git a/mod/admin.php b/mod/admin.php
index bcbf3e28f..0f600e312 100755
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -711,7 +711,7 @@ function admin_page_themes(&$a){
return; // NOTREACHED
}
- // display plugin details
+ // display theme details
require_once('library/markdown.php');
if (theme_status($themes,$theme)) {
@@ -769,7 +769,9 @@ function admin_page_themes(&$a){
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(),
'$function' => 'themes',
- '$plugins' => $xthemes
+ '$plugins' => $xthemes,
+ '$experimental' => t('[Experimental]'),
+ '$unsupported' => t('[Unsupported]')
));
}
diff --git a/mod/contacts.php b/mod/contacts.php
index c8edea151..c99ac1452 100755
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -504,8 +504,9 @@ function contacts_content(&$a) {
'name' => $rr['name'],
'username' => $rr['name'],
'sparkle' => $sparkle,
+ 'itemurl' => $rr['url'],
'url' => $url,
- 'item' => $rr,
+ 'network' => network_to_name($rr['network']),
);
}
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
index 5a24f0089..0bc3ea7df 100644
--- a/mod/dfrn_confirm.php
+++ b/mod/dfrn_confirm.php
@@ -107,7 +107,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
*
*/
- $r = q("SELECT * FROM `contact` WHERE ( ( `issued-id` != '' AND `issued-id` = '%s' ) OR ( `id` = %d AND `id` != 0 ) ) AND `uid` = %d LIMIT 1",
+ $r = q("SELECT * FROM `contact` WHERE ( ( `issued-id` != '' AND `issued-id` = '%s' ) OR ( `id` = %d AND `id` != 0 ) ) AND `uid` = %d AND `duplex` = 0 LIMIT 1",
dbesc($dfrn_id),
intval($cid),
intval($uid)
@@ -116,6 +116,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
if(! count($r)) {
logger('dfrn_confirm: Contact not found in DB.');
notice( t('Contact not found.') . EOL );
+ notice( t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL );
return;
}
@@ -631,6 +632,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
xml_status(3,$message);
}
+ // It's possible that the other person also requested friendship.
+ // If it is a duplex relationship, ditch the issued-id if one exists.
+
+ if($duplex) {
+ $r = q("UPDATE `contact` SET `issued-id` = '' WHERE `id` = %d LIMIT 1",
+ intval($dfrn_record)
+ );
+ }
+
// We're good but now we have to scrape the profile photo and send notifications.
diff --git a/mod/display.php b/mod/display.php
index d96be4333..f510f793d 100755
--- a/mod/display.php
+++ b/mod/display.php
@@ -74,11 +74,11 @@ function display_content(&$a) {
$x = array(
'is_owner' => true,
'allow_location' => $a->user['allow_location'],
- 'default_location' => $a->user['default_location'],
+ 'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'],
- 'lockstate' => ((($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'),
- 'acl' => populate_acl((($group || $cid) ? $def_acl : $a->user), $celeb),
- 'bang' => (($group || $cid) ? '!' : ''),
+ 'lockstate' => ( (is_array($a->user)) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))) ? 'lock' : 'unlock'),
+ 'acl' => populate_acl($a->user, $celeb),
+ 'bang' => '',
'visitor' => 'block',
'profile_uid' => local_user()
);
diff --git a/mod/item.php b/mod/item.php
index 3035989f3..81d7c753b 100755
--- a/mod/item.php
+++ b/mod/item.php
@@ -400,6 +400,8 @@ function item_post(&$a) {
$body = preg_replace('/\[\/code\]\s*\[code\]/ism',"\n",$body);
+ $body = scale_external_images($body,false);
+
/**
* Look for any tags and linkify them
*/
@@ -753,7 +755,8 @@ function item_post(&$a) {
'source_link' => $datarray['author-link'],
'source_photo' => $datarray['author-avatar'],
'verb' => ACTIVITY_POST,
- 'otype' => 'item'
+ 'otype' => 'item',
+ 'parent' => $parent,
));
}
diff --git a/mod/network.php b/mod/network.php
index 03a671b61..894ac48ed 100755
--- a/mod/network.php
+++ b/mod/network.php
@@ -263,7 +263,7 @@ function network_content(&$a, $update = 0) {
$x = array(
'is_owner' => true,
'allow_location' => $a->user['allow_location'],
- 'default_location' => $a->user['default_location'],
+ 'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'],
'lockstate' => ((($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid']))))) ? 'lock' : 'unlock'),
'acl' => populate_acl((($group || $cid) ? $def_acl : $a->user), $celeb),
diff --git a/mod/notify.php b/mod/notify.php
index e6a7a8859..a572b1534 100644
--- a/mod/notify.php
+++ b/mod/notify.php
@@ -11,8 +11,10 @@ function notify_init(&$a) {
intval(local_user())
);
if(count($r)) {
- q("update notify set seen = 1 where id = %d and uid = %d limit 1",
- intval($a->argv[2]),
+ q("update notify set seen = 1 where ( link = '%s' or ( parent != 0 and parent = %d and otype = '%s' )) and uid = %d",
+ dbesc($r[0]['link']),
+ intval($r[0]['parent']),
+ dbesc($r[0]['otype']),
intval(local_user())
);
goaway($r[0]['link']);
diff --git a/mod/photo.php b/mod/photo.php
index a5a5a1dc1..c4a93769a 100755
--- a/mod/photo.php
+++ b/mod/photo.php
@@ -119,7 +119,7 @@ function photo_init(&$a) {
// NOTREACHED
}
- if(intval($customres) && $customres > 0 && $customres < 500) {
+ if(isset($customres) && $customres > 0 && $customres < 500) {
require_once('include/Photo.php');
$ph = new Photo($data);
if($ph->is_valid()) {
diff --git a/mod/ping.php b/mod/ping.php
index 0f6f0a9d6..1562254b1 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -14,10 +14,29 @@ function ping_init(&$a) {
$firehose = intval(get_pconfig(local_user(),'system','notify_full'));
- $z = q("select * from notify where uid = %d
- order by seen asc, date desc limit 0, 50",
+ $t = q("select count(*) as total from notify where uid = %d and seen = 0",
intval(local_user())
);
+ if($t && intval($t[0]['total']) > 49) {
+ $z = q("select * from notify where uid = %d
+ and seen = 0 order by date desc limit 0, 50",
+ intval(local_user())
+ );
+ }
+ else {
+ $z1 = q("select * from notify where uid = %d
+ and seen = 0 order by date desc limit 0, 50",
+ intval(local_user())
+ );
+
+ $z2 = q("select * from notify where uid = %d
+ and seen = 1 order by date desc limit 0, %d",
+ intval(local_user()),
+ intval(50 - intval($t[0]['total']))
+ );
+ $z = array_merge($z1,$z2);
+ }
+
$tags = array();
@@ -26,9 +45,10 @@ function ping_init(&$a) {
$dislikes = array();
$friends = array();
$posts = array();
-
+ $home = 0;
+ $network = 0;
- $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
+ $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`wall`, `item`.`author-name`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object`,
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
diff --git a/mod/profile.php b/mod/profile.php
index eba9874a8..74e1a2302 100755
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -107,7 +107,7 @@ function profile_content(&$a, $update = 0) {
$is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false);
- if($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) {
+ if($a->user['hidewall'] && (! $is_owner) && (! $remote_contact)) {
notice( t('Access to this profile has been restricted.') . EOL);
return;
}
@@ -228,10 +228,12 @@ function profile_content(&$a, $update = 0) {
intval($a->profile['profile_uid']),
dbesc($parents_str)
);
+
+ $items = conv_sort($items,'created');
+ } else {
+ $items = array();
}
- $items = conv_sort($items,'created');
-
if($is_owner && ! $update) {
$o .= get_birthdays();
$o .= get_events();
diff --git a/mod/settings.php b/mod/settings.php
index 91f4325da..a9d00bc98 100755
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -50,6 +50,8 @@ function settings_post(&$a) {
return;
}
+ $old_page_flags = $a->user['page-flags'];
+
if(($a->argc > 1) && ($a->argv[1] === 'oauth') && x($_POST,'remove')){
$key = $_POST['remove'];
q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
@@ -110,13 +112,15 @@ function settings_post(&$a) {
if(($a->argc > 1) && ($a->argv[1] == 'connectors')) {
if(x($_POST['imap-submit'])) {
- $mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : '');
- $mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : '');
- $mail_ssl = ((x($_POST,'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : '');
- $mail_user = ((x($_POST,'mail_user')) ? $_POST['mail_user'] : '');
- $mail_pass = ((x($_POST,'mail_pass')) ? trim($_POST['mail_pass']) : '');
- $mail_replyto = ((x($_POST,'mail_replyto')) ? $_POST['mail_replyto'] : '');
- $mail_pubmail = ((x($_POST,'mail_pubmail')) ? $_POST['mail_pubmail'] : '');
+ $mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : '');
+ $mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : '');
+ $mail_ssl = ((x($_POST,'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : '');
+ $mail_user = ((x($_POST,'mail_user')) ? $_POST['mail_user'] : '');
+ $mail_pass = ((x($_POST,'mail_pass')) ? trim($_POST['mail_pass']) : '');
+ $mail_action = ((x($_POST,'mail_action')) ? trim($_POST['mail_action']) : '');
+ $mail_movetofolder = ((x($_POST,'mail_movetofolder')) ? trim($_POST['mail_movetofolder']) : '');
+ $mail_replyto = ((x($_POST,'mail_replyto')) ? $_POST['mail_replyto'] : '');
+ $mail_pubmail = ((x($_POST,'mail_pubmail')) ? $_POST['mail_pubmail'] : '');
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
@@ -142,11 +146,14 @@ function settings_post(&$a) {
);
}
$r = q("UPDATE `mailacct` SET `server` = '%s', `port` = %d, `ssltype` = '%s', `user` = '%s',
+ `action` = %d, `movetofolder` = '%s',
`mailbox` = 'INBOX', `reply_to` = '%s', `pubmail` = %d WHERE `uid` = %d LIMIT 1",
dbesc($mail_server),
intval($mail_port),
dbesc($mail_ssl),
dbesc($mail_user),
+ intval($mail_action),
+ dbesc($mail_movetofolder),
dbesc($mail_replyto),
intval($mail_pubmail),
intval(local_user())
@@ -218,8 +225,8 @@ function settings_post(&$a) {
$openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
$maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
$expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0);
-
-
+
+
$expire_items = ((x($_POST,'expire_items')) ? intval($_POST['expire_items']) : 0);
$expire_notes = ((x($_POST,'expire_notes')) ? intval($_POST['expire_notes']) : 0);
$expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0);
@@ -370,7 +377,7 @@ function settings_post(&$a) {
);
}
- if($old_visibility != $net_publish) {
+ if(($old_visibility != $net_publish) || ($page_flags != $old_page_flags)) {
// Update global directory in background
$url = $_SESSION['my_url'];
if($url && strlen(get_config('system','directory_submit_url')))
@@ -561,23 +568,25 @@ function settings_content(&$a) {
$r = null;
}
- $mail_server = ((count($r)) ? $r[0]['server'] : '');
- $mail_port = ((count($r) && intval($r[0]['port'])) ? intval($r[0]['port']) : '');
- $mail_ssl = ((count($r)) ? $r[0]['ssltype'] : '');
- $mail_user = ((count($r)) ? $r[0]['user'] : '');
- $mail_replyto = ((count($r)) ? $r[0]['reply_to'] : '');
- $mail_pubmail = ((count($r)) ? $r[0]['pubmail'] : 0);
- $mail_chk = ((count($r)) ? $r[0]['last_check'] : '0000-00-00 00:00:00');
+ $mail_server = ((count($r)) ? $r[0]['server'] : '');
+ $mail_port = ((count($r) && intval($r[0]['port'])) ? intval($r[0]['port']) : '');
+ $mail_ssl = ((count($r)) ? $r[0]['ssltype'] : '');
+ $mail_user = ((count($r)) ? $r[0]['user'] : '');
+ $mail_replyto = ((count($r)) ? $r[0]['reply_to'] : '');
+ $mail_pubmail = ((count($r)) ? $r[0]['pubmail'] : 0);
+ $mail_action = ((count($r)) ? $r[0]['action'] : 0);
+ $mail_movetofolder = ((count($r)) ? $r[0]['movetofolder'] : '');
+ $mail_chk = ((count($r)) ? $r[0]['last_check'] : '0000-00-00 00:00:00');
+
-
$tpl = get_markup_template("settings_connectors.tpl");
$o .= replace_macros($tpl, array(
'$title' => t('Connector Settings'),
'$tabs' => $tabs,
-
+
'$diasp_enabled' => $diasp_enabled,
'$ostat_enabled' => $ostat_enabled,
-
+
'$h_imap' => t('Email/Mailbox Setup'),
'$imap_desc' => t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
'$imap_lastcheck' => array('imap_lastcheck', t('Last successful email check:'), $mail_chk,''),
@@ -589,8 +598,10 @@ function settings_content(&$a) {
'$mail_pass' => array('mail_pass', t('Email password:'), '', ''),
'$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'),
'$mail_pubmail' => array('mail_pubmail', t('Send public posts to all email contacts:'), $mail_pubmail, ''),
- '$submit' => t('Submit'),
-
+ '$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), 1=>t('Delete'), 2=>t('Mark as seen'), 3=>t('Move to folder'))),
+ '$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''),
+ '$submit' => t('Submit'),
+
'$settings_connectors' => $settings_connectors
@@ -598,7 +609,7 @@ function settings_content(&$a) {
return $o;
}
-
+
require_once('include/acl_selectors.php');
$p = q("SELECT * FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
diff --git a/mod/tagger.php b/mod/tagger.php
index 76ec3366c..3ff5d57aa 100755
--- a/mod/tagger.php
+++ b/mod/tagger.php
@@ -134,6 +134,7 @@ EOT;
$arr['target'] = $target;
$arr['object-type'] = $objtype;
$arr['object'] = $obj;
+ $arr['private'] = $item['private'];
$arr['allow_cid'] = $item['allow_cid'];
$arr['allow_gid'] = $item['allow_gid'];
$arr['deny_cid'] = $item['deny_cid'];
diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php
index 10c980d93..6b66f60d7 100755
--- a/mod/viewcontacts.php
+++ b/mod/viewcontacts.php
@@ -63,7 +63,8 @@ function viewcontacts_content(&$a) {
'username' => $rr['name'],
'url' => $url,
'sparkle' => '',
- 'item' => $rr,
+ 'itemurl' => $rr['url'],
+ 'network' => network_to_name($rr['network']),
);
}
diff --git a/update.php b/update.php
index 0096754d2..6dbd410bc 100755
--- a/update.php
+++ b/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1125 );
+define( 'UPDATE_VERSION' , 1130 );
/**
*
@@ -1076,4 +1076,44 @@ set_config('system','allowed_themes','dispy,quattro,testbubble,vier,darkbubble,d
function update_1124() {
q("alter table item add index (`author-name`) ");
+}
+
+function update_1125() {
+ q("CREATE TABLE IF NOT EXISTS `notify-threads` (
+ `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+ `notify-id` INT NOT NULL,
+ `master-parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
+ `parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
+ `receiver-uid` INT NOT NULL,
+ INDEX ( `master-parent-item` ),
+ INDEX ( `receiver-uid` )
+ ) ENGINE = MyISAM DEFAULT CHARSET=utf8");
+}
+
+function update_1126() {
+ q("ALTER TABLE `mailacct` ADD `action` INT NOT NULL AFTER `pass`,
+ ADD `movetofolder` CHAR(255) NOT NULL AFTER `action`");
+}
+
+function update_1127() {
+ q("CREATE TABLE IF NOT EXISTS `spam` (
+ `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+ `uid` INT NOT NULL,
+ `spam` INT NOT NULL DEFAULT '0',
+ `ham` INT NOT NULL DEFAULT '0',
+ `term` CHAR(255) NOT NULL,
+ INDEX ( `uid` ),
+ INDEX ( `spam` ),
+ INDEX ( `ham` ),
+ INDEX ( `term` )
+ ) ENGINE = MyISAM DEFAULT CHARSET=utf8");
+}
+
+
+function update_1128() {
+ q("alter table spam add `date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `term` ");
+}
+
+function update_1129() {
+ q("ALTER TABLE `notify` ADD `parent` INT NOT NULL AFTER `link` , ADD INDEX ( `parent` ), ADD INDEX ( `link` ), ADD INDEX ( `otype` ) ");
} \ No newline at end of file
diff --git a/view/admin_plugins.tpl b/view/admin_plugins.tpl
index f4afd2cf0..8367ff6a1 100755
--- a/view/admin_plugins.tpl
+++ b/view/admin_plugins.tpl
@@ -6,6 +6,8 @@
<li class='plugin $p.1'>
<a class='toggleplugin' href='$baseurl/admin/$function/$p.0?a=t' title="{{if $p.1==on }}Disable{{ else }}Enable{{ endif }}" ><span class='icon $p.1'></span></a>
<a href='$baseurl/admin/$function/$p.0'><span class='name'>$p.2.name</span></a> - <span class="version">$p.2.version</span>
+ {{ if $p.2.experimental }} $experimental {{ endif }}{{ if $p.2.unsupported }} $unsupported {{ endif }}
+
<div class='desc'>$p.2.description</div>
</li>
{{ endfor }}
diff --git a/view/contact_template.tpl b/view/contact_template.tpl
index d6f114d6e..f4c0670bf 100755
--- a/view/contact_template.tpl
+++ b/view/contact_template.tpl
@@ -17,8 +17,8 @@
</div>
<div class="contact-name" id="contact-entry-name-$contact.id" >$contact.name</div>
- <div class="contact-details" id="contact-entry-url-$contact.id" >$contact.item.url</div>
- <div class="contact-details" id="contact-entry-network-$contact.id" >$contact.item.network|network_to_name</div>
+ <div class="contact-details" id="contact-entry-url-$contact.id" >$contact.itemurl</div>
+ <div class="contact-details" id="contact-entry-network-$contact.id" >$contact.network</div>
</div>
diff --git a/view/de/messages.po b/view/de/messages.po
index 861f61b74..5573ddca0 100644
--- a/view/de/messages.po
+++ b/view/de/messages.po
@@ -5,7 +5,10 @@
# Translators:
# bavatar <tobias.diekershoff@gmx.net>, 2011.
# Erkan Yilmaz <erkan77@gmail.com>, 2011.
+# <friends@dostmusik.de>, 2012.
+# <greeneyedred@googlemail.com>, 2012.
# <hzuehl@phone-talk.de>, 2011.
+# <marmor69@web.de>, 2012.
# <tobias.diekershoff@gmx.net>, 2011, 2012.
# <transifex@zottel.net>, 2011, 2012.
# <ts+transifex@ml.tschlotfeldt.de>, 2011.
@@ -13,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
-"POT-Creation-Date: 2012-02-12 17:14-0800\n"
-"PO-Revision-Date: 2012-02-16 10:24+0000\n"
-"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
+"POT-Creation-Date: 2012-02-24 22:44-0800\n"
+"PO-Revision-Date: 2012-02-26 15:58+0000\n"
+"Last-Translator: marmor <marmor69@web.de>\n"
"Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -23,7 +26,7 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: ../../mod/oexchange.php:27
+#: ../../mod/oexchange.php:25
msgid "Post successful."
msgstr "Beitrag erfolgreich veröffentlicht."
@@ -41,24 +44,24 @@ msgid "Contact update failed."
msgstr "Konnte den Kontakt nicht aktualisieren."
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:43
-#: ../../mod/fsuggest.php:78 ../../mod/events.php:109 ../../mod/api.php:26
+#: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26
#: ../../mod/api.php:31 ../../mod/photos.php:129 ../../mod/photos.php:865
#: ../../mod/editpost.php:10 ../../mod/install.php:171
#: ../../mod/notifications.php:62 ../../mod/contacts.php:125
#: ../../mod/settings.php:49 ../../mod/settings.php:404
#: ../../mod/settings.php:409 ../../mod/manage.php:86 ../../mod/network.php:6
#: ../../mod/notes.php:20 ../../mod/attach.php:33 ../../mod/group.php:19
-#: ../../mod/viewcontacts.php:21 ../../mod/register.php:36
-#: ../../mod/regmod.php:111 ../../mod/item.php:123 ../../mod/item.php:139
+#: ../../mod/viewcontacts.php:22 ../../mod/register.php:36
+#: ../../mod/regmod.php:111 ../../mod/item.php:124 ../../mod/item.php:140
#: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:137
#: ../../mod/profile_photo.php:148 ../../mod/profile_photo.php:159
#: ../../mod/message.php:9 ../../mod/message.php:46 ../../mod/allfriends.php:9
#: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9
-#: ../../mod/display.php:112 ../../mod/profiles.php:7
+#: ../../mod/display.php:130 ../../mod/profiles.php:7
#: ../../mod/profiles.php:229 ../../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:331
-#: ../../include/items.php:2907 ../../index.php:288
+#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:332
+#: ../../include/items.php:2968 ../../index.php:288
msgid "Permission denied."
msgstr "Zugriff verweigert."
@@ -88,7 +91,7 @@ msgid "Return to contact editor"
msgstr "Zurück zum Kontakteditor"
#: ../../mod/crepair.php:148 ../../mod/settings.php:455
-#: ../../mod/settings.php:481 ../../mod/admin.php:464 ../../mod/admin.php:473
+#: ../../mod/settings.php:481 ../../mod/admin.php:480 ../../mod/admin.php:489
msgid "Name"
msgstr "Name"
@@ -125,33 +128,37 @@ msgid "New photo from this URL"
msgstr "Neues Foto von dieser URL"
#: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
-#: ../../mod/events.php:333 ../../mod/photos.php:900 ../../mod/photos.php:958
+#: ../../mod/events.php:400 ../../mod/photos.php:900 ../../mod/photos.php:958
#: ../../mod/photos.php:1182 ../../mod/photos.php:1222
#: ../../mod/photos.php:1262 ../../mod/photos.php:1293
#: ../../mod/install.php:251 ../../mod/install.php:289
#: ../../mod/localtime.php:45 ../../mod/contacts.php:319
#: ../../mod/settings.php:453 ../../mod/settings.php:592
-#: ../../mod/settings.php:773 ../../mod/manage.php:109 ../../mod/group.php:84
-#: ../../mod/group.php:167 ../../mod/admin.php:296 ../../mod/admin.php:461
-#: ../../mod/admin.php:587 ../../mod/admin.php:652 ../../mod/profiles.php:375
-#: ../../mod/invite.php:106 ../../addon/facebook/facebook.php:410
-#: ../../addon/yourls/yourls.php:76 ../../addon/nsfw/nsfw.php:57
+#: ../../mod/settings.php:786 ../../mod/manage.php:109 ../../mod/group.php:84
+#: ../../mod/group.php:167 ../../mod/admin.php:312 ../../mod/admin.php:477
+#: ../../mod/admin.php:603 ../../mod/admin.php:769 ../../mod/admin.php:847
+#: ../../mod/profiles.php:375 ../../mod/invite.php:106
+#: ../../addon/facebook/facebook.php:411 ../../addon/yourls/yourls.php:76
+#: ../../addon/nsfw/nsfw.php:57
#: ../../addon/uhremotestorage/uhremotestorage.php:89
#: ../../addon/randplace/randplace.php:179 ../../addon/drpost/drpost.php:110
#: ../../addon/geonames/geonames.php:187 ../../addon/oembed.old/oembed.php:41
#: ../../addon/impressum/impressum.php:69 ../../addon/blockem/blockem.php:57
+#: ../../addon/qcomment/qcomment.php:60
+#: ../../addon/openstreetmap/openstreetmap.php:70
#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94
#: ../../addon/pageheader/pageheader.php:52
-#: ../../addon/statusnet/statusnet.php:280
-#: ../../addon/statusnet/statusnet.php:294
+#: ../../addon/statusnet/statusnet.php:273
+#: ../../addon/statusnet/statusnet.php:287
+#: ../../addon/statusnet/statusnet.php:313
#: ../../addon/statusnet/statusnet.php:320
-#: ../../addon/statusnet/statusnet.php:327
-#: ../../addon/statusnet/statusnet.php:349
-#: ../../addon/statusnet/statusnet.php:495 ../../addon/tumblr/tumblr.php:90
+#: ../../addon/statusnet/statusnet.php:345
+#: ../../addon/statusnet/statusnet.php:532 ../../addon/tumblr/tumblr.php:90
#: ../../addon/numfriends/numfriends.php:85 ../../addon/wppost/wppost.php:102
-#: ../../addon/piwik/piwik.php:81 ../../addon/twitter/twitter.php:180
-#: ../../addon/twitter/twitter.php:203 ../../addon/twitter/twitter.php:315
-#: ../../addon/posterous/posterous.php:90 ../../include/conversation.php:515
+#: ../../addon/showmore/showmore.php:48 ../../addon/piwik/piwik.php:89
+#: ../../addon/twitter/twitter.php:175 ../../addon/twitter/twitter.php:201
+#: ../../addon/twitter/twitter.php:355 ../../addon/posterous/posterous.php:90
+#: ../../include/conversation.php:542
msgid "Submit"
msgstr "Senden"
@@ -193,82 +200,82 @@ msgstr "Kontakte vorschlagen"
msgid "Suggest a friend for %s"
msgstr "Schlage %s einen Kontakt vor"
-#: ../../mod/events.php:61
+#: ../../mod/events.php:62
msgid "Event description and start time are required."
msgstr "Ereignis Beschreibung und Startzeit sind erforderlich."
-#: ../../mod/events.php:117 ../../include/nav.php:50 ../../boot.php:1345
+#: ../../mod/events.php:230
+msgid "l, F j"
+msgstr "l, F j"
+
+#: ../../mod/events.php:252
+msgid "Edit event"
+msgstr "Veranstaltung bearbeiten"
+
+#: ../../mod/events.php:272 ../../include/text.php:964
+msgid "link to source"
+msgstr "Link zum Originalbeitrag"
+
+#: ../../mod/events.php:296 ../../include/nav.php:50 ../../boot.php:1349
msgid "Events"
msgstr "Veranstaltungen"
-#: ../../mod/events.php:207
+#: ../../mod/events.php:297
msgid "Create New Event"
msgstr "Neue Veranstaltung erstellen"
-#: ../../mod/events.php:210
+#: ../../mod/events.php:298
msgid "Previous"
msgstr "Vorherige"
-#: ../../mod/events.php:213 ../../mod/install.php:210
+#: ../../mod/events.php:299 ../../mod/install.php:210
msgid "Next"
msgstr "Nächste"
-#: ../../mod/events.php:220
-msgid "l, F j"
-msgstr "l, F j"
-
-#: ../../mod/events.php:235
-msgid "Edit event"
-msgstr "Veranstaltung bearbeiten"
-
-#: ../../mod/events.php:237 ../../include/text.php:883
-msgid "link to source"
-msgstr "Link zum Originalbeitrag"
-
-#: ../../mod/events.php:305
+#: ../../mod/events.php:371
msgid "hour:minute"
msgstr "Stunde:Minute"
-#: ../../mod/events.php:314
+#: ../../mod/events.php:380
msgid "Event details"
msgstr "Veranstaltungsdetails"
-#: ../../mod/events.php:315
+#: ../../mod/events.php:381
#, php-format
msgid "Format is %s %s. Starting date and Description are required."
msgstr "Format ist %s %s. Anfangsdatum und Beschreibung sind notwendig."
-#: ../../mod/events.php:316
+#: ../../mod/events.php:383
msgid "Event Starts:"
msgstr "Veranstaltungsbeginn:"
-#: ../../mod/events.php:319
+#: ../../mod/events.php:386
msgid "Finish date/time is not known or not relevant"
msgstr "Enddatum/-zeit ist nicht bekannt oder nicht relevant"
-#: ../../mod/events.php:321
+#: ../../mod/events.php:388
msgid "Event Finishes:"
msgstr "Veranstaltungsende:"
-#: ../../mod/events.php:324
+#: ../../mod/events.php:391
msgid "Adjust for viewer timezone"
msgstr "An Zeitzone des Betrachters anpassen"
-#: ../../mod/events.php:326
+#: ../../mod/events.php:393
msgid "Description:"
msgstr "Beschreibung"
-#: ../../mod/events.php:328 ../../include/event.php:37
-#: ../../include/bb2diaspora.php:271 ../../boot.php:976
+#: ../../mod/events.php:395 ../../include/event.php:37
+#: ../../include/bb2diaspora.php:290 ../../boot.php:980
msgid "Location:"
msgstr "Ort:"
-#: ../../mod/events.php:330
+#: ../../mod/events.php:397
msgid "Share this event"
msgstr "Veranstaltung teilen"
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
-#: ../../mod/dfrn_request.php:685 ../../mod/settings.php:454
+#: ../../mod/dfrn_request.php:686 ../../mod/settings.php:454
#: ../../mod/settings.php:480 ../../addon/js_upload/js_upload.php:45
msgid "Cancel"
msgstr "Abbrechen"
@@ -312,24 +319,24 @@ msgid ""
" and/or create new posts for you?"
msgstr "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte sowie die Erstellung neuer Beiträge in deinem Namen gestatten?"
-#: ../../mod/api.php:105 ../../mod/dfrn_request.php:675
+#: ../../mod/api.php:105 ../../mod/dfrn_request.php:676
#: ../../mod/settings.php:681 ../../mod/settings.php:687
#: ../../mod/settings.php:695 ../../mod/settings.php:699
#: ../../mod/settings.php:704 ../../mod/settings.php:710
-#: ../../mod/settings.php:716 ../../mod/settings.php:763
-#: ../../mod/settings.php:764 ../../mod/settings.php:765
-#: ../../mod/settings.php:766 ../../mod/register.php:524
+#: ../../mod/settings.php:716 ../../mod/settings.php:776
+#: ../../mod/settings.php:777 ../../mod/settings.php:778
+#: ../../mod/settings.php:779 ../../mod/register.php:524
#: ../../mod/profiles.php:357
msgid "Yes"
msgstr "Ja"
-#: ../../mod/api.php:106 ../../mod/dfrn_request.php:676
+#: ../../mod/api.php:106 ../../mod/dfrn_request.php:677
#: ../../mod/settings.php:681 ../../mod/settings.php:687
#: ../../mod/settings.php:695 ../../mod/settings.php:699
#: ../../mod/settings.php:704 ../../mod/settings.php:710
-#: ../../mod/settings.php:716 ../../mod/settings.php:763
-#: ../../mod/settings.php:764 ../../mod/settings.php:765
-#: ../../mod/settings.php:766 ../../mod/register.php:525
+#: ../../mod/settings.php:716 ../../mod/settings.php:776
+#: ../../mod/settings.php:777 ../../mod/settings.php:778
+#: ../../mod/settings.php:779 ../../mod/register.php:525
#: ../../mod/profiles.php:358
msgid "No"
msgstr "Nein"
@@ -384,8 +391,8 @@ msgstr "wurde getaggt in einem"
#: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/communityhome/communityhome.php:163
-#: ../../include/diaspora.php:1587 ../../include/conversation.php:31
-#: ../../include/conversation.php:104
+#: ../../include/diaspora.php:1600 ../../include/conversation.php:53
+#: ../../include/conversation.php:126
msgid "photo"
msgstr "Foto"
@@ -393,7 +400,7 @@ msgstr "Foto"
msgid "by"
msgstr "von"
-#: ../../mod/photos.php:631 ../../addon/js_upload/js_upload.php:312
+#: ../../mod/photos.php:631 ../../addon/js_upload/js_upload.php:315
msgid "Image exceeds size limit of "
msgstr "Die Bildgröße übersteigt das Limit von "
@@ -412,8 +419,8 @@ msgid "Image upload failed."
msgstr "Hochladen des Bildes gescheitert."
#: ../../mod/photos.php:759 ../../mod/community.php:16
-#: ../../mod/dfrn_request.php:624 ../../mod/viewcontacts.php:16
-#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:31
+#: ../../mod/dfrn_request.php:625 ../../mod/viewcontacts.php:17
+#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:33
msgid "Public access denied."
msgstr "Öffentlicher Zugriff verweigert."
@@ -473,7 +480,7 @@ msgstr "Foto bearbeiten"
msgid "Use as profile photo"
msgstr "Als Profilbild verwenden"
-#: ../../mod/photos.php:1078 ../../include/conversation.php:450
+#: ../../mod/photos.php:1078 ../../include/conversation.php:472
msgid "Private Message"
msgstr "Private Nachricht"
@@ -506,44 +513,44 @@ msgid ""
"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
-#: ../../mod/photos.php:1200 ../../include/conversation.php:497
+#: ../../mod/photos.php:1200 ../../include/conversation.php:519
msgid "I like this (toggle)"
msgstr "Ich mag das (toggle)"
-#: ../../mod/photos.php:1201 ../../include/conversation.php:498
+#: ../../mod/photos.php:1201 ../../include/conversation.php:520
msgid "I don't like this (toggle)"
msgstr "Ich mag das nicht (toggle)"
-#: ../../mod/photos.php:1202 ../../include/conversation.php:889
+#: ../../mod/photos.php:1202 ../../include/conversation.php:914
msgid "Share"
msgstr "Teilen"
-#: ../../mod/photos.php:1203 ../../mod/editpost.php:100
+#: ../../mod/photos.php:1203 ../../mod/editpost.php:104
#: ../../mod/message.php:155 ../../mod/message.php:296
-#: ../../include/conversation.php:321 ../../include/conversation.php:652
-#: ../../include/conversation.php:906
+#: ../../include/conversation.php:343 ../../include/conversation.php:677
+#: ../../include/conversation.php:931
msgid "Please wait"
msgstr "Bitte warten"
#: ../../mod/photos.php:1219 ../../mod/photos.php:1259
-#: ../../mod/photos.php:1290 ../../include/conversation.php:512
+#: ../../mod/photos.php:1290 ../../include/conversation.php:539
msgid "This is you"
msgstr "Das bist du"
#: ../../mod/photos.php:1221 ../../mod/photos.php:1261
-#: ../../mod/photos.php:1292 ../../include/conversation.php:514
-#: ../../boot.php:443
+#: ../../mod/photos.php:1292 ../../include/conversation.php:541
+#: ../../boot.php:447
msgid "Comment"
msgstr "Kommentar"
-#: ../../mod/photos.php:1223 ../../mod/editpost.php:119
-#: ../../include/conversation.php:516 ../../include/conversation.php:924
+#: ../../mod/photos.php:1223 ../../mod/editpost.php:123
+#: ../../include/conversation.php:543 ../../include/conversation.php:949
msgid "Preview"
msgstr "Vorschau"
#: ../../mod/photos.php:1320 ../../mod/settings.php:513
-#: ../../mod/group.php:154 ../../mod/admin.php:468
-#: ../../include/conversation.php:280 ../../include/conversation.php:536
+#: ../../mod/group.php:154 ../../mod/admin.php:484
+#: ../../include/conversation.php:302 ../../include/conversation.php:563
msgid "Delete"
msgstr "Löschen"
@@ -603,70 +610,70 @@ msgstr "Keine Plugins/Erweiterungen/Apps installiert"
msgid "Item not found"
msgstr "Beitrag nicht gefunden"
-#: ../../mod/editpost.php:32
+#: ../../mod/editpost.php:36
msgid "Edit post"
msgstr "Beitrag bearbeiten"
-#: ../../mod/editpost.php:76 ../../include/conversation.php:875
+#: ../../mod/editpost.php:80 ../../include/conversation.php:900
msgid "Post to Email"
msgstr "An E-Mail senden"
-#: ../../mod/editpost.php:91 ../../mod/settings.php:512
-#: ../../include/conversation.php:523
+#: ../../mod/editpost.php:95 ../../mod/settings.php:512
+#: ../../include/conversation.php:550
msgid "Edit"
msgstr "Bearbeiten"
-#: ../../mod/editpost.php:92 ../../mod/message.php:153
-#: ../../mod/message.php:294 ../../include/conversation.php:890
+#: ../../mod/editpost.php:96 ../../mod/message.php:153
+#: ../../mod/message.php:294 ../../include/conversation.php:915
msgid "Upload photo"
msgstr "Foto hochladen"
-#: ../../mod/editpost.php:93 ../../include/conversation.php:892
+#: ../../mod/editpost.php:97 ../../include/conversation.php:917
msgid "Attach file"
msgstr "Datei anhängen"
-#: ../../mod/editpost.php:94 ../../mod/message.php:154
-#: ../../mod/message.php:295 ../../include/conversation.php:894
+#: ../../mod/editpost.php:98 ../../mod/message.php:154
+#: ../../mod/message.php:295 ../../include/conversation.php:919
msgid "Insert web link"
msgstr "Weblink einfügen"
-#: ../../mod/editpost.php:95
+#: ../../mod/editpost.php:99
msgid "Insert YouTube video"
msgstr "YouTube-Video einfügen"
-#: ../../mod/editpost.php:96
+#: ../../mod/editpost.php:100
msgid "Insert Vorbis [.ogg] video"
msgstr "Vorbis [.ogg] Video einfügen"
-#: ../../mod/editpost.php:97
+#: ../../mod/editpost.php:101
msgid "Insert Vorbis [.ogg] audio"
msgstr "Vorbis [.ogg] Audio einfügen"
-#: ../../mod/editpost.php:98 ../../include/conversation.php:900
+#: ../../mod/editpost.php:102 ../../include/conversation.php:925
msgid "Set your location"
msgstr "Deinen Standort festlegen"
-#: ../../mod/editpost.php:99 ../../include/conversation.php:902
+#: ../../mod/editpost.php:103 ../../include/conversation.php:927
msgid "Clear browser location"
msgstr "Browser-Standort leeren"
-#: ../../mod/editpost.php:101 ../../include/conversation.php:907
+#: ../../mod/editpost.php:105 ../../include/conversation.php:932
msgid "Permission settings"
msgstr "Berechtigungseinstellungen"
-#: ../../mod/editpost.php:109 ../../include/conversation.php:916
+#: ../../mod/editpost.php:113 ../../include/conversation.php:941
msgid "CC: email addresses"
msgstr "Cc:-E-Mail-Addressen"
-#: ../../mod/editpost.php:110 ../../include/conversation.php:917
+#: ../../mod/editpost.php:114 ../../include/conversation.php:942
msgid "Public post"
msgstr "Öffentlicher Beitrag"
-#: ../../mod/editpost.php:113 ../../include/conversation.php:905
+#: ../../mod/editpost.php:117 ../../include/conversation.php:930
msgid "Set title"
msgstr "Titel setzen"
-#: ../../mod/editpost.php:114 ../../include/conversation.php:919
+#: ../../mod/editpost.php:118 ../../include/conversation.php:944
msgid "Example: bob@example.com, mary@example.com"
msgstr "Z.B.: bob@example.com, mary@example.com"
@@ -775,68 +782,68 @@ msgstr "Bitte bestätige deine Kontaktanfrage bei %s."
msgid "Confirm"
msgstr "Bestätigen"
-#: ../../mod/dfrn_request.php:581 ../../include/items.php:2443
+#: ../../mod/dfrn_request.php:582 ../../include/items.php:2504
msgid "[Name Withheld]"
msgstr "[Name Zurückgehalten]"
-#: ../../mod/dfrn_request.php:665
+#: ../../mod/dfrn_request.php:666
#, php-format
msgid ""
"Diaspora members: Please do not use this form. Instead, enter \"%s\" into "
"your Diaspora search bar."
msgstr "Diaspora-User: Bitte nicht dieses Formular benutzen! Gebt statt dessen \"%s\" in der Diaspora-Suchleiste ein."
-#: ../../mod/dfrn_request.php:668
+#: ../../mod/dfrn_request.php:669
msgid ""
"Please enter your 'Identity Address' from one of the following supported "
"social networks:"
msgstr "Bitte gib die Adresse deines Profils in einem der unterstützten sozialen Netzwerke an:"
-#: ../../mod/dfrn_request.php:671
+#: ../../mod/dfrn_request.php:672
msgid "Friend/Connection Request"
msgstr "Freundschafts-/Kontaktanfrage"
-#: ../../mod/dfrn_request.php:672
+#: ../../mod/dfrn_request.php:673
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:673
+#: ../../mod/dfrn_request.php:674
msgid "Please answer the following:"
msgstr "Bitte beantworte folgende Fragen:"
-#: ../../mod/dfrn_request.php:674
+#: ../../mod/dfrn_request.php:675
#, php-format
msgid "Does %s know you?"
msgstr "Kennt %s dich?"
-#: ../../mod/dfrn_request.php:677
+#: ../../mod/dfrn_request.php:678
msgid "Add a personal note:"
msgstr "Eine persönliche Notiz anfügen:"
-#: ../../mod/dfrn_request.php:679 ../../include/contact_selectors.php:76
+#: ../../mod/dfrn_request.php:680 ../../include/contact_selectors.php:76
msgid "Friendica"
msgstr "Friendica"
-#: ../../mod/dfrn_request.php:680
+#: ../../mod/dfrn_request.php:681
msgid "StatusNet/Federated Social Web"
msgstr "StatusNet/Federated Social Web"
-#: ../../mod/dfrn_request.php:681 ../../mod/settings.php:548
+#: ../../mod/dfrn_request.php:682 ../../mod/settings.php:548
#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../mod/dfrn_request.php:682
+#: ../../mod/dfrn_request.php:683
msgid "- please share from your own site as noted above"
msgstr "- bitte fange von Deiner eigenen Seite aus zu teilen an"
-#: ../../mod/dfrn_request.php:683
+#: ../../mod/dfrn_request.php:684
msgid "Your Identity Address:"
msgstr "Adresse deines Profils:"
-#: ../../mod/dfrn_request.php:684
+#: ../../mod/dfrn_request.php:685
msgid "Submit Request"
msgstr "Anfrage abschicken"
@@ -1086,7 +1093,7 @@ msgid "Errors encountered creating database tables."
msgstr "Fehler aufgetreten während der Erzeugung der Datenbanktabellen."
#: ../../mod/localtime.php:12 ../../include/event.php:11
-#: ../../include/bb2diaspora.php:249
+#: ../../include/bb2diaspora.php:268
msgid "l F d, Y \\@ g:i A"
msgstr "l F d, Y \\@ g:i A"
@@ -1132,7 +1139,7 @@ msgid "is interested in:"
msgstr "ist interessiert an:"
#: ../../mod/match.php:58 ../../mod/suggest.php:59
-#: ../../include/contact_widgets.php:9 ../../boot.php:926
+#: ../../include/contact_widgets.php:9 ../../boot.php:930
msgid "Connect"
msgstr "Verbinden"
@@ -1157,165 +1164,187 @@ msgstr "Willkommen zu %s"
msgid "Invalid request identifier."
msgstr "Invalid request identifier."
-#: ../../mod/notifications.php:35 ../../mod/notifications.php:152
-#: ../../mod/notifications.php:198
+#: ../../mod/notifications.php:35 ../../mod/notifications.php:157
+#: ../../mod/notifications.php:203
msgid "Discard"
msgstr "Verwerfen"
-#: ../../mod/notifications.php:47 ../../mod/notifications.php:151
-#: ../../mod/notifications.php:197 ../../mod/contacts.php:302
+#: ../../mod/notifications.php:47 ../../mod/notifications.php:156
+#: ../../mod/notifications.php:202 ../../mod/contacts.php:302
#: ../../mod/contacts.php:345
msgid "Ignore"
msgstr "Ignorieren"
-#: ../../mod/notifications.php:71 ../../include/nav.php:109
+#: ../../mod/notifications.php:71
+msgid "System"
+msgstr "System"
+
+#: ../../mod/notifications.php:76 ../../include/nav.php:109
msgid "Network"
msgstr "Netzwerk"
-#: ../../mod/notifications.php:76 ../../mod/network.php:177
+#: ../../mod/notifications.php:81 ../../mod/network.php:177
msgid "Personal"
msgstr "Persönlich"
-#: ../../mod/notifications.php:81 ../../include/nav.php:73
+#: ../../mod/notifications.php:86 ../../include/nav.php:73
#: ../../include/nav.php:111
msgid "Home"
msgstr "Pinnwand"
-#: ../../mod/notifications.php:86 ../../include/nav.php:117
+#: ../../mod/notifications.php:91 ../../include/nav.php:117
msgid "Introductions"
msgstr "Kontaktanfragen"
-#: ../../mod/notifications.php:91 ../../mod/message.php:76
-#: ../../include/nav.php:123
+#: ../../mod/notifications.php:96 ../../mod/message.php:76
+#: ../../include/nav.php:124
msgid "Messages"
msgstr "Nachrichten"
-#: ../../mod/notifications.php:110
+#: ../../mod/notifications.php:115
msgid "Show Ignored Requests"
msgstr "Zeige ignorierte Anfragen"
-#: ../../mod/notifications.php:110
+#: ../../mod/notifications.php:115
msgid "Hide Ignored Requests"
msgstr "Verberge ignorierte Anfragen"
-#: ../../mod/notifications.php:136 ../../mod/notifications.php:182
+#: ../../mod/notifications.php:141 ../../mod/notifications.php:187
msgid "Notification type: "
msgstr "Benachrichtigungstyp: "
-#: ../../mod/notifications.php:137
+#: ../../mod/notifications.php:142
msgid "Friend Suggestion"
msgstr "Kontaktvorschlag"
-#: ../../mod/notifications.php:139
+#: ../../mod/notifications.php:144
#, php-format
msgid "suggested by %s"
msgstr "vorgeschlagen von %s"
-#: ../../mod/notifications.php:144 ../../mod/notifications.php:191
+#: ../../mod/notifications.php:149 ../../mod/notifications.php:196
#: ../../mod/contacts.php:350
msgid "Hide this contact from others"
msgstr "Verberge diesen Kontakt vor anderen"
-#: ../../mod/notifications.php:145 ../../mod/notifications.php:192
+#: ../../mod/notifications.php:150 ../../mod/notifications.php:197
msgid "Post a new friend activity"
msgstr "Neue-Kontakt Nachricht senden"
-#: ../../mod/notifications.php:145 ../../mod/notifications.php:192
+#: ../../mod/notifications.php:150 ../../mod/notifications.php:197
msgid "if applicable"
msgstr "falls anwendbar"
-#: ../../mod/notifications.php:148 ../../mod/notifications.php:195
-#: ../../mod/admin.php:466
+#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
+#: ../../mod/admin.php:482
msgid "Approve"
msgstr "Genehmigen"
-#: ../../mod/notifications.php:168
+#: ../../mod/notifications.php:173
msgid "Claims to be known to you: "
msgstr "Behauptet dich zu kennen: "
-#: ../../mod/notifications.php:168
+#: ../../mod/notifications.php:173
msgid "yes"
msgstr "ja"
-#: ../../mod/notifications.php:168
+#: ../../mod/notifications.php:173
msgid "no"
msgstr "nein"
-#: ../../mod/notifications.php:175
+#: ../../mod/notifications.php:180
msgid "Approve as: "
msgstr "Genehmigen als: "
-#: ../../mod/notifications.php:176
+#: ../../mod/notifications.php:181
msgid "Friend"
msgstr "Freund"
-#: ../../mod/notifications.php:177
+#: ../../mod/notifications.php:182
msgid "Sharer"
msgstr "Teilenden"
-#: ../../mod/notifications.php:177
+#: ../../mod/notifications.php:182
msgid "Fan/Admirer"
msgstr "Fan/Verehrer"
-#: ../../mod/notifications.php:183
+#: ../../mod/notifications.php:188
msgid "Friend/Connect Request"
msgstr "Kontakt-/Freundschaftsanfrage"
-#: ../../mod/notifications.php:183
+#: ../../mod/notifications.php:188
msgid "New Follower"
msgstr "Neuer Bewunderer"
-#: ../../mod/notifications.php:204
+#: ../../mod/notifications.php:209
msgid "No introductions."
msgstr "Keine Kontaktanfragen."
-#: ../../mod/notifications.php:207 ../../mod/notifications.php:293
-#: ../../mod/notifications.php:388 ../../mod/notifications.php:469
-#: ../../include/nav.php:118
+#: ../../mod/notifications.php:212 ../../include/nav.php:118
msgid "Notifications"
msgstr "Benachrichtigungen"
-#: ../../mod/notifications.php:244 ../../mod/notifications.php:339
-#: ../../mod/notifications.php:426
+#: ../../mod/notifications.php:249 ../../mod/notifications.php:374
+#: ../../mod/notifications.php:461
#, php-format
msgid "%s liked %s's post"
msgstr "%s mag %ss Beitrag"
-#: ../../mod/notifications.php:253 ../../mod/notifications.php:348
-#: ../../mod/notifications.php:435
+#: ../../mod/notifications.php:258 ../../mod/notifications.php:383
+#: ../../mod/notifications.php:470
#, php-format
msgid "%s disliked %s's post"
msgstr "%s mag %ss Beitrag nicht"
-#: ../../mod/notifications.php:267 ../../mod/notifications.php:362
-#: ../../mod/notifications.php:449
+#: ../../mod/notifications.php:272 ../../mod/notifications.php:397
+#: ../../mod/notifications.php:484
#, php-format
msgid "%s is now friends with %s"
msgstr "%s ist jetzt mit %s befreundet"
-#: ../../mod/notifications.php:274 ../../mod/notifications.php:369
+#: ../../mod/notifications.php:279 ../../mod/notifications.php:404
#, php-format
msgid "%s created a new post"
msgstr "%s hat einen neuen Beitrag erstellt"
-#: ../../mod/notifications.php:275 ../../mod/notifications.php:370
-#: ../../mod/notifications.php:458
+#: ../../mod/notifications.php:280 ../../mod/notifications.php:405
+#: ../../mod/notifications.php:493
#, php-format
msgid "%s commented on %s's post"
msgstr "%s hat %ss Beitrag kommentiert"
-#: ../../mod/notifications.php:289
+#: ../../mod/notifications.php:294
msgid "No more network notifications."
msgstr "Keine weiteren Netzwerk-Benachrichtigungen."
-#: ../../mod/notifications.php:384
+#: ../../mod/notifications.php:298
+msgid "Network Notifications"
+msgstr "Netzwerk Benachrichtigungen"
+
+#: ../../mod/notifications.php:324 ../../mod/notify.php:59
+msgid "No more system notifications."
+msgstr "Keine weiteren System Benachrichtigungen."
+
+#: ../../mod/notifications.php:328 ../../mod/notify.php:63
+msgid "System Notifications"
+msgstr "System Benachrichtigungen"
+
+#: ../../mod/notifications.php:419
msgid "No more personal notifications."
msgstr "Keine weiteren persönlichen Benachrichtigungen"
-#: ../../mod/notifications.php:465
+#: ../../mod/notifications.php:423
+msgid "Personal Notifications"
+msgstr "Persönliche Benachrichtigungen"
+
+#: ../../mod/notifications.php:500
msgid "No more home notifications."
msgstr "Keine weiteren Pinnwand-Benachrichtigungen"
+#: ../../mod/notifications.php:504
+msgid "Home Notifications"
+msgstr "Pinnwand Benachrichtigungen"
+
#: ../../mod/contacts.php:63 ../../mod/contacts.php:143
msgid "Could not access contact record."
msgstr "Konnte nicht auf die Kontaktdaten zugreifen."
@@ -1338,11 +1367,11 @@ msgstr "Kontakt wurde wieder freigegeben"
#: ../../mod/contacts.php:179
msgid "Contact has been ignored"
-msgstr "Der Kontakt wurde ignoriert"
+msgstr "Kontakt wurde ignoriert"
#: ../../mod/contacts.php:179
msgid "Contact has been unignored"
-msgstr "Kontakt wurde ignoriert"
+msgstr "Kontakt wird nicht mehr ignoriert"
#: ../../mod/contacts.php:200
msgid "stopped following"
@@ -1404,12 +1433,12 @@ msgid "View all contacts"
msgstr "Alle Kontakte anzeigen"
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
-#: ../../mod/admin.php:470
+#: ../../mod/admin.php:486
msgid "Unblock"
msgstr "Entsperren"
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
-#: ../../mod/admin.php:469
+#: ../../mod/admin.php:485
msgid "Block"
msgstr "Sperren"
@@ -1444,8 +1473,8 @@ msgstr "Kontakt Informationen / Notizen"
msgid "Edit contact notes"
msgstr "Notizen zum Kontakt bearbiten"
-#: ../../mod/contacts.php:328 ../../mod/contacts.php:458
-#: ../../mod/viewcontacts.php:61
+#: ../../mod/contacts.php:328 ../../mod/contacts.php:497
+#: ../../mod/viewcontacts.php:60
#, php-format
msgid "Visit %s's profile [%s]"
msgstr "Besuche %ss Profil [%s]"
@@ -1478,7 +1507,7 @@ msgstr "letzte Aktualisierung:"
msgid "Update public posts"
msgstr "Öffentliche Beiträge aktualisieren"
-#: ../../mod/contacts.php:341 ../../mod/admin.php:701
+#: ../../mod/contacts.php:341 ../../mod/admin.php:896
msgid "Update now"
msgstr "Jetzt aktualisieren"
@@ -1495,52 +1524,60 @@ msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Antworten/Likes auf deine öffentlichen Beiträge <strong>könnten</strong> weiterhin sichtbar sein"
-#: ../../mod/contacts.php:387 ../../include/nav.php:131
-msgid "Contacts"
-msgstr "Kontakte"
+#: ../../mod/contacts.php:399 ../../mod/group.php:194
+msgid "All Contacts"
+msgstr "Alle Kontakte"
-#: ../../mod/contacts.php:389
-msgid "Show Unblocked Contacts"
-msgstr "Nicht geblockte Kontakte anzeigen"
+#: ../../mod/contacts.php:404
+msgid "Unblocked Contacts"
+msgstr "Nicht blockierte Kontakte"
-#: ../../mod/contacts.php:389
-msgid "Show Blocked Contacts"
-msgstr "Blockierte Kontakte anzeigen"
+#: ../../mod/contacts.php:410
+msgid "Blocked Contacts"
+msgstr "Blockierte Kontakte"
-#: ../../mod/contacts.php:391
-msgid "Show All Contacts"
-msgstr "Alle Kontakte anzeigen"
+#: ../../mod/contacts.php:416
+msgid "Ignored Contacts"
+msgstr "Ignorierte Kontakte"
-#: ../../mod/contacts.php:393
-msgid "Search your contacts"
-msgstr "Suche in deinen Kontakten"
+#: ../../mod/contacts.php:422
+msgid "Hidden Contacts"
+msgstr "Verborgene Kontakte"
-#: ../../mod/contacts.php:394 ../../mod/directory.php:65
-msgid "Finding: "
-msgstr "Funde: "
-
-#: ../../mod/contacts.php:395 ../../mod/directory.php:67
-#: ../../include/contact_widgets.php:34
-msgid "Find"
-msgstr "Finde"
-
-#: ../../mod/contacts.php:434
+#: ../../mod/contacts.php:473
msgid "Mutual Friendship"
msgstr "Beidseitige Freundschaft"
-#: ../../mod/contacts.php:438
+#: ../../mod/contacts.php:477
msgid "is a fan of yours"
msgstr "ist ein Fan von dir"
-#: ../../mod/contacts.php:442
+#: ../../mod/contacts.php:481
msgid "you are a fan of"
msgstr "du bist Fan von"
-#: ../../mod/contacts.php:459 ../../include/Contact.php:135
-#: ../../include/conversation.php:748
+#: ../../mod/contacts.php:498 ../../include/Contact.php:135
+#: ../../include/conversation.php:773
msgid "Edit contact"
msgstr "Kontakt bearbeiten"
+#: ../../mod/contacts.php:518 ../../include/nav.php:132
+msgid "Contacts"
+msgstr "Kontakte"
+
+#: ../../mod/contacts.php:522
+msgid "Search your contacts"
+msgstr "Suche in deinen Kontakten"
+
+#: ../../mod/contacts.php:523 ../../mod/directory.php:67
+msgid "Finding: "
+msgstr "Funde: "
+
+#: ../../mod/contacts.php:524 ../../mod/directory.php:69
+#: ../../include/contact_widgets.php:34
+msgid "Find"
+msgstr "Finde"
+
#: ../../mod/lostpass.php:16
msgid "No valid account found."
msgstr "Kein gültiger Account gefunden."
@@ -1557,7 +1594,7 @@ msgstr "Anfrage zum Zurücksetzen des Passworts auf %s erhalten"
#: ../../mod/lostpass.php:44 ../../mod/lostpass.php:106
#: ../../mod/register.php:380 ../../mod/register.php:434
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:716
-#: ../../include/items.php:2452
+#: ../../include/items.php:2513
msgid "Administrator"
msgstr "Administrator"
@@ -1567,7 +1604,7 @@ msgid ""
"Password reset failed."
msgstr "Anfrage konnte nicht verifiziert werden. (Eventuell hast du bereits ähnliche Anfrage gestellt.) Zurücksetzen des Passworts gescheitert."
-#: ../../mod/lostpass.php:82 ../../boot.php:719
+#: ../../mod/lostpass.php:82 ../../boot.php:723
msgid "Password Reset"
msgstr "Passwort zurücksetzen"
@@ -1615,7 +1652,7 @@ msgstr "Zurücksetzen"
msgid "Missing some important data!"
msgstr "Wichtige Daten fehlen!"
-#: ../../mod/settings.php:73 ../../mod/settings.php:479 ../../mod/admin.php:62
+#: ../../mod/settings.php:73 ../../mod/settings.php:479 ../../mod/admin.php:75
msgid "Update"
msgstr "Aktualisierungen"
@@ -1657,15 +1694,16 @@ msgstr " Keine gültige E-Mail."
#: ../../mod/settings.php:283
msgid " Cannot change to that email."
-msgstr " Cannot change to that email."
+msgstr "Ändern der E-Mail nicht möglich. "
-#: ../../mod/settings.php:351 ../../addon/facebook/facebook.php:320
-#: ../../addon/impressum/impressum.php:64 ../../addon/piwik/piwik.php:94
-#: ../../addon/twitter/twitter.php:310
+#: ../../mod/settings.php:351 ../../addon/facebook/facebook.php:321
+#: ../../addon/impressum/impressum.php:64
+#: ../../addon/openstreetmap/openstreetmap.php:80
+#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:350
msgid "Settings updated."
msgstr "Einstellungen aktualisiert."
-#: ../../mod/settings.php:415 ../../include/nav.php:129
+#: ../../mod/settings.php:415 ../../include/nav.php:130
msgid "Account settings"
msgstr "Account Einstellungen"
@@ -1691,12 +1729,12 @@ msgid "Add application"
msgstr "Programm hinzufügen"
#: ../../mod/settings.php:456 ../../mod/settings.php:482
-#: ../../addon/statusnet/statusnet.php:489
+#: ../../addon/statusnet/statusnet.php:526
msgid "Consumer Key"
msgstr "Consumer Key"
#: ../../mod/settings.php:457 ../../mod/settings.php:483
-#: ../../addon/statusnet/statusnet.php:488
+#: ../../addon/statusnet/statusnet.php:525
msgid "Consumer Secret"
msgstr "Consumer Secret"
@@ -1807,7 +1845,7 @@ msgstr "Reply-to Adresse:"
msgid "Send public posts to all email contacts:"
msgstr "Sende öffentliche Beiträge an alle E-Mail-Kontakte:"
-#: ../../mod/settings.php:648 ../../mod/admin.php:126 ../../mod/admin.php:443
+#: ../../mod/settings.php:648 ../../mod/admin.php:142 ../../mod/admin.php:459
msgid "Normal Account"
msgstr "Normaler Account"
@@ -1815,7 +1853,7 @@ msgstr "Normaler Account"
msgid "This account is a normal personal profile"
msgstr "Dieser Account ist ein normales persönliches Profil"
-#: ../../mod/settings.php:652 ../../mod/admin.php:127 ../../mod/admin.php:444
+#: ../../mod/settings.php:652 ../../mod/admin.php:143 ../../mod/admin.php:460
msgid "Soapbox Account"
msgstr "Sandkasten-Account"
@@ -1823,7 +1861,7 @@ msgstr "Sandkasten-Account"
msgid "Automatically approve all connection/friend requests as read-only fans"
msgstr "Freundschaftsanfragen werden automatisch als Nurlese-Fans akzeptiert"
-#: ../../mod/settings.php:656 ../../mod/admin.php:128 ../../mod/admin.php:445
+#: ../../mod/settings.php:656 ../../mod/admin.php:144 ../../mod/admin.php:461
msgid "Community/Celebrity Account"
msgstr "Gemeinschafts/Promi-Account"
@@ -1832,7 +1870,7 @@ msgid ""
"Automatically approve all connection/friend requests as read-write fans"
msgstr "Freundschaftsanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert"
-#: ../../mod/settings.php:660 ../../mod/admin.php:129 ../../mod/admin.php:446
+#: ../../mod/settings.php:660 ../../mod/admin.php:145 ../../mod/admin.php:462
msgid "Automatic Friend Account"
msgstr "Automatischer Freundesaccount"
@@ -1880,159 +1918,159 @@ msgstr "Erlaube uns dich als potentiellen Kontakt für neue Mitglieder vorzuschl
msgid "Profile is <strong>not published</strong>."
msgstr "Profil ist <strong>nicht veröffentlicht</strong>."
-#: ../../mod/settings.php:744 ../../mod/profile_photo.php:206
+#: ../../mod/settings.php:757 ../../mod/profile_photo.php:206
msgid "or"
msgstr "oder"
-#: ../../mod/settings.php:749
+#: ../../mod/settings.php:762
msgid "Your Identity Address is"
msgstr "Die Adresse deines Profils lautet:"
-#: ../../mod/settings.php:760
+#: ../../mod/settings.php:773
msgid "Automatically expire posts after this many days:"
msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen"
-#: ../../mod/settings.php:760
+#: ../../mod/settings.php:773
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:761
+#: ../../mod/settings.php:774
msgid "Advanced expiration settings"
msgstr "Erweiterte Verfallseinstellungen"
-#: ../../mod/settings.php:762
+#: ../../mod/settings.php:775
msgid "Advanced Expiration"
msgstr "Erweitertes Verfallen"
-#: ../../mod/settings.php:763
+#: ../../mod/settings.php:776
msgid "Expire posts:"
msgstr "Beiträge verfallen lassen:"
-#: ../../mod/settings.php:764
+#: ../../mod/settings.php:777
msgid "Expire personal notes:"
msgstr "Persönliche Notizen verfallen lassen:"
-#: ../../mod/settings.php:765
+#: ../../mod/settings.php:778
msgid "Expire starred posts:"
msgstr "Markierte Beiträge verfallen lassen:"
-#: ../../mod/settings.php:766
+#: ../../mod/settings.php:779
msgid "Expire photos:"
msgstr "Fotos verfallen lassen:"
-#: ../../mod/settings.php:771
+#: ../../mod/settings.php:784
msgid "Account Settings"
msgstr "Account-Einstellungen"
-#: ../../mod/settings.php:779
+#: ../../mod/settings.php:792
msgid "Password Settings"
msgstr "Passwort-Einstellungen"
-#: ../../mod/settings.php:780
+#: ../../mod/settings.php:793
msgid "New Password:"
msgstr "Neues Passwort:"
-#: ../../mod/settings.php:781
+#: ../../mod/settings.php:794
msgid "Confirm:"
msgstr "Bestätigen:"
-#: ../../mod/settings.php:781
+#: ../../mod/settings.php:794
msgid "Leave password fields blank unless changing"
msgstr "Lass die Passwort-Felder leer, außer du willst das Passwort ändern"
-#: ../../mod/settings.php:785
+#: ../../mod/settings.php:798
msgid "Basic Settings"
msgstr "Grundeinstellungen"
-#: ../../mod/settings.php:786 ../../include/profile_advanced.php:15
+#: ../../mod/settings.php:799 ../../include/profile_advanced.php:15
msgid "Full Name:"
msgstr "Kompletter Name:"
-#: ../../mod/settings.php:787
+#: ../../mod/settings.php:800
msgid "Email Address:"
msgstr "Emailadresse:"
-#: ../../mod/settings.php:788
+#: ../../mod/settings.php:801
msgid "Your Timezone:"
msgstr "Deine Zeitzone:"
-#: ../../mod/settings.php:789
+#: ../../mod/settings.php:802
msgid "Default Post Location:"
msgstr "Standardstandort:"
-#: ../../mod/settings.php:790
+#: ../../mod/settings.php:803
msgid "Use Browser Location:"
msgstr "Verwende den Standort des Browsers:"
-#: ../../mod/settings.php:791
+#: ../../mod/settings.php:804
msgid "Display Theme:"
msgstr "Theme:"
-#: ../../mod/settings.php:792
+#: ../../mod/settings.php:805
msgid "Update browser every xx seconds"
msgstr "Browser alle xx Sekunden aktualisieren"
-#: ../../mod/settings.php:792
+#: ../../mod/settings.php:805
msgid "Minimum of 10 seconds, no maximum"
msgstr "Minimal 10 Sekunden, kein Maximum"
-#: ../../mod/settings.php:794
+#: ../../mod/settings.php:807
msgid "Security and Privacy Settings"
msgstr "Sicherheits- und Privatsphäre-Einstellungen"
-#: ../../mod/settings.php:796
+#: ../../mod/settings.php:809
msgid "Maximum Friend Requests/Day:"
msgstr "Maximale Anzahl von Freundschaftsanfragen/Tag:"
-#: ../../mod/settings.php:796
+#: ../../mod/settings.php:809
msgid "(to prevent spam abuse)"
msgstr "(um SPAM zu vermeiden)"
-#: ../../mod/settings.php:797
+#: ../../mod/settings.php:810
msgid "Default Post Permissions"
msgstr "Standard-Zugriffsrechte für Beiträge"
-#: ../../mod/settings.php:798
+#: ../../mod/settings.php:811
msgid "(click to open/close)"
msgstr "(klicke zum öffnen/schließen)"
-#: ../../mod/settings.php:813
+#: ../../mod/settings.php:826
msgid "Notification Settings"
msgstr "Benachrichtigungseinstellungen"
-#: ../../mod/settings.php:814
+#: ../../mod/settings.php:827
msgid "Send a notification email when:"
msgstr "Benachrichtigungs-E-Mail senden wenn:"
-#: ../../mod/settings.php:815
+#: ../../mod/settings.php:828
msgid "You receive an introduction"
msgstr "Du eine Kontaktanfrage erhältst"
-#: ../../mod/settings.php:816
+#: ../../mod/settings.php:829
msgid "Your introductions are confirmed"
msgstr "Eine deiner Kontaktanfragen akzeptiert wurde"
-#: ../../mod/settings.php:817
+#: ../../mod/settings.php:830
msgid "Someone writes on your profile wall"
-msgstr "Jemand etwas auf deine Pinnwand schreibt"
+msgstr "Jemand schreibt etwas auf deine Pinnwand"
-#: ../../mod/settings.php:818
+#: ../../mod/settings.php:831
msgid "Someone writes a followup comment"
-msgstr "Jemand auch einen Kommentar verfasst"
+msgstr "Jemand verfasst auch einen Kommentar"
-#: ../../mod/settings.php:819
+#: ../../mod/settings.php:832
msgid "You receive a private message"
-msgstr "Du eine private Nachricht erhältst"
+msgstr "Du erhältst eine private Nachricht"
-#: ../../mod/settings.php:820
+#: ../../mod/settings.php:833
msgid "You receive a friend suggestion"
msgstr "Du eine Empfehlung erhältst"
-#: ../../mod/settings.php:821
+#: ../../mod/settings.php:834
msgid "You are tagged in a post"
msgstr "Du wurdest in einem Beitrag erwähnt"
-#: ../../mod/settings.php:824
+#: ../../mod/settings.php:837
msgid "Advanced Page Settings"
msgstr "Erweiterte Seiten-Einstellungen"
@@ -2098,31 +2136,31 @@ msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerke
msgid "Private messages to this group are at risk of public disclosure."
msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten."
-#: ../../mod/network.php:304
+#: ../../mod/network.php:300
msgid "No such group"
msgstr "Es gibt keine solche Gruppe"
-#: ../../mod/network.php:315
+#: ../../mod/network.php:311
msgid "Group is empty"
msgstr "Gruppe ist leer"
-#: ../../mod/network.php:319
+#: ../../mod/network.php:315
msgid "Group: "
msgstr "Gruppe: "
-#: ../../mod/network.php:329
+#: ../../mod/network.php:325
msgid "Contact: "
msgstr "Kontakt: "
-#: ../../mod/network.php:331
+#: ../../mod/network.php:327
msgid "Private messages to this person are at risk of public disclosure."
msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."
-#: ../../mod/network.php:336
+#: ../../mod/network.php:332
msgid "Invalid contact."
msgstr "Ungültiger Kontakt."
-#: ../../mod/notes.php:44 ../../boot.php:1350
+#: ../../mod/notes.php:44 ../../boot.php:1354
msgid "Personal Notes"
msgstr "Persönliche Notizen"
@@ -2141,14 +2179,17 @@ msgstr "Checkliste für neue Mitglieder"
#: ../../mod/newmember.php:12
msgid ""
"We would like to offer some tips and links to help make your experience "
-"enjoyable. Click any item to visit the relevant page."
-msgstr "Wir möchten dir einige Tipps und Links anbieten, um deine Erfahrung mit Friendica so angenehm wie möglich zu machen. Klicke einfach einen Aspekt an, um weitere Informationen zu erhalten."
+"enjoyable. Click any item to visit the relevant page. A link to this page "
+"will be visible from your home page for two weeks after your initial "
+"registration and then will quietly disappear."
+msgstr "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt sichtbar über Deine Pinnwand für zwei Wochen nach dem Registrierungsdatum und wird dann verschwinden."
#: ../../mod/newmember.php:16
msgid ""
"On your <em>Settings</em> page - change your initial password. Also make a "
-"note of your Identity Address. This will be useful in making friends."
-msgstr "Ändere dein anfängliches Passwort auf der <em>Einstellungen</em> Seite. Bei dieser Gelegenheit solltest du dir die Adresse deines Profils merken, diese wird benötigt um mit Anderen in Kontakt zu treten."
+"note of your Identity Address. This looks just like an email address - and "
+"will be useful in making friends on the free social web."
+msgstr "Ändere bitte unter <em>Einstellungen</em> Dein Passwort. Außerdem merke Dir Deine Indentifikations Adresse. Diese sieht aus wie eine E-Mail Adresse und wird benötig um Freunschaften mit anderen im Friendica Netzwerk zu schliessen."
#: ../../mod/newmember.php:18
msgid ""
@@ -2171,49 +2212,64 @@ msgid ""
"and we will (optionally) import all your Facebook friends and conversations."
msgstr "Richte die Verbindung zu Facebook ein, wenn du im Augenblick ein Facebook Konto hast und (optional) deine Facebook Freunde und Unterhaltungen importieren willst."
-#: ../../mod/newmember.php:28
+#: ../../mod/newmember.php:25
+msgid ""
+"<em>If</em> this is your own personal server, installing the Facebook addon "
+"may ease your transition to the free social web."
+msgstr "<em>Wenn</em> dies dein privater Server ist könnte die Installation des Facebook Connectors deinen Umzug ins freie Soziale Netz angenehmer gestalten."
+
+#: ../../mod/newmember.php:30
msgid ""
"Enter your email access information on your Connector Settings page if you "
"wish to import and interact with friends or mailing lists from your email "
"INBOX"
msgstr "Gib deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls du E-Mails aus deinem Posteingang importieren und mit Freunden und Mailinglisten interagieren willlst."
-#: ../../mod/newmember.php:30
+#: ../../mod/newmember.php:32
msgid ""
"Edit your <strong>default</strong> profile to your liking. Review the "
"settings for hiding your list of friends and hiding the profile from unknown"
" visitors."
msgstr "Editiere dein <strong>Standard</strong> Profil nach deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen deiner Freundesliste vor unbekannten Betrachtern des Profils."
-#: ../../mod/newmember.php:32
+#: ../../mod/newmember.php:34
msgid ""
"Set some public keywords for your default profile which describe your "
"interests. We may be able to find other people with similar interests and "
"suggest friendships."
msgstr "Trage ein paar öffentliche Stichwörter in dein Standardprofil ein, die deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die deine Interessen teilen und können dir dann Kontakte vorschlagen."
-#: ../../mod/newmember.php:34
+#: ../../mod/newmember.php:36
msgid ""
"Your Contacts page is your gateway to managing friendships and connecting "
"with friends on other networks. Typically you enter their address or site "
"URL in the <em>Add New Contact</em> dialog."
msgstr "Die Kontakte-Seite ist die Einstiegsseite, von der aus du Kontakte verwalten und dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst du dazu einfach ihre Adresse oder die URL der Seite im Kasten <em>Neuen Kontakt hinzufügen</em> ein."
-#: ../../mod/newmember.php:36
+#: ../../mod/newmember.php:38
msgid ""
"The Directory page lets you find other people in this network or other "
"federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on "
"their profile page. Provide your own Identity Address if requested."
msgstr "Ãœber die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verteilten Seiten finden. Halte nach einem <em>Verbinden</em> oder <em>Folgen</em> Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an falls du danach gefragt wirst."
-#: ../../mod/newmember.php:38
+#: ../../mod/newmember.php:40
+msgid ""
+"On the side panel of the Contacts page are several tools to find new "
+"friends. We can match people by interest, look up people by name or "
+"interest, and provide suggestions based on network relationships. On a brand"
+" new site, friend suggestions will usually begin to be populated within 24 "
+"hours."
+msgstr "Im seitlichen Bedienfeld der Kontakte-Seite gibt es diverse Werkzeuge, um neue Freunde zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Freunde vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden."
+
+#: ../../mod/newmember.php:42
msgid ""
"Once you have made some friends, organize them into private conversation "
"groups from the sidebar of your Contacts page and then you can interact with"
" each group privately on your Network page."
msgstr "Sobald du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren."
-#: ../../mod/newmember.php:40
+#: ../../mod/newmember.php:44
msgid ""
"Our <strong>help</strong> pages may be consulted for detail on other program"
" features and resources."
@@ -2275,10 +2331,6 @@ msgstr "Gruppeneditor"
msgid "Members"
msgstr "Mitglieder"
-#: ../../mod/group.php:194
-msgid "All Contacts"
-msgstr "Alle Kontakte"
-
#: ../../mod/profperm.php:25 ../../mod/profperm.php:55
msgid "Invalid profile identifier."
msgstr "Ungültiger Profil-Bezeichner"
@@ -2289,7 +2341,7 @@ msgstr "Editor für die Profil-Sichtbarkeit"
#: ../../mod/profperm.php:103 ../../include/profile_advanced.php:7
#: ../../include/profile_advanced.php:76 ../../include/nav.php:48
-#: ../../boot.php:1332
+#: ../../boot.php:1336
msgid "Profile"
msgstr "Profil"
@@ -2301,14 +2353,14 @@ msgstr "Sichtbar für"
msgid "All Contacts (with secure profile access)"
msgstr "Alle Kontakte (mit gesichertem Profilzugriff)"
-#: ../../mod/viewcontacts.php:25 ../../include/text.php:578
-msgid "View Contacts"
-msgstr "Kontakte anzeigen"
-
-#: ../../mod/viewcontacts.php:40
+#: ../../mod/viewcontacts.php:39
msgid "No contacts."
msgstr "Keine Kontakte."
+#: ../../mod/viewcontacts.php:73 ../../include/text.php:578
+msgid "View Contacts"
+msgstr "Kontakte anzeigen"
+
#: ../../mod/register.php:62
msgid "An invitation is required."
msgstr "Du benötigst eine Einladung."
@@ -2361,7 +2413,7 @@ msgstr "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."
#: ../../mod/register.php:170
msgid "SERIOUS ERROR: Generation of security keys failed."
-msgstr "SERIOUS ERROR: Generation of security keys failed."
+msgstr "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden."
#: ../../mod/register.php:238
msgid "An error occurred during registration. Please try again."
@@ -2432,7 +2484,7 @@ msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung mögli
msgid "Your invitation ID: "
msgstr "ID deiner Einladung: "
-#: ../../mod/register.php:540 ../../mod/admin.php:297
+#: ../../mod/register.php:540 ../../mod/admin.php:313
msgid "Registration"
msgstr "Registrierung"
@@ -2455,7 +2507,7 @@ msgstr "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstab
msgid "Choose a nickname: "
msgstr "Spitznamen wählen: "
-#: ../../mod/register.php:554 ../../include/nav.php:77 ../../boot.php:689
+#: ../../mod/register.php:554 ../../include/nav.php:77 ../../boot.php:693
msgid "Register"
msgstr "Registrieren"
@@ -2464,30 +2516,31 @@ msgid "People Search"
msgstr "Personen Suche"
#: ../../mod/like.php:127 ../../mod/tagger.php:70
-#: ../../addon/facebook/facebook.php:1091
+#: ../../addon/facebook/facebook.php:1092
#: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167
-#: ../../include/diaspora.php:1587 ../../include/conversation.php:26
-#: ../../include/conversation.php:35 ../../include/conversation.php:99
-#: ../../include/conversation.php:108
+#: ../../include/diaspora.php:1600 ../../include/conversation.php:48
+#: ../../include/conversation.php:57 ../../include/conversation.php:121
+#: ../../include/conversation.php:130
msgid "status"
msgstr "Status"
-#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1095
+#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1096
#: ../../addon/communityhome/communityhome.php:172
-#: ../../include/diaspora.php:1603 ../../include/conversation.php:43
+#: ../../include/diaspora.php:1616 ../../include/conversation.php:65
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s mag %2$ss %3$s"
-#: ../../mod/like.php:146 ../../include/conversation.php:46
+#: ../../mod/like.php:146 ../../include/conversation.php:68
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s mag %2$ss %3$s nicht"
-#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:111
-#: ../../mod/admin.php:502 ../../mod/display.php:28 ../../mod/display.php:116
-#: ../../mod/viewd.php:14 ../../include/items.php:2819
+#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:127
+#: ../../mod/admin.php:518 ../../mod/admin.php:694 ../../mod/display.php:29
+#: ../../mod/display.php:134 ../../mod/viewd.php:14
+#: ../../include/items.php:2880
msgid "Item not found."
msgstr "Beitrag nicht gefunden."
@@ -2508,43 +2561,43 @@ msgstr "Registrierung für %s wurde zurückgezogen"
msgid "Please login."
msgstr "Bitte melde dich an."
-#: ../../mod/item.php:88
+#: ../../mod/item.php:89
msgid "Unable to locate original post."
msgstr "Konnte den Originalbeitrag nicht finden."
-#: ../../mod/item.php:248
+#: ../../mod/item.php:249
msgid "Empty post discarded."
msgstr "Leerer Beitrag wurde verworfen."
-#: ../../mod/item.php:350 ../../mod/wall_upload.php:81
+#: ../../mod/item.php:351 ../../mod/wall_upload.php:81
#: ../../mod/wall_upload.php:90 ../../mod/wall_upload.php:97
#: ../../include/message.php:143
msgid "Wall Photos"
msgstr "Pinnwand-Bilder"
-#: ../../mod/item.php:827
+#: ../../mod/item.php:830
msgid "System error. Post not saved."
msgstr "Systemfehler. Beitrag konnte nicht gespeichert werden."
-#: ../../mod/item.php:852
+#: ../../mod/item.php:855
#, 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:854
+#: ../../mod/item.php:857
#, php-format
msgid "You may visit them online at %s"
msgstr "Du kannst sie online unter %s besuchen"
-#: ../../mod/item.php:855
+#: ../../mod/item.php:858
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:857
+#: ../../mod/item.php:860
#, php-format
msgid "%s posted an update."
msgstr "%s hat ein Update veröffentlicht."
@@ -2668,7 +2721,7 @@ msgstr "Nachricht gelöscht."
msgid "Conversation removed."
msgstr "Unterhaltung gelöscht."
-#: ../../mod/message.php:137 ../../include/conversation.php:843
+#: ../../mod/message.php:137 ../../include/conversation.php:868
msgid "Please enter a link URL:"
msgstr "Bitte gib die URL des Links ein:"
@@ -2722,348 +2775,357 @@ msgstr "Freunde von %s"
msgid "No friends to display."
msgstr "Keine Freunde zum Anzeigen."
-#: ../../mod/admin.php:59 ../../mod/admin.php:295
+#: ../../mod/admin.php:71 ../../mod/admin.php:311
msgid "Site"
msgstr "Seite"
-#: ../../mod/admin.php:60 ../../mod/admin.php:460 ../../mod/admin.php:472
+#: ../../mod/admin.php:72 ../../mod/admin.php:476 ../../mod/admin.php:488
msgid "Users"
msgstr "Nutzer"
-#: ../../mod/admin.php:61 ../../mod/admin.php:549 ../../mod/admin.php:586
+#: ../../mod/admin.php:73 ../../mod/admin.php:565 ../../mod/admin.php:602
msgid "Plugins"
msgstr "Plugins"
-#: ../../mod/admin.php:76 ../../mod/admin.php:651
+#: ../../mod/admin.php:74 ../../mod/admin.php:736 ../../mod/admin.php:768
+msgid "Themes"
+msgstr "Themen"
+
+#: ../../mod/admin.php:89 ../../mod/admin.php:846
msgid "Logs"
msgstr "Protokolle"
-#: ../../mod/admin.php:81
+#: ../../mod/admin.php:94
msgid "User registrations waiting for confirmation"
msgstr "Nutzeranmeldungen die auf Bestätigung warten"
-#: ../../mod/admin.php:144 ../../mod/admin.php:294 ../../mod/admin.php:459
-#: ../../mod/admin.php:548 ../../mod/admin.php:585 ../../mod/admin.php:650
+#: ../../mod/admin.php:160 ../../mod/admin.php:310 ../../mod/admin.php:475
+#: ../../mod/admin.php:564 ../../mod/admin.php:601 ../../mod/admin.php:735
+#: ../../mod/admin.php:767 ../../mod/admin.php:845
msgid "Administration"
msgstr "Administration"
-#: ../../mod/admin.php:145
+#: ../../mod/admin.php:161
msgid "Summary"
msgstr "Zusammenfassung"
-#: ../../mod/admin.php:146
+#: ../../mod/admin.php:162
msgid "Registered users"
msgstr "Registrierte Nutzer"
-#: ../../mod/admin.php:148
+#: ../../mod/admin.php:164
msgid "Pending registrations"
msgstr "Anstehende Anmeldungen"
-#: ../../mod/admin.php:149
+#: ../../mod/admin.php:165
msgid "Version"
msgstr "Version"
-#: ../../mod/admin.php:151
+#: ../../mod/admin.php:167
msgid "Active plugins"
msgstr "Aktive Plugins"
-#: ../../mod/admin.php:243
+#: ../../mod/admin.php:259
msgid "Site settings updated."
msgstr "Seiteneinstellungen aktualisiert."
-#: ../../mod/admin.php:287
+#: ../../mod/admin.php:303
msgid "Closed"
msgstr "Geschlossen"
-#: ../../mod/admin.php:288
+#: ../../mod/admin.php:304
msgid "Requires approval"
msgstr "Bedarf Zustimmung"
-#: ../../mod/admin.php:289
+#: ../../mod/admin.php:305
msgid "Open"
msgstr "Offen"
-#: ../../mod/admin.php:298
+#: ../../mod/admin.php:314
msgid "File upload"
msgstr "Datei hochladen"
-#: ../../mod/admin.php:299
+#: ../../mod/admin.php:315
msgid "Policies"
msgstr "Regeln"
-#: ../../mod/admin.php:300
+#: ../../mod/admin.php:316
msgid "Advanced"
msgstr "Erweitert"
-#: ../../mod/admin.php:304 ../../addon/statusnet/statusnet.php:486
+#: ../../mod/admin.php:320 ../../addon/statusnet/statusnet.php:523
msgid "Site name"
msgstr "Seitenname"
-#: ../../mod/admin.php:305
+#: ../../mod/admin.php:321
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../mod/admin.php:306
+#: ../../mod/admin.php:322
msgid "System language"
msgstr "Systemsprache"
-#: ../../mod/admin.php:307
+#: ../../mod/admin.php:323
msgid "System theme"
msgstr "Systemweites Thema"
-#: ../../mod/admin.php:309
+#: ../../mod/admin.php:325
msgid "Maximum image size"
msgstr "Maximale Größe von Bildern"
-#: ../../mod/admin.php:311
+#: ../../mod/admin.php:327
msgid "Register policy"
msgstr "Registrierungsmethode"
-#: ../../mod/admin.php:312
+#: ../../mod/admin.php:328
msgid "Register text"
msgstr "Registrierungstext"
-#: ../../mod/admin.php:313
+#: ../../mod/admin.php:329
msgid "Accounts abandoned after x days"
msgstr "Accounts gelten nach x Tagen als unbenutzt"
-#: ../../mod/admin.php:313
+#: ../../mod/admin.php:329
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Verschwende keine System-Ressourcen fürs Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit."
-#: ../../mod/admin.php:314
+#: ../../mod/admin.php:330
msgid "Allowed friend domains"
msgstr "Erlaubte Domains für Kontakte"
-#: ../../mod/admin.php:315
+#: ../../mod/admin.php:331
msgid "Allowed email domains"
msgstr "Erlaubte Domains für Emails"
-#: ../../mod/admin.php:316
+#: ../../mod/admin.php:332
msgid "Block public"
msgstr "Öffentlichen Zugriff blockieren"
-#: ../../mod/admin.php:317
+#: ../../mod/admin.php:333
msgid "Force publish"
msgstr "Erzwinge Veröffentlichung"
-#: ../../mod/admin.php:318
+#: ../../mod/admin.php:334
msgid "Global directory update URL"
msgstr "URL für Updates beim weltweiten Verzeichnis"
-#: ../../mod/admin.php:320
+#: ../../mod/admin.php:336
msgid "Block multiple registrations"
msgstr "Unterbinde Mehrfachregistrierung"
-#: ../../mod/admin.php:321
+#: ../../mod/admin.php:337
msgid "OpenID support"
msgstr "OpenID Unterstützung"
-#: ../../mod/admin.php:322
+#: ../../mod/admin.php:338
msgid "Gravatar support"
msgstr "Gravatar Unterstützung"
-#: ../../mod/admin.php:323
+#: ../../mod/admin.php:339
msgid "Fullname check"
msgstr "Name auf Vollständigkeit überprüfen"
-#: ../../mod/admin.php:324
+#: ../../mod/admin.php:340
msgid "UTF-8 Regular expressions"
msgstr "UTF-8 Reguläre Ausdrücke"
-#: ../../mod/admin.php:325
+#: ../../mod/admin.php:341
msgid "Show Community Page"
msgstr "Gemeinschaftsseite anzeigen"
-#: ../../mod/admin.php:326
+#: ../../mod/admin.php:342
msgid "Enable OStatus support"
msgstr "OStatus Unterstützung aktivieren"
-#: ../../mod/admin.php:327
+#: ../../mod/admin.php:343
msgid "Enable Diaspora support"
msgstr "Diaspora-Support aktivieren"
-#: ../../mod/admin.php:328
+#: ../../mod/admin.php:344
msgid "Only allow Friendica contacts"
msgstr "Nur Friendica-Kontakte erlauben"
-#: ../../mod/admin.php:329
+#: ../../mod/admin.php:345
msgid "Verify SSL"
msgstr "SSL Überprüfen"
-#: ../../mod/admin.php:330
+#: ../../mod/admin.php:346
msgid "Proxy user"
msgstr "Proxy Nutzer"
-#: ../../mod/admin.php:331
+#: ../../mod/admin.php:347
msgid "Proxy URL"
msgstr "Proxy URL"
-#: ../../mod/admin.php:332
+#: ../../mod/admin.php:348
msgid "Network timeout"
msgstr "Netzwerk Wartezeit"
-#: ../../mod/admin.php:353
+#: ../../mod/admin.php:369
#, php-format
msgid "%s user blocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s Nutzer gesperrt"
msgstr[1] "%s Nutzer gesperrt/entsperrt"
-#: ../../mod/admin.php:360
+#: ../../mod/admin.php:376
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s Nutzer gelöscht"
msgstr[1] "%s Nutzer gelöscht"
-#: ../../mod/admin.php:394
+#: ../../mod/admin.php:410
#, php-format
msgid "User '%s' deleted"
msgstr "Nutzer '%s' gelöscht"
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:417
#, php-format
msgid "User '%s' unblocked"
msgstr "Nutzer '%s' entsperrt"
-#: ../../mod/admin.php:401
+#: ../../mod/admin.php:417
#, php-format
msgid "User '%s' blocked"
msgstr "Nutzer '%s' gesperrt"
-#: ../../mod/admin.php:462
+#: ../../mod/admin.php:478
msgid "select all"
msgstr "Alle auswählen"
-#: ../../mod/admin.php:463
+#: ../../mod/admin.php:479
msgid "User registrations waiting for confirm"
msgstr "Neuanmeldungen, die auf deine Bestätigung warten"
-#: ../../mod/admin.php:464
+#: ../../mod/admin.php:480
msgid "Request date"
msgstr "Anfrage Datum"
-#: ../../mod/admin.php:464 ../../mod/admin.php:473
+#: ../../mod/admin.php:480 ../../mod/admin.php:489
#: ../../include/contact_selectors.php:79
msgid "Email"
msgstr "Email"
-#: ../../mod/admin.php:465
+#: ../../mod/admin.php:481
msgid "No registrations."
msgstr "Keine Neuanmeldungen."
-#: ../../mod/admin.php:467
+#: ../../mod/admin.php:483
msgid "Deny"
msgstr "Verwehren"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:489
msgid "Register date"
msgstr "Anmeldedatum"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:489
msgid "Last login"
msgstr "Letzte Anmeldung"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:489
msgid "Last item"
msgstr "Letzter Beitrag"
-#: ../../mod/admin.php:473
+#: ../../mod/admin.php:489
msgid "Account"
msgstr "Nutzerkonto"
-#: ../../mod/admin.php:475
+#: ../../mod/admin.php:491
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?"
-#: ../../mod/admin.php:476
+#: ../../mod/admin.php:492
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?"
-#: ../../mod/admin.php:512
+#: ../../mod/admin.php:528
#, php-format
msgid "Plugin %s disabled."
msgstr "Plugin %s deaktiviert."
-#: ../../mod/admin.php:516
+#: ../../mod/admin.php:532
#, php-format
msgid "Plugin %s enabled."
msgstr "Plugin %s aktiviert."
-#: ../../mod/admin.php:526
+#: ../../mod/admin.php:542 ../../mod/admin.php:718
msgid "Disable"
msgstr "Ausschalten"
-#: ../../mod/admin.php:528
+#: ../../mod/admin.php:544 ../../mod/admin.php:720
msgid "Enable"
msgstr "Einschalten"
-#: ../../mod/admin.php:550
+#: ../../mod/admin.php:566 ../../mod/admin.php:737
msgid "Toggle"
msgstr "Umschalten"
-#: ../../mod/admin.php:551 ../../include/nav.php:129
+#: ../../mod/admin.php:567 ../../mod/admin.php:738 ../../include/nav.php:130
msgid "Settings"
msgstr "Einstellungen"
-#: ../../mod/admin.php:613
+#: ../../mod/admin.php:683
+msgid "No themes found."
+msgstr "Keine Themen gefunden."
+
+#: ../../mod/admin.php:795
msgid "Log settings updated."
msgstr "Protokolleinstellungen aktualisiert."
-#: ../../mod/admin.php:653
+#: ../../mod/admin.php:848
msgid "Clear"
msgstr "löschen"
-#: ../../mod/admin.php:659
+#: ../../mod/admin.php:854
msgid "Debugging"
msgstr "Protokoll führen"
-#: ../../mod/admin.php:660
+#: ../../mod/admin.php:855
msgid "Log file"
msgstr "Protokolldatei"
-#: ../../mod/admin.php:660
+#: ../../mod/admin.php:855
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr "Webserver muss Schreibrechte besitzen. Relativ zum Friendica-Installationsverzeichnis."
-#: ../../mod/admin.php:661
+#: ../../mod/admin.php:856
msgid "Log level"
msgstr "Protokollevel"
-#: ../../mod/admin.php:702
+#: ../../mod/admin.php:897
msgid "Close"
msgstr "Schließen"
-#: ../../mod/admin.php:708
+#: ../../mod/admin.php:903
msgid "FTP Host"
msgstr "FTP Host"
-#: ../../mod/admin.php:709
+#: ../../mod/admin.php:904
msgid "FTP Path"
msgstr "FTP Pfad"
-#: ../../mod/admin.php:710
+#: ../../mod/admin.php:905
msgid "FTP User"
msgstr "FTP Nutzername"
-#: ../../mod/admin.php:711
+#: ../../mod/admin.php:906
msgid "FTP Password"
msgstr "FTP Passwort"
-#: ../../mod/profile.php:15 ../../boot.php:841
+#: ../../mod/profile.php:15 ../../boot.php:845
msgid "Requested profile is not available."
msgstr "Profil nicht vorhanden."
-#: ../../mod/profile.php:111 ../../mod/display.php:66
+#: ../../mod/profile.php:111 ../../mod/display.php:67
msgid "Access to this profile has been restricted."
msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt."
@@ -3071,48 +3133,48 @@ msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt."
msgid "Tips for New Members"
msgstr "Tipps für neue Nutzer"
-#: ../../mod/ping.php:148
+#: ../../mod/ping.php:146
msgid "{0} wants to be your friend"
msgstr "{0} möchte mit dir in Kontakt treten"
-#: ../../mod/ping.php:153
+#: ../../mod/ping.php:151
msgid "{0} sent you a message"
msgstr "{0} hat dir eine Nachricht geschickt"
-#: ../../mod/ping.php:158
+#: ../../mod/ping.php:156
msgid "{0} requested registration"
msgstr "{0} möchte sich registrieren"
-#: ../../mod/ping.php:164
+#: ../../mod/ping.php:162
#, php-format
msgid "{0} commented %s's post"
msgstr "{0} kommentierte einen Beitrag von %s"
-#: ../../mod/ping.php:169
+#: ../../mod/ping.php:167
#, php-format
msgid "{0} liked %s's post"
msgstr "{0} mag %ss Beitrag"
-#: ../../mod/ping.php:174
+#: ../../mod/ping.php:172
#, php-format
msgid "{0} disliked %s's post"
msgstr "{0} mag %ss Beitrag nicht"
-#: ../../mod/ping.php:179
+#: ../../mod/ping.php:177
#, php-format
msgid "{0} is now friends with %s"
msgstr "{0} ist jetzt mit %s befreundet"
-#: ../../mod/ping.php:184
+#: ../../mod/ping.php:182
msgid "{0} posted"
msgstr "{0} hat etwas veröffentlicht"
-#: ../../mod/ping.php:189
+#: ../../mod/ping.php:187
#, php-format
msgid "{0} tagged %s's post with #%s"
msgstr "{0} hat %ss Beitrag mit dem Schlagwort #%s versehen"
-#: ../../mod/ping.php:195
+#: ../../mod/ping.php:193
msgid "{0} mentioned you in a post"
msgstr "{0} hat dich in einem Beitrag erwähnt"
@@ -3130,39 +3192,39 @@ msgid ""
"This site is not configured to allow communications with other networks."
msgstr "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann."
-#: ../../mod/follow.php:48 ../../mod/follow.php:58
+#: ../../mod/follow.php:48 ../../mod/follow.php:63
msgid "No compatible communication protocols or feeds were discovered."
msgstr "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden."
-#: ../../mod/follow.php:56
+#: ../../mod/follow.php:61
msgid "The profile address specified does not provide adequate information."
msgstr "Die angegebene Profiladresse liefert unzureichende Informationen."
-#: ../../mod/follow.php:60
+#: ../../mod/follow.php:65
msgid "An author or name was not found."
msgstr "Es wurde kein Autor oder Name gefunden."
-#: ../../mod/follow.php:62
+#: ../../mod/follow.php:67
msgid "No browser URL could be matched to this address."
msgstr "Zu dieser Adresse konnte keine passende Browser URL gefunden werden."
-#: ../../mod/follow.php:69
+#: ../../mod/follow.php:74
msgid ""
"The profile address specified belongs to a network which has been disabled "
"on this site."
msgstr "Die Adresse dieses Profils gehört zu einem Netzwerk mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde."
-#: ../../mod/follow.php:74
+#: ../../mod/follow.php:79
msgid ""
"Limited profile. This person will be unable to receive direct/personal "
"notifications from you."
msgstr "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können."
-#: ../../mod/follow.php:144
+#: ../../mod/follow.php:149
msgid "Unable to retrieve contact information."
msgstr "Konnte die Kontaktinformationen nicht empfangen."
-#: ../../mod/follow.php:190
+#: ../../mod/follow.php:195
msgid "following"
msgstr "folgen"
@@ -3174,7 +3236,7 @@ msgstr "Gemeinsame Freunde"
msgid "No friends in common."
msgstr "Keine gemeinsamen Freunde."
-#: ../../mod/display.php:109
+#: ../../mod/display.php:127
msgid "Item has been removed."
msgstr "Eintrag wurde entfernt."
@@ -3378,7 +3440,7 @@ msgid ""
"be visible to anybody using the internet."
msgstr "Dies ist dein <strong>öffentliches</strong> Profil.<br />Es <strong>könnte</strong> für jeden Nutzer des Internets sichtbar sein."
-#: ../../mod/profiles.php:426 ../../mod/directory.php:122
+#: ../../mod/profiles.php:426 ../../mod/directory.php:124
msgid "Age: "
msgstr "Alter: "
@@ -3386,27 +3448,27 @@ msgstr "Alter: "
msgid "Edit/Manage Profiles"
msgstr "Verwalte/Editiere Profile"
-#: ../../mod/profiles.php:462 ../../boot.php:942
+#: ../../mod/profiles.php:462 ../../boot.php:946
msgid "Change profile photo"
msgstr "Profilbild ändern"
-#: ../../mod/profiles.php:463 ../../boot.php:943
+#: ../../mod/profiles.php:463 ../../boot.php:947
msgid "Create New Profile"
msgstr "Neues Profil anlegen"
-#: ../../mod/profiles.php:473 ../../boot.php:953
+#: ../../mod/profiles.php:473 ../../boot.php:957
msgid "Profile Image"
msgstr "Profilbild"
-#: ../../mod/profiles.php:475 ../../boot.php:956
+#: ../../mod/profiles.php:475 ../../boot.php:960
msgid "visible to everybody"
msgstr "sichtbar für jeden"
-#: ../../mod/profiles.php:476 ../../boot.php:957
+#: ../../mod/profiles.php:476 ../../boot.php:961
msgid "Edit visibility"
msgstr "Sichtbarkeit bearbeiten"
-#: ../../mod/tagger.php:103 ../../include/conversation.php:116
+#: ../../mod/tagger.php:103 ../../include/conversation.php:138
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s hat %2$ss %3$s mit %4$s getaggt"
@@ -3460,31 +3522,31 @@ msgstr "Keine Vorschläge. Falls der Server frisch aufgesetzt wurde, versuche es
msgid "Ignore/Hide"
msgstr "Ignorieren/Verbergen"
-#: ../../mod/directory.php:49
+#: ../../mod/directory.php:51
msgid "Global Directory"
msgstr "Weltweites Verzeichnis"
-#: ../../mod/directory.php:55
+#: ../../mod/directory.php:57
msgid "Normal site view"
msgstr "Normale Seitenansicht"
-#: ../../mod/directory.php:57
+#: ../../mod/directory.php:59
msgid "Admin - View all site entries"
msgstr "Admin: Alle Einträge dieses Servers anzeigen"
-#: ../../mod/directory.php:63
+#: ../../mod/directory.php:65
msgid "Find on this site"
msgstr "Auf diesem Server suchen"
-#: ../../mod/directory.php:66
+#: ../../mod/directory.php:68
msgid "Site Directory"
msgstr "Verzeichnis"
-#: ../../mod/directory.php:125
+#: ../../mod/directory.php:127
msgid "Gender: "
msgstr "Geschlecht:"
-#: ../../mod/directory.php:151
+#: ../../mod/directory.php:153
msgid "No entries (some entries may be hidden)."
msgstr "Keine Einträge (einige Einträge könnten versteckt sein)."
@@ -3570,7 +3632,7 @@ msgid "Unable to set contact photo."
msgstr "Konnte das Bild des Kontakts nicht speichern."
#: ../../mod/dfrn_confirm.php:473 ../../include/diaspora.php:495
-#: ../../include/conversation.php:79
+#: ../../include/conversation.php:101
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr "%1$s ist nun mit %2$s befreundet"
@@ -3616,71 +3678,71 @@ msgstr "Die Updates für dein Profil konnten nicht gespeichert werden"
msgid "Connection accepted at %s"
msgstr "Auf %s wurde die Verbindung akzeptiert"
-#: ../../addon/facebook/facebook.php:337
+#: ../../addon/facebook/facebook.php:338
msgid "Facebook disabled"
msgstr "Facebook deaktiviert"
-#: ../../addon/facebook/facebook.php:342
+#: ../../addon/facebook/facebook.php:343
msgid "Updating contacts"
msgstr "Aktualisiere Kontakte"
-#: ../../addon/facebook/facebook.php:351
+#: ../../addon/facebook/facebook.php:352
msgid "Facebook API key is missing."
msgstr "Facebook-API-Schlüssel nicht gefunden"
-#: ../../addon/facebook/facebook.php:358
+#: ../../addon/facebook/facebook.php:359
msgid "Facebook Connect"
msgstr "Mit Facebook verbinden"
-#: ../../addon/facebook/facebook.php:364
+#: ../../addon/facebook/facebook.php:365
msgid "Install Facebook connector for this account."
msgstr "Facebook-Connector für diesen Account installieren."
-#: ../../addon/facebook/facebook.php:371
+#: ../../addon/facebook/facebook.php:372
msgid "Remove Facebook connector"
msgstr "Facebook-Connector entfernen"
-#: ../../addon/facebook/facebook.php:376
+#: ../../addon/facebook/facebook.php:377
msgid ""
"Re-authenticate [This is necessary whenever your Facebook password is "
"changed.]"
msgstr "Neu authentifizieren [Das ist immer dann nötig, wenn Du Dein Facebook-Passwort geändert hast.]"
-#: ../../addon/facebook/facebook.php:383
+#: ../../addon/facebook/facebook.php:384
msgid "Post to Facebook by default"
msgstr "Veröffentliche standardmäßig bei Facebook"
-#: ../../addon/facebook/facebook.php:387
+#: ../../addon/facebook/facebook.php:388
msgid "Link all your Facebook friends and conversations on this website"
msgstr "All meine Facebook-Kontakte und -Konversationen hier auf diese Website importieren"
-#: ../../addon/facebook/facebook.php:389
+#: ../../addon/facebook/facebook.php:390
msgid ""
"Facebook conversations consist of your <em>profile wall</em> and your friend"
" <em>stream</em>."
msgstr "Facebook-Konversationen sind alles, was auf deiner <em>Pinnwand</em> erscheint, und die Beiträge deiner Freunde <em>(Stream).</em>"
-#: ../../addon/facebook/facebook.php:390
+#: ../../addon/facebook/facebook.php:391
msgid "On this website, your Facebook friend stream is only visible to you."
msgstr "Hier auf dieser Webseite kannst nur du die Beiträge Deiner Facebook-Freunde (Stream) sehen."
-#: ../../addon/facebook/facebook.php:391
+#: ../../addon/facebook/facebook.php:392
msgid ""
"The following settings determine the privacy of your Facebook profile wall "
"on this website."
msgstr "Mit den folgenden Einstellungen kannst Du die Privatsphäre der Kopie Deiner Facebook-Pinnwand hier auf dieser Seite einstellen."
-#: ../../addon/facebook/facebook.php:395
+#: ../../addon/facebook/facebook.php:396
msgid ""
"On this website your Facebook profile wall conversations will only be "
"visible to you"
msgstr "Meine Facebook-Pinnwand hier auf dieser Webseite nur für mich sichtbar machen"
-#: ../../addon/facebook/facebook.php:400
+#: ../../addon/facebook/facebook.php:401
msgid "Do not import your Facebook profile wall conversations"
msgstr "Facebook-Pinnwand nicht importieren"
-#: ../../addon/facebook/facebook.php:402
+#: ../../addon/facebook/facebook.php:403
msgid ""
"If you choose to link conversations and leave both of these boxes unchecked,"
" your Facebook profile wall will be merged with your profile wall on this "
@@ -3688,43 +3750,43 @@ msgid ""
"who may see the conversations."
msgstr "Wenn Du Facebook-Konversationen importierst und diese beiden Häkchen nicht setzt, wird Deine Facebook-Pinnwand mit der Pinnwand hier auf dieser Webseite vereinigt. Die Privatsphäre-Einstellungen für Deine Pinnwand auf dieser Webseite geben dann an, wer die Konversationen sehen kann."
-#: ../../addon/facebook/facebook.php:407
+#: ../../addon/facebook/facebook.php:408
msgid "Comma separated applications to ignore"
msgstr "Komma separierte Liste von Anwendungen die ignoriert werden sollen"
-#: ../../addon/facebook/facebook.php:475
+#: ../../addon/facebook/facebook.php:476
#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr "Facebook"
-#: ../../addon/facebook/facebook.php:476
+#: ../../addon/facebook/facebook.php:477
msgid "Facebook Connector Settings"
msgstr "Facebook-Verbindungseinstellungen"
-#: ../../addon/facebook/facebook.php:490
+#: ../../addon/facebook/facebook.php:491
msgid "Post to Facebook"
msgstr "Bei Facebook veröffentlichen"
-#: ../../addon/facebook/facebook.php:581
+#: ../../addon/facebook/facebook.php:582
msgid ""
"Post to Facebook cancelled because of multi-network access permission "
"conflict."
msgstr "Beitrag wurde nicht bei Facebook veröffentlicht, da Konflikte bei den Multi-Netzwerk-Zugriffsrechten vorliegen."
-#: ../../addon/facebook/facebook.php:650
+#: ../../addon/facebook/facebook.php:651
msgid "Image: "
msgstr "Bild: "
-#: ../../addon/facebook/facebook.php:727
+#: ../../addon/facebook/facebook.php:728
msgid "View on Friendica"
msgstr "In Friendica betrachten"
-#: ../../addon/facebook/facebook.php:751
+#: ../../addon/facebook/facebook.php:752
msgid "Facebook post failed. Queued for retry."
msgstr "Veröffentlichung bei Facebook gescheitert. Wir versuchen es später erneut."
-#: ../../addon/facebook/facebook.php:876 ../../addon/facebook/facebook.php:885
-#: ../../include/bb2diaspora.php:113
+#: ../../addon/facebook/facebook.php:877 ../../addon/facebook/facebook.php:886
+#: ../../include/bb2diaspora.php:132
msgid "link"
msgstr "Verweis"
@@ -3809,7 +3871,7 @@ msgstr "%s – Zum Öffnen/Schließen klicken"
#: ../../addon/communityhome/communityhome.php:28
#: ../../addon/communityhome/communityhome.php:34 ../../include/nav.php:62
-#: ../../boot.php:706
+#: ../../boot.php:710
msgid "Login"
msgstr "Anmeldung"
@@ -3834,7 +3896,7 @@ msgid "Last likes"
msgstr "Zuletzt gemocht"
#: ../../addon/communityhome/communityhome.php:155
-#: ../../include/conversation.php:23 ../../include/conversation.php:96
+#: ../../include/conversation.php:45 ../../include/conversation.php:118
msgid "event"
msgstr "Veranstaltung"
@@ -3990,19 +4052,19 @@ msgstr "Ziehe die Dateien hierher die du hochladen willst"
msgid "Failed"
msgstr "Fehlgeschlagen"
-#: ../../addon/js_upload/js_upload.php:294
+#: ../../addon/js_upload/js_upload.php:297
msgid "No files were uploaded."
msgstr "Keine Dateien hochgeladen."
-#: ../../addon/js_upload/js_upload.php:300
+#: ../../addon/js_upload/js_upload.php:303
msgid "Uploaded file is empty"
msgstr "Hochgeladene Datei ist leer"
-#: ../../addon/js_upload/js_upload.php:323
+#: ../../addon/js_upload/js_upload.php:326
msgid "File has an invalid extension, it should be one of "
msgstr "Die Dateierweiterung ist nicht erlaubt, sie muss eine der folgenden sein "
-#: ../../addon/js_upload/js_upload.php:334
+#: ../../addon/js_upload/js_upload.php:337
msgid "Upload was cancelled, or server error encountered"
msgstr "Upload abgebrochen oder Serverfehler aufgetreten"
@@ -4086,6 +4148,48 @@ msgstr "Autor blockieren"
msgid "blockem settings updated"
msgstr "blockem Einstellungen aktualisiert"
+#: ../../addon/qcomment/qcomment.php:51
+msgid ":-)"
+msgstr ":-)"
+
+#: ../../addon/qcomment/qcomment.php:51
+msgid ":-("
+msgstr ":-("
+
+#: ../../addon/qcomment/qcomment.php:51
+msgid "lol"
+msgstr "lol"
+
+#: ../../addon/qcomment/qcomment.php:54
+msgid "Quick Comment Settings"
+msgstr "Schnell-Kommentar Einstellungen"
+
+#: ../../addon/qcomment/qcomment.php:56
+msgid "Enter quick comments, one per line"
+msgstr "Gibt ein Schnell-Kommentar pro Zeile ein"
+
+#: ../../addon/qcomment/qcomment.php:74
+msgid "Quick Comment settings saved."
+msgstr "Schnell-Kommentare Einstellungen gespeichert"
+
+#: ../../addon/openstreetmap/openstreetmap.php:71
+msgid "Tile Server URL"
+msgstr "Tile Server URL"
+
+#: ../../addon/openstreetmap/openstreetmap.php:71
+msgid ""
+"A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" "
+"target=\"_blank\">public tile servers</a>"
+msgstr "Eine Liste <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">öffentlicher Tile Server</a>"
+
+#: ../../addon/openstreetmap/openstreetmap.php:72
+msgid "Default zoom"
+msgstr "Standard Zoom"
+
+#: ../../addon/openstreetmap/openstreetmap.php:72
+msgid "The default zoom level. (1:world, 18:highest)"
+msgstr "Standard Zoo,level (1: Welt; 18: höchstes)"
+
#: ../../addon/editplain/editplain.php:46
msgid "Editplain settings updated."
msgstr "Editplain Einstellungen aktualisiert"
@@ -4110,44 +4214,44 @@ msgstr "pageheader-Einstellungen gespeichert."
msgid "View Source"
msgstr "Quelle ansehen"
-#: ../../addon/statusnet/statusnet.php:140
+#: ../../addon/statusnet/statusnet.php:134
msgid "Post to StatusNet"
msgstr "Bei StatusNet veröffentlichen"
-#: ../../addon/statusnet/statusnet.php:182
+#: ../../addon/statusnet/statusnet.php:175
msgid ""
"Please contact your site administrator.<br />The provided API URL is not "
"valid."
msgstr "Bitte kontaktiere den Administrator des Servers.<br />Die angegebene API-URL ist nicht gültig."
-#: ../../addon/statusnet/statusnet.php:210
+#: ../../addon/statusnet/statusnet.php:203
msgid "We could not contact the StatusNet API with the Path you entered."
msgstr "Die StatusNet-API konnte mit dem angegebenen Pfad nicht erreicht werden."
-#: ../../addon/statusnet/statusnet.php:236
+#: ../../addon/statusnet/statusnet.php:229
msgid "StatusNet settings updated."
msgstr "StatusNet Einstellungen aktualisiert."
-#: ../../addon/statusnet/statusnet.php:259
+#: ../../addon/statusnet/statusnet.php:252
msgid "StatusNet Posting Settings"
msgstr "StatusNet-Beitragseinstellungen"
-#: ../../addon/statusnet/statusnet.php:273
+#: ../../addon/statusnet/statusnet.php:266
msgid "Globally Available StatusNet OAuthKeys"
msgstr "Verfügbare OAuth Schlüssel für StatusNet"
-#: ../../addon/statusnet/statusnet.php:274
+#: ../../addon/statusnet/statusnet.php:267
msgid ""
"There are preconfigured OAuth key pairs for some StatusNet servers "
"available. If you are useing one of them, please use these credentials. If "
"not feel free to connect to any other StatusNet instance (see below)."
msgstr "Für einige StatusNet Server sind OAuth Schlüsselpaare verfügbar. Solltest du einen dieser Server benutzen, dann verwende doch bitte diese Schlüssel. Falls nicht kannst du weiter unten deine eigenen OAuth Schlüssel eintragen."
-#: ../../addon/statusnet/statusnet.php:282
+#: ../../addon/statusnet/statusnet.php:275
msgid "Provide your own OAuth Credentials"
msgstr "Eigene OAuth Schlüssel eintragen"
-#: ../../addon/statusnet/statusnet.php:283
+#: ../../addon/statusnet/statusnet.php:276
msgid ""
"No consumer key pair for StatusNet found. Register your Friendica Account as"
" an desktop client on your StatusNet account, copy the consumer key pair "
@@ -4156,19 +4260,19 @@ msgid ""
"Friendica installation at your favorited StatusNet installation."
msgstr "Kein Consumer-Schlüsselpaar für StatusNet gefunden. Registriere deinen Friendica-Account als Desktop-Client, kopiere das Consumer-Schlüsselpaar hierher und gib die API-URL ein.<br />Bevor du dein eigenes Consumer-Schlüsselpaar registrierst, frage den Administrator dieses Friendica-Servers, ob schon ein Schlüsselpaar für diesen Friendica-Server auf diesem StatusNet-Server existiert."
-#: ../../addon/statusnet/statusnet.php:285
+#: ../../addon/statusnet/statusnet.php:278
msgid "OAuth Consumer Key"
msgstr "OAuth Consumer Key"
-#: ../../addon/statusnet/statusnet.php:288
+#: ../../addon/statusnet/statusnet.php:281
msgid "OAuth Consumer Secret"
msgstr "OAuth Consumer Secret"
-#: ../../addon/statusnet/statusnet.php:291
+#: ../../addon/statusnet/statusnet.php:284
msgid "Base API Path (remember the trailing /)"
msgstr "Basis-URL der StatusNet-API (vergiss den abschließenden / nicht)"
-#: ../../addon/statusnet/statusnet.php:312
+#: ../../addon/statusnet/statusnet.php:305
msgid ""
"To connect to your StatusNet account click the button below to get a "
"security code from StatusNet which you have to copy into the input box below"
@@ -4176,50 +4280,58 @@ msgid ""
" to StatusNet."
msgstr "Um deinen Account mit einem StatusNet-Account zu verknüpfen, klicke den Button an, um einen Sicherheitscode von StatusNet zu erhalten, und kopiere diesen in das Eingabefeld weiter unten. Es werden ausschließlich deine <strong>öffentlichen</strong> Nachrichten an StatusNet gesendet."
-#: ../../addon/statusnet/statusnet.php:313
+#: ../../addon/statusnet/statusnet.php:306
msgid "Log in with StatusNet"
msgstr "Bei StatusNet anmelden"
-#: ../../addon/statusnet/statusnet.php:315
+#: ../../addon/statusnet/statusnet.php:308
msgid "Copy the security code from StatusNet here"
msgstr "Kopiere den Sicherheitscode von StatusNet hier hin"
-#: ../../addon/statusnet/statusnet.php:321
+#: ../../addon/statusnet/statusnet.php:314
msgid "Cancel Connection Process"
msgstr "Verbindungsprozess abbrechen"
-#: ../../addon/statusnet/statusnet.php:323
+#: ../../addon/statusnet/statusnet.php:316
msgid "Current StatusNet API is"
msgstr "Derzeitige StatusNet-API-URL lautet"
-#: ../../addon/statusnet/statusnet.php:324
+#: ../../addon/statusnet/statusnet.php:317
msgid "Cancel StatusNet Connection"
msgstr "Verbindung zum StatusNet Server abbrechen"
-#: ../../addon/statusnet/statusnet.php:335 ../../addon/twitter/twitter.php:189
+#: ../../addon/statusnet/statusnet.php:328 ../../addon/twitter/twitter.php:184
msgid "Currently connected to: "
msgstr "Momentan verbunden mit: "
-#: ../../addon/statusnet/statusnet.php:336
+#: ../../addon/statusnet/statusnet.php:329
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated StatusNet account. You can choose to do so by default (here) or "
"for every posting separately in the posting options when writing the entry."
msgstr "Wenn aktiviert können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen StatusNet Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."
-#: ../../addon/statusnet/statusnet.php:338
+#: ../../addon/statusnet/statusnet.php:331
+msgid ""
+"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
+"details from unknown viewers?</em>) the link potentially included in public "
+"postings relayed to StatusNet will lead the visitor to a blank page "
+"informing the visitor that the access to your profile has been restricted."
+msgstr "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link der eventuell an an deinen StatusNet Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde."
+
+#: ../../addon/statusnet/statusnet.php:334
msgid "Allow posting to StatusNet"
msgstr "Veröffentlichung bei StatusNet erlauben"
-#: ../../addon/statusnet/statusnet.php:341
+#: ../../addon/statusnet/statusnet.php:337
msgid "Send public postings to StatusNet by default"
msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei StatusNet"
-#: ../../addon/statusnet/statusnet.php:346 ../../addon/twitter/twitter.php:200
+#: ../../addon/statusnet/statusnet.php:342 ../../addon/twitter/twitter.php:198
msgid "Clear OAuth configuration"
msgstr "OAuth-Konfiguration löschen"
-#: ../../addon/statusnet/statusnet.php:487
+#: ../../addon/statusnet/statusnet.php:524
msgid "API URL"
msgstr "API-URL"
@@ -4287,13 +4399,33 @@ msgstr "WordPress-API-URL"
msgid "Post to WordPress by default"
msgstr "Standardmäßig auf WordPress veröffentlichen"
-#: ../../addon/piwik/piwik.php:70
+#: ../../addon/showmore/showmore.php:38
+msgid "\"Show more\" Settings"
+msgstr "\"Mehr zeigen\" Einstellungen"
+
+#: ../../addon/showmore/showmore.php:41
+msgid "Enable Show More"
+msgstr "Aktiviere \"Mehr zeigen\""
+
+#: ../../addon/showmore/showmore.php:44
+msgid "Cutting posts after how much characters"
+msgstr "Begrenze Beiträge nach der Anzahl der Buchstaben"
+
+#: ../../addon/showmore/showmore.php:64
+msgid "Show More Settings saved."
+msgstr "\"Mehr zeigen\" Einstellungen gesichert."
+
+#: ../../addon/showmore/showmore.php:86
+msgid "Show More"
+msgstr "\"Mehr zeigen\""
+
+#: ../../addon/piwik/piwik.php:79
msgid ""
"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
"analytics tool."
msgstr "Diese Website benutzt <a href='http://www.piwik.org'>Piwik</a>, eine Open Source-Software zur statistischen Auswertung der Besucherzugriffe."
-#: ../../addon/piwik/piwik.php:73
+#: ../../addon/piwik/piwik.php:82
#, php-format
msgid ""
"If you do not want that your visits are logged this way you <a href='%s'>can"
@@ -4301,37 +4433,47 @@ msgid ""
"(opt-out)."
msgstr "Wenn Du nicht willst, dass Deine Besuche auf diese Weise gespeichert werden, kannst Du <a href='%s'>ein Cookie setzen</a>. Dann wird Piwik Dich auf dieser Website nicht mehr verfolgen (opt-out)."
-#: ../../addon/piwik/piwik.php:82
+#: ../../addon/piwik/piwik.php:90
msgid "Piwik Base URL"
msgstr "Piwik Basis URL"
-#: ../../addon/piwik/piwik.php:83
+#: ../../addon/piwik/piwik.php:90
+msgid ""
+"Absolute path to your Piwik installation. (without protocol (http/s), with "
+"trailing slash)"
+msgstr "Absoluter Pfad zu deiner Piwik Installation (ohen Protokoll (http/s) und mit abschließendem Schrägstrich)"
+
+#: ../../addon/piwik/piwik.php:91
msgid "Site ID"
msgstr "Seiten ID"
-#: ../../addon/piwik/piwik.php:84
+#: ../../addon/piwik/piwik.php:92
msgid "Show opt-out cookie link?"
msgstr "Link zum Setzen des Opt-Out Cookies anzeigen?"
-#: ../../addon/twitter/twitter.php:78
+#: ../../addon/piwik/piwik.php:93
+msgid "Asynchronous tracking"
+msgstr "Asynchroned Tracken"
+
+#: ../../addon/twitter/twitter.php:73
msgid "Post to Twitter"
msgstr "Bei Twitter veröffentlichen"
-#: ../../addon/twitter/twitter.php:124
+#: ../../addon/twitter/twitter.php:119
msgid "Twitter settings updated."
msgstr "Twitter Einstellungen aktualisiert."
-#: ../../addon/twitter/twitter.php:146
+#: ../../addon/twitter/twitter.php:141
msgid "Twitter Posting Settings"
msgstr "Twitter-Beitragseinstellungen"
-#: ../../addon/twitter/twitter.php:153
+#: ../../addon/twitter/twitter.php:148
msgid ""
"No consumer key pair for Twitter found. Please contact your site "
"administrator."
msgstr "Kein Consumer-Schlüsselpaar für Twitter gefunden. Bitte wende dich an den Administrator der Seite."
-#: ../../addon/twitter/twitter.php:172
+#: ../../addon/twitter/twitter.php:167
msgid ""
"At this Friendica instance the Twitter plugin was enabled but you have not "
"yet connected your account to your Twitter account. To do so click the "
@@ -4340,34 +4482,42 @@ msgid ""
" be posted to Twitter."
msgstr "Auf diesem Friendica-Server wurde das Twitter-Plugin aktiviert, aber du hast deinen Account noch nicht mit deinem Twitter-Account verbunden. Klicke dazu die Schaltfläche unten. Du erhältst dann eine PIN von Twitter, die du in das Eingabefeld unten kopieren musst. Nicht vergessen, den Senden-Knopf zu drücken! Nur <strong>öffentliche</strong> Beiträge werden bei Twitter veröffentlicht."
-#: ../../addon/twitter/twitter.php:173
+#: ../../addon/twitter/twitter.php:168
msgid "Log in with Twitter"
msgstr "bei Twitter anmelden"
-#: ../../addon/twitter/twitter.php:175
+#: ../../addon/twitter/twitter.php:170
msgid "Copy the PIN from Twitter here"
msgstr "Kopiere die Twitter-PIN hier her"
-#: ../../addon/twitter/twitter.php:190
+#: ../../addon/twitter/twitter.php:185
msgid ""
"If enabled all your <strong>public</strong> postings can be posted to the "
"associated Twitter account. You can choose to do so by default (here) or for"
" every posting separately in the posting options when writing the entry."
msgstr "Wenn aktiviert können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen Twitter Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen."
-#: ../../addon/twitter/twitter.php:192
+#: ../../addon/twitter/twitter.php:187
+msgid ""
+"<strong>Note</strong>: Due your privacy settings (<em>Hide your profile "
+"details from unknown viewers?</em>) the link potentially included in public "
+"postings relayed to Twitter will lead the visitor to a blank page informing "
+"the visitor that the access to your profile has been restricted."
+msgstr "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link der eventuell an an deinen Twitter Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde."
+
+#: ../../addon/twitter/twitter.php:190
msgid "Allow posting to Twitter"
msgstr "Veröffentlichung bei Twitter erlauben"
-#: ../../addon/twitter/twitter.php:195
+#: ../../addon/twitter/twitter.php:193
msgid "Send public postings to Twitter by default"
msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei Twitter"
-#: ../../addon/twitter/twitter.php:317
+#: ../../addon/twitter/twitter.php:357
msgid "Consumer key"
msgstr "Consumer Key"
-#: ../../addon/twitter/twitter.php:318
+#: ../../addon/twitter/twitter.php:358
msgid "Consumer secret"
msgstr "Consumer Secret"
@@ -4395,7 +4545,7 @@ msgstr "Posterous-Passwort"
msgid "Post to Posterous by default"
msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous"
-#: ../../include/profile_advanced.php:17 ../../boot.php:978
+#: ../../include/profile_advanced.php:17 ../../boot.php:982
msgid "Gender:"
msgstr "Geschlecht:"
@@ -4408,7 +4558,7 @@ msgid "j F"
msgstr "j F"
#: ../../include/profile_advanced.php:30 ../../include/datetime.php:438
-#: ../../include/items.php:1318
+#: ../../include/items.php:1349
msgid "Birthday:"
msgstr "Geburtstag:"
@@ -4416,11 +4566,11 @@ msgstr "Geburtstag:"
msgid "Age:"
msgstr "Alter:"
-#: ../../include/profile_advanced.php:37 ../../boot.php:981
+#: ../../include/profile_advanced.php:37 ../../boot.php:985
msgid "Status:"
msgstr "Status:"
-#: ../../include/profile_advanced.php:45 ../../boot.php:983
+#: ../../include/profile_advanced.php:45 ../../boot.php:987
msgid "Homepage:"
msgstr "Homepage:"
@@ -4756,20 +4906,20 @@ msgstr "Ist mir nicht wichtig"
msgid "Ask me"
msgstr "Frag mich"
-#: ../../include/event.php:17 ../../include/bb2diaspora.php:255
+#: ../../include/event.php:17 ../../include/bb2diaspora.php:274
msgid "Starts:"
msgstr "Beginnt:"
-#: ../../include/event.php:27 ../../include/bb2diaspora.php:263
+#: ../../include/event.php:27 ../../include/bb2diaspora.php:282
msgid "Finishes:"
msgstr "Endet:"
-#: ../../include/delivery.php:416 ../../include/notifier.php:629
+#: ../../include/delivery.php:424 ../../include/notifier.php:637
msgid "(no subject)"
msgstr "(kein Betreff)"
-#: ../../include/delivery.php:423 ../../include/enotify.php:16
-#: ../../include/notifier.php:636
+#: ../../include/delivery.php:431 ../../include/enotify.php:16
+#: ../../include/notifier.php:644
msgid "noreply"
msgstr "noreply"
@@ -4804,91 +4954,91 @@ msgstr[1] "%d Kontakte"
msgid "Search"
msgstr "Suche"
-#: ../../include/text.php:735
+#: ../../include/text.php:813
msgid "Monday"
msgstr "Montag"
-#: ../../include/text.php:735
+#: ../../include/text.php:813
msgid "Tuesday"
msgstr "Dienstag"
-#: ../../include/text.php:735
+#: ../../include/text.php:813
msgid "Wednesday"
msgstr "Mittwoch"
-#: ../../include/text.php:735
+#: ../../include/text.php:813
msgid "Thursday"
msgstr "Donnerstag"
-#: ../../include/text.php:735
+#: ../../include/text.php:813
msgid "Friday"
msgstr "Freitag"
-#: ../../include/text.php:735
+#: ../../include/text.php:813
msgid "Saturday"
msgstr "Samstag"
-#: ../../include/text.php:735
+#: ../../include/text.php:813
msgid "Sunday"
msgstr "Sonntag"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "January"
msgstr "Januar"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "February"
msgstr "Februar"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "March"
msgstr "März"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "April"
msgstr "April"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "May"
msgstr "Mai"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "June"
msgstr "Juni"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "July"
msgstr "Juli"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "August"
msgstr "August"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "September"
msgstr "September"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "October"
msgstr "Oktober"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "November"
msgstr "November"
-#: ../../include/text.php:739
+#: ../../include/text.php:817
msgid "December"
msgstr "Dezember"
-#: ../../include/text.php:809
+#: ../../include/text.php:887
msgid "bytes"
msgstr "Byte"
-#: ../../include/text.php:901
+#: ../../include/text.php:982
msgid "Select an alternate language"
msgstr "Alternative Sprache auswählen"
-#: ../../include/text.php:913
+#: ../../include/text.php:994
msgid "default"
msgstr "standard"
@@ -4896,11 +5046,11 @@ msgstr "standard"
msgid "Sharing notification from Diaspora network"
msgstr "Freigabe-Benachrichtigung von Diaspora"
-#: ../../include/diaspora.php:1895
+#: ../../include/diaspora.php:1911
msgid "Attachments:"
msgstr "Anhänge:"
-#: ../../include/diaspora.php:2078
+#: ../../include/diaspora.php:2094
#, php-format
msgid "[Relayed] Comment authored by %s from network %s"
msgstr "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk"
@@ -4940,7 +5090,7 @@ msgstr "Gruppe bearbeiten"
msgid "Create a new group"
msgstr "Neue Gruppe erstellen"
-#: ../../include/nav.php:44 ../../boot.php:705
+#: ../../include/nav.php:44 ../../boot.php:709
msgid "Logout"
msgstr "Abmelden"
@@ -4948,7 +5098,7 @@ msgstr "Abmelden"
msgid "End this session"
msgstr "Diese Sitzung beenden"
-#: ../../include/nav.php:47 ../../boot.php:1327
+#: ../../include/nav.php:47 ../../boot.php:1331
msgid "Status"
msgstr "Status"
@@ -4960,7 +5110,7 @@ msgstr "Deine Beiträge und Unterhaltungen"
msgid "Your profile page"
msgstr "Deine Profilseite"
-#: ../../include/nav.php:49 ../../boot.php:1337
+#: ../../include/nav.php:49 ../../boot.php:1341
msgid "Photos"
msgstr "Bilder"
@@ -5032,39 +5182,43 @@ msgstr "Kontaktanfragen"
msgid "See all notifications"
msgstr "Alle Benachrichtigungen anzeigen"
-#: ../../include/nav.php:123
+#: ../../include/nav.php:120
+msgid "Mark all system notifications seen"
+msgstr "Markiere alle System Benachrichtigungen als gelesen"
+
+#: ../../include/nav.php:124
msgid "Private mail"
msgstr "Private Email"
-#: ../../include/nav.php:126
+#: ../../include/nav.php:127
msgid "Manage"
msgstr "Verwalten"
-#: ../../include/nav.php:126
+#: ../../include/nav.php:127
msgid "Manage other pages"
msgstr "Andere Seiten verwalten"
-#: ../../include/nav.php:130 ../../boot.php:936
+#: ../../include/nav.php:131 ../../boot.php:940
msgid "Profiles"
msgstr "Profile"
-#: ../../include/nav.php:130 ../../boot.php:936
+#: ../../include/nav.php:131 ../../boot.php:940
msgid "Manage/edit profiles"
msgstr "Profile verwalten/editieren"
-#: ../../include/nav.php:131
+#: ../../include/nav.php:132
msgid "Manage/edit friends and contacts"
msgstr "Freunde und Kontakte verwalten/editieren"
-#: ../../include/nav.php:138
+#: ../../include/nav.php:139
msgid "Admin"
msgstr "Administration"
-#: ../../include/nav.php:138
+#: ../../include/nav.php:139
msgid "Site setup and configuration"
msgstr "Einstellungen der Seite und Konfiguration"
-#: ../../include/nav.php:161
+#: ../../include/nav.php:162
msgid "Nothing new here"
msgstr "Keine Neuigkeiten."
@@ -5196,11 +5350,15 @@ msgstr "Sekunden"
msgid "%1$d %2$s ago"
msgstr "%1$d %2$s her"
-#: ../../include/poller.php:459
+#: ../../include/poller.php:474
msgid "From: "
msgstr "Von: "
-#: ../../include/bbcode.php:166 ../../include/bbcode.php:225
+#: ../../include/bbcode.php:202
+msgid "$1 wrote:"
+msgstr "$1 geschrieben:"
+
+#: ../../include/bbcode.php:216 ../../include/bbcode.php:282
msgid "Image/photo"
msgstr "Bild/Foto"
@@ -5248,6 +5406,15 @@ msgstr "Neue Nachricht auf %s empfangen"
msgid "%s sent you a new private message at %s."
msgstr "%s hat dir eine neue private Nachricht auf %s geschrieben."
+#: ../../include/enotify.php:31
+#, php-format
+msgid "%s sent you %s."
+msgstr "%s hat Dir geschickt %s"
+
+#: ../../include/enotify.php:31
+msgid "a private message"
+msgstr "eine private Nachricht"
+
#: ../../include/enotify.php:32
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
@@ -5263,84 +5430,138 @@ msgstr "%s kommentierte einen Beitrag auf %s"
msgid "%s commented on an item/conversation you have been following."
msgstr "%s hat einen Beitrag kommentiert, dem du folgst."
-#: ../../include/enotify.php:42 ../../include/enotify.php:51
-#: ../../include/enotify.php:60 ../../include/enotify.php:69
+#: ../../include/enotify.php:42
+#, php-format
+msgid "%s commented in %s."
+msgstr "%s wurde kommentiert in %s"
+
+#: ../../include/enotify.php:42
+msgid "a watched conversation"
+msgstr "eine beobachtete Unterhaltung"
+
+#: ../../include/enotify.php:44 ../../include/enotify.php:54
+#: ../../include/enotify.php:64 ../../include/enotify.php:74
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren."
-#: ../../include/enotify.php:49
+#: ../../include/enotify.php:51
#, php-format
msgid "%s posted to your profile wall at %s"
msgstr "%s hat auf deine Pinnwand bei %s gepostet"
-#: ../../include/enotify.php:58
+#: ../../include/enotify.php:52
+#, php-format
+msgid "%s posted to %s"
+msgstr "%s schrieb an %s"
+
+#: ../../include/enotify.php:52
+msgid "your profile wall."
+msgstr "Deine Pinnwand"
+
+#: ../../include/enotify.php:61
#, php-format
msgid "%s tagged you at %s"
msgstr "%s hat dich auf %s erwähnt"
-#: ../../include/enotify.php:67
+#: ../../include/enotify.php:62
+#, php-format
+msgid "%s %s."
+msgstr "%s %s."
+
+#: ../../include/enotify.php:62
+msgid "tagged you"
+msgstr "erwähnte Dich"
+
+#: ../../include/enotify.php:71
#, php-format
msgid "%s tagged your post at %s"
msgstr "%s hat deinen Beitrag auf %s getaggt"
-#: ../../include/enotify.php:76
+#: ../../include/enotify.php:72
+#, php-format
+msgid "%s tagged %s"
+msgstr "%s markierte %s"
+
+#: ../../include/enotify.php:72
+msgid "your post"
+msgstr "Dein Beitrag"
+
+#: ../../include/enotify.php:81
#, php-format
msgid "Introduction received at %s"
msgstr "Kontaktanfrage auf %s erhalten"
-#: ../../include/enotify.php:77
+#: ../../include/enotify.php:82
#, php-format
msgid "You've received an introduction from '%s' at %s"
msgstr "Du hast eine Kontaktanfrage von '%s' auf %s erhalten"
-#: ../../include/enotify.php:78 ../../include/enotify.php:91
+#: ../../include/enotify.php:83
+#, php-format
+msgid "You've received %s from %s."
+msgstr "Du hast %s von %s erhalten."
+
+#: ../../include/enotify.php:83
+msgid "an introduction"
+msgstr "eine Einführung"
+
+#: ../../include/enotify.php:84 ../../include/enotify.php:101
#, php-format
msgid "You may visit their profile at %s"
msgstr "Hier kannst du das Profil betrachten: %s"
-#: ../../include/enotify.php:80
+#: ../../include/enotify.php:86
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen."
-#: ../../include/enotify.php:87
+#: ../../include/enotify.php:93
#, php-format
msgid "Friend suggestion received at %s"
msgstr "Kontaktvorschlag empfangen auf %s"
-#: ../../include/enotify.php:88
+#: ../../include/enotify.php:94
#, php-format
msgid "You've received a friend suggestion from '%s' at %s"
msgstr "Du hast von '%s' einen Kontaktvorschlag erhalten auf %s"
-#: ../../include/enotify.php:89
+#: ../../include/enotify.php:95
+#, php-format
+msgid "You've received %s for %s from %s."
+msgstr "Du hast %s für %s von %s erhalten."
+
+#: ../../include/enotify.php:96
+msgid "a friend suggestion"
+msgstr "ein Freunde Vorschlag"
+
+#: ../../include/enotify.php:99
msgid "Name:"
msgstr "Name:"
-#: ../../include/enotify.php:90
+#: ../../include/enotify.php:100
msgid "Photo:"
msgstr "Foto:"
-#: ../../include/enotify.php:93
+#: ../../include/enotify.php:103
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen."
-#: ../../include/items.php:2450
+#: ../../include/items.php:2511
msgid "A new person is sharing with you at "
msgstr "Eine neue Person teilt mit dir auf "
-#: ../../include/items.php:2450
+#: ../../include/items.php:2511
msgid "You have a new follower at "
msgstr "Du hast einen neuen Kontakt auf "
-#: ../../include/bb2diaspora.php:64
+#: ../../include/bb2diaspora.php:83
msgid "view full size"
msgstr "Volle Größe anzeigen"
-#: ../../include/bb2diaspora.php:113 ../../include/bb2diaspora.php:123
-#: ../../include/bb2diaspora.php:124
+#: ../../include/bb2diaspora.php:132 ../../include/bb2diaspora.php:142
+#: ../../include/bb2diaspora.php:143
msgid "image/photo"
msgstr "Bild/Foto"
@@ -5356,282 +5577,282 @@ msgstr "Bitte lade ein Profilbild hoch."
msgid "Welcome back "
msgstr "Willkommen zurück "
-#: ../../include/Contact.php:131 ../../include/conversation.php:744
+#: ../../include/Contact.php:131 ../../include/conversation.php:769
msgid "View status"
msgstr "Status anzeigen"
-#: ../../include/Contact.php:132 ../../include/conversation.php:745
+#: ../../include/Contact.php:132 ../../include/conversation.php:770
msgid "View profile"
msgstr "Profil anzeigen"
-#: ../../include/Contact.php:133 ../../include/conversation.php:746
+#: ../../include/Contact.php:133 ../../include/conversation.php:771
msgid "View photos"
msgstr "Fotos ansehen"
#: ../../include/Contact.php:134 ../../include/Contact.php:147
-#: ../../include/conversation.php:747
+#: ../../include/conversation.php:772
msgid "View recent"
msgstr "Neueste anzeigen"
#: ../../include/Contact.php:136 ../../include/Contact.php:147
-#: ../../include/conversation.php:749
+#: ../../include/conversation.php:774
msgid "Send PM"
msgstr "Private Nachricht senden"
-#: ../../include/conversation.php:141
+#: ../../include/conversation.php:163
msgid "post/item"
msgstr "Nachricht/Beitrag"
-#: ../../include/conversation.php:142
+#: ../../include/conversation.php:164
#, php-format
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:279 ../../include/conversation.php:535
+#: ../../include/conversation.php:301 ../../include/conversation.php:562
msgid "Select"
msgstr "Auswählen"
-#: ../../include/conversation.php:294 ../../include/conversation.php:623
-#: ../../include/conversation.php:624
+#: ../../include/conversation.php:316 ../../include/conversation.php:648
+#: ../../include/conversation.php:649
#, php-format
msgid "View %s's profile @ %s"
msgstr "Das Profil von %s auf %s betrachten."
-#: ../../include/conversation.php:303 ../../include/conversation.php:635
+#: ../../include/conversation.php:325 ../../include/conversation.php:660
#, php-format
msgid "%s from %s"
msgstr "%s von %s"
-#: ../../include/conversation.php:319
+#: ../../include/conversation.php:341
msgid "View in context"
msgstr "Im Zusammenhang betrachten"
-#: ../../include/conversation.php:434
+#: ../../include/conversation.php:456
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d Kommentar"
msgstr[1] "%d Kommentare"
-#: ../../include/conversation.php:437 ../../boot.php:444
+#: ../../include/conversation.php:459 ../../boot.php:448
msgid "show more"
msgstr "mehr anzeigen"
-#: ../../include/conversation.php:497
+#: ../../include/conversation.php:519
msgid "like"
msgstr "mag ich"
-#: ../../include/conversation.php:498
+#: ../../include/conversation.php:520
msgid "dislike"
msgstr "mag ich nicht"
-#: ../../include/conversation.php:500
+#: ../../include/conversation.php:522
msgid "Share this"
msgstr "Teilen"
-#: ../../include/conversation.php:500
+#: ../../include/conversation.php:522
msgid "share"
msgstr "Teilen"
-#: ../../include/conversation.php:545
+#: ../../include/conversation.php:572
msgid "add star"
msgstr "markieren"
-#: ../../include/conversation.php:546
+#: ../../include/conversation.php:573
msgid "remove star"
msgstr "Markierung entfernen"
-#: ../../include/conversation.php:547
+#: ../../include/conversation.php:574
msgid "toggle star status"
msgstr "Markierung umschalten"
-#: ../../include/conversation.php:550
+#: ../../include/conversation.php:577
msgid "starred"
msgstr "markiert"
-#: ../../include/conversation.php:551
+#: ../../include/conversation.php:578
msgid "add tag"
msgstr "Tag hinzufügen"
-#: ../../include/conversation.php:625
+#: ../../include/conversation.php:650
msgid "to"
msgstr "to"
-#: ../../include/conversation.php:626
+#: ../../include/conversation.php:651
msgid "Wall-to-Wall"
msgstr "Wall-to-Wall"
-#: ../../include/conversation.php:627
+#: ../../include/conversation.php:652
msgid "via Wall-To-Wall:"
msgstr "via Wall-To-Wall:"
-#: ../../include/conversation.php:669
+#: ../../include/conversation.php:694
msgid "Delete Selected Items"
msgstr "Lösche die markierten Beiträge"
-#: ../../include/conversation.php:801
+#: ../../include/conversation.php:826
#, php-format
msgid "%s likes this."
msgstr "%s mag das."
-#: ../../include/conversation.php:801
+#: ../../include/conversation.php:826
#, php-format
msgid "%s doesn't like this."
msgstr "%s mag das nicht."
-#: ../../include/conversation.php:805
+#: ../../include/conversation.php:830
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgstr "<span %1$s>%2$d Leute</span> mögen das."
-#: ../../include/conversation.php:807
+#: ../../include/conversation.php:832
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgstr "<span %1$s>%2$d Leute</span> mögen das nicht."
-#: ../../include/conversation.php:813
+#: ../../include/conversation.php:838
msgid "and"
msgstr "und"
-#: ../../include/conversation.php:816
+#: ../../include/conversation.php:841
#, php-format
msgid ", and %d other people"
msgstr " und %d andere"
-#: ../../include/conversation.php:817
+#: ../../include/conversation.php:842
#, php-format
msgid "%s like this."
msgstr "%s mögen das."
-#: ../../include/conversation.php:817
+#: ../../include/conversation.php:842
#, php-format
msgid "%s don't like this."
msgstr "%s mögen das nicht."
-#: ../../include/conversation.php:842
+#: ../../include/conversation.php:867
msgid "Visible to <strong>everybody</strong>"
msgstr "Für <strong>Jedermann</strong> sichtbar"
-#: ../../include/conversation.php:844
+#: ../../include/conversation.php:869
msgid "Please enter a video link/URL:"
msgstr "Bitte Link/URL zum Video einfügen:"
-#: ../../include/conversation.php:845
+#: ../../include/conversation.php:870
msgid "Please enter an audio link/URL:"
msgstr "Bitte Link/URL zum Audio einfügen:"
-#: ../../include/conversation.php:846
+#: ../../include/conversation.php:871
msgid "Tag term:"
msgstr "Tag:"
-#: ../../include/conversation.php:847
+#: ../../include/conversation.php:872
msgid "Where are you right now?"
msgstr "Wo hältst du dich jetzt gerade auf?"
-#: ../../include/conversation.php:848
+#: ../../include/conversation.php:873
msgid "Enter a title for this item"
msgstr "Gib den Titel für diesen Beitrag ein"
-#: ../../include/conversation.php:891
+#: ../../include/conversation.php:916
msgid "upload photo"
msgstr "Bild hochladen"
-#: ../../include/conversation.php:893
+#: ../../include/conversation.php:918
msgid "attach file"
msgstr "Datei anhängen"
-#: ../../include/conversation.php:895
+#: ../../include/conversation.php:920
msgid "web link"
msgstr "Weblink"
-#: ../../include/conversation.php:896
+#: ../../include/conversation.php:921
msgid "Insert video link"
msgstr "Video-Adresse einfügen"
-#: ../../include/conversation.php:897
+#: ../../include/conversation.php:922
msgid "video link"
msgstr "Video-Link"
-#: ../../include/conversation.php:898
+#: ../../include/conversation.php:923
msgid "Insert audio link"
msgstr "Audio-Adresse einfügen"
-#: ../../include/conversation.php:899
+#: ../../include/conversation.php:924
msgid "audio link"
msgstr "Audio-Link"
-#: ../../include/conversation.php:901
+#: ../../include/conversation.php:926
msgid "set location"
msgstr "Ort setzen"
-#: ../../include/conversation.php:903
+#: ../../include/conversation.php:928
msgid "clear location"
msgstr "Ort löschen"
-#: ../../include/conversation.php:908
+#: ../../include/conversation.php:933
msgid "permissions"
msgstr "Zugriffsrechte"
-#: ../../boot.php:442
+#: ../../boot.php:446
msgid "Delete this item?"
msgstr "Diesen Beitrag löschen?"
-#: ../../boot.php:445
+#: ../../boot.php:449
msgid "show fewer"
msgstr "weniger anzeigen"
-#: ../../boot.php:688
+#: ../../boot.php:692
msgid "Create a New Account"
msgstr "Neuen Account erstellen"
-#: ../../boot.php:708
+#: ../../boot.php:712
msgid "Nickname or Email address: "
msgstr "Spitzname oder Email-Adresse: "
-#: ../../boot.php:709
+#: ../../boot.php:713
msgid "Password: "
msgstr "Passwort: "
-#: ../../boot.php:712
+#: ../../boot.php:716
msgid "Or login using OpenID: "
msgstr "Oder melde dich mit deiner OpenID an: "
-#: ../../boot.php:718
+#: ../../boot.php:722
msgid "Forgot your password?"
msgstr "Passwort vergessen?"
-#: ../../boot.php:875
+#: ../../boot.php:879
msgid "Edit profile"
msgstr "Profil bearbeiten"
-#: ../../boot.php:1042 ../../boot.php:1113
+#: ../../boot.php:1046 ../../boot.php:1117
msgid "g A l F d"
msgstr "l. d, F G \\U\\h\\\\r"
-#: ../../boot.php:1043 ../../boot.php:1114
+#: ../../boot.php:1047 ../../boot.php:1118
msgid "F d"
msgstr "d. F"
-#: ../../boot.php:1068
+#: ../../boot.php:1072
msgid "Birthday Reminders"
msgstr "Geburtstagserinnerungen"
-#: ../../boot.php:1069
+#: ../../boot.php:1073
msgid "Birthdays this week:"
msgstr "Geburtstage diese Woche:"
-#: ../../boot.php:1092 ../../boot.php:1156
+#: ../../boot.php:1096 ../../boot.php:1160
msgid "[today]"
msgstr "[heute]"
-#: ../../boot.php:1137
+#: ../../boot.php:1141
msgid "Event Reminders"
msgstr "Veranstaltungserinnerungen"
-#: ../../boot.php:1138
+#: ../../boot.php:1142
msgid "Events this week:"
msgstr "Veranstaltungen diese Woche"
-#: ../../boot.php:1150
+#: ../../boot.php:1154
msgid "[No description]"
msgstr "[keine Beschreibung]"
diff --git a/view/de/strings.php b/view/de/strings.php
index 166880f0d..284c87f2f 100755
--- a/view/de/strings.php
+++ b/view/de/strings.php
@@ -34,13 +34,13 @@ $a->strings["Friend suggestion sent."] = "Kontaktvorschlag gesendet.";
$a->strings["Suggest Friends"] = "Kontakte vorschlagen";
$a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor";
$a->strings["Event description and start time are required."] = "Ereignis Beschreibung und Startzeit sind erforderlich.";
+$a->strings["l, F j"] = "l, F j";
+$a->strings["Edit event"] = "Veranstaltung bearbeiten";
+$a->strings["link to source"] = "Link zum Originalbeitrag";
$a->strings["Events"] = "Veranstaltungen";
$a->strings["Create New Event"] = "Neue Veranstaltung erstellen";
$a->strings["Previous"] = "Vorherige";
$a->strings["Next"] = "Nächste";
-$a->strings["l, F j"] = "l, F j";
-$a->strings["Edit event"] = "Veranstaltung bearbeiten";
-$a->strings["link to source"] = "Link zum Originalbeitrag";
$a->strings["hour:minute"] = "Stunde:Minute";
$a->strings["Event details"] = "Veranstaltungsdetails";
$a->strings["Format is %s %s. Starting date and Description are required."] = "Format ist %s %s. Anfangsdatum und Beschreibung sind notwendig.";
@@ -251,6 +251,7 @@ $a->strings["Welcome to %s"] = "Willkommen zu %s";
$a->strings["Invalid request identifier."] = "Invalid request identifier.";
$a->strings["Discard"] = "Verwerfen";
$a->strings["Ignore"] = "Ignorieren";
+$a->strings["System"] = "System";
$a->strings["Network"] = "Netzwerk";
$a->strings["Personal"] = "Persönlich";
$a->strings["Home"] = "Pinnwand";
@@ -282,15 +283,20 @@ $a->strings["%s is now friends with %s"] = "%s ist jetzt mit %s befreundet";
$a->strings["%s created a new post"] = "%s hat einen neuen Beitrag erstellt";
$a->strings["%s commented on %s's post"] = "%s hat %ss Beitrag kommentiert";
$a->strings["No more network notifications."] = "Keine weiteren Netzwerk-Benachrichtigungen.";
+$a->strings["Network Notifications"] = "Netzwerk Benachrichtigungen";
+$a->strings["No more system notifications."] = "Keine weiteren System Benachrichtigungen.";
+$a->strings["System Notifications"] = "System Benachrichtigungen";
$a->strings["No more personal notifications."] = "Keine weiteren persönlichen Benachrichtigungen";
+$a->strings["Personal Notifications"] = "Persönliche Benachrichtigungen";
$a->strings["No more home notifications."] = "Keine weiteren Pinnwand-Benachrichtigungen";
+$a->strings["Home Notifications"] = "Pinnwand Benachrichtigungen";
$a->strings["Could not access contact record."] = "Konnte nicht auf die Kontaktdaten zugreifen.";
$a->strings["Could not locate selected profile."] = "Konnte das ausgewählte Profil nicht finden.";
$a->strings["Contact updated."] = "Kontakt aktualisiert.";
$a->strings["Contact has been blocked"] = "Kontakt wurde blockiert";
$a->strings["Contact has been unblocked"] = "Kontakt wurde wieder freigegeben";
-$a->strings["Contact has been ignored"] = "Der Kontakt wurde ignoriert";
-$a->strings["Contact has been unignored"] = "Kontakt wurde ignoriert";
+$a->strings["Contact has been ignored"] = "Kontakt wurde ignoriert";
+$a->strings["Contact has been unignored"] = "Kontakt wird nicht mehr ignoriert";
$a->strings["stopped following"] = "wird nicht mehr gefolgt";
$a->strings["Contact has been removed."] = "Kontakt wurde entfernt.";
$a->strings["You are mutual friends with %s"] = "Du hast mit %s eine beidseitige Freundschaft";
@@ -328,17 +334,19 @@ $a->strings["Update now"] = "Jetzt aktualisieren";
$a->strings["Currently blocked"] = "Derzeit geblockt";
$a->strings["Currently ignored"] = "Derzeit ignoriert";
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Antworten/Likes auf deine öffentlichen Beiträge <strong>könnten</strong> weiterhin sichtbar sein";
-$a->strings["Contacts"] = "Kontakte";
-$a->strings["Show Unblocked Contacts"] = "Nicht geblockte Kontakte anzeigen";
-$a->strings["Show Blocked Contacts"] = "Blockierte Kontakte anzeigen";
-$a->strings["Show All Contacts"] = "Alle Kontakte anzeigen";
-$a->strings["Search your contacts"] = "Suche in deinen Kontakten";
-$a->strings["Finding: "] = "Funde: ";
-$a->strings["Find"] = "Finde";
+$a->strings["All Contacts"] = "Alle Kontakte";
+$a->strings["Unblocked Contacts"] = "Nicht blockierte Kontakte";
+$a->strings["Blocked Contacts"] = "Blockierte Kontakte";
+$a->strings["Ignored Contacts"] = "Ignorierte Kontakte";
+$a->strings["Hidden Contacts"] = "Verborgene Kontakte";
$a->strings["Mutual Friendship"] = "Beidseitige Freundschaft";
$a->strings["is a fan of yours"] = "ist ein Fan von dir";
$a->strings["you are a fan of"] = "du bist Fan von";
$a->strings["Edit contact"] = "Kontakt bearbeiten";
+$a->strings["Contacts"] = "Kontakte";
+$a->strings["Search your contacts"] = "Suche in deinen Kontakten";
+$a->strings["Finding: "] = "Funde: ";
+$a->strings["Find"] = "Finde";
$a->strings["No valid account found."] = "Kein gültiger Account gefunden.";
$a->strings["Password reset request issued. Check your email."] = "Zurücksetzen des Passworts eingeleitet. Bitte überprüfe deine E-Mail.";
$a->strings["Password reset requested at %s"] = "Anfrage zum Zurücksetzen des Passworts auf %s erhalten";
@@ -365,7 +373,7 @@ $a->strings["Password update failed. Please try again."] = "Aktualisierung des P
$a->strings[" Please use a shorter name."] = " Bitte verwende einen kürzeren Namen.";
$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."] = " Cannot change to that email.";
+$a->strings[" Cannot change to that email."] = "Ändern der E-Mail nicht möglich. ";
$a->strings["Settings updated."] = "Einstellungen aktualisiert.";
$a->strings["Account settings"] = "Account Einstellungen";
$a->strings["Connector settings"] = "Connector-Einstellungen";
@@ -452,9 +460,9 @@ $a->strings["Notification Settings"] = "Benachrichtigungseinstellungen";
$a->strings["Send a notification email when:"] = "Benachrichtigungs-E-Mail senden wenn:";
$a->strings["You receive an introduction"] = "Du eine Kontaktanfrage erhältst";
$a->strings["Your introductions are confirmed"] = "Eine deiner Kontaktanfragen akzeptiert wurde";
-$a->strings["Someone writes on your profile wall"] = "Jemand etwas auf deine Pinnwand schreibt";
-$a->strings["Someone writes a followup comment"] = "Jemand auch einen Kommentar verfasst";
-$a->strings["You receive a private message"] = "Du eine private Nachricht erhältst";
+$a->strings["Someone writes on your profile wall"] = "Jemand schreibt etwas auf deine Pinnwand";
+$a->strings["Someone writes a followup comment"] = "Jemand verfasst auch einen Kommentar";
+$a->strings["You receive a private message"] = "Du erhältst eine private Nachricht";
$a->strings["You receive a friend suggestion"] = "Du eine Empfehlung erhältst";
$a->strings["You are tagged in a post"] = "Du wurdest in einem Beitrag erwähnt";
$a->strings["Advanced Page Settings"] = "Erweiterte Seiten-Einstellungen";
@@ -485,16 +493,18 @@ $a->strings["Personal Notes"] = "Persönliche Notizen";
$a->strings["Save"] = "Speichern";
$a->strings["Welcome to Friendica"] = "Willkommen bei Friendica";
$a->strings["New Member Checklist"] = "Checkliste für neue Mitglieder";
-$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page."] = "Wir möchten dir einige Tipps und Links anbieten, um deine Erfahrung mit Friendica so angenehm wie möglich zu machen. Klicke einfach einen Aspekt an, um weitere Informationen zu erhalten.";
-$a->strings["On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This will be useful in making friends."] = "Ändere dein anfängliches Passwort auf der <em>Einstellungen</em> Seite. Bei dieser Gelegenheit solltest du dir die Adresse deines Profils merken, diese wird benötigt um mit Anderen in Kontakt zu treten.";
+$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Wir möchten Dir einige Tipps und Links anbieten, die Dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt sichtbar über Deine Pinnwand für zwei Wochen nach dem Registrierungsdatum und wird dann verschwinden.";
+$a->strings["On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Ändere bitte unter <em>Einstellungen</em> Dein Passwort. Außerdem merke Dir Deine Indentifikations Adresse. Diese sieht aus wie eine E-Mail Adresse und wird benötig um Freunschaften mit anderen im Friendica Netzwerk zu schliessen.";
$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn du dein Profil nicht veröffentlichst ist das wie wenn niemand deine Telefonnummer kennt. Im Allgemeinen solltest du es veröffentlichen - außer all deine Freunde und potentiellen Freunde wissen wie man dich findet.";
$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Lade ein Profilbild hoch falls du es noch nicht getan hast. Studien haben gezeigt, dass es zehnmal wahrscheinlicher ist neue Freunde zu finden, wenn du ein Bild von dir selbst verwendest als wenn du dies nicht tust.";
$a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Richte die Verbindung zu Facebook ein, wenn du im Augenblick ein Facebook Konto hast und (optional) deine Facebook Freunde und Unterhaltungen importieren willst.";
+$a->strings["<em>If</em> this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "<em>Wenn</em> dies dein privater Server ist könnte die Installation des Facebook Connectors deinen Umzug ins freie Soziale Netz angenehmer gestalten.";
$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Gib deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls du E-Mails aus deinem Posteingang importieren und mit Freunden und Mailinglisten interagieren willlst.";
$a->strings["Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editiere dein <strong>Standard</strong> Profil nach deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen deiner Freundesliste vor unbekannten Betrachtern des Profils.";
$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Trage ein paar öffentliche Stichwörter in dein Standardprofil ein, die deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die deine Interessen teilen und können dir dann Kontakte vorschlagen.";
$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog."] = "Die Kontakte-Seite ist die Einstiegsseite, von der aus du Kontakte verwalten und dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst du dazu einfach ihre Adresse oder die URL der Seite im Kasten <em>Neuen Kontakt hinzufügen</em> ein.";
$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested."] = "Ãœber die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verteilten Seiten finden. Halte nach einem <em>Verbinden</em> oder <em>Folgen</em> Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an falls du danach gefragt wirst.";
+$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Im seitlichen Bedienfeld der Kontakte-Seite gibt es diverse Werkzeuge, um neue Freunde zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Freunde vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden.";
$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Sobald du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren.";
$a->strings["Our <strong>help</strong> pages may be consulted for detail on other program features and resources."] = "Unsere <strong>Hilfe</strong> Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten.";
$a->strings["Item not available."] = "Beitrag nicht verfügbar.";
@@ -511,14 +521,13 @@ $a->strings["Unable to remove group."] = "Konnte die Gruppe nicht entfernen.";
$a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen";
$a->strings["Group Editor"] = "Gruppeneditor";
$a->strings["Members"] = "Mitglieder";
-$a->strings["All Contacts"] = "Alle Kontakte";
$a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner";
$a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit";
$a->strings["Profile"] = "Profil";
$a->strings["Visible To"] = "Sichtbar für";
$a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profilzugriff)";
-$a->strings["View Contacts"] = "Kontakte anzeigen";
$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";
@@ -531,7 +540,7 @@ $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["SERIOUS ERROR: Generation of security keys failed."] = "SERIOUS ERROR: Generation of security keys failed.";
+$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 Standard-Profils ist ein Fehler aufgetreten. Bitte versuche es noch einmal.";
$a->strings["Registration details for %s"] = "Details der Registration von %s";
@@ -614,6 +623,7 @@ $a->strings["No friends to display."] = "Keine Freunde zum Anzeigen.";
$a->strings["Site"] = "Seite";
$a->strings["Users"] = "Nutzer";
$a->strings["Plugins"] = "Plugins";
+$a->strings["Themes"] = "Themen";
$a->strings["Logs"] = "Protokolle";
$a->strings["User registrations waiting for confirmation"] = "Nutzeranmeldungen die auf Bestätigung warten";
$a->strings["Administration"] = "Administration";
@@ -685,6 +695,7 @@ $a->strings["Disable"] = "Ausschalten";
$a->strings["Enable"] = "Einschalten";
$a->strings["Toggle"] = "Umschalten";
$a->strings["Settings"] = "Einstellungen";
+$a->strings["No themes found."] = "Keine Themen gefunden.";
$a->strings["Log settings updated."] = "Protokolleinstellungen aktualisiert.";
$a->strings["Clear"] = "löschen";
$a->strings["Debugging"] = "Protokoll führen";
@@ -941,6 +952,16 @@ $a->strings["Blocked %s - Click to open/close"] = "%s blockiert - Zum Öffnen/Sc
$a->strings["Unblock Author"] = "Autor freischalten";
$a->strings["Block Author"] = "Autor blockieren";
$a->strings["blockem settings updated"] = "blockem Einstellungen aktualisiert";
+$a->strings[":-)"] = ":-)";
+$a->strings[":-("] = ":-(";
+$a->strings["lol"] = "lol";
+$a->strings["Quick Comment Settings"] = "Schnell-Kommentar Einstellungen";
+$a->strings["Enter quick comments, one per line"] = "Gibt ein Schnell-Kommentar pro Zeile ein";
+$a->strings["Quick Comment settings saved."] = "Schnell-Kommentare Einstellungen gespeichert";
+$a->strings["Tile Server URL"] = "Tile Server URL";
+$a->strings["A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">public tile servers</a>"] = "Eine Liste <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">öffentlicher Tile Server</a>";
+$a->strings["Default zoom"] = "Standard Zoom";
+$a->strings["The default zoom level. (1:world, 18:highest)"] = "Standard Zoo,level (1: Welt; 18: höchstes)";
$a->strings["Editplain settings updated."] = "Editplain Einstellungen aktualisiert";
$a->strings["Editplain Settings"] = "Editplain Einstellungen";
$a->strings["Disable richtext status editor"] = "RichText Editor deaktivieren";
@@ -967,6 +988,7 @@ $a->strings["Current StatusNet API is"] = "Derzeitige StatusNet-API-URL lautet";
$a->strings["Cancel StatusNet Connection"] = "Verbindung zum StatusNet Server abbrechen";
$a->strings["Currently connected to: "] = "Momentan verbunden mit: ";
$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated StatusNet account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen StatusNet Konto veröffentlicht werden. Du kannst das (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen.";
+$a->strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to StatusNet will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link der eventuell an an deinen StatusNet Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde.";
$a->strings["Allow posting to StatusNet"] = "Veröffentlichung bei StatusNet erlauben";
$a->strings["Send public postings to StatusNet by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei StatusNet";
$a->strings["Clear OAuth configuration"] = "OAuth-Konfiguration löschen";
@@ -987,11 +1009,18 @@ $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["\"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 der Anzahl der Buchstaben";
+$a->strings["Show More Settings saved."] = "\"Mehr zeigen\" Einstellungen gesichert.";
+$a->strings["Show More"] = "\"Mehr zeigen\"";
$a->strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Diese Website benutzt <a href='http://www.piwik.org'>Piwik</a>, eine Open Source-Software zur statistischen Auswertung der Besucherzugriffe.";
$a->strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Wenn Du nicht willst, dass Deine Besuche auf diese Weise gespeichert werden, kannst Du <a href='%s'>ein Cookie setzen</a>. Dann wird Piwik Dich auf dieser Website nicht mehr verfolgen (opt-out).";
$a->strings["Piwik Base URL"] = "Piwik Basis URL";
+$a->strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Absoluter Pfad zu deiner Piwik Installation (ohen Protokoll (http/s) und mit abschließendem Schrägstrich)";
$a->strings["Site ID"] = "Seiten ID";
$a->strings["Show opt-out cookie link?"] = "Link zum Setzen des Opt-Out Cookies anzeigen?";
+$a->strings["Asynchronous tracking"] = "Asynchroned Tracken";
$a->strings["Post to Twitter"] = "Bei Twitter veröffentlichen";
$a->strings["Twitter settings updated."] = "Twitter Einstellungen aktualisiert.";
$a->strings["Twitter Posting Settings"] = "Twitter-Beitragseinstellungen";
@@ -1000,6 +1029,7 @@ $a->strings["At this Friendica instance the Twitter plugin was enabled but you h
$a->strings["Log in with Twitter"] = "bei Twitter anmelden";
$a->strings["Copy the PIN from Twitter here"] = "Kopiere die Twitter-PIN hier her";
$a->strings["If enabled all your <strong>public</strong> postings can be posted to the associated Twitter account. You can choose to do so by default (here) or for every posting separately in the posting options when writing the entry."] = "Wenn aktiviert können all deine <strong>öffentlichen</strong> Einträge auf dem verbundenen Twitter Konto veröffentlicht werden. Du kannst dies (hier) als Standardverhalten einstellen oder beim Schreiben eines Beitrags in den Beitragsoptionen festlegen.";
+$a->strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Hinweis</strong>: Aufgrund deiner Privatsphären Einstellungen (<em>Profil-Details vor unbekannten Betrachtern verbergen?</em>) wird der Link der eventuell an an deinen Twitter Account weitergeleitete angehangen wird um auf den original Artikel zu verweisen den Betrachter auf eine leere Seite führen, auf der er darüber informiert wird, dass der Zugriff eingeschränkt wurde.";
$a->strings["Allow posting to Twitter"] = "Veröffentlichung bei Twitter erlauben";
$a->strings["Send public postings to Twitter by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Twitter";
$a->strings["Consumer key"] = "Consumer Key";
@@ -1170,6 +1200,7 @@ $a->strings["People directory"] = "Nutzerverzeichnis";
$a->strings["Conversations from your friends"] = "Unterhaltungen deiner Kontakte";
$a->strings["Friend Requests"] = "Kontaktanfragen";
$a->strings["See all notifications"] = "Alle Benachrichtigungen anzeigen";
+$a->strings["Mark all system notifications seen"] = "Markiere alle System Benachrichtigungen als gelesen";
$a->strings["Private mail"] = "Private Email";
$a->strings["Manage"] = "Verwalten";
$a->strings["Manage other pages"] = "Andere Seiten verwalten";
@@ -1214,6 +1245,7 @@ $a->strings["second"] = "Sekunde";
$a->strings["seconds"] = "Sekunden";
$a->strings["%1\$d %2\$s ago"] = "%1\$d %2\$s her";
$a->strings["From: "] = "Von: ";
+$a->strings["$1 wrote:"] = "$1 geschrieben:";
$a->strings["Image/photo"] = "Bild/Foto";
$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Informationen für den Datenbanken Server '%s' nicht ermitteln.";
$a->strings["[no subject]"] = "[kein Betreff]";
@@ -1225,19 +1257,33 @@ $a->strings["Thank You,"] = "Danke,";
$a->strings["%s Administrator"] = "der Administrator von %s";
$a->strings["New mail received at %s"] = "Neue Nachricht auf %s empfangen";
$a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben.";
+$a->strings["%s sent you %s."] = "%s hat Dir geschickt %s";
+$a->strings["a private message"] = "eine private Nachricht";
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten.";
$a->strings["%s commented on an item at %s"] = "%s kommentierte einen Beitrag auf %s";
$a->strings["%s commented on an item/conversation you have been following."] = "%s hat einen Beitrag kommentiert, dem du folgst.";
+$a->strings["%s commented in %s."] = "%s wurde kommentiert in %s";
+$a->strings["a watched conversation"] = "eine beobachtete Unterhaltung";
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren.";
$a->strings["%s posted to your profile wall at %s"] = "%s hat auf deine Pinnwand bei %s gepostet";
+$a->strings["%s posted to %s"] = "%s schrieb an %s";
+$a->strings["your profile wall."] = "Deine Pinnwand";
$a->strings["%s tagged you at %s"] = "%s hat dich auf %s erwähnt";
+$a->strings["%s %s."] = "%s %s.";
+$a->strings["tagged you"] = "erwähnte Dich";
$a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt";
+$a->strings["%s tagged %s"] = "%s markierte %s";
+$a->strings["your post"] = "Dein Beitrag";
$a->strings["Introduction received at %s"] = "Kontaktanfrage auf %s erhalten";
$a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten";
+$a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten.";
+$a->strings["an introduction"] = "eine Einführung";
$a->strings["You may visit their profile at %s"] = "Hier kannst du das Profil betrachten: %s";
$a->strings["Please visit %s to approve or reject the introduction."] = "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen.";
$a->strings["Friend suggestion received at %s"] = "Kontaktvorschlag empfangen auf %s";
$a->strings["You've received a friend suggestion from '%s' at %s"] = "Du hast von '%s' einen Kontaktvorschlag erhalten auf %s";
+$a->strings["You've received %s for %s from %s."] = "Du hast %s für %s von %s erhalten.";
+$a->strings["a friend suggestion"] = "ein Freunde Vorschlag";
$a->strings["Name:"] = "Name:";
$a->strings["Photo:"] = "Foto:";
$a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen.";
diff --git a/view/email_notify_html.tpl b/view/email_notify_html.tpl
index b302c2149..43f72f15c 100755
--- a/view/email_notify_html.tpl
+++ b/view/email_notify_html.tpl
@@ -18,7 +18,7 @@
<tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
<tr><td style="padding-right:22px;">$htmlversion</td></tr>
<tr><td style="padding-top:11px;" colspan="2">$hsitelink</td></tr>
- <tr><td style="padding-bottom:11px;" colspan="2">$itemlink</td></tr>
+ <tr><td style="padding-bottom:11px;" colspan="2">$hitemlink</td></tr>
<tr><td></td><td>$thanks</td></tr>
<tr><td></td><td>$site_admin</td></tr>
</tbody>
diff --git a/view/email_notify_text.tpl b/view/email_notify_text.tpl
index f7f5a4c68..018bb6078 100755
--- a/view/email_notify_text.tpl
+++ b/view/email_notify_text.tpl
@@ -6,7 +6,7 @@ $title
$textversion
$tsitelink
-$itemlink
+$titemlink
$thanks
$site_admin
diff --git a/view/head.tpl b/view/head.tpl
index 2a1837088..f606f2f7e 100755
--- a/view/head.tpl
+++ b/view/head.tpl
@@ -11,10 +11,10 @@
<link rel="search"
href="$baseurl/opensearch"
type="application/opensearchdescription+xml"
- title="Search in Friendika" />
+ title="Search in Friendica" />
<!--[if IE]>
-<script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="$baseurl/js/jquery.js" ></script>
<script type="text/javascript" src="$baseurl/js/jquery.textinputs.js" ></script>
diff --git a/view/jot-header.tpl b/view/jot-header.tpl
index 007f639b6..d6b172b6a 100755
--- a/view/jot-header.tpl
+++ b/view/jot-header.tpl
@@ -15,7 +15,7 @@ function initEditor(cb){
$("a#jot-perms-icon").fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
- });
+ });
$(".jothidden").show();
if (typeof cb!="undefined") cb();
return;
@@ -129,7 +129,6 @@ function enableOnUser(){
$("#profile-jot-text").focus(enableOnUser);
$("#profile-jot-text").click(enableOnUser);
-
var uploader = new window.AjaxUpload(
'wall-image-upload',
{ action: 'wall_upload/$nickname',
diff --git a/view/settings_connectors.tpl b/view/settings_connectors.tpl
index 0f3357873..9493c8bf7 100755
--- a/view/settings_connectors.tpl
+++ b/view/settings_connectors.tpl
@@ -23,6 +23,8 @@ $settings_connectors
{{inc field_password.tpl with $field=$mail_pass }}{{endinc}}
{{inc field_input.tpl with $field=$mail_replyto }}{{endinc}}
{{inc field_checkbox.tpl with $field=$mail_pubmail }}{{endinc}}
+ {{inc field_select.tpl with $field=$mail_action }}{{endinc}}
+ {{inc field_input.tpl with $field=$mail_movetofolder }}{{endinc}}
<div class="settings-submit-wrapper" >
<input type="submit" id="imap-submit" name="imap-submit" class="settings-submit" value="$submit" />
diff --git a/view/theme/clean/unsupported b/view/theme/clean/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/clean/unsupported
diff --git a/view/theme/darkness/unsupported b/view/theme/darkness/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/darkness/unsupported
diff --git a/view/theme/darkzero-NS/border.jpg b/view/theme/darkzero-NS/border.jpg
new file mode 100755
index 000000000..4967412bf
--- /dev/null
+++ b/view/theme/darkzero-NS/border.jpg
Binary files differ
diff --git a/view/theme/darkzero-NS/head.jpg b/view/theme/darkzero-NS/head.jpg
new file mode 100755
index 000000000..67e852140
--- /dev/null
+++ b/view/theme/darkzero-NS/head.jpg
Binary files differ
diff --git a/view/theme/darkzero-NS/sectionend.jpg b/view/theme/darkzero-NS/sectionend.jpg
new file mode 100755
index 000000000..9d5d5c8f3
--- /dev/null
+++ b/view/theme/darkzero-NS/sectionend.jpg
Binary files differ
diff --git a/view/theme/darkzero-NS/shiny.png b/view/theme/darkzero-NS/shiny.png
new file mode 100755
index 000000000..994c0d05d
--- /dev/null
+++ b/view/theme/darkzero-NS/shiny.png
Binary files differ
diff --git a/view/theme/darkzero-NS/style.css b/view/theme/darkzero-NS/style.css
new file mode 100755
index 000000000..047381a92
--- /dev/null
+++ b/view/theme/darkzero-NS/style.css
@@ -0,0 +1,99 @@
+@import url('../duepuntozero/style.css');
+
+/* dark variation Fabio Comuni <fabrix.xm@gmail.com> */
+
+a:link, a:visited { color: #99CCFF; text-decoration: none; }
+a:hover {text-decoration: underline; }
+
+input, select, textarea {
+ background-color: #222222;
+ color: #FFFFFF !important;
+ border: 1px solid #444444;
+}
+.openid { background-color: #222222;}
+
+body { background-color: #222222; color: #cccccc; background-image: url(head.jpg); }
+aside{ background-image: url(border.jpg); padding-bottom: 0px; }
+section { background-color: #333333; background-image: url(border.jpg); }
+
+
+.tabs { background-image: url(head.jpg); }
+div.wall-item-content-wrapper.shiny { background-image: url('shiny.png'); }
+
+nav #banner #logo-text a { color: #ffffff; }
+
+.wall-item-content-wrapper { border: 1px solid #444444; }
+.wall-item-tools { background-color: #444444; background-image: none;}
+.comment-edit-wrapper{ background-color: #333333; }
+.wall-item-content-wrapper.comment { background-color: #444444; border: 0px;}
+.photo-top-album-name{ background-color: #333333; }
+.photo-album-image-wrapper .caption { background-color: rgba(51, 51, 51, 0.8); color: #FFFFFF; }
+
+.nav-selected.nav-link { color: #ffffff!important; border-bottom: 0px}
+.nav-commlink, .nav-login-link {background-color: #b7bab3;}
+.nav-commlink:link, .nav-commlink:visited,
+.nav-login-link:link, .nav-login-link:visited{
+ color: #ffffff;
+}
+
+.fakelink, .fakelink:visited {
+ color: #99CCFF;
+}
+
+.wall-item-name-link {
+ color: #99CCFF;
+}
+
+.wall-item-photo-menu li a {
+ color: #CCCCCC; background-color: #333333;
+}
+
+.wall-item-photo-menu li a:hover {
+ background-color: #CCCCCC; color: #333333;
+}
+#page-footer { min-height: 1em;}
+footer {
+ margin: 0px 10%;
+ display: block;
+ background-image: url('sectionend.jpg');
+ background-position: top left;
+ background-repeat: repeat-x;
+ height: 25px;
+}
+
+
+input#dfrn-url {
+ background-color: #222222;
+ color: #FFFFFF !important;
+}
+.pager_first a, .pager_last a, .pager_prev a, .pager_next a, .pager_n a, .pager_current {
+ color: #000088;
+}
+
+#jot-perms-icon {
+ float: left;
+}
+
+
+#jot-title {
+ background-color: #333333;
+ border: 1px solid #333333;
+}
+
+#jot-title::-webkit-input-placeholder{ color: #555555!important;}
+#jot-title:-moz-placeholder{color: #555555!important;}
+
+
+#jot-title:hover,
+#jot-title:focus {
+ border: 1px solid #cccccc;
+}
+
+.wall-item-content {
+ max-height: 20000px;
+ overflow: none;
+}
+blockquote {
+ background: #ddd;
+ color: #000;
+}
diff --git a/view/theme/darkzero-NS/theme.php b/view/theme/darkzero-NS/theme.php
new file mode 100755
index 000000000..521b1859e
--- /dev/null
+++ b/view/theme/darkzero-NS/theme.php
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * Name: Darkzero-NS
+ * Description: Darkzero theme with posts that do not scroll
+ * Version: 1.0
+ * Author: Mike Macgirvin <mike@macgirvin.com>
+ */
+
+$a->theme_info = array(
+ 'extends' => 'duepuntozero',
+);
+
+$a->page['htmlhead'] .= <<< EOT
+<script>
+$(document).ready(function() {
+
+$('.group-edit-icon').hover(
+ function() {
+ $(this).addClass('icon'); $(this).removeClass('iconspacer');},
+ function() {
+ $(this).removeClass('icon'); $(this).addClass('iconspacer');}
+ );
+
+$('.sidebar-group-element').hover(
+ function() {
+ id = $(this).attr('id');
+ $('#edit-' + id).addClass('icon'); $('#edit-' + id).removeClass('iconspacer');},
+
+ function() {
+ id = $(this).attr('id');
+ $('#edit-' + id).removeClass('icon');$('#edit-' + id).addClass('iconspacer');}
+ );
+
+
+$('.savedsearchdrop').hover(
+ function() {
+ $(this).addClass('drop'); $(this).addClass('icon'); $(this).removeClass('iconspacer');},
+ function() {
+ $(this).removeClass('drop'); $(this).removeClass('icon'); $(this).addClass('iconspacer');}
+ );
+
+$('.savedsearchterm').hover(
+ function() {
+ id = $(this).attr('id');
+ $('#drop-' + id).addClass('icon'); $('#drop-' + id).addClass('drophide'); $('#drop-' + id).removeClass('iconspacer');},
+
+ function() {
+ id = $(this).attr('id');
+ $('#drop-' + id).removeClass('icon');$('#drop-' + id).removeClass('drophide'); $('#drop-' + id).addClass('iconspacer');}
+ );
+
+});
+
+
+</script>
+EOT;
diff --git a/view/theme/darkzero-NS/unsupported b/view/theme/darkzero-NS/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/darkzero-NS/unsupported
diff --git a/view/theme/darkzero/style.css b/view/theme/darkzero/style.css
index 25ae0c71f..fdaf26f19 100755
--- a/view/theme/darkzero/style.css
+++ b/view/theme/darkzero/style.css
@@ -88,3 +88,7 @@ input#dfrn-url {
#jot-title:focus {
border: 1px solid #cccccc;
}
+blockquote {
+ background: #ddd;
+ color: #000;
+}
diff --git a/view/theme/darkzero/theme.php b/view/theme/darkzero/theme.php
index e03bcc7b8..37632c4b5 100755
--- a/view/theme/darkzero/theme.php
+++ b/view/theme/darkzero/theme.php
@@ -3,7 +3,7 @@
/*
* Name: Darkzero
* Version: 1.0
- * Author: Mike Macgirvin <mike@macgirvin.com>
+ * Author: Fabio Communi <fabrix.xm@gmail.com>
*/
$a->theme_info = array(
diff --git a/view/theme/dispy/premium.png b/view/theme/dispy/premium.png
new file mode 100755
index 000000000..1ad601c0f
--- /dev/null
+++ b/view/theme/dispy/premium.png
Binary files differ
diff --git a/view/theme/dispy/star.png b/view/theme/dispy/star.png
new file mode 100755
index 000000000..a327ba14e
--- /dev/null
+++ b/view/theme/dispy/star.png
Binary files differ
diff --git a/view/theme/dispy/style.css b/view/theme/dispy/style.css
index 5bc1450db..7f563293a 100755
--- a/view/theme/dispy/style.css
+++ b/view/theme/dispy/style.css
@@ -1099,6 +1099,21 @@ div[id$="wrapper"] br { clear: left; }
border-bottom: 0px;
}*/
+.starred {
+ background-image: url("star.png");
+ repeat: no-repeat;
+}
+.unstarred {
+ background-image: url("premium.png");
+ repeat: no-repeat;
+}
+
+.tagged {
+ background-image: url("tag.png");
+ repeat: no-repeat;
+}
+
+
.border {
border: 1px solid #babdb6;
diff --git a/view/theme/dispy/tag.png b/view/theme/dispy/tag.png
new file mode 100644
index 000000000..aca10707a
--- /dev/null
+++ b/view/theme/dispy/tag.png
Binary files differ
diff --git a/view/theme/dispy/wall_item.tpl b/view/theme/dispy/wall_item.tpl
index 9c3703f5f..882843a09 100755
--- a/view/theme/dispy/wall_item.tpl
+++ b/view/theme/dispy/wall_item.tpl
@@ -24,6 +24,7 @@
<div class="wall-item-tools" id="wall-item-tools-$id">
{{ if $star }}
<a href="#" id="starred-$id" onclick="dostar($id); return false;" class="star-item icon $isstarred" title="$star.toggle"></a>
+ <a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="tag-item icon tagged" title="$star.tagger"></a>
{{ endif }}
{{ if $vote }}
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
diff --git a/view/theme/dispy/wallwall_item.tpl b/view/theme/dispy/wallwall_item.tpl
index 95c68220a..57c6600b7 100755
--- a/view/theme/dispy/wallwall_item.tpl
+++ b/view/theme/dispy/wallwall_item.tpl
@@ -29,6 +29,7 @@
<div class="wall-item-tools" id="wall-item-tools-$id">
{{ if $star }}
<a href="#" id="starred-$id" onclick="dostar($id); return false;" class="star-item icon $isstarred" title="$star.toggle"></a>
+ <a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="tag-item icon tagged" title="$star.tagger"></a>
{{ endif }}
{{ if $vote }}
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
diff --git a/view/theme/duepuntozero/nav.tpl b/view/theme/duepuntozero/nav.tpl
index fa0ecf7b6..4675c3e5c 100755
--- a/view/theme/duepuntozero/nav.tpl
+++ b/view/theme/duepuntozero/nav.tpl
@@ -48,8 +48,8 @@
<a id="nav-notifications-linkmenu" class="nav-commlink" href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1">$nav.notifications.1</a>
<span id="notify-update" class="nav-ajax-left"></span>
<ul id="nav-notifications-menu" class="menu-popup">
- <li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
<li id="nav-notifications-see-all"><a href="$nav.notifications.all.0">$nav.notifications.all.1</a></li>
+ <li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
<li class="empty">$emptynotifications</li>
</ul>
{{ endif }}
diff --git a/view/theme/duepuntozero/wallwall_item.tpl b/view/theme/duepuntozero/wallwall_item.tpl
index ea9a218b4..4675f1e00 100755
--- a/view/theme/duepuntozero/wallwall_item.tpl
+++ b/view/theme/duepuntozero/wallwall_item.tpl
@@ -59,6 +59,7 @@
{{ if $star }}
<a href="#" id="starred-$id" onclick="dostar($id); return false;" class="star-item icon $isstarred" title="$star.toggle"></a>
+ <a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="tag-item icon tagged" title="$star.tagger"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$id" >
diff --git a/view/theme/easterbunny/unsupported b/view/theme/easterbunny/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/easterbunny/unsupported
diff --git a/view/theme/ghost/unsupported b/view/theme/ghost/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/ghost/unsupported
diff --git a/view/theme/goldenrod/unsupported b/view/theme/goldenrod/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/goldenrod/unsupported
diff --git a/view/theme/loozah/unsupported b/view/theme/loozah/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/loozah/unsupported
diff --git a/view/theme/loozah/wall_item.tpl b/view/theme/loozah/wall_item.tpl
index 727e3d1c2..56c8a82e2 100755
--- a/view/theme/loozah/wall_item.tpl
+++ b/view/theme/loozah/wall_item.tpl
@@ -49,6 +49,8 @@
{{ if $star }}
<a href="#" id="starred-$id" onclick="dostar($id); return false;" class="star-item icon $isstarred" title="$star.toggle"></a>
+ <a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="tag-item icon tagged" title="$star.tagger"></a>
+
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$id" >
diff --git a/view/theme/loozah/wallwall_item.tpl b/view/theme/loozah/wallwall_item.tpl
index 09de86c7b..0e4c1a6cf 100755
--- a/view/theme/loozah/wallwall_item.tpl
+++ b/view/theme/loozah/wallwall_item.tpl
@@ -53,6 +53,7 @@
{{ if $star }}
<a href="#" id="starred-$id" onclick="dostar($id); return false;" class="star-item icon $isstarred" title="$star.toggle"></a>
+ <a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="tag-item icon tagged" title="$star.tagger"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$id" >
diff --git a/view/theme/shady/unsupported b/view/theme/shady/unsupported
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/shady/unsupported
diff --git a/view/theme/vier/colors.less b/view/theme/vier/colors.less
index 5314b5284..18d0fc620 100644
--- a/view/theme/vier/colors.less
+++ b/view/theme/vier/colors.less
@@ -1,6 +1,7 @@
// Quattro Theme LESS file
// "Echo" palette from Inkscape
+@Yellow1 : #fce94f;
@Blue1:rgb(25,174,255);
@Blue2:rgb(0,132,200);
@Blue3:rgb(0,92,148);
@@ -71,6 +72,7 @@
@NoticeBackgroundColor: #511919;
@ThreadBackgroundColor: #f6f7f8;
+@ShinyBorderColor: @Yellow1;
@CommentBoxEmptyColor: @Grey3;
@CommentBoxEmptyBorderColor: @Grey3;
@@ -91,4 +93,4 @@
@JotPermissionUnlockBackgroundColor: @Grey2;
@JotPermissionLockBackgroundColor: @Grey4;
@JotLoadingBackgroundColor: @Grey1;
-
+@JotPreviewBackgroundColor: @Yellow1;
diff --git a/view/theme/vier/icons.less b/view/theme/vier/icons.less
index f87327703..e314fba1f 100644
--- a/view/theme/vier/icons.less
+++ b/view/theme/vier/icons.less
@@ -13,6 +13,11 @@
&.link { background-image: url("../../../images/icons/@{size}/link.png"); }
&.lock { background-image: url("../../../images/icons/@{size}/lock.png"); }
&.unlock { background-image: url("../../../images/icons/@{size}/unlock.png"); }
+ &.type-unkn { background-image: url("../../../images/icons/@{size}/zip.png"); }
+ &.type-audio{ background-image: url("../../../images/icons/@{size}/audio.png"); }
+ &.type-video{ background-image: url("../../../images/icons/@{size}/video.png"); }
+ &.type-image{ background-image: url("../../../images/icons/@{size}/image.png"); }
+ &.type-text { background-image: url("../../../images/icons/@{size}/text.png"); }
}
diff --git a/view/theme/vier/quattro.less b/view/theme/vier/quattro.less
index 671577303..9d2608261 100644
--- a/view/theme/vier/quattro.less
+++ b/view/theme/vier/quattro.less
@@ -3,7 +3,7 @@
/* global */
body {
font-family: Liberation Sans,helvetica,arial,clean,sans-serif;
- font-size: 10px;
+ font-size: 11px;
background-color: @BodyBackground;
color: @BodyColor;
margin: 50px 0px 0px 0px;
@@ -44,6 +44,9 @@ a:hover {color: @LinkHover; text-decoration: underline; }
.hidden { display: none; }
.clear { clear: both; }
+.fakelink { color: @Link; text-decoration: none; cursor:pointer; }
+.fakelink:hover { color: @LinkHover; text-decoration: underline; }
+
code {
font-family: Courier, monospace;
white-space: pre;
@@ -55,6 +58,23 @@ code {
padding: 10px;
margin-top: 20px;
}
+
+#panel {
+ position: absolute;
+ width: 10em;
+ background: @MenuBg;
+ color: @Menu;
+ margin: 0px;
+ padding: 1em;
+ list-style: none;
+ border: 3px solid @MenuBorder;
+ z-index: 100000;
+
+ .shadow();
+}
+
+
+
/* tool */
.tool {
@@ -234,7 +254,8 @@ ul.menu-popup {
#nav-notifications-menu {
- width: 400px;
+ width: 400px; max-height: 550px;
+ overflow: auto;
img { float: left; margin-right: 5px; }
.contactname { font-weight: bold; }
.notif-when { font-size: 10px; color: @MenuItemDetail; display: block; }
@@ -288,16 +309,99 @@ aside {
.allcontact-link { float: right; margin: 5px 0px; }
.contact-block-content {
clear: both;
- overflow: auto; height: auto;
+ overflow: hidden;
+ height: auto;
}
+ /*.contact-block-div { width:60px; height: 60px; }*/
.contact-block-link {
float: left;
margin: 0px 2px 2px 0px;
- img { widht: 48px; height: 58px; }
+ img { width: 48px; height: 48px; }
}
}
+/* mail view */
+.mail-conv-sender,
+.mail-conv-detail {
+ float: left;
+}
+.mail-conv-detail {
+ margin-left: 20px;
+ width: 500px;
+}
+
+.mail-conv-subject {
+ font-size: 1.4em;
+ margin: 10px 0;
+}
+
+.mail-conv-outside-wrapper-end {
+ clear: both;
+}
+
+.mail-conv-outside-wrapper {
+ margin-top: 30px;
+}
+
+.mail-conv-delete-wrapper {
+ float: right;
+ margin-right: 30px;
+ margin-top: 15px;
+}
+.mail-conv-break {
+ clear: both;
+}
+.mail-conv-delete-icon {
+ border: none;
+}
+/* group member */
+#contact-edit-drop-link,
+.mail-list-delete-wrapper,
+.group-delete-wrapper {
+ float: right;
+ margin-right: 50px;
+ .drophide {
+ background-image: url('../../../images/icons/22/delete.png');
+ display: block; width: 22px; height: 22px;
+ opacity: 0.3;
+ position: relative;
+ top: -50px;
+ }
+ .drop {
+ background-image: url('../../../images/icons/22/delete.png');
+ display: block; width: 22px; height: 22px;
+ position: relative;
+ top: -50px;
+ }
+}
+/*
+#group-members {
+ margin-top: 20px;
+ padding: 10px;
+ height: 250px;
+ overflow: auto;
+ border: 1px solid #ddd;
+}
+#group-members-end {
+ clear: both;
+}
+#group-all-contacts {
+ padding: 10px;
+ height: 450px;
+ overflow: auto;
+ border: 1px solid #ddd;
+}
+#group-all-contacts-end {
+ clear: both;
+ margin-bottom: 10px;
+}
+.contact-block-div {
+ float: left;
+ width: 60px;
+ height: 60px;
+}*/
+
/* widget */
.widget {
margin-bottom: 2em;
@@ -431,6 +535,28 @@ section {
}
}
+.comment-edit-preview {
+ width: 710px;
+ border: 1px solid @Grey5;
+ margin-top: 10px;
+
+ .contact-photo { width: 32px; height: 32px; margin-left: 16px;
+ /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+ }
+ .contact-photo-menu-button {
+ top: 15px !important;
+ left: 15px !important;
+ }
+ .wall-item-links { padding-left: 12px; }
+
+ .wall-item-container { width: 700px; }
+ .tread-wrapper { width: 700px; padding: 0; margin: 10px 0;}
+
+
+}
+
+.shiny { border-right:10px solid @ShinyBorderColor; }
+#jot-preview-content .tread-wrapper { background-color: @JotPreviewBackgroundColor; }
.wall-item-tags { padding-top: 5px; }
@@ -445,7 +571,31 @@ section {
}
}
-/* contacts menu */
+.wwto {
+ position: absolute !important;
+ width: 25px; height: 25px;
+ background: #FFFFFF;
+ border: 2px solid @Metalic3;
+ height: 25px;
+ width: 25px;
+ overflow: hidden;
+ padding: 1px;
+ position: absolute !important;
+ top: 40px;
+ left: 30px;
+
+ .shadow(0px, 0px)
+}
+.wwto .contact-photo { width: 25px; height: 25px; }
+
+
+#pause {
+ position: fixed;
+ bottom: 5px;
+ right: 5px;
+}
+
+
.contact-photo-wrapper { position: relative; }
.contact-photo {
width: 48px; height: 48px;
@@ -462,8 +612,14 @@ section {
.contact-wrapper {
float: left;
- width: 90px;
+ width: 300px;
height: 90px;
+ padding-right: 10px;
+ margin: 0 10px 10px 0px;
+ .contact-photo-wrapper {
+ float: left;
+ margin-right: 10px;
+ }
.contact-photo {
width: 80px; height: 80px;
img { width: 80px; height: 80px; }
@@ -482,8 +638,12 @@ section {
img { width: 175px; height: 175px; }
}
}
-.contact-name { text-align: center; font-weight: bold; }
-.contact-details { color: @Grey3;}
+.contact-name { font-weight: bold; padding-top: 15px; }
+.contact-details {
+ color: @Grey3; white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
/* editor */
.jothidden { display: none; }
@@ -794,6 +954,58 @@ ul.tabs {
#profile-edit-links li {
list-style: none;
+ margin-top: 10px;
+}
+
+#profile-edit-default-desc {
+ color: #FF0000;
+ border: 1px solid #FF8888;
+ background-color: #FFEEEE;
+ padding: 7px;
+}
+#profile-edit-profile-name-label,
+#profile-edit-name-label,
+#profile-edit-pdesc-label,
+#profile-edit-gender-label,
+#profile-edit-dob-label,
+#profile-edit-address-label,
+#profile-edit-locality-label,
+#profile-edit-region-label,
+#profile-edit-postal-code-label,
+#profile-edit-country-name-label,
+#profile-edit-marital-label,
+#profile-edit-with-label,
+#profile-edit-sexual-label,
+#profile-edit-politic-label,
+#profile-edit-religion-label,
+#profile-edit-pubkeywords-label,
+#profile-edit-prvkeywords-label,
+#profile-edit-gender-select,
+#profile-edit-homepage-label {
+ float: left;
+ width: 175px;
+ padding-top: 7px;
+}
+#profile-edit-profile-name,
+#profile-edit-name,
+#gender-select,
+#profile-edit-pdesc,
+#profile-edit-gender,
+#profile-edit-dob,
+#profile-edit-address,
+#profile-edit-locality,
+#profile-edit-region,
+#profile-edit-postal-code,
+#profile-edit-country-name,
+#profile-edit-marital,
+#profile-edit-with,
+#profile-edit-sexual,
+#profile-edit-politic,
+#profile-edit-religion,
+#profile-edit-pubkeywords,
+#profile-edit-prvkeywords,
+#profile-edit-homepage {
+ margin-top: 5px;
}
/* oauth */
@@ -828,6 +1040,28 @@ ul.tabs {
margin: 0px 10px 10px 0px;
}
+/* profile match wrapper */
+.profile-match-wrapper {
+ float: left;
+ width: 90px;
+ height: 90px;
+ margin-bottom: 20px;
+ .contact-photo {
+ width: 80px; height: 80px;
+ img { width: 80px; height: 80px; }
+ }
+ .contact-photo-menu-button {
+ left: 0px;
+ top: 63px;
+ }
+}
+
/* page footer */
footer { height: 100px; display: table-row; }
+
+.pager {
+ margin-top: 25px;
+ clear: both;
+}
+
diff --git a/view/theme/vier/search_item.tpl b/view/theme/vier/search_item.tpl
index 9cd3c8e2e..372e0d034 100755
--- a/view/theme/vier/search_item.tpl
+++ b/view/theme/vier/search_item.tpl
@@ -1,7 +1,7 @@
<div class="wall-item-decor">
- <span class="icon s22 star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
- {{ if $lock }}<span class="icon s22 lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
+ <span class="icon star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
+ {{ if $lock }}<span class="icon lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>
@@ -25,6 +25,7 @@
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle">$name</span></a>
<span class="wall-item-ago">- &nbsp;
{{ if $plink }}<a class="link" title="$plink.title" href="$plink.href" style="color: #999">$ago</a>{{ else }} $ago {{ endif }}
+ {{ if $lock }} - <span class="fakelink" style="color: #999" onclick="lockview(event,$id);">$lock</span> {{ endif }}
</span>
</div>
<div class="wall-item-content">
diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css
index 89dd98146..39f4ffea4 100644
--- a/view/theme/vier/style.css
+++ b/view/theme/vier/style.css
@@ -334,11 +334,15 @@ h4 {
font-size: 1.1em;
}
-a {color: #3e3e8c;
-text-decoration: none;
+a {
+ color: #36C;
+ /* color: #3e3e8c; */
+ text-decoration: none;
+}
+a:hover {
+ /* color: blue; */
+ text-decoration: underline
}
-a:hover {color: blue;
-text-decoration: underline}
.wall-item-name-link {
/* float: left;*/
@@ -364,12 +368,13 @@ text-decoration: underline}
clear: both;
}
.fakelink {
- color: #3e3e8c;
+ color: #36c;
+ /* color: #3e3e8c; */
text-decoration: none;
cursor: pointer;
}
.fakelink:hover {
- color: blue;
+ /* color: blue; */
/*color: #005c94; */
text-decoration: underline;
}
@@ -402,6 +407,12 @@ code {
.tool {
height: auto;
overflow: auto;
+ padding: 3px;
+}
+#saved-search-ul .tool:hover,
+#nets-sidebar .tool:hover,
+#sidebar-group-list .tool:hover {
+ background: #EEE;
}
.tool .label {
float: left;
@@ -409,6 +420,12 @@ code {
.tool .action {
float: right;
}
+.tool a {
+ color: #000;
+}
+.tool a:hover {
+ text-decoration: none;
+}
/* popup notifications */
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
@@ -496,7 +513,7 @@ nav ul {
nav ul li {
list-style: none;
margin: 0px;
- padding: 0px;
+ /* padding: 1px 1px 3px 1px; */
float: left;
}
nav ul li .menu-popup {
@@ -536,7 +553,8 @@ nav .nav-menu.selected {
nav .nav-notify {
display: none;
position: absolute;
- background-color: #19aeff;
+ background-color: #36c;
+ /* background-color: #19aeff; */
-moz-border-radius: 5px 5px 5px 5px;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
@@ -571,10 +589,25 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
nav #nav-apps-link.selected {
background-color: #364e59;
}
+
+#nav-notifications-mark-all {
+ /* padding: 1px 1px 2px 26px; */
+ /* border-bottom: 1px solid #364E59; */
+ /* margin: 0px 0px 2px 0px;
+ padding: 5px 10px; */
+}
+
+#nav-notifications-see-all {
+ /* padding: 1px 1px 2px 26px; */
+ /* border-bottom: 1px solid #364E59; */
+ /* margin: 0px 0px 2px 0px;
+ padding: 5px 10px; */
+}
+
ul.menu-popup {
position: absolute;
display: none;
- width: 10em;
+ width: 11em;
background: #ffffff;
color: #2d2d2d;
margin: 0px;
@@ -644,6 +677,15 @@ ul.menu-popup .empty {
max-height: 550px;
overflow: auto;
}
+/* #nav-notifications-menu a {
+ display: inline;
+ padding: 5px 0px;
+ margin: 0px 0px 2px 0px;
+}
+#nav-notifications-menu li:hover {
+ background-color: #bdcdd4;
+}*/
+
#nav-notifications-menu img {
float: left;
margin-right: 5px;
@@ -656,6 +698,13 @@ ul.menu-popup .empty {
color: #9eabb0;
display: block;
}
+
+.notif-image {
+ width: 32px;
+ height: 32px;
+ padding: 7px 7px 0px 0px;
+}
+
/* aside */
aside {
display: table-cell;
@@ -711,7 +760,8 @@ aside #dfrn-request-link {
}
aside #dfrn-request-link:hover {
text-decoration: none;
- background-color: #19aeff;
+ background-color: #36c;
+ /* background-color: #19aeff; */
}
aside #profiles-menu {
width: 20em;
@@ -813,7 +863,7 @@ section {
display: table-cell;
vertical-align: top;
width: 800px;
- padding: 0px 20px 0px 10px;
+ padding: 0px 0px 0px 10px;
}
/* wall item */
.tread-wrapper {
@@ -886,7 +936,7 @@ section {
}
.wall-item-container .wall-item-content img {
- max-width: 710px;
+ max-width: 700px;
}
.wall-item-container .wall-item-links, .wall-item-container .wall-item-actions {
display: table-cell;
@@ -946,7 +996,7 @@ section {
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
}
-.wall-item-container.comment .contact-photo-menu-button {
+.wall-item-container.comment {
top: 15px !important;
left: 15px !important;
}
@@ -985,7 +1035,7 @@ section {
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
}
-.comment-edit-preview .contact-photo-menu-button {
+.comment-edit-preview {
top: 15px !important;
left: 15px !important;
}
@@ -1000,6 +1050,16 @@ section {
padding: 0;
margin: 10px 0;
}
+
+.shiny {
+ /* border-right: 10px solid #fce94f; */
+ border-right: 1px solid #A7C7F7;
+ padding-right: 12px;
+}
+#jot-preview-content .tread-wrapper {
+ background-color: #fce94f;
+}
+
.wall-item-tags {
padding-top: 1px;
padding-bottom: 2px;
@@ -1056,12 +1116,7 @@ section {
width: 48px;
height: 48px;
}
-.contact-photo-menu-button {
- display: none;
- position: absolute;
- left: -2px;
- top: 31px;
-}
+
.contact-wrapper {
float: left;
width: 90px;
@@ -1076,26 +1131,21 @@ section {
width: 80px;
height: 80px;
}
-.contact-wrapper .contact-photo-menu-button {
+.contact-wrapper {
left: 0px;
top: 63px;
}
-.directory-item {
- float: left;
- width: 200px;
- height: 200px;
-}
-.directory-item .contact-photo {
- width: 175px;
- height: 175px;
+.contact-photo {
+ width: 48px;
+ height: 48px;
}
-.directory-item .contact-photo img {
- width: 175px;
- height: 175px;
+.contact-photo img {
+ width: 48px;
+ height: 48px;
}
.contact-name {
- text-align: center;
- font-weight: bold;
+ /* text-align: center; */
+ /*font-weight: bold;*/
font-size: 12px;
}
.contact-details {
@@ -1459,7 +1509,8 @@ ul.tabs li .active {
}
/* contacts */
.contact-entry-wrapper {
- width: 50px;
+ width: 120px;
+ height: 120px;
float: left;
}
/* photo */
@@ -1482,10 +1533,48 @@ ul.tabs li .active {
width: 80px;
height: 80px;
}
-.profile-match-wrapper .contact-photo-menu-button {
+.profile-match-wrapper {
left: 0px;
top: 63px;
}
+
+.contact-photo-menu-button {
+ position: relative;
+ background-image: url("../../../images/icons/16/menu.png");
+ background-position: top left;
+ background-repeat: no-repeat;
+ margin: 0px 0px -16px 0px;
+ padding: 0px;
+ width: 16px;
+ height: 16px;
+ top: -20px; left:0px;
+ overflow: hidden;
+ text-indent: 40px;
+ display: none;
+
+}
+.contact-photo-menu {
+ width: 11em;
+ border: 3px solid #364e59;
+ color: #2d2d2d;
+ background: #FFFFFF;
+/* position: absolute;*/
+ position: relative;
+ left: 0px; top: 0px;
+ display: none;
+ z-index: 10000;
+}
+.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none }
+.contact-photo-menu li a {
+ display: block;
+ padding: 5px 10px;
+ color: #2d2d2d;
+ text-decoration: none;
+}
+.contact-photo-menu li a:hover {
+ background-color: #bdcdd4;
+}
+
/* page footer */
footer {
height: 100px;
@@ -1527,397 +1616,338 @@ blockquote {
#prof-separator { display: none;}
*/
-#prvmail-wrapper, .mail-conv-detail, .mail-list-detail {
- position: relative;
- width: 500px;
- padding: 50px;
- margin: 20px auto;
- background-color: #fff;
- -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
-}
-
-#prvmail-wrapper:before, #prvmail-wrapper:after, .mail-conv-detail:before, .mail-conv-detail:after, .mail-list-detail:before, .mail-list-detail:after {
- position: absolute;
- width: 40%;
- height: 10px;
- content: ' ';
- left: 12px;
- bottom: 12px;
- background: transparent;
- -webkit-transform: skew(-5deg) rotate(-5deg);
- -moz-transform: skew(-5deg) rotate(-5deg);
- -ms-transform: skew(-5deg) rotate(-5deg);
- -o-transform: skew(-5deg) rotate(-5deg);
- transform: skew(-5deg) rotate(-5deg);
- -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
- -moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
- z-index: -1;
-}
-
-#prvmail-wrapper:after, .mail-conv-detail:after, .mail-list-detail:after {
- left: auto;
- right: 12px;
- -webkit-transform: skew(5deg) rotate(5deg);
- -moz-transform: skew(5deg) rotate(5deg);
- -ms-transform: skew(5deg) rotate(5deg);
- -o-transform: skew(5deg) rotate(5deg);
- transform: skew(5deg) rotate(5deg);
-}
-
-.prvmail-text {
- width: 100%;
+#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label {
+ margin-bottom: 10px;
+ margin-top: 20px;
}
-.mail-list-outside-wrapper {
- margin-top: 20px;
+#prvmail-submit {
+ float: left;
+ margin-top: 10px;
+ margin-right: 30px;
+}
+#prvmail-upload-wrapper,
+#prvmail-link-wrapper,
+#prvmail-rotator-wrapper {
+ float: left;
+ margin-top: 10px;
+ margin-right: 10px;
+ width: 24px;
}
-.mail-list-sender {
- float: left;
- padding: 5px;
- background-color: #efefef;
- border: 2px dotted #eeeeee;
- -moz-box-shadow: 3px 3px 4px #959494;
- -webkit-box-shadow: 3px 3px 4px #959494;
- box-shadow: 3px 3px 4px #959494;
+#prvmail-end {
+ clear: both;
}
+.mail-list-sender,
.mail-list-detail {
- margin-left: 100px;
- width: 300px;
- min-height: 70px;
- padding: 20px;
- padding-top:10px;
- border: 1px solid #dddddd;
- }
-
-.mail-list-sender-name {
- font-size: 1.1em;
- display: inline;
- font-variant:small-caps;
+ float: left;
}
-
-.mail-list-date {
- float: right;
- clear: block;
- display: inline;
- font-size: 0.9em;
- padding-left: 10px;
- font-stretch:ultra-condensed;
- font-variant:small-caps;
+.mail-list-detail {
+ margin-left: 20px;
}
.mail-list-subject {
- clear: block;
- font-size: 1.2em;
- padding-top: 20px;
- padding-right: 50px;
+ font-size: 1.1em;
+ margin-top: 10px;
}
-
-.mail-list-subject a {
- color: #626262;
+a.mail-list-link {
+ display: block;
+ font-size: 1.3em;
+ padding: 4px 0;
}
-.mail-list-delete-wrapper { float: right;}
+/*
+*a.mail-list-link:hover {
+* background-color: #15607B;
+* color: #F5F6FB;
+*}
+*/
+
.mail-list-outside-wrapper-end {
- clear: both;
+ clear: both;
}
-.mail-conv-outside-wrapper {
- margin-bottom: 10px;
+.mail-list-outside-wrapper {
+ margin-top: 30px;
}
-.mail-conv-sender {float: left; margin: 0px 5px 5px 0px; }
-.mail-conv-sender-photo {
- width: 64px;
- height: 64px;
+.mail-list-delete-wrapper {
+ float: right;
+ margin-right: 30px;
+ margin-top: 15px;
}
-.mail-conv-sender-name { float: left; font-variant:small-caps; font-style: bold; }
-.mail-conv-date { float: right; font-variant:small-caps; }
-.mail-conv-subject { clear: right; font-weight: bold; font-size: 1.2em }
-.mail-conv-body {
- clear: both;
+.mail-list-delete-icon {
+ border: none;
}
+.mail-conv-sender,
.mail-conv-detail {
- width: 500px;
- padding: 30px;
- padding-bottom: 10px;
- margin-left: 20px;
- margin-bottom: 0px;
- vertical-align: middle;
- margin: auto;
- border: 1px solid #dddddd;
-}
-.mail-conv-break { display: none; border: none;}
-.mail-conv-delete-wrapper { padding-top: 10px; width: 510px; text-align: right; }
-
-/* ========== */
-/* = Events = */
-/* ========== */
-
-.clear { clear: both; }
-.eventcal {
float: left;
- font-size: 20px;
- padding: 20px;
+}
+.mail-conv-detail {
+ margin-left: 20px;
+ width: 500px;
}
-.vevent {
- position: relative;
- width: 400px;
- padding: 20px;
- padding-top: 10px;
- margin: 0 0px;
- margin-bottom: 10px;
- background-color: #fff;
- -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
- -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
-}
-
-.vevent:before, .vevent:after {
- position: absolute;
- width: 40%;
- height: 10px;
- content: ' ';
- left: 12px;
- bottom: 12px;
- background: transparent;
- -webkit-transform: skew(-5deg) rotate(-5deg);
- -moz-transform: skew(-5deg) rotate(-5deg);
- -ms-transform: skew(-5deg) rotate(-5deg);
- -o-transform: skew(-5deg) rotate(-5deg);
- transform: skew(-5deg) rotate(-5deg);
- -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
- -moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
- z-index: -1;
-}
-
-.vevent:after {
- left: auto;
- right: 12px;
- -webkit-transform: skew(5deg) rotate(5deg);
- -moz-transform: skew(5deg) rotate(5deg);
- -ms-transform: skew(5deg) rotate(5deg);
- -o-transform: skew(5deg) rotate(5deg);
- transform: skew(5deg) rotate(5deg);
-}
-
-.vevent .event-description {
- margin-left: 10px;
- margin-right: 10px;
- text-align:center;
- font-size: 1.2em;
- font-weight:bolder;
+.mail-conv-subject {
+ font-size: 1.4em;
+ margin: 10px 0;
}
- .vevent .event-location{
- margin-left: 10px;
- margin-right: 10px;
- font-size: 1em;
- font-style: oblique;
- text-align: center;
-
+.mail-conv-outside-wrapper-end {
+ clear: both;
}
-.vevent .event-start, .vevent .event-end {
- margin-left: 20px;
- margin-right: 20px;
- margin-bottom: 2px;
- margin-top: 2px;
- font-size: 0.9em;
- font-variant: small-caps;
- text-align: left;
+.mail-conv-outside-wrapper {
+ margin-top: 30px;
}
-#new-event-link{
- width: 130px;
- padding: 7px;
- margin-bottom: 10px;
- margin-left: 170px; ;
- -moz-box-shadow:inset 0px 1px 0px 0px #cfcfcf;
- -webkit-box-shadow:inset 0px 1px 0px 0px #cfcfcf;
- box-shadow:inset 0px 1px 0px 0px #cfcfcf;
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bdbdbd), color-stop(1, #a2a2a2) );
- background:-moz-linear-gradient( center top, #bdbdbd 5%, #a2a2a2 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bdbdbd', endColorstr='#a2a2a2');
- background-color:#bdbdbd;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- border-radius:5px;
- color: #efefef;
+.mail-conv-delete-wrapper {
+ float: right;
+ margin-right: 30px;
+ margin-top: 15px;
+}
+.mail-conv-break {
+ clear: both;
+}
+
+.mail-conv-delete-icon {
+ border: none;
}
-#new-event-link:hover {
- color: #efefef;
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b20202), color-stop(1, #d60808) );
- background:-moz-linear-gradient( center top, #b20202 5%, #d60808 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b20202', endColorstr='#d60808');
- background-color:#b20202;
+/* ========== */
+/* = Events = */
+/* ========== */
+.eventcal {
+ float: left;
+ font-size: 20px;
}
-#new-event-link:active {
- background-color: #b20202;
- position:relative;
- top:1px;
+.vevent {
+ border: 1px solid #CCCCCC;
+}
+.vevent .event-description, .vevent .event-location {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+.vevent .event-start {
+ margin-left: 10px;
+ margin-right: 10px;
}
-#new-event-link a {
- color: #efefef;
- text-align: center;
+#new-event-link {
+ margin-bottom: 10px;
}
.edit-event-link, .plink-event-link {
- float: left;
- margin-top: 4px;
- margin-right: 4px;
- margin-bottom: 15px;
+ float: left;
+ margin-top: 4px;
+ margin-right: 4px;
+ margin-bottom: 15px;
}
.event-description:before {
- content: url('calendar.png');
- margin-right: 15px;
- vertical-align: middle;
+ content: url('../../../images/calendar.png');
+ margin-right: 15px;
}
.event-start, .event-end {
- margin-left: 10px;
- width: 330px;
+ margin-left: 10px;
+ width: 330px;
+ clear: both;
}
.event-start .dtstart, .event-end .dtend {
- float: right;
+ float: right;
}
.event-list-date {
- color: #626262;
- margin-bottom: 10px;
- font-variant:small-caps;
- font-stretch:condensed;
+ margin-bottom: 10px;
}
.prevcal, .nextcal {
- float: left;
- margin-left: 32px;
- margin-right: 32px;
- margin-top: 64px;
+ float: left;
+ margin-left: 32px;
+ margin-right: 32px;
+ margin-top: 64px;
}
-
.event-calendar-end {
- clear: both;
+ clear: both;
}
+
.calendar {
- width: 300px;
- font-family: Helvetica, Arial, sans-serif;
- background-color: #f1f1f1;
- border: 1px solid #dedede;
- margin-bottom: 10px;
- -moz-box-shadow: 5px 5px 8px #959494;
- -webkit-box-shadow: 5px 5px 8px #959494;
- box-shadow: 5px 5px 8px #959494;
+ font-family: Courier, monospace;
+}
+.today {
+ font-weight: bold;
+ color: #FF0000;
}
-.calendar caption{
- background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #d60808), color-stop(1, #b20202) );
- background:-moz-linear-gradient( center top, #d60808 5%, #b20202 100% );
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d60808', endColorstr='#b20202');
- background-color: #b20202;
- padding: 10px 0px 10px 0px;
- width: 300px;
- color: #ffffff;
- font-weight: bold;
- text-align:center;
- font-variant:small-caps;
- -moz-box-shadow: 5px 2px 8px #959494;
- -webkit-box-shadow: 5px 2px 8px #959494;
- box-shadow: 5px 2px 8px #959494;
+.settings-block {
+ border: 1px solid #AAA;
+ margin: 10px;
+ padding: 10px;
}
-tr {
- border: 1px solid #eeeeee;
+.app-title {
+ margin: 10px;
}
-.calendar td {
- font-size: 14px;
- text-align: center;
- padding: 3px 0px;
+#identity-manage-desc {
+ margin-top:15px;
+ margin-bottom: 15px;
}
-.calendar td > a {
- background-color: #cdcdcd;
- padding: 2px;
- color: #000;
+#identity-manage-choose {
+ margin-bottom: 15px;
}
-.calendar th {
- font-size: 16px;
+#identity-submit {
+ margin-top: 20px;
}
-.today {
- font-weight: bold;
- text-align: center;
- background-color: #b20202;
- color: #fff;
+#photo-prev-link, #photo-next-link {
+ padding: 10px;
+ float: left;
}
-
-#event-start-text,
-#event-finish-text {
- margin-top: 10px;
- margin-bottom: 5px;
+
+#photo-photo {
+ float: left;
}
-#event-nofinish-checkbox,
-#event-nofinish-text,
-#event-adjust-checkbox,
-#event-adjust-text,
-#event-share-checkbox {
- float: left;
+#photo-photo-end {
+ clear: both;
}
-#event-datetime-break {
- margin-bottom: 10px;
+.profile-match-photo {
+ float: left;
+ text-align: center;
+ width: 120px;
}
-#event-nofinish-break,
-#event-adjust-break,
-#event-share-break {
- clear: both;
+.profile-match-name {
+ float: left;
+ text-align: center;
+ width: 120px;
+ overflow: hidden;
}
-#event-desc-text,
-#event-location-text {
- margin-top: 10px;
- margin-bottom: 5px;
+.profile-match-break,
+.profile-match-end {
+ clear: both;
}
-#event-submit {
- margin-top: 10px;
+.profile-match-connect {
+ text-align: center;
+ font-weight: bold;
+}
+
+.profile-match-wrapper {
+ float: left;
+ padding: 10px;
+ width: 120px;
+ height: 120px;
+ scroll: auto;
+}
+#profile-match-wrapper-end {
+ clear: both;
}
/* ============= */
/* = Directory = */
/* ============= */
-
+/* contacts menu */
+.contact-photo-wrapper {
+ position: relative;
+}
+.contact-photo {
+ width: 48px;
+ height: 48px;
+ overflow: hidden;
+ display: block;
+}
+.contact-photo img {
+ width: 48px;
+ height: 48px;
+}
+.contact-photo-menu-button {
+ display: none;
+ /* position: absolute; */
+ /* position: absolute; */
+ left: -2px;
+ top: -20px;
+}
+.contact-wrapper {
+ float: left;
+ width: 90px;
+ height: 90px;
+ margin-bottom: 15px;
+}
+.contact-wrapper .contact-photo {
+ width: 80px;
+ height: 80px;
+}
+.contact-wrapper .contact-photo img {
+ width: 80px;
+ height: 80px;
+}
+.contact-wrapper .contact-photo-menu-button {
+ left: 0px;
+ top: 63px;
+}
.directory-item {
- float: left;
- margin: 50px 50px 0px 0px;
+ float: left;
+ width: 200px;
+ height: 200px;
+}
+.directory-item .contact-photo {
+ width: 175px;
+ height: 175px;
+}
+.directory-item .contact-photo img {
+ width: 175px;
+ height: 175px;
+}
+.contact-name {
+ text-align: center;
+ font-weight: bold;
+ font-size: 12px;
+}
+.contact-details {
+ color: #999999;
+}
+
+.photo-top-image-wrapper {
+ position: relative;
+ float: left;
+ margin-top: 15px;
+ margin-right: 15px;
+ width: 200px; height: 200px;
+ overflow: hidden;
+}
+.photo-top-album-name {
+ width: 100%;
+ min-height: 2em;
+ position: absolute;
+ bottom: 0px;
+ padding: 0px 3px;
+ padding-top: 0.5em;
+ background-color: rgb(255, 255, 255);
+}
+#photo-top-end {
+ clear: both;
}
-.directory-details {
- font-size: 0.9em;
- font-variant: small-caps;
- width: 160px;
+#photo-top-links {
+ margin-bottom: 30px;
+ margin-left: 30px;
}
-.directory-name {
- font-size: 1em;
- font-variant: small-caps;
- width: 150px;
+#photos-upload-newalbum-div {
+ float: left;
+ width: 175px;
}
+
diff --git a/view/theme/vier/wall_item.tpl b/view/theme/vier/wall_item.tpl
index 03cbd4c0b..abd2862a1 100644
--- a/view/theme/vier/wall_item.tpl
+++ b/view/theme/vier/wall_item.tpl
@@ -1,7 +1,7 @@
{{ if $indent }}{{ else }}
<div class="wall-item-decor">
- <span class="icon s22 star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
- {{ if $lock }}<span class="icon s22 lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
+ <span class="icon star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
+ {{ if $lock }}<span class="icon lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>
{{ endif }}
@@ -23,8 +23,9 @@
</div>
<div class="wall-item-actions-author">
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle">$name</span></a>
- <span class="wall-item-ago">- &nbsp;
+ <span class="wall-item-ago">-
{{ if $plink }}<a class="link" title="$plink.title" href="$plink.href" style="color: #999">$ago</a>{{ else }} $ago {{ endif }}
+ {{ if $lock }} - <span class="fakelink" style="color: #999" onclick="lockview(event,$id);">$lock</span> {{ endif }}
</span>
</div>
<div class="wall-item-content">
diff --git a/view/theme/vier/wallwall_item.tpl b/view/theme/vier/wallwall_item.tpl
index 3357bd8e0..8e452f4f6 100644
--- a/view/theme/vier/wallwall_item.tpl
+++ b/view/theme/vier/wallwall_item.tpl
@@ -1,7 +1,7 @@
{{ if $indent }}{{ else }}
<div class="wall-item-decor">
- <span class="icon s22 star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
- {{ if $lock }}<span class="icon s22 lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
+ <span class="icon star $isstarred" id="starred-$id" title="$star.starred">$star.starred</span>
+ {{ if $lock }}<span class="icon lock fakelink" onclick="lockview(event,$id);" title="$lock">$lock</span>{{ endif }}
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>
{{ endif }}
@@ -32,6 +32,7 @@
$to <a href="$owner_url" target="redir" title="$olinktitle" class="wall-item-name-link"><span class="wall-item-name$osparkle" id="wall-item-ownername-$id">$owner_name</span></a>
$vwall <span class="wall-item-ago">- &nbsp;
{{ if $plink }}<a class="link" title="$plink.title" href="$plink.href" style="color: #999">$ago</a>{{ else }} $ago {{ endif }}
+ {{ if $lock }} - <span class="fakelink" style="color: #999" onclick="lockview(event,$id);">$lock</span> {{ endif }}
</span>
</div>
@@ -61,6 +62,7 @@
{{ if $star }}
<a href="#" id="star-$id" onclick="dostar($id); return false;" class="$star.classdo" title="$star.do">$star.do</a>
<a href="#" id="unstar-$id" onclick="dostar($id); return false;" class="$star.classundo" title="$star.undo">$star.undo</a>
+ <a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="$star.classtagger" title="$star.tagger">$star.tagger</a>
{{ endif }}
{{ if $vote }}
diff --git a/view/wallwall_item.tpl b/view/wallwall_item.tpl
index 11297647a..61a248135 100755
--- a/view/wallwall_item.tpl
+++ b/view/wallwall_item.tpl
@@ -55,6 +55,8 @@
{{ if $star }}
<a href="#" id="star-$id" onclick="dostar($id); return false;" class="$star.classdo" title="$star.do">$star.do</a>
<a href="#" id="unstar-$id" onclick="dostar($id); return false;" class="$star.classundo" title="$star.undo">$star.undo</a>
+ <a href="#" id="tagger-$id" onclick="itemTag($id); return false;" class="$star.classtagger" title="$star.tagger">$star.tagger</a>
+
{{ endif }}
{{ if $vote }}