This commit is contained in:
friendica 2013-02-21 16:43:01 -08:00
commit 280b72b9e6
40 changed files with 1920 additions and 953 deletions

1
.gitignore vendored
View file

@ -9,6 +9,7 @@ favicon.*
home.html
addon
*~
robots.txt
#ignore documentation, it should be newly built
doc/api

View file

@ -14,8 +14,7 @@ require_once('include/features.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '3.1.1618' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1159 );
define ( 'DB_UPDATE_VERSION', 1162 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@ -204,10 +203,12 @@ define ( 'NOTIFY_SYSTEM', 0x8000 );
define ( 'TERM_UNKNOWN', 0 );
define ( 'TERM_HASHTAG', 1 );
define ( 'TERM_MENTION', 2 );
define ( 'TERM_MENTION', 2 );
define ( 'TERM_CATEGORY', 3 );
define ( 'TERM_PCATEGORY', 4 );
define ( 'TERM_FILE', 5 );
define ( 'TERM_SAVEDSEARCH', 6 );
define ( 'TERM_CONVERSATION', 7 );
define ( 'TERM_OBJ_POST', 1 );
define ( 'TERM_OBJ_PHOTO', 2 );
@ -355,7 +356,8 @@ if(! class_exists('App')) {
public $identities;
public $is_mobile;
public $is_tablet;
public $performance = array();
public $nav_sel;
public $category;
@ -403,7 +405,7 @@ if(! class_exists('App')) {
private $cached_profile_image;
private $cached_profile_picdate;
function __construct() {
global $default_timezone, $argv, $argc;
@ -412,6 +414,14 @@ if(! class_exists('App')) {
date_default_timezone_set($this->timezone);
$this->performance["start"] = microtime(true);
$this->performance["database"] = 0;
$this->performance["network"] = 0;
$this->performance["rendering"] = 0;
$this->performance["parser"] = 0;
$this->performance["marktime"] = 0;
$this->performance["markstart"] = microtime(true);
$this->config = array();
$this->page = array();
$this->pager= array();
@ -719,6 +729,17 @@ if(! class_exists('App')) {
return $this->rdelim[$engine];
}
function save_timestamp($stamp, $value) {
$duration = (float)(microtime(true)-$stamp);
$this->performance[$value] += (float)$duration;
$this->performance["marktime"] += (float)$duration;
}
function mark_timestamp($mark) {
//$this->performance["markstart"] -= microtime(true) - $this->performance["marktime"];
$this->performance["markstart"] = microtime(true) - $this->performance["markstart"] - $this->performance["marktime"];
}
}
}

View file

@ -560,6 +560,7 @@ CREATE TABLE IF NOT EXISTS `item` (
`deleted` tinyint(1) NOT NULL DEFAULT '0',
`origin` tinyint(1) NOT NULL DEFAULT '0',
`forum_mode` tinyint(1) NOT NULL DEFAULT '0',
`mention` tinyint(1) NOT NULL DEFAULT '0',
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
KEY `uri` (`uri`),
@ -589,6 +590,8 @@ CREATE TABLE IF NOT EXISTS `item` (
KEY `uid_commented` (`uid`, `commented`),
KEY `uid_created` (`uid`, `created`),
KEY `uid_unseen` (`uid`, `unseen`),
KEY `mention` (`mention`),
KEY `resource-id` (`resource-id`),
KEY `event_id` (`event-id`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
@ -1030,18 +1033,22 @@ CREATE TABLE IF NOT EXISTS `spam` (
--
CREATE TABLE IF NOT EXISTS `term` (
`tid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`oid` INT UNSIGNED NOT NULL ,
`otype` TINYINT( 3 ) UNSIGNED NOT NULL ,
`type` TINYINT( 3 ) UNSIGNED NOT NULL ,
`term` CHAR( 255 ) NOT NULL ,
`url` CHAR( 255 ) NOT NULL,
`tid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`aid` int(10) unsigned NOT NULL DEFAULT '0',
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`oid` int(10) unsigned NOT NULL,
`otype` tinyint(3) unsigned NOT NULL,
`type` tinyint(3) unsigned NOT NULL,
`term` char(255) NOT NULL,
`url` char(255) NOT NULL,
PRIMARY KEY (`tid`),
KEY `oid` ( `oid` ),
KEY `otype` ( `otype` ),
KEY `type` ( `type` ),
KEY `term` ( `term` )
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
KEY `oid` (`oid`),
KEY `otype` (`otype`),
KEY `type` (`type`),
KEY `term` (`term`),
KEY `uid` (`uid`),
KEY `aid` (`aid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@ -1133,3 +1140,17 @@ CREATE TABLE IF NOT EXISTS `userd` (
`username` char(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tag`
--
CREATE TABLE IF NOT EXISTS `tag` (
`iid` int(11) NOT NULL,
`tag` char(255) NOT NULL,
`link` char(255) NOT NULL,
PRIMARY KEY (`iid`, `tag`),
KEY `tag` (`tag`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

View file

@ -36,8 +36,7 @@ Friendica Documentation and Resources
**External Resources**
* [Main Website](http://friendica.com)
* [Forums](http://groups.google.com/group/friendica)
* [Developer Forums](http://groups.google.com/group/friendica-dev)
* [Mailing List Archive](http://librelist.com/browser/friendica/)
**About**

View file

@ -36,8 +36,7 @@ Friendica - Dokumentation und Ressourcen
**Externe Ressourcen**
* [Haupt-Webseite](http://friendica.com)
* [Foren](http://groups.google.com/group/friendica)
* [Entwickler-Foren](http://groups.google.com/group/friendica-dev)
* [Mailing Liste](http://librelist.com/browser/friendica/)
* [Deutsches Friendica-Wiki](http://wiki.toktan.org/doku.php)
**Über diese Seite**

View file

@ -346,7 +346,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$network = null;
$diaspora = false;
$diaspora_base = '';
$diaspora_guid = '';
$diaspora_guid = '';
$diaspora_key = '';
$has_lrdd = false;
$email_conversant = false;
@ -485,7 +485,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
}
}
}
}
}
if($mode == PROBE_NORMAL) {
if(strlen($zot)) {
@ -531,7 +531,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
}
if(strpos($url,'@'))
$addr = str_replace('acct:', '', $url);
}
}
if($network !== NETWORK_ZOT && $network !== NETWORK_DFRN && $network !== NETWORK_MAIL) {
if($diaspora)
@ -544,13 +544,13 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$vcard = scrape_vcard($hcard);
// Google doesn't use absolute url in profile photos
if((x($vcard,'photo')) && substr($vcard['photo'],0,1) == '/') {
$h = @parse_url($hcard);
if($h)
$vcard['photo'] = $h['scheme'] . '://' . $h['host'] . $vcard['photo'];
}
logger('probe_url: scrape_vcard: ' . print_r($vcard,true), LOGGER_DATA);
}
@ -561,7 +561,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$vcard['nick'] = $addr_parts[0];
}
if($twitter) {
if($twitter) {
logger('twitter: setup');
$tid = basename($url);
$tapi = 'https://api.twitter.com/1/statuses/user_timeline.rss';

View file

@ -521,13 +521,13 @@
$txt = $purifier->purify($txt);
}
$txt = html2bbcode($txt);
$a->argv[1]=$user_info['screen_name']; //should be set to username?
$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
require_once('mod/wall_upload.php');
$bebop = wall_upload_post($a);
//now that we have the img url in bbcode we can add it to the status and insert the wall item.
$_REQUEST['body']=$txt."\n\n".$bebop;
require_once('mod/item.php');
@ -634,7 +634,7 @@
if (count($lastwall)>0){
$lastwall = $lastwall[0];
$in_reply_to_status_id = '';
$in_reply_to_user_id = '';
$in_reply_to_screen_name = '';
@ -642,9 +642,9 @@
$in_reply_to_status_id=$lastwall['parent'];
$in_reply_to_user_id = $lastwall['reply_uid'];
$in_reply_to_screen_name = $lastwall['reply_author'];
}
}
$status_info = array(
'text' => html2plain(bbcode($lastwall['body']), 0),
'text' => html2plain(bbcode($lastwall['body'], false, false, true), 0),
'truncated' => false,
'created_at' => api_date($lastwall['created']),
'in_reply_to_status_id' => $in_reply_to_status_id,
@ -699,11 +699,11 @@
$in_reply_to_status_id=$lastwall['parent'];
$in_reply_to_user_id = $lastwall['reply_uid'];
$in_reply_to_screen_name = $lastwall['reply_author'];
}
}
$user_info['status'] = array(
'created_at' => api_date($lastwall['created']),
'id' => $lastwall['contact-id'],
'text' => html2plain(bbcode($lastwall['body']), 0),
'text' => html2plain(bbcode($lastwall['body'], false, false, true), 0),
'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'),
'truncated' => false,
'in_reply_to_status_id' => $in_reply_to_status_id,
@ -1042,21 +1042,27 @@
$myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname'];
$myurl = substr($myurl,strpos($myurl,'://')+3);
$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
//$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
$myurl = str_replace('www.','',$myurl);
$diasp_url = str_replace('/profile/','/u/',$myurl);
if (get_config('system','use_fulltext_engine'))
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($diasp_url))
);
else
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ",
dbesc(protect_sprintf('%' . $myurl)),
dbesc(protect_sprintf('%' . $myurl . ']%')),
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
);
/* if (get_config('system','use_fulltext_engine'))
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($diasp_url))
);
else
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ",
dbesc(protect_sprintf('%' . $myurl)),
dbesc(protect_sprintf('%' . $myurl . ']%')),
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
);
*/
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl))
);
if ($max_id > 0)
$sql_extra .= ' AND `item`.`id` <= '.intval($max_id);
@ -1299,11 +1305,11 @@
$ret['text'] = bbcode($item['body']);
}
elseif ($_GET["getText"] == "plain") {
$ret['text'] = html2plain(bbcode($item['body']), 0);
$ret['text'] = html2plain(bbcode($item['body'], false, false, true), 0);
}
}
else {
$ret['text'] = $item['title']."\n".html2plain(bbcode($item['body']), 0);
$ret['text'] = $item['title']."\n".html2plain(bbcode($item['body'], false, false, true), 0);
}
if (isset($_GET["getUserObjects"]) && $_GET["getUserObjects"] == "false") {
unset($ret['sender']);
@ -1347,7 +1353,7 @@
}
// Workaround for ostatus messages where the title is identically to the body
$statusbody = trim(html2plain(bbcode($item['body']), 0));
$statusbody = trim(html2plain(bbcode($item['body'], false, false, true), 0));
$statustitle = trim($item['title']);
if (($statustitle != '') and (strpos($statusbody, $statustitle) !== false))

View file

@ -278,10 +278,39 @@ function bb_ShareAttributes($match) {
return($text);
}
function bb_ShareAttributesSimple($match) {
$attributes = $match[1];
$author = "";
preg_match("/author='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
$author = html_entity_decode($matches[1],ENT_QUOTES,'UTF-8');
preg_match('/author="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "")
$author = $matches[1];
$profile = "";
preg_match("/profile='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
$profile = $matches[1];
preg_match('/profile="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "")
$profile = $matches[1];
$text = "<br />".html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8').' <a href="'.$profile.'">'.$author."</a>: <br />»".$match[2]."«";
return($text);
}
// BBcode 2 HTML was written by WAY2WEB.net
// extended to work with Mistpark/Friendica - Mike Macgirvin
function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = false) {
$stamp1 = microtime(true);
$a = get_app();
@ -340,13 +369,14 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = str_replace("\r\n","\n", $Text);
// removing multiplicated newlines
// $search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]");
// $replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]");
// do {
// $oldtext = $Text;
// $Text = str_replace($search, $replace, $Text);
// } while ($oldtext != $Text);
if (get_config("system", "remove_multiplicated_lines")) {
$search = array("\n\n\n", "\n ", " \n", "[/quote]\n\n", "\n[/quote]");
$replace = array("\n\n", "\n", "\n", "[/quote]\n", "[/quote]");
do {
$oldtext = $Text;
$Text = str_replace($search, $replace, $Text);
} while ($oldtext != $Text);
}
$Text = str_replace(array("\r","\n"), array('<br />','<br />'), $Text);
@ -515,7 +545,10 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
// Shared content
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text);
if (!$simplehtml)
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributes",$Text);
else
$Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism","bb_ShareAttributesSimple",$Text);
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
@ -617,7 +650,8 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
// Clean up the HTML by loading and saving the HTML with the DOM
// Only do it when it has to be done - for performance reasons
if (!$tryoembed) {
// Update: Now it is done every time - since bad structured html can break a whole page
//if (!$tryoembed) {
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
@ -632,10 +666,12 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
$Text = str_replace('<br></li>','</li>', $Text);
$Text = mb_convert_encoding($Text, "UTF-8", 'HTML-ENTITIES');
}
//}
call_hooks('bbcode',$Text);
$a->save_timestamp($stamp1, "parser");
return $Text;
}

View file

@ -369,7 +369,6 @@ function visible_activity($item) {
if(!function_exists('conversation')) {
function conversation(&$a, $items, $mode, $update, $preview = false) {
require_once('include/bbcode.php');
$ssl_state = ((local_user()) ? true : false);
@ -524,7 +523,26 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$tags=array();
$hashtags = array();
$mentions = array();
foreach(explode(',',$item['tag']) as $tag){
$taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
foreach($taglist as $tag) {
if ($tag["url"] == "")
$tag["url"] = $searchpath.strtolower($tag["term"]);
if ($tag["type"] == TERM_HASHTAG) {
$hashtags[] = "#<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
$prefix = "#";
} elseif ($tag["type"] == TERM_MENTION) {
$mentions[] = "@<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
$prefix = "@";
}
$tags[] = $prefix."<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
}
/*foreach(explode(',',$item['tag']) as $tag){
$tag = trim($tag);
if ($tag!="") {
$t = bbcode($tag);
@ -534,7 +552,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
elseif($t[0] == '@')
$mentions[] = $t;
}
}
}*/
$sp = false;
$profile_link = best_link_url($item,$sp);

View file

@ -23,6 +23,9 @@ class dba {
public $error = false;
function __construct($server,$user,$pass,$db,$install = false) {
global $a;
$stamp1 = microtime(true);
$server = trim($server);
$user = trim($user);
@ -64,6 +67,8 @@ class dba {
if(! $install)
system_unavailable();
}
$a->save_timestamp($stamp1, "network");
}
public function getdb() {
@ -78,18 +83,19 @@ class dba {
$this->error = '';
if(x($a->config,'system') && x($a->config['system'],'db_log'))
$stamp1 = microtime(true);
$stamp1 = microtime(true);
if($this->mysqli)
$result = @$this->db->query($sql);
else
$result = @mysql_query($sql,$this->db);
$stamp2 = microtime(true);
$duration = (float)($stamp2-$stamp1);
if(x($a->config,'system') && x($a->config['system'],'db_log')) {
$stamp2 = microtime(true);
$duration = round($stamp2-$stamp1, 3);
if ($duration > $a->config["system"]["db_loglimit"]) {
if (($duration > $a->config["system"]["db_loglimit"])) {
$duration = round($duration, 3);
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
@file_put_contents($a->config["system"]["db_log"], $duration."\t".
basename($backtrace[1]["file"])."\t".
@ -162,6 +168,7 @@ class dba {
}
}
$a->save_timestamp($stamp1, "database");
if($this->debug)
logger('dba: ' . printable(print_r($r, true)));

View file

@ -559,7 +559,7 @@ function diaspora_decode($importer,$xml) {
}
function diaspora_request($importer,$xml) {
$a = get_app();
@ -569,7 +569,7 @@ function diaspora_request($importer,$xml) {
if(! $sender_handle || ! $recipient_handle)
return;
$contact = diaspora_get_contact_by_handle($importer['uid'],$sender_handle);
if($contact) {
@ -754,6 +754,20 @@ function diaspora_request($importer,$xml) {
}
function diaspora_post_allow($importer,$contact) {
// perhaps we were already sharing with this person. Now they're sharing with us.
// That makes us friends.
// Normally this should have handled by getting a request - but this could get lost
if($contact['rel'] == CONTACT_IS_FOLLOWER && $importer['page-flags'] != PAGE_COMMUNITY) {
q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval(CONTACT_IS_FRIEND),
intval($contact['id']),
intval($importer['uid'])
);
$contact['rel'] = CONTACT_IS_FRIEND;
logger('diaspora_post_allow: defining user '.$contact["nick"].' as friend');
}
if(($contact['blocked']) || ($contact['readonly']) || ($contact['archive']))
return false;
if($contact['rel'] == CONTACT_IS_SHARING || $contact['rel'] == CONTACT_IS_FRIEND)

View file

@ -48,9 +48,9 @@ function new_contact($uid,$url,$interactive = false) {
$myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']);
else
$myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname());
goaway($ret['request'] . "&addr=$myaddr");
// NOTREACHED
}
}
@ -61,7 +61,7 @@ function new_contact($uid,$url,$interactive = false) {
return $result;
}
}

View file

@ -5,7 +5,10 @@ require_once('include/oembed.php');
require_once('include/salmon.php');
require_once('include/crypto.php');
require_once('include/Photo.php');
require_once('include/tags.php');
require_once('include/text.php');
require_once('include/email.php');
require_once('include/ostatus_conversation.php');
function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) {
@ -26,7 +29,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
}
}
// default permissions - anonymous user
@ -238,7 +241,7 @@ function construct_activity_object($item) {
$r->link = str_replace('&','&amp;', $r->link);
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
$o .= $r->link;
}
}
else
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
}
@ -270,7 +273,7 @@ function construct_activity_target($item) {
$r->link = str_replace('&','&amp;', $r->link);
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
$o .= $r->link;
}
}
else
$o .= '<link rel="alternate" type="text/html" href="' . xmlify($r->link) . '" />' . "\r\n";
}
@ -670,7 +673,7 @@ function get_atom_elements($feed,$item) {
}
// translate OStatus unfollow to activity streams if it happened to get selected
if((x($res,'verb')) && ($res['verb'] === 'http://ostatus.org/schema/1.0/unfollow'))
$res['verb'] = ACTIVITY_UNFOLLOW;
@ -721,7 +724,7 @@ function get_atom_elements($feed,$item) {
if($child[NAMESPACE_ACTIVITY]['object-type'][0]['data']) {
$res['object-type'] = $child[NAMESPACE_ACTIVITY]['object-type'][0]['data'];
$res['object'] .= '<type>' . $child[NAMESPACE_ACTIVITY]['object-type'][0]['data'] . '</type>' . "\n";
}
}
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'id') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'])
$res['object'] .= '<id>' . $child[SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'] . '</id>' . "\n";
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'link') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['link'])
@ -759,7 +762,7 @@ function get_atom_elements($feed,$item) {
$child = $rawobj[0]['child'];
if($child[NAMESPACE_ACTIVITY]['object-type'][0]['data']) {
$res['target'] .= '<type>' . $child[NAMESPACE_ACTIVITY]['object-type'][0]['data'] . '</type>' . "\n";
}
}
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'id') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'])
$res['target'] .= '<id>' . $child[SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'] . '</id>' . "\n";
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'link') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['link'])
@ -829,15 +832,30 @@ function get_atom_elements($feed,$item) {
}
}
// Search for ostatus conversation url
$links = $item->feed->data["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["feed"][0]["child"][SIMPLEPIE_NAMESPACE_ATOM_10]["entry"][0]["child"]["http://www.w3.org/2005/Atom"]["link"];
if (is_array($links)) {
foreach ($links as $link) {
$conversation = array_shift($link["attribs"]);
if ($conversation["rel"] == "ostatus:conversation") {
$res["ostatus_conversation"] = $conversation["href"];
logger('get_atom_elements: found conversation url '.$res["ostatus_conversation"]);
}
};
}
$arr = array('feed' => $feed, 'item' => $item, 'result' => $res);
call_hooks('parse_atom', $arr);
//if (($res["title"] != "") or (strpos($res["body"], "RT @") > 0)) {
//if (strpos($res["body"], "RT @") !== false) {
// $debugfile = tempnam("/home/ike/log", "item-res2-");
// file_put_contents($debugfile, serialize($arr));
//}
/*if (strpos($res["body"], "@") !== false) {
$debugfile = tempnam("/var/www/virtual/pirati.ca/phptmp/", "item-res2-");
file_put_contents($debugfile, serialize($arr));
}*/
return $res;
}
@ -876,13 +894,22 @@ function item_store($arr,$force_parent = false) {
unset($arr['dsprsig']);
}
// if an OStatus conversation url was passed in, it is stored and then
// removed from the array.
$ostatus_conversation = null;
if (isset($arr["ostatus_conversation"])) {
$ostatus_conversation = $arr["ostatus_conversation"];
unset($arr["ostatus_conversation"]);
}
if(x($arr, 'gravity'))
$arr['gravity'] = intval($arr['gravity']);
elseif($arr['parent-uri'] === $arr['uri'])
$arr['gravity'] = 0;
elseif(activity_match($arr['verb'],ACTIVITY_POST))
$arr['gravity'] = 6;
else
else
$arr['gravity'] = 6; // extensible catchall
if(! x($arr,'type'))
@ -898,8 +925,23 @@ function item_store($arr,$force_parent = false) {
require_once('library/langdet/Text/LanguageDetect.php');
$naked_body = preg_replace('/\[(.+?)\]/','',$arr['body']);
$l = new Text_LanguageDetect;
$lng = $l->detectConfidence($naked_body);
$arr['postopts'] = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
//$lng = $l->detectConfidence($naked_body);
//$arr['postopts'] = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
$lng = $l->detect($naked_body, 3);
if (sizeof($lng) > 0) {
$postopts = "";
foreach ($lng as $language => $score) {
if ($postopts == "")
$postopts = "lang=";
else
$postopts .= ":";
$postopts .= $language.";".$score;
}
$arr['postopts'] = $postopts;
}
}
$arr['wall'] = ((x($arr,'wall')) ? intval($arr['wall']) : 0);
@ -952,9 +994,9 @@ function item_store($arr,$force_parent = false) {
$deny_cid = $arr['deny_cid'];
$deny_gid = $arr['deny_gid'];
}
else {
else {
// find the parent and snarf the item id and ACL's
// find the parent and snarf the item id and ACLs
// and anything else we need to inherit
$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d ORDER BY `id` ASC LIMIT 1",
@ -1017,7 +1059,7 @@ function item_store($arr,$force_parent = false) {
logger('item_store: item parent was not found - ignoring item');
return 0;
}
$parent_deleted = 0;
}
}
@ -1058,8 +1100,8 @@ function item_store($arr,$force_parent = false) {
if(count($r)) {
$current_post = $r[0]['id'];
logger('item_store: created item ' . $current_post);
}
else {
create_tags_from_item($r[0]['id']);
} else {
logger('item_store: could not locate created item');
return 0;
}
@ -1072,7 +1114,7 @@ function item_store($arr,$force_parent = false) {
);
}
if((! $parent_id) || ($arr['parent-uri'] === $arr['uri']))
if((! $parent_id) || ($arr['parent-uri'] === $arr['uri']))
$parent_id = $current_post;
if(strlen($allow_cid) || strlen($allow_gid) || strlen($deny_cid) || strlen($deny_gid))
@ -1093,6 +1135,11 @@ function item_store($arr,$force_parent = false) {
intval($parent_deleted),
intval($current_post)
);
create_tags_from_item($current_post);
// Complete ostatus threads
if ($ostatus_conversation)
complete_conversation($current_post, $ostatus_conversation);
$arr['id'] = $current_post;
$arr['parent'] = $parent_id;
@ -1136,6 +1183,18 @@ function item_store($arr,$force_parent = false) {
tag_deliver($arr['uid'],$current_post);
// Store the fresh generated item into the cache
$cachefile = get_cachefile($arr["guid"]."-".hash("md5", $arr['body']));
if (($cachefile != '') AND !file_exists($cachefile)) {
$s = prepare_text($arr['body']);
$a = get_app();
$stamp1 = microtime(true);
file_put_contents($cachefile, $s);
$a->save_timestamp($stamp1, "file");
logger('item_store: put item '.$current_post.' into cachefile '.$cachefile);
}
return $current_post;
}
@ -1272,7 +1331,7 @@ function tag_deliver($uid,$item_id) {
intval($item_id)
);
proc_run('php','include/notifier.php','tgroup',$item_id);
proc_run('php','include/notifier.php','tgroup',$item_id);
}
@ -1343,7 +1402,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
if($contact['duplex'] && $contact['dfrn-id'])
$idtosend = '0:' . $orig_id;
if($contact['duplex'] && $contact['issued-id'])
$idtosend = '1:' . $orig_id;
$idtosend = '1:' . $orig_id;
$rino = ((function_exists('mcrypt_encrypt')) ? 1 : 0);
@ -1361,7 +1420,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
break;
case SSL_POLICY_SELFSIGN:
$ssl_policy = 'self';
break;
break;
case SSL_POLICY_NONE:
default:
$ssl_policy = 'none';
@ -1414,7 +1473,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
intval(($perm == 'rw') ? 1 : 0),
intval($contact['id'])
);
$contact['writable'] = (string) 1 - intval($contact['writable']);
$contact['writable'] = (string) 1 - intval($contact['writable']);
}
}
@ -1558,7 +1617,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
logger('consume_feed: empty input');
return;
}
$feed = new SimplePie();
$feed->set_raw_data($xml);
if($datedir)
@ -1594,7 +1653,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if($elems['name'][0]['attribs'][NAMESPACE_DFRN]['updated']) {
$name_updated = $elems['name'][0]['attribs'][NAMESPACE_DFRN]['updated'];
$new_name = $elems['name'][0]['data'];
}
}
if((x($elems,'link')) && ($elems['link'][0]['attribs']['']['rel'] === 'photo') && ($elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated'])) {
$photo_timestamp = datetime_convert('UTC','UTC',$elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated']);
$photo_url = $elems['link'][0]['attribs']['']['href'];
@ -1637,12 +1696,12 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
intval($contact['uid'])
);
}
$img->scaleImageSquare(175);
$hash = $resource_id;
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), 'Contact Photos', 4);
$img->scaleImage(80);
$r = $img->store($contact['uid'], $contact['id'], $hash, basename($photo_url), 'Contact Photos', 5);
@ -1651,7 +1710,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
$a = get_app();
q("UPDATE `contact` SET `avatar-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s'
q("UPDATE `contact` SET `avatar-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s'
WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-4.'.$img->getExt()),
@ -1701,7 +1760,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
* to contain a sparkle link and perhaps a photo.
*
*/
$bdtext = sprintf( t('%s\'s birthday'), $contact['name']);
$bdtext2 = sprintf( t('Happy Birthday %s'), ' [url=' . $contact['url'] . ']' . $contact['name'] . '[/url]' ) ;
@ -1718,7 +1777,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc($bdtext2),
dbesc('birthday')
);
// update bdyear
@ -1810,6 +1869,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc(implode(',',$newtags)),
intval($i[0]['id'])
);
create_tags_from_item($i[0]['id']);
}
}
}
@ -1824,6 +1884,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc($item['uri']),
intval($importer['uid'])
);
create_tags_from_itemuri($item['uri'], $importer['uid']);
}
else {
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
@ -1834,6 +1895,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc($uri),
intval($importer['uid'])
);
create_tags_from_itemuri($uri, $importer['uid']);
if($item['last-child']) {
// ensure that last-child is set in case the comment that had it just got wiped.
q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
@ -1947,6 +2009,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc($item_id),
intval($importer['uid'])
);
create_tags_from_itemuri($item_id, $importer['uid']);
}
// update last-child if it changes
@ -1988,7 +2051,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc($parent_uri)
);
if($r && count($r))
continue;
continue;
}
if(($datarray['verb'] === ACTIVITY_TAG) && ($datarray['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
@ -2011,6 +2074,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
intval($r[0]['id'])
);
create_tags_from_item($r[0]['id']);
}
}
}
@ -2094,6 +2158,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
dbesc($item_id),
intval($importer['uid'])
);
create_tags_from_itemuri($item_id, $importer['uid']);
}
// update last-child if it changes
@ -2231,7 +2296,7 @@ function local_delivery($importer,$data) {
if($elems['name'][0]['attribs'][NAMESPACE_DFRN]['updated']) {
$name_updated = $elems['name'][0]['attribs'][NAMESPACE_DFRN]['updated'];
$new_name = $elems['name'][0]['data'];
}
}
if((x($elems,'link')) && ($elems['link'][0]['attribs']['']['rel'] === 'photo') && ($elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated'])) {
$photo_timestamp = datetime_convert('UTC','UTC',$elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated']);
$photo_url = $elems['link'][0]['attribs']['']['href'];
@ -2270,12 +2335,12 @@ function local_delivery($importer,$data) {
intval($importer['importer_uid'])
);
}
$img->scaleImageSquare(175);
$hash = $resource_id;
$r = $img->store($importer['importer_uid'], $importer['id'], $hash, basename($photo_url), 'Contact Photos', 4);
$img->scaleImage(80);
$r = $img->store($importer['importer_uid'], $importer['id'], $hash, basename($photo_url), 'Contact Photos', 5);
@ -2284,7 +2349,7 @@ function local_delivery($importer,$data) {
$a = get_app();
q("UPDATE `contact` SET `avatar-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s'
q("UPDATE `contact` SET `avatar-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s'
WHERE `uid` = %d AND `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc($a->get_baseurl() . '/photo/' . $hash . '-4.'.$img->getExt()),
@ -2343,17 +2408,17 @@ function local_delivery($importer,$data) {
/** relocated user must have original key pair */
/*$newloc['pubkey'] = notags(unxmlify($base['pubkey'][0]['data']));
$newloc['prvkey'] = notags(unxmlify($base['prvkey'][0]['data']));*/
logger("items:relocate contact ".print_r($newloc, true).print_r($importer, true), LOGGER_DEBUG);
// update contact
$r = q("SELECT photo, url FROM contact WHERE id=%d AND uid=%d;",
intval($importer['id']),
intval($importer['importer_uid']));
if ($r === false)
if ($r === false)
return 1;
$old = $r[0];
$x = q("UPDATE contact SET
name = '%s',
photo = '%s',
@ -2396,7 +2461,7 @@ function local_delivery($importer,$data) {
if ($x === false)
return 1;
}
// TODO
// merge with current record, current contents have priority
// update record, set url-updated
@ -2470,7 +2535,7 @@ function local_delivery($importer,$data) {
$hash = random_string();
$r = q("INSERT INTO `intro` ( `uid`, `fid`, `contact-id`, `note`, `hash`, `datetime`, `blocked` )
VALUES( %d, %d, %d, '%s', '%s', '%s', %d )",
intval($fsugg['uid']),
@ -2524,7 +2589,7 @@ function local_delivery($importer,$data) {
$msg['uri'] = notags(unxmlify($base['id'][0]['data']));
$msg['parent-uri'] = notags(unxmlify($base['in-reply-to'][0]['data']));
$msg['created'] = datetime_convert(notags(unxmlify('UTC','UTC',$base['sentdate'][0]['data'])));
dbesc_array($msg);
$r = dbq("INSERT INTO `mail` (`" . implode("`, `", array_keys($msg))
@ -2548,12 +2613,12 @@ function local_delivery($importer,$data) {
'verb' => ACTIVITY_POST,
'otype' => 'mail'
);
notification($notif_params);
return 0;
// NOTREACHED
}
}
$community_page = 0;
$rawtags = $feed->get_feed_tags( NAMESPACE_DFRN, 'community');
@ -2567,7 +2632,7 @@ function local_delivery($importer,$data) {
);
$importer['forum'] = (string) $community_page;
}
logger('local_delivery: feed item count = ' . $feed->get_item_quantity());
// process any deleted entries
@ -2677,14 +2742,14 @@ function local_delivery($importer,$data) {
if(count($i)) {
// For tags, the owner cannot remove the tag on the author's copy of the post.
$owner_remove = (($item['contact-id'] == $i[0]['contact-id']) ? true: false);
$author_remove = (($item['origin'] && $item['self']) ? true : false);
$author_copy = (($item['origin']) ? true : false);
$author_copy = (($item['origin']) ? true : false);
if($owner_remove && $author_copy)
continue;
if($author_remove || $owner_remove) {
if($author_remove || $owner_remove) {
$tags = explode(',',$i[0]['tag']);
$newtags = array();
if(count($tags)) {
@ -2696,6 +2761,7 @@ function local_delivery($importer,$data) {
dbesc(implode(',',$newtags)),
intval($i[0]['id'])
);
create_tags_from_item($i[0]['id']);
}
}
}
@ -2710,6 +2776,7 @@ function local_delivery($importer,$data) {
dbesc($item['uri']),
intval($importer['importer_uid'])
);
create_tags_from_itemuri($item['uri'], $importer['importer_uid']);
}
else {
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
@ -2720,6 +2787,7 @@ function local_delivery($importer,$data) {
dbesc($uri),
intval($importer['importer_uid'])
);
create_tags_from_itemuri($uri, $importer['importer_uid']);
if($item['last-child']) {
// ensure that last-child is set in case the comment that had it just got wiped.
q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
@ -2727,7 +2795,7 @@ function local_delivery($importer,$data) {
dbesc($item['parent-uri']),
intval($item['uid'])
);
// who is the last child now?
// who is the last child now?
$r = q("SELECT `id` FROM `item` WHERE `parent-uri` = '%s' AND `type` != 'activity' AND `deleted` = 0 AND `uid` = %d
ORDER BY `created` DESC LIMIT 1",
dbesc($item['parent-uri']),
@ -2737,7 +2805,7 @@ function local_delivery($importer,$data) {
q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
intval($r[0]['id'])
);
}
}
}
// if this is a relayed delete, propagate it to other recipients
@ -2831,11 +2899,11 @@ function local_delivery($importer,$data) {
if(count($r)) {
$iid = $r[0]['id'];
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
// do not accept (ignore) an earlier edit than one we currently have.
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
continue;
logger('received updated comment' , LOGGER_DEBUG);
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s' WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($datarray['title']),
@ -2845,6 +2913,7 @@ function local_delivery($importer,$data) {
dbesc($item_id),
intval($importer['importer_uid'])
);
create_tags_from_itemuri($item_id, $importer['importer_uid']);
proc_run('php',"include/notifier.php","comment-import",$iid);
@ -2881,14 +2950,14 @@ function local_delivery($importer,$data) {
dbesc($datarray['verb']),
dbesc($datarray['parent-uri']),
dbesc($datarray['parent-uri'])
);
if($r && count($r))
continue;
continue;
}
if(($datarray['verb'] === ACTIVITY_TAG) && ($datarray['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
$xo = parse_xml_string($datarray['object'],false);
$xt = parse_xml_string($datarray['target'],false);
@ -2901,9 +2970,9 @@ function local_delivery($importer,$data) {
intval($importer['importer_uid'])
);
if(! count($tagp))
continue;
continue;
// extract tag, if not duplicate, and this user allows tags, add to parent item
// extract tag, if not duplicate, and this user allows tags, add to parent item
if($xo->id && $xo->content) {
$newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
@ -2917,9 +2986,10 @@ function local_delivery($importer,$data) {
intval($tagp[0]['id']),
dbesc(datetime_convert())
);
create_tags_from_item($tagp[0]['id']);
}
}
}
}
}
}
@ -2936,7 +3006,7 @@ function local_delivery($importer,$data) {
$parent = $r[0]['parent'];
$parent_uri = $r[0]['parent-uri'];
}
if(! $is_like) {
$r1 = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `uid` = %d AND `parent` = %d",
dbesc(datetime_convert()),
@ -2954,7 +3024,7 @@ function local_delivery($importer,$data) {
if($posted_id && $parent) {
proc_run('php',"include/notifier.php","comment-import","$posted_id");
if((! $is_like) && (! $importer['self'])) {
require_once('include/enotify.php');
@ -3017,6 +3087,7 @@ function local_delivery($importer,$data) {
dbesc($item_id),
intval($importer['importer_uid'])
);
create_tags_from_itemuri($item_id, $importer['importer_uid']);
}
// update last-child if it changes
@ -3053,7 +3124,7 @@ function local_delivery($importer,$data) {
dbesc($parent_uri)
);
if($r && count($r))
continue;
continue;
}
@ -3068,24 +3139,25 @@ function local_delivery($importer,$data) {
intval($importer['importer_uid'])
);
if(! count($r))
continue;
continue;
// extract tag, if not duplicate, add to parent item
// extract tag, if not duplicate, add to parent item
if($xo->content) {
if(! (stristr($r[0]['tag'],trim($xo->content)))) {
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
intval($r[0]['id'])
);
create_tags_from_item($r[0]['id']);
}
}
}
}
}
$posted_id = item_store($datarray);
// find out if our user is involved in this conversation and wants to be notified.
if(!x($datarray['type']) || $datarray['type'] != 'activity') {
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0",
@ -3099,11 +3171,11 @@ function local_delivery($importer,$data) {
// 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)) {
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;
@ -3191,6 +3263,7 @@ function local_delivery($importer,$data) {
dbesc($item_id),
intval($importer['importer_uid'])
);
create_tags_from_itemuri($item_id, $importer['importer_uid']);
}
// update last-child if it changes
@ -3314,7 +3387,7 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
// send email notification to owner?
}
else {
// create contact record
$r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `rel`,
@ -3337,7 +3410,7 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
if(count($r))
$contact_record = $r[0];
// create notification
// create notification
$hash = random_string();
if(is_array($contact_record)) {
@ -3375,7 +3448,7 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
'From: ' . 'Administrator' . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
}
}
}
@ -3445,7 +3518,7 @@ function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') {
post_url($url,$params);
logger('subscribe_to_hub: returns: ' . $a->get_curl_code(), LOGGER_DEBUG);
return;
}
@ -3778,16 +3851,16 @@ function item_expire($uid,$days) {
$expire_items = get_pconfig($uid, 'expire','items');
$expire_items = (($expire_items===false)?1:intval($expire_items)); // default if not set: 1
$expire_notes = get_pconfig($uid, 'expire','notes');
$expire_notes = (($expire_notes===false)?1:intval($expire_notes)); // default if not set: 1
$expire_starred = get_pconfig($uid, 'expire','starred');
$expire_starred = (($expire_starred===false)?1:intval($expire_starred)); // default if not set: 1
$expire_photos = get_pconfig($uid, 'expire','photos');
$expire_photos = (($expire_photos===false)?0:intval($expire_photos)); // default if not set: 0
logger('expire: # items=' . count($r). "; expire items: $expire_items, expire notes: $expire_notes, expire starred: $expire_starred, expire photos: $expire_photos");
foreach($r as $item) {
@ -3910,6 +3983,7 @@ function drop_item($id,$interactive = true) {
dbesc(datetime_convert()),
intval($item['id'])
);
create_tags_from_item($item['id']);
// clean up categories and tags so they don't end up as orphans
@ -3975,6 +4049,7 @@ function drop_item($id,$interactive = true) {
dbesc($item['parent-uri']),
intval($item['uid'])
);
create_tags_from_item($item['parent-uri'], $item['uid']);
// ignore the result
}
else {
@ -3984,7 +4059,7 @@ function drop_item($id,$interactive = true) {
dbesc($item['parent-uri']),
intval($item['uid'])
);
// who is the last child now?
// who is the last child now?
$r = q("SELECT `id` FROM `item` WHERE `parent-uri` = '%s' AND `type` != 'activity' AND `deleted` = 0 AND `uid` = %d ORDER BY `edited` DESC LIMIT 1",
dbesc($item['parent-uri']),
intval($item['uid'])
@ -4016,7 +4091,7 @@ function drop_item($id,$interactive = true) {
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
//NOTREACHED
}
}

View file

@ -7,10 +7,12 @@
if(! function_exists('fetch_url')) {
function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_content=Null) {
$stamp1 = microtime(true);
$a = get_app();
$ch = @curl_init($url);
if(($redirects > 8) || (! $ch))
if(($redirects > 8) || (! $ch))
return false;
@curl_setopt($ch, CURLOPT_HEADER, true);
@ -78,9 +80,17 @@ 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);
$newurl = trim(array_pop($matches));
$new_location_info = @parse_url($curl_info["redirect_url"]);
$old_location_info = @parse_url($curl_info["url"]);
$newurl = $curl_info["redirect_url"];
if (($new_location_info["path"] == "") AND ($new_location_info["host"] != ""))
$newurl = $new_location_info["scheme"]."://".$new_location_info["host"].$old_location_info["path"];
//$matches = array();
//preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
//$newurl = trim(array_pop($matches));
if(strpos($newurl,'/') === 0)
$newurl = $url . $newurl;
$url_parsed = @parse_url($newurl);
@ -95,6 +105,9 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
$body = substr($s,strlen($header));
$a->set_curl_headers($header);
@curl_close($ch);
$a->save_timestamp($stamp1, "network");
return($body);
}}
@ -102,6 +115,9 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
if(! function_exists('post_url')) {
function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0) {
$stamp1 = microtime(true);
$a = get_app();
$ch = curl_init($url);
if(($redirects > 8) || (! $ch))
@ -184,6 +200,9 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
$a->set_curl_headers($header);
curl_close($ch);
$a->save_timestamp($stamp1, "network");
return($body);
}}
@ -293,9 +312,9 @@ function webfinger_dfrn($s,&$hcard) {
if($link['@attributes']['rel'] === NAMESPACE_DFRN)
$profile_link = $link['@attributes']['href'];
if($link['@attributes']['rel'] === NAMESPACE_OSTATUSSUB)
$profile_link = 'stat:' . $link['@attributes']['template'];
$profile_link = 'stat:' . $link['@attributes']['template'];
if($link['@attributes']['rel'] === 'http://microformats.org/profile/hcard')
$hcard = $link['@attributes']['href'];
$hcard = $link['@attributes']['href'];
}
}
return $profile_link;
@ -361,6 +380,7 @@ function lrdd($uri, $debug = false) {
logger('lrdd: constructed url: ' . $url);
$xml = fetch_url($url);
$headers = $a->get_curl_headers();
if (! $xml)
@ -410,7 +430,7 @@ function lrdd($uri, $debug = false) {
elseif(x($link['@attributes'],'href'))
$href = $link['@attributes']['href'];
}
}
}
}
if((! isset($tpl)) || (! strpos($tpl,'{uri}')))
@ -429,7 +449,7 @@ function lrdd($uri, $debug = false) {
$lines = explode("\n",$headers);
if(count($lines)) {
foreach($lines as $line) {
foreach($lines as $line) {
if((stristr($line,'link:')) && preg_match('/<([^>].*)>.*rel\=[\'\"]lrdd[\'\"]/',$line,$matches)) {
return(fetch_xrd_links($matches[1]));
break;
@ -475,7 +495,7 @@ function lrdd($uri, $debug = false) {
$lines = explode("\n",$headers);
if(count($lines)) {
foreach($lines as $line) {
foreach($lines as $line) {
// TODO alter the following regex to support multiple relations (space separated)
if((stristr($line,'link:')) && preg_match('/<([^>].*)>.*rel\=[\'\"]lrdd[\'\"]/',$line,$matches)) {
$pagelink = $matches[1];
@ -591,14 +611,14 @@ function fetch_xrd_links($url) {
if(! function_exists('validate_url')) {
function validate_url(&$url) {
// no naked subdomains (allow localhost for tests)
if(strpos($url,'.') === false && strpos($url,'/localhost/') === false)
return false;
if(substr($url,0,4) != 'http')
$url = 'http://' . $url;
$h = @parse_url($url);
if(($h) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
return true;
}
@ -829,8 +849,11 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
$i = fetch_url($scaled);
$cachefile = get_cachefile(hash("md5", $scaled));
if ($cachefile != '')
if ($cachefile != '') {
$stamp1 = microtime(true);
file_put_contents($cachefile, $i);
$a->save_timestamp($stamp1, "file");
}
// guess mimetype from headers or filename
$type = guess_image_type($mtch[1],true);
@ -920,7 +943,7 @@ function fix_contact_ssl_policy(&$contact,$new_policy) {
* Return: The parsed XML in an array form. Use print_r() to see the resulting array structure.
* Examples: $array = xml2array(file_get_contents('feed.xml'));
* $array = xml2array(file_get_contents('feed.xml', true, 1, 'attribute'));
*/
*/
function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = 'attribute') {
if(!$contents) return array();
@ -978,7 +1001,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
$result = array();
$attributes_data = array();
if(isset($value)) {
if($priority == 'tag') $result = $value;
else $result['value'] = $value; // Put the value in a assoc array if we are in the 'Attribute' mode
@ -994,7 +1017,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
// See tag status and do the needed.
if($namespaces && strpos($tag,':')) {
$namespc = substr($tag,0,strrpos($tag,':'));
$namespc = substr($tag,0,strrpos($tag,':'));
$tag = strtolower(substr($tag,strlen($namespc)+1));
$result['@namespace'] = $namespc;
}
@ -1017,7 +1040,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
} else { // This section will make the value an array if multiple tags with the same name appear together
$current[$tag] = array($current[$tag],$result); // This will combine the existing item and the new item together to make an array
$repeated_tag_index[$tag.'_'.$level] = 2;
if(isset($current[$tag.'_attr'])) { // The attribute of the last(0th) tag must be moved as well
$current[$tag]['0_attr'] = $current[$tag.'_attr'];
unset($current[$tag.'_attr']);
@ -1040,7 +1063,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
// ...push the new element into that array.
$current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
if($priority == 'tag' and $get_attributes and $attributes_data) {
$current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
}
@ -1051,11 +1074,11 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
$repeated_tag_index[$tag.'_'.$level] = 1;
if($priority == 'tag' and $get_attributes) {
if(isset($current[$tag.'_attr'])) { // The attribute of the last(0th) tag must be moved as well
$current[$tag]['0_attr'] = $current[$tag.'_attr'];
unset($current[$tag.'_attr']);
}
if($attributes_data) {
$current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
}
@ -1068,6 +1091,6 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority =
$current = &$parent[$level-1];
}
}
return($xml_array);
}
}

View file

@ -0,0 +1,173 @@
<?php
define('OSTATUS_DEFAULT_POLL_INTERVAL', 30); // given in minutes
function check_conversations() {
$last = get_config('system','ostatus_last_poll');
$poll_interval = intval(get_config('system','ostatus_poll_interval'));
if(! $poll_interval)
$poll_interval = OSTATUS_DEFAULT_POLL_INTERVAL;
if($last) {
$next = $last + ($poll_interval * 60);
if($next > time()) {
logger('complete_conversation: poll intervall not reached');
return;
}
}
logger('complete_conversation: cron_start');
$start = date("Y-m-d H:i:s", time() - 86400);
$conversations = q("SELECT * FROM `term` WHERE `type` = 7 AND `term` > '%s'",
dbesc($start));
foreach ($conversations AS $conversation) {
$id = $conversation['oid'];
$url = $conversation['url'];
complete_conversation($id, $url);
}
logger('complete_conversation: cron_end');
set_config('system','ostatus_last_poll', time());
}
function complete_conversation($itemid, $conversation_url, $only_add_conversation = false) {
global $a;
//logger('complete_conversation: completing conversation url '.$conversation_url.' for id '.$itemid);
$messages = q("SELECT `uid`, `parent` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
if (!$messages)
return;
$message = $messages[0];
// Store conversation url if not done before
$conversation = q("SELECT `url` FROM `term` WHERE `uid` = %d AND `oid` = %d AND `otype` = %d AND `type` = %d",
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION));
if (!$conversation) {
$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`) VALUES (%d, %d, %d, %d, '%s', '%s')",
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc(datetime_convert()), dbesc($conversation_url));
logger('complete_conversation: Storing conversation url '.$conversation_url.' for id '.$itemid);
}
if ($only_add_conversation)
return;
// Get the parent
$parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
intval($message["uid"]), intval($message["parent"]));
if (!$parents)
return;
$parent = $parents[0];
require_once('include/html2bbcode.php');
require_once('include/items.php');
$conv = str_replace("/conversation/", "/api/statusnet/conversation/", $conversation_url).".as";
logger('complete_conversation: fetching conversation url '.$conv.' for '.$itemid);
$conv_as = fetch_url($conv);
if ($conv_as) {
$conv_as = str_replace(',"statusnet:notice_info":', ',"statusnet_notice_info":', $conv_as);
$conv_as = json_decode($conv_as);
$first_id = "";
$items = array_reverse($conv_as->items);
foreach ($items as $single_conv) {
if ($first_id == "") {
$first_id = $single_conv->id;
$new_parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
intval($message["uid"]), dbesc($first_id));
if ($new_parents) {
$parent = $new_parents[0];
logger('complete_conversation: adopting new parent '.$parent["id"].' for '.$itemid);
} else {
$parent["id"] = 0;
$parent["uri"] = $first_id;
}
}
if (isset($single_conv->context->inReplyTo->id))
$parent_uri = $single_conv->context->inReplyTo->id;
else
$parent_uri = $parent["uri"];
if ($parent["id"] != 0) {
$message_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
intval($message["uid"]), dbesc($single_conv->id));
if ($message_exists) {
$existing_message = $message_exists[0];
$r = q("UPDATE `item` SET `parent` = %d, `parent-uri` = '%s', `thr-parent` = '%s' WHERE `id` = %d LIMIT 1",
intval($parent["id"]),
dbesc($parent["uri"]),
dbesc($parent_uri),
intval($existing_message["id"]));
continue;
}
}
$arr = array();
$arr["uri"] = $single_conv->id;
$arr["plink"] = $single_conv->id;
$arr["uid"] = $message["uid"];
$arr["contact-id"] = $parent["contact-id"]; // To-Do
if ($parent["id"] != 0)
$arr["parent"] = $parent["id"];
$arr["parent-uri"] = $parent["uri"];
$arr["thr-parent"] = $parent_uri;
$arr["created"] = $single_conv->published;
$arr["edited"] = $single_conv->published;
//$arr["owner-name"] = $single_conv->actor->contact->displayName;
$arr["owner-name"] = $single_conv->actor->contact->preferredUsername;
$arr["owner-link"] = $single_conv->actor->id;
$arr["owner-avatar"] = $single_conv->actor->image->url;
//$arr["author-name"] = $single_conv->actor->contact->displayName;
$arr["author-name"] = $single_conv->actor->contact->preferredUsername;
$arr["author-link"] = $single_conv->actor->id;
$arr["author-avatar"] = $single_conv->actor->image->url;
$arr["body"] = html2bbcode($single_conv->content);
$arr["app"] = strip_tags($single_conv->statusnet_notice_info->source);
if ($arr["app"] == "")
$arr["app"] = $single_conv->provider->displayName;
$arr["verb"] = $parent["verb"];
$arr["visible"] = $parent["visible"];
$arr["location"] = $single_conv->location->displayName;
$arr["coord"] = trim($single_conv->location->lat." ".$single_conv->location->lon);
if ($arr["location"] == "")
unset($arr["location"]);
if ($arr["coord"] == "")
unset($arr["coord"]);
$newitem = item_store($arr);
// Add the conversation entry (but don't fetch the whole conversation)
complete_conversation($newitem, $conversation_url, true);
// If the newly created item is the top item then change the parent settings of the thread
if ($newitem AND ($arr["uri"] == $first_id)) {
logger('complete_conversation: setting new parent to id '.$newitem);
$new_parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
intval($message["uid"]), intval($newitem));
if ($new_parents) {
$parent = $new_parents[0];
logger('complete_conversation: done changing parents to parent '.$newitem);
}
/*logger('complete_conversation: changing parents to parent '.$newitem.' old parent: '.$parent["id"].' new uri: '.$arr["uri"]);
$r = q("UPDATE `item` SET `parent` = %d, `parent-uri` = '%s' WHERE `parent` = %d",
intval($newitem),
dbesc($arr["uri"]),
intval($parent["id"]));
logger('complete_conversation: done changing parents to parent '.$newitem.' '.print_r($r, true));*/
}
}
}
}
?>

View file

@ -8,7 +8,7 @@ function uninstall_plugin($plugin){
q("DELETE FROM `addon` WHERE `name` = '%s' ",
dbesc($plugin)
);
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_uninstall')) {
$func = $plugin . '_uninstall';
@ -28,9 +28,9 @@ function install_plugin($plugin) {
if(function_exists($plugin . '_install')) {
$func = $plugin . '_install';
$func();
$plugin_admin = (function_exists($plugin."_plugin_admin")?1:0);
$r = q("INSERT INTO `addon` (`name`, `installed`, `timestamp`, `plugin_admin`) VALUES ( '%s', 1, %d , %d ) ",
dbesc($plugin),
intval($t),
@ -158,6 +158,8 @@ function load_hooks() {
if(! function_exists('call_hooks')) {
function call_hooks($name, &$data = null) {
$stamp1 = microtime(true);
$a = get_app();
if((is_array($a->hooks)) && (array_key_exists($name,$a->hooks))) {
@ -173,7 +175,7 @@ function call_hooks($name, &$data = null) {
}
else {
// remove orphan hooks
q("delete from hook where hook = '%s' and file = '$s' and function = '%s' limit 1",
q("delete from hook where hook = '%s' and file = '%s' and function = '%s' limit 1",
dbesc($name),
dbesc($hook[0]),
dbesc($hook[1])
@ -181,7 +183,6 @@ function call_hooks($name, &$data = null) {
}
}
}
}}
@ -199,18 +200,24 @@ function call_hooks($name, &$data = null) {
if (! function_exists('get_plugin_info')){
function get_plugin_info($plugin){
$a = get_app();
$info=Array(
'name' => $plugin,
'description' => "",
'author' => array(),
'version' => ""
);
if (!is_file("addon/$plugin/$plugin.php")) return $info;
$stamp1 = microtime(true);
$f = file_get_contents("addon/$plugin/$plugin.php");
$a->save_timestamp($stamp1, "file");
$r = preg_match("|/\*.*\*/|msU", $f, $m);
if ($r){
$ll = explode("\n", $m[0]);
foreach( $ll as $l ) {
@ -230,10 +237,10 @@ function get_plugin_info($plugin){
$info[$k]=$v;
}
}
}
}
}
return $info;
}}
@ -242,7 +249,7 @@ function get_plugin_info($plugin){
/*
* parse theme comment in search of theme infos.
* like
*
*
* * Name: My Theme
* * Description: My Cool Theme
* * Version: 1.2.3
@ -270,11 +277,14 @@ function get_theme_info($theme){
$info['unsupported'] = true;
if (!is_file("view/theme/$theme/theme.php")) return $info;
$a = get_app();
$stamp1 = microtime(true);
$f = file_get_contents("view/theme/$theme/theme.php");
$a->save_timestamp($stamp1, "file");
$r = preg_match("|/\*.*\*/|msU", $f, $m);
if ($r){
$ll = explode("\n", $m[0]);
foreach( $ll as $l ) {

View file

@ -9,7 +9,7 @@ function poller_run(&$argv, &$argc){
if(is_null($a)) {
$a = new App;
}
if(is_null($db)) {
@include(".htconfig.php");
require_once("include/dba.php");
@ -57,21 +57,21 @@ function poller_run(&$argv, &$argc){
load_hooks();
logger('poller: start');
// run queue delivery process in the background
proc_run('php',"include/queue.php");
// run diaspora photo queue process in the background
proc_run('php',"include/dsprphotoq.php");
// expire any expired accounts
q("UPDATE user SET `account_expired` = 1 where `account_expired` = 0
AND `account_expires_on` != '0000-00-00 00:00:00'
AND `account_expires_on` < UTC_TIMESTAMP() ");
// delete user and contact records for recently removed accounts
$r = q("SELECT * FROM `user` WHERE `account_removed` = 1 AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
@ -81,12 +81,13 @@ function poller_run(&$argv, &$argc){
q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid']));
}
}
$abandon_days = intval(get_config('system','account_abandon_days'));
if($abandon_days < 1)
$abandon_days = 0;
// Check OStatus conversations
check_conversations();
// once daily run birthday_updates and then expire in background

127
include/tags.php Normal file
View file

@ -0,0 +1,127 @@
<?php
/*
require_once("boot.php");
if(@is_null($a)) {
$a = new App;
}
if(is_null($db)) {
@include(".htconfig.php");
require_once("dba.php");
$db = new dba($db_host, $db_user, $db_pass, $db_data);
unset($db_host, $db_user, $db_pass, $db_data);
};
$a->set_baseurl("https://pirati.ca");
*/
function create_tags_from_item($itemid) {
global $a;
$profile_base = $a->get_baseurl();
$profile_data = parse_url($profile_base);
$profile_base_friendica = $profile_data['host'].$profile_data['path']."/profile/";
$profile_base_diaspora = $profile_data['host'].$profile_data['path']."/u/";
$searchpath = $a->get_baseurl()."/search?tag=";
$messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `title`, `body`, `tag` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
if (!$messages)
return;
$message = $messages[0];
// Clean up all tags
q("DELETE FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d)",
intval(TERM_OBJ_POST),
intval($itemid),
intval(TERM_HASHTAG),
intval(TERM_MENTION));
if ($message["deleted"])
return;
$cachefile = get_cachefile($message["guid"]."-".hash("md5", $message['body']));
if (($cachefile != '') AND !file_exists($cachefile)) {
$s = prepare_text($message['body']);
$stamp1 = microtime(true);
file_put_contents($cachefile, $s);
$a->save_timestamp($stamp1, "file");
logger('create_tags_from_item: put item '.$message["id"].' into cachefile '.$cachefile);
}
$taglist = explode(",", $message["tag"]);
$tags = "";
foreach ($taglist as $tag)
if ((substr(trim($tag), 0, 1) == "#") OR (substr(trim($tag), 0, 1) == "@"))
$tags .= " ".trim($tag);
else
$tags .= " #".trim($tag);
$data = " ".$message["title"]." ".$message["body"]." ".$tags." ";
$tags = array();
$pattern = "/\W\#([^\[].*?)[\s'\".,:;\?!\[\]\/]/ism";
if (preg_match_all($pattern, $data, $matches))
foreach ($matches[1] as $match)
$tags["#".strtolower($match)] = ""; // $searchpath.strtolower($match);
$pattern = "/\W([\#@])\[url\=(.*?)\](.*?)\[\/url\]/ism";
if (preg_match_all($pattern, $data, $matches, PREG_SET_ORDER)) {
foreach ($matches as $match)
$tags[$match[1].strtolower(trim($match[3], ',.:;[]/\"?!'))] = $match[2];
}
foreach ($tags as $tag=>$link) {
if (substr(trim($tag), 0, 1) == "#") {
$type = TERM_HASHTAG;
$term = substr($tag, 1);
} elseif (substr(trim($tag), 0, 1) == "@") {
$type = TERM_MENTION;
$term = substr($tag, 1);
} else { // This shouldn't happen
$type = TERM_HASHTAG;
$term = $tag;
}
$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`) VALUES (%d, %d, %d, %d, '%s', '%s')",
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval($type), dbesc($term), dbesc($link));
// Search for mentions
if ((substr($tag, 0, 1) == '@') AND (strpos($link, $profile_base_friendica) OR strpos($link, $profile_base_diaspora))) {
$users = q("SELECT `uid` FROM `contact` WHERE self AND (`url` = '%s' OR `nurl` = '%s')", $link, $link);
foreach ($users AS $user) {
if ($user["uid"] == $message["uid"])
q("UPDATE `item` SET `mention` = 1 WHERE `id` = %d", intval($itemid));
}
}
}
}
function create_tags_from_itemuri($itemuri, $uid) {
$messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
foreach ($messages as $message)
create_tags_from_item($message["id"]);
}
function update_items() {
//$messages = q("SELECT `id` FROM `item` where tag !='' ORDER BY `created` DESC limit 10");
$messages = q("SELECT `id` FROM `item` where tag !=''");
foreach ($messages as $message)
create_tags_from_item($message["id"]);
}
//print_r($tags);
//print_r($hashtags);
//print_r($mentions);
//update_items();
//create_tags_from_item(265194);
//create_tags_from_itemuri("infoagent@diasp.org:cce94abd104c06e8", 2);
?>

View file

@ -6,16 +6,17 @@
// returns substituted string.
// WARNING: this is pretty basic, and doesn't properly handle search strings that are substrings of each other.
// For instance if 'test' => "foo" and 'testing' => "bar", testing could become either bar or fooing,
// depending on the order in which they were declared in the array.
// depending on the order in which they were declared in the array.
require_once("include/template_processor.php");
require_once("include/friendica_smarty.php");
if(! function_exists('replace_macros')) {
if(! function_exists('replace_macros')) {
function replace_macros($s,$r) {
global $t;
// $ts = microtime();
$stamp1 = microtime(true);
$a = get_app();
if($a->theme['template_engine'] === 'smarty3') {
@ -34,12 +35,12 @@ function replace_macros($s,$r) {
}
else {
$r = $t->replace($s,$r);
$output = template_unescape($r);
}
// $tt = microtime() - $ts;
// $a = get_app();
// $a->page['debug'] .= "$tt <br>\n";
$a = get_app();
$a->save_timestamp($stamp1, "rendering");
return $output;
}}
@ -438,15 +439,26 @@ function load_view_file($s) {
$lang = 'en';
$b = basename($s);
$d = dirname($s);
if(file_exists("$d/$lang/$b"))
return file_get_contents("$d/$lang/$b");
if(file_exists("$d/$lang/$b")) {
$stamp1 = microtime(true);
$content = file_get_contents("$d/$lang/$b");
$a->save_timestamp($stamp1, "file");
return $content;
}
$theme = current_theme();
if(file_exists("$d/theme/$theme/$b"))
return file_get_contents("$d/theme/$theme/$b");
return file_get_contents($s);
if(file_exists("$d/theme/$theme/$b")) {
$stamp1 = microtime(true);
$content = file_get_contents("$d/theme/$theme/$b");
$a->save_timestamp($stamp1, "file");
return $content;
}
$stamp1 = microtime(true);
$content = file_get_contents($s);
$a->save_timestamp($stamp1, "file");
return $content;
}}
if(! function_exists('get_intltext_template')) {
@ -461,17 +473,28 @@ function get_intltext_template($s) {
if(! isset($lang))
$lang = 'en';
if(file_exists("view/$lang$engine/$s"))
return file_get_contents("view/$lang$engine/$s");
elseif(file_exists("view/en$engine/$s"))
return file_get_contents("view/en$engine/$s");
else
return file_get_contents("view$engine/$s");
if(file_exists("view/$lang$engine/$s")) {
$stamp1 = microtime(true);
$content = file_get_contents("view/$lang$engine/$s");
$a->save_timestamp($stamp1, "file");
return $content;
} elseif(file_exists("view/en$engine/$s")) {
$stamp1 = microtime(true);
$content = file_get_contents("view/en$engine/$s");
$a->save_timestamp($stamp1, "file");
return $content;
} else {
$stamp1 = microtime(true);
$content = file_get_contents("view$engine/$s");
$a->save_timestamp($stamp1, "file");
return $content;
}
}}
if(! function_exists('get_markup_template')) {
function get_markup_template($s, $root = '') {
// $ts = microtime();
$stamp1 = microtime(true);
$a = get_app();
if($a->theme['template_engine'] === 'smarty3') {
@ -479,19 +502,20 @@ function get_markup_template($s, $root = '') {
$template = new FriendicaSmarty();
$template->filename = $template_file;
$a->save_timestamp($stamp1, "rendering");
// $tt = microtime() - $ts;
// $a->page['debug'] .= "$tt <br>\n";
return $template;
}
else {
$template_file = get_template_file($a, $s, $root);
// $file_contents = file_get_contents($template_file);
// $tt = microtime() - $ts;
// $a->page['debug'] .= "$tt <br>\n";
// return $file_contents;
return file_get_contents($template_file);
}
$a->save_timestamp($stamp1, "rendering");
$stamp1 = microtime(true);
$content = file_get_contents($template_file);
$a->save_timestamp($stamp1, "file");
return $content;
}
}}
if(! function_exists("get_template_file")) {
@ -547,8 +571,10 @@ function logger($msg,$level = 0) {
if((! $debugging) || (! $logfile) || ($level > $loglevel))
return;
$stamp1 = microtime(true);
@file_put_contents($logfile, datetime_convert() . ':' . session_id() . ' ' . $msg . "\n", FILE_APPEND);
$a->save_timestamp($stamp1, "file");
return;
}}
@ -574,11 +600,12 @@ function get_tags($s) {
$ret = array();
// ignore anything in a code block
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
// ignore anything in a bbtag
// Force line feeds at bbtags
$s = str_replace(array("[", "]"), array("\n[", "]\n"), $s);
// ignore anything in a bbtag
$s = preg_replace('/\[(.*?)\]/sm','',$s);
// Match full names against @tags including the space between first and last
@ -1030,14 +1057,20 @@ function prepare_body($item,$attach = false) {
$a = get_app();
call_hooks('prepare_body_init', $item);
$cachefile = get_cachefile($item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']));
//$cachefile = get_cachefile($item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']));
$cachefile = get_cachefile($item["guid"]."-".hash("md5", $item['body']));
if (($cachefile != '')) {
if (file_exists($cachefile))
if (file_exists($cachefile)) {
$stamp1 = microtime(true);
$s = file_get_contents($cachefile);
else {
$a->save_timestamp($stamp1, "file");
} else {
$s = prepare_text($item['body']);
$stamp1 = microtime(true);
file_put_contents($cachefile, $s);
$a->save_timestamp($stamp1, "file");
logger('prepare_body: put item '.$item["id"].' into cachefile '.$cachefile);
}
} else
$s = prepare_text($item['body']);

View file

@ -33,7 +33,7 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false
$lang = get_browser_language();
load_translation_table($lang);
/**

View file

@ -20,7 +20,7 @@ function admin_post(&$a){
if(x($_SESSION,'submanage') && intval($_SESSION['submanage']))
return;
// urls
@ -54,7 +54,7 @@ function admin_post(&$a){
}
info(t('Theme settings updated.'));
if(is_ajax()) return;
goaway($a->get_baseurl(true) . '/admin/themes/' . $theme );
return;
break;
@ -100,9 +100,9 @@ function admin_content(&$a) {
'dbsync' => Array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync"),
//'update' => Array($a->get_baseurl(true)."/admin/update/", t("Software Update") , "update")
);
/* get plugins admin page */
$r = q("SELECT * FROM `addon` WHERE `plugin_admin`=1");
$aside['plugins_admin']=Array();
foreach ($r as $h){
@ -111,7 +111,7 @@ function admin_content(&$a) {
// temp plugins with admin
$a->plugins_admin[] = $plugin;
}
$aside['logs'] = Array($a->get_baseurl(true)."/admin/logs/", t("Logs"), "logs");
$t = get_markup_template("admin_aside.tpl");
@ -130,7 +130,6 @@ function admin_content(&$a) {
* Page content
*/
$o = '';
// urls
if ($a->argc > 1){
switch ($a->argv[1]){
@ -161,7 +160,7 @@ function admin_content(&$a) {
} else {
$o = admin_page_summary($a);
}
if(is_ajax()) {
echo $o;
killme();
@ -274,12 +273,14 @@ function admin_page_site_post(&$a){
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
$new_share = ((x($_POST,'new_share')) ? True : False);
$hide_help = ((x($_POST,'hide_help')) ? True : False);
$use_fulltext_engine = ((x($_POST,'use_fulltext_engine')) ? True : False);
$itemcache = ((x($_POST,'itemcache')) ? notags(trim($_POST['itemcache'])) : '');
$itemcache_duration = ((x($_POST,'itemcache_duration')) ? intval($_POST['itemcache_duration']) : 0);
$lockpath = ((x($_POST,'lockpath')) ? notags(trim($_POST['lockpath'])) : '');
$temppath = ((x($_POST,'temppath')) ? notags(trim($_POST['temppath'])) : '');
$basepath = ((x($_POST,'basepath')) ? notags(trim($_POST['basepath'])) : '');
$singleuser = ((x($_POST,'singleuser')) ? notags(trim($_POST['singleuser'])) : '');
if($ssl_policy != intval(get_config('system','ssl_policy'))) {
if($ssl_policy == SSL_POLICY_FULL) {
@ -341,7 +342,12 @@ function admin_page_site_post(&$a){
del_config('system','mobile-theme');
} else {
set_config('system','mobile-theme', $theme_mobile);
}
}
if ( $singleuser === '---' ) {
del_config('system','singleuser');
} else {
set_config('system','singleuser', $singleuser);
}
set_config('system','maximagesize', $maximagesize);
set_config('system','max_image_length', $maximagelength);
set_config('system','jpeg_quality', $jpegimagequality);
@ -380,6 +386,7 @@ function admin_page_site_post(&$a){
set_config('system','diaspora_enabled', $diaspora_enabled);
set_config('system','new_share', $new_share);
set_config('system','hide_help', $hide_help);
set_config('system','use_fulltext_engine', $use_fulltext_engine);
set_config('system','itemcache', $itemcache);
set_config('system','itemcache_duration', $itemcache_duration);
@ -426,19 +433,26 @@ function admin_page_site(&$a) {
if (file_exists($file . '/mobile')) {
$theme_choices_mobile[$f] = $theme_name;
}
else {
else {
$theme_choices[$f] = $theme_name;
}
}
}
/* get user names to make the install a personal install of X */
$user_names = array();
$user_names['---'] = t('Multi user instance');
$users = q("SELECT username, nickname FROM `user`");
foreach ($users as $user) {
$user_names[$user['nickname']] = $user['username'];
}
/* Banner */
$banner = get_config('system','banner');
if($banner == false)
$banner = '<a href="http://friendica.com"><img id="logo-img" src="images/friendica-32.png" alt="logo" /></a><span id="logo-text"><a href="http://friendica.com">Friendica</a></span>';
$banner = htmlspecialchars($banner);
//echo "<pre>"; var_dump($lang_choices); die("</pre>");
/* Register policy */
@ -474,6 +488,8 @@ function admin_page_site(&$a) {
'$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile-theme'), t("Theme for mobile devices"), $theme_choices_mobile),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$new_share' => array('new_share', t("'Share' element"), get_config('system','new_share'), t("Activates the bbcode element 'share' for repeating items.")),
'$hide_help' => array('hide_help', t("Hide help entry from navigation menu"), get_config('system','hide_help'), t("Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly.")),
'$singleuser' => array('singleuser', t("Single user instance"), get_config('system','singleuser'), t("Make this instance multi-user or single-user for the named user"), $user_names),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
'$maximagelength' => array('maximagelength', t("Maximum image length"), get_config('system','max_image_length'), t("Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.")),
'$jpegimagequality' => array('jpegimagequality', t("JPEG image quality"), get_config('system','jpeg_quality'), t("Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality.")),
@ -763,7 +779,7 @@ function admin_page_users(&$a){
* @return string
*/
function admin_page_plugins(&$a){
/**
* Single plugin
*/
@ -773,9 +789,9 @@ function admin_page_plugins(&$a){
notice( t("Item not found.") );
return '';
}
if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't');
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't');
// Toggle plugin status
$idx = array_search($plugin, $a->plugins);
@ -800,52 +816,53 @@ function admin_page_plugins(&$a){
} else {
$status="off"; $action= t("Enable");
}
$readme=Null;
if (is_file("addon/$plugin/README.md")){
$readme = file_get_contents("addon/$plugin/README.md");
$readme = Markdown($readme);
} else if (is_file("addon/$plugin/README")){
$readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
}
}
$admin_form="";
if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)){
@require_once("addon/$plugin/$plugin.php");
$func = $plugin.'_plugin_admin';
$func($a, $admin_form);
}
$t = get_markup_template("admin_plugins_details.tpl");
return replace_macros($t, array(
'$title' => t('Administration'),
'$page' => t('Plugins'),
'$toggle' => t('Toggle'),
'$settings' => t('Settings'),
'$baseurl' => $a->get_baseurl(true),
'$plugin' => $plugin,
'$status' => $status,
'$action' => $action,
'$info' => get_plugin_info($plugin),
'$str_author' => t('Author: '),
'$str_maintainer' => t('Maintainer: '),
'$str_maintainer' => t('Maintainer: '),
'$admin_form' => $admin_form,
'$function' => 'plugins',
'$screenshot' => '',
'$readme' => $readme,
'$form_security_token' => get_form_security_token("admin_themes"),
'$form_security_token' => get_form_security_token("admin_themes"),
));
}
}
/**
* List plugins
*/
$plugins = array();
$files = glob("addon/*/");
if($files) {
@ -857,7 +874,7 @@ function admin_page_plugins(&$a){
}
}
}
$t = get_markup_template("admin_plugins.tpl");
return replace_macros($t, array(
'$title' => t('Administration'),
@ -928,7 +945,7 @@ function rebuild_theme_table($themes) {
return $o;
}
/**
* Themes admin page
*
@ -936,7 +953,7 @@ function rebuild_theme_table($themes) {
* @return string
*/
function admin_page_themes(&$a){
$allowed_themes_str = get_config('system','allowed_themes');
$allowed_themes_raw = explode(',',$allowed_themes_str);
$allowed_themes = array();
@ -972,9 +989,9 @@ function admin_page_themes(&$a){
notice( t("Item not found.") );
return '';
}
if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't');
check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't');
// Toggle theme status
@ -1002,28 +1019,27 @@ function admin_page_themes(&$a){
} else {
$status="off"; $action= t("Enable");
}
$readme=Null;
if (is_file("view/theme/$theme/README.md")){
$readme = file_get_contents("view/theme/$theme/README.md");
$readme = Markdown($readme);
} else if (is_file("view/theme/$theme/README")){
$readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
}
}
$admin_form="";
if (is_file("view/theme/$theme/config.php")){
require_once("view/theme/$theme/config.php");
if(function_exists("theme_admin")){
$admin_form = theme_admin($a);
}
}
$screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
if(! stristr($screenshot[0],$theme))
$screenshot = null;
$screenshot = null;
$t = get_markup_template("admin_plugins_details.tpl");
return replace_macros($t, array(
@ -1032,7 +1048,7 @@ function admin_page_themes(&$a){
'$toggle' => t('Toggle'),
'$settings' => t('Settings'),
'$baseurl' => $a->get_baseurl(true),
'$plugin' => $theme,
'$status' => $status,
'$action' => $action,
@ -1046,21 +1062,19 @@ function admin_page_themes(&$a){
'$form_security_token' => get_form_security_token("admin_themes"),
));
}
}
/**
* List themes
*/
$xthemes = array();
if($themes) {
foreach($themes as $th) {
$xthemes[] = array($th['name'],(($th['allowed']) ? "on" : "off"), get_theme_info($th['name']));
}
}
$t = get_markup_template("admin_plugins.tpl");
return replace_macros($t, array(
'$title' => t('Administration'),

View file

@ -64,23 +64,25 @@ function community_content(&$a, $update = 0) {
}
$r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`,
//$r = q("SELECT distinct(`item`.`uri`)
$r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
`user`.`nickname`, `user`.`hidewall`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
FROM `item` FORCE INDEX (`received`) LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri`
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self`
ORDER BY `received` DESC LIMIT %d, %d ",
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
// group by `item`.`uri`
if(! count($r)) {
info( t('No results.') . EOL);

View file

@ -160,16 +160,26 @@ function content_content(&$a, $update = 0) {
$sql_extra2 = (($nouveau) ? '' : " AND `item`.`parent` = `item`.`id` ");
$sql_extra3 = (($nouveau) ? '' : $sql_extra3);
$sql_table = "`item`";
if(x($_GET,'search')) {
$search = escape_tags($_GET['search']);
if (get_config('system','use_fulltext_engine')) {
if(strpos($search,'#') === 0) {
$tag = true;
$search = substr($search,1);
}
if (get_config('system','only_tag_search'))
$tag = true;
/*if (get_config('system','use_fulltext_engine')) {
if(strpos($search,'#') === 0)
$sql_extra .= sprintf(" AND (MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode)) ",
$sql_extra .= sprintf(" AND (MATCH(tag) AGAINST ('%s' in boolean mode)) ",
dbesc(protect_sprintf($search))
);
else
$sql_extra .= sprintf(" AND (MATCH(`item`.`body`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode)) ",
$sql_extra .= sprintf(" AND (MATCH(`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode)) ",
dbesc(protect_sprintf($search)),
dbesc(protect_sprintf($search))
);
@ -178,7 +188,19 @@ function content_content(&$a, $update = 0) {
dbesc(protect_sprintf('%' . $search . '%')),
dbesc(protect_sprintf('%]' . $search . '[%'))
);
}*/
if($tag) {
$sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d ",
dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
$sql_table = "`term` LEFT JOIN `item` ON `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` ";
} else {
if (get_config('system','use_fulltext_engine'))
$sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search)));
else
$sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
}
}
if(strlen($file)) {
$sql_extra .= file_tag_file_query('item',unxmlify($file));
@ -189,38 +211,39 @@ function content_content(&$a, $update = 0) {
$myurl = substr($myurl,strpos($myurl,'://')+3);
$myurl = str_replace('www.','',$myurl);
$diasp_url = str_replace('/profile/','/u/',$myurl);
if (get_config('system','use_fulltext_engine'))
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
/*if (get_config('system','use_fulltext_engine'))
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from $sql_table where (MATCH(`author-link`, `tag`) AGAINST ('%s' in boolean mode) or MATCH(tag) AGAINST ('%s' in boolean mode))) ",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($diasp_url))
);
else
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ",
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from $sql_table where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ",
dbesc(protect_sprintf('%' . $myurl)),
dbesc(protect_sprintf('%' . $myurl . ']%')),
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
);
);*/
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl))
);
}
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
if($nouveau) {
// "New Item View" - show all items unthreaded in reverse created date order
$items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
$items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
FROM `item`, `contact`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1
AND `item`.`deleted` = 0 and `item`.`moderated` = 0
$simple_update
AND `contact`.`id` = `item`.`contact-id`
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra $sql_nets
ORDER BY `item`.`received` DESC $pager_sql ",
@ -241,7 +264,7 @@ function content_content(&$a, $update = 0) {
$start = dba_timer();
$r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact_uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`parent` = `item`.`id`
@ -268,9 +291,9 @@ function content_content(&$a, $update = 0) {
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, `contact`.`writable`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
FROM `item`, `contact`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `item`.`moderated` = 0 AND `contact`.`id` = `item`.`contact-id`
AND `item`.`moderated` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`parent` IN ( %s )
$sql_extra ",
@ -287,7 +310,7 @@ function content_content(&$a, $update = 0) {
}
}
logger('parent dba_timer: ' . sprintf('%01.4f',$first - $start));
logger('child dba_timer: ' . sprintf('%01.4f',$second - $first));
@ -298,7 +321,7 @@ function content_content(&$a, $update = 0) {
$o = render_content($a,$items,$mode,false);
header('Content-type: application/json');
echo json_encode($o);
killme();

View file

@ -19,6 +19,7 @@ require_once('include/crypto.php');
require_once('include/enotify.php');
require_once('include/email.php');
require_once('library/langdet/Text/LanguageDetect.php');
require_once('include/tags.php');
function item_post(&$a) {
@ -236,9 +237,23 @@ function item_post(&$a) {
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
$l = new Text_LanguageDetect;
$lng = $l->detectConfidence($naked_body);
//$lng = $l->detectConfidence($naked_body);
//$postopts = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
$postopts = (($lng['language']) ? 'lang=' . $lng['language'] . ';' . $lng['confidence'] : '');
$lng = $l->detect($naked_body, 3);
if (sizeof($lng) > 0) {
$postopts = "";
foreach ($lng as $language => $score) {
if ($postopts == "")
$postopts = "lang=";
else
$postopts .= ":";
$postopts .= $language.";".$score;
}
}
logger('mod_item: detect language' . print_r($lng,true) . $naked_body, LOGGER_DATA);
}
@ -675,6 +690,7 @@ function item_post(&$a) {
intval($post_id),
intval($profile_uid)
);
create_tags_from_itemuri($post_id, $profile_uid);
// update filetags in pconfig
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
@ -740,10 +756,22 @@ function item_post(&$a) {
if(count($r)) {
$post_id = $r[0]['id'];
logger('mod_item: saved item ' . $post_id);
create_tags_from_item($post_id);
// update filetags in pconfig
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
// Store the fresh generated item into the cache
$cachefile = get_cachefile($datarray["guid"]."-".hash("md5", $datarray['body']));
if (($cachefile != '') AND !file_exists($cachefile)) {
$s = prepare_text($datarray['body']);
$stamp1 = microtime(true);
file_put_contents($cachefile, $s);
$a->save_timestamp($stamp1, "file");
logger('mod_item: put item '.$r[0]['id'].' into cachefile '.$cachefile);
}
if($parent) {
// This item is the last leaf and gets the comment box, clear any ancestors
@ -872,14 +900,20 @@ function item_post(&$a) {
} else {
$subject = email_header_encode('[Friendica]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']),'UTF-8');
}
$headers = 'From: ' . email_header_encode($a->user['username'],'UTF-8') . ' <' . $a->user['email'] . '>' . "\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
$link = '<a href="' . $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '"><img src="' . $author['thumb'] . '" alt="' . $a->user['username'] . '" /></a><br /><br />';
$html = prepare_body($datarray);
$message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';
@mail($addr, $subject, $message, $headers);
include_once('include/html2plain.php');
$params = array (
'fromName' => $a->user['username'],
'fromEmail' => $a->user['email'],
'toEmail' => $addr,
'replyTo' => $a->user['email'],
'messageSubject' => $subject,
'htmlVersion' => $message,
'textVersion' => html2plain($html.$disclaimer),
);
enotify::send($params);
}
}
}

View file

@ -6,7 +6,7 @@ function network_init(&$a) {
notice( t('Permission denied.') . EOL);
return;
}
$is_a_date_query = false;
if($a->argc > 1) {
@ -17,12 +17,12 @@ function network_init(&$a) {
}
}
}
// convert query string to array and remove first element (which is friendica args)
$query_array = array();
parse_str($a->query_string, $query_array);
array_shift($query_array);
// fetch last used network view and redirect if needed
if(! $is_a_date_query) {
$sel_tabs = network_query_get_sel_tab($a);
@ -141,11 +141,11 @@ function network_init(&$a) {
if(x($_GET['nets']) && $_GET['nets'] === 'all')
unset($_GET['nets']);
$group_id = (($a->argc > 1 && is_numeric($a->argv[1])) ? intval($a->argv[1]) : 0);
set_pconfig(local_user(), 'network.view', 'group.selected', $group_id);
require_once('include/group.php');
require_once('include/contact_widgets.php');
require_once('include/items.php');
@ -321,7 +321,7 @@ function network_query_get_sel_net() {
if(x($_GET,'nets')) {
$network = $_GET['nets'];
}
return $network;
}
@ -382,14 +382,14 @@ function network_content(&$a, $update = 0) {
// item filter tabs
// TODO: fix this logic, reduce duplication
//$a->page['content'] .= '<div class="tabs-wrapper">';
list($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) = network_query_get_sel_tab($a);
// if no tabs are selected, defaults to comments
if ($no_active=='active') $all_active='active';
//echo "<pre>"; var_dump($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active); killme();
$cmd = (($datequery) ? '' : $a->cmd);
$len_naked_cmd = strlen(str_replace('/new','',$cmd));
$len_naked_cmd = strlen(str_replace('/new','',$cmd));
// tabs
$tabs = array(
@ -435,10 +435,10 @@ function network_content(&$a, $update = 0) {
// 'url'=>$a->get_baseurl(true) . '/network?f=&spam=1'
// 'sel'=> $spam_active,
// 'title' => t('Posts flagged as SPAM'),
// ),
// ),
);
if(feature_enabled(local_user(),'personal_tab')) {
$tabs[] = array(
'label' => t('Personal'),
@ -500,7 +500,7 @@ function network_content(&$a, $update = 0) {
$contact_id = $a->cid;
@ -573,11 +573,11 @@ function network_content(&$a, $update = 0) {
}
// We don't have to deal with ACL's on this page. You're looking at everything
// We don't have to deal with ACLs on this page. You're looking at everything
// that belongs to you, hence you can see all of it. We will filter by group if
// desired.
$sql_options = (($star) ? " and starred = 1 " : '');
$sql_options .= (($bmark) ? " and bookmark = 1 " : '');
@ -647,16 +647,26 @@ function network_content(&$a, $update = 0) {
$sql_extra2 = (($nouveau) ? '' : " AND `item`.`parent` = `item`.`id` ");
$sql_extra3 = (($nouveau) ? '' : $sql_extra3);
$sql_table = "`item`";
if(x($_GET,'search')) {
$search = escape_tags($_GET['search']);
if (get_config('system','use_fulltext_engine')) {
if(strpos($search,'#') === 0) {
$tag = true;
$search = substr($search,1);
}
if (get_config('system','only_tag_search'))
$tag = true;
/*if (get_config('system','use_fulltext_engine')) {
if(strpos($search,'#') === 0)
$sql_extra .= sprintf(" AND (MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode)) ",
dbesc(protect_sprintf($search))
);
else
$sql_extra .= sprintf(" AND (MATCH(`item`.`body`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode)) ",
$sql_extra .= sprintf(" AND (MATCH(`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode)) ",
dbesc(protect_sprintf($search)),
dbesc(protect_sprintf($search))
);
@ -665,6 +675,17 @@ function network_content(&$a, $update = 0) {
dbesc(protect_sprintf('%' . $search . '%')),
dbesc(protect_sprintf('%]' . $search . '[%'))
);
}*/
if($tag) {
$sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d ",
dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
$sql_table = "`term` LEFT JOIN `item` ON `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` ";
} else {
if (get_config('system','use_fulltext_engine'))
$sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search)));
else
$sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
}
}
if(strlen($file)) {
@ -676,8 +697,10 @@ function network_content(&$a, $update = 0) {
$myurl = substr($myurl,strpos($myurl,'://')+3);
$myurl = str_replace('www.','',$myurl);
$diasp_url = str_replace('/profile/','/u/',$myurl);
if (get_config('system','use_fulltext_engine'))
/*if (get_config('system','use_fulltext_engine'))
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
//$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (`author-link` IN ('https://%s', 'http://%s') OR MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
//$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($diasp_url))
@ -687,8 +710,12 @@ function network_content(&$a, $update = 0) {
dbesc(protect_sprintf('%' . $myurl)),
dbesc(protect_sprintf('%' . $myurl . ']%')),
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
);
);*/
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where `author-link` IN ('https://%s', 'http://%s') OR `mention`)",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl))
);
}
if($update) {
@ -700,7 +727,7 @@ function network_content(&$a, $update = 0) {
else {
if( (! get_config('alt_pager', 'global')) && (! get_pconfig(local_user(),'system','alt_pager')) ) {
$r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra2 $sql_extra3
@ -731,11 +758,10 @@ function network_content(&$a, $update = 0) {
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
FROM `item`, `contact`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1
AND `item`.`deleted` = 0 and `item`.`moderated` = 0
$simple_update
AND `contact`.`id` = `item`.`contact-id`
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra $sql_nets
ORDER BY `item`.`received` DESC $pager_sql ",
@ -758,7 +784,7 @@ function network_content(&$a, $update = 0) {
if($update) {
$r = q("SELECT `parent` AS `item_id`, `contact`.`uid` AS `contact_uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND
(`item`.`deleted` = 0 OR item.verb = '" . ACTIVITY_LIKE ."' OR item.verb = '" . ACTIVITY_DISLIKE . "')
and `item`.`moderated` = 0 and `item`.`unseen` = 1
@ -769,7 +795,7 @@ function network_content(&$a, $update = 0) {
}
else {
$r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact_uid`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `item`.`moderated` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`parent` = `item`.`id`
@ -794,9 +820,9 @@ function network_content(&$a, $update = 0) {
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`, `contact`.`writable`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
FROM `item`, `contact`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
AND `item`.`moderated` = 0 AND `contact`.`id` = `item`.`contact-id`
AND `item`.`moderated` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `item`.`parent` IN ( %s )
$sql_extra ",
@ -818,7 +844,7 @@ function network_content(&$a, $update = 0) {
// We aren't going to try and figure out at the item, group, and page
// level which items you've seen and which you haven't. If you're looking
// at the top level network page just mark everything seen.
// The $update_unseen is a bit unreliable if you have stuff coming into your stream from a new contact -
// and other feeds that bring in stuff from the past. One can't find it all.

View file

@ -106,7 +106,7 @@ function photo_init(&$a) {
intval($resolution)
);
if(count($r)) {
$sql_extra = permissions_sql($r[0]['uid']);
// Now we'll see if we can access the photo
@ -169,10 +169,13 @@ function photo_init(&$a) {
}
}
if(isset($customres) && $customres > 0 && $customres < 500) {
// Resize only if its not a GIF
if ($mime != "image/gif") {
$ph = new Photo($data, $mimetype);
if($ph->is_valid()) {
$ph->scaleImageSquare($customres);
if(isset($customres) && $customres > 0 && $customres < 500) {
$ph->scaleImageSquare($customres);
}
$data = $ph->imageString();
$mimetype = $ph->getType();
}

View file

@ -5,7 +5,7 @@ require_once('include/acl_selectors.php');
require_once('include/bbcode.php');
require_once('include/security.php');
require_once('include/redir.php');
require_once('include/tags.php');
function photos_init(&$a) {
@ -252,6 +252,7 @@ function photos_post(&$a) {
dbesc($rr['parent-uri']),
intval($page_owner_uid)
);
create_tags_from_itemuri($rr['parent-uri'], $page_owner_uid);
$drop_id = intval($rr['id']);
@ -321,6 +322,7 @@ function photos_post(&$a) {
dbesc($i[0]['uri']),
intval($page_owner_uid)
);
create_tags_from_itemuri($i[0]['uri'], $page_owner_uid);
$url = $a->get_baseurl();
$drop_id = intval($i[0]['id']);
@ -381,7 +383,7 @@ function photos_post(&$a) {
$ph->scaleImage(640);
$width = $ph->getWidth();
$height = $ph->getHeight();
$x = q("update photo set data = '%s', height = %d, width = %d where `resource-id` = '%s' and uid = %d and scale = 1 limit 1",
dbesc($ph->imageString()),
intval($height),
@ -403,7 +405,7 @@ function photos_post(&$a) {
dbesc($resource_id),
intval($page_owner_uid)
);
}
}
}
}
}
@ -605,6 +607,7 @@ function photos_post(&$a) {
intval($item_id),
intval($page_owner_uid)
);
create_tags_from_item($item_id);
$best = 0;
foreach($p as $scales) {
@ -880,8 +883,8 @@ function photos_post(&$a) {
intval($item_id)
);
}
if($visible)
if($visible)
proc_run('php', "include/notifier.php", 'wall-new', $item_id);
call_hooks('photo_post_end',intval($item_id));
@ -1418,7 +1421,7 @@ function photos_content(&$a) {
intval($a->pager['itemspage'])
);
if((local_user()) && (local_user() == $link_item['uid'])) {
q("UPDATE `item` SET `unseen` = 0 WHERE `parent` = %d and `uid` = %d",
intval($link_item['parent']),

View file

@ -23,7 +23,7 @@ function search_saved_searches() {
);
}
$tpl = get_markup_template("saved_searches_aside.tpl");
$o .= replace_macros($tpl, array(
@ -32,7 +32,7 @@ function search_saved_searches() {
'$searchbox' => '',
'$saved' => $saved,
));
}
}
return $o;
@ -124,7 +124,10 @@ function search_content(&$a) {
if(! $search)
return $o;
if (get_config('system','use_fulltext_engine')) {
if (get_config('system','only_tag_search'))
$tag = true;
/*if (get_config('system','use_fulltext_engine')) {
if($tag)
$sql_extra = sprintf(" AND MATCH (`item`.`tag`) AGAINST ('".'"%s"'."' in boolean mode) ", '#'.dbesc(protect_sprintf($search)));
else
@ -134,11 +137,25 @@ function search_content(&$a) {
$sql_extra = sprintf(" AND `item`.`tag` REGEXP '%s' ", dbesc('\\]' . protect_sprintf(preg_quote($search)) . '\\['));
else
$sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
}*/
if($tag) {
//$sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d",
// dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
//$sql_table = "`term` LEFT JOIN `item` ON `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` ";
$sql_extra = sprintf(" AND EXISTS (SELECT * FROM `term` WHERE `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d) GROUP BY `item`.`uri` ",
dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
$sql_table = "`item` FORCE INDEX (`uri`) ";
} else {
if (get_config('system','use_fulltext_engine')) {
$sql_extra = sprintf(" AND MATCH (`item`.`body`, `item`.`title`) AGAINST ('%s' in boolean mode) ", dbesc(protect_sprintf($search)));
} else {
$sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search))));
}
$sql_table = "`item`";
}
// Here is the way permissions work in the search module...
// Only public posts can be shown
// OR your own posts if you are a logged in member
@ -146,14 +163,15 @@ function search_content(&$a) {
if( (! get_config('alt_pager', 'global')) && (! get_pconfig(local_user(),'system','alt_pager')) ) {
$r = q("SELECT distinct(`item`.`uri`) as `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0)
OR ( `item`.`uid` = %d ))
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra group by `item`.`uri` ",
$sql_extra ",
intval(local_user())
);
// $sql_extra group by `item`.`uri` ",
if(count($r))
$a->set_pager_total(count($r));
@ -164,25 +182,25 @@ function search_content(&$a) {
}
}
$r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`,
$r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`alias`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
`user`.`nickname`, `user`.`uid`, `user`.`hidewall`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
FROM $sql_table LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND (( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' AND `item`.`private` = 0 AND `user`.`hidewall` = 0 )
OR ( `item`.`uid` = %d ))
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
$sql_extra
group by `item`.`uri`
ORDER BY `received` DESC LIMIT %d , %d ",
intval(local_user()),
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
// group by `item`.`uri`
if(! count($r)) {
info( t('No results.') . EOL);

View file

@ -3,3 +3,4 @@ Site speed can be improved when the following indexes are set. They cannot be se
CREATE INDEX `uid_commented` ON `item` (`uid`, `commented`);
CREATE INDEX `uid_created` ON `item` (`uid`, `created`);
CREATE INDEX `uid_unseen` ON `item` (`uid`, `unseen`);
CREATE INDEX `resource-id` ON `item` (`resource-id`);

View file

@ -127,6 +127,7 @@ class Conversation extends BaseObject {
* _ false on failure
*/
public function get_template_data($alike, $dlike) {
global $a;
$result = array();
foreach($this->threads as $item) {
@ -140,6 +141,7 @@ class Conversation extends BaseObject {
$result[] = $item_data;
}
//$a->mark_timestamp();
return $result;
}

View file

@ -146,10 +146,30 @@ class Item extends BaseObject {
call_hooks('render_location',$locate);
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate));
$searchpath = $a->get_baseurl()."/search?tag=";
$tags=array();
$hashtags = array();
$mentions = array();
foreach(explode(',',$item['tag']) as $tag){
$taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
foreach($taglist as $tag) {
if ($tag["url"] == "")
$tag["url"] = $searchpath.strtolower($tag["term"]);
if ($tag["type"] == TERM_HASHTAG) {
$hashtags[] = "#<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
$prefix = "#";
} elseif ($tag["type"] == TERM_MENTION) {
$mentions[] = "@<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
$prefix = "@";
}
$tags[] = $prefix."<a href=\"".$tag["url"]."\" target=\"external-link\">".$tag["term"]."</a>";
}
/*foreach(explode(',',$item['tag']) as $tag){
$tag = trim($tag);
if ($tag!="") {
$t = bbcode($tag);
@ -159,8 +179,7 @@ class Item extends BaseObject {
elseif($t[0] == '@')
$mentions[] = $t;
}
}
}*/
$like = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : '');
$dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : '');
@ -171,10 +190,10 @@ class Item extends BaseObject {
* Maybe we should establish a way to be notified about conversation changes
*/
$this->check_wall_to_wall();
if($this->is_wall_to_wall() && ($this->get_owner_url() == $this->get_redirect_url()))
$osparkle = ' sparkle';
if($this->is_toplevel()) {
if($conv->get_profile_owner() == local_user()) {
$isstarred = (($item['starred']) ? "starred" : "unstarred");
@ -214,8 +233,28 @@ class Item extends BaseObject {
localize_item($item);
if ($item["postopts"]) {
$langdata = explode(";", $item["postopts"]);
$langstr = substr($langdata[0], 5)." (".round($langdata[1]*100, 1)."%)";
//$langdata = explode(";", $item["postopts"]);
//$langstr = substr($langdata[0], 5)." (".round($langdata[1]*100, 1)."%)";
$langstr = "";
if (substr($item["postopts"], 0, 5) == "lang=") {
$postopts = substr($item["postopts"], 5);
$languages = explode(":", $postopts);
if (sizeof($languages) == 1) {
$languages = array();
$languages[] = $postopts;
}
foreach ($languages as $language) {
$langdata = explode(";", $language);
if ($langstr != "")
$langstr .= ", ";
//$langstr .= $langdata[0]." (".round($langdata[1]*100, 1)."%)";
$langstr .= round($langdata[1]*100, 1)."% ".$langdata[0];
}
}
}
$body = prepare_body($item,true);
@ -244,14 +283,14 @@ class Item extends BaseObject {
'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'tags' => $tags,
'hashtags' => $hashtags,
'mentions' => $mentions,
'hashtags' => $hashtags,
'mentions' => $mentions,
'txt_cats' => t('Categories:'),
'txt_folders' => t('Filed under:'),
'has_cats' => ((count($categories)) ? 'true' : ''),
'has_folders' => ((count($folders)) ? 'true' : ''),
'categories' => $categories,
'folders' => $folders,
'categories' => $categories,
'folders' => $folders,
'body' => $body_e,
'text' => $text_e,
'id' => $this->get_id(),
@ -322,12 +361,12 @@ class Item extends BaseObject {
}
}
}
if ($this->is_toplevel()) {
$result['total_comments_num'] = "$total_children";
$result['total_comments_text'] = tt('comment', 'comments', $total_children);
}
$result['private'] = $item['private'];
$result['toplevel'] = ($this->is_toplevel() ? 'toplevel_item' : '');

View file

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1159 );
define( 'UPDATE_VERSION' , 1162 );
/**
*
@ -1382,8 +1382,6 @@ function update_1157() {
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}
function update_1158() {
@ -1402,3 +1400,42 @@ function update_1158() {
return UPDATE_FAILED;
}
function update_1159() {
$r = q("ALTER TABLE `term` ADD `aid` int(10) unsigned NOT NULL DEFAULT '0',
ADD `uid` int(10) unsigned NOT NULL DEFAULT '0',
ADD INDEX (`uid`),
ADD INDEX (`aid`)");
if(!$r)
return UPDATE_FAILED;
require_once('include/tags.php');
update_items();
return UPDATE_SUCCESS;
}
function update_1160() {
set_config('system', 'maintenance', 1);
// Wait for 15 seconds for current requests to
// clear before locking up the database
sleep(15);
$r = q("ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`)");
set_config('system', 'maintenance', 0);
if(!$r)
return UPDATE_FAILED;
return UPDATE_SUCCESS;
}
function update_1161() {
$r = q("ALTER TABLE `pconfig` ADD INDEX (`cat`)");
if(!$r)
return UPDATE_FAILED;
return UPDATE_SUCCESS;
}

View file

@ -51,6 +51,8 @@
{{ inc field_select.tpl with $field=$theme_mobile }}{{ endinc }}
{{ inc field_select.tpl with $field=$ssl_policy }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$new_share }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$hide_help }}{{ endinc }}
{{ inc field_select.tpl with $field=$singleuser }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

View file

@ -16,6 +16,7 @@
# <johnnywiertara@gmail.com>, 2012.
# <karolinaa9506@gmail.com>, 2012.
# <koalamis0@gmail.com>, 2012.
# Mariusz Pisz <mariusz.pisz@zhp.net.pl>, 2013.
# <m.dauter@tlen.pl>, 2012.
# <mhnxo123@gmail.com>, 2012.
# <michalina-korzeniowska@wp.pl>, 2012.
@ -27,9 +28,9 @@ msgid ""
msgstr ""
"Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
"POT-Creation-Date: 2013-01-18 10:00-0800\n"
"PO-Revision-Date: 2013-01-21 09:03+0000\n"
"Last-Translator: Cyryl Sochacki <cyrylsochacki@gmail.com>\n"
"POT-Creation-Date: 2013-02-07 10:00-0800\n"
"PO-Revision-Date: 2013-02-17 11:50+0000\n"
"Last-Translator: Piszu <mariusz.pisz@zhp.net.pl>\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/friendica/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -57,11 +58,11 @@ msgstr "Nie udało się zaktualizować kontaktu."
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:55
#: ../../mod/fsuggest.php:78 ../../mod/events.php:140 ../../mod/api.php:26
#: ../../mod/api.php:31 ../../mod/photos.php:133 ../../mod/photos.php:995
#: ../../mod/api.php:31 ../../mod/photos.php:133 ../../mod/photos.php:1041
#: ../../mod/editpost.php:10 ../../mod/install.php:151 ../../mod/poke.php:135
#: ../../mod/notifications.php:66 ../../mod/contacts.php:147
#: ../../mod/settings.php:91 ../../mod/settings.php:542
#: ../../mod/settings.php:547 ../../mod/manage.php:90 ../../mod/network.php:6
#: ../../mod/settings.php:547 ../../mod/manage.php:96 ../../mod/network.php:6
#: ../../mod/notes.php:20 ../../mod/uimport.php:23 ../../mod/wallmessage.php:9
#: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
#: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
@ -70,18 +71,18 @@ msgstr "Nie udało się zaktualizować kontaktu."
#: ../../mod/item.php:155 ../../mod/mood.php:114
#: ../../mod/profile_photo.php:19 ../../mod/profile_photo.php:169
#: ../../mod/profile_photo.php:180 ../../mod/profile_photo.php:193
#: ../../mod/message.php:38 ../../mod/message.php:172
#: ../../mod/message.php:38 ../../mod/message.php:174
#: ../../mod/allfriends.php:9 ../../mod/nogroup.php:25
#: ../../mod/wall_upload.php:66 ../../mod/follow.php:9
#: ../../mod/display.php:180 ../../mod/profiles.php:146
#: ../../mod/profiles.php:567 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:15 ../../mod/invite.php:83
#: ../../mod/suggest.php:56 ../../mod/invite.php:15 ../../mod/invite.php:101
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:512
#: ../../addon/facebook/facebook.php:518 ../../addon/fbpost/fbpost.php:170
#: ../../addon/fbpost/fbpost.php:176
#: ../../addon/dav/friendica/layout.fnk.php:354
#: ../../addon/tumblr/tumblr.php:34 ../../include/items.php:3987
#: ../../index.php:340 ../../addon.old/facebook/facebook.php:510
#: ../../addon/tumblr/tumblr.php:34 ../../include/items.php:4015
#: ../../index.php:341 ../../addon.old/facebook/facebook.php:510
#: ../../addon.old/facebook/facebook.php:516
#: ../../addon.old/fbpost/fbpost.php:159 ../../addon.old/fbpost/fbpost.php:165
#: ../../addon.old/dav/friendica/layout.fnk.php:354
@ -151,19 +152,20 @@ msgid "New photo from this URL"
msgstr "Nowe zdjęcie z tej ścieżki"
#: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107
#: ../../mod/events.php:466 ../../mod/photos.php:1028
#: ../../mod/photos.php:1118 ../../mod/photos.php:1402
#: ../../mod/photos.php:1442 ../../mod/photos.php:1486
#: ../../mod/photos.php:1569 ../../mod/install.php:248
#: ../../mod/events.php:478 ../../mod/photos.php:1075
#: ../../mod/photos.php:1196 ../../mod/photos.php:1498
#: ../../mod/photos.php:1549 ../../mod/photos.php:1593
#: ../../mod/photos.php:1676 ../../mod/install.php:248
#: ../../mod/install.php:286 ../../mod/localtime.php:45 ../../mod/poke.php:199
#: ../../mod/content.php:710 ../../mod/contacts.php:352
#: ../../mod/content.php:710 ../../mod/contacts.php:386
#: ../../mod/settings.php:560 ../../mod/settings.php:670
#: ../../mod/settings.php:739 ../../mod/settings.php:811
#: ../../mod/settings.php:1018 ../../mod/group.php:87 ../../mod/mood.php:137
#: ../../mod/message.php:301 ../../mod/message.php:527 ../../mod/admin.php:461
#: ../../mod/admin.php:728 ../../mod/admin.php:865 ../../mod/admin.php:1064
#: ../../mod/admin.php:1151 ../../mod/profiles.php:626
#: ../../mod/invite.php:121 ../../addon/fromgplus/fromgplus.php:44
#: ../../mod/settings.php:1037 ../../mod/manage.php:110 ../../mod/group.php:87
#: ../../mod/mood.php:137 ../../mod/message.php:335 ../../mod/message.php:564
#: ../../mod/admin.php:461 ../../mod/admin.php:728 ../../mod/admin.php:865
#: ../../mod/admin.php:1068 ../../mod/admin.php:1155
#: ../../mod/profiles.php:626 ../../mod/invite.php:140
#: ../../addon/fromgplus/fromgplus.php:44
#: ../../addon/facebook/facebook.php:621
#: ../../addon/snautofollow/snautofollow.php:64
#: ../../addon/fbpost/fbpost.php:280 ../../addon/yourls/yourls.php:76
@ -197,7 +199,7 @@ msgstr "Nowe zdjęcie z tej ścieżki"
#: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
#: ../../addon/wppost/wppost.php:110 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:191
#: ../../addon/twitter/twitter.php:229 ../../addon/twitter/twitter.php:554
#: ../../addon/twitter/twitter.php:229 ../../addon/twitter/twitter.php:556
#: ../../addon/irc/irc.php:55 ../../addon/fromapp/fromapp.php:77
#: ../../addon/blogger/blogger.php:102 ../../addon/posterous/posterous.php:103
#: ../../view/theme/cleanzero/config.php:80
@ -258,15 +260,15 @@ msgid "Help:"
msgstr "Pomoc:"
#: ../../mod/help.php:84 ../../addon/dav/friendica/layout.fnk.php:225
#: ../../include/nav.php:86 ../../addon.old/dav/friendica/layout.fnk.php:225
#: ../../include/nav.php:113 ../../addon.old/dav/friendica/layout.fnk.php:225
msgid "Help"
msgstr "Pomoc"
#: ../../mod/help.php:90 ../../index.php:225
#: ../../mod/help.php:90 ../../index.php:226
msgid "Not Found"
msgstr "Nie znaleziono"
#: ../../mod/help.php:93 ../../index.php:228
#: ../../mod/help.php:93 ../../index.php:229
msgid "Page not found."
msgstr "Strona nie znaleziona."
@ -296,87 +298,87 @@ msgstr "Zaproponuj znajomych dla %s"
msgid "Event title and start time are required."
msgstr ""
#: ../../mod/events.php:279
#: ../../mod/events.php:291
msgid "l, F j"
msgstr "d, M d "
#: ../../mod/events.php:301
#: ../../mod/events.php:313
msgid "Edit event"
msgstr "Edytuj wydarzenie"
#: ../../mod/events.php:323 ../../include/text.php:1246
#: ../../mod/events.php:335 ../../include/text.php:1258
msgid "link to source"
msgstr "link do źródła"
#: ../../mod/events.php:358 ../../view/theme/diabook/theme.php:91
#: ../../include/nav.php:52 ../../boot.php:1836
#: ../../mod/events.php:370 ../../view/theme/diabook/theme.php:91
#: ../../include/nav.php:79 ../../boot.php:1857
msgid "Events"
msgstr "Wydarzenia"
#: ../../mod/events.php:359
#: ../../mod/events.php:371
msgid "Create New Event"
msgstr "Stwórz nowe wydarzenie"
#: ../../mod/events.php:360 ../../addon/dav/friendica/layout.fnk.php:263
#: ../../mod/events.php:372 ../../addon/dav/friendica/layout.fnk.php:263
#: ../../addon.old/dav/friendica/layout.fnk.php:263
msgid "Previous"
msgstr "Poprzedni"
#: ../../mod/events.php:361 ../../mod/install.php:207
#: ../../mod/events.php:373 ../../mod/install.php:207
#: ../../addon/dav/friendica/layout.fnk.php:266
#: ../../addon.old/dav/friendica/layout.fnk.php:266
msgid "Next"
msgstr "Następny"
#: ../../mod/events.php:434
#: ../../mod/events.php:446
msgid "hour:minute"
msgstr "godzina:minuta"
#: ../../mod/events.php:444
#: ../../mod/events.php:456
msgid "Event details"
msgstr "Szczegóły wydarzenia"
#: ../../mod/events.php:445
#: ../../mod/events.php:457
#, php-format
msgid "Format is %s %s. Starting date and Title are required."
msgstr ""
#: ../../mod/events.php:447
#: ../../mod/events.php:459
msgid "Event Starts:"
msgstr "Rozpoczęcie wydarzenia:"
#: ../../mod/events.php:447 ../../mod/events.php:461
#: ../../mod/events.php:459 ../../mod/events.php:473
msgid "Required"
msgstr "Wymagany"
#: ../../mod/events.php:450
#: ../../mod/events.php:462
msgid "Finish date/time is not known or not relevant"
msgstr "Data/czas zakończenia nie jest znana lub jest nieistotna"
#: ../../mod/events.php:452
#: ../../mod/events.php:464
msgid "Event Finishes:"
msgstr "Zakończenie wydarzenia:"
#: ../../mod/events.php:455
#: ../../mod/events.php:467
msgid "Adjust for viewer timezone"
msgstr ""
msgstr "Dopasuj dla strefy czasowej widza"
#: ../../mod/events.php:457
#: ../../mod/events.php:469
msgid "Description:"
msgstr "Opis:"
#: ../../mod/events.php:459 ../../mod/directory.php:134
#: ../../mod/events.php:471 ../../mod/directory.php:134
#: ../../addon/forumdirectory/forumdirectory.php:156
#: ../../include/event.php:40 ../../include/bb2diaspora.php:415
#: ../../boot.php:1358
#: ../../boot.php:1379
msgid "Location:"
msgstr "Lokalizacja"
#: ../../mod/events.php:461
#: ../../mod/events.php:473
msgid "Title:"
msgstr "Tytuł:"
#: ../../mod/events.php:463
#: ../../mod/events.php:475
msgid "Share this event"
msgstr "Udostępnij te wydarzenie"
@ -384,11 +386,14 @@ msgstr "Udostępnij te wydarzenie"
msgid "System down for maintenance"
msgstr ""
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/editpost.php:145
#: ../../mod/dfrn_request.php:848 ../../mod/settings.php:561
#: ../../mod/settings.php:587 ../../mod/fbrowser.php:81
#: ../../mod/fbrowser.php:116 ../../addon/js_upload/js_upload.php:45
#: ../../include/conversation.php:1040
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 ../../mod/photos.php:202
#: ../../mod/photos.php:289 ../../mod/editpost.php:148
#: ../../mod/dfrn_request.php:848 ../../mod/contacts.php:249
#: ../../mod/settings.php:561 ../../mod/settings.php:587
#: ../../mod/fbrowser.php:81 ../../mod/fbrowser.php:116
#: ../../mod/message.php:212 ../../mod/suggest.php:32
#: ../../addon/js_upload/js_upload.php:45 ../../include/items.php:3897
#: ../../include/conversation.php:1062
#: ../../addon.old/js_upload/js_upload.php:45
msgid "Cancel"
msgstr "Anuluj"
@ -411,7 +416,7 @@ msgstr "Wybierz tag do usunięcia"
msgid "Remove"
msgstr "Usuń"
#: ../../mod/dfrn_poll.php:99 ../../mod/dfrn_poll.php:530
#: ../../mod/dfrn_poll.php:101 ../../mod/dfrn_poll.php:534
#, php-format
msgid "%1$s welcomes %2$s"
msgstr ""
@ -435,14 +440,16 @@ msgid ""
msgstr "Czy chcesz umożliwić tej aplikacji dostęp do Twoich wpisów, kontaktów oraz pozwolić jej na pisanie za Ciebie postów?"
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:836
#: ../../mod/settings.php:934 ../../mod/settings.php:940
#: ../../mod/settings.php:948 ../../mod/settings.php:952
#: ../../mod/settings.php:957 ../../mod/settings.php:963
#: ../../mod/settings.php:969 ../../mod/settings.php:975
#: ../../mod/settings.php:1005 ../../mod/settings.php:1006
#: ../../mod/settings.php:1007 ../../mod/settings.php:1008
#: ../../mod/settings.php:1009 ../../mod/register.php:239
#: ../../mod/profiles.php:606
#: ../../mod/contacts.php:246 ../../mod/settings.php:934
#: ../../mod/settings.php:940 ../../mod/settings.php:948
#: ../../mod/settings.php:952 ../../mod/settings.php:957
#: ../../mod/settings.php:963 ../../mod/settings.php:969
#: ../../mod/settings.php:975 ../../mod/settings.php:1005
#: ../../mod/settings.php:1006 ../../mod/settings.php:1007
#: ../../mod/settings.php:1008 ../../mod/settings.php:1009
#: ../../mod/register.php:239 ../../mod/message.php:209
#: ../../mod/profiles.php:606 ../../mod/suggest.php:29
#: ../../include/items.php:3894
msgid "Yes"
msgstr "Tak"
@ -458,20 +465,20 @@ msgstr "Tak"
msgid "No"
msgstr "Nie"
#: ../../mod/photos.php:51 ../../boot.php:1829
#: ../../mod/photos.php:51 ../../boot.php:1850
msgid "Photo Albums"
msgstr "Albumy zdjęć"
#: ../../mod/photos.php:59 ../../mod/photos.php:154 ../../mod/photos.php:1009
#: ../../mod/photos.php:1102 ../../mod/photos.php:1125
#: ../../mod/photos.php:1626 ../../mod/photos.php:1638
#: ../../mod/photos.php:59 ../../mod/photos.php:154 ../../mod/photos.php:1055
#: ../../mod/photos.php:1180 ../../mod/photos.php:1203
#: ../../mod/photos.php:1733 ../../mod/photos.php:1745
#: ../../addon/communityhome/communityhome.php:115
#: ../../view/theme/diabook/theme.php:492
#: ../../addon.old/communityhome/communityhome.php:110
msgid "Contact Photos"
msgstr "Zdjęcia kontaktu"
#: ../../mod/photos.php:66 ../../mod/photos.php:1141 ../../mod/photos.php:1685
#: ../../mod/photos.php:66 ../../mod/photos.php:1219 ../../mod/photos.php:1792
msgid "Upload New Photos"
msgstr "Wyślij nowe zdjęcie"
@ -483,8 +490,8 @@ msgstr "wszyscy"
msgid "Contact information unavailable"
msgstr "Informacje o kontakcie nie dostępne."
#: ../../mod/photos.php:154 ../../mod/photos.php:676 ../../mod/photos.php:1102
#: ../../mod/photos.php:1125 ../../mod/profile_photo.php:74
#: ../../mod/photos.php:154 ../../mod/photos.php:722 ../../mod/photos.php:1180
#: ../../mod/photos.php:1203 ../../mod/profile_photo.php:74
#: ../../mod/profile_photo.php:81 ../../mod/profile_photo.php:88
#: ../../mod/profile_photo.php:204 ../../mod/profile_photo.php:296
#: ../../mod/profile_photo.php:305
@ -499,213 +506,247 @@ msgstr "Zdjęcia profilowe"
msgid "Album not found."
msgstr "Album nie znaleziony"
#: ../../mod/photos.php:182 ../../mod/photos.php:1119
#: ../../mod/photos.php:187 ../../mod/photos.php:199 ../../mod/photos.php:1197
msgid "Delete Album"
msgstr "Usuń album"
#: ../../mod/photos.php:245 ../../mod/photos.php:1403
#: ../../mod/photos.php:197
msgid "Do you really want to delete this photo album and all its photos?"
msgstr ""
#: ../../mod/photos.php:275 ../../mod/photos.php:286 ../../mod/photos.php:1499
msgid "Delete Photo"
msgstr "Usuń zdjęcie"
#: ../../mod/photos.php:607
#: ../../mod/photos.php:284
msgid "Do you really want to delete this photo?"
msgstr ""
#: ../../mod/photos.php:653
#, php-format
msgid "%1$s was tagged in %2$s by %3$s"
msgstr ""
#: ../../mod/photos.php:607
#: ../../mod/photos.php:653
msgid "a photo"
msgstr "zdjęcie"
#: ../../mod/photos.php:712 ../../addon/js_upload/js_upload.php:321
#: ../../mod/photos.php:758 ../../addon/js_upload/js_upload.php:321
#: ../../addon.old/js_upload/js_upload.php:315
msgid "Image exceeds size limit of "
msgstr "obrazek przekracza limit rozmiaru"
#: ../../mod/photos.php:720
#: ../../mod/photos.php:766
msgid "Image file is empty."
msgstr "Plik obrazka jest pusty."
#: ../../mod/photos.php:752 ../../mod/profile_photo.php:153
#: ../../mod/photos.php:798 ../../mod/profile_photo.php:153
#: ../../mod/wall_upload.php:112
msgid "Unable to process image."
msgstr "Przetwarzanie obrazu nie powiodło się."
#: ../../mod/photos.php:779 ../../mod/profile_photo.php:301
#: ../../mod/photos.php:825 ../../mod/profile_photo.php:301
#: ../../mod/wall_upload.php:138
msgid "Image upload failed."
msgstr "Przesyłanie obrazu nie powiodło się"
#: ../../mod/photos.php:865 ../../mod/community.php:18
#: ../../mod/photos.php:911 ../../mod/community.php:18
#: ../../mod/dfrn_request.php:761 ../../mod/viewcontacts.php:17
#: ../../mod/display.php:19 ../../mod/search.php:89 ../../mod/directory.php:31
#: ../../addon/forumdirectory/forumdirectory.php:53
msgid "Public access denied."
msgstr "Publiczny dostęp zabroniony"
#: ../../mod/photos.php:875
#: ../../mod/photos.php:921
msgid "No photos selected"
msgstr "Nie zaznaczono zdjęć"
#: ../../mod/photos.php:976
#: ../../mod/photos.php:1022
msgid "Access to this item is restricted."
msgstr "Dostęp do tego obiektu jest ograniczony."
#: ../../mod/photos.php:1037
#: ../../mod/photos.php:1085
#, php-format
msgid "You have used %1$.2f Mbytes of %2$.2f Mbytes photo storage."
msgstr ""
#: ../../mod/photos.php:1053
#: ../../mod/photos.php:1120
msgid "Upload Photos"
msgstr "Prześlij zdjęcia"
#: ../../mod/photos.php:1057 ../../mod/photos.php:1114
#: ../../mod/photos.php:1124 ../../mod/photos.php:1192
msgid "New album name: "
msgstr "Nazwa nowego albumu:"
#: ../../mod/photos.php:1058
#: ../../mod/photos.php:1125
msgid "or existing album name: "
msgstr "lub istniejąca nazwa albumu:"
#: ../../mod/photos.php:1059
#: ../../mod/photos.php:1126
msgid "Do not show a status post for this upload"
msgstr "Nie pokazuj postów statusu dla tego wysłania"
#: ../../mod/photos.php:1061 ../../mod/photos.php:1398
#: ../../mod/photos.php:1128 ../../mod/photos.php:1494
msgid "Permissions"
msgstr "Uprawnienia"
#: ../../mod/photos.php:1129
#: ../../mod/photos.php:1137 ../../mod/photos.php:1503
#: ../../mod/settings.php:1070
msgid "Show to Groups"
msgstr ""
#: ../../mod/photos.php:1138 ../../mod/photos.php:1504
#: ../../mod/settings.php:1071
msgid "Show to Contacts"
msgstr ""
#: ../../mod/photos.php:1139
msgid "Private Photo"
msgstr ""
#: ../../mod/photos.php:1140
msgid "Public Photo"
msgstr ""
#: ../../mod/photos.php:1207
msgid "Edit Album"
msgstr "Edytuj album"
#: ../../mod/photos.php:1135
#: ../../mod/photos.php:1213
msgid "Show Newest First"
msgstr "Najpierw pokaż najnowsze"
#: ../../mod/photos.php:1137
#: ../../mod/photos.php:1215
msgid "Show Oldest First"
msgstr "Najpierw pokaż najstarsze"
#: ../../mod/photos.php:1170 ../../mod/photos.php:1668
#: ../../mod/photos.php:1248 ../../mod/photos.php:1775
msgid "View Photo"
msgstr "Zobacz zdjęcie"
#: ../../mod/photos.php:1205
#: ../../mod/photos.php:1283
msgid "Permission denied. Access to this item may be restricted."
msgstr "Odmowa dostępu. Dostęp do tych danych może być ograniczony."
#: ../../mod/photos.php:1207
#: ../../mod/photos.php:1285
msgid "Photo not available"
msgstr "Zdjęcie niedostępne"
#: ../../mod/photos.php:1263
#: ../../mod/photos.php:1341
msgid "View photo"
msgstr "Zobacz zdjęcie"
#: ../../mod/photos.php:1263
#: ../../mod/photos.php:1341
msgid "Edit photo"
msgstr "Edytuj zdjęcie"
#: ../../mod/photos.php:1264
#: ../../mod/photos.php:1342
msgid "Use as profile photo"
msgstr "Ustaw jako zdjęcie profilowe"
#: ../../mod/photos.php:1270 ../../mod/content.php:620
#: ../../mod/photos.php:1348 ../../mod/content.php:620
#: ../../object/Item.php:106
msgid "Private Message"
msgstr "Wiadomość prywatna"
#: ../../mod/photos.php:1289
#: ../../mod/photos.php:1367
msgid "View Full Size"
msgstr "Zobacz w pełnym rozmiarze"
#: ../../mod/photos.php:1363
#: ../../mod/photos.php:1441
msgid "Tags: "
msgstr "Tagi:"
#: ../../mod/photos.php:1366
#: ../../mod/photos.php:1444
msgid "[Remove any tag]"
msgstr "[Usunąć znacznik]"
#: ../../mod/photos.php:1388
#: ../../mod/photos.php:1484
msgid "Rotate CW (right)"
msgstr ""
#: ../../mod/photos.php:1389
#: ../../mod/photos.php:1485
msgid "Rotate CCW (left)"
msgstr ""
#: ../../mod/photos.php:1391
#: ../../mod/photos.php:1487
msgid "New album name"
msgstr "Nazwa nowego albumu"
#: ../../mod/photos.php:1394
#: ../../mod/photos.php:1490
msgid "Caption"
msgstr "Zawartość"
#: ../../mod/photos.php:1396
#: ../../mod/photos.php:1492
msgid "Add a Tag"
msgstr "Dodaj tag"
#: ../../mod/photos.php:1400
#: ../../mod/photos.php:1496
msgid ""
"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "Przykładowo: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
#: ../../mod/photos.php:1420 ../../mod/content.php:684
#: ../../mod/photos.php:1505
msgid "Private photo"
msgstr ""
#: ../../mod/photos.php:1506
msgid "Public photo"
msgstr ""
#: ../../mod/photos.php:1526 ../../mod/content.php:684
#: ../../object/Item.php:204
msgid "I like this (toggle)"
msgstr "Lubię to (zmień)"
#: ../../mod/photos.php:1421 ../../mod/content.php:685
#: ../../mod/photos.php:1527 ../../mod/content.php:685
#: ../../object/Item.php:205
msgid "I don't like this (toggle)"
msgstr "Nie lubię (zmień)"
#: ../../mod/photos.php:1422 ../../include/conversation.php:1000
#: ../../mod/photos.php:1528 ../../include/conversation.php:1023
msgid "Share"
msgstr "Podziel się"
#: ../../mod/photos.php:1423 ../../mod/editpost.php:121
#: ../../mod/photos.php:1529 ../../mod/editpost.php:124
#: ../../mod/content.php:499 ../../mod/content.php:883
#: ../../mod/wallmessage.php:152 ../../mod/message.php:300
#: ../../mod/message.php:528 ../../include/conversation.php:645
#: ../../include/conversation.php:1019 ../../object/Item.php:293
#: ../../mod/wallmessage.php:156 ../../mod/message.php:334
#: ../../mod/message.php:565 ../../include/conversation.php:646
#: ../../include/conversation.php:1042 ../../object/Item.php:293
msgid "Please wait"
msgstr "Proszę czekać"
#: ../../mod/photos.php:1439 ../../mod/photos.php:1483
#: ../../mod/photos.php:1566 ../../mod/content.php:707
#: ../../mod/photos.php:1546 ../../mod/photos.php:1590
#: ../../mod/photos.php:1673 ../../mod/content.php:707
#: ../../object/Item.php:601
msgid "This is you"
msgstr "To jesteś ty"
#: ../../mod/photos.php:1441 ../../mod/photos.php:1485
#: ../../mod/photos.php:1568 ../../mod/content.php:709 ../../boot.php:641
#: ../../mod/photos.php:1548 ../../mod/photos.php:1592
#: ../../mod/photos.php:1675 ../../mod/content.php:709 ../../boot.php:641
#: ../../object/Item.php:290 ../../object/Item.php:603
msgid "Comment"
msgstr "Komentarz"
#: ../../mod/photos.php:1443 ../../mod/photos.php:1487
#: ../../mod/photos.php:1570 ../../mod/editpost.php:142
#: ../../mod/content.php:719 ../../include/conversation.php:1037
#: ../../mod/photos.php:1550 ../../mod/photos.php:1594
#: ../../mod/photos.php:1677 ../../mod/editpost.php:145
#: ../../mod/content.php:719 ../../include/conversation.php:1059
#: ../../object/Item.php:613
msgid "Preview"
msgstr "Podgląd"
#: ../../mod/photos.php:1527 ../../mod/content.php:439
#: ../../mod/photos.php:1634 ../../mod/content.php:439
#: ../../mod/content.php:741 ../../mod/settings.php:623
#: ../../mod/group.php:171 ../../mod/admin.php:735
#: ../../include/conversation.php:569 ../../object/Item.php:120
#: ../../include/conversation.php:570 ../../object/Item.php:120
msgid "Delete"
msgstr "Usuń"
#: ../../mod/photos.php:1674
#: ../../mod/photos.php:1781
msgid "View Album"
msgstr "Zobacz album"
#: ../../mod/photos.php:1683
#: ../../mod/photos.php:1790
msgid "Recent Photos"
msgstr "Ostatnio dodane zdjęcia"
@ -714,7 +755,7 @@ msgid "Not available."
msgstr "Niedostępne."
#: ../../mod/community.php:32 ../../view/theme/diabook/theme.php:93
#: ../../include/nav.php:101
#: ../../include/nav.php:128
msgid "Community"
msgstr "Społeczność"
@ -763,96 +804,92 @@ msgstr "Artykuł nie znaleziony"
msgid "Edit post"
msgstr "Edytuj post"
#: ../../mod/editpost.php:91 ../../include/conversation.php:986
msgid "Post to Email"
msgstr "Wyślij poprzez email"
#: ../../mod/editpost.php:106 ../../mod/content.php:728
#: ../../mod/editpost.php:109 ../../mod/content.php:728
#: ../../mod/settings.php:622 ../../object/Item.php:110
msgid "Edit"
msgstr "Edytuj"
#: ../../mod/editpost.php:107 ../../mod/wallmessage.php:150
#: ../../mod/message.php:298 ../../mod/message.php:525
#: ../../include/conversation.php:1001
#: ../../mod/editpost.php:110 ../../mod/wallmessage.php:154
#: ../../mod/message.php:332 ../../mod/message.php:562
#: ../../include/conversation.php:1024
msgid "Upload photo"
msgstr "Wyślij zdjęcie"
#: ../../mod/editpost.php:108 ../../include/conversation.php:1002
#: ../../mod/editpost.php:111 ../../include/conversation.php:1025
msgid "upload photo"
msgstr "dodaj zdjęcie"
#: ../../mod/editpost.php:109 ../../include/conversation.php:1003
#: ../../mod/editpost.php:112 ../../include/conversation.php:1026
msgid "Attach file"
msgstr "Przyłącz plik"
#: ../../mod/editpost.php:110 ../../include/conversation.php:1004
#: ../../mod/editpost.php:113 ../../include/conversation.php:1027
msgid "attach file"
msgstr "załącz plik"
#: ../../mod/editpost.php:111 ../../mod/wallmessage.php:151
#: ../../mod/message.php:299 ../../mod/message.php:526
#: ../../include/conversation.php:1005
#: ../../mod/editpost.php:114 ../../mod/wallmessage.php:155
#: ../../mod/message.php:333 ../../mod/message.php:563
#: ../../include/conversation.php:1028
msgid "Insert web link"
msgstr "Wstaw link"
#: ../../mod/editpost.php:112 ../../include/conversation.php:1006
#: ../../mod/editpost.php:115 ../../include/conversation.php:1029
msgid "web link"
msgstr "Adres www"
#: ../../mod/editpost.php:113 ../../include/conversation.php:1007
#: ../../mod/editpost.php:116 ../../include/conversation.php:1030
msgid "Insert video link"
msgstr "Wstaw link wideo"
#: ../../mod/editpost.php:114 ../../include/conversation.php:1008
#: ../../mod/editpost.php:117 ../../include/conversation.php:1031
msgid "video link"
msgstr "link do filmu"
#: ../../mod/editpost.php:115 ../../include/conversation.php:1009
#: ../../mod/editpost.php:118 ../../include/conversation.php:1032
msgid "Insert audio link"
msgstr "Wstaw link audio"
#: ../../mod/editpost.php:116 ../../include/conversation.php:1010
#: ../../mod/editpost.php:119 ../../include/conversation.php:1033
msgid "audio link"
msgstr "Link audio"
#: ../../mod/editpost.php:117 ../../include/conversation.php:1011
#: ../../mod/editpost.php:120 ../../include/conversation.php:1034
msgid "Set your location"
msgstr "Ustaw swoje położenie"
#: ../../mod/editpost.php:118 ../../include/conversation.php:1012
#: ../../mod/editpost.php:121 ../../include/conversation.php:1035
msgid "set location"
msgstr "wybierz lokalizację"
#: ../../mod/editpost.php:119 ../../include/conversation.php:1013
#: ../../mod/editpost.php:122 ../../include/conversation.php:1036
msgid "Clear browser location"
msgstr "Wyczyść położenie przeglądarki"
#: ../../mod/editpost.php:120 ../../include/conversation.php:1014
#: ../../mod/editpost.php:123 ../../include/conversation.php:1037
msgid "clear location"
msgstr "wyczyść lokalizację"
#: ../../mod/editpost.php:122 ../../include/conversation.php:1020
#: ../../mod/editpost.php:125 ../../include/conversation.php:1043
msgid "Permission settings"
msgstr "Ustawienia uprawnień"
#: ../../mod/editpost.php:130 ../../include/conversation.php:1029
#: ../../mod/editpost.php:133 ../../include/conversation.php:1052
msgid "CC: email addresses"
msgstr "CC: adresy e-mail"
#: ../../mod/editpost.php:131 ../../include/conversation.php:1030
#: ../../mod/editpost.php:134 ../../include/conversation.php:1053
msgid "Public post"
msgstr "Publiczny post"
#: ../../mod/editpost.php:134 ../../include/conversation.php:1016
#: ../../mod/editpost.php:137 ../../include/conversation.php:1039
msgid "Set title"
msgstr "Ustaw tytuł"
#: ../../mod/editpost.php:136 ../../include/conversation.php:1018
#: ../../mod/editpost.php:139 ../../include/conversation.php:1041
msgid "Categories (comma-separated list)"
msgstr ""
#: ../../mod/editpost.php:137 ../../include/conversation.php:1032
#: ../../mod/editpost.php:140 ../../include/conversation.php:1055
msgid "Example: bob@example.com, mary@example.com"
msgstr "Przykład: bob@example.com, mary@example.com"
@ -1046,7 +1083,7 @@ msgstr "Twój zidentyfikowany adres:"
msgid "Submit Request"
msgstr "Wyślij zgłoszenie"
#: ../../mod/uexport.php:9 ../../mod/settings.php:30 ../../include/nav.php:140
#: ../../mod/uexport.php:9 ../../mod/settings.php:30 ../../include/nav.php:167
msgid "Account settings"
msgstr "Ustawienia konta"
@ -1075,10 +1112,10 @@ msgid "Remove account"
msgstr "Usuń konto"
#: ../../mod/uexport.php:48 ../../mod/settings.php:74
#: ../../mod/newmember.php:22 ../../mod/admin.php:824 ../../mod/admin.php:1029
#: ../../mod/newmember.php:22 ../../mod/admin.php:824 ../../mod/admin.php:1033
#: ../../addon/dav/friendica/layout.fnk.php:225
#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:537
#: ../../view/theme/diabook/theme.php:658 ../../include/nav.php:140
#: ../../view/theme/diabook/theme.php:658 ../../include/nav.php:167
#: ../../addon.old/dav/friendica/layout.fnk.php:225
#: ../../addon.old/mathjax/mathjax.php:36
msgid "Settings"
@ -1305,7 +1342,7 @@ msgstr "Błąd: moduł PHP mb_string jest wymagany ale nie jest zainstalowany"
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr ""
msgstr "Instalator WWW musi być w stanie utworzyć plik o nazwie \". Htconfig.php\" i nie jest w stanie tego zrobić."
#: ../../mod/install.php:424
msgid ""
@ -1454,8 +1491,8 @@ msgstr "Brak słów-kluczy do wyszukania. Dodaj słowa-klucze do swojego domyśl
msgid "is interested in:"
msgstr "interesuje się:"
#: ../../mod/match.php:58 ../../mod/suggest.php:59
#: ../../include/contact_widgets.php:9 ../../boot.php:1296
#: ../../mod/match.php:58 ../../mod/suggest.php:88
#: ../../include/contact_widgets.php:9 ../../boot.php:1317
msgid "Connect"
msgstr "Połącz"
@ -1472,37 +1509,37 @@ msgstr "Dane prywatne nie są dostępne zdalnie "
msgid "Visible to:"
msgstr "Widoczne dla:"
#: ../../mod/content.php:119 ../../mod/network.php:594
#: ../../mod/content.php:119 ../../mod/network.php:596
msgid "No such group"
msgstr "Nie ma takiej grupy"
#: ../../mod/content.php:130 ../../mod/network.php:605
#: ../../mod/content.php:130 ../../mod/network.php:607
msgid "Group is empty"
msgstr "Grupa jest pusta"
#: ../../mod/content.php:134 ../../mod/network.php:609
#: ../../mod/content.php:134 ../../mod/network.php:611
msgid "Group: "
msgstr "Grupa:"
#: ../../mod/content.php:438 ../../mod/content.php:740
#: ../../include/conversation.php:568 ../../object/Item.php:119
#: ../../include/conversation.php:569 ../../object/Item.php:119
msgid "Select"
msgstr "Wybierz"
#: ../../mod/content.php:472 ../../mod/content.php:852
#: ../../mod/content.php:853 ../../include/conversation.php:608
#: ../../mod/content.php:853 ../../include/conversation.php:609
#: ../../object/Item.php:258 ../../object/Item.php:259
#, php-format
msgid "View %s's profile @ %s"
msgstr "Pokaż %s's profil @ %s"
#: ../../mod/content.php:482 ../../mod/content.php:864
#: ../../include/conversation.php:628 ../../object/Item.php:272
#: ../../include/conversation.php:629 ../../object/Item.php:272
#, php-format
msgid "%s from %s"
msgstr "%s od %s"
#: ../../mod/content.php:497 ../../include/conversation.php:643
#: ../../mod/content.php:497 ../../include/conversation.php:644
msgid "View in context"
msgstr "Zobacz w kontekście"
@ -1514,7 +1551,7 @@ msgstr[0] " %d komentarz"
msgstr[1] " %d komentarzy"
msgstr[2] " %d komentarzy"
#: ../../mod/content.php:605 ../../include/text.php:1502
#: ../../mod/content.php:605 ../../include/text.php:1514
#: ../../object/Item.php:315 ../../object/Item.php:328
msgid "comment"
msgid_plural "comments"
@ -1608,11 +1645,11 @@ msgstr "do"
#: ../../mod/content.php:855 ../../object/Item.php:262
msgid "Wall-to-Wall"
msgstr ""
msgstr "Wall-to-Wall"
#: ../../mod/content.php:856 ../../object/Item.php:263
msgid "via Wall-To-Wall:"
msgstr ""
msgstr "via Wall-To-Wall:"
#: ../../mod/home.php:34 ../../addon/communityhome/communityhome.php:189
#: ../../addon.old/communityhome/communityhome.php:179
@ -1630,8 +1667,8 @@ msgid "Discard"
msgstr "Odrzuć"
#: ../../mod/notifications.php:51 ../../mod/notifications.php:164
#: ../../mod/notifications.php:210 ../../mod/contacts.php:325
#: ../../mod/contacts.php:379
#: ../../mod/notifications.php:210 ../../mod/contacts.php:359
#: ../../mod/contacts.php:413
msgid "Ignore"
msgstr "Ignoruj"
@ -1639,7 +1676,7 @@ msgstr "Ignoruj"
msgid "System"
msgstr "System"
#: ../../mod/notifications.php:83 ../../include/nav.php:113
#: ../../mod/notifications.php:83 ../../include/nav.php:140
msgid "Network"
msgstr "Sieć"
@ -1648,16 +1685,16 @@ msgid "Personal"
msgstr "Osobiste"
#: ../../mod/notifications.php:93 ../../view/theme/diabook/theme.php:87
#: ../../include/nav.php:77 ../../include/nav.php:116
#: ../../include/nav.php:104 ../../include/nav.php:143
msgid "Home"
msgstr "Dom"
#: ../../mod/notifications.php:98 ../../include/nav.php:122
#: ../../mod/notifications.php:98 ../../include/nav.php:149
msgid "Introductions"
msgstr "Wstępy"
#: ../../mod/notifications.php:103 ../../mod/message.php:180
#: ../../include/nav.php:129
#: ../../mod/notifications.php:103 ../../mod/message.php:182
#: ../../include/nav.php:156
msgid "Messages"
msgstr "Wiadomości"
@ -1683,7 +1720,7 @@ msgid "suggested by %s"
msgstr "zaproponowane przez %s"
#: ../../mod/notifications.php:157 ../../mod/notifications.php:204
#: ../../mod/contacts.php:385
#: ../../mod/contacts.php:419
msgid "Hide this contact from others"
msgstr "Ukryj ten kontakt przed innymi"
@ -1740,7 +1777,7 @@ msgstr "Nowy obserwator"
msgid "No introductions."
msgstr "Brak wstępu."
#: ../../mod/notifications.php:220 ../../include/nav.php:123
#: ../../mod/notifications.php:220 ../../include/nav.php:150
msgid "Notifications"
msgstr "Powiadomienia"
@ -1841,51 +1878,55 @@ msgstr "Kontakt został zarchiwizowany"
msgid "Contact has been unarchived"
msgstr ""
#: ../../mod/contacts.php:233
#: ../../mod/contacts.php:244
msgid "Do you really want to delete this contact?"
msgstr ""
#: ../../mod/contacts.php:263
msgid "Contact has been removed."
msgstr "Kontakt został usunięty."
#: ../../mod/contacts.php:267
#: ../../mod/contacts.php:301
#, php-format
msgid "You are mutual friends with %s"
msgstr "Jesteś już znajomym z %s"
#: ../../mod/contacts.php:271
#: ../../mod/contacts.php:305
#, php-format
msgid "You are sharing with %s"
msgstr "Współdzielisz z %s"
#: ../../mod/contacts.php:276
#: ../../mod/contacts.php:310
#, php-format
msgid "%s is sharing with you"
msgstr "%s współdzieli z tobą"
#: ../../mod/contacts.php:293
#: ../../mod/contacts.php:327
msgid "Private communications are not available for this contact."
msgstr "Prywatna rozmowa jest niemożliwa dla tego kontaktu"
#: ../../mod/contacts.php:296
#: ../../mod/contacts.php:330
msgid "Never"
msgstr "Nigdy"
#: ../../mod/contacts.php:300
#: ../../mod/contacts.php:334
msgid "(Update was successful)"
msgstr "(Aktualizacja przebiegła pomyślnie)"
#: ../../mod/contacts.php:300
#: ../../mod/contacts.php:334
msgid "(Update was not successful)"
msgstr "(Aktualizacja nie powiodła się)"
#: ../../mod/contacts.php:302
#: ../../mod/contacts.php:336
msgid "Suggest friends"
msgstr "Osoby, które możesz znać"
#: ../../mod/contacts.php:306
#: ../../mod/contacts.php:340
#, php-format
msgid "Network type: %s"
msgstr "Typ sieci: %s"
#: ../../mod/contacts.php:309 ../../include/contact_widgets.php:199
#: ../../mod/contacts.php:343 ../../include/contact_widgets.php:199
#, php-format
msgid "%d contact in common"
msgid_plural "%d contacts in common"
@ -1893,221 +1934,221 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#: ../../mod/contacts.php:314
#: ../../mod/contacts.php:348
msgid "View all contacts"
msgstr "Zobacz wszystkie kontakty"
#: ../../mod/contacts.php:319 ../../mod/contacts.php:378
#: ../../mod/contacts.php:353 ../../mod/contacts.php:412
#: ../../mod/admin.php:737
msgid "Unblock"
msgstr "Odblokuj"
#: ../../mod/contacts.php:319 ../../mod/contacts.php:378
#: ../../mod/contacts.php:353 ../../mod/contacts.php:412
#: ../../mod/admin.php:736
msgid "Block"
msgstr "Zablokuj"
#: ../../mod/contacts.php:322
#: ../../mod/contacts.php:356
msgid "Toggle Blocked status"
msgstr ""
#: ../../mod/contacts.php:325 ../../mod/contacts.php:379
#: ../../mod/contacts.php:359 ../../mod/contacts.php:413
msgid "Unignore"
msgstr "Odblokuj"
#: ../../mod/contacts.php:328
#: ../../mod/contacts.php:362
msgid "Toggle Ignored status"
msgstr ""
#: ../../mod/contacts.php:332
#: ../../mod/contacts.php:366
msgid "Unarchive"
msgstr ""
#: ../../mod/contacts.php:332
#: ../../mod/contacts.php:366
msgid "Archive"
msgstr "Archiwum"
#: ../../mod/contacts.php:335
#: ../../mod/contacts.php:369
msgid "Toggle Archive status"
msgstr ""
#: ../../mod/contacts.php:338
#: ../../mod/contacts.php:372
msgid "Repair"
msgstr "Napraw"
#: ../../mod/contacts.php:341
#: ../../mod/contacts.php:375
msgid "Advanced Contact Settings"
msgstr "Zaawansowane ustawienia kontaktów"
#: ../../mod/contacts.php:347
#: ../../mod/contacts.php:381
msgid "Communications lost with this contact!"
msgstr ""
#: ../../mod/contacts.php:350
#: ../../mod/contacts.php:384
msgid "Contact Editor"
msgstr "Edytor kontaktów"
#: ../../mod/contacts.php:353
#: ../../mod/contacts.php:387
msgid "Profile Visibility"
msgstr "Widoczność profilu"
#: ../../mod/contacts.php:354
#: ../../mod/contacts.php:388
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Wybierz profil, który chcesz bezpiecznie wyświetlić %s"
#: ../../mod/contacts.php:355
#: ../../mod/contacts.php:389
msgid "Contact Information / Notes"
msgstr "Informacja o kontakcie / Notka"
#: ../../mod/contacts.php:356
#: ../../mod/contacts.php:390
msgid "Edit contact notes"
msgstr "Edytuj notatki kontaktu"
#: ../../mod/contacts.php:361 ../../mod/contacts.php:553
#: ../../mod/contacts.php:395 ../../mod/contacts.php:585
#: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
#, php-format
msgid "Visit %s's profile [%s]"
msgstr "Obejrzyj %s's profil [%s]"
#: ../../mod/contacts.php:362
#: ../../mod/contacts.php:396
msgid "Block/Unblock contact"
msgstr "Zablokuj/odblokuj kontakt"
#: ../../mod/contacts.php:363
#: ../../mod/contacts.php:397
msgid "Ignore contact"
msgstr "Ignoruj kontakt"
#: ../../mod/contacts.php:364
#: ../../mod/contacts.php:398
msgid "Repair URL settings"
msgstr "Napraw ustawienia adresu"
#: ../../mod/contacts.php:365
#: ../../mod/contacts.php:399
msgid "View conversations"
msgstr "Zobacz rozmowę"
#: ../../mod/contacts.php:367
#: ../../mod/contacts.php:401
msgid "Delete contact"
msgstr "Usuń kontakt"
#: ../../mod/contacts.php:371
#: ../../mod/contacts.php:405
msgid "Last update:"
msgstr "Ostatnia aktualizacja:"
#: ../../mod/contacts.php:373
#: ../../mod/contacts.php:407
msgid "Update public posts"
msgstr "Zaktualizuj publiczne posty"
#: ../../mod/contacts.php:375 ../../mod/admin.php:1209
#: ../../mod/contacts.php:409 ../../mod/admin.php:1213
msgid "Update now"
msgstr "Aktualizuj teraz"
#: ../../mod/contacts.php:382
#: ../../mod/contacts.php:416
msgid "Currently blocked"
msgstr "Obecnie zablokowany"
#: ../../mod/contacts.php:383
#: ../../mod/contacts.php:417
msgid "Currently ignored"
msgstr "Obecnie zignorowany"
#: ../../mod/contacts.php:384
#: ../../mod/contacts.php:418
msgid "Currently archived"
msgstr "Obecnie zarchiwizowany"
#: ../../mod/contacts.php:385
#: ../../mod/contacts.php:419
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Odpowiedzi/kliknięcia \"lubię to\" do twoich publicznych postów nadal <strong>mogą</strong> być widoczne"
#: ../../mod/contacts.php:438
#: ../../mod/contacts.php:470
msgid "Suggestions"
msgstr "Sugestie"
#: ../../mod/contacts.php:441
#: ../../mod/contacts.php:473
msgid "Suggest potential friends"
msgstr "Sugerowani znajomi"
#: ../../mod/contacts.php:444 ../../mod/group.php:194
#: ../../mod/contacts.php:476 ../../mod/group.php:194
msgid "All Contacts"
msgstr "Wszystkie kontakty"
#: ../../mod/contacts.php:447
#: ../../mod/contacts.php:479
msgid "Show all contacts"
msgstr "Pokaż wszystkie kontakty"
#: ../../mod/contacts.php:450
#: ../../mod/contacts.php:482
msgid "Unblocked"
msgstr "Odblokowany"
#: ../../mod/contacts.php:453
#: ../../mod/contacts.php:485
msgid "Only show unblocked contacts"
msgstr "Pokaż tylko odblokowane kontakty"
#: ../../mod/contacts.php:457
#: ../../mod/contacts.php:489
msgid "Blocked"
msgstr "Zablokowany"
#: ../../mod/contacts.php:460
#: ../../mod/contacts.php:492
msgid "Only show blocked contacts"
msgstr "Pokaż tylko zablokowane kontakty"
#: ../../mod/contacts.php:464
#: ../../mod/contacts.php:496
msgid "Ignored"
msgstr "Zignorowany"
#: ../../mod/contacts.php:467
#: ../../mod/contacts.php:499
msgid "Only show ignored contacts"
msgstr "Pokaż tylko ignorowane kontakty"
#: ../../mod/contacts.php:471
#: ../../mod/contacts.php:503
msgid "Archived"
msgstr ""
#: ../../mod/contacts.php:474
#: ../../mod/contacts.php:506
msgid "Only show archived contacts"
msgstr "Pokaż tylko zarchiwizowane kontakty"
#: ../../mod/contacts.php:478
#: ../../mod/contacts.php:510
msgid "Hidden"
msgstr "Ukryty"
#: ../../mod/contacts.php:481
#: ../../mod/contacts.php:513
msgid "Only show hidden contacts"
msgstr "Pokaż tylko ukryte kontakty"
#: ../../mod/contacts.php:529
#: ../../mod/contacts.php:561
msgid "Mutual Friendship"
msgstr "Wzajemna przyjaźń"
#: ../../mod/contacts.php:533
#: ../../mod/contacts.php:565
msgid "is a fan of yours"
msgstr "jest twoim fanem"
#: ../../mod/contacts.php:537
#: ../../mod/contacts.php:569
msgid "you are a fan of"
msgstr "jesteś fanem"
#: ../../mod/contacts.php:554 ../../mod/nogroup.php:41
#: ../../mod/contacts.php:586 ../../mod/nogroup.php:41
msgid "Edit contact"
msgstr "Edytuj kontakt"
#: ../../mod/contacts.php:575 ../../view/theme/diabook/theme.php:89
#: ../../include/nav.php:144
#: ../../mod/contacts.php:607 ../../view/theme/diabook/theme.php:89
#: ../../include/nav.php:171
msgid "Contacts"
msgstr "Kontakty"
#: ../../mod/contacts.php:579
#: ../../mod/contacts.php:611
msgid "Search your contacts"
msgstr "Wyszukaj w kontaktach"
#: ../../mod/contacts.php:580 ../../mod/directory.php:59
#: ../../mod/contacts.php:612 ../../mod/directory.php:59
#: ../../addon/forumdirectory/forumdirectory.php:81
msgid "Finding: "
msgstr "Znalezione:"
#: ../../mod/contacts.php:581 ../../mod/directory.php:61
#: ../../mod/contacts.php:613 ../../mod/directory.php:61
#: ../../addon/forumdirectory/forumdirectory.php:83
#: ../../include/contact_widgets.php:33
msgid "Find"
@ -2132,7 +2173,7 @@ msgid ""
"Password reset failed."
msgstr "Prośba nie może być zweryfikowana. (Mogłeś już ją poprzednio wysłać.) Reset hasła nie powiódł się."
#: ../../mod/lostpass.php:84 ../../boot.php:1030
#: ../../mod/lostpass.php:84 ../../boot.php:1051
msgid "Password Reset"
msgstr "Zresetuj hasło"
@ -2251,7 +2292,7 @@ msgstr ""
#: ../../addon/impressum/impressum.php:78
#: ../../addon/openstreetmap/openstreetmap.php:104
#: ../../addon/altpager/altpager.php:107 ../../addon/mathjax/mathjax.php:66
#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:548
#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:550
#: ../../addon.old/facebook/facebook.php:495
#: ../../addon.old/fbpost/fbpost.php:144
#: ../../addon.old/impressum/impressum.php:78
@ -2582,149 +2623,161 @@ msgstr "Wygasające zdjęcia:"
msgid "Only expire posts by others:"
msgstr ""
#: ../../mod/settings.php:1016
#: ../../mod/settings.php:1035
msgid "Account Settings"
msgstr "Ustawienia konta"
#: ../../mod/settings.php:1024
#: ../../mod/settings.php:1043
msgid "Password Settings"
msgstr "Ustawienia hasła"
#: ../../mod/settings.php:1025
#: ../../mod/settings.php:1044
msgid "New Password:"
msgstr "Nowe hasło:"
#: ../../mod/settings.php:1026
#: ../../mod/settings.php:1045
msgid "Confirm:"
msgstr "Potwierdź:"
#: ../../mod/settings.php:1026
#: ../../mod/settings.php:1045
msgid "Leave password fields blank unless changing"
msgstr "Pozostaw pola hasła puste, chyba że chcesz je zmienić."
#: ../../mod/settings.php:1030
#: ../../mod/settings.php:1049
msgid "Basic Settings"
msgstr "Ustawienia podstawowe"
#: ../../mod/settings.php:1031 ../../include/profile_advanced.php:15
#: ../../mod/settings.php:1050 ../../include/profile_advanced.php:15
msgid "Full Name:"
msgstr "Imię i nazwisko:"
#: ../../mod/settings.php:1032
#: ../../mod/settings.php:1051
msgid "Email Address:"
msgstr "Adres email:"
#: ../../mod/settings.php:1033
#: ../../mod/settings.php:1052
msgid "Your Timezone:"
msgstr "Twoja strefa czasowa:"
#: ../../mod/settings.php:1034
#: ../../mod/settings.php:1053
msgid "Default Post Location:"
msgstr "Standardowa lokalizacja wiadomości:"
#: ../../mod/settings.php:1035
#: ../../mod/settings.php:1054
msgid "Use Browser Location:"
msgstr "Użyj położenia przeglądarki:"
#: ../../mod/settings.php:1038
#: ../../mod/settings.php:1057
msgid "Security and Privacy Settings"
msgstr "Ustawienia bezpieczeństwa i prywatności"
#: ../../mod/settings.php:1040
#: ../../mod/settings.php:1059
msgid "Maximum Friend Requests/Day:"
msgstr "Maksymalna liczba zaproszeń do grona przyjaciół na dzień:"
#: ../../mod/settings.php:1040 ../../mod/settings.php:1059
#: ../../mod/settings.php:1059 ../../mod/settings.php:1089
msgid "(to prevent spam abuse)"
msgstr "(aby zapobiec spamowaniu)"
#: ../../mod/settings.php:1041
#: ../../mod/settings.php:1060
msgid "Default Post Permissions"
msgstr "Domyślne prawa dostępu wiadomości"
#: ../../mod/settings.php:1042
#: ../../mod/settings.php:1061
msgid "(click to open/close)"
msgstr "(kliknij by otworzyć/zamknąć)"
#: ../../mod/settings.php:1059
#: ../../mod/settings.php:1072
msgid "Default Private Post"
msgstr ""
#: ../../mod/settings.php:1073
msgid "Default Public Post"
msgstr ""
#: ../../mod/settings.php:1077
msgid "Default Permissions for New Posts"
msgstr ""
#: ../../mod/settings.php:1089
msgid "Maximum private messages per day from unknown people:"
msgstr ""
#: ../../mod/settings.php:1062
#: ../../mod/settings.php:1092
msgid "Notification Settings"
msgstr "Ustawienia powiadomień"
#: ../../mod/settings.php:1063
#: ../../mod/settings.php:1093
msgid "By default post a status message when:"
msgstr ""
#: ../../mod/settings.php:1064
#: ../../mod/settings.php:1094
msgid "accepting a friend request"
msgstr ""
#: ../../mod/settings.php:1065
#: ../../mod/settings.php:1095
msgid "joining a forum/community"
msgstr ""
#: ../../mod/settings.php:1066
#: ../../mod/settings.php:1096
msgid "making an <em>interesting</em> profile change"
msgstr ""
#: ../../mod/settings.php:1067
#: ../../mod/settings.php:1097
msgid "Send a notification email when:"
msgstr "Wyślij powiadmonienia na email, kiedy:"
#: ../../mod/settings.php:1068
#: ../../mod/settings.php:1098
msgid "You receive an introduction"
msgstr "Otrzymałeś zaproszenie"
#: ../../mod/settings.php:1069
#: ../../mod/settings.php:1099
msgid "Your introductions are confirmed"
msgstr "Dane zatwierdzone"
#: ../../mod/settings.php:1070
#: ../../mod/settings.php:1100
msgid "Someone writes on your profile wall"
msgstr "Ktoś pisze na twojej ścianie profilowej"
#: ../../mod/settings.php:1071
#: ../../mod/settings.php:1101
msgid "Someone writes a followup comment"
msgstr "Ktoś pisze komentarz nawiązujący."
#: ../../mod/settings.php:1072
#: ../../mod/settings.php:1102
msgid "You receive a private message"
msgstr "Otrzymałeś prywatną wiadomość"
#: ../../mod/settings.php:1073
#: ../../mod/settings.php:1103
msgid "You receive a friend suggestion"
msgstr "Otrzymane propozycje znajomych"
#: ../../mod/settings.php:1074
#: ../../mod/settings.php:1104
msgid "You are tagged in a post"
msgstr "Jesteś oznaczony w poście"
#: ../../mod/settings.php:1075
#: ../../mod/settings.php:1105
msgid "You are poked/prodded/etc. in a post"
msgstr ""
#: ../../mod/settings.php:1078
#: ../../mod/settings.php:1108
msgid "Advanced Account/Page Type Settings"
msgstr ""
#: ../../mod/settings.php:1079
#: ../../mod/settings.php:1109
msgid "Change the behaviour of this account for special situations"
msgstr ""
#: ../../mod/manage.php:94
#: ../../mod/manage.php:106
msgid "Manage Identities and/or Pages"
msgstr "Zarządzaj Tożsamościami i/lub Stronami."
#: ../../mod/manage.php:97
#: ../../mod/manage.php:107
msgid ""
"Toggle between different identities or community/group pages which share "
"your account details or which you have been granted \"manage\" permissions"
msgstr ""
#: ../../mod/manage.php:99
#: ../../mod/manage.php:108
msgid "Select an identity to manage: "
msgstr "Wybierz tożsamość do zarządzania:"
@ -2802,19 +2855,19 @@ msgstr[2] "Uwaga: Ta grupa posiada %s członków z niezabezpieczonej sieci."
msgid "Private messages to this group are at risk of public disclosure."
msgstr "Prywatne wiadomości do tej grupy mogą zostać publicznego ujawnienia"
#: ../../mod/network.php:619
#: ../../mod/network.php:621
msgid "Contact: "
msgstr "Kontakt: "
#: ../../mod/network.php:621
#: ../../mod/network.php:623
msgid "Private messages to this person are at risk of public disclosure."
msgstr "Prywatne wiadomości do tej osoby mogą zostać publicznie ujawnione "
#: ../../mod/network.php:626
#: ../../mod/network.php:628
msgid "Invalid contact."
msgstr "Zły kontakt"
#: ../../mod/notes.php:44 ../../boot.php:1843
#: ../../mod/notes.php:44 ../../boot.php:1864
msgid "Personal Notes"
msgstr "Osobiste notatki"
@ -2902,36 +2955,36 @@ msgstr "Wysłano."
msgid "No recipient."
msgstr "Brak odbiorcy."
#: ../../mod/wallmessage.php:123 ../../mod/wallmessage.php:131
#: ../../mod/message.php:249 ../../mod/message.php:257
#: ../../mod/message.php:429 ../../mod/message.php:437
#: ../../include/conversation.php:936 ../../include/conversation.php:954
#: ../../mod/wallmessage.php:127 ../../mod/wallmessage.php:135
#: ../../mod/message.php:283 ../../mod/message.php:291
#: ../../mod/message.php:466 ../../mod/message.php:474
#: ../../include/conversation.php:940 ../../include/conversation.php:958
msgid "Please enter a link URL:"
msgstr "Proszę wpisać adres URL:"
#: ../../mod/wallmessage.php:138 ../../mod/message.php:285
#: ../../mod/wallmessage.php:142 ../../mod/message.php:319
msgid "Send Private Message"
msgstr "Wyślij prywatną wiadomość"
#: ../../mod/wallmessage.php:139
#: ../../mod/wallmessage.php:143
#, php-format
msgid ""
"If you wish for %s to respond, please check that the privacy settings on "
"your site allow private mail from unknown senders."
msgstr ""
#: ../../mod/wallmessage.php:140 ../../mod/message.php:286
#: ../../mod/message.php:516
#: ../../mod/wallmessage.php:144 ../../mod/message.php:320
#: ../../mod/message.php:553
msgid "To:"
msgstr "Do:"
#: ../../mod/wallmessage.php:141 ../../mod/message.php:291
#: ../../mod/message.php:518
#: ../../mod/wallmessage.php:145 ../../mod/message.php:325
#: ../../mod/message.php:555
msgid "Subject:"
msgstr "Temat:"
#: ../../mod/wallmessage.php:147 ../../mod/message.php:295
#: ../../mod/message.php:521 ../../mod/invite.php:115
#: ../../mod/wallmessage.php:151 ../../mod/message.php:329
#: ../../mod/message.php:558 ../../mod/invite.php:134
msgid "Your message:"
msgstr "Twoja wiadomość:"
@ -2987,8 +3040,8 @@ msgstr ""
#: ../../mod/newmember.php:32 ../../mod/profperm.php:103
#: ../../view/theme/diabook/theme.php:88 ../../include/profile_advanced.php:7
#: ../../include/profile_advanced.php:84 ../../include/nav.php:50
#: ../../boot.php:1819
#: ../../include/profile_advanced.php:84 ../../include/nav.php:77
#: ../../boot.php:1840
msgid "Profile"
msgstr "Profil"
@ -3159,7 +3212,7 @@ msgstr "Nie znaleziono grupy"
msgid "Group name changed."
msgstr "Nazwa grupy zmieniona"
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:339
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:340
msgid "Permission denied"
msgstr "Odmowa dostępu"
@ -3293,7 +3346,7 @@ msgstr "Wybierz login. Login musi zaczynać się literą. Adres twojego profilu
msgid "Choose a nickname: "
msgstr "Wybierz pseudonim:"
#: ../../mod/register.php:275 ../../include/nav.php:81 ../../boot.php:991
#: ../../mod/register.php:275 ../../include/nav.php:108 ../../boot.php:1012
msgid "Register"
msgstr "Zarejestruj"
@ -3301,40 +3354,40 @@ msgstr "Zarejestruj"
msgid "People Search"
msgstr "Szukaj osób"
#: ../../mod/like.php:145 ../../mod/subthread.php:87 ../../mod/tagger.php:62
#: ../../mod/like.php:151 ../../mod/subthread.php:87 ../../mod/tagger.php:62
#: ../../addon/communityhome/communityhome.php:171
#: ../../view/theme/diabook/theme.php:464 ../../include/text.php:1498
#: ../../include/diaspora.php:1860 ../../include/conversation.php:125
#: ../../include/conversation.php:253
#: ../../view/theme/diabook/theme.php:464 ../../include/text.php:1510
#: ../../include/diaspora.php:1860 ../../include/conversation.php:126
#: ../../include/conversation.php:254
#: ../../addon.old/communityhome/communityhome.php:163
msgid "photo"
msgstr "zdjęcie"
#: ../../mod/like.php:145 ../../mod/like.php:298 ../../mod/subthread.php:87
#: ../../mod/like.php:151 ../../mod/like.php:322 ../../mod/subthread.php:87
#: ../../mod/tagger.php:62 ../../addon/facebook/facebook.php:1600
#: ../../addon/communityhome/communityhome.php:166
#: ../../addon/communityhome/communityhome.php:175
#: ../../view/theme/diabook/theme.php:459
#: ../../view/theme/diabook/theme.php:468 ../../include/diaspora.php:1860
#: ../../include/conversation.php:120 ../../include/conversation.php:129
#: ../../include/conversation.php:248 ../../include/conversation.php:257
#: ../../include/conversation.php:121 ../../include/conversation.php:130
#: ../../include/conversation.php:249 ../../include/conversation.php:258
#: ../../addon.old/facebook/facebook.php:1598
#: ../../addon.old/communityhome/communityhome.php:158
#: ../../addon.old/communityhome/communityhome.php:167
msgid "status"
msgstr "status"
#: ../../mod/like.php:162 ../../addon/facebook/facebook.php:1604
#: ../../mod/like.php:168 ../../addon/facebook/facebook.php:1604
#: ../../addon/communityhome/communityhome.php:180
#: ../../view/theme/diabook/theme.php:473 ../../include/diaspora.php:1876
#: ../../include/conversation.php:136
#: ../../include/conversation.php:137
#: ../../addon.old/facebook/facebook.php:1602
#: ../../addon.old/communityhome/communityhome.php:172
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s lubi %2$s's %3$s"
#: ../../mod/like.php:164 ../../include/conversation.php:139
#: ../../mod/like.php:170 ../../include/conversation.php:140
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s nie lubi %2$s's %3$s"
@ -3350,7 +3403,7 @@ msgid "Access denied."
msgstr "Brak dostępu"
#: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:90
#: ../../include/nav.php:51 ../../boot.php:1826
#: ../../include/nav.php:78 ../../boot.php:1847
msgid "Photos"
msgstr "Zdjęcia"
@ -3375,44 +3428,44 @@ msgstr "Proszę się zalogować."
msgid "Unable to locate original post."
msgstr "Nie można zlokalizować oryginalnej wiadomości."
#: ../../mod/item.php:288
#: ../../mod/item.php:292
msgid "Empty post discarded."
msgstr "Pusty wpis wyrzucony."
#: ../../mod/item.php:424 ../../mod/wall_upload.php:135
#: ../../mod/item.php:428 ../../mod/wall_upload.php:135
#: ../../mod/wall_upload.php:144 ../../mod/wall_upload.php:151
#: ../../include/message.php:144
msgid "Wall Photos"
msgstr "Tablica zdjęć"
#: ../../mod/item.php:837
#: ../../mod/item.php:841
msgid "System error. Post not saved."
msgstr "Błąd. Post niezapisany."
#: ../../mod/item.php:862
#: ../../mod/item.php:866
#, php-format
msgid ""
"This message was sent to you by %s, a member of the Friendica social "
"network."
msgstr "Wiadomość została wysłana do ciebie od %s , członka portalu Friendica"
#: ../../mod/item.php:864
#: ../../mod/item.php:868
#, php-format
msgid "You may visit them online at %s"
msgstr "Możesz ich odwiedzić online u %s"
#: ../../mod/item.php:865
#: ../../mod/item.php:869
msgid ""
"Please contact the sender by replying to this post if you do not wish to "
"receive these messages."
msgstr "Skontaktuj się z nadawcą odpowiadając na ten post jeśli nie chcesz otrzymywać tych wiadomości."
#: ../../mod/item.php:867
#: ../../mod/item.php:871
#, php-format
msgid "%s posted an update."
msgstr "%s zaktualizował wpis."
#: ../../mod/mood.php:62 ../../include/conversation.php:226
#: ../../mod/mood.php:62 ../../include/conversation.php:227
#, php-format
msgid "%1$s is currently %2$s"
msgstr ""
@ -3506,7 +3559,15 @@ msgstr "Kompletne usunięcie konta. Jeżeli zostanie wykonane, konto nie może z
msgid "Please enter your password for verification:"
msgstr "Wprowadź hasło w celu weryfikacji."
#: ../../mod/message.php:9 ../../include/nav.php:132
#: ../../mod/navigation.php:20 ../../include/nav.php:34
msgid "Nothing new here"
msgstr "Brak nowych zdarzeń"
#: ../../mod/navigation.php:24 ../../include/nav.php:38
msgid "Clear notifications"
msgstr ""
#: ../../mod/message.php:9 ../../include/nav.php:159
msgid "New Message"
msgstr "Nowa wiadomość"
@ -3514,42 +3575,46 @@ msgstr "Nowa wiadomość"
msgid "Unable to locate contact information."
msgstr "Niezdolny do uzyskania informacji kontaktowych."
#: ../../mod/message.php:195
#: ../../mod/message.php:207
msgid "Do you really want to delete this message?"
msgstr ""
#: ../../mod/message.php:227
msgid "Message deleted."
msgstr "Wiadomość usunięta."
#: ../../mod/message.php:225
#: ../../mod/message.php:258
msgid "Conversation removed."
msgstr "Rozmowa usunięta."
#: ../../mod/message.php:334
#: ../../mod/message.php:371
msgid "No messages."
msgstr "Brak wiadomości."
#: ../../mod/message.php:341
#: ../../mod/message.php:378
#, php-format
msgid "Unknown sender - %s"
msgstr ""
#: ../../mod/message.php:344
#: ../../mod/message.php:381
#, php-format
msgid "You and %s"
msgstr "Ty i %s"
#: ../../mod/message.php:347
#: ../../mod/message.php:384
#, php-format
msgid "%s and You"
msgstr "%s i ty"
#: ../../mod/message.php:368 ../../mod/message.php:509
#: ../../mod/message.php:405 ../../mod/message.php:546
msgid "Delete conversation"
msgstr "Usuń rozmowę"
#: ../../mod/message.php:371
#: ../../mod/message.php:408
msgid "D, d M Y - g:i A"
msgstr "D, d M R - g:m AM/PM"
#: ../../mod/message.php:374
#: ../../mod/message.php:411
#, php-format
msgid "%d message"
msgid_plural "%d messages"
@ -3557,21 +3622,21 @@ msgstr[0] " %d wiadomość"
msgstr[1] " %d wiadomości"
msgstr[2] " %d wiadomości"
#: ../../mod/message.php:413
#: ../../mod/message.php:450
msgid "Message not available."
msgstr "Wiadomość nie jest dostępna."
#: ../../mod/message.php:483
#: ../../mod/message.php:520
msgid "Delete message"
msgstr "Usuń wiadomość"
#: ../../mod/message.php:511
#: ../../mod/message.php:548
msgid ""
"No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page."
msgstr ""
#: ../../mod/message.php:515
#: ../../mod/message.php:552
msgid "Send Reply"
msgstr "Odpowiedz"
@ -3600,7 +3665,7 @@ msgstr "Użytkownicy"
msgid "Plugins"
msgstr "Wtyczki"
#: ../../mod/admin.php:99 ../../mod/admin.php:1027 ../../mod/admin.php:1063
#: ../../mod/admin.php:99 ../../mod/admin.php:1031 ../../mod/admin.php:1067
msgid "Themes"
msgstr "Temat"
@ -3608,11 +3673,11 @@ msgstr "Temat"
msgid "DB updates"
msgstr ""
#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1150
#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1154
msgid "Logs"
msgstr "Logi"
#: ../../mod/admin.php:120 ../../include/nav.php:151
#: ../../mod/admin.php:120 ../../include/nav.php:178
msgid "Admin"
msgstr "Administator"
@ -3630,7 +3695,7 @@ msgstr "Konto normalne"
#: ../../mod/admin.php:184 ../../mod/admin.php:699
msgid "Soapbox Account"
msgstr ""
msgstr "Konto Soapbox"
#: ../../mod/admin.php:185 ../../mod/admin.php:700
msgid "Community/Celebrity Account"
@ -3653,8 +3718,8 @@ msgid "Message queues"
msgstr ""
#: ../../mod/admin.php:212 ../../mod/admin.php:459 ../../mod/admin.php:726
#: ../../mod/admin.php:821 ../../mod/admin.php:863 ../../mod/admin.php:1026
#: ../../mod/admin.php:1062 ../../mod/admin.php:1149
#: ../../mod/admin.php:821 ../../mod/admin.php:863 ../../mod/admin.php:1030
#: ../../mod/admin.php:1066 ../../mod/admin.php:1153
msgid "Administration"
msgstr "Administracja"
@ -3992,7 +4057,7 @@ msgstr "URL Proxy"
#: ../../mod/admin.php:504
msgid "Network timeout"
msgstr ""
msgstr "Network timeout"
#: ../../mod/admin.php:504
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
@ -4209,23 +4274,23 @@ msgstr "Wtyczka %s wyłączona."
msgid "Plugin %s enabled."
msgstr "Wtyczka %s właczona."
#: ../../mod/admin.php:799 ../../mod/admin.php:997
#: ../../mod/admin.php:799 ../../mod/admin.php:1001
msgid "Disable"
msgstr "Wyłącz"
#: ../../mod/admin.php:801 ../../mod/admin.php:999
#: ../../mod/admin.php:801 ../../mod/admin.php:1003
msgid "Enable"
msgstr "Zezwól"
#: ../../mod/admin.php:823 ../../mod/admin.php:1028
#: ../../mod/admin.php:823 ../../mod/admin.php:1032
msgid "Toggle"
msgstr "Włącz"
#: ../../mod/admin.php:831 ../../mod/admin.php:1038
#: ../../mod/admin.php:831 ../../mod/admin.php:1042
msgid "Author: "
msgstr "Autor: "
#: ../../mod/admin.php:832 ../../mod/admin.php:1039
#: ../../mod/admin.php:832 ../../mod/admin.php:1043
msgid "Maintainer: "
msgstr ""
@ -4233,65 +4298,65 @@ msgstr ""
msgid "No themes found."
msgstr "Nie znaleziono tematu."
#: ../../mod/admin.php:1020
#: ../../mod/admin.php:1024
msgid "Screenshot"
msgstr "Zrzut ekranu"
#: ../../mod/admin.php:1068
#: ../../mod/admin.php:1072
msgid "[Experimental]"
msgstr "[Eksperymentalne]"
#: ../../mod/admin.php:1069
#: ../../mod/admin.php:1073
msgid "[Unsupported]"
msgstr "[Niewspieralne]"
#: ../../mod/admin.php:1096
#: ../../mod/admin.php:1100
msgid "Log settings updated."
msgstr ""
#: ../../mod/admin.php:1152
#: ../../mod/admin.php:1156
msgid "Clear"
msgstr "Wyczyść"
#: ../../mod/admin.php:1158
#: ../../mod/admin.php:1162
msgid "Debugging"
msgstr "Naprawianie"
#: ../../mod/admin.php:1159
#: ../../mod/admin.php:1163
msgid "Log file"
msgstr "Plik logów"
#: ../../mod/admin.php:1159
#: ../../mod/admin.php:1163
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr ""
#: ../../mod/admin.php:1160
#: ../../mod/admin.php:1164
msgid "Log level"
msgstr "Poziom logów"
#: ../../mod/admin.php:1210
#: ../../mod/admin.php:1214
msgid "Close"
msgstr "Zamknij"
#: ../../mod/admin.php:1216
#: ../../mod/admin.php:1220
msgid "FTP Host"
msgstr "Założyciel FTP"
#: ../../mod/admin.php:1217
#: ../../mod/admin.php:1221
msgid "FTP Path"
msgstr "Ścieżka FTP"
#: ../../mod/admin.php:1218
#: ../../mod/admin.php:1222
msgid "FTP User"
msgstr "Użytkownik FTP"
#: ../../mod/admin.php:1219
#: ../../mod/admin.php:1223
msgid "FTP Password"
msgstr "FTP Hasło"
#: ../../mod/profile.php:21 ../../boot.php:1204
#: ../../mod/profile.php:21 ../../boot.php:1225
msgid "Requested profile is not available."
msgstr "Żądany profil jest niedostępny"
@ -4400,7 +4465,7 @@ msgid "No installed applications."
msgstr "Brak zainstalowanych aplikacji."
#: ../../mod/search.php:99 ../../include/text.php:738
#: ../../include/text.php:739 ../../include/nav.php:91
#: ../../include/text.php:739 ../../include/nav.php:118
msgid "Search"
msgstr "Szukaj"
@ -4698,28 +4763,28 @@ msgstr "Wiek: "
msgid "Edit/Manage Profiles"
msgstr "Edytuj/Zarządzaj Profilami"
#: ../../mod/profiles.php:722 ../../boot.php:1324
#: ../../mod/profiles.php:722 ../../boot.php:1345
msgid "Change profile photo"
msgstr "Zmień zdjęcie profilowe"
#: ../../mod/profiles.php:723 ../../boot.php:1325
#: ../../mod/profiles.php:723 ../../boot.php:1346
msgid "Create New Profile"
msgstr "Stwórz nowy profil"
#: ../../mod/profiles.php:734 ../../boot.php:1335
#: ../../mod/profiles.php:734 ../../boot.php:1356
msgid "Profile Image"
msgstr "Obraz profilowy"
#: ../../mod/profiles.php:736 ../../boot.php:1338
#: ../../mod/profiles.php:736 ../../boot.php:1359
msgid "visible to everybody"
msgstr "widoczne dla wszystkich"
#: ../../mod/profiles.php:737 ../../boot.php:1339
#: ../../mod/profiles.php:737 ../../boot.php:1360
msgid "Edit visibility"
msgstr "Edytuj widoczność"
#: ../../mod/filer.php:30 ../../include/conversation.php:940
#: ../../include/conversation.php:958
#: ../../mod/filer.php:30 ../../include/conversation.php:944
#: ../../include/conversation.php:962
msgid "Save to Folder:"
msgstr "Zapisz w folderze:"
@ -4727,7 +4792,7 @@ msgstr "Zapisz w folderze:"
msgid "- select -"
msgstr "- wybierz -"
#: ../../mod/tagger.php:95 ../../include/conversation.php:265
#: ../../mod/tagger.php:95 ../../include/conversation.php:266
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s zaznaczył %2$s'go %3$s przy użyciu %4$s"
@ -4736,7 +4801,7 @@ msgstr "%1$s zaznaczył %2$s'go %3$s przy użyciu %4$s"
msgid "No potential page delegates located."
msgstr ""
#: ../../mod/delegate.php:121 ../../include/nav.php:138
#: ../../mod/delegate.php:121 ../../include/nav.php:165
msgid "Delegate Page Management"
msgstr ""
@ -4815,18 +4880,22 @@ msgstr ""
msgid "diaspora2bb: "
msgstr ""
#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:520
#: ../../mod/suggest.php:27
msgid "Do you really want to delete this suggestion?"
msgstr ""
#: ../../mod/suggest.php:66 ../../view/theme/diabook/theme.php:520
#: ../../include/contact_widgets.php:34
msgid "Friend Suggestions"
msgstr "Osoby, które możesz znać"
#: ../../mod/suggest.php:44
#: ../../mod/suggest.php:72
msgid ""
"No suggestions available. If this is a new site, please try again in 24 "
"hours."
msgstr ""
#: ../../mod/suggest.php:61
#: ../../mod/suggest.php:90
msgid "Ignore/Hide"
msgstr "Ignoruj/Ukryj"
@ -4850,19 +4919,19 @@ msgstr "Płeć: "
#: ../../mod/directory.php:136
#: ../../addon/forumdirectory/forumdirectory.php:158
#: ../../include/profile_advanced.php:17 ../../boot.php:1360
#: ../../include/profile_advanced.php:17 ../../boot.php:1381
msgid "Gender:"
msgstr "Płeć:"
#: ../../mod/directory.php:138
#: ../../addon/forumdirectory/forumdirectory.php:160
#: ../../include/profile_advanced.php:37 ../../boot.php:1363
#: ../../include/profile_advanced.php:37 ../../boot.php:1384
msgid "Status:"
msgstr "Status"
#: ../../mod/directory.php:140
#: ../../addon/forumdirectory/forumdirectory.php:162
#: ../../include/profile_advanced.php:48 ../../boot.php:1365
#: ../../include/profile_advanced.php:48 ../../boot.php:1386
msgid "Homepage:"
msgstr "Strona główna:"
@ -4873,25 +4942,33 @@ msgid "About:"
msgstr "O:"
#: ../../mod/directory.php:187
#: ../../addon/forumdirectory/forumdirectory.php:203
#: ../../addon/forumdirectory/forumdirectory.php:201
msgid "No entries (some entries may be hidden)."
msgstr "Brak odwiedzin (niektóre odwiedziny mogą być ukryte)."
#: ../../mod/invite.php:37
#: ../../mod/invite.php:27
msgid "Total invitation limit exceeded."
msgstr ""
#: ../../mod/invite.php:49
#, php-format
msgid "%s : Not a valid email address."
msgstr "%s : Niepoprawny adres email."
#: ../../mod/invite.php:61
#: ../../mod/invite.php:73
msgid "Please join us on Friendica"
msgstr "Dołącz do nas na Friendica"
#: ../../mod/invite.php:71
#: ../../mod/invite.php:84
msgid "Invitation limit exceeded. Please contact your site administrator."
msgstr ""
#: ../../mod/invite.php:89
#, php-format
msgid "%s : Message delivery failed."
msgstr "%s : Dostarczenie wiadomości nieudane."
#: ../../mod/invite.php:75
#: ../../mod/invite.php:93
#, php-format
msgid "%d message sent."
msgid_plural "%d messages sent."
@ -4899,11 +4976,11 @@ msgstr[0] "%d wiadomość wysłana."
msgstr[1] "%d wiadomości wysłane."
msgstr[2] "%d wysłano ."
#: ../../mod/invite.php:94
#: ../../mod/invite.php:112
msgid "You have no more invitations available"
msgstr "Nie masz więcej zaproszeń"
#: ../../mod/invite.php:102
#: ../../mod/invite.php:120
#, php-format
msgid ""
"Visit %s for a list of public sites that you can join. Friendica members on "
@ -4911,14 +4988,14 @@ msgid ""
" other social networks."
msgstr ""
#: ../../mod/invite.php:104
#: ../../mod/invite.php:122
#, php-format
msgid ""
"To accept this invitation, please visit and register at %s or any other "
"public Friendica website."
msgstr ""
#: ../../mod/invite.php:105
#: ../../mod/invite.php:123
#, php-format
msgid ""
"Friendica sites all inter-connect to create a huge privacy-enhanced social "
@ -4927,36 +5004,36 @@ msgid ""
"sites you can join."
msgstr ""
#: ../../mod/invite.php:108
#: ../../mod/invite.php:126
msgid ""
"Our apologies. This system is not currently configured to connect with other"
" public sites or invite members."
msgstr ""
#: ../../mod/invite.php:113
#: ../../mod/invite.php:132
msgid "Send invitations"
msgstr "Wyślij zaproszenia"
#: ../../mod/invite.php:114
#: ../../mod/invite.php:133
msgid "Enter email addresses, one per line:"
msgstr "Wprowadź adresy email, jeden na linijkę:"
#: ../../mod/invite.php:116
#: ../../mod/invite.php:135
msgid ""
"You are cordially invited to join me and other close friends on Friendica - "
"and help us to create a better social web."
msgstr ""
#: ../../mod/invite.php:118
#: ../../mod/invite.php:137
msgid "You will need to supply this invitation code: $invite_code"
msgstr ""
#: ../../mod/invite.php:118
#: ../../mod/invite.php:137
msgid ""
"Once you have registered, please connect with me via my profile page at:"
msgstr "Gdy już się zarejestrujesz, skontaktuj się ze mną przez moją stronkę profilową :"
#: ../../mod/invite.php:120
#: ../../mod/invite.php:139
msgid ""
"For more information about the Friendica project and why we feel it is "
"important, please visit http://friendica.com"
@ -4998,7 +5075,7 @@ msgid "Unable to set contact photo."
msgstr "Nie można ustawić zdjęcia kontaktu."
#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:621
#: ../../include/conversation.php:171
#: ../../include/conversation.php:172
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr "%1$s jest teraz znajomym z %2$s"
@ -5768,8 +5845,8 @@ msgid "Forum Directory"
msgstr "Katalog Forum"
#: ../../addon/communityhome/communityhome.php:28
#: ../../addon/communityhome/communityhome.php:34 ../../include/nav.php:64
#: ../../boot.php:1016 ../../addon.old/communityhome/communityhome.php:28
#: ../../addon/communityhome/communityhome.php:34 ../../include/nav.php:91
#: ../../boot.php:1037 ../../addon.old/communityhome/communityhome.php:28
#: ../../addon.old/communityhome/communityhome.php:34
#: ../../addon.old/communityhome/twillingham/communityhome.php:28
#: ../../addon.old/communityhome/twillingham/communityhome.php:34
@ -5805,8 +5882,8 @@ msgid "Latest likes"
msgstr "Ostatnie polubienia"
#: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook/theme.php:456 ../../include/text.php:1496
#: ../../include/conversation.php:117 ../../include/conversation.php:245
#: ../../view/theme/diabook/theme.php:456 ../../include/text.php:1508
#: ../../include/conversation.php:118 ../../include/conversation.php:246
#: ../../addon.old/communityhome/communityhome.php:155
msgid "event"
msgstr "wydarzenie"
@ -6597,7 +6674,7 @@ msgstr "Ustawienia Randplace"
#: ../../addon/randplace/randplace.php:171
#: ../../addon.old/randplace/randplace.php:171
msgid "Enable Randplace Plugin"
msgstr ""
msgstr "Włącz Randplace Plugin"
#: ../../addon/dwpost/dwpost.php:39 ../../addon.old/dwpost/dwpost.php:39
msgid "Post to Dreamwidth"
@ -7304,7 +7381,7 @@ msgstr ""
msgid "Add contact"
msgstr "Dodaj kontakt"
#: ../../addon/viewsrc/viewsrc.php:37 ../../addon.old/viewsrc/viewsrc.php:37
#: ../../addon/viewsrc/viewsrc.php:39 ../../addon.old/viewsrc/viewsrc.php:37
msgid "View Source"
msgstr "Podgląd źródła"
@ -7333,7 +7410,7 @@ msgstr "Ustawienia StatusNet zaktualizowane"
#: ../../addon/statusnet/statusnet.php:269
#: ../../addon.old/statusnet/statusnet.php:257
msgid "StatusNet Posting Settings"
msgstr ""
msgstr "Ustawienia StatusNet"
#: ../../addon/statusnet/statusnet.php:283
#: ../../addon.old/statusnet/statusnet.php:271
@ -7410,7 +7487,7 @@ msgstr "Aktualnym StatusNet API jest"
#: ../../addon/statusnet/statusnet.php:334
#: ../../addon.old/statusnet/statusnet.php:322
msgid "Cancel StatusNet Connection"
msgstr ""
msgstr "Anuluj połączenie StatusNet"
#: ../../addon/statusnet/statusnet.php:345 ../../addon/twitter/twitter.php:200
#: ../../addon.old/statusnet/statusnet.php:333
@ -7438,7 +7515,7 @@ msgstr ""
#: ../../addon/statusnet/statusnet.php:351
#: ../../addon.old/statusnet/statusnet.php:339
msgid "Allow posting to StatusNet"
msgstr ""
msgstr "Pozwól zamieszczać posty na StatusNet"
#: ../../addon/statusnet/statusnet.php:354
#: ../../addon.old/statusnet/statusnet.php:342
@ -7719,14 +7796,23 @@ msgstr ""
msgid "Send linked #-tags and @-names to Twitter"
msgstr ""
#: ../../addon/twitter/twitter.php:556 ../../addon.old/twitter/twitter.php:396
#: ../../addon/twitter/twitter.php:558 ../../addon.old/twitter/twitter.php:396
msgid "Consumer key"
msgstr "Klucz konsumenta"
#: ../../addon/twitter/twitter.php:557 ../../addon.old/twitter/twitter.php:397
#: ../../addon/twitter/twitter.php:559 ../../addon.old/twitter/twitter.php:397
msgid "Consumer secret"
msgstr "Sekret konsumenta"
#: ../../addon/twitter/twitter.php:560
msgid "Name of the Twitter Application"
msgstr ""
#: ../../addon/twitter/twitter.php:560
msgid ""
"set this to avoid mirroring postings from ~friendica back to ~friendica"
msgstr ""
#: ../../addon/irc/irc.php:44 ../../addon.old/irc/irc.php:44
msgid "IRC Settings"
msgstr "Ustawienia IRC"
@ -7861,12 +7947,12 @@ msgstr ""
msgid "Color scheme"
msgstr ""
#: ../../view/theme/diabook/theme.php:87 ../../include/nav.php:49
#: ../../include/nav.php:116
#: ../../view/theme/diabook/theme.php:87 ../../include/nav.php:76
#: ../../include/nav.php:143
msgid "Your posts and conversations"
msgstr "Twoje posty i rozmowy"
#: ../../view/theme/diabook/theme.php:88 ../../include/nav.php:50
#: ../../view/theme/diabook/theme.php:88 ../../include/nav.php:77
msgid "Your profile page"
msgstr "Twoja strona profilowa"
@ -7874,19 +7960,19 @@ msgstr "Twoja strona profilowa"
msgid "Your contacts"
msgstr "Twoje kontakty"
#: ../../view/theme/diabook/theme.php:90 ../../include/nav.php:51
#: ../../view/theme/diabook/theme.php:90 ../../include/nav.php:78
msgid "Your photos"
msgstr "Twoje zdjęcia"
#: ../../view/theme/diabook/theme.php:91 ../../include/nav.php:52
#: ../../view/theme/diabook/theme.php:91 ../../include/nav.php:79
msgid "Your events"
msgstr "Twoje wydarzenia"
#: ../../view/theme/diabook/theme.php:92 ../../include/nav.php:53
#: ../../view/theme/diabook/theme.php:92 ../../include/nav.php:80
msgid "Personal notes"
msgstr "Osobiste notatki"
#: ../../view/theme/diabook/theme.php:92 ../../include/nav.php:53
#: ../../view/theme/diabook/theme.php:92 ../../include/nav.php:80
msgid "Your personal photos"
msgstr "Twoje osobiste zdjęcia"
@ -7982,12 +8068,12 @@ msgid "Set twitter search term"
msgstr ""
#: ../../view/theme/diabook/theme.php:629
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:313
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:327
msgid "don't show"
msgstr "nie pokazuj"
#: ../../view/theme/diabook/theme.php:629
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:312
#: ../../view/theme/diabook/config.php:146 ../../include/acl_selectors.php:326
msgid "show"
msgstr "pokaż"
@ -8458,7 +8544,7 @@ msgstr[2] "%d kontakty"
msgid "poke"
msgstr "zaczep"
#: ../../include/text.php:779 ../../include/conversation.php:210
#: ../../include/text.php:779 ../../include/conversation.php:211
msgid "poked"
msgstr "zaczepiony"
@ -8630,31 +8716,31 @@ msgstr "Listopad"
msgid "December"
msgstr "Grudzień"
#: ../../include/text.php:1066
#: ../../include/text.php:1078
msgid "bytes"
msgstr "bajty"
#: ../../include/text.php:1093 ../../include/text.php:1105
#: ../../include/text.php:1105 ../../include/text.php:1117
msgid "Click to open/close"
msgstr "Kliknij aby otworzyć/zamknąć"
#: ../../include/text.php:1278 ../../include/user.php:237
#: ../../include/text.php:1290 ../../include/user.php:237
msgid "default"
msgstr "standardowe"
#: ../../include/text.php:1290
#: ../../include/text.php:1302
msgid "Select an alternate language"
msgstr "Wybierz alternatywny język"
#: ../../include/text.php:1500
#: ../../include/text.php:1512
msgid "activity"
msgstr "aktywność"
#: ../../include/text.php:1503
#: ../../include/text.php:1515
msgid "post"
msgstr "post"
#: ../../include/text.php:1658
#: ../../include/text.php:1670
msgid "Item filed"
msgstr ""
@ -8750,125 +8836,129 @@ msgstr "Stwórz nową grupę"
msgid "Contacts not in any group"
msgstr "Kontakt nie jest w żadnej grupie"
#: ../../include/nav.php:46 ../../boot.php:1015
#: ../../include/nav.php:73 ../../boot.php:1036
msgid "Logout"
msgstr "Wyloguj się"
#: ../../include/nav.php:46
#: ../../include/nav.php:73
msgid "End this session"
msgstr "Zakończ sesję"
#: ../../include/nav.php:49 ../../boot.php:1812
#: ../../include/nav.php:76 ../../boot.php:1833
msgid "Status"
msgstr "Status"
#: ../../include/nav.php:64
#: ../../include/nav.php:91
msgid "Sign in"
msgstr "Zaloguj się"
#: ../../include/nav.php:77
#: ../../include/nav.php:104
msgid "Home Page"
msgstr "Strona startowa"
#: ../../include/nav.php:81
#: ../../include/nav.php:108
msgid "Create an account"
msgstr "Załóż konto"
#: ../../include/nav.php:86
#: ../../include/nav.php:113
msgid "Help and documentation"
msgstr "Pomoc i dokumentacja"
#: ../../include/nav.php:89
#: ../../include/nav.php:116
msgid "Apps"
msgstr "Aplikacje"
#: ../../include/nav.php:89
#: ../../include/nav.php:116
msgid "Addon applications, utilities, games"
msgstr "Wtyczki, aplikacje, narzędzia, gry"
#: ../../include/nav.php:91
#: ../../include/nav.php:118
msgid "Search site content"
msgstr "Przeszukaj zawartość strony"
#: ../../include/nav.php:101
#: ../../include/nav.php:128
msgid "Conversations on this site"
msgstr "Rozmowy na tej stronie"
#: ../../include/nav.php:103
#: ../../include/nav.php:130
msgid "Directory"
msgstr "Katalog"
#: ../../include/nav.php:103
#: ../../include/nav.php:130
msgid "People directory"
msgstr ""
#: ../../include/nav.php:113
#: ../../include/nav.php:140
msgid "Conversations from your friends"
msgstr "Rozmowy Twoich przyjaciół"
#: ../../include/nav.php:114
#: ../../include/nav.php:141
msgid "Network Reset"
msgstr ""
#: ../../include/nav.php:114
#: ../../include/nav.php:141
msgid "Load Network page with no filters"
msgstr ""
#: ../../include/nav.php:122
#: ../../include/nav.php:149
msgid "Friend Requests"
msgstr "Podania o przyjęcie do grona znajomych"
#: ../../include/nav.php:124
#: ../../include/nav.php:151
msgid "See all notifications"
msgstr "Zobacz wszystkie powiadomienia"
#: ../../include/nav.php:125
#: ../../include/nav.php:152
msgid "Mark all system notifications seen"
msgstr ""
#: ../../include/nav.php:129
#: ../../include/nav.php:156
msgid "Private mail"
msgstr "Prywatne maile"
#: ../../include/nav.php:130
#: ../../include/nav.php:157
msgid "Inbox"
msgstr "Odebrane"
#: ../../include/nav.php:131
#: ../../include/nav.php:158
msgid "Outbox"
msgstr "Wysłane"
#: ../../include/nav.php:135
#: ../../include/nav.php:162
msgid "Manage"
msgstr "Zarządzaj"
#: ../../include/nav.php:135
#: ../../include/nav.php:162
msgid "Manage other pages"
msgstr "Zarządzaj innymi stronami"
#: ../../include/nav.php:138
#: ../../include/nav.php:165
msgid "Delegations"
msgstr ""
#: ../../include/nav.php:142 ../../boot.php:1318
#: ../../include/nav.php:169 ../../boot.php:1339
msgid "Profiles"
msgstr "Profile"
#: ../../include/nav.php:142
#: ../../include/nav.php:169
msgid "Manage/Edit Profiles"
msgstr ""
#: ../../include/nav.php:144
#: ../../include/nav.php:171
msgid "Manage/edit friends and contacts"
msgstr "Zarządzaj listą przyjaciół i kontaktami"
#: ../../include/nav.php:151
#: ../../include/nav.php:178
msgid "Site setup and configuration"
msgstr "Konfiguracja i ustawienia instancji"
#: ../../include/nav.php:175
msgid "Nothing new here"
msgstr "Brak nowych zdarzeń"
#: ../../include/nav.php:182
msgid "Navigation"
msgstr ""
#: ../../include/nav.php:182
msgid "Site map"
msgstr ""
#: ../../include/contact_widgets.php:6
msgid "Add New Contact"
@ -9187,7 +9277,7 @@ msgstr "Nie można zlokalizować serwera DNS dla bazy danych '%s'"
msgid "[no subject]"
msgstr "[bez tematu]"
#: ../../include/acl_selectors.php:311
#: ../../include/acl_selectors.php:325
msgid "Visible to everybody"
msgstr "Widoczny dla wszystkich"
@ -9233,146 +9323,146 @@ msgstr "prywatna wiadomość"
msgid "Please visit %s to view and/or reply to your private messages."
msgstr "Odwiedź %s żeby zobaczyć i/lub odpowiedzieć na twoje prywatne wiadomości"
#: ../../include/enotify.php:89
#: ../../include/enotify.php:90
#, php-format
msgid "%1$s commented on [url=%2$s]a %3$s[/url]"
msgstr ""
#: ../../include/enotify.php:96
#: ../../include/enotify.php:97
#, php-format
msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]"
msgstr ""
#: ../../include/enotify.php:104
#: ../../include/enotify.php:105
#, php-format
msgid "%1$s commented on [url=%2$s]your %3$s[/url]"
msgstr ""
#: ../../include/enotify.php:114
#: ../../include/enotify.php:115
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s"
msgstr ""
#: ../../include/enotify.php:115
#: ../../include/enotify.php:116
#, php-format
msgid "%s commented on an item/conversation you have been following."
msgstr "%s skomentował rozmowę którą śledzisz"
#: ../../include/enotify.php:118 ../../include/enotify.php:133
#: ../../include/enotify.php:146 ../../include/enotify.php:164
#: ../../include/enotify.php:177
#: ../../include/enotify.php:119 ../../include/enotify.php:134
#: ../../include/enotify.php:147 ../../include/enotify.php:165
#: ../../include/enotify.php:178
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Odwiedź %s żeby zobaczyć i/lub odpowiedzieć na rozmowę"
#: ../../include/enotify.php:125
#: ../../include/enotify.php:126
#, php-format
msgid "[Friendica:Notify] %s posted to your profile wall"
msgstr "[Friendica:Notify] %s napisał na twoim profilu"
#: ../../include/enotify.php:127
#: ../../include/enotify.php:128
#, php-format
msgid "%1$s posted to your profile wall at %2$s"
msgstr ""
#: ../../include/enotify.php:129
#: ../../include/enotify.php:130
#, php-format
msgid "%1$s posted to [url=%2$s]your wall[/url]"
msgstr ""
#: ../../include/enotify.php:140
#: ../../include/enotify.php:141
#, php-format
msgid "[Friendica:Notify] %s tagged you"
msgstr "[Friendica:Notify] %s oznaczył cię"
#: ../../include/enotify.php:141
#: ../../include/enotify.php:142
#, php-format
msgid "%1$s tagged you at %2$s"
msgstr ""
#: ../../include/enotify.php:142
#: ../../include/enotify.php:143
#, php-format
msgid "%1$s [url=%2$s]tagged you[/url]."
msgstr ""
#: ../../include/enotify.php:154
#: ../../include/enotify.php:155
#, php-format
msgid "[Friendica:Notify] %1$s poked you"
msgstr ""
#: ../../include/enotify.php:155
#: ../../include/enotify.php:156
#, php-format
msgid "%1$s poked you at %2$s"
msgstr ""
#: ../../include/enotify.php:156
#: ../../include/enotify.php:157
#, php-format
msgid "%1$s [url=%2$s]poked you[/url]."
msgstr ""
#: ../../include/enotify.php:171
#: ../../include/enotify.php:172
#, php-format
msgid "[Friendica:Notify] %s tagged your post"
msgstr ""
#: ../../include/enotify.php:172
#: ../../include/enotify.php:173
#, php-format
msgid "%1$s tagged your post at %2$s"
msgstr ""
#: ../../include/enotify.php:173
#: ../../include/enotify.php:174
#, php-format
msgid "%1$s tagged [url=%2$s]your post[/url]"
msgstr ""
#: ../../include/enotify.php:184
msgid "[Friendica:Notify] Introduction received"
msgstr ""
#: ../../include/enotify.php:185
#, php-format
msgid "You've received an introduction from '%1$s' at %2$s"
msgid "[Friendica:Notify] Introduction received"
msgstr ""
#: ../../include/enotify.php:186
#, php-format
msgid "You've received an introduction from '%1$s' at %2$s"
msgstr ""
#: ../../include/enotify.php:187
#, php-format
msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
msgstr ""
#: ../../include/enotify.php:189 ../../include/enotify.php:207
#: ../../include/enotify.php:190 ../../include/enotify.php:208
#, php-format
msgid "You may visit their profile at %s"
msgstr "Możesz obejrzeć ich profile na %s"
#: ../../include/enotify.php:191
#: ../../include/enotify.php:192
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr "Odwiedż %s aby zatwierdzić lub odrzucić przedstawienie."
#: ../../include/enotify.php:198
#: ../../include/enotify.php:199
msgid "[Friendica:Notify] Friend suggestion received"
msgstr ""
#: ../../include/enotify.php:199
#: ../../include/enotify.php:200
#, php-format
msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
#: ../../include/enotify.php:200
#: ../../include/enotify.php:201
#, php-format
msgid ""
"You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
msgstr ""
#: ../../include/enotify.php:205
#: ../../include/enotify.php:206
msgid "Name:"
msgstr "Imię:"
#: ../../include/enotify.php:206
#: ../../include/enotify.php:207
msgid "Photo:"
msgstr "Zdjęcie:"
#: ../../include/enotify.php:209
#: ../../include/enotify.php:210
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
@ -9400,7 +9490,7 @@ msgstr "Autor lub nazwa nie zostało znalezione."
#: ../../include/follow.php:84
msgid "No browser URL could be matched to this address."
msgstr ""
msgstr "Przeglądarka WWW nie może odnaleźć podanego adresu"
#: ../../include/follow.php:86
msgid ""
@ -9440,7 +9530,11 @@ msgstr ""
msgid "You have a new follower at "
msgstr ""
#: ../../include/items.php:4057
#: ../../include/items.php:3892
msgid "Do you really want to delete this item?"
msgstr ""
#: ../../include/items.php:4085
msgid "Archives"
msgstr "Archiwum"
@ -9524,7 +9618,7 @@ msgstr "Proszę dodać zdjęcie profilowe."
msgid "Welcome back "
msgstr "Witaj ponownie "
#: ../../include/security.php:357
#: ../../include/security.php:366
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@ -9534,147 +9628,163 @@ msgstr ""
msgid "stopped following"
msgstr "przestań obserwować"
#: ../../include/Contact.php:225 ../../include/conversation.php:816
#: ../../include/Contact.php:225 ../../include/conversation.php:820
msgid "Poke"
msgstr "Zaczepka"
#: ../../include/Contact.php:226 ../../include/conversation.php:810
#: ../../include/Contact.php:226 ../../include/conversation.php:814
msgid "View Status"
msgstr "Zobacz status"
#: ../../include/Contact.php:227 ../../include/conversation.php:811
#: ../../include/Contact.php:227 ../../include/conversation.php:815
msgid "View Profile"
msgstr "Zobacz profil"
#: ../../include/Contact.php:228 ../../include/conversation.php:812
#: ../../include/Contact.php:228 ../../include/conversation.php:816
msgid "View Photos"
msgstr "Zobacz zdjęcia"
#: ../../include/Contact.php:229 ../../include/Contact.php:242
#: ../../include/conversation.php:813
#: ../../include/Contact.php:229 ../../include/Contact.php:251
#: ../../include/conversation.php:817
msgid "Network Posts"
msgstr ""
#: ../../include/Contact.php:230 ../../include/Contact.php:242
#: ../../include/conversation.php:814
#: ../../include/Contact.php:230 ../../include/Contact.php:251
#: ../../include/conversation.php:818
msgid "Edit Contact"
msgstr "Edytuj kontakt"
#: ../../include/Contact.php:231 ../../include/Contact.php:242
#: ../../include/conversation.php:815
#: ../../include/Contact.php:231 ../../include/Contact.php:251
#: ../../include/conversation.php:819
msgid "Send PM"
msgstr "Wyślij prywatną wiadomość"
#: ../../include/conversation.php:206
#: ../../include/conversation.php:207
#, php-format
msgid "%1$s poked %2$s"
msgstr ""
#: ../../include/conversation.php:290
#: ../../include/conversation.php:291
msgid "post/item"
msgstr ""
#: ../../include/conversation.php:291
#: ../../include/conversation.php:292
#, php-format
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr ""
#: ../../include/conversation.php:620 ../../object/Item.php:249
#: ../../include/conversation.php:621 ../../object/Item.php:249
msgid "Categories:"
msgstr "Kategorie:"
#: ../../include/conversation.php:621 ../../object/Item.php:250
#: ../../include/conversation.php:622 ../../object/Item.php:250
msgid "Filed under:"
msgstr ""
#: ../../include/conversation.php:706
#: ../../include/conversation.php:710
msgid "remove"
msgstr "usuń"
#: ../../include/conversation.php:710
#: ../../include/conversation.php:714
msgid "Delete Selected Items"
msgstr "Usuń zaznaczone elementy"
#: ../../include/conversation.php:809
#: ../../include/conversation.php:813
msgid "Follow Thread"
msgstr ""
#: ../../include/conversation.php:878
#: ../../include/conversation.php:882
#, php-format
msgid "%s likes this."
msgstr "%s lubi to."
#: ../../include/conversation.php:878
#: ../../include/conversation.php:882
#, php-format
msgid "%s doesn't like this."
msgstr "%s nie lubi tego."
#: ../../include/conversation.php:883
#: ../../include/conversation.php:887
#, php-format
msgid "<span %1$s>%2$d people</span> like this"
msgstr ""
#: ../../include/conversation.php:886
#: ../../include/conversation.php:890
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this"
msgstr ""
#: ../../include/conversation.php:900
#: ../../include/conversation.php:904
msgid "and"
msgstr "i"
#: ../../include/conversation.php:906
#: ../../include/conversation.php:910
#, php-format
msgid ", and %d other people"
msgstr ", i %d innych ludzi"
#: ../../include/conversation.php:908
#: ../../include/conversation.php:912
#, php-format
msgid "%s like this."
msgstr "%s lubi to."
#: ../../include/conversation.php:908
#: ../../include/conversation.php:912
#, php-format
msgid "%s don't like this."
msgstr "%s nie lubi tego."
#: ../../include/conversation.php:935 ../../include/conversation.php:953
#: ../../include/conversation.php:939 ../../include/conversation.php:957
msgid "Visible to <strong>everybody</strong>"
msgstr "Widoczne dla <strong>wszystkich</strong>"
#: ../../include/conversation.php:937 ../../include/conversation.php:955
#: ../../include/conversation.php:941 ../../include/conversation.php:959
msgid "Please enter a video link/URL:"
msgstr "Podaj link do filmu"
#: ../../include/conversation.php:938 ../../include/conversation.php:956
#: ../../include/conversation.php:942 ../../include/conversation.php:960
msgid "Please enter an audio link/URL:"
msgstr "Podaj link do muzyki"
#: ../../include/conversation.php:939 ../../include/conversation.php:957
#: ../../include/conversation.php:943 ../../include/conversation.php:961
msgid "Tag term:"
msgstr ""
#: ../../include/conversation.php:941 ../../include/conversation.php:959
#: ../../include/conversation.php:945 ../../include/conversation.php:963
msgid "Where are you right now?"
msgstr "Gdzie teraz jesteś?"
#: ../../include/conversation.php:942
#: ../../include/conversation.php:946
msgid "Delete item(s)?"
msgstr ""
#: ../../include/conversation.php:1021
#: ../../include/conversation.php:988
msgid "Post to Email"
msgstr "Wyślij poprzez email"
#: ../../include/conversation.php:1044
msgid "permissions"
msgstr "zezwolenia"
#: ../../include/plugin.php:389 ../../include/plugin.php:391
#: ../../include/conversation.php:1068
msgid "Post to Groups"
msgstr ""
#: ../../include/conversation.php:1069
msgid "Post to Contacts"
msgstr ""
#: ../../include/conversation.php:1070
msgid "Private post"
msgstr ""
#: ../../include/plugin.php:429 ../../include/plugin.php:431
msgid "Click here to upgrade."
msgstr "Kliknij tu, aby zaktualizować."
#: ../../include/plugin.php:397
#: ../../include/plugin.php:437
msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
#: ../../include/plugin.php:402
#: ../../include/plugin.php:442
msgid "This action is not available under your subscription plan."
msgstr ""
@ -9686,117 +9796,117 @@ msgstr "Usunąć ten element?"
msgid "show fewer"
msgstr "Pokaż mniej"
#: ../../boot.php:878
#: ../../boot.php:899
#, php-format
msgid "Update %s failed. See error logs."
msgstr ""
#: ../../boot.php:880
#: ../../boot.php:901
#, php-format
msgid "Update Error at %s"
msgstr ""
#: ../../boot.php:990
#: ../../boot.php:1011
msgid "Create a New Account"
msgstr "Załóż nowe konto"
#: ../../boot.php:1018
#: ../../boot.php:1039
msgid "Nickname or Email address: "
msgstr "Nick lub adres email:"
#: ../../boot.php:1019
#: ../../boot.php:1040
msgid "Password: "
msgstr "Hasło:"
#: ../../boot.php:1020
#: ../../boot.php:1041
msgid "Remember me"
msgstr "Zapamiętaj mnie"
#: ../../boot.php:1023
#: ../../boot.php:1044
msgid "Or login using OpenID: "
msgstr "Lub zaloguj się korzystając z OpenID:"
#: ../../boot.php:1029
#: ../../boot.php:1050
msgid "Forgot your password?"
msgstr "Zapomniałeś swojego hasła?"
#: ../../boot.php:1032
#: ../../boot.php:1053
msgid "Website Terms of Service"
msgstr ""
#: ../../boot.php:1033
#: ../../boot.php:1054
msgid "terms of service"
msgstr ""
#: ../../boot.php:1035
#: ../../boot.php:1056
msgid "Website Privacy Policy"
msgstr ""
#: ../../boot.php:1036
#: ../../boot.php:1057
msgid "privacy policy"
msgstr ""
#: ../../boot.php:1165
#: ../../boot.php:1186
msgid "Requested account is not available."
msgstr ""
#: ../../boot.php:1244
#: ../../boot.php:1265
msgid "Edit profile"
msgstr "Edytuj profil"
#: ../../boot.php:1310
#: ../../boot.php:1331
msgid "Message"
msgstr "Wiadomość"
#: ../../boot.php:1318
#: ../../boot.php:1339
msgid "Manage/edit profiles"
msgstr "Zarządzaj profilami"
#: ../../boot.php:1440 ../../boot.php:1526
#: ../../boot.php:1461 ../../boot.php:1547
msgid "g A l F d"
msgstr ""
msgstr "g A I F d"
#: ../../boot.php:1441 ../../boot.php:1527
#: ../../boot.php:1462 ../../boot.php:1548
msgid "F d"
msgstr ""
#: ../../boot.php:1486 ../../boot.php:1567
#: ../../boot.php:1507 ../../boot.php:1588
msgid "[today]"
msgstr "[dziś]"
#: ../../boot.php:1498
#: ../../boot.php:1519
msgid "Birthday Reminders"
msgstr "Przypomnienia o urodzinach"
#: ../../boot.php:1499
#: ../../boot.php:1520
msgid "Birthdays this week:"
msgstr "Urodziny w tym tygodniu:"
#: ../../boot.php:1560
#: ../../boot.php:1581
msgid "[No description]"
msgstr "[Brak opisu]"
#: ../../boot.php:1578
#: ../../boot.php:1599
msgid "Event Reminders"
msgstr "Przypominacze wydarzeń"
#: ../../boot.php:1579
#: ../../boot.php:1600
msgid "Events this week:"
msgstr "Wydarzenia w tym tygodniu:"
#: ../../boot.php:1815
#: ../../boot.php:1836
msgid "Status Messages and Posts"
msgstr "Status wiadomości i postów"
#: ../../boot.php:1822
#: ../../boot.php:1843
msgid "Profile Details"
msgstr "Szczegóły profilu"
#: ../../boot.php:1839
#: ../../boot.php:1860
msgid "Events and Calendar"
msgstr "Wydarzenia i kalendarz"
#: ../../boot.php:1846
#: ../../boot.php:1867
msgid "Only You Can See This"
msgstr "Tylko ty możesz to zobaczyć"
@ -9804,7 +9914,7 @@ msgstr "Tylko ty możesz to zobaczyć"
msgid "via"
msgstr ""
#: ../../index.php:399
#: ../../index.php:400
msgid "toggle mobile"
msgstr ""

View file

@ -48,7 +48,7 @@ $a->strings["Event Starts:"] = "Rozpoczęcie wydarzenia:";
$a->strings["Required"] = "Wymagany";
$a->strings["Finish date/time is not known or not relevant"] = "Data/czas zakończenia nie jest znana lub jest nieistotna";
$a->strings["Event Finishes:"] = "Zakończenie wydarzenia:";
$a->strings["Adjust for viewer timezone"] = "";
$a->strings["Adjust for viewer timezone"] = "Dopasuj dla strefy czasowej widza";
$a->strings["Description:"] = "Opis:";
$a->strings["Location:"] = "Lokalizacja";
$a->strings["Title:"] = "Tytuł:";
@ -74,7 +74,9 @@ $a->strings["Contact information unavailable"] = "Informacje o kontakcie nie dos
$a->strings["Profile Photos"] = "Zdjęcia profilowe";
$a->strings["Album not found."] = "Album nie znaleziony";
$a->strings["Delete Album"] = "Usuń album";
$a->strings["Do you really want to delete this photo album and all its photos?"] = "";
$a->strings["Delete Photo"] = "Usuń zdjęcie";
$a->strings["Do you really want to delete this photo?"] = "";
$a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "";
$a->strings["a photo"] = "zdjęcie";
$a->strings["Image exceeds size limit of "] = "obrazek przekracza limit rozmiaru";
@ -90,6 +92,10 @@ $a->strings["New album name: "] = "Nazwa nowego albumu:";
$a->strings["or existing album name: "] = "lub istniejąca nazwa albumu:";
$a->strings["Do not show a status post for this upload"] = "Nie pokazuj postów statusu dla tego wysłania";
$a->strings["Permissions"] = "Uprawnienia";
$a->strings["Show to Groups"] = "";
$a->strings["Show to Contacts"] = "";
$a->strings["Private Photo"] = "";
$a->strings["Public Photo"] = "";
$a->strings["Edit Album"] = "Edytuj album";
$a->strings["Show Newest First"] = "Najpierw pokaż najnowsze";
$a->strings["Show Oldest First"] = "Najpierw pokaż najstarsze";
@ -109,6 +115,8 @@ $a->strings["New album name"] = "Nazwa nowego albumu";
$a->strings["Caption"] = "Zawartość";
$a->strings["Add a Tag"] = "Dodaj tag";
$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"] = "Przykładowo: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping";
$a->strings["Private photo"] = "";
$a->strings["Public photo"] = "";
$a->strings["I like this (toggle)"] = "Lubię to (zmień)";
$a->strings["I don't like this (toggle)"] = "Nie lubię (zmień)";
$a->strings["Share"] = "Podziel się";
@ -131,7 +139,6 @@ $a->strings["Installed plugins/addons/apps:"] = "";
$a->strings["No installed plugins/addons/apps"] = "Brak zainstalowanych pluginów/dodatków/aplikacji";
$a->strings["Item not found"] = "Artykuł nie znaleziony";
$a->strings["Edit post"] = "Edytuj post";
$a->strings["Post to Email"] = "Wyślij poprzez email";
$a->strings["Edit"] = "Edytuj";
$a->strings["Upload photo"] = "Wyślij zdjęcie";
$a->strings["upload photo"] = "dodaj zdjęcie";
@ -254,7 +261,7 @@ $a->strings["Error: GD graphics PHP module with JPEG support required but not in
$a->strings["Error: openssl PHP module required but not installed."] = "Błąd: openssl PHP wymagany moduł, lecz nie zainstalowany.";
$a->strings["Error: mysqli PHP module required but not installed."] = "Błąd: mysqli PHP wymagany moduł, lecz nie zainstalowany.";
$a->strings["Error: mb_string PHP module required but not installed."] = "Błąd: moduł PHP mb_string jest wymagany ale nie jest zainstalowany";
$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "";
$a->strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "Instalator WWW musi być w stanie utworzyć plik o nazwie \". Htconfig.php\" i nie jest w stanie tego zrobić.";
$a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "";
$a->strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Friendica top folder."] = "";
$a->strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions."] = "";
@ -326,8 +333,8 @@ $a->strings["starred"] = "";
$a->strings["add tag"] = "dodaj tag";
$a->strings["save to folder"] = "zapisz w folderze";
$a->strings["to"] = "do";
$a->strings["Wall-to-Wall"] = "";
$a->strings["via Wall-To-Wall:"] = "";
$a->strings["Wall-to-Wall"] = "Wall-to-Wall";
$a->strings["via Wall-To-Wall:"] = "via Wall-To-Wall:";
$a->strings["Welcome to %s"] = "Witamy w %s";
$a->strings["Invalid request identifier."] = "Niewłaściwy identyfikator wymagania.";
$a->strings["Discard"] = "Odrzuć";
@ -380,6 +387,7 @@ $a->strings["Contact has been ignored"] = "Kontakt jest ignorowany";
$a->strings["Contact has been unignored"] = "Kontakt nie jest ignorowany";
$a->strings["Contact has been archived"] = "Kontakt został zarchiwizowany";
$a->strings["Contact has been unarchived"] = "";
$a->strings["Do you really want to delete this contact?"] = "";
$a->strings["Contact has been removed."] = "Kontakt został usunięty.";
$a->strings["You are mutual friends with %s"] = "Jesteś już znajomym z %s";
$a->strings["You are sharing with %s"] = "Współdzielisz z %s";
@ -572,6 +580,9 @@ $a->strings["Maximum Friend Requests/Day:"] = "Maksymalna liczba zaproszeń do g
$a->strings["(to prevent spam abuse)"] = "(aby zapobiec spamowaniu)";
$a->strings["Default Post Permissions"] = "Domyślne prawa dostępu wiadomości";
$a->strings["(click to open/close)"] = "(kliknij by otworzyć/zamknąć)";
$a->strings["Default Private Post"] = "";
$a->strings["Default Public Post"] = "";
$a->strings["Default Permissions for New Posts"] = "";
$a->strings["Maximum private messages per day from unknown people:"] = "";
$a->strings["Notification Settings"] = "Ustawienia powiadomień";
$a->strings["By default post a status message when:"] = "";
@ -754,8 +765,11 @@ $a->strings["No profile"] = "Brak profilu";
$a->strings["Remove My Account"] = "Usuń konto";
$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Kompletne usunięcie konta. Jeżeli zostanie wykonane, konto nie może zostać odzyskane.";
$a->strings["Please enter your password for verification:"] = "Wprowadź hasło w celu weryfikacji.";
$a->strings["Nothing new here"] = "Brak nowych zdarzeń";
$a->strings["Clear notifications"] = "";
$a->strings["New Message"] = "Nowa wiadomość";
$a->strings["Unable to locate contact information."] = "Niezdolny do uzyskania informacji kontaktowych.";
$a->strings["Do you really want to delete this message?"] = "";
$a->strings["Message deleted."] = "Wiadomość usunięta.";
$a->strings["Conversation removed."] = "Rozmowa usunięta.";
$a->strings["No messages."] = "Brak wiadomości.";
@ -786,7 +800,7 @@ $a->strings["Admin"] = "Administator";
$a->strings["Plugin Features"] = "Polecane wtyczki";
$a->strings["User registrations waiting for confirmation"] = "Rejestracje użytkownika czekają na potwierdzenie.";
$a->strings["Normal Account"] = "Konto normalne";
$a->strings["Soapbox Account"] = "";
$a->strings["Soapbox Account"] = "Konto Soapbox";
$a->strings["Community/Celebrity Account"] = "Konto społeczności/gwiazdy";
$a->strings["Automatic Friend Account"] = "Automatyczny przyjaciel konta";
$a->strings["Blog Account"] = "";
@ -867,7 +881,7 @@ $a->strings["Verify SSL"] = "Weryfikacja SSL";
$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "";
$a->strings["Proxy user"] = "Użytkownik proxy";
$a->strings["Proxy URL"] = "URL Proxy";
$a->strings["Network timeout"] = "";
$a->strings["Network timeout"] = "Network timeout";
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "";
$a->strings["Delivery interval"] = "";
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "";
@ -1066,6 +1080,7 @@ $a->strings["bb2dia2bb: "] = "";
$a->strings["bb2md2html2bb: "] = "";
$a->strings["Source input (Diaspora format): "] = "";
$a->strings["diaspora2bb: "] = "";
$a->strings["Do you really want to delete this suggestion?"] = "";
$a->strings["Friend Suggestions"] = "Osoby, które możesz znać";
$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "";
$a->strings["Ignore/Hide"] = "Ignoruj/Ukryj";
@ -1078,8 +1093,10 @@ $a->strings["Status:"] = "Status";
$a->strings["Homepage:"] = "Strona główna:";
$a->strings["About:"] = "O:";
$a->strings["No entries (some entries may be hidden)."] = "Brak odwiedzin (niektóre odwiedziny mogą być ukryte).";
$a->strings["Total invitation limit exceeded."] = "";
$a->strings["%s : Not a valid email address."] = "%s : Niepoprawny adres email.";
$a->strings["Please join us on Friendica"] = "Dołącz do nas na Friendica";
$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "";
$a->strings["%s : Message delivery failed."] = "%s : Dostarczenie wiadomości nieudane.";
$a->strings["%d message sent."] = array(
0 => "%d wiadomość wysłana.",
@ -1408,7 +1425,7 @@ $a->strings["You won!"] = "Wygrałeś!";
$a->strings["\"Cat\" game!"] = "Gra \"Kot\"!";
$a->strings["I won!"] = "Wygrałem!";
$a->strings["Randplace Settings"] = "Ustawienia Randplace";
$a->strings["Enable Randplace Plugin"] = "";
$a->strings["Enable Randplace Plugin"] = "Włącz Randplace Plugin";
$a->strings["Post to Dreamwidth"] = "Opublikuj na Dreamwidth";
$a->strings["Dreamwidth Post Settings"] = "";
$a->strings["Enable dreamwidth Post Plugin"] = "";
@ -1550,7 +1567,7 @@ $a->strings["Post to StatusNet"] = "Wyślij do sieci StatusNet";
$a->strings["Please contact your site administrator.<br />The provided API URL is not valid."] = "Proszę się skontaktować z administratorem strony. <br /> API URL nie jest poprawne";
$a->strings["We could not contact the StatusNet API with the Path you entered."] = "";
$a->strings["StatusNet settings updated."] = "Ustawienia StatusNet zaktualizowane";
$a->strings["StatusNet Posting Settings"] = "";
$a->strings["StatusNet Posting Settings"] = "Ustawienia StatusNet";
$a->strings["Globally Available StatusNet OAuthKeys"] = "";
$a->strings["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)."] = "";
$a->strings["Provide your own OAuth Credentials"] = "";
@ -1563,11 +1580,11 @@ $a->strings["Log in with StatusNet"] = "Zaloguj się przez StatusNet";
$a->strings["Copy the security code from StatusNet here"] = "Tutaj skopiuj kod bezpieczeństwa z StatusNet";
$a->strings["Cancel Connection Process"] = "Anuluj proces łączenia";
$a->strings["Current StatusNet API is"] = "Aktualnym StatusNet API jest";
$a->strings["Cancel StatusNet Connection"] = "";
$a->strings["Cancel StatusNet Connection"] = "Anuluj połączenie StatusNet";
$a->strings["Currently connected to: "] = "Obecnie połączone z:";
$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."] = "";
$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."] = "";
$a->strings["Allow posting to StatusNet"] = "";
$a->strings["Allow posting to StatusNet"] = "Pozwól zamieszczać posty na StatusNet";
$a->strings["Send public postings to StatusNet by default"] = "";
$a->strings["Mirror all posts from statusnet that are no replies or repeated messages"] = "";
$a->strings["Shortening method that optimizes the post"] = "";
@ -1629,6 +1646,8 @@ $a->strings["Shortening method that optimizes the tweet"] = "";
$a->strings["Send linked #-tags and @-names to Twitter"] = "";
$a->strings["Consumer key"] = "Klucz konsumenta";
$a->strings["Consumer secret"] = "Sekret konsumenta";
$a->strings["Name of the Twitter Application"] = "";
$a->strings["set this to avoid mirroring postings from ~friendica back to ~friendica"] = "";
$a->strings["IRC Settings"] = "Ustawienia IRC";
$a->strings["Channel(s) to auto connect (comma separated)"] = "";
$a->strings["Popular Channels (comma separated)"] = "";
@ -1908,7 +1927,8 @@ $a->strings["Profiles"] = "Profile";
$a->strings["Manage/Edit Profiles"] = "";
$a->strings["Manage/edit friends and contacts"] = "Zarządzaj listą przyjaciół i kontaktami";
$a->strings["Site setup and configuration"] = "Konfiguracja i ustawienia instancji";
$a->strings["Nothing new here"] = "Brak nowych zdarzeń";
$a->strings["Navigation"] = "";
$a->strings["Site map"] = "";
$a->strings["Add New Contact"] = "Dodaj nowy kontakt";
$a->strings["Enter address or web location"] = "Wpisz adres lub lokalizację sieciową";
$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Przykład: bob@przykład.com, http://przykład.com/barbara";
@ -2033,7 +2053,7 @@ $a->strings["This site is not configured to allow communications with other netw
$a->strings["No compatible communication protocols or feeds were discovered."] = "";
$a->strings["The profile address specified does not provide adequate information."] = "Dany adres profilu nie dostarcza odpowiednich informacji.";
$a->strings["An author or name was not found."] = "Autor lub nazwa nie zostało znalezione.";
$a->strings["No browser URL could be matched to this address."] = "";
$a->strings["No browser URL could be matched to this address."] = "Przeglądarka WWW nie może odnaleźć podanego adresu";
$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "";
$a->strings["Use mailto: in front of address to force email check."] = "";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Określony adres profilu należy do sieci, która została wyłączona na tej stronie.";
@ -2042,6 +2062,7 @@ $a->strings["Unable to retrieve contact information."] = "Nie można otrzymać i
$a->strings["following"] = "następujący";
$a->strings["A new person is sharing with you at "] = "";
$a->strings["You have a new follower at "] = "";
$a->strings["Do you really want to delete this item?"] = "";
$a->strings["Archives"] = "Archiwum";
$a->strings["An invitation is required."] = "Wymagane zaproszenie.";
$a->strings["Invitation could not be verified."] = "Zaproszenie niezweryfikowane.";
@ -2093,7 +2114,11 @@ $a->strings["Please enter an audio link/URL:"] = "Podaj link do muzyki";
$a->strings["Tag term:"] = "";
$a->strings["Where are you right now?"] = "Gdzie teraz jesteś?";
$a->strings["Delete item(s)?"] = "";
$a->strings["Post to Email"] = "Wyślij poprzez email";
$a->strings["permissions"] = "zezwolenia";
$a->strings["Post to Groups"] = "";
$a->strings["Post to Contacts"] = "";
$a->strings["Private post"] = "";
$a->strings["Click here to upgrade."] = "Kliknij tu, aby zaktualizować.";
$a->strings["This action exceeds the limits set by your subscription plan."] = "";
$a->strings["This action is not available under your subscription plan."] = "";
@ -2115,7 +2140,7 @@ $a->strings["Requested account is not available."] = "";
$a->strings["Edit profile"] = "Edytuj profil";
$a->strings["Message"] = "Wiadomość";
$a->strings["Manage/edit profiles"] = "Zarządzaj profilami";
$a->strings["g A l F d"] = "";
$a->strings["g A l F d"] = "g A I F d";
$a->strings["F d"] = "";
$a->strings["[today]"] = "[dziś]";
$a->strings["Birthday Reminders"] = "Przypomnienia o urodzinach";

View file

@ -52,10 +52,12 @@
{{include file="field_input.tpl" field=$sitename}}
{{include file="field_textarea.tpl" field=$banner}}
{{include file="field_select.tpl" field=$language}}
{{include file="field_select.tpl" field=$theme}}
{{include file="field_select.tpl" field=$theme}}
{{include file="field_select.tpl" field=$theme_mobile}}
{{include file="field_select.tpl" field=$ssl_policy}}
{{include file="field_checkbox.tpl" field=$new_share}}
{{include file="field_checkbox.tpl" field=$hide_help}}
{{include file="field_select.tpl" field=$singleuser}}
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>

View file

@ -2,7 +2,7 @@
style.css
Smoothly
Created by alex@friendica.pixelbits.de on 2013-01-11
Created by alex@friendica.pixelbits.de on 2013-02-21
** Colors **
Blue links - #1873a2
@ -202,6 +202,12 @@ section {
clear: both;
}
.login-extra-links {
width: 100%;
margin-left: 145px;
clear: both;
}
#login-extra-links a {
display: block;
margin: 10px;
@ -215,7 +221,7 @@ section {
}
#login_standard {
width: 250px;
width: 260px;
float: left;
border: 1px solid #7C7D7B;
border-radius: 5px;
@ -256,7 +262,7 @@ section {
}
#login-submit-button {
width: 271px;
width: 280px;
}
.login-form,
@ -3522,7 +3528,7 @@ margin-left: 0px;
/* ========= */
#adminpage {
width: 80%;
width: 90%;
}
#pending-update {
@ -3630,13 +3636,25 @@ margin-left: 0px;
/* =============== */
.field {
width: 90%;
margin-bottom: 10px;
overflow: auto;
padding-bottom: 0px;
width: 100%;
}
.field.radio .field_help {
margin-left: 205px;
}
.field .field_help {
color: #666666;
display: block;
margin-left: 200px;
}
.field label {
float: left;
min-width: 120px;
margin: 5px 10px 0 0;
float: left;
width: 200px;
}
.field checkbox {
@ -3646,17 +3664,13 @@ margin-left: 0px;
.field input,
.field textarea {
width: 220px;
width: 400px;
border: 1px solid #CDCDCD;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.field textarea {
height: 100px;
}
.field password {
height: 100px;
margin-left: 150px;
@ -4346,6 +4360,12 @@ div #datebrowse-sidebar.widget {
margin:10px 10px 0 0;
}
#id_maxreq,
#id_cntunkmail,
#id_expire {
width: 75px;
}
#id_post_newfriend,
#id_post_joingroup,
#id_post_profilechange,
@ -4358,7 +4378,7 @@ div #datebrowse-sidebar.widget {
#id_notify7,
#id_notify8,
#id_allow_location {
margin: 6px 0 0 0;
margin: 6px 0 0 10px;
}
#settings-form {}
@ -4374,6 +4394,7 @@ div #datebrowse-sidebar.widget {
}
#settings-notifications {
width: 400px;
border: 1px solid #7C7D7B;
box-shadow: 0 0 8px #BDBDBD;
-moz-box-shadow: 3px 3px 4px #959494;
@ -4426,3 +4447,38 @@ div #datebrowse-sidebar.widget {
width: auto !important;
margin-bottom: 5px !important;
}
.onoff {
margin-right: 10px;
}
.settings-heading {
margin: 25px 0 25px 0;
}
#id_itemcache,
#id_basepath,
#id_temppath,
#id_lockpath,
#id_proxyuser,
#id_proxy,
#id_allowed_email,
#id_allowed_sites,
#id_directory_submit_url,
#id_register_text {
width: 440px;
}
#id_itemcache_duration,
#id_abandon_days,
#id_maxloadavg,
#id_poll_interval,
#id_delivery_interval,
#id_timeout,
#id_jpegimagequality,
#id_maximagelength,
#id_maximagesize,
#id_max_daily_registrations {
width: 75px;
}

View file

@ -3,7 +3,7 @@
/*
* Name: Smoothly
* Description: Like coffee with milk. Theme optimized for iPad[2].
* Version: Version 0.132
* Version: Version 0.21
* Author: Alex <https://friendica.pixelbits.de/profile/alex>
* Maintainer: Alex <https://friendica.pixelbits.de/profile/alex>
* Screenshot: <a href="screenshot.png">Screenshot</a>

View file

@ -18,7 +18,7 @@
</ul>
</div>
{{ else }}
<div class="profile-edit-side-div"><a class="profile-edit-side-link icon edit" title="$editprofile" href="profiles/$profid" ></a></div>
<div class="profile-edit-side-div"><a class="profile-edit-side-link icon edit" title="$editprofile" href="profiles" ></a></div>
{{ endif }}
</div>

View file

@ -1020,6 +1020,9 @@ section {
max-width: 766px;
padding: 10px 10px 10px 10px;
background-color: white;
border-bottom: 1px solid lightgray;
border-right: 1px solid lightgray;
border-left: 1px solid lightgray;
}
/* wall item */
.tread-wrapper {
@ -1091,6 +1094,7 @@ border-bottom: 1px solid #D2D2D2;
max-width: 660px;
word-wrap: break-word;
line-height: 1.36;
padding-bottom: 6px;
}
.wall-item-container .wall-item-content img {
@ -1304,14 +1308,16 @@ border-bottom: 1px solid #D2D2D2;
.wall-item-tags {
padding-top: 1px;
padding-bottom: 2px;
/*display: none;*/
}
.tag {
color: rgb(153,153,153);
padding-left: 3px;
font-size: 10px;
/*padding-left: 3px;
font-size: 10px;*/
}
.tag a {
padding-right: 8px;
/*padding-right: 8px;*/
color: rgb(153,153,153);
}
.wwto {
@ -1724,7 +1730,7 @@ div.pager, .birthday-notice, ul.tabs a, #jot-preview-link, .comment-edit-submit-
background: linear-gradient(top, #ffffff 0%,#ececf2 100%);*/
}
#event-notice:hover, ul.tabs li .active, ul.tabs a:hover, #jot-preview-link:hover, .comment-edit-submit-wrapper .fakelink:hover {
#event-notice:hover, #birthday-notice:hover, ul.tabs li .active, ul.tabs a:hover, #jot-preview-link:hover, .comment-edit-submit-wrapper .fakelink:hover {
color: black;
background-color: #e5e5e5;
text-decoration: none;