Merge branch 'master' of github.com:annando/friendica

This commit is contained in:
Michael 2012-05-16 08:10:28 +02:00
commit 2b8c4df544
981 changed files with 162782 additions and 4591 deletions

View File

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1311' );
define ( 'FRIENDICA_VERSION', '2.3.1318' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1138 );
@ -936,6 +936,7 @@ if(! function_exists('profile_load')) {
}
if(($r === false) || (! count($r))) {
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
return;

View File

@ -158,7 +158,7 @@ function contact_photo_menu($contact) {
$o = "";
foreach($menu as $k=>$v){
if ($v!="") {
if(($k !== t("Network Posts")) && ($k !== t("Send PM")))
if(($k !== t("Network Posts")) && ($k !== t("Send PM")) && ($k !== t('Edit Contact')))
$o .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
else
$o .= "<li><a href=\"$v\">$k</a></li>\n";

View File

@ -593,7 +593,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
logger('probe_url: fetch feed: ' . $poll . ' returns: ' . $xml, LOGGER_DATA);
$a = get_app();
logger('probe_url: scrape_feed: headers: ' . $a->get_curl_headers(), $LOGGER_DATA);
logger('probe_url: scrape_feed: headers: ' . $a->get_curl_headers(), LOGGER_DATA);
$feed->set_raw_data($xml);

View File

@ -4,26 +4,26 @@
require_once("conversation.php");
require_once("oauth.php");
require_once("html2plain.php");
/*
/*
* Twitter-Like API
*
*
*/
$API = Array();
$called_api = Null;
$called_api = Null;
function api_date($str){
//Wed May 23 06:01:13 +0000 2007
return datetime_convert('UTC', 'UTC', $str, "D M d H:i:s +0000 Y" );
}
function api_register_func($path, $func, $auth=false){
global $API;
$API[$path] = array('func'=>$func,
'auth'=>$auth);
}
/**
* Simple HTTP Login
*/
@ -682,24 +682,24 @@
'geo' => '',
'coordinates' => $lastwall['coord'],
'place' => $lastwall['location'],
'contributors' => ''
'contributors' => ''
);
}
return api_apply_template("user", $type, array('$user' => $user_info));
}
api_register_func('api/users/show','api_users_show');
/**
*
*
* http://developer.twitter.com/doc/get/statuses/home_timeline
*
*
* TODO: Optional parameters
* TODO: Add reply info
*/
function api_statuses_home_timeline(&$a, $type){
if (local_user()===false) return false;
$user_info = api_get_user($a);
// get last newtork messages
@ -711,7 +711,7 @@
$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
$max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
//$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
$start = $page*$count;
//$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false);
@ -719,7 +719,7 @@
if ($max_id > 0)
$sql_extra = 'AND `item`.`id` <= '.intval($max_id);
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
@ -738,7 +738,7 @@
$ret = api_format_items($r,$user_info);
$data = array('$statuses' => $ret);
switch($type){
case "atom":
@ -752,7 +752,7 @@
return($as);
break;
}
return api_apply_template("timeline", $type, $data);
}
api_register_func('api/statuses/home_timeline','api_statuses_home_timeline', true);
@ -760,7 +760,7 @@
function api_statuses_public_timeline(&$a, $type){
if (local_user()===false) return false;
$user_info = api_get_user($a);
// get last newtork messages
@ -772,7 +772,7 @@
$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
$max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0);
//$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0);
$start = $page*$count;
//$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false);
@ -780,7 +780,7 @@
if ($max_id > 0)
$sql_extra = 'AND `item`.`id` <= '.intval($max_id);
/*$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
/*$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
@ -797,17 +797,17 @@
intval($since_id),
intval($start), intval($count)
);*/
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
`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`
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 `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
$sql_extra
AND `item`.`id`>%d
@ -818,7 +818,7 @@
$ret = api_format_items($r,$user_info);
$data = array('$statuses' => $ret);
switch($type){
case "atom":
@ -832,7 +832,7 @@
return($as);
break;
}
return api_apply_template("timeline", $type, $data);
}
api_register_func('api/statuses/public_timeline','api_statuses_public_timeline', true);
@ -848,11 +848,11 @@
// params
$id = intval($a->argv[3]);
logger('API: api_statuses_show: '.$id);
logger('API: api_statuses_show: '.$id);
//$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false);
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
@ -866,7 +866,7 @@
);
$ret = api_format_items($r,$user_info);
$data = array('$status' => $ret[0]);
/*switch($type){
case "atom":
@ -1004,7 +1004,7 @@
$ret = api_format_items($r,$user_info);
$data = array('$statuses' => $ret);
switch($type){
case "atom":
@ -1018,7 +1018,7 @@
return($as);
break;
}
return api_apply_template("timeline", $type, $data);
}
api_register_func('api/statuses/mentions','api_statuses_mentions', true);
@ -1069,14 +1069,14 @@
$ret = api_format_items($r,$user_info);
$data = array('$statuses' => $ret);
switch($type){
case "atom":
case "rss":
$data = api_rss_extra($a, $data, $user_info);
}
return api_apply_template("timeline", $type, $data);
}
@ -1085,25 +1085,25 @@
function api_favorites(&$a, $type){
if (local_user()===false) return false;
$user_info = api_get_user($a);
// in friendica starred item are private
// return favorites only for self
logger('api_favorites: self:' . $user_info['self']);
if ($user_info['self']==0) {
$ret = array();
} else {
// params
$count = (x($_GET,'count')?$_GET['count']:20);
$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
if ($page<0) $page=0;
$start = $page*$count;
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
@ -1120,16 +1120,16 @@
);
$ret = api_format_items($r,$user_info);
}
$data = array('$statuses' => $ret);
switch($type){
case "atom":
case "rss":
$data = api_rss_extra($a, $data, $user_info);
}
return api_apply_template("timeline", $type, $data);
}
@ -1199,7 +1199,7 @@
$as['link']['type'] = "text/html";
return($as);
}
function api_format_items($r,$user_info) {
//logger('api_format_items: ' . print_r($r,true));
@ -1214,14 +1214,14 @@
$status_user = (($item['cid']==$user_info['id'])?$user_info: api_item_get_user($a,$item));
if ($item['parent']!=$item['id']) {
$r = q("select id from item where parent=%s and id<%s order by id desc limit 1",
$r = q("select id from item where parent=%s and id<%s order by id desc limit 1",
intval($item['parent']), intval($item['id']));
if ($r)
$in_reply_to_status_id = $r[0]['id'];
else
$in_reply_to_status_id = $item['parent'];
$r = q("select `item`.`contact-id`, `contact`.nick, `item`.`author-name` from item, contact
$r = q("select `item`.`contact-id`, `contact`.nick, `item`.`author-name` from item, contact
where `contact`.`id` = `item`.`contact-id` and `item`.id=%d", intval($in_reply_to_status_id));
$in_reply_to_screen_name = $r[0]['author-name'];
@ -1233,8 +1233,20 @@
$in_reply_to_status_id = 0;
}
// Workaround for ostatus messages where the title is identically to the body
$statusbody = trim(html2plain(bbcode($item['body']), 0));
$statustitle = trim($item['title']);
if (($statustitle != '') and (strpos($statusbody, $statustitle) !== false))
$statustext = trim($statusbody);
else
$statustext = trim($statustitle."\n\n".$statusbody);
if (($item["network"] == NETWORK_FEED) and (strlen($statustext)> 1000))
$statustext = substr($statustext, 0, 1000)."... \n".$item["plink"];
$status = array(
'text' => trim($item['title']." \n".html2plain(bbcode($item['body']), 0)),
'text' => $statustext,
'truncated' => False,
'created_at'=> api_date($item['created']),
'in_reply_to_status_id' => $in_reply_to_status_id,
@ -1245,8 +1257,8 @@
'geo' => '',
'favorited' => $item['starred'] ? true : false,
'user' => $status_user ,
'statusnet_html' => bbcode($item['body']),
'statusnet_conversation_id' => 0,
'statusnet_html' => trim(bbcode($item['body'])),
'statusnet_conversation_id' => $item['parent'],
);
// Seesmic doesn't like the following content

0
include/config.php Executable file → Normal file
View File

View File

@ -342,7 +342,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'body' => template_escape($body),
'text' => strip_tags(template_escape($body)),
'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])),
'lock' => $lock,
'location' => template_escape($location),
'indent' => '',
'owner_name' => template_escape($owner_name),
@ -400,6 +399,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
$comments_collapsed = false;
$comments_seen = 0;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
$blowhard = 0;
@ -559,10 +559,10 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
}
$edpost = (((($profile_owner == local_user()) && ($toplevelpost) && (intval($item['wall']) == 1)) || ($mode === 'notes'))
? array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"))
: False);
if(local_user() && link_compare($a->contact['url'],$item['author-link']))
$edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"));
else
$edpost = false;
$drop = '';
$dropping = false;
@ -626,10 +626,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
else
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb);
$like = ((x($alike,$item['id'])) ? format_like($alike[$item['id']],$alike[$item['id'] . '-l'],'like',$item['id']) : '');
$dislike = ((x($dlike,$item['id'])) ? format_like($dlike[$item['id']],$dlike[$item['id'] . '-l'],'dislike',$item['id']) : '');
@ -713,7 +709,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
$page_template = get_markup_template("conversation.tpl");
$o .= replace_macros($page_template, array(
$o = replace_macros($page_template, array(
'$baseurl' => $a->get_baseurl($ssl_state),
'$mode' => $mode,
'$user' => $a->user,
@ -1078,7 +1074,6 @@ function find_thread_parent_index($arr,$x) {
}
function render_location_google($item) {
$location = '';
$location = (($item['location']) ? '<a target="map" title="' . $item['location'] . '" href="http://maps.google.com/?q=' . urlencode($item['location']) . '">' . $item['location'] . '</a>' : '');
$coord = (($item['coord']) ? '<a target="map" title="' . $item['coord'] . '" href="http://maps.google.com/?q=' . urlencode($item['coord']) . '">' . $item['coord'] . '</a>' : '');
if($coord) {
@ -1089,4 +1084,3 @@ function render_location_google($item) {
}
return $location;
}

4
include/dba.php Executable file → Normal file
View File

@ -260,6 +260,4 @@ function dbesc_array(&$arr) {
if(is_array($arr) && count($arr)) {
array_walk($arr,'dbesc_array_cb');
}
}}
}}

View File

@ -19,9 +19,15 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
$converse = true;
if($a->argv[$x] == 'starred')
$starred = true;
if($a->argv[$x] === 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1]))
$category = $a->argv[$x+1];
}
}
// default permissions - anonymous user
$sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' ";
@ -101,6 +107,10 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
if(! strlen($last_update))
$last_update = 'now -30 days';
if(isset($category)) {
$sql_extra .= file_tag_file_query('item',$category,'category');
}
if($public_feed) {
if(! $converse)
$sql_extra .= " AND `contact`.`self` = 1 ";
@ -578,20 +588,21 @@ function get_atom_elements($feed,$item) {
if($rawobj) {
$res['object'] = '<object>' . "\n";
if($rawobj[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data']) {
$res['object-type'] = $rawobj[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data'];
$res['object'] .= '<type>' . $rawobj[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data'] . '</type>' . "\n";
$child = $rawobj[0]['child'];
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($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'])
$res['object'] .= '<id>' . $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'] . '</id>' . "\n";
if($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'])
$res['object'] .= '<link>' . encode_rel_links($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) . '</link>' . "\n";
if($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'])
$res['object'] .= '<title>' . $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'] . '</title>' . "\n";
if($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data']) {
$body = $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data'];
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'])
$res['object'] .= '<link>' . encode_rel_links($child[SIMPLEPIE_NAMESPACE_ATOM_10]['link']) . '</link>' . "\n";
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'title') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'])
$res['object'] .= '<title>' . $child[SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'] . '</title>' . "\n";
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'content') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data']) {
$body = $child[SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data'];
if(! $body)
$body = $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['summary'][0]['data'];
$body = $child[SIMPLEPIE_NAMESPACE_ATOM_10]['summary'][0]['data'];
// preserve a copy of the original body content in case we later need to parse out any microformat information, e.g. events
$res['object'] .= '<orig>' . xmlify($body) . '</orig>' . "\n";
if((strpos($body,'<') !== false) || (strpos($body,'>') !== false)) {
@ -616,20 +627,20 @@ function get_atom_elements($feed,$item) {
if($rawobj) {
$res['target'] = '<target>' . "\n";
if($rawobj[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data']) {
$res['target'] .= '<type>' . $rawobj[0]['child'][NAMESPACE_ACTIVITY]['object-type'][0]['data'] . '</type>' . "\n";
$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($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'])
$res['target'] .= '<id>' . $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['id'][0]['data'] . '</id>' . "\n";
if($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'])
$res['target'] .= '<link>' . encode_rel_links($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) . '</link>' . "\n";
if($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'])
$res['target'] .= '<title>' . $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'] . '</title>' . "\n";
if($rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data']) {
$body = $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data'];
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'])
$res['target'] .= '<link>' . encode_rel_links($child[SIMPLEPIE_NAMESPACE_ATOM_10]['link']) . '</link>' . "\n";
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'data') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'])
$res['target'] .= '<title>' . $child[SIMPLEPIE_NAMESPACE_ATOM_10]['title'][0]['data'] . '</title>' . "\n";
if(x($child[SIMPLEPIE_NAMESPACE_ATOM_10], 'data') && $child[SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data']) {
$body = $child[SIMPLEPIE_NAMESPACE_ATOM_10]['content'][0]['data'];
if(! $body)
$body = $rawobj[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['summary'][0]['data'];
$body = $child[SIMPLEPIE_NAMESPACE_ATOM_10]['summary'][0]['data'];
// preserve a copy of the original body content in case we later need to parse out any microformat information, e.g. events
$res['target'] .= '<orig>' . xmlify($body) . '</orig>' . "\n";
if((strpos($body,'<') !== false) || (strpos($body,'>') !== false)) {
@ -1465,7 +1476,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
if(! $item['deleted'])
logger('consume_feed: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTVITY_OBJ_TAGTERM)) {
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
$xo = parse_xml_string($item['object'],false);
$xt = parse_xml_string($item['target'],false);
if($xt->type === ACTIVITY_OBJ_NOTE) {
@ -2081,7 +2092,7 @@ function local_delivery($importer,$data) {
logger('local_delivery: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG);
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTVITY_OBJ_TAGTERM)) {
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
$xo = parse_xml_string($item['object'],false);
$xt = parse_xml_string($item['target'],false);
@ -2219,6 +2230,34 @@ function local_delivery($importer,$data) {
$datarray = get_atom_elements($feed,$item);
$r = q("SELECT `id`, `uid`, `last-child`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
dbesc($item_id),
intval($importer['importer_uid'])
);
// Update content if 'updated' changes
if(count($r)) {
$iid = $r[0]['id'];
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
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']),
dbesc($datarray['body']),
dbesc($datarray['tag']),
dbesc(datetime_convert('UTC','UTC',$datarray['edited'])),
dbesc($item_id),
intval($importer['importer_uid'])
);
proc_run('php',"include/notifier.php","comment-import",$iid);
}
continue;
}
// TODO: make this next part work against both delivery threads of a community post
// if((! link_compare($datarray['author-link'],$importer['url'])) && (! $community)) {
@ -2438,7 +2477,7 @@ function local_delivery($importer,$data) {
// find out if our user is involved in this conversation and wants to be notified.
if($datarray['type'] != 'activity') {
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 ",
dbesc($parent_uri),
@ -3010,7 +3049,7 @@ function item_expire($uid,$days) {
function drop_items($items) {
$uid = 0;
if((! local_user()) && (! $remote_user()))
if(! local_user() && ! remote_user())
return;
if(count($items)) {

View File

@ -172,7 +172,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
$url_parsed = @parse_url($newurl);
if (isset($url_parsed)) {
$redirects++;
return fetch_url($newurl,$binary,$redirects,$timeout);
return fetch_url($newurl,false,$redirects,$timeout);
}
}
$a->set_curl_code($http_code);
@ -206,6 +206,7 @@ function xml_status($st, $message = '') {
if(! function_exists('http_status_exit')) {
function http_status_exit($val) {
$err = '';
if($val >= 400)
$err = 'Error';
if($val >= 200 && $val < 300)
@ -452,7 +453,7 @@ function lrdd($uri, $debug = false) {
logger('lrdd: parse error: ' . $e);
}
if($dom) {
if(isset($dom) && $dom) {
$items = $dom->getElementsByTagName('link');
foreach($items as $item) {
$x = $item->getAttribute('rel');

View File

@ -49,6 +49,7 @@ function get_language() {
if(isset($preferred))
return $preferred;
$a = get_app();
return ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
}}

View File

@ -2,7 +2,7 @@
function advanced_profile(&$a) {
$o .= '';
$o = '';
$o .= '<h2>' . t('Profile') . '</h2>';
@ -69,13 +69,12 @@ function advanced_profile(&$a) {
if($txt = prepare_text($a->profile['work'])) $profile['work'] = array( t('Work/employment:'), $txt);
if($txt = prepare_text($a->profile['education'])) $profile['education'] = array( t('School/education:'), $txt );
}
return replace_macros($tpl, array(
'$title' => t('Profile'),
'$profile' => $profile,
));
return replace_macros($tpl, array(
'$title' => t('Profile'),
'$profile' => $profile,
));
}
return '';
}

5
include/security.php Normal file → Executable file
View File

@ -326,7 +326,7 @@ function check_form_security_token($typename = '', $formname = 'form_security_to
}
function check_form_security_std_err_msg() {
return t('The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before subitting it.') . EOL;
return t('The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it.') . EOL;
}
function check_form_security_token_redirectOnErr($err_redirect, $typename = '', $formname = 'form_security_token') {
if (!check_form_security_token($typename, $formname)) {
@ -339,9 +339,10 @@ function check_form_security_token_redirectOnErr($err_redirect, $typename = '',
}
function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'form_security_token') {
if (!check_form_security_token($typename, $formname)) {
$a = get_app();
logger('check_form_security_token failed: user ' . $a->user['guid'] . ' - form element ' . $typename);
logger('check_form_security_token failed: _REQUEST data: ' . print_r($_REQUEST, true), LOGGER_DATA);
header('HTTP/1.1 403 Forbidden');
killme();
}
}
}

View File

@ -40,8 +40,8 @@ load_translation_table($lang);
require_once("dba.php");
if(! $install) {
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
unset($db_host, $db_user, $db_pass, $db_data);
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
unset($db_host, $db_user, $db_pass, $db_data);
/**
* Load configs from db. Overwrite configs from .htconfig.php
@ -95,6 +95,10 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
if(x($_GET,'zrl')) {
$_SESSION['my_url'] = $_GET['zrl'];
$a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string);
if(! $install) {
$arr = array('zrl' => $_SESSION['my_url'], 'url' => $a->cmd);
call_hooks('zrl_init',$arr);
}
}
/**

28
js/main.js Executable file → Normal file
View File

@ -17,6 +17,7 @@
}
var src = null;
var prev = null;
var livetime = null;
@ -558,12 +559,36 @@ function notifyMarkAll() {
}
// code from http://www.tinymce.com/wiki.php/How-to_implement_a_custom_file_browser
function fcFileBrowser (field_name, url, type, win) {
/* TODO: If you work with sessions in PHP and your client doesn't accept cookies you might need to carry
the session name and session ID in the request string (can look like this: "?PHPSESSID=88p0n70s9dsknra96qhuk6etm5").
These lines of code extract the necessary parameters and add them back to the filebrowser URL again. */
var cmsURL = baseurl+"/fbrowser/"+type+"/";
tinyMCE.activeEditor.windowManager.open({
file : cmsURL,
title : 'File Browser',
width : 420, // Your dimensions may differ - toy around with them!
height : 400,
resizable : "yes",
inline : "yes", // This parameter only has an effect if you use the inlinepopups plugin!
close_previous : "no"
}, {
window : win,
input : field_name
});
return false;
}
function setupFieldRichtext(){
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: "fieldRichtext",
plugins : "bbcode,paste",
plugins : "bbcode,paste, inlinepopups",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
@ -580,6 +605,7 @@ function setupFieldRichtext(){
convert_urls: false,
content_css: baseurl+"/view/custom_tinymce.css",
theme_advanced_path : false,
file_browser_callback : "fcFileBrowser",
});
}

View File

@ -4,7 +4,11 @@
* Friendica admin
*/
require_once("include/remoteupdate.php");
/**
* @param App $a
*/
function admin_post(&$a){
@ -67,6 +71,10 @@ function admin_post(&$a){
return; // NOTREACHED
}
/**
* @param App $a
* @return string
*/
function admin_content(&$a) {
if(!is_site_admin()) {
@ -74,7 +82,7 @@ function admin_content(&$a) {
}
if(x($_SESSION,'submanage') && intval($_SESSION['submanage']))
return;
return "";
/**
* Side bar links
@ -147,6 +155,7 @@ function admin_content(&$a) {
if(is_ajax()) {
echo $o;
killme();
return '';
} else {
return $o;
}
@ -155,6 +164,8 @@ function admin_content(&$a) {
/**
* Admin Summary Page
* @param App $a
* @return string
*/
function admin_page_summary(&$a) {
$r = q("SELECT `page-flags`, COUNT(uid) as `count` FROM `user` GROUP BY `page-flags`");
@ -188,12 +199,15 @@ function admin_page_summary(&$a) {
/**
* Admin Site Page
* @param App $a
*/
function admin_page_site_post(&$a){
if (!x($_POST,"page_site")){
return;
}
check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
@ -298,7 +312,7 @@ function admin_page_site_post(&$a){
} else {
set_config('system','directory_submit_url', $global_directory);
}
set_config('system','directory_search_url', $global_search_url);
set_config('system','block_extended_register', $no_multi_reg);
set_config('system','no_openid', $no_openid);
set_config('system','no_regfullname', $no_regfullname);
@ -317,7 +331,11 @@ function admin_page_site_post(&$a){
return; // NOTREACHED
}
/**
* @param App $a
* @return string
*/
function admin_page_site(&$a) {
/* Installed langs */
@ -408,6 +426,7 @@ function admin_page_site(&$a) {
'$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
'$form_security_token' => get_form_security_token("admin_site"),
));
@ -416,11 +435,15 @@ function admin_page_site(&$a) {
/**
* Users admin page
*
* @param App $a
*/
function admin_page_users_post(&$a){
$pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() );
$users = ( x($_POST, 'user') ? $_POST['user'] : Array() );
check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
if (x($_POST,'page_users_block')){
foreach($users as $uid){
q("UPDATE `user` SET `blocked`=1-`blocked` WHERE `uid`=%s",
@ -452,7 +475,11 @@ function admin_page_users_post(&$a){
goaway($a->get_baseurl(true) . '/admin/users' );
return; // NOTREACHED
}
/**
* @param App $a
* @return string
*/
function admin_page_users(&$a){
if ($a->argc>2) {
$uid = $a->argv[3];
@ -460,10 +487,11 @@ function admin_page_users(&$a){
if (count($user)==0){
notice( 'User not found' . EOL);
goaway($a->get_baseurl(true) . '/admin/users' );
return; // NOTREACHED
return ''; // NOTREACHED
}
switch($a->argv[2]){
case "delete":{
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
// delete user
require_once("include/Contact.php");
user_remove($uid);
@ -471,6 +499,7 @@ function admin_page_users(&$a){
notice( sprintf(t("User '%s' deleted"), $user[0]['username']) . EOL);
}; break;
case "block":{
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
q("UPDATE `user` SET `blocked`=%d WHERE `uid`=%s",
intval( 1-$user[0]['blocked'] ),
intval( $uid )
@ -479,7 +508,7 @@ function admin_page_users(&$a){
}; break;
}
goaway($a->get_baseurl(true) . '/admin/users' );
return; // NOTREACHED
return ''; // NOTREACHED
}
@ -555,6 +584,7 @@ function admin_page_users(&$a){
'$confirm_delete_multi' => t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
'$form_security_token' => get_form_security_token("admin_users"),
// values //
'$baseurl' => $a->get_baseurl(true),
@ -567,10 +597,12 @@ function admin_page_users(&$a){
}
/*
/**
* Plugins admin page
*
* @param App $a
* @return string
*/
function admin_page_plugins(&$a){
/**
@ -580,10 +612,12 @@ function admin_page_plugins(&$a){
$plugin = $a->argv[2];
if (!is_file("addon/$plugin/$plugin.php")){
notice( t("Item not found.") );
return;
return '';
}
if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't');
// Toggle plugin status
$idx = array_search($plugin, $a->plugins);
if ($idx !== false){
@ -597,7 +631,7 @@ function admin_page_plugins(&$a){
}
set_config("system","addon", implode(", ",$a->plugins));
goaway($a->get_baseurl(true) . '/admin/plugins' );
return; // NOTREACHED
return ''; // NOTREACHED
}
// display plugin details
require_once('library/markdown.php');
@ -641,7 +675,9 @@ function admin_page_plugins(&$a){
'$admin_form' => $admin_form,
'$function' => 'plugins',
'$screenshot' => '',
'$readme' => $readme
'$readme' => $readme,
'$form_security_token' => get_form_security_token("admin_themes"),
));
}
@ -670,10 +706,16 @@ function admin_page_plugins(&$a){
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(true),
'$function' => 'plugins',
'$plugins' => $plugins
'$plugins' => $plugins,
'$form_security_token' => get_form_security_token("admin_themes"),
));
}
/**
* @param array $themes
* @param string $th
* @param int $result
*/
function toggle_theme(&$themes,$th,&$result) {
for($x = 0; $x < count($themes); $x ++) {
if($themes[$x]['name'] === $th) {
@ -689,6 +731,11 @@ function toggle_theme(&$themes,$th,&$result) {
}
}
/**
* @param array $themes
* @param string $th
* @return int
*/
function theme_status($themes,$th) {
for($x = 0; $x < count($themes); $x ++) {
if($themes[$x]['name'] === $th) {
@ -702,9 +749,12 @@ function theme_status($themes,$th) {
}
return 0;
}
/**
* @param array $themes
* @return string
*/
function rebuild_theme_table($themes) {
$o = '';
if(count($themes)) {
@ -720,10 +770,12 @@ function rebuild_theme_table($themes) {
}
/*
/**
* Themes admin page
*
* @param App $a
* @return string
*/
function admin_page_themes(&$a){
$allowed_themes_str = get_config('system','allowed_themes');
@ -740,7 +792,7 @@ function admin_page_themes(&$a){
foreach($files as $file) {
$f = basename($file);
$is_experimental = intval(file_exists($file . '/experimental'));
$is_unsupported = 1-(intval(file_exists($file . '/unsupported')));
$is_supported = 1-(intval(file_exists($file . '/unsupported'))); // Is not used yet
$is_allowed = intval(in_array($f,$allowed_themes));
$themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
}
@ -748,7 +800,7 @@ function admin_page_themes(&$a){
if(! count($themes)) {
notice( t('No themes found.'));
return;
return '';
}
/**
@ -759,10 +811,11 @@ function admin_page_themes(&$a){
$theme = $a->argv[2];
if(! is_dir("view/theme/$theme")){
notice( t("Item not found.") );
return;
return '';
}
if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't');
// Toggle theme status
@ -775,7 +828,7 @@ function admin_page_themes(&$a){
set_config('system','allowed_themes',$s);
goaway($a->get_baseurl(true) . '/admin/themes' );
return; // NOTREACHED
return ''; // NOTREACHED
}
// display theme details
@ -826,7 +879,9 @@ function admin_page_themes(&$a){
'$str_author' => t('Author: '),
'$str_maintainer' => t('Maintainer: '),
'$screenshot' => $screenshot,
'$readme' => $readme
'$readme' => $readme,
'$form_security_token' => get_form_security_token("admin_themes"),
));
}
@ -852,17 +907,21 @@ function admin_page_themes(&$a){
'$function' => 'themes',
'$plugins' => $xthemes,
'$experimental' => t('[Experimental]'),
'$unsupported' => t('[Unsupported]')
'$unsupported' => t('[Unsupported]'),
'$form_security_token' => get_form_security_token("admin_themes"),
));
}
/**
* Logs admin page
*
* @param App $a
*/
function admin_page_logs_post(&$a) {
if (x($_POST,"page_logs")) {
check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
$logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
$debugging = ((x($_POST,'debugging')) ? true : false);
@ -879,7 +938,11 @@ function admin_page_logs_post(&$a) {
goaway($a->get_baseurl(true) . '/admin/logs' );
return; // NOTREACHED
}
/**
* @param App $a
* @return string
*/
function admin_page_logs(&$a){
$log_choices = Array(
@ -937,9 +1000,14 @@ readable.");
'$debugging' => array('debugging', t("Debugging"),get_config('system','debugging'), ""),
'$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Friendica top-level directory.")),
'$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
'$form_security_token' => get_form_security_token("admin_logs"),
));
}
/**
* @param App $a
*/
function admin_page_remoteupdate_post(&$a) {
// this function should be called via ajax post
if(!is_site_admin()) {
@ -958,6 +1026,10 @@ function admin_page_remoteupdate_post(&$a) {
killme();
}
/**
* @param App $a
* @return string
*/
function admin_page_remoteupdate(&$a) {
if(!is_site_admin()) {
return login(false);

99
mod/fbrowser.php Normal file
View File

@ -0,0 +1,99 @@
<?php
/**
* @package Friendica\modules
* @subpackage FileBrowser
* @author Fabio Comuni <fabrixxm@kirgroup.com>
*/
/**
* @param App $a
*/
function fbrowser_content($a){
if (!local_user())
killme();
if ($a->argc==1)
killme();
//echo "<pre>"; var_dump($a->argv); killme();
switch($a->argv[1]){
case "image":
$path = array( array($a->get_baseurl()."/fbrowser/image/", t("Photos")));
$albums = false;
$sql_extra = "";
$sql_extra2 = " ORDER BY created DESC LIMIT 0, 10";
if ($a->argc==2){
$albums = q("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = %d ",
intval(local_user())
);
// anon functions only from 5.3.0... meglio tardi che mai..
function folder1($el){return array(bin2hex($el['album']),$el['album']);}
$albums = array_map( "folder1" , $albums);
}
$album = "";
if ($a->argc==3){
$album = hex2bin($a->argv[2]);
$sql_extra = sprintf("AND `album` = '%s' ",dbesc($album));
$sql_extra2 = "";
$path[]=array($a->get_baseurl()."/fbrowser/image/".$a->argv[2]."/", $album);
}
$r = q("SELECT `resource-id`, `id`, `filename`, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc`
FROM `photo` WHERE `uid` = %d $sql_extra
GROUP BY `resource-id` $sql_extra2",
intval(local_user())
);
function files1($rr){ global $a; return array( $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.jpg', template_escape($rr['filename']), $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.jpg'); }
$files = array_map("files1", $r);
$tpl = get_markup_template("filebrowser.tpl");
echo replace_macros($tpl, array(
'$type' => 'image',
'$baseurl' => $a->get_baseurl(),
'$path' => $path,
'$folders' => $albums,
'$files' =>$files,
));
break;
case "file":
if ($a->argc==2){
$files = q("SELECT id, filename, filetype FROM `attach` WHERE `uid` = %d ",
intval(local_user())
);
function files2($rr){ global $a;
list($m1,$m2) = explode("/",$rr['filetype']);
$filetype = ( (file_exists("images/icons/$m1.png"))?$m1:"zip");
return array( $a->get_baseurl() . '/attach/' . $rr['id'], template_escape($rr['filename']), $a->get_baseurl() . '/images/icons/16/' . $filetype . '.png');
}
$files = array_map("files2", $files);
//echo "<pre>"; var_dump($files); killme();
$tpl = get_markup_template("filebrowser.tpl");
echo replace_macros($tpl, array(
'$type' => 'file',
'$baseurl' => $a->get_baseurl(),
'$path' => array( array($a->get_baseurl()."/fbrowser/image/", t("Files")) ),
'$folders' => false,
'$files' =>$files,
));
}
break;
}
killme();
}

View File

@ -380,9 +380,9 @@ function check_funcs(&$checks) {
if(function_exists('apache_get_modules')){
if (! in_array('mod_rewrite',apache_get_modules())) {
check_add($ck_funcs, t('Apace mod_rewrite module'), false, true, t('Error: Apache webserver mod-rewrite module is required but not installed.'));
check_add($ck_funcs, t('Apache mod_rewrite module'), false, true, t('Error: Apache webserver mod-rewrite module is required but not installed.'));
} else {
check_add($ck_funcs, t('Apace mod_rewrite module'), true, true, "");
check_add($ck_funcs, t('Apache mod_rewrite module'), true, true, "");
}
}
if(! function_exists('curl_init')){
@ -464,3 +464,6 @@ function load_database($db) {
}
return $errors;
}

View File

@ -759,7 +759,7 @@ function item_post(&$a) {
}
else {
logger('mod_item: unable to retrieve post that was just stored.');
notify( t('System error. Post not saved.'));
notice( t('System error. Post not saved.') . EOL);
goaway($a->get_baseurl() . "/" . $return_path );
// NOTREACHED
}

View File

@ -4,6 +4,30 @@ require_once('include/security.php');
function photo_init(&$a) {
// To-Do:
// - checking with realpath
// - checking permissions
/*
$cache = get_config('system','itemcache');
if (($cache != '') and is_dir($cache)) {
$cachefile = $cache."/".$a->argc."-".$a->argv[1]."-".$a->argv[2]."-".$a->argv[3];
if (file_exists($cachefile)) {
$data = file_get_contents($cachefile);
if(function_exists('header_remove')) {
header_remove('Pragma');
header_remove('pragma');
}
header("Content-type: image/jpeg");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + (3600*24)) . " GMT");
header("Cache-Control: max-age=" . (3600*24));
echo $data;
killme();
// NOTREACHED
}
}*/
switch($a->argc) {
case 4:
$person = $a->argv[3];
@ -27,6 +51,7 @@ function photo_init(&$a) {
if(isset($type)) {
/**
* Profile photos
*/
@ -144,6 +169,10 @@ function photo_init(&$a) {
}
}
// Writing in cachefile
if (isset($cachefile) && $cachefile != '')
file_put_contents($cachefile, $data);
if(function_exists('header_remove')) {
header_remove('Pragma');
header_remove('pragma');

View File

@ -330,7 +330,6 @@ function photos_post(&$a) {
// Create item container
$title = '';
$basename = basename($filename);
$uri = item_new_uri($a->get_hostname(),$page_owner_uid);
$arr = array();

View File

@ -17,6 +17,7 @@ function profile_init(&$a) {
goaway($a->get_baseurl() . '/profile/' . $r[0]['nickname']);
}
else {
logger('profile error: mod_profile ' . $a->query_string, LOGGER_DEBUG);
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
return;

View File

@ -5,6 +5,6 @@ function randprof_init(&$a) {
require_once('include/Contact.php');
$x = random_profile();
if($x)
goaway($x);
goaway(zrl($x));
goaway($a->get_baseurl() . '/profile');
}

View File

@ -98,8 +98,13 @@ function wall_attach_post(&$a) {
killme();
}
echo '<br /><br />[attachment]' . $r[0]['id'] . '[/attachment]' . '<br />';
$lf = '<br />';
if(local_user() && intval(get_pconfig(local_user(),'system','plaintext')))
$lf = "\n";
echo $lf . $lf . '[attachment]' . $r[0]['id'] . '[/attachment]' . $lf;
killme();
// NOTREACHED
}

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@
<h1>$title - $page</h1>
<form action="$baseurl/admin/logs" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'>
{{ inc field_checkbox.tpl with $field=$debugging }}{{ endinc }}
{{ inc field_input.tpl with $field=$logfile }}{{ endinc }}

View File

@ -4,7 +4,7 @@
<ul id='pluginslist'>
{{ for $plugins as $p }}
<li class='plugin $p.1'>
<a class='toggleplugin' href='$baseurl/admin/$function/$p.0?a=t' title="{{if $p.1==on }}Disable{{ else }}Enable{{ endif }}" ><span class='icon $p.1'></span></a>
<a class='toggleplugin' href='$baseurl/admin/$function/$p.0?a=t&amp;t=$form_security_token' title="{{if $p.1==on }}Disable{{ else }}Enable{{ endif }}" ><span class='icon $p.1'></span></a>
<a href='$baseurl/admin/$function/$p.0'><span class='name'>$p.2.name</span></a> - <span class="version">$p.2.version</span>
{{ if $p.2.experimental }} $experimental {{ endif }}{{ if $p.2.unsupported }} $unsupported {{ endif }}

View File

@ -1,7 +1,7 @@
<div id='adminpage'>
<h1>$title - $page</h1>
<p><span class='toggleplugin icon $status'></span> $info.name - $info.version : <a href="$baseurl/admin/$function/$plugin/?a=t">$action</a></p>
<p><span class='toggleplugin icon $status'></span> $info.name - $info.version : <a href="$baseurl/admin/$function/$plugin/?a=t&amp;t=$form_security_token">$action</a></p>
<p>$info.description</p>
<p class="author">$str_author

View File

@ -38,7 +38,8 @@
<h1>$title - $page</h1>
<form action="$baseurl/admin/site" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'>
{{ inc field_input.tpl with $field=$sitename }}{{ endinc }}
{{ inc field_textarea.tpl with $field=$banner }}{{ endinc }}
{{ inc field_select.tpl with $field=$language }}{{ endinc }}

View File

@ -14,6 +14,7 @@
<h1>$title - $page</h1>
<form action="$baseurl/admin/users" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'>
<h3>$h_pending</h3>
{{ if $pending }}
@ -72,8 +73,8 @@
<td class='login_date'>$u.page-flags</td>
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
<td class="tools">
<a href="$baseurl/admin/users/block/$u.uid" title='{{ if $u.blocked }}$unblock{{ else }}$block{{ endif }}'><span class='icon block {{ if $u.blocked==0 }}dim{{ endif }}'></span></a>
<a href="$baseurl/admin/users/delete/$u.uid" title='$delete' onclick="return confirm_delete('$u.name')"><span class='icon drop'></span></a>
<a href="$baseurl/admin/users/block/$u.uid?t=$form_security_token" title='{{ if $u.blocked }}$unblock{{ else }}$block{{ endif }}'><span class='icon block {{ if $u.blocked==0 }}dim{{ endif }}'></span></a>
<a href="$baseurl/admin/users/delete/$u.uid?t=$form_security_token" title='$delete' onclick="return confirm_delete('$u.name')"><span class='icon drop'></span></a>
</td>
</tr>
{{ endfor }}

View File

@ -11,6 +11,7 @@
<geo>$status.geo</geo>
<favorited>$status.favorited</favorited>
{{ inc api_user_xml.tpl with $user=$status.user }}{{ endinc }} <statusnet:html>$status.statusnet_html</statusnet:html>
<statusnet:conversation_id>$status.statusnet_conversation_id</statusnet:conversation_id>
<url>$status.url</url>
<coordinates>$status.coordinates</coordinates>
<place>$status.place</place>

View File

@ -7,7 +7,7 @@ $page_desc<br />
<li><a href="http://friendica.com" title="$friendica">$friendica</a></li>
<li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li>
<li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li>
<li>$emailnet</li>
{{ if $emailnet }}<li>$emailnet</li>{{ endif }}
</ul>
</p>
<p>

View File

@ -2910,7 +2910,7 @@ msgstr "Comptes abandonats després de x dies"
#: ../../mod/admin.php:330
msgid ""
"Will not waste system resources polling external sites for abandonded "
"Will not waste system resources polling external sites for abandoned "
"accounts. Enter 0 for no time limit."
msgstr "No gastará recursos del sistema creant enquestes des de llocs externos per a comptes abandonats. Introdueixi 0 per a cap límit temporal."

View File

@ -654,7 +654,7 @@ $a->strings["Register policy"] = "Política per a registrar";
$a->strings["Register text"] = "Text al registrar";
$a->strings["Will be displayed prominently on the registration page."] = "Sea mostrat de forma peminent a la pagina durant el procés de registre.";
$a->strings["Accounts abandoned after x days"] = "Comptes abandonats després de x dies";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "No gastará recursos del sistema creant enquestes des de llocs externos per a comptes abandonats. Introdueixi 0 per a cap límit temporal.";
$a->strings["Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."] = "No gastará recursos del sistema creant enquestes des de llocs externos per a comptes abandonats. Introdueixi 0 per a cap límit temporal.";
$a->strings["Allowed friend domains"] = "Dominis amics permesos";
$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Llista de dominis separada per comes, de adreçes de correu que són permeses per establir amistats. S'admeten comodins. Deixa'l buit per a acceptar tots els dominis.";
$a->strings["Allowed email domains"] = "Dominis de correu permesos";

File diff suppressed because it is too large Load Diff

View File

@ -155,6 +155,8 @@ $a->strings["%s has received too many connection requests today."] = "%s hat heu
$a->strings["Spam protection measures have been invoked."] = "Maßnahmen zum Spamschutz wurden ergriffen.";
$a->strings["Friends are advised to please try again in 24 hours."] = "Freunde sind angehalten, es in 24 Stunden erneut zu versuchen.";
$a->strings["Invalid locator"] = "Ungültiger Locator";
$a->strings["Invalid email address."] = "Ungültige E-Mail Adresse.";
$a->strings["This account has not been configured for email. Request failed."] = "";
$a->strings["Unable to resolve your name at the provided location."] = "Konnte deinen Namen an der angegebenen Stelle nicht finden.";
$a->strings["You have already introduced yourself here."] = "Du hast dich hier bereits vorgestellt.";
$a->strings["Apparently you are already friends with %s."] = "Es scheint so, als ob du bereits mit %s befreundet bist.";
@ -365,6 +367,13 @@ $a->strings["Forgot your Password?"] = "Hast du dein Passwort vergessen?";
$a->strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Gib deine Email-Adresse an und fordere ein neues Passwort an. Es werden dir dann weitere Informationen per Mail zugesendet.";
$a->strings["Nickname or Email: "] = "Spitzname oder Email:";
$a->strings["Reset"] = "Zurücksetzen";
$a->strings["Account settings"] = "Account Einstellungen";
$a->strings["Display settings"] = "Anzeige Einstellungen";
$a->strings["Connector settings"] = "Connector-Einstellungen";
$a->strings["Plugin settings"] = "Plugin-Einstellungen";
$a->strings["Connected apps"] = "Verbundene Programme";
$a->strings["Export personal data"] = "Persönliche Daten exportieren";
$a->strings["Settings"] = "Einstellungen";
$a->strings["Missing some important data!"] = "Wichtige Daten fehlen!";
$a->strings["Update"] = "Aktualisierungen";
$a->strings["Failed to connect with email account using the settings provided."] = "Konnte das Email Konto mit den angegebenen Einstellungen nicht erreichen.";
@ -378,12 +387,6 @@ $a->strings[" Name too short."] = " Name ist zu kurz.";
$a->strings[" Not valid email."] = " Keine gültige E-Mail.";
$a->strings[" Cannot change to that email."] = "Ändern der E-Mail nicht möglich. ";
$a->strings["Settings updated."] = "Einstellungen aktualisiert.";
$a->strings["Account settings"] = "Account Einstellungen";
$a->strings["Display settings"] = "Anzeige Einstellungen";
$a->strings["Connector settings"] = "Connector-Einstellungen";
$a->strings["Plugin settings"] = "Plugin-Einstellungen";
$a->strings["Connections"] = "Verbindungen";
$a->strings["Export personal data"] = "Persönliche Daten exportieren";
$a->strings["Add application"] = "Programm hinzufügen";
$a->strings["Consumer Key"] = "Consumer Key";
$a->strings["Consumer Secret"] = "Consumer Secret";
@ -471,6 +474,9 @@ $a->strings["Default Post Permissions"] = "Standard-Zugriffsrechte für Beiträg
$a->strings["(click to open/close)"] = "(klicke zum öffnen/schließen)";
$a->strings["Maximum private messages per day from unknown people:"] = "Maximale Anzahl von privaten Nachrichten, die dir unbekannte Personen pro Tag senden dürfen:";
$a->strings["Notification Settings"] = "Benachrichtigungseinstellungen";
$a->strings["By default post a status message when:"] = "";
$a->strings["accepting a friend request"] = "akzeptieren einer Freundschaftsanfrage";
$a->strings["making an <em>interesting</em> profile change"] = "";
$a->strings["Send a notification email when:"] = "Benachrichtigungs-E-Mail senden wenn:";
$a->strings["You receive an introduction"] = "- du eine Kontaktanfrage erhältst";
$a->strings["Your introductions are confirmed"] = "- eine deiner Kontaktanfragen akzeptiert wurde";
@ -478,7 +484,7 @@ $a->strings["Someone writes on your profile wall"] = "- jemand etwas auf deine P
$a->strings["Someone writes a followup comment"] = "- jemand auch einen Kommentar verfasst";
$a->strings["You receive a private message"] = "- du eine private Nachricht erhältst";
$a->strings["You receive a friend suggestion"] = "- du eine Empfehlung erhältst";
$a->strings["You are tagged in a post"] = "Du wurdest in einem Beitrag erwähnt.";
$a->strings["You are tagged in a post"] = "- du in einem Beitrag erwähnt wurdest";
$a->strings["Advanced Page Settings"] = "Erweiterte Seiten-Einstellungen";
$a->strings["Manage Identities and/or Pages"] = "Verwalte Identitäten und/oder Seiten";
$a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Wechsle zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppen-Seiten, die deine Zugangsdetails teilen oder zu denen du \"Manage\" Befugnisse bekommen hast.";
@ -646,6 +652,7 @@ $a->strings["No secure communications available. You <strong>may</strong> be abl
$a->strings["Send Reply"] = "Antwort senden";
$a->strings["Friends of %s"] = "Freunde von %s";
$a->strings["No friends to display."] = "Keine Freunde zum Anzeigen.";
$a->strings["Theme settings updated."] = "Themen Einstellungen aktualisiert.";
$a->strings["Site"] = "Seite";
$a->strings["Users"] = "Nutzer";
$a->strings["Plugins"] = "Plugins";
@ -672,7 +679,7 @@ $a->strings["Site name"] = "Seitenname";
$a->strings["Banner/Logo"] = "Banner/Logo";
$a->strings["System language"] = "Systemsprache";
$a->strings["System theme"] = "Systemweites Thema";
$a->strings["Default system theme - may be over-ridden by user profiles"] = "Standard Server Theme - kann von den Benutzereinstellungen überschrieben werden.";
$a->strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "";
$a->strings["SSL link policy"] = "Regeln für SSL Links";
$a->strings["Determines whether generated links should be forced to use SSL"] = "Bestimmt, ob generierte Links SSL verwenden müssen";
$a->strings["Maximum image size"] = "Maximale Größe von Bildern";
@ -681,7 +688,7 @@ $a->strings["Register policy"] = "Registrierungsmethode";
$a->strings["Register text"] = "Registrierungstext";
$a->strings["Will be displayed prominently on the registration page."] = "Wird gut sichtbar auf der Registrierungs-Seite angezeigt.";
$a->strings["Accounts abandoned after x days"] = "Accounts gelten nach x Tagen als unbenutzt";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit.";
$a->strings["Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit.";
$a->strings["Allowed friend domains"] = "Erlaubte Domains für Kontakte";
$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben.";
$a->strings["Allowed email domains"] = "Erlaubte Domains für Emails";
@ -696,8 +703,6 @@ $a->strings["Block multiple registrations"] = "Unterbinde Mehrfachregistrierung"
$a->strings["Disallow users to register additional accounts for use as pages."] = "Benutzern nicht erlauben, weitere Accounts als zusätzliche Profile anzulegen.";
$a->strings["OpenID support"] = "OpenID Unterstützung";
$a->strings["OpenID support for registration and logins."] = "OpenID-Unterstützung für Registrierung und Login.";
$a->strings["Gravatar support"] = "Gravatar Unterstützung";
$a->strings["Search new user's photo on Gravatar."] = "Suchfunktion bei Gravatar für Profilbilder neuer Nutzer.";
$a->strings["Fullname check"] = "Namen auf Vollständigkeit überprüfen";
$a->strings["Force users to register with a space between firstname and lastname in Full name, as an antispam measure"] = "Leerzeichen zwischen Vor- und Nachname im vollständigen Namen erzwingen, um SPAM zu vermeiden.";
$a->strings["UTF-8 Regular expressions"] = "UTF-8 Reguläre Ausdrücke";
@ -711,7 +716,7 @@ $a->strings["Provide built-in Diaspora network compatibility."] = "Verwende die
$a->strings["Only allow Friendica contacts"] = "Nur Friendica-Kontakte erlauben";
$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Alle Kontakte müssen das Friendica Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert.";
$a->strings["Verify SSL"] = "SSL Überprüfen";
$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."] = "Wenn gewollt, kann man hier eine strenge Zertifikat Kontrolle anstellen. Das bedeutet, das man zu keinen Seiten mit selbst unterzeichneten SSL eine Verbindung herstellen kann.";
$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."] = "Wenn gewollt, kann man hier eine strenge Zertifikat Kontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL eine Verbindung herstellen kann.";
$a->strings["Proxy user"] = "Proxy Nutzer";
$a->strings["Proxy URL"] = "Proxy URL";
$a->strings["Network timeout"] = "Netzwerk Wartezeit";
@ -744,7 +749,6 @@ $a->strings["Plugin %s enabled."] = "Plugin %s aktiviert.";
$a->strings["Disable"] = "Ausschalten";
$a->strings["Enable"] = "Einschalten";
$a->strings["Toggle"] = "Umschalten";
$a->strings["Settings"] = "Einstellungen";
$a->strings["Author: "] = "Autor:";
$a->strings["Maintainer: "] = "Betreuer:";
$a->strings["No themes found."] = "Keine Themen gefunden.";
@ -775,9 +779,10 @@ $a->strings["{0} is now friends with %s"] = "{0} ist jetzt mit %s befreundet";
$a->strings["{0} posted"] = "{0} hat etwas veröffentlicht";
$a->strings["{0} tagged %s's post with #%s"] = "{0} hat %ss Beitrag mit dem Schlagwort #%s versehen";
$a->strings["{0} mentioned you in a post"] = "{0} hat dich in einem Beitrag erwähnt";
$a->strings["Contacts who are not members of a group"] = "";
$a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben.";
$a->strings["Account not found and OpenID registration is not permitted on this site."] = "Account wurde nicht gefunden und OpenID Registrierung auf diesem Server nicht gestattet.";
$a->strings["Login failed."] = "Anmeldung fehlgeschlagen.";
$a->strings["Login failed."] = "Annmeldung fehlgeschlagen.";
$a->strings["Connect URL missing."] = "Connect-URL fehlt";
$a->strings["This site is not configured to allow communications with other networks."] = "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann.";
$a->strings["No compatible communication protocols or feeds were discovered."] = "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden.";
@ -796,7 +801,19 @@ $a->strings["No installed applications."] = "Keine Applikationen installiert.";
$a->strings["Search This Site"] = "Diese Seite durchsuchen";
$a->strings["Profile not found."] = "Profil nicht gefunden.";
$a->strings["Profile Name is required."] = "Profilname ist erforderlich.";
$a->strings["Marital Status"] = "";
$a->strings["Romantic Partner"] = "";
$a->strings["Work/Employment"] = "";
$a->strings["Religion"] = "Religion";
$a->strings["Political Views"] = "Politische Ansichten";
$a->strings["Gender"] = "Geschlecht";
$a->strings["Sexual Preference"] = "Sexuelle Vorlieben";
$a->strings["Homepage"] = "Webseite";
$a->strings["Interests"] = "Interessen";
$a->strings["Location"] = "";
$a->strings["Profile updated."] = "Profil aktualisiert.";
$a->strings["public profile"] = "";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "";
$a->strings["Profile deleted."] = "Profil gelöscht.";
$a->strings["Profile-"] = "Profil-";
$a->strings["New profile created."] = "Neues Profil angelegt.";
@ -924,7 +941,7 @@ $a->strings["Facebook Connector Settings"] = "Facebook-Verbindungseinstellungen"
$a->strings["Facebook API Key"] = "Facebook API Schlüssel";
$a->strings["Error: it appears that you have specified the App-ID and -Secret in your .htconfig.php file. As long as they are specified there, they cannot be set using this form.<br><br>"] = "Fehler: du scheinst die App-ID und das App-Geheimnis in deiner .htconfig.php Datei angegeben zu haben. Solange sie dort festgelegt werden kannst du dieses Formular hier nicht verwenden.<br><br>";
$a->strings["Error: the given API Key seems to be incorrect (the application access token could not be retrieved)."] = "Fehler: der angegebene API Schlüssel scheint nicht korrekt zu sein (Zugriffstoken konnte nicht empfangen werden).";
$a->strings["The given API Key seems to work correctly."] = "Der angegebene API Schlüssel scheint korrekt zu funktionieren.";
$a->strings["The given API Key seems to work correctly."] = "Der angegebene API Schlüssel scheint nicht korrekt zu funktionieren.";
$a->strings["The correctness of the API Key could not be detected. Somthing strange's going on."] = "Die Echtheit des API Schlüssels konnte nicht überprüft werden. Etwas Merkwürdiges ist hier im Gange.";
$a->strings["App-ID / API-Key"] = "App-ID / API-Key";
$a->strings["Application secret"] = "Anwendungs-Geheimnis";
@ -942,7 +959,6 @@ $a->strings["Facebook post failed. Queued for retry."] = "Veröffentlichung bei
$a->strings["Your Facebook connection became invalid. Please Re-authenticate."] = "Deine Facebook Anmeldedaten sind ungültig geworden. Bitte re-authentifiziere dich.";
$a->strings["Facebook connection became invalid"] = "Facebook Anmeldedaten sind ungültig geworden";
$a->strings["Hi %1\$s,\n\nThe connection between your accounts on %2\$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3\$sre-authenticate the Facebook-connector%4\$s."] = "Hi %1\$s,\n\ndie Verbindung von deinem Account auf %2\$s und Facebook funktioniert derzeit nicht. Dies ist im Allgemeinen das Ergebnis einer Passwortänderung bei Facebook. Um die Verbindung wieder zu aktivieren musst du %3\$sden Facebook-Connector neu Authentifizieren%4\$s.";
$a->strings["link"] = "Verweis";
$a->strings["%d person likes this"] = array(
0 => "%d Person mag das",
1 => "%d Leuten mögen das",
@ -975,6 +991,8 @@ $a->strings["Use /expression/ to provide regular expressions"] = "Verwende /expr
$a->strings["NSFW Settings saved."] = "NSFW-Einstellungen gespeichert";
$a->strings["%s - Click to open/close"] = "%s Zum Öffnen/Schließen klicken";
$a->strings["Forums"] = "Foren";
$a->strings["Planets Settings"] = "Planeten Einstellungen";
$a->strings["Enable Planets Plugin"] = "Aktiviere Planeten Plugin";
$a->strings["Login"] = "Anmeldung";
$a->strings["OpenID"] = "OpenID";
$a->strings["Latest users"] = "Letzte Benutzer";
@ -1035,8 +1053,15 @@ $a->strings["Site Owner"] = "Betreiber der Seite";
$a->strings["Email Address"] = "Email Adresse";
$a->strings["Postal Address"] = "Postalische Anschrift";
$a->strings["The impressum addon needs to be configured!<br />Please add at least the <tt>owner</tt> variable to your config file. For other variables please refer to the README file of the addon."] = "Das Impressums-Plugin muss noch konfiguriert werden.<br />Bitte gebe mindestens den <tt>Betreiber</tt> in der Konfiguration an. Alle weiteren Parameter werden in der README-Datei des Addons erläutert.";
$a->strings["The page operators name."] = "Name des Server-Administrators";
$a->strings["Site Owners Profile"] = "Profil des Seitenbetreibers";
$a->strings["Profile address of the operator."] = "Profil-Adresse des Server-Administrators";
$a->strings["How to contact the operator via snail mail."] = "Wie erreicht man den Betreiber der Seite postalisch.";
$a->strings["Notes"] = "Hinweise";
$a->strings["Additional notes that are displayed beneath the contact information."] = "Zusätzliche Angaben, die unterhalb der Kontakt-Informationen angezeigt werden.";
$a->strings["How to contact the operator via email. (will be displayed obfuscated)"] = "Wie erreichts man den Betreiber per Email. (Adresse wird verschleiert dargestellt)";
$a->strings["Footer note"] = "Fußnote";
$a->strings["Text for the footer."] = "Text für die Fußnote";
$a->strings["Report Bug"] = "Fehlerreport erstellen";
$a->strings["\"Blockem\" Settings"] = "\"Blockem\"-Einstellungen";
$a->strings["Comma separated profile URLS to block"] = "Profil-URLs, die blockiert werden sollen (durch Kommas getrennt)";
@ -1056,9 +1081,26 @@ $a->strings["Tile Server URL"] = "Tile Server URL";
$a->strings["A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">public tile servers</a>"] = "Eine Liste <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">öffentlicher Tile Server</a>";
$a->strings["Default zoom"] = "Standard Zoom";
$a->strings["The default zoom level. (1:world, 18:highest)"] = "Standard Zoomlevel (1: Welt; 18: höchstes)";
$a->strings["The MathJax addon renders mathematical formulae written using the LaTeX syntax surrounded by the usual $$ or an eqnarray block in the postings of your wall,network tab and private mail."] = "Mit dem MathJax Addon können mathematische Formeln, die mit LaTeX geschrieben wurden, dargestellt werden. Die Formel wird mit den üblichen $$ oder einem eqnarray Block gekennzeichnet. Formeln werden in allen Beiträgen auf deiner Pinnwand, dem Netzwerk-Stream sowie privaten Nachrichten gerendert.";
$a->strings["Use the MathJax renderer"] = "MathJax verwenden";
$a->strings["MathJax Base URL"] = "MathJax Basis-URL";
$a->strings["The URL for the javascript file that should be included to use MathJax. Can be either the MathJax CDN or another installation of MathJax."] = "Die URL der MathJax Javascript-Datei, die verwendet werden soll. Diese kann entweder aus der MathJax CDN oder einer anderen Quelle stammen.";
$a->strings["Editplain settings updated."] = "Editplain Einstellungen aktualisiert";
$a->strings["Editplain Settings"] = "Editplain Einstellungen";
$a->strings["Disable richtext status editor"] = "RichText Editor deaktivieren";
$a->strings["generic profile image"] = "";
$a->strings["random geometric pattern"] = "";
$a->strings["monster face"] = "";
$a->strings["computer generated face"] = "";
$a->strings["retro arcade style face"] = "";
$a->strings["Default avatar image"] = "Standard Profilbild ";
$a->strings["Select default avatar image if none was found at Gravatar. See README"] = "";
$a->strings["Rating of images"] = "";
$a->strings["Select the appropriate avatar rating for your site. See README"] = "";
$a->strings["Gravatar settings updated."] = "";
$a->strings["Your account on %s will expire in a few days."] = "Dein Konto auf %s wird in ein paar Tagen verfallen.";
$a->strings["Your Friendica test account is about to expire."] = "Dein Friendica Test Konto wird bald verfallen.";
$a->strings["Hi %1\$s,\n\nYour test account on %2\$s will expire in less than five days. We hope you enjoyed this test drive and use this opportunity to find a permanent Friendica website for your integrated social communications. A list of public sites is available at http://dir.friendica.com/siteinfo - and for more information on setting up your own Friendica server please see the Friendica project website at http://friendica.com."] = "";
$a->strings["\"pageheader\" Settings"] = "\"pageheader\"-Einstellungen";
$a->strings["pageheader Settings saved."] = "pageheader-Einstellungen gespeichert.";
$a->strings["Post to Insanejournal"] = "Auf InsaneJournal posten.";
@ -1141,8 +1183,19 @@ $a->strings["Send public postings to Twitter by default"] = "Veröffentliche öf
$a->strings["Send #tag links to Twitter"] = "#Tags nach Twitter senden";
$a->strings["Consumer key"] = "Consumer Key";
$a->strings["Consumer secret"] = "Consumer Secret";
$a->strings["IRC Settings"] = "IRC Einstellungen";
$a->strings["Channel(s) to auto connect (comma separated)"] = "";
$a->strings["Popular Channels (comma separated)"] = "";
$a->strings["IRC settings saved."] = "IRC Einstellungen gespeichert.";
$a->strings["IRC Chatroom"] = "IRC Chatraum";
$a->strings["Popular Channels"] = "Beliebte Räume";
$a->strings["Post to blogger"] = "";
$a->strings["Blogger Post Settings"] = "";
$a->strings["Enable Blogger Post Plugin"] = "";
$a->strings["Blogger username"] = "";
$a->strings["Blogger password"] = "";
$a->strings["Blogger API URL"] = "";
$a->strings["Post to Blogger by default"] = "";
$a->strings["Post to Posterous"] = "Nach Posterous senden";
$a->strings["Posterous Post Settings"] = "Posterous Beitrags-Einstellungen";
$a->strings["Enable Posterous Post Plugin"] = "Posterous-Plugin aktivieren";
@ -1161,7 +1214,7 @@ $a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere";
$a->strings["Connect Services"] = "Verbinde Dienste";
$a->strings["PostIt to Friendica"] = "Bei Friendica posten";
$a->strings["Post to Friendica"] = "Wenn du diesen Link";
$a->strings[" from anywhere by bookmarking this Link."] = "zu deinen Lesezeichen hinzufügst, kannst du von überallher Links bei Friendica veröffentlichen.";
$a->strings[" from anywhere by bookmarking this Link."] = " zu deinen Lesezeichen hinzufügst, kannst du von überallher Links bei Friendica veröffentlichen.";
$a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen";
$a->strings["Your profile page"] = "Deine Profilseite";
$a->strings["Your contacts"] = "Deine Kontakte";
@ -1171,6 +1224,9 @@ $a->strings["Your events"] = "Deine Ereignisse";
$a->strings["Personal notes"] = "Persönliche Notizen";
$a->strings["Your personal photos"] = "Deine privaten Fotos";
$a->strings["Theme settings"] = "Themen Einstellungen";
$a->strings["Set font-size for posts and comments"] = "";
$a->strings["Set line-height for posts and comments"] = "";
$a->strings["Set resolution for middle column"] = "";
$a->strings["Alignment"] = "Ausrichtung";
$a->strings["Left"] = "Links";
$a->strings["Center"] = "Mitte";
@ -1234,7 +1290,7 @@ $a->strings["No Preference"] = "Keine Vorlieben";
$a->strings["Bisexual"] = "Bisexuell";
$a->strings["Autosexual"] = "Autosexual";
$a->strings["Abstinent"] = "Abstinent";
$a->strings["Virgin"] = "Jungfrau";
$a->strings["Virgin"] = "Jungfrauen";
$a->strings["Deviant"] = "Deviant";
$a->strings["Fetish"] = "Fetish";
$a->strings["Oodles"] = "Oodles";
@ -1243,6 +1299,8 @@ $a->strings["Single"] = "Single";
$a->strings["Lonely"] = "Einsam";
$a->strings["Available"] = "Verfügbar";
$a->strings["Unavailable"] = "Nicht verfügbar";
$a->strings["Has crush"] = "";
$a->strings["Infatuated"] = "";
$a->strings["Dating"] = "Dating";
$a->strings["Unfaithful"] = "Untreu";
$a->strings["Sex Addict"] = "Sexbesessen";
@ -1251,18 +1309,21 @@ $a->strings["Friends/Benefits"] = "Freunde/Zuwendungen";
$a->strings["Casual"] = "Casual";
$a->strings["Engaged"] = "Verlobt";
$a->strings["Married"] = "Verheiratet";
$a->strings["Imaginarily married"] = "";
$a->strings["Partners"] = "Partner";
$a->strings["Cohabiting"] = "zusammenlebend";
$a->strings["Common law"] = "";
$a->strings["Happy"] = "Glücklich";
$a->strings["Not Looking"] = "Nicht auf der Suche";
$a->strings["Not looking"] = "Nicht auf der Suche";
$a->strings["Swinger"] = "Swinger";
$a->strings["Betrayed"] = "Betrogen";
$a->strings["Separated"] = "Getrennt";
$a->strings["Unstable"] = "Unstabil";
$a->strings["Divorced"] = "Geschieden";
$a->strings["Imaginarily divorced"] = "";
$a->strings["Widowed"] = "Verwitwet";
$a->strings["Uncertain"] = "Unsicher";
$a->strings["Complicated"] = "Kompliziert";
$a->strings["It's complicated"] = "Ist kompliziert";
$a->strings["Don't care"] = "Ist mir nicht wichtig";
$a->strings["Ask me"] = "Frag mich";
$a->strings["Starts:"] = "Beginnt:";
@ -1304,8 +1365,8 @@ $a->strings["remove"] = "löschen";
$a->strings["[remove]"] = "[löschen]";
$a->strings["Filed under:"] = "Abgelegt unter:";
$a->strings["Click to open/close"] = "Zum öffnen/schließen klicken";
$a->strings["Select an alternate language"] = "Alternative Sprache auswählen";
$a->strings["default"] = "standard";
$a->strings["Select an alternate language"] = "Alternative Sprache auswählen";
$a->strings["activity"] = "Aktivität";
$a->strings["comment"] = "Kommentar";
$a->strings["post"] = "Beitrag";
@ -1322,6 +1383,7 @@ $a->strings["edit"] = "bearbeiten";
$a->strings["Groups"] = "Gruppen";
$a->strings["Edit group"] = "Gruppe bearbeiten";
$a->strings["Create a new group"] = "Neue Gruppe erstellen";
$a->strings["Contacts not in any group"] = "";
$a->strings["Logout"] = "Abmelden";
$a->strings["End this session"] = "Diese Sitzung beenden";
$a->strings["Status"] = "Status";
@ -1361,6 +1423,7 @@ $a->strings["Find People"] = "Leute finden";
$a->strings["Enter name or interest"] = "Name oder Interessen eingeben";
$a->strings["Connect/Follow"] = "Verbinden/Folgen";
$a->strings["Examples: Robert Morgenstein, Fishing"] = "Beispiel: Robert Morgenstein, Angeln";
$a->strings["Random Profile"] = "Zufälliges Profil";
$a->strings["Networks"] = "Netzwerke";
$a->strings["All Networks"] = "Alle Netzwerke";
$a->strings["Saved Folders"] = "Gespeicherte Ordner";
@ -1438,14 +1501,16 @@ $a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte bes
$a->strings["A new person is sharing with you at "] = "Eine neue Person teilt mit dir auf ";
$a->strings["You have a new follower at "] = "Du hast einen neuen Kontakt auf ";
$a->strings["image/photo"] = "Bild/Foto";
$a->strings["link"] = "Verweis";
$a->strings["Welcome "] = "Willkommen ";
$a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch.";
$a->strings["Welcome back "] = "Willkommen zurück ";
$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before subitting it."] = "Der Formular-Sicherheits-Token war nicht korrekt. Der Grund ist wahrscheinlich, dass das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde.";
$a->strings["View status"] = "Status anzeigen";
$a->strings["View profile"] = "Profil anzeigen";
$a->strings["View photos"] = "Fotos ansehen";
$a->strings["View recent"] = "Neueste anzeigen";
$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "";
$a->strings["View Status"] = "Pinnwand anschauen";
$a->strings["View Profile"] = "Profil anschauen";
$a->strings["View Photos"] = "Bilder anschauen";
$a->strings["Network Posts"] = "Netzwerk Beiträge";
$a->strings["Edit Contact"] = "Kontakt bearbeiten";
$a->strings["Send PM"] = "Private Nachricht senden";
$a->strings["post/item"] = "Nachricht/Beitrag";
$a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = "%1\$s hat %2\$s\\s %3\$s als Favorit markiert";
@ -1503,7 +1568,7 @@ $a->strings["Or login using OpenID: "] = "Oder melde dich mit deiner OpenID an:
$a->strings["Forgot your password?"] = "Passwort vergessen?";
$a->strings["Edit profile"] = "Profil bearbeiten";
$a->strings["Message"] = "Nachricht";
$a->strings["g A l F d"] = "l. d, F G \\U\\h\\\\r";
$a->strings["g A l F d"] = "l, d. F G \\U\\h\\r";
$a->strings["F d"] = "d. F";
$a->strings["Birthday Reminders"] = "Geburtstagserinnerungen";
$a->strings["Birthdays this week:"] = "Geburtstage diese Woche:";
@ -1511,4 +1576,3 @@ $a->strings["[today]"] = "[heute]";
$a->strings["Event Reminders"] = "Veranstaltungserinnerungen";
$a->strings["Events this week:"] = "Veranstaltungen diese Woche";
$a->strings["[No description]"] = "[keine Beschreibung]";
$a->strings['Update Error at %s'] = 'Fehler beim Updaten von %s';

View File

@ -7,7 +7,7 @@ $page_desc<br />
<li><a href="http://friendica.com" title="$friendica">$friendica</a></li>
<li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li>
<li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li>
<li>$emailnet</li>
{{ if $emailnet }}<li>$emailnet</li>{{ endif }}
</ul>
$invite_desc
</p>

View File

@ -1,14 +1,14 @@
Dear $myname,
Dear $[myname],
You have a new follower at $sitename - '$requestor'.
You have a new follower at $[sitename] - '$[requestor]'.
You may visit their profile at $url.
You may visit their profile at $[url].
Please login to your site to approve or ignore/cancel the request.
$siteurl
$[siteurl]
Regards,
$sitename administrator
$[sitename] administrator

View File

@ -1,22 +1,22 @@
Dear $username,
Dear $[username],
Great news... '$fn' at '$dfrn_url' has accepted
your connection request at '$sitename'.
Great news... '$[fn]' at '$[dfrn_url]' has accepted
your connection request at '$[sitename]'.
You are now mutual friends and may exchange status updates, photos, and email
without restriction.
Please visit your 'Contacts' page at $sitename if you wish to make
Please visit your 'Contacts' page at $[sitename] if you wish to make
any changes to this relationship.
$siteurl
$[siteurl]
[For instance, you may create a separate profile with information that is not
available to the general public - and assign viewing rights to '$fn'].
available to the general public - and assign viewing rights to '$[fn]'].
Sincerely,
$sitename Administrator
$[sitename] Administrator

View File

@ -1,22 +1,22 @@
Dear $username,
Dear $[username],
'$fn' at '$dfrn_url' has accepted
your connection request at '$sitename'.
'$[fn]' at '$[dfrn_url]' has accepted
your connection request at '$[sitename]'.
'$fn' has chosen to accept you a "fan", which restricts
'$[fn]' has chosen to accept you a "fan", which restricts
some forms of communication - such as private messaging and some profile
interactions. If this is a celebrity or community page, these settings were
applied automatically.
'$fn' may choose to extend this into a two-way or more permissive
'$[fn]' may choose to extend this into a two-way or more permissive
relationship in the future.
You will start receiving public status updates from '$fn',
You will start receiving public status updates from '$[fn]',
which will appear on your 'Network' page at
$siteurl
$[siteurl]
Sincerely,
$sitename Administrator
$[sitename] Administrator

View File

@ -1,6 +1,6 @@
Dear $username,
A request was recently received at $sitename to reset your account
Dear $[username],
A request was recently received at $[sitename] to reset your account
password. In order to confirm this request, please select the verification link
below or paste it into your web browser address bar.
@ -12,7 +12,7 @@ issued this request.
Follow this link to verify your identity:
$reset_link
$[reset_link]
You will then receive a follow-up message containing the new password.
@ -20,13 +20,13 @@ You may change that password from your account settings page after logging in.
The login details are as follows:
Site Location: $siteurl
Login Name: $email
Site Location: $[siteurl]
Login Name: $[email]
Sincerely,
$sitename Administrator
$[sitename] Administrator

View File

@ -1,5 +1,5 @@
Dear $username,
Dear $[username],
Your password has been changed as requested. Please retain this
information for your records (or change your password immediately to
something that you will remember).
@ -7,14 +7,14 @@ something that you will remember).
Your login details are as follows:
Site Location: $siteurl
Login Name: $email
Password: $new_password
Site Location: $[siteurl]
Login Name: $[email]
Password: $[new_password]
You may change that password from your account settings page after logging in.
Sincerely,
$sitename Administrator
$[sitename] Administrator

View File

@ -1,12 +1,12 @@
Dear $username,
Thank you for registering at $sitename. Your account has been created.
Dear $[username],
Thank you for registering at $[sitename]. Your account has been created.
The login details are as follows:
Site Location: $siteurl
Login Name: $email
Password: $password
Site Location: $[siteurl]
Login Name: $[email]
Password: $[password]
You may change your password from your account "Settings" page after logging
in.
@ -26,9 +26,9 @@ If you are new and do not know anybody here, they may help
you to make some new and interesting friends.
Thank you and welcome to $sitename.
Thank you and welcome to $[sitename].
Sincerely,
$sitename Administrator
$[sitename] Administrator

View File

@ -1,25 +1,25 @@
A new user registration request was received at $sitename which requires
A new user registration request was received at $[sitename] which requires
your approval.
The login details are as follows:
Full Name: $username
Site Location: $siteurl
Login Name: $email
Full Name: $[username]
Site Location: $[siteurl]
Login Name: $[email]
To approve this request please visit the following link:
$siteurl/regmod/allow/$hash
$[siteurl]/regmod/allow/$[hash]
To deny the request and remove the account, please visit:
$siteurl/regmod/deny/$hash
$[siteurl]/regmod/deny/$[hash]
Thank you.

View File

@ -1,17 +1,17 @@
Dear $myname,
Dear $[myname],
You have just received a connection request at $sitename
You have just received a connection request at $[sitename]
from '$requestor'.
from '$[requestor]'.
You may visit their profile at $url.
You may visit their profile at $[url].
Please login to your site to view the complete introduction
and approve or ignore/cancel the request.
$siteurl
$[siteurl]
Regards,
$sitename administrator
$[sitename] administrator

6954
view/eo/messages.po Normal file

File diff suppressed because it is too large Load Diff

1578
view/eo/strings.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -3136,7 +3136,7 @@ msgstr "Cuentas abandonadas después de x días"
#: ../../mod/admin.php:313
msgid ""
"Will not waste system resources polling external sites for abandonded "
"Will not waste system resources polling external sites for abandoned "
"accounts. Enter 0 for no time limit."
msgstr ""
"No gastará recursos del sistema creando encuestas desde sitios externos para"

View File

@ -674,7 +674,7 @@ $a->strings["Maximum image size"] = "Tamaño máximo de la imagen";
$a->strings["Register policy"] = "Política de registros";
$a->strings["Register text"] = "Términos";
$a->strings["Accounts abandoned after x days"] = "Cuentas abandonadas después de x días";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "No gastará recursos del sistema creando encuestas desde sitios externos para cuentas abandonadas. Introduzca 0 para ningún límite temporal.";
$a->strings["Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."] = "No gastará recursos del sistema creando encuestas desde sitios externos para cuentas abandonadas. Introduzca 0 para ningún límite temporal.";
$a->strings["Allowed friend domains"] = "Dominios amigos permitidos";
$a->strings["Allowed email domains"] = "Dominios de correo permitidos";
$a->strings["Block public"] = "Bloqueo público";

84
view/filebrowser.tpl Normal file
View File

@ -0,0 +1,84 @@
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_popup.js"></script>
<style>
.panel_wrapper div.current{.overflow: auto; height: auto!important; }
.filebrowser.path { font-family: fixed; font-size: 10px; background-color: #f0f0ee; height:auto; overflow:auto;}
.filebrowser.path a { border-left: 1px solid #C0C0AA; background-color: #E0E0DD; display: block; float:left; padding: 0.3em 1em;}
.filebrowser ul{ list-style-type: none; padding:0px; }
.filebrowser.folders a { display: block; padding: 0.3em }
.filebrowser.folders a:hover { background-color: #f0f0ee; }
.filebrowser.files.image { overflow: auto; height: auto; }
.filebrowser.files.image img { height:50px;}
.filebrowser.files.image li { display: block; padding: 5px; float: left; }
.filebrowser.files.image span { display: none;}
.filebrowser.files.file img { height:16px; vertical-align: bottom;}
.filebrowser.files a { display: block; padding: 0.3em}
.filebrowser.files a:hover { background-color: #f0f0ee; }
.filebrowser a { text-decoration: none; }
</style>
<script>
var FileBrowserDialogue = {
init : function () {
// Here goes your code for setting your custom things onLoad.
},
mySubmit : function (URL) {
//var URL = document.my_form.my_field.value;
var win = tinyMCEPopup.getWindowArg("window");
// insert information now
win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = URL;
// are we an image browser
if (typeof(win.ImageDialog) != "undefined") {
// we are, so update image dimensions...
if (win.ImageDialog.getImageData)
win.ImageDialog.getImageData();
// ... and preview if necessary
if (win.ImageDialog.showPreviewImage)
win.ImageDialog.showPreviewImage(URL);
}
// close popup window
tinyMCEPopup.close();
}
}
tinyMCEPopup.onInit.add(FileBrowserDialogue.init, FileBrowserDialogue);
</script>
</head>
<body>
<div class="tabs">
<ul >
<li class="current"><span>FileBrowser</span></li>
</ul>
</div>
<div class="panel_wrapper">
<div id="general_panel" class="panel current">
<div class="filebrowser path">
{{ for $path as $p }}<a href="$p.0">$p.1</a>{{ endfor }}
</div>
<div class="filebrowser folders">
<ul>
{{ for $folders as $f }}<li><a href="$f.0/">$f.1</a></li>{{ endfor }}
</ul>
</div>
<div class="filebrowser files $type">
<ul>
{{ for $files as $f }}
<li><a href="#" onclick="FileBrowserDialogue.mySubmit('$f.0'); return false;"><img src="$f.2"><span>$f.1</span></a></li>
{{ endfor }}
</ul>
</div>
</div>
</div>
<div class="mceActionPanel">
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
</div>
</body>
</html>

View File

@ -3111,7 +3111,7 @@ msgstr "Les comptes sont abandonnés après x jours"
#: ../../mod/admin.php:313
msgid ""
"Will not waste system resources polling external sites for abandonded "
"Will not waste system resources polling external sites for abandoned "
"accounts. Enter 0 for no time limit."
msgstr ""
"Pour ne pas gaspiller les ressources système, on cesse d'interroger les "

View File

@ -674,7 +674,7 @@ $a->strings["Maximum image size"] = "Taille maximale des images";
$a->strings["Register policy"] = "Politique d'inscription";
$a->strings["Register text"] = "Texte d'inscription";
$a->strings["Accounts abandoned after x days"] = "Les comptes sont abandonnés après x jours";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction.";
$a->strings["Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."] = "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction.";
$a->strings["Allowed friend domains"] = "Domaines autorisés";
$a->strings["Allowed email domains"] = "Domaines courriel autorisés";
$a->strings["Block public"] = "Interdire la publication globale";

View File

@ -3104,7 +3104,7 @@ msgstr "Account abbandonati dopo x giorni"
#: ../../mod/admin.php:313
msgid ""
"Will not waste system resources polling external sites for abandonded "
"Will not waste system resources polling external sites for abandoned "
"accounts. Enter 0 for no time limit."
msgstr ""
"Non spreca risorse di sistema controllando siti esterni per gli account "

View File

@ -674,7 +674,7 @@ $a->strings["Maximum image size"] = "Massima dimensione immagini";
$a->strings["Register policy"] = "Politica di registrazione";
$a->strings["Register text"] = "Testo registrazione";
$a->strings["Accounts abandoned after x days"] = "Account abbandonati dopo x giorni";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Non spreca risorse di sistema controllando siti esterni per gli account abbandonati. Immettere 0 per nessun limite di tempo.";
$a->strings["Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."] = "Non spreca risorse di sistema controllando siti esterni per gli account abbandonati. Immettere 0 per nessun limite di tempo.";
$a->strings["Allowed friend domains"] = "Domini amici consentiti";
$a->strings["Allowed email domains"] = "Domini email consentiti";
$a->strings["Block public"] = "Blocca pagine pubbliche";

View File

@ -26,7 +26,7 @@ function initEditor(cb){
mode : "specific_textareas",
editor_selector: $editselect,
auto_focus: "profile-jot-text",
plugins : "bbcode,paste,autoresize",
plugins : "bbcode,paste,autoresize, inlinepopups",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
@ -44,6 +44,7 @@ function initEditor(cb){
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
theme_advanced_path : false,
file_browser_callback : "fcFileBrowser",
setup : function(ed) {
cPopup = null;
ed.onKeyDown.add(function(ed,e) {

View File

@ -0,0 +1,89 @@
<script>
function confirm_delete(uname){
return confirm( "$confirm_delete".format(uname));
}
function confirm_delete_multi(){
return confirm("$confirm_delete_multi");
}
function selectall(cls){
$("."+cls).attr('checked','checked');
return false;
}
</script>
<div id='adminpage'>
<h1>$title - $page</h1>
<form action="$baseurl/admin/users" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'>
<h3>$h_pending</h3>
{{ if $pending }}
<table id='pending'>
<thead>
<tr>
{{ for $th_pending as $th }}<th>$th</th>{{ endfor }}
<th></th>
<th></th>
</tr>
</thead>
<tbody>
{{ for $pending as $u }}
<tr>
<td class="created">$u.created</td>
<td class="name">$u.name</td>
<td class="email">$u.email</td>
<td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_$u.hash" name="pending[]" value="$u.hash" /></td>
<td class="tools">
<a href="$baseurl/regmod/allow/$u.hash" title='$approve'><span class='icon like'></span></a>
<a href="$baseurl/regmod/deny/$u.hash" title='$deny'><span class='icon dislike'></span></a>
</td>
</tr>
{{ endfor }}
</tbody>
</table>
<div class='selectall'><a href='#' onclick="return selectall('pending_ckbx');">$select_all</a></div>
<div class="submit"><input type="submit" name="page_users_deny" value="$deny"/> <input type="submit" name="page_users_approve" value="$approve" /></div>
{{ else }}
<p>$no_pending</p>
{{ endif }}
<h3>$h_users</h3>
{{ if $users }}
<table id='users'>
<thead>
<tr>
<th></th>
{{ for $th_users as $th }}<th>$th</th>{{ endfor }}
<th></th>
<th></th>
</tr>
</thead>
<tbody>
{{ for $users as $u }}
<tr>
<td><img src="$u.micro" alt="$u.nickname" title="$u.nickname"></td>
<td class='name'><a href="$u.url" title="$u.nickname" >$u.name</a></td>
<td class='email'>$u.email</td>
<td class='register_date'>$u.register_date</td>
<td class='login_date'>$u.login_date</td>
<td class='lastitem_date'>$u.lastitem_date</td>
<td class='login_date'>$u.page-flags</td>
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_$u.uid" name="user[]" value="$u.uid"/></td>
<td class="tools" style="width:60px;">
<a href="$baseurl/admin/users/block/$u.uid?t=$form_security_token" title='{{ if $u.blocked }}$unblock{{ else }}$block{{ endif }}'><span class='icon block {{ if $u.blocked==0 }}dim{{ endif }}'></span></a>
<a href="$baseurl/admin/users/delete/$u.uid?t=$form_security_token" title='$delete' onclick="return confirm_delete('$u.name')"><span class='icon ad_drop'></span></a>
</td>
</tr>
{{ endfor }}
</tbody>
</table>
<div class='selectall'><a href='#' onclick="return selectall('users_ckbx');">$select_all</a></div>
<div class="submit"><input type="submit" name="page_users_block" value="$block/$unblock" /> <input type="submit" name="page_users_delete" value="$delete" onclick="return confirm_delete_multi()" /></div>
{{ else }}
NO USERS?!?
{{ endif }}
</form>
</div>

View File

@ -0,0 +1,10 @@
<div class="directory-item" id="directory-item-$id" >
<div class="directory-photo-wrapper" id="directory-photo-wrapper-$id" >
<div class="directory-photo" id="directory-photo-$id" >
<a href="$profile-link" class="directory-profile-link" id="directory-profile-link-$id" >
<img class="directory-photo-img" src="$photo" alt="$alt-text" title="$alt-text" />
</a>
</div>
</div>
</div>

View File

@ -11,14 +11,14 @@
<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
</div>
<div class="comment-edit-photo-end"></div>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-image" onclick="insertFormatting('$comment','img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('$comment','url',$id);">url</a>
<a class="icon bb-video" onclick="insertFormatting('$comment','video',$id);">video</a>
<a class="icon underline" onclick="insertFormatting('$comment','u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('$comment','i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('$comment','b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('$comment','quote',$id);">quote</a>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);tautogrow($id)" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-image" style="cursor: pointer;" onclick="insertFormatting('$comment','img',$id);">img</a>
<a class="icon bb-url" style="cursor: pointer;" onclick="insertFormatting('$comment','url',$id);">url</a>
<a class="icon bb-video" style="cursor: pointer;" onclick="insertFormatting('$comment','video',$id);">video</a>
<a class="icon underline" style="cursor: pointer;" onclick="insertFormatting('$comment','u',$id);">u</a>
<a class="icon italic" style="cursor: pointer;" onclick="insertFormatting('$comment','i',$id);">i</a>
<a class="icon bold" style="cursor: pointer;" onclick="insertFormatting('$comment','b',$id);">b</a>
<a class="icon quote" style="cursor: pointer;" onclick="insertFormatting('$comment','quote',$id);">quote</a>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>

7
view/theme/diabook-aerith/communityhome.tpl Executable file → Normal file
View File

@ -42,13 +42,6 @@ $nv.search
{{ endif }}
</div>
<div id="close_postit">
{{ if $lastusers_title }}
<h3>$postit.title.1<a id="close_postit_icon" onClick="close_postit()" class="icon close_box" title="close"></a></h3>
<div style="padding-left: 10px;font-size: 12px;"><span ><a href="$fostitJS" title="PostIt">$postit.title.2</a>$postit.text.1</span></div>
{{ endif }}
</div>
<div id="close_lastusers">
{{ if $lastusers_title }}
<h3>$lastusers_title<a id="close_lastusers_icon" onClick="close_lastusers()" class="icon close_box" title="close"></a></h3>

View File

@ -11,8 +11,9 @@ function theme_content(&$a){
$font_size = get_pconfig(local_user(), 'diabook-aerith', 'font_size' );
$line_height = get_pconfig(local_user(), 'diabook-aerith', 'line_height' );
$resolution = get_pconfig(local_user(), 'diabook-aerith', 'resolution' );
return diabook_form($a,$font_size, $line_height);
return diabook_form($a,$font_size, $line_height,$resolution);
}
function theme_post(&$a){
@ -22,6 +23,7 @@ function theme_post(&$a){
if (isset($_POST['diabook-aerith-settings-submit'])){
set_pconfig(local_user(), 'diabook-aerith', 'font_size', $_POST['diabook-aerith_font_size']);
set_pconfig(local_user(), 'diabook-aerith', 'line_height', $_POST['diabook-aerith_line_height']);
set_pconfig(local_user(), 'diabook-aerith', 'resolution', $_POST['diabook-aerith_resolution']);
}
}
@ -29,33 +31,43 @@ function theme_post(&$a){
function theme_admin(&$a){
$font_size = get_config('diabook-aerith', 'font_size' );
$line_height = get_config('diabook-aerith', 'line_height' );
$resolution = get_config('diabook-aerith', 'resolution' );
return diabook_form($a,$font_size, $line_height);
return diabook_form($a,$font_size, $line_height,$resolution);
}
function theme_admin_post(&$a){
if (isset($_POST['diabook-aerith-settings-submit'])){
set_config('diabook-aerith', 'font_size', $_POST['diabook-aerith_font_size']);
set_config('diabook-aerith', 'line_height', $_POST['diabook-aerith_line_height']);
set_config('diabook-aerith', 'resolution', $_POST['diabook-aerith_resolution']);
}
}
function diabook_form(&$a, $font_size, $line_height){
function diabook_form(&$a, $font_size, $line_height, $resolution){
$line_heights = array(
"1.4"=>"1.4",
"1.3"=>"1.3",
"---"=>"---",
"1.5"=>"1.5",
"1.4"=>"1.4",
"1.2"=>"1.2",
"1.1"=>"1.1",
);
$font_sizes = array(
'13'=>'13',
"---"=>"---",
"15"=>"15",
'14'=>'14',
'13.5'=>'13.5',
'13'=>'13',
'12.5'=>'12.5',
'12'=>'12',
);
$resolutions = array(
'normal'=>'normal',
'wide'=>'wide',
);
@ -66,6 +78,7 @@ function diabook_form(&$a, $font_size, $line_height){
'$title' => t("Theme settings"),
'$font_size' => array('diabook-aerith_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes),
'$line_height' => array('diabook-aerith_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights),
'$resolution' => array('diabook-aerith_resolution', t('Set resolution for middle column'), $resolution, '', $resolutions),
));
return $o;
}

0
view/theme/diabook-aerith/contact_template.tpl Executable file → Normal file
View File

View File

@ -7,4 +7,5 @@
</a>
</div>
</div>
<div class="contact-name" id="directory-name-$id">$name</div>
</div>

View File

@ -1,8 +0,0 @@
fpostit
original author: Devlon Duthied
see his blog posting:
http://blog.duthied.com/2011/09/13/node-agnostic-friendika-bookmarklet/
original published at github https://github.com/duthied/Friendika-Bookmarklet

View File

@ -1,6 +0,0 @@
javascript: (function() {
the_url = 'localhost/view/theme/diabook/fpostit/fpostit.php?url=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text));
a_funct = function() {
if (!window.open(the_url, 'fpostit', 'location=yes,links=no,scrollbars=no,toolbar=no,width=600,height=300')) location.href = the_url};
if (/Firefox/.test(navigator.userAgent)) {setTimeout(a_funct, 0)}
else {a_funct()}})()"

View File

@ -1,135 +0,0 @@
<?php
if (!isset($_POST["friendika_acct_name"])) $_POST["friendika_acct_name"] = '';
if (!isset($_COOKIE['username'])) $_COOKIE['username'] = '';
if (!isset($_COOKIE['password'])) $_COOKIE['password'] = '';
if (!isset($hostname)) $hostname = '';
if (!isset($username)) $username = '';
if (($_POST["friendika_acct_name"] != '') && ($_POST["friendika_password"] != '')) {
setcookie("username", $_POST["friendika_acct_name"], time()+60*60*24*300);
setcookie("password", $_POST["friendika_password"], time()+60*60*24*300);
}
?>
<html>
<head>
<style>
body {
font-family: arial, Helvetica,sans-serif;
margin: 0px;
}
.wrap1 {
padding: 2px 5px;
background-color: #000;
margin-bottom: 10px;
}
.wrap2 {
margin-left: 10px;
font-size: 12px;
}
.logo {
margin-left: 3px;
margin-right: 5px;
float: left;
}
h2 {
color: #ffffff;
}
.error {
background-color: #FFFF66;
font-size: 12px;
margin-left: 10px;
}
</style>
</head>
<body>
<?php
if (isset($_GET['title'])) {
$title = $_GET['title'];
}
if (isset($_GET['text'])) {
$text = $_GET['text'];
}
if (isset($_GET['url'])) {
$url = $_GET['url'];
}
if ((isset($title)) && (isset($text)) && (isset($url))) {
$content = "$title\nsource:$url\n\n$text";
} else {
$content = $_POST['content'];
}
if (isset($_POST['submit'])) {
if (($_POST["friendika_acct_name"] != '') && ($_POST["friendika_password"] != '')) {
$acctname = $_POST["friendika_acct_name"];
$tmp_account_array = explode("@", $acctname);
if (isset($tmp_account_array[1])) {
$username = $tmp_account_array[0];
$hostname = $tmp_account_array[1];
}
$password = $_POST["friendika_password"];
$content = $_POST["content"];
$url = "http://" . $hostname . '/api/statuses/update';
$data = array('status' => $content);
// echo "posting to: $url<br/>";
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_USERPWD, "$username:$password");
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
$c_result = curl_exec($c);
if(curl_errno($c)){
$error = curl_error($c);
showForm($error, $content);
}
curl_close($c);
if (!isset($error)) {
echo '<script language="javascript" type="text/javascript">window.close();</script>';
}
} else {
$error = "Missing account name and/or password...try again please";
showForm($error, $content);
}
} else {
showForm(null, $content);
}
function showForm($error, $content) {
$username_cookie = $_COOKIE['username'];
$password_cookie = $_COOKIE['password'];
echo <<<EOF
<div class='wrap1'>
<h2><img class='logo' src='friendika-32.png' align='middle';/>
Friendica Bookmarklet</h2>
</div>
<div class="wrap2">
<form method="post" action="{$_SERVER['PHP_SELF']}">
Enter the email address of the Friendica Account that you want to cross-post to:(example: user@friendica.org)<br /><br />
Account ID: <input type="text" name="friendika_acct_name" value="{$username_cookie}" size="50"/><br />
Password: <input type="password" name="friendika_password" value="{$password_cookie}" size="50"/><br />
<textarea name="content" id="content" rows="6" cols="70">{$content}</textarea><br />
<input type="submit" value="PostIt!" name="submit" />&nbsp;&nbsp;<span class='error'>$error</span>
</form>
<p></p>
</div>
EOF;
}
?>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -25,5 +25,10 @@
{{ endfor }}
</ul>
</div>
{{ if $ungrouped }}
<div id="sidebar-ungrouped">
<a href="nogroup">$ungrouped</a>
</div>
{{ endif }}
</div>

0
view/theme/diabook-aerith/icons/attach.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
view/theme/diabook-aerith/icons/audio.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

0
view/theme/diabook-aerith/icons/camera.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 685 B

0
view/theme/diabook-aerith/icons/close_box.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 206 B

0
view/theme/diabook-aerith/icons/drop.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 292 B

After

Width:  |  Height:  |  Size: 292 B

0
view/theme/diabook-aerith/icons/file_as.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 352 B

0
view/theme/diabook-aerith/icons/link.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 365 B

After

Width:  |  Height:  |  Size: 365 B

0
view/theme/diabook-aerith/icons/lock.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 366 B

0
view/theme/diabook-aerith/icons/lupe.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 697 B

0
view/theme/diabook-aerith/icons/messages.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 901 B

After

Width:  |  Height:  |  Size: 901 B

0
view/theme/diabook-aerith/icons/messages2.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 579 B

0
view/theme/diabook-aerith/icons/messages3.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 579 B

0
view/theme/diabook-aerith/icons/next.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 300 B

After

Width:  |  Height:  |  Size: 300 B

0
view/theme/diabook-aerith/icons/notifications.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
view/theme/diabook-aerith/icons/notifications3.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 754 B

0
view/theme/diabook-aerith/icons/notify.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
view/theme/diabook-aerith/icons/notify2.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 795 B

0
view/theme/diabook-aerith/icons/notify3.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 795 B

0
view/theme/diabook-aerith/icons/pencil.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 286 B

0
view/theme/diabook-aerith/icons/photo-menu.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 459 B

0
view/theme/diabook-aerith/icons/prev.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 336 B

0
view/theme/diabook-aerith/icons/recycle.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

0
view/theme/diabook-aerith/icons/remote.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 427 B

0
view/theme/diabook-aerith/icons/scroll_top.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

0
view/theme/diabook-aerith/icons/star.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 388 B

After

Width:  |  Height:  |  Size: 388 B

0
view/theme/diabook-aerith/icons/starred.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 501 B

After

Width:  |  Height:  |  Size: 501 B

0
view/theme/diabook-aerith/icons/tagged.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 353 B

0
view/theme/diabook-aerith/icons/unlock.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 362 B

0
view/theme/diabook-aerith/icons/unstarred.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 468 B

After

Width:  |  Height:  |  Size: 468 B

0
view/theme/diabook-aerith/icons/video.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 472 B

After

Width:  |  Height:  |  Size: 472 B

0
view/theme/diabook-aerith/icons/weblink.png Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 505 B

1
view/theme/diabook-aerith/jot.tpl Executable file → Normal file
View File

@ -14,6 +14,7 @@
<input type="hidden" name="post_id" value="$post_id" />
<input type="hidden" name="preview" id="jot-preview" value="0" />
<input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" value="$title" class="jothidden" style="display:none">
<div id="jot-category-wrap"><input name="category" id="jot-category" type="text" placeholder="$placeholdercategory" value="$category" class="jothidden" style="display:none" /></div>
<div id="character-counter" class="grey"></div>
<img id="profile-jot-text-loading" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
<textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body" >{{ if $content }}$content{{ else }}$share{{ endif }}</textarea>

View File

@ -0,0 +1,46 @@
(function($) {
/*
* Auto-growing textareas; technique ripped from Facebook
*/
$.fn.autogrow = function(options) {
this.filter('textarea').each(function() {
var $this = $(this),
minHeight = $this.height(),
lineHeight = $this.css('lineHeight');
var shadow = $('<div></div>').css({
position: 'absolute',
top: -10000,
left: -10000,
width: $(this).width(),
fontSize: $this.css('fontSize'),
fontFamily: $this.css('fontFamily'),
lineHeight: $this.css('lineHeight'),
resize: 'none'
}).appendTo(document.body);
var update = function() {
var val = this.value.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/&/g, '&amp;')
.replace(/\n/g, '<br/>');
shadow.html(val);
$(this).css('height', Math.max(shadow.height() + 20, minHeight));
}
$(this).change(update).keyup(update).keydown(update);
update.apply(this);
});
return this;
}
})(jQuery);

Some files were not shown because too many files have changed in this diff Show More