$ev = bbtoevent($Text);
-
// Replace any html brackets with HTML Entities to prevent executing HTML or script
// Don't use strip_tags here because it breaks [url] search by replacing & with amp
$MAILSearchString = $URLSearchString;
// Remove all hashtag addresses
- if (!$tryoembed OR $simplehtml)
+ if ((!$tryoembed OR $simplehtml) AND ($simplehtml != 7))
$Text = preg_replace("/([#@])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$1$3', $Text);
+ elseif ($simplehtml == 7)
+ $Text = preg_replace("/([@])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
+ '$1<span class="vcard"><a href="$2" class="url" title="$3"><span class="fn nickname mention">$3</span></a></span>',
+ $Text);
+
// Bookmarks in red - will be converted to bookmarks in friendica
$Text = preg_replace("/#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '[bookmark=$1]$1[/bookmark]', $Text);
// we may need to restrict this further if it picks up too many strays
// link acct:user@host to a webfinger profile redirector
- $Text = preg_replace('/acct:(.*?)@(.*?)([ ,])/', '<a href="' . $a->get_baseurl() . '/acctlink?addr=' . "$1@$2"
+ $Text = preg_replace('/acct:(.*?)@(.*?)([ ,])/', '<a href="' . $a->get_baseurl() . '/acctlink?addr=' . "$1@$2"
. '" target="extlink" >acct:' . "$1@$2$3" . '</a>',$Text);
// Perform MAIL Search
$Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1">$1</a>', $Text);
$Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
-
+
// leave open the posibility of [map=something]
// this is replaced in prepare_body() which has knowledge of the item location
}
if (strpos($Text,'[map]') !== false) {
$Text = preg_replace("/\[map\]/", '<div class="map"></div>', $Text);
- }
-
+ }
+
// Check for headers
$Text = preg_replace("(\[h1\](.*?)\[\/h1\])ism",'<h1>$1</h1>',$Text);
$Text = preg_replace("(\[h2\](.*?)\[\/h2\])ism",'<h2>$1</h2>',$Text);
$endlessloop = 0;
while ((((strpos($Text, "[/list]") !== false) && (strpos($Text, "[list") !== false)) ||
- ((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) ||
- ((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false)) ||
+ ((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) ||
+ ((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false)) ||
((strpos($Text, "[/li]") !== false) && (strpos($Text, "[li]") !== false))) && (++$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_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism",'tryoembed',$Text);
}
- $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
+ $Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
$Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text);
if ($tryoembed)
require_once('include/socgraph.php');
require_once('mod/share.php');
-function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
+function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0, $forpubsub = false) {
$sitefeed = ((strlen($owner_nick)) ? false : true); // not yet implemented, need to rewrite huge chunks of following logic
$birthday = feed_birthday($owner_id,$owner['timezone']);
$sql_post_table = "";
+ $visibility = "";
if(! $public_feed) {
else
$sort = 'ASC';
+ // Include answers to status.net posts in pubsub feeds
+ if($forpubsub) {
+ $sql_post_table = "INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent` ";
+ $visibility = "OR (`item`.`network` = 'dfrn' AND `thread`.`network`='stat')";
+ $date_field = "`received`";
+ $sql_order = "`item`.`received` DESC";
+ } else {
+ $date_field = "`changed`";
+ $sql_order = "`item`.`parent` ".$sort.", `item`.`created` ASC";
+ }
+
if(! strlen($last_update))
$last_update = 'now -30 days';
// AND ( `item`.`edited` > '%s' OR `item`.`changed` > '%s' )
// dbesc($check_date),
- $r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
+ $r = q("SELECT STRAIGHT_JOIN `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`network`, `contact`.`photo`, `contact`.`url`,
`contact`.`name-date`, `contact`.`uri-date`, `contact`.`avatar-date`,
`contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`parent` != 0
- AND `item`.`wall` = 1 AND `item`.`changed` > '%s'
+ AND ((`item`.`wall` = 1) $visibility) AND `item`.$date_field > '%s'
$sql_extra
- ORDER BY `parent` %s, `created` ASC LIMIT 0, 300",
+ ORDER BY $sql_order LIMIT 0, 300",
intval($owner_id),
dbesc($check_date),
dbesc($sort)
elseif($cmd === 'expire') {
$normal_mode = false;
$expire = true;
- $items = q("SELECT * FROM `item` WHERE `uid` = %d AND `wall` = 1
+ $items = q("SELECT * FROM `item` WHERE `uid` = %d AND `wall` = 1
AND `deleted` = 1 AND `changed` > UTC_TIMESTAMP() - INTERVAL 10 MINUTE",
intval($item_id)
);
if(! $parent_id)
return;
- $items = q("SELECT `item`.*, `sign`.`signed_text`,`sign`.`signature`,`sign`.`signer`
+ $items = q("SELECT `item`.*, `sign`.`signed_text`,`sign`.`signature`,`sign`.`signer`
FROM `item` LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id` WHERE `parent` = %d and visible = 1 and moderated = 0 ORDER BY `id` ASC",
intval($parent_id)
);
// If this is a public conversation, notify the feed hub
$public_message = true;
+ // Do a PuSH
+ $push_notify = false;
+
// fill this in with a single salmon slap if applicable
$slap = '';
if($parent['origin'])
$relay_to_owner = false;
-
-
if($relay_to_owner) {
logger('notifier: followup', LOGGER_DEBUG);
// local followup to remote post
$recipients = array($parent['contact-id']);
if ($parent['network'] == NETWORK_OSTATUS) {
+ logger('Parent is OStatus', LOGGER_DEBUG);
+
+ $push_notify = true;
- // Check if the recipient isn't in your contact list
+ // Check if the recipient isn't in your contact list, try to slap it
+ // This doesn't seem to work correctly by now
$r = q("SELECT `url` FROM `contact` WHERE `id` = %d", $parent['contact-id']);
if (count($r)) {
$url_recipients = array();
if($contact['self'])
continue;
+ logger("Deliver to ".$contact['url'], LOGGER_DEBUG);
+
// potentially more than one recipient. Start a new process and space them out a bit.
// we will deliver single recipient types of message and email recipients here.
break;
if($followup && $contact['notify']) {
- logger('notifier: slapdelivery: ' . $contact['name']);
+ logger('slapdelivery followup item '.$item_id.' to ' . $contact['name']);
$deliver_status = slapper($owner,$contact['notify'],$slap);
if($deliver_status == (-1)) {
// a public hub, it's ok to send a salmon
if((count($slaps)) && ($public_message) && (! $expire)) {
- logger('notifier: slapdelivery: ' . $contact['name']);
+ logger('slapdelivery item '.$item_id.' to ' . $contact['name']);
foreach($slaps as $slappy) {
if($contact['notify']) {
$deliver_status = slapper($owner,$contact['notify'],$slappy);
}
}
+ $push_notify = true;
- if(strlen($hub)) {
- $hubs = explode(',', $hub);
- if(count($hubs)) {
- foreach($hubs as $h) {
- $h = trim($h);
- if(! strlen($h))
- continue;
+ }
- if ($h === '[internal]') {
- // Set push flag for PuSH subscribers to this topic,
- // they will be notified in queue.php
- q("UPDATE `push_subscriber` SET `push` = 1 " .
- "WHERE `nickname` = '%s'", dbesc($owner['nickname']));
- } else {
- $params = 'hub.mode=publish&hub.url=' . urlencode( $a->get_baseurl() . '/dfrn_poll/' . $owner['nickname'] );
- post_url($h,$params);
- logger('pubsub: publish: ' . $h . ' ' . $params . ' returned ' . $a->get_curl_code());
- }
- if(count($hubs) > 1)
- sleep(7); // try and avoid multiple hubs responding at precisely the same time
+ if($push_notify AND strlen($hub)) {
+ $hubs = explode(',', $hub);
+ if(count($hubs)) {
+ foreach($hubs as $h) {
+ $h = trim($h);
+ if(! strlen($h))
+ continue;
+
+ if ($h === '[internal]') {
+ // Set push flag for PuSH subscribers to this topic,
+ // they will be notified in queue.php
+ q("UPDATE `push_subscriber` SET `push` = 1 " .
+ "WHERE `nickname` = '%s'", dbesc($owner['nickname']));
+
+ logger('Activating internal PuSH for item '.$item_id, LOGGER_DEBUG);
+
+ } else {
+
+ $params = 'hub.mode=publish&hub.url=' . urlencode( $a->get_baseurl() . '/dfrn_poll/' . $owner['nickname'] );
+ post_url($h,$params);
+ logger('publish for item '.$item_id.' ' . $h . ' ' . $params . ' returned ' . $a->get_curl_code());
}
+ if(count($hubs) > 1)
+ sleep(7); // try and avoid multiple hubs responding at precisely the same time
}
}
+ // Handling the pubsubhubbub requests
+ proc_run('php','include/pubsubpublish.php');
}
// If the item was deleted, clean up the `sign` table
$o = '';
- $o .= '<h2>' . t('Profile') . '</h2>';
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => t('Profile')
+ ));
if($a->profile['name']) {
if($txt = prepare_text($a->profile['education'])) $profile['education'] = array( t('School/education:'), $txt );
if ($a->profile['uid'] == local_user())
- $profile['edit'] = array($a->get_baseurl(). '/profiles/'.$a->profile['id'], t('Edit profile'),"", t('Edit profile'));
+ $profile['edit'] = array($a->get_baseurl(). '/profiles/'.$a->profile['id'], t('Edit profile'),"", t('Edit profile'));
- return replace_macros($tpl, array(
- '$title' => t('Profile'),
- '$profile' => $profile
- ));
- }
+ return replace_macros($tpl, array(
+ '$title' => t('Profile'),
+ '$profile' => $profile
+ ));
+ }
return '';
}
--- /dev/null
+<?php
+require_once("boot.php");
+
+function handle_pubsubhubbub() {
+ global $a, $db;
+
+ logger('start');
+
+ // We'll push to each subscriber that has push > 0,
+ // i.e. there has been an update (set in notifier.php).
+
+ $r = q("SELECT * FROM `push_subscriber` WHERE `push` > 0");
+
+ foreach($r as $rr) {
+ $params = get_feed_for($a, '', $rr['nickname'], $rr['last_update'], 0, true);
+ $hmac_sig = hash_hmac("sha1", $params, $rr['secret']);
+
+ $headers = array("Content-type: application/atom+xml",
+ sprintf("Link: <%s>;rel=hub," .
+ "<%s>;rel=self",
+ $a->get_baseurl() . '/pubsubhubbub',
+ $rr['topic']),
+ "X-Hub-Signature: sha1=" . $hmac_sig);
+
+ logger('POST '. print_r($headers, true)."\n".$params, LOGGER_DEBUG);
+
+ post_url($rr['callback_url'], $params, $headers);
+ $ret = $a->get_curl_code();
+
+ if ($ret >= 200 && $ret <= 299) {
+ logger('successfully pushed to '.$rr['callback_url']);
+
+ // set last_update to "now", and reset push=0
+ $date_now = datetime_convert('UTC','UTC','now','Y-m-d H:i:s');
+ q("UPDATE `push_subscriber` SET `push` = 0, last_update = '%s' WHERE id = %d",
+ dbesc($date_now),
+ intval($rr['id']));
+
+ } else {
+ logger('error when pushing to '.$rr['callback_url'].' HTTP: '.$ret);
+
+ // we use the push variable also as a counter, if we failed we
+ // increment this until some upper limit where we give up
+ $new_push = intval($rr['push']) + 1;
+
+ if ($new_push > 30) // OK, let's give up
+ $new_push = 0;
+
+ q("UPDATE `push_subscriber` SET `push` = %d WHERE id = %d",
+ $new_push,
+ intval($rr['id']));
+ }
+ }
+
+ logger('done');
+}
+
+
+function pubsubpublish_run(&$argv, &$argc){
+ global $a, $db;
+
+ if(is_null($a)){
+ $a = new App;
+ }
+
+ if(is_null($db)){
+ @include(".htconfig.php");
+ require_once("include/dba.php");
+ $db = new dba($db_host, $db_user, $db_pass, $db_data);
+ unset($db_host, $db_user, $db_pass, $db_data);
+ };
+
+ require_once('include/items.php');
+ require_once('include/pidfile.php');
+
+ load_config('config');
+ load_config('system');
+
+ $lockpath = get_lockpath();
+ if ($lockpath != '') {
+ $pidfile = new pidfile($lockpath, 'pubsubpublish');
+ if($pidfile->is_already_running()) {
+ logger("Already running");
+ if ($pidfile->running_time() > 9*60) {
+ $pidfile->kill();
+ logger("killed stale process");
+ // Calling a new instance
+ proc_run('php',"include/pubsubpublish.php");
+ }
+ return;
+ }
+ }
+
+ $a->set_baseurl(get_config('system','url'));
+
+ load_hooks();
+
+ if($argc > 1)
+ $pubsubpublish_id = intval($argv[1]);
+ else
+ $pubsubpublish_id = 0;
+
+ handle_pubsubhubbub();
+
+ return;
+
+}
+
+if (array_search(__file__,get_included_files())===0){
+ pubsubpublish_run($_SERVER["argv"],$_SERVER["argc"]);
+ killme();
+}
+
require_once("boot.php");
require_once('include/queue_fn.php');
-function handle_pubsubhubbub() {
- global $a, $db;
-
- logger('queue [pubsubhubbub]: start');
-
- // We'll push to each subscriber that has push > 0,
- // i.e. there has been an update (set in notifier.php).
-
- $r = q("SELECT * FROM `push_subscriber` WHERE `push` > 0");
-
- foreach($r as $rr) {
- $params = get_feed_for($a, '', $rr['nickname'], $rr['last_update']);
- $hmac_sig = hash_hmac("sha1", $params, $rr['secret']);
-
- $headers = array("Content-type: application/atom+xml",
- sprintf("Link: <%s>;rel=hub," .
- "<%s>;rel=self",
- $a->get_baseurl() . '/pubsubhubbub',
- $rr['topic']),
- "X-Hub-Signature: sha1=" . $hmac_sig);
-
- logger('queue [pubsubhubbub]: POST', $headers);
-
- post_url($rr['callback_url'], $params, $headers);
- $ret = $a->get_curl_code();
-
- if ($ret >= 200 && $ret <= 299) {
- logger('queue [pubsubhubbub]: successfully pushed to ' .
- $rr['callback_url']);
-
- // set last_update to "now", and reset push=0
- $date_now = datetime_convert('UTC','UTC','now','Y-m-d H:i:s');
- q("UPDATE `push_subscriber` SET `push` = 0, last_update = '%s' " .
- "WHERE id = %d",
- dbesc($date_now),
- intval($rr['id']));
-
- } else {
- logger('queue [pubsubhubbub]: error when pushing to ' .
- $rr['callback_url'] . 'HTTP: ', $ret);
-
- // we use the push variable also as a counter, if we failed we
- // increment this until some upper limit where we give up
- $new_push = intval($rr['push']) + 1;
-
- if ($new_push > 30) // OK, let's give up
- $new_push = 0;
-
- q("UPDATE `push_subscriber` SET `push` = %d, last_update = '%s' " .
- "WHERE id = %d",
- $new_push,
- dbesc($date_now),
- intval($rr['id']));
- }
- }
-}
-
-
function queue_run(&$argv, &$argc){
global $a, $db;
logger('queue: start');
- handle_pubsubhubbub();
+ // Handling the pubsubhubbub requests
+ proc_run('php','include/pubsubpublish.php');
$interval = ((get_config('system','delivery_interval') === false) ? 2 : intval(get_config('system','delivery_interval')));
}
}
- $r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue`
- INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id`
+ $r = q("SELECT `queue`.*, `contact`.`name`, `contact`.`uid` FROM `queue`
+ INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id`
WHERE `queue`.`created` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
if($r) {
foreach($r as $rr) {
foreach($arr as $x) {
$matches = null;
if(preg_match('/@\[url=([^\]]*)\]/',$x,$matches)) {
- $o .= "\t\t" . '<link rel="mentioned" href="' . $matches[1] . '" />' . "\r\n";
$o .= "\t\t" . '<link rel="ostatus:attention" href="' . $matches[1] . '" />' . "\r\n";
+ $o .= "\t\t" . '<link rel="mentioned" href="' . $matches[1] . '" />' . "\r\n";
}
}
+
+ if (!$item['private']) {
+ $o .= "\t\t".'<link rel="ostatus:attention" href="http://activityschema.org/collection/public"/>'."\r\n";
+ $o .= "\t\t".'<link rel="mentioned" href="http://activityschema.org/collection/public"/>'."\r\n";
+ }
+
return $o;
}}
);
$vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => $c[0]['name'],
- '$photo' => $c[0]['photo'],
- 'url' => z_root() . '/contacts/' . $cid
- ));
+ '$name' => $c[0]['name'],
+ '$photo' => $c[0]['photo'],
+ 'url' => z_root() . '/contacts/' . $cid
+ ));
- if(! x($a->page,'aside'))
- $a->page['aside'] = '';
- $a->page['aside'] .= $vcard_widget;
+ if(! x($a->page,'aside'))
+ $a->page['aside'] = '';
+ $a->page['aside'] .= $vcard_widget;
if(! count($c))
return;
- $o .= '<h2>' . sprintf( t('Friends of %s'), $c[0]['name']) . '</h2>';
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => sprintf( t('Friends of %s'), $c[0]['name'])
+ ));
$r = all_friends(local_user(),$cid);
}
$vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => $c[0]['name'],
- '$photo' => $c[0]['photo'],
- 'url' => z_root() . '/contacts/' . $cid
- ));
+ '$name' => $c[0]['name'],
+ '$photo' => $c[0]['photo'],
+ 'url' => z_root() . '/contacts/' . $cid
+ ));
- if(! x($a->page,'aside'))
- $a->page['aside'] = '';
- $a->page['aside'] .= $vcard_widget;
+ if(! x($a->page,'aside'))
+ $a->page['aside'] = '';
+ $a->page['aside'] .= $vcard_widget;
if(! count($c))
return;
- $o .= '<h2>' . t('Common Friends') . '</h2>';
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => t('Common Friends')
+ ));
if(! $cid) {
}
$sql_extra = " AND `item`.`parent` IN ( SELECT DISTINCT(`parent`) FROM `item` WHERE 1 $sql_options AND ( `contact-id` IN ( $contact_str ) OR `allow_gid` like '" . protect_sprintf('%<' . intval($group) . '>%') . "' ) and deleted = 0 ) ";
- $o = '<h2>' . t('Group: ') . $r[0]['name'] . '</h2>' . $o;
+ $o = replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => sprintf( t('Group: %s'), $r[0]['name'])
+ )) . $o;
}
elseif($cid) {
$o = '';
- $o .= '<h2>' . t('People Search') . ' - ' . $search . '</h2>';
-
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => sprintf( t('People Search - %s'), $search)
+ ));
+
if($search) {
$p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
$plaintext = false;
- $o .= '<h2>' . t('Edit post') . '</h2>';
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => t('Edit post')
+ ));
$tpl = get_markup_template('jot-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
- '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$ispublic' => ' ', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
'$nickname' => $a->user['nickname']
$parent_contact["nurl"] = normalise_link($probed_contact["url"]);
$parent_contact["thumb"] = $probed_contact["photo"];
$parent_contact["micro"] = $probed_contact["photo"];
+ $parent_contact["addr"] = $probed_contact["addr"];
}
logger('parent contact: '.print_r($parent_contact, true), LOGGER_DEBUG);
} else
* and we are replying, and there isn't one already
*/
- if(($parent_contact) && ($parent_contact['network'] === NETWORK_OSTATUS)
- && ($parent_contact['nick']) && (! in_array('@' . $parent_contact['nick'],$tags))) {
- $body = '@' . $parent_contact['nick'] . ' ' . $body;
- $tags[] = '@' . $parent_contact['nick'];
+ if ($parent_contact['id'] != "")
+ $contact = '@'.$parent_contact['nick'].'+'.$parent_contact['id'];
+ //elseif ($parent_contact['addr'] != "")
+ // $contact = '@'.$parent_contact['addr'];
+ else
+ $contact = '@[url='.$parent_contact['url'].']'.$parent_contact['nick'].'[/url]';
+
+ if ($parent_contact && ($parent_contact['network'] === NETWORK_OSTATUS)) {
+ if (($parent_contact['nick']) && (!in_array($contact,$tags))) {
+ $body = $contact.' '.$body;
+ $tags[] = $contact;
+ }
+
+ $toplevel_contact = "";
+ $toplevel_parent = q("SELECT `contact`.* FROM `contact` INNER JOIN `item` ON `item`.`contact-id` = `contact`.`id`
+ WHERE `item`.`id` = `item`.`parent` AND `item`.`parent` = %d", intval($parent));
+ if ($toplevel_parent)
+ $toplevel_contact = '@'.$toplevel_parent[0]['nick'].'+'.$toplevel_parent[0]['id'];
+ else {
+ $toplevel_parent = q("SELECT `author-link`, `author-name` FROM `item` WHERE `id` = `parent` AND `parent` = %d", intval($parent));
+ $toplevel_contact = '@[url='.$toplevel_parent[0]['author-link'].']'.$toplevel_parent[0]['author-name'].'[/url]';
+ }
+
+ if ($toplevel_contact != "")
+ if (!in_array($toplevel_contact,$tags))
+ $tags[] = $toplevel_contact;
}
$tagged = array();
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
- $o .= '<h2>' . t('Profile Match') . '</h2>';
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => t('Profile Match')
+ ));
$r = q("SELECT `pub_keywords`, `prv_keywords` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
intval(local_user())
'', //all
'', //postord
'', //conv
- '/new', //new
+ '/new', //new
'', //starred
'', //bookmarked
'', //spam
);
$tab_args = array(
'f=&order=comment', //all
- 'f=&order=post', //postord
- 'f=&conv=1', //conv
- '', //new
- 'f=&star=1', //starred
- 'f=&bmark=1', //bookmarked
- 'f=&spam=1', //spam
+ 'f=&order=post', //postord
+ 'f=&conv=1', //conv
+ '', //new
+ 'f=&star=1', //starred
+ 'f=&bmark=1', //bookmarked
+ 'f=&spam=1', //spam
);
$k = array_search('active', $last_sel_tabs);
// search terms header
if(x($_GET,'search')) {
- $a->page['content'] .= '<h2>' . t('Search Results For:') . ' ' . $search . '</h2>';
+ $a->page['content'] .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => sprintf( t('Search Results For: %s'), $search)
+ ));
}
$a->page['aside'] .= (feature_enabled(local_user(),'groups') ? group_side('network/0','network',true,$group_id) : '');
if(count($r)) {
foreach($r as $rr) {
$saved[] = array(
- 'id' => $rr['id'],
- 'term' => $rr['term'],
+ 'id' => $rr['id'],
+ 'term' => $rr['term'],
'encodedterm' => urlencode($rr['term']),
- 'delete' => t('Remove term'),
- 'selected' => ($search==$rr['term']),
+ 'delete' => t('Remove term'),
+ 'selected' => ($search==$rr['term']),
);
}
}
$tpl = get_markup_template("saved_searches_aside.tpl");
$o = replace_macros($tpl, array(
- '$title' => t('Saved Searches'),
- '$add' => t('add'),
- '$searchbox' => search($search,'netsearch-box',$srchurl,true),
- '$saved' => $saved,
+ '$title' => t('Saved Searches'),
+ '$add' => t('add'),
+ '$searchbox' => search($search,'netsearch-box',$srchurl,true),
+ '$saved' => $saved,
));
return $o;
'allow_location' => $a->user['allow_location'],
'default_location' => $a->user['default-location'],
'nickname' => $a->user['nickname'],
- 'lockstate' => ((($group) || ($cid) || ($nets) || (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'),
- 'default_perms' => get_acl_permissions($a->user),
- 'acl' => populate_acl((($group || $cid || $nets) ? $def_acl : $a->user), $celeb),
- 'bang' => (($group || $cid || $nets) ? '!' : ''),
+ 'lockstate'=> ((($group) || ($cid) || ($nets) || (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'),
+ 'default_perms' => get_acl_permissions($a->user),
+ 'acl' => populate_acl((($group || $cid || $nets) ? $def_acl : $a->user), $celeb),
+ 'bang' => (($group || $cid || $nets) ? '!' : ''),
'visitor' => 'block',
'profile_uid' => local_user(),
'acl_data' => construct_acl_data($a, $a->user), // For non-Javascript ACL selector
$contact_str_self = ",".$self[0]["id"];
}
else {
- $contact_str = ' 0 ';
- info( t('Group is empty'));
+ $contact_str = ' 0 ';
+ info( t('Group is empty'));
}
//$sql_post_table = " INNER JOIN (SELECT DISTINCT(`parent`) FROM `item` WHERE (`contact-id` IN ($contact_str) OR `allow_gid` like '".protect_sprintf('%<'.intval($group).'>%')."') and deleted = 0 ORDER BY `created` DESC) AS `temp1` ON $sql_table.$sql_parent = `temp1`.`parent` ";
$sql_extra3 .= " AND `contact-id` IN ($contact_str$contact_str_self) ";
- $sql_extra3 .= " AND EXISTS (SELECT id FROM `item` WHERE (`contact-id` IN ($contact_str) OR `allow_gid` like '".protect_sprintf('%<'.intval($group).'>%')."') and deleted = 0 AND parent = $sql_table.$sql_parent) ";
- $o = '<h2>' . t('Group: ') . $r[0]['name'] . '</h2>' . $o;
- } elseif($cid) {
+ $sql_extra3 .= " AND EXISTS (SELECT id FROM `item` WHERE (`contact-id` IN ($contact_str)
+ OR `allow_gid` like '".protect_sprintf('%<'.intval($group).'>%')."') and deleted = 0
+ AND parent = $sql_table.$sql_parent) ";
+
+ $o = replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => sprintf( t('Group: %s'), $r[0]['name'])
+ )) . $o;
+
+ }
+ elseif($cid) {
$r = q("SELECT `id`,`name`,`network`,`writable`,`nurl` FROM `contact` WHERE `id` = %d
AND `blocked` = 0 AND `pending` = 0 LIMIT 1",
intval($cid)
);
if(count($r)) {
- $sql_post_table = " INNER JOIN (SELECT DISTINCT(`parent`) FROM `item` WHERE 1 $sql_options AND `contact-id` = ".intval($cid)." and deleted = 0 ORDER BY `item`.`received` DESC) AS `temp1` ON $sql_table.$sql_parent = `temp1`.`parent` ";
+ $sql_post_table = " INNER JOIN (SELECT DISTINCT(`parent`) FROM `item`
+ WHERE 1 $sql_options AND `contact-id` = ".intval($cid)." and deleted = 0
+ ORDER BY `item`.`received` DESC) AS `temp1`
+ ON $sql_table.$sql_parent = `temp1`.`parent` ";
$sql_extra = "";
- $o = '<h2>' . t('Contact: ') . $r[0]['name'] . '</h2>' . $o;
+
+ $o = replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => sprintf( t('Contact: %s'), $r[0]['name'])
+ )) . $o;
+
if($r[0]['network'] === NETWORK_OSTATUS && $r[0]['writable'] && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
notice( t('Private messages to this person are at risk of public disclosure.') . EOL);
}
$saved = array();
foreach($r as $rr) {
$saved[] = array(
- 'id' => $rr['id'],
- 'term' => $rr['term'],
- 'encodedterm' => urlencode($rr['term']),
- 'delete' => t('Remove term'),
- 'selected' => ($search==$rr['term']),
+ 'id' => $rr['id'],
+ 'term' => $rr['term'],
+ 'encodedterm' => urlencode($rr['term']),
+ 'delete' => t('Remove term'),
+ 'selected' => ($search==$rr['term']),
);
}
$tpl = get_markup_template("saved_searches_aside.tpl");
$o .= replace_macros($tpl, array(
- '$title' => t('Saved Searches'),
- '$add' => '',
- '$searchbox' => '',
- '$saved' => $saved,
+ '$title' => t('Saved Searches'),
+ '$add' => '',
+ '$searchbox' => '',
+ '$saved' => $saved,
));
}
if($tag)
- $o .= '<h2>' . sprintf( t('Items tagged with: %s'), $search) . '</h2>';
+ $title = sprintf( t('Items tagged with: %s'), $search);
else
- $o .= '<h2>' . sprintf( t('Search results for: %s'), $search) . '</h2>';
+ $title = sprintf( t('Search results for: %s'), $search);
+
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => $title
+ ));
logger("Start Conversation for '".$search."'", LOGGER_DEBUG);
$o .= conversation($a,$r,'search',false);
$a->page['aside'] .= findpeople_widget();
- $o .= '<h2>' . t('Friend Suggestions') . '</h2>';
+ $o .= replace_macros(get_markup_template("section_title.tpl"),array(
+ '$title' => t('Friend Suggestions')
+ ));
$r = suggestion_query(local_user());
msgstr ""
"Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-05-21 10:43+0200\n"
-"PO-Revision-Date: 2015-05-22 14:55+0000\n"
+"POT-Creation-Date: 2015-05-24 10:38+0200\n"
+"PO-Revision-Date: 2015-05-29 06:44+0000\n"
"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n"
"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n"
"MIME-Version: 1.0\n"
#: ../../mod/photos.php:1084 ../../mod/photos.php:1203
#: ../../mod/photos.php:1514 ../../mod/photos.php:1565
#: ../../mod/photos.php:1609 ../../mod/photos.php:1697
-#: ../../mod/invite.php:140 ../../mod/events.php:491 ../../mod/mood.php:137
+#: ../../mod/invite.php:140 ../../mod/events.php:500 ../../mod/mood.php:137
#: ../../mod/message.php:335 ../../mod/message.php:564
-#: ../../mod/profiles.php:686 ../../mod/install.php:248
+#: ../../mod/profiles.php:682 ../../mod/install.php:248
#: ../../mod/install.php:286 ../../mod/crepair.php:190
#: ../../mod/content.php:710 ../../mod/poke.php:199 ../../mod/localtime.php:45
msgid "Submit"
msgstr "Deine Fotos"
#: ../../view/theme/diabook/theme.php:127 ../../boot.php:2156
-#: ../../include/nav.php:80 ../../mod/events.php:382
+#: ../../include/nav.php:80 ../../mod/events.php:385
msgid "Events"
msgstr "Veranstaltungen"
msgstr "Veranstaltung"
#: ../../view/theme/diabook/theme.php:466
-#: ../../view/theme/diabook/theme.php:475 ../../include/diaspora.php:2060
+#: ../../view/theme/diabook/theme.php:475 ../../include/diaspora.php:2061
#: ../../include/conversation.php:121 ../../include/conversation.php:130
#: ../../include/conversation.php:248 ../../include/conversation.php:257
#: ../../mod/like.php:149 ../../mod/like.php:319 ../../mod/subthread.php:87
msgid "status"
msgstr "Status"
-#: ../../view/theme/diabook/theme.php:471 ../../include/diaspora.php:2060
+#: ../../view/theme/diabook/theme.php:471 ../../include/diaspora.php:2061
#: ../../include/conversation.php:126 ../../include/conversation.php:253
#: ../../include/text.php:1995 ../../mod/like.php:149
#: ../../mod/subthread.php:87 ../../mod/tagger.php:62
msgid "photo"
msgstr "Foto"
-#: ../../view/theme/diabook/theme.php:480 ../../include/diaspora.php:2076
+#: ../../view/theme/diabook/theme.php:480 ../../include/diaspora.php:2077
#: ../../include/conversation.php:137 ../../mod/like.php:166
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgid "Permission denied"
msgstr "Zugriff verweigert"
-#: ../../index.php:382 ../../include/items.php:4838 ../../mod/attach.php:33
+#: ../../index.php:382 ../../include/items.php:4851 ../../mod/attach.php:33
#: ../../mod/wallmessage.php:9 ../../mod/wallmessage.php:33
#: ../../mod/wallmessage.php:79 ../../mod/wallmessage.php:103
#: ../../mod/group.php:19 ../../mod/delegate.php:12
#: ../../mod/notes.php:20 ../../mod/network.php:4 ../../mod/photos.php:134
#: ../../mod/photos.php:1050 ../../mod/follow.php:9 ../../mod/follow.php:39
#: ../../mod/follow.php:78 ../../mod/uimport.php:23 ../../mod/invite.php:15
-#: ../../mod/invite.php:101 ../../mod/events.php:152 ../../mod/mood.php:114
+#: ../../mod/invite.php:101 ../../mod/events.php:155 ../../mod/mood.php:114
#: ../../mod/message.php:38 ../../mod/message.php:174
-#: ../../mod/profiles.php:165 ../../mod/profiles.php:618
+#: ../../mod/profiles.php:165 ../../mod/profiles.php:614
#: ../../mod/install.php:151 ../../mod/crepair.php:119 ../../mod/poke.php:135
#: ../../mod/display.php:501 ../../mod/dfrn_confirm.php:55
#: ../../mod/item.php:169 ../../mod/item.php:185
msgid "Comment"
msgstr "Kommentar"
-#: ../../boot.php:751 ../../include/contact_widgets.php:205
-#: ../../object/Item.php:393 ../../mod/content.php:606
+#: ../../boot.php:751 ../../include/items.php:4962
+#: ../../include/contact_widgets.php:205 ../../object/Item.php:393
+#: ../../mod/content.php:606
msgid "show more"
msgstr "mehr anzeigen"
msgid "Manage/edit profiles"
msgstr "Profile verwalten/editieren"
-#: ../../boot.php:1600 ../../boot.php:1626 ../../mod/profiles.php:804
+#: ../../boot.php:1600 ../../boot.php:1626 ../../mod/profiles.php:800
msgid "Change profile photo"
msgstr "Profilbild ändern"
-#: ../../boot.php:1601 ../../mod/profiles.php:805
+#: ../../boot.php:1601 ../../mod/profiles.php:801
msgid "Create New Profile"
msgstr "Neues Profil anlegen"
-#: ../../boot.php:1611 ../../mod/profiles.php:816
+#: ../../boot.php:1611 ../../mod/profiles.php:812
msgid "Profile Image"
msgstr "Profilbild"
-#: ../../boot.php:1614 ../../mod/profiles.php:818
+#: ../../boot.php:1614 ../../mod/profiles.php:814
msgid "visible to everybody"
msgstr "sichtbar für jeden"
-#: ../../boot.php:1615 ../../mod/profiles.php:819
+#: ../../boot.php:1615 ../../mod/profiles.php:815
msgid "Edit visibility"
msgstr "Sichtbarkeit bearbeiten"
#: ../../boot.php:1637 ../../include/event.php:42
-#: ../../include/bb2diaspora.php:155 ../../mod/events.php:483
+#: ../../include/bb2diaspora.php:155 ../../mod/events.php:492
#: ../../mod/directory.php:136
msgid "Location:"
msgstr "Ort:"
msgid "Ability to mute notifications for a thread"
msgstr "Möglichkeit Benachrichtigungen für einen Thread abbestellen zu können"
-#: ../../include/items.php:2330 ../../include/datetime.php:477
+#: ../../include/items.php:2330 ../../include/datetime.php:457
#, php-format
msgid "%s's birthday"
msgstr "%ss Geburtstag"
-#: ../../include/items.php:2331 ../../include/datetime.php:478
+#: ../../include/items.php:2331 ../../include/datetime.php:458
#, php-format
msgid "Happy Birthday %s"
msgstr "Herzlichen Glückwunsch %s"
#: ../../mod/contacts.php:411 ../../mod/register.php:233
#: ../../mod/dfrn_request.php:845 ../../mod/api.php:105
#: ../../mod/suggest.php:29 ../../mod/follow.php:54 ../../mod/message.php:209
-#: ../../mod/profiles.php:661 ../../mod/profiles.php:664
+#: ../../mod/profiles.php:657 ../../mod/profiles.php:660
msgid "Yes"
msgstr "Ja"
#: ../../include/items.php:4686 ../../include/conversation.php:1128
#: ../../mod/settings.php:622 ../../mod/settings.php:648
-#: ../../mod/contacts.php:414 ../../mod/editpost.php:148
-#: ../../mod/dfrn_request.php:859 ../../mod/fbrowser.php:81
-#: ../../mod/fbrowser.php:116 ../../mod/suggest.php:32
-#: ../../mod/photos.php:203 ../../mod/photos.php:292 ../../mod/follow.php:65
-#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/message.php:212
+#: ../../mod/contacts.php:414 ../../mod/videos.php:116
+#: ../../mod/editpost.php:148 ../../mod/dfrn_request.php:859
+#: ../../mod/fbrowser.php:81 ../../mod/fbrowser.php:116
+#: ../../mod/suggest.php:32 ../../mod/photos.php:203 ../../mod/photos.php:292
+#: ../../mod/follow.php:65 ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
+#: ../../mod/message.php:212
msgid "Cancel"
msgstr "Abbrechen"
-#: ../../include/items.php:4904
+#: ../../include/items.php:4956
msgid "Archives"
msgstr "Archiv"
msgid "for %1$d %2$s"
msgstr "für %1$d %2$s"
-#: ../../include/profile_advanced.php:46 ../../mod/profiles.php:714
+#: ../../include/profile_advanced.php:46 ../../mod/profiles.php:710
msgid "Sexual Preference:"
msgstr "Sexuelle Vorlieben:"
-#: ../../include/profile_advanced.php:50 ../../mod/profiles.php:716
+#: ../../include/profile_advanced.php:50 ../../mod/profiles.php:712
msgid "Hometown:"
msgstr "Heimatort:"
msgid "Tags:"
msgstr "Tags"
-#: ../../include/profile_advanced.php:54 ../../mod/profiles.php:717
+#: ../../include/profile_advanced.php:54 ../../mod/profiles.php:713
msgid "Political Views:"
msgstr "Politische Ansichten:"
msgid "Hobbies/Interests:"
msgstr "Hobbies/Interessen:"
-#: ../../include/profile_advanced.php:62 ../../mod/profiles.php:721
+#: ../../include/profile_advanced.php:62 ../../mod/profiles.php:717
msgid "Likes:"
msgstr "Likes:"
-#: ../../include/profile_advanced.php:64 ../../mod/profiles.php:722
+#: ../../include/profile_advanced.php:64 ../../mod/profiles.php:718
msgid "Dislikes:"
msgstr "Dislikes:"
msgid "Miscellaneous"
msgstr "Verschiedenes"
-#: ../../include/datetime.php:153 ../../include/datetime.php:290
-msgid "year"
-msgstr "Jahr"
-
-#: ../../include/datetime.php:158 ../../include/datetime.php:291
-msgid "month"
-msgstr "Monat"
-
-#: ../../include/datetime.php:163 ../../include/datetime.php:293
-msgid "day"
-msgstr "Tag"
+#: ../../include/datetime.php:141
+msgid "YYYY-MM-DD or MM-DD"
+msgstr "YYYY-MM-DD oder MM-DD"
-#: ../../include/datetime.php:276
+#: ../../include/datetime.php:256
msgid "never"
msgstr "nie"
-#: ../../include/datetime.php:282
+#: ../../include/datetime.php:262
msgid "less than a second ago"
msgstr "vor weniger als einer Sekunde"
-#: ../../include/datetime.php:290
+#: ../../include/datetime.php:270
+msgid "year"
+msgstr "Jahr"
+
+#: ../../include/datetime.php:270
msgid "years"
msgstr "Jahre"
-#: ../../include/datetime.php:291
+#: ../../include/datetime.php:271
+msgid "month"
+msgstr "Monat"
+
+#: ../../include/datetime.php:271
msgid "months"
msgstr "Monate"
-#: ../../include/datetime.php:292
+#: ../../include/datetime.php:272
msgid "week"
msgstr "Woche"
-#: ../../include/datetime.php:292
+#: ../../include/datetime.php:272
msgid "weeks"
msgstr "Wochen"
-#: ../../include/datetime.php:293
+#: ../../include/datetime.php:273
+msgid "day"
+msgstr "Tag"
+
+#: ../../include/datetime.php:273
msgid "days"
msgstr "Tage"
-#: ../../include/datetime.php:294
+#: ../../include/datetime.php:274
msgid "hour"
msgstr "Stunde"
-#: ../../include/datetime.php:294
+#: ../../include/datetime.php:274
msgid "hours"
msgstr "Stunden"
-#: ../../include/datetime.php:295
+#: ../../include/datetime.php:275
msgid "minute"
msgstr "Minute"
-#: ../../include/datetime.php:295
+#: ../../include/datetime.php:275
msgid "minutes"
msgstr "Minuten"
-#: ../../include/datetime.php:296
+#: ../../include/datetime.php:276
msgid "second"
msgstr "Sekunde"
-#: ../../include/datetime.php:296
+#: ../../include/datetime.php:276
msgid "seconds"
msgstr "Sekunden"
-#: ../../include/datetime.php:305
+#: ../../include/datetime.php:285
#, php-format
msgid "%1$d %2$s ago"
msgstr "%1$d %2$s her"
msgid "Sharing notification from Diaspora network"
msgstr "Freigabe-Benachrichtigung von Diaspora"
-#: ../../include/diaspora.php:2493
+#: ../../include/diaspora.php:2494
msgid "Attachments:"
msgstr "Anhänge:"
#: ../../include/conversation.php:1125 ../../object/Item.php:690
#: ../../mod/editpost.php:145 ../../mod/photos.php:1566
#: ../../mod/photos.php:1610 ../../mod/photos.php:1698
-#: ../../mod/events.php:489 ../../mod/content.php:719
+#: ../../mod/events.php:498 ../../mod/content.php:719
msgid "Preview"
msgstr "Vorschau"
msgid "December"
msgstr "Dezember"
-#: ../../include/text.php:1424 ../../mod/videos.php:301
+#: ../../include/text.php:1424 ../../mod/videos.php:368
msgid "View Video"
msgstr "Video ansehen"
msgstr "Zum öffnen/schließen klicken"
#: ../../include/text.php:1674 ../../include/text.php:1684
-#: ../../mod/events.php:347
+#: ../../mod/events.php:350
msgid "link to source"
msgstr "Link zum Originalbeitrag"
#: ../../mod/settings.php:1108 ../../mod/settings.php:1109
#: ../../mod/settings.php:1110 ../../mod/register.php:234
#: ../../mod/dfrn_request.php:845 ../../mod/api.php:106
-#: ../../mod/follow.php:54 ../../mod/profiles.php:661
-#: ../../mod/profiles.php:665
+#: ../../mod/follow.php:54 ../../mod/profiles.php:657
+#: ../../mod/profiles.php:661
msgid "No"
msgstr "Nein"
msgid "Tips for New Members"
msgstr "Tipps für neue Nutzer"
-#: ../../mod/videos.php:115 ../../mod/dfrn_request.php:777
+#: ../../mod/videos.php:108
+msgid "Do you really want to delete this video?"
+msgstr "Möchtest Du dieses Video wirklich löschen?"
+
+#: ../../mod/videos.php:113
+msgid "Delete Video"
+msgstr "Video Löschen"
+
+#: ../../mod/videos.php:182 ../../mod/dfrn_request.php:777
#: ../../mod/viewcontacts.php:19 ../../mod/photos.php:920
#: ../../mod/search.php:89 ../../mod/community.php:18
#: ../../mod/display.php:214 ../../mod/directory.php:33
msgid "Public access denied."
msgstr "Öffentlicher Zugriff verweigert."
-#: ../../mod/videos.php:125
+#: ../../mod/videos.php:192
msgid "No videos selected"
msgstr "Keine Videos ausgewählt"
-#: ../../mod/videos.php:226 ../../mod/photos.php:1031
+#: ../../mod/videos.php:293 ../../mod/photos.php:1031
msgid "Access to this item is restricted."
msgstr "Zugriff zu diesem Eintrag wurde eingeschränkt."
-#: ../../mod/videos.php:308 ../../mod/photos.php:1808
+#: ../../mod/videos.php:375 ../../mod/photos.php:1808
msgid "View Album"
msgstr "Album betrachten"
-#: ../../mod/videos.php:317
+#: ../../mod/videos.php:384
msgid "Recent Videos"
msgstr "Neueste Videos"
-#: ../../mod/videos.php:319
+#: ../../mod/videos.php:386
msgid "Upload New Videos"
msgstr "Neues Video hochladen"
msgid "is interested in:"
msgstr "ist interessiert an:"
-#: ../../mod/events.php:68 ../../mod/events.php:70
+#: ../../mod/events.php:71 ../../mod/events.php:73
msgid "Event title and start time are required."
msgstr "Der Veranstaltungstitel und die Anfangszeit müssen angegeben werden."
-#: ../../mod/events.php:303
+#: ../../mod/events.php:306
msgid "l, F j"
msgstr "l, F j"
-#: ../../mod/events.php:325
+#: ../../mod/events.php:328
msgid "Edit event"
msgstr "Veranstaltung bearbeiten"
-#: ../../mod/events.php:383
+#: ../../mod/events.php:386
msgid "Create New Event"
msgstr "Neue Veranstaltung erstellen"
-#: ../../mod/events.php:384
+#: ../../mod/events.php:387
msgid "Previous"
msgstr "Vorherige"
-#: ../../mod/events.php:385 ../../mod/install.php:207
+#: ../../mod/events.php:388 ../../mod/install.php:207
msgid "Next"
msgstr "Nächste"
-#: ../../mod/events.php:458
-msgid "hour:minute"
-msgstr "Stunde:Minute"
-
-#: ../../mod/events.php:468
+#: ../../mod/events.php:480
msgid "Event details"
msgstr "Veranstaltungsdetails"
-#: ../../mod/events.php:469
-#, php-format
-msgid "Format is %s %s. Starting date and Title are required."
-msgstr "Das Format ist %s %s. Beginnzeitpunkt und Titel werden benötigt."
+#: ../../mod/events.php:481
+msgid "Starting date and Title are required."
+msgstr "Anfangszeitpunkt und Titel werden benötigt"
-#: ../../mod/events.php:471
+#: ../../mod/events.php:482
msgid "Event Starts:"
msgstr "Veranstaltungsbeginn:"
-#: ../../mod/events.php:471 ../../mod/events.php:485
+#: ../../mod/events.php:482 ../../mod/events.php:494
msgid "Required"
msgstr "Benötigt"
-#: ../../mod/events.php:474
+#: ../../mod/events.php:484
msgid "Finish date/time is not known or not relevant"
msgstr "Enddatum/-zeit ist nicht bekannt oder nicht relevant"
-#: ../../mod/events.php:476
+#: ../../mod/events.php:486
msgid "Event Finishes:"
msgstr "Veranstaltungsende:"
-#: ../../mod/events.php:479
+#: ../../mod/events.php:488
msgid "Adjust for viewer timezone"
msgstr "An Zeitzone des Betrachters anpassen"
-#: ../../mod/events.php:481
+#: ../../mod/events.php:490
msgid "Description:"
msgstr "Beschreibung"
-#: ../../mod/events.php:485
+#: ../../mod/events.php:494
msgid "Title:"
msgstr "Titel:"
-#: ../../mod/events.php:487
+#: ../../mod/events.php:496
msgid "Share this event"
msgstr "Veranstaltung teilen"
msgstr "Nicht verfügbar."
#: ../../mod/profiles.php:18 ../../mod/profiles.php:133
-#: ../../mod/profiles.php:179 ../../mod/profiles.php:630
+#: ../../mod/profiles.php:179 ../../mod/profiles.php:626
#: ../../mod/dfrn_confirm.php:64
msgid "Profile not found."
msgstr "Profil nicht gefunden."
msgid "Profile Name is required."
msgstr "Profilname ist erforderlich."
-#: ../../mod/profiles.php:340
+#: ../../mod/profiles.php:336
msgid "Marital Status"
msgstr "Familienstand"
-#: ../../mod/profiles.php:344
+#: ../../mod/profiles.php:340
msgid "Romantic Partner"
msgstr "Romanze"
-#: ../../mod/profiles.php:348
+#: ../../mod/profiles.php:344
msgid "Likes"
msgstr "Likes"
-#: ../../mod/profiles.php:352
+#: ../../mod/profiles.php:348
msgid "Dislikes"
msgstr "Dislikes"
-#: ../../mod/profiles.php:356
+#: ../../mod/profiles.php:352
msgid "Work/Employment"
msgstr "Arbeit / Beschäftigung"
-#: ../../mod/profiles.php:359
+#: ../../mod/profiles.php:355
msgid "Religion"
msgstr "Religion"
-#: ../../mod/profiles.php:363
+#: ../../mod/profiles.php:359
msgid "Political Views"
msgstr "Politische Ansichten"
-#: ../../mod/profiles.php:367
+#: ../../mod/profiles.php:363
msgid "Gender"
msgstr "Geschlecht"
-#: ../../mod/profiles.php:371
+#: ../../mod/profiles.php:367
msgid "Sexual Preference"
msgstr "Sexuelle Vorlieben"
-#: ../../mod/profiles.php:375
+#: ../../mod/profiles.php:371
msgid "Homepage"
msgstr "Webseite"
-#: ../../mod/profiles.php:379 ../../mod/profiles.php:698
+#: ../../mod/profiles.php:375 ../../mod/profiles.php:694
msgid "Interests"
msgstr "Interessen"
-#: ../../mod/profiles.php:383
+#: ../../mod/profiles.php:379
msgid "Address"
msgstr "Adresse"
-#: ../../mod/profiles.php:390 ../../mod/profiles.php:694
+#: ../../mod/profiles.php:386 ../../mod/profiles.php:690
msgid "Location"
msgstr "Wohnort"
-#: ../../mod/profiles.php:473
+#: ../../mod/profiles.php:469
msgid "Profile updated."
msgstr "Profil aktualisiert."
-#: ../../mod/profiles.php:568
+#: ../../mod/profiles.php:564
msgid " and "
msgstr " und "
-#: ../../mod/profiles.php:576
+#: ../../mod/profiles.php:572
msgid "public profile"
msgstr "öffentliches Profil"
-#: ../../mod/profiles.php:579
+#: ../../mod/profiles.php:575
#, php-format
msgid "%1$s changed %2$s to “%3$s”"
msgstr "%1$s hat %2$s geändert auf “%3$s”"
-#: ../../mod/profiles.php:580
+#: ../../mod/profiles.php:576
#, php-format
msgid " - Visit %1$s's %2$s"
msgstr " – %1$ss %2$s besuchen"
-#: ../../mod/profiles.php:583
+#: ../../mod/profiles.php:579
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr "%1$s hat folgendes aktualisiert %2$s, verändert wurde %3$s."
-#: ../../mod/profiles.php:658
+#: ../../mod/profiles.php:654
msgid "Hide contacts and friends:"
msgstr "Kontakte und Freunde verbergen"
-#: ../../mod/profiles.php:663
+#: ../../mod/profiles.php:659
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr "Liste der Kontakte vor Betrachtern dieses Profils verbergen?"
-#: ../../mod/profiles.php:685
+#: ../../mod/profiles.php:681
msgid "Edit Profile Details"
msgstr "Profil bearbeiten"
-#: ../../mod/profiles.php:687
+#: ../../mod/profiles.php:683
msgid "Change Profile Photo"
msgstr "Profilbild ändern"
-#: ../../mod/profiles.php:688
+#: ../../mod/profiles.php:684
msgid "View this profile"
msgstr "Dieses Profil anzeigen"
-#: ../../mod/profiles.php:689
+#: ../../mod/profiles.php:685
msgid "Create a new profile using these settings"
msgstr "Neues Profil anlegen und diese Einstellungen verwenden"
-#: ../../mod/profiles.php:690
+#: ../../mod/profiles.php:686
msgid "Clone this profile"
msgstr "Dieses Profil duplizieren"
-#: ../../mod/profiles.php:691
+#: ../../mod/profiles.php:687
msgid "Delete this profile"
msgstr "Dieses Profil löschen"
-#: ../../mod/profiles.php:692
+#: ../../mod/profiles.php:688
msgid "Basic information"
msgstr "Grundinformationen"
-#: ../../mod/profiles.php:693
+#: ../../mod/profiles.php:689
msgid "Profile picture"
msgstr "Profilbild"
-#: ../../mod/profiles.php:695
+#: ../../mod/profiles.php:691
msgid "Preferences"
msgstr "Vorlieben"
-#: ../../mod/profiles.php:696
+#: ../../mod/profiles.php:692
msgid "Status information"
msgstr "Status Informationen"
-#: ../../mod/profiles.php:697
+#: ../../mod/profiles.php:693
msgid "Additional information"
msgstr "Zusätzliche Informationen"
-#: ../../mod/profiles.php:699 ../../mod/newmember.php:36
+#: ../../mod/profiles.php:695 ../../mod/newmember.php:36
#: ../../mod/profile_photo.php:244
msgid "Upload Profile Photo"
msgstr "Profilbild hochladen"
-#: ../../mod/profiles.php:700
+#: ../../mod/profiles.php:696
msgid "Profile Name:"
msgstr "Profilname:"
-#: ../../mod/profiles.php:701
+#: ../../mod/profiles.php:697
msgid "Your Full Name:"
msgstr "Dein kompletter Name:"
-#: ../../mod/profiles.php:702
+#: ../../mod/profiles.php:698
msgid "Title/Description:"
msgstr "Titel/Beschreibung:"
-#: ../../mod/profiles.php:703
+#: ../../mod/profiles.php:699
msgid "Your Gender:"
msgstr "Dein Geschlecht:"
-#: ../../mod/profiles.php:704
-#, php-format
-msgid "Birthday (%s):"
-msgstr "Geburtstag (%s):"
+#: ../../mod/profiles.php:700
+msgid "Birthday :"
+msgstr "Geburtstag :"
-#: ../../mod/profiles.php:705
+#: ../../mod/profiles.php:701
msgid "Street Address:"
msgstr "Adresse:"
-#: ../../mod/profiles.php:706
+#: ../../mod/profiles.php:702
msgid "Locality/City:"
msgstr "Wohnort:"
-#: ../../mod/profiles.php:707
+#: ../../mod/profiles.php:703
msgid "Postal/Zip Code:"
msgstr "Postleitzahl:"
-#: ../../mod/profiles.php:708
+#: ../../mod/profiles.php:704
msgid "Country:"
msgstr "Land:"
-#: ../../mod/profiles.php:709
+#: ../../mod/profiles.php:705
msgid "Region/State:"
msgstr "Region/Bundesstaat:"
-#: ../../mod/profiles.php:710
+#: ../../mod/profiles.php:706
msgid "<span class=\"heart\">♥</span> Marital Status:"
msgstr "<span class=\"heart\">♥</span> Beziehungsstatus:"
-#: ../../mod/profiles.php:711
+#: ../../mod/profiles.php:707
msgid "Who: (if applicable)"
msgstr "Wer: (falls anwendbar)"
-#: ../../mod/profiles.php:712
+#: ../../mod/profiles.php:708
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com"
-#: ../../mod/profiles.php:713
+#: ../../mod/profiles.php:709
msgid "Since [date]:"
msgstr "Seit [Datum]:"
-#: ../../mod/profiles.php:715
+#: ../../mod/profiles.php:711
msgid "Homepage URL:"
msgstr "Adresse der Homepage:"
-#: ../../mod/profiles.php:718
+#: ../../mod/profiles.php:714
msgid "Religious Views:"
msgstr "Religiöse Ansichten:"
-#: ../../mod/profiles.php:719
+#: ../../mod/profiles.php:715
msgid "Public Keywords:"
msgstr "Öffentliche Schlüsselwörter:"
-#: ../../mod/profiles.php:720
+#: ../../mod/profiles.php:716
msgid "Private Keywords:"
msgstr "Private Schlüsselwörter:"
-#: ../../mod/profiles.php:723
+#: ../../mod/profiles.php:719
msgid "Example: fishing photography software"
msgstr "Beispiel: Fischen Fotografie Software"
-#: ../../mod/profiles.php:724
+#: ../../mod/profiles.php:720
msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr "(Wird verwendet, um potentielle Freunde zu finden, kann von Fremden eingesehen werden)"
-#: ../../mod/profiles.php:725
+#: ../../mod/profiles.php:721
msgid "(Used for searching profiles, never shown to others)"
msgstr "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)"
-#: ../../mod/profiles.php:726
+#: ../../mod/profiles.php:722
msgid "Tell us about yourself..."
msgstr "Erzähle uns ein bisschen von Dir …"
-#: ../../mod/profiles.php:727
+#: ../../mod/profiles.php:723
msgid "Hobbies/Interests"
msgstr "Hobbies/Interessen"
-#: ../../mod/profiles.php:728
+#: ../../mod/profiles.php:724
msgid "Contact information and Social Networks"
msgstr "Kontaktinformationen und Soziale Netzwerke"
-#: ../../mod/profiles.php:729
+#: ../../mod/profiles.php:725
msgid "Musical interests"
msgstr "Musikalische Interessen"
-#: ../../mod/profiles.php:730
+#: ../../mod/profiles.php:726
msgid "Books, literature"
msgstr "Bücher, Literatur"
-#: ../../mod/profiles.php:731
+#: ../../mod/profiles.php:727
msgid "Television"
msgstr "Fernsehen"
-#: ../../mod/profiles.php:732
+#: ../../mod/profiles.php:728
msgid "Film/dance/culture/entertainment"
msgstr "Filme/Tänze/Kultur/Unterhaltung"
-#: ../../mod/profiles.php:733
+#: ../../mod/profiles.php:729
msgid "Love/romance"
msgstr "Liebe/Romantik"
-#: ../../mod/profiles.php:734
+#: ../../mod/profiles.php:730
msgid "Work/employment"
msgstr "Arbeit/Anstellung"
-#: ../../mod/profiles.php:735
+#: ../../mod/profiles.php:731
msgid "School/education"
msgstr "Schule/Ausbildung"
-#: ../../mod/profiles.php:740
+#: ../../mod/profiles.php:736
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"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:750 ../../mod/directory.php:113
+#: ../../mod/profiles.php:746 ../../mod/directory.php:113
msgid "Age: "
msgstr "Alter: "
-#: ../../mod/profiles.php:803
+#: ../../mod/profiles.php:799
msgid "Edit/Manage Profiles"
msgstr "Bearbeite/Verwalte Profile"
$a->strings["Errors encountered creating database tables."] = "Fehler aufgetreten während der Erzeugung der Datenbanktabellen.";
$a->strings["Errors encountered performing database changes."] = "Es sind Fehler beim Bearbeiten der Datenbank aufgetreten.";
$a->strings["Miscellaneous"] = "Verschiedenes";
-$a->strings["year"] = "Jahr";
-$a->strings["month"] = "Monat";
-$a->strings["day"] = "Tag";
+$a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD oder MM-DD";
$a->strings["never"] = "nie";
$a->strings["less than a second ago"] = "vor weniger als einer Sekunde";
+$a->strings["year"] = "Jahr";
$a->strings["years"] = "Jahre";
+$a->strings["month"] = "Monat";
$a->strings["months"] = "Monate";
$a->strings["week"] = "Woche";
$a->strings["weeks"] = "Wochen";
+$a->strings["day"] = "Tag";
$a->strings["days"] = "Tage";
$a->strings["hour"] = "Stunde";
$a->strings["hours"] = "Stunden";
$a->strings["System down for maintenance"] = "System zur Wartung abgeschaltet";
$a->strings["Access to this profile has been restricted."] = "Der Zugriff zu diesem Profil wurde eingeschränkt.";
$a->strings["Tips for New Members"] = "Tipps für neue Nutzer";
+$a->strings["Do you really want to delete this video?"] = "Möchtest Du dieses Video wirklich löschen?";
+$a->strings["Delete Video"] = "Video Löschen";
$a->strings["Public access denied."] = "Öffentlicher Zugriff verweigert.";
$a->strings["No videos selected"] = "Keine Videos ausgewählt";
$a->strings["Access to this item is restricted."] = "Zugriff zu diesem Eintrag wurde eingeschränkt.";
$a->strings["Create New Event"] = "Neue Veranstaltung erstellen";
$a->strings["Previous"] = "Vorherige";
$a->strings["Next"] = "Nächste";
-$a->strings["hour:minute"] = "Stunde:Minute";
$a->strings["Event details"] = "Veranstaltungsdetails";
-$a->strings["Format is %s %s. Starting date and Title are required."] = "Das Format ist %s %s. Beginnzeitpunkt und Titel werden benötigt.";
+$a->strings["Starting date and Title are required."] = "Anfangszeitpunkt und Titel werden benötigt";
$a->strings["Event Starts:"] = "Veranstaltungsbeginn:";
$a->strings["Required"] = "Benötigt";
$a->strings["Finish date/time is not known or not relevant"] = "Enddatum/-zeit ist nicht bekannt oder nicht relevant";
$a->strings["Your Full Name:"] = "Dein kompletter Name:";
$a->strings["Title/Description:"] = "Titel/Beschreibung:";
$a->strings["Your Gender:"] = "Dein Geschlecht:";
-$a->strings["Birthday (%s):"] = "Geburtstag (%s):";
+$a->strings["Birthday :"] = "Geburtstag :";
$a->strings["Street Address:"] = "Adresse:";
$a->strings["Locality/City:"] = "Wohnort:";
$a->strings["Postal/Zip Code:"] = "Postleitzahl:";
--- /dev/null
+<div class="section-title-wrapper">
+ <h2>{{$title}}</h2>
+ <div class="clear"></div>
+</div>