Merge remote branch 'upstream/master'

This commit is contained in:
zottel 2012-04-15 14:11:11 +02:00
commit a2c4ce7487
349 changed files with 7511 additions and 6712 deletions

1809
boot.php
View file

@ -9,9 +9,9 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1306' );
define ( 'FRIENDICA_VERSION', '2.3.1311' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1137 );
define ( 'DB_UPDATE_VERSION', 1138 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@ -20,14 +20,14 @@ define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
/**
*
* Image storage quality. Lower numbers save space at cost of image detail.
* For ease of upgrade, please do not change here. Change jpeg quality with
* $a->config['system']['jpeg_quality'] = n;
* in .htconfig.php, where n is netween 1 and 100, and with very poor results
* below about 50
* For ease of upgrade, please do not change here. Change jpeg quality with
* $a->config['system']['jpeg_quality'] = n;
* in .htconfig.php, where n is netween 1 and 100, and with very poor results
* below about 50
*
*/
define ( 'JPEG_QUALITY', 100 );
define ( 'JPEG_QUALITY', 100 );
/**
* SSL redirection policies
@ -68,7 +68,7 @@ define ( 'CONTACT_IS_FRIEND', 3);
/**
* Hook array order
*/
define ( 'HOOK_HOOK', 0);
define ( 'HOOK_FILE', 1);
define ( 'HOOK_FUNCTION', 2);
@ -79,9 +79,9 @@ define ( 'HOOK_FUNCTION', 2);
*
* PAGE_NORMAL is a typical personal profile account
* PAGE_SOAPBOX automatically approves all friend requests as CONTACT_IS_SHARING, (readonly)
* PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with
* PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with
* write access to wall and comments (no email and not included in page owner's ACL lists)
* PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND).
* PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND).
*
*/
@ -93,7 +93,7 @@ define ( 'PAGE_BLOG', 4 );
define ( 'PAGE_PRVGROUP', 5 );
/**
* Network and protocol family types
* Network and protocol family types
*/
define ( 'NETWORK_DFRN', 'dfrn'); // Friendica, Mistpark, other DFRN implementations
@ -103,13 +103,13 @@ define ( 'NETWORK_FEED', 'feed'); // RSS/Atom feeds with no known
define ( 'NETWORK_DIASPORA', 'dspr'); // Diaspora
define ( 'NETWORK_MAIL', 'mail'); // IMAP/POP
define ( 'NETWORK_MAIL2', 'mai2'); // extended IMAP/POP
define ( 'NETWORK_FACEBOOK', 'face'); // Facebook API
define ( 'NETWORK_FACEBOOK', 'face'); // Facebook API
define ( 'NETWORK_LINKEDIN', 'lnkd'); // LinkedIn
define ( 'NETWORK_XMPP', 'xmpp'); // XMPP
define ( 'NETWORK_XMPP', 'xmpp'); // XMPP
define ( 'NETWORK_MYSPACE', 'mysp'); // MySpace
define ( 'NETWORK_GPLUS', 'goog'); // Google+
/*
/**
* These numbers are used in stored permissions
* and existing allocations MUST NEVER BE CHANGED
* OR RE-ASSIGNED! You may only add to them.
@ -166,7 +166,7 @@ define ( 'NOTIFY_SYSTEM', 0x8000 );
*/
define ( 'NAMESPACE_ZOT', 'http://purl.org/macgirvin/zot' );
define ( 'NAMESPACE_DFRN' , 'http://purl.org/macgirvin/dfrn/1.0' );
define ( 'NAMESPACE_DFRN' , 'http://purl.org/macgirvin/dfrn/1.0' );
define ( 'NAMESPACE_THREAD' , 'http://purl.org/syndication/thread/1.0' );
define ( 'NAMESPACE_TOMB' , 'http://purl.org/atompub/tombstones/1.0' );
define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' );
@ -206,6 +206,7 @@ define ( 'ACTIVITY_OBJ_P_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'profile-photo' );
define ( 'ACTIVITY_OBJ_ALBUM', NAMESPACE_ACTIVITY_SCHEMA . 'photo-album' );
define ( 'ACTIVITY_OBJ_EVENT', NAMESPACE_ACTIVITY_SCHEMA . 'event' );
define ( 'ACTIVITY_OBJ_TAGTERM', NAMESPACE_DFRN . '/tagterm' );
define ( 'ACTIVITY_OBJ_PROFILE', NAMESPACE_DFRN . '/profile' );
/**
* item weight for query ordering
@ -232,19 +233,19 @@ function startup() {
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
}
@ -255,276 +256,278 @@ function startup() {
*
* Our main application structure for the life of this page
* Primarily deals with the URL that got us here
* and tries to make some sense of it, and
* and tries to make some sense of it, and
* stores our page contents and config storage
* and anything else that might need to be passed around
* before we spit the page out.
* and anything else that might need to be passed around
* before we spit the page out.
*
*/
if(! class_exists('App')) {
class App {
class App {
public $module_loaded = false;
public $query_string;
public $config;
public $page;
public $profile;
public $user;
public $cid;
public $contact;
public $contacts;
public $page_contact;
public $content;
public $data = array();
public $error = false;
public $cmd;
public $argv;
public $argc;
public $module;
public $pager;
public $strings;
public $path;
public $hooks;
public $timezone;
public $interactive = true;
public $plugins;
public $apps = array();
public $identities;
public $module_loaded = false;
public $query_string;
public $config;
public $page;
public $profile;
public $user;
public $cid;
public $contact;
public $contacts;
public $page_contact;
public $content;
public $data = array();
public $error = false;
public $cmd;
public $argv;
public $argc;
public $module;
public $pager;
public $strings;
public $path;
public $hooks;
public $timezone;
public $interactive = true;
public $plugins;
public $apps = array();
public $identities;
public $nav_sel;
public $nav_sel;
public $category;
public $category;
private $scheme;
private $hostname;
private $baseurl;
private $db;
private $scheme;
private $hostname;
private $baseurl;
private $db;
private $curl_code;
private $curl_headers;
private $curl_code;
private $curl_headers;
function __construct() {
function __construct() {
$this->config = array();
$this->page = array();
$this->pager= array();
$this->config = array();
$this->page = array();
$this->pager= array();
$this->query_string = '';
$this->query_string = '';
startup();
startup();
$this->scheme = 'http';
if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
$this->scheme = 'https';
elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
$this->scheme = 'http';
if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
$this->scheme = 'https';
elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
$this->scheme = 'https';
if(x($_SERVER,'SERVER_NAME')) {
$this->hostname = $_SERVER['SERVER_NAME'];
if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
$this->hostname .= ':' . $_SERVER['SERVER_PORT'];
/**
* Figure out if we are running at the top of a domain
* or in a sub-directory and adjust accordingly
if(x($_SERVER,'SERVER_NAME')) {
$this->hostname = $_SERVER['SERVER_NAME'];
if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
$this->hostname .= ':' . $_SERVER['SERVER_PORT'];
/**
* Figure out if we are running at the top of a domain
* or in a sub-directory and adjust accordingly
*/
$path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
if(isset($path) && strlen($path) && ($path != $this->path))
$this->path = $path;
}
set_include_path(
"include/$this->hostname" . PATH_SEPARATOR
. 'include' . PATH_SEPARATOR
. 'library' . PATH_SEPARATOR
. 'library/phpsec' . PATH_SEPARATOR
. '.' );
if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
$this->query_string = substr($_SERVER['QUERY_STRING'],2);
// removing trailing / - maybe a nginx problem
if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1);
}
if(x($_GET,'q'))
$this->cmd = trim($_GET['q'],'/\\');
// unix style "homedir"
if(substr($this->cmd,0,1) === '~')
$this->cmd = 'profile/' . substr($this->cmd,1);
// Diaspora style profile url
if(substr($this->cmd,0,2) === 'u/')
$this->cmd = 'profile/' . substr($this->cmd,2);
/**
*
* Break the URL path into C style argc/argv style arguments for our
* modules. Given "http://example.com/module/arg1/arg2", $this->argc
* will be 3 (integer) and $this->argv will contain:
* [0] => 'module'
* [1] => 'arg1'
* [2] => 'arg2'
*
*
* There will always be one argument. If provided a naked domain
* URL, $this->argv[0] is set to "home".
*
*/
$path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
if(isset($path) && strlen($path) && ($path != $this->path))
$this->path = $path;
}
set_include_path(
"include/$this->hostname" . PATH_SEPARATOR
. 'include' . PATH_SEPARATOR
. 'library' . PATH_SEPARATOR
. 'library/phpsec' . PATH_SEPARATOR
. '.' );
if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
$this->query_string = substr($_SERVER['QUERY_STRING'],2);
// removing trailing / - maybe a nginx problem
if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1);
}
if(x($_GET,'q'))
$this->cmd = trim($_GET['q'],'/\\');
// unix style "homedir"
if(substr($this->cmd,0,1) === '~')
$this->cmd = 'profile/' . substr($this->cmd,1);
// Diaspora style profile url
if(substr($this->cmd,0,2) === 'u/')
$this->cmd = 'profile/' . substr($this->cmd,2);
/**
*
* Break the URL path into C style argc/argv style arguments for our
* modules. Given "http://example.com/module/arg1/arg2", $this->argc
* will be 3 (integer) and $this->argv will contain:
* [0] => 'module'
* [1] => 'arg1'
* [2] => 'arg2'
*
*
* There will always be one argument. If provided a naked domain
* URL, $this->argv[0] is set to "home".
*
*/
$this->argv = explode('/',$this->cmd);
$this->argc = count($this->argv);
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
$this->module = str_replace(".", "_", $this->argv[0]);
if(array_key_exists('2',$this->argv)) {
$this->category = $this->argv[2];
$this->argv = explode('/',$this->cmd);
$this->argc = count($this->argv);
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
$this->module = str_replace(".", "_", $this->argv[0]);
if(array_key_exists('2',$this->argv)) {
$this->category = $this->argv[2];
}
}
}
else {
$this->argc = 1;
$this->argv = array('home');
$this->module = 'home';
else {
$this->argc = 1;
$this->argv = array('home');
$this->module = 'home';
}
/**
* Special handling for the webfinger/lrdd host XRD file
*/
if($this->cmd === '.well-known/host-meta') {
$this->argc = 1;
$this->argv = array('hostxrd');
$this->module = 'hostxrd';
}
/**
* See if there is any page number information, and initialise
* pagination
*/
$this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1);
$this->pager['itemspage'] = 50;
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
$this->pager['total'] = 0;
}
/**
* Special handling for the webfinger/lrdd host XRD file
*/
function get_baseurl($ssl = false) {
if($this->cmd === '.well-known/host-meta') {
$this->argc = 1;
$this->argv = array('hostxrd');
$this->module = 'hostxrd';
$scheme = $this->scheme;
if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL))
$scheme = 'https';
// We need to populate the $ssl flag across the entire program before turning this on.
// Basically, we'll have $ssl = true on any links which can only be seen by a logged in user
// (and also the login link). Anything seen by an outsider will have it turned off.
// At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their
// contact links to this site with "http:" if they are currently using "https:"
// if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
// if($ssl)
// $scheme = 'https';
// else
// $scheme = 'http';
// }
}
/**
* See if there is any page number information, and initialise
* pagination
*/
$this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1);
$this->pager['itemspage'] = 50;
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
$this->pager['total'] = 0;
}
function get_baseurl($ssl = false) {
$scheme = $this->scheme;
if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL))
$scheme = 'https';
// We need to populate the $ssl flag across the entire program before turning this on.
// Basically, we'll have $ssl = true on any links which can only be seen by a logged in user
// (and also the login link). Anything seen by an outsider will have it turned off.
// At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their
// contact links to this site with "http:" if they are currently using "https:"
// if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
// if($ssl)
// $scheme = 'https';
// else
// $scheme = 'http';
// }
$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
return $this->baseurl;
}
$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
return $this->baseurl;
}
function set_baseurl($url) {
$parsed = @parse_url($url);
function set_baseurl($url) {
$parsed = @parse_url($url);
$this->baseurl = $url;
$this->baseurl = $url;
if($parsed) {
$this->scheme = $parsed['scheme'];
if($parsed) {
$this->scheme = $parsed['scheme'];
$this->hostname = $parsed['host'];
if(x($parsed,'port'))
$this->hostname .= ':' . $parsed['port'];
if(x($parsed,'path'))
$this->path = trim($parsed['path'],'\\/');
}
$this->hostname = $parsed['host'];
if(x($parsed,'port'))
$this->hostname .= ':' . $parsed['port'];
if(x($parsed,'path'))
$this->path = trim($parsed['path'],'\\/');
}
function get_hostname() {
return $this->hostname;
}
function set_hostname($h) {
$this->hostname = $h;
}
function set_path($p) {
$this->path = trim(trim($p),'/');
}
function get_path() {
return $this->path;
}
function set_pager_total($n) {
$this->pager['total'] = intval($n);
}
function set_pager_itemspage($n) {
$this->pager['itemspage'] = intval($n);
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
}
function init_pagehead() {
$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
if($interval < 10000)
$interval = 40000;
$this->page['title'] = $this->config['sitename'];
$tpl = file_get_contents('view/head.tpl');
$this->page['htmlhead'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
'$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
'$delitem' => t('Delete this item?'),
'$comment' => t('Comment'),
'$showmore' => t('show more'),
'$showfewer' => t('show fewer'),
'$update_interval' => $interval
));
}
function set_curl_code($code) {
$this->curl_code = $code;
}
function get_curl_code() {
return $this->curl_code;
}
function set_curl_headers($headers) {
$this->curl_headers = $headers;
}
function get_curl_headers() {
return $this->curl_headers;
}
}
function get_hostname() {
return $this->hostname;
}
function set_hostname($h) {
$this->hostname = $h;
}
function set_path($p) {
$this->path = trim(trim($p),'/');
}
function get_path() {
return $this->path;
}
function set_pager_total($n) {
$this->pager['total'] = intval($n);
}
function set_pager_itemspage($n) {
$this->pager['itemspage'] = intval($n);
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
}
function init_pagehead() {
$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
if($interval < 10000)
$interval = 40000;
$this->page['title'] = $this->config['sitename'];
$tpl = file_get_contents('view/head.tpl');
$this->page['htmlhead'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
'$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
'$delitem' => t('Delete this item?'),
'$comment' => t('Comment'),
'$showmore' => t('show more'),
'$showfewer' => t('show fewer'),
'$update_interval' => $interval
));
}
function set_curl_code($code) {
$this->curl_code = $code;
}
function get_curl_code() {
return $this->curl_code;
}
function set_curl_headers($headers) {
$this->curl_headers = $headers;
}
function get_curl_headers() {
return $this->curl_headers;
}
}}
}
// retrieve the App structure
// useful in functions which require it but don't get it passed to them
if(! function_exists('get_app')) {
function get_app() {
global $a;
return $a;
}};
function get_app() {
global $a;
return $a;
}
};
// Multi-purpose function to check variable state.
@ -534,42 +537,44 @@ function get_app() {
// e.g. x('') or x(0) returns 0;
if(! function_exists('x')) {
function x($s,$k = NULL) {
if($k != NULL) {
if((is_array($s)) && (array_key_exists($k,$s))) {
if($s[$k])
return (int) 1;
return (int) 0;
function x($s,$k = NULL) {
if($k != NULL) {
if((is_array($s)) && (array_key_exists($k,$s))) {
if($s[$k])
return (int) 1;
return (int) 0;
}
return false;
}
else {
if(isset($s)) {
if($s) {
return (int) 1;
return false;
}
else {
if(isset($s)) {
if($s) {
return (int) 1;
}
return (int) 0;
}
return (int) 0;
return false;
}
return false;
}
}}
}
// called from db initialisation if db is dead.
if(! function_exists('system_unavailable')) {
function system_unavailable() {
include('system_unavailable.php');
system_down();
killme();
}}
function system_unavailable() {
include('system_unavailable.php');
system_down();
killme();
}
}
function clean_urls() {
global $a;
// if($a->config['system']['clean_urls'])
return true;
// return false;
// if($a->config['system']['clean_urls'])
return true;
// return false;
}
function z_path() {
@ -596,125 +601,150 @@ function is_ajax() {
}
// Primarily involved with database upgrade, but also sets the
// Primarily involved with database upgrade, but also sets the
// base url for use in cmdline programs which don't have
// $_SERVER variables, and synchronising the state of installed plugins.
if(! function_exists('check_config')) {
function check_config(&$a) {
function check_config(&$a) {
$build = get_config('system','build');
if(! x($build))
$build = set_config('system','build',DB_UPDATE_VERSION);
$build = get_config('system','build');
if(! x($build))
$build = set_config('system','build',DB_UPDATE_VERSION);
$url = get_config('system','url');
$url = get_config('system','url');
// if the url isn't set or the stored url is radically different
// than the currently visited url, store the current value accordingly.
// "Radically different" ignores common variations such as http vs https
// and www.example.com vs example.com.
// if the url isn't set or the stored url is radically different
// than the currently visited url, store the current value accordingly.
// "Radically different" ignores common variations such as http vs https
// and www.example.com vs example.com.
if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
$url = set_config('system','url',$a->get_baseurl());
if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
$url = set_config('system','url',$a->get_baseurl());
if($build != DB_UPDATE_VERSION) {
$stored = intval($build);
$current = intval(DB_UPDATE_VERSION);
if(($stored < $current) && file_exists('update.php')) {
if($build != DB_UPDATE_VERSION) {
$stored = intval($build);
$current = intval(DB_UPDATE_VERSION);
if(($stored < $current) && file_exists('update.php')) {
load_config('database');
load_config('database');
// We're reporting a different version than what is currently installed.
// Run any existing update scripts to bring the database up to current.
// We're reporting a different version than what is currently installed.
// Run any existing update scripts to bring the database up to current.
require_once('update.php');
require_once('update.php');
// make sure that boot.php and update.php are the same release, we might be
// updating right this very second and the correct version of the update.php
// file may not be here yet. This can happen on a very busy site.
// make sure that boot.php and update.php are the same release, we might be
// updating right this very second and the correct version of the update.php
// file may not be here yet. This can happen on a very busy site.
if(DB_UPDATE_VERSION == UPDATE_VERSION) {
if(DB_UPDATE_VERSION == UPDATE_VERSION) {
for($x = $stored; $x < $current; $x ++) {
if(function_exists('update_' . $x)) {
for($x = $stored; $x < $current; $x ++) {
if(function_exists('update_' . $x)) {
// There could be a lot of processes running or about to run.
// We want exactly one process to run the update command.
// So store the fact that we're taking responsibility
// after first checking to see if somebody else already has.
// There could be a lot of processes running or about to run.
// We want exactly one process to run the update command.
// So store the fact that we're taking responsibility
// after first checking to see if somebody else already has.
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
if(get_config('database','update_' . $x))
break;
set_config('database','update_' . $x, '1');
if(get_config('database','update_' . $x))
break;
set_config('database','update_' . $x, '1');
// call the specific update
// call the specific update
$func = 'update_' . $x;
$func($a);
// global $db;
// $db->excep(TRUE);
// try {
// $db->beginTransaction();
$func = 'update_' . $x;
$func($a);
// $db->commit();
// } catch(Exception $ex) {
// $db->rollback();
// //send the administrator an e-mail
// $email_tpl = get_intltext_template("update_fail_eml.tpl");
// $email_tpl = replace_macros($email_tpl, array(
// '$sitename' => $a->config['sitename'],
// '$siteurl' => $a->get_baseurl(),
// '$update' => $x,
// '$error' => $ex->getMessage()));
// $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
// mail($a->config['admin_email'], $subject, $text,
// 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
// . 'Content-type: text/plain; charset=UTF-8' . "\n"
// . 'Content-transfer-encoding: 8bit' );
// //try the logger
// logger('update failed: '.$ex->getMessage().EOL);
// }
// $db->excep(FALSE);
}
}
set_config('system','build', DB_UPDATE_VERSION);
}
set_config('system','build', DB_UPDATE_VERSION);
}
}
}
/**
*
* Synchronise plugins:
*
* $a->config['system']['addon'] contains a comma-separated list of names
* of plugins/addons which are used on this system.
* Go through the database list of already installed addons, and if we have
* an entry, but it isn't in the config list, call the uninstall procedure
* and mark it uninstalled in the database (for now we'll remove it).
* Then go through the config list and if we have a plugin that isn't installed,
* call the install procedure and add it to the database.
*
*/
/**
*
* Synchronise plugins:
*
* $a->config['system']['addon'] contains a comma-separated list of names
* of plugins/addons which are used on this system.
* Go through the database list of already installed addons, and if we have
* an entry, but it isn't in the config list, call the uninstall procedure
* and mark it uninstalled in the database (for now we'll remove it).
* Then go through the config list and if we have a plugin that isn't installed,
* call the install procedure and add it to the database.
*
*/
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
if(count($r))
$installed = $r;
else
$installed = array();
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
if(count($r))
$installed = $r;
else
$installed = array();
$plugins = get_config('system','addon');
$plugins_arr = array();
$plugins = get_config('system','addon');
$plugins_arr = array();
if($plugins)
$plugins_arr = explode(',',str_replace(' ', '',$plugins));
if($plugins)
$plugins_arr = explode(',',str_replace(' ', '',$plugins));
$a->plugins = $plugins_arr;
$a->plugins = $plugins_arr;
$installed_arr = array();
$installed_arr = array();
if(count($installed)) {
foreach($installed as $i) {
if(! in_array($i['name'],$plugins_arr)) {
uninstall_plugin($i['name']);
if(count($installed)) {
foreach($installed as $i) {
if(! in_array($i['name'],$plugins_arr)) {
uninstall_plugin($i['name']);
}
else
$installed_arr[] = $i['name'];
}
}
if(count($plugins_arr)) {
foreach($plugins_arr as $p) {
if(! in_array($p,$installed_arr)) {
install_plugin($p);
else
$installed_arr[] = $i['name'];
}
}
if(count($plugins_arr)) {
foreach($plugins_arr as $p) {
if(! in_array($p,$installed_arr)) {
install_plugin($p);
}
}
}
load_hooks();
return;
}
load_hooks();
return;
}}
}
function get_guid($size=16) {
@ -735,116 +765,124 @@ function get_guid($size=16) {
// returns the complete html for inserting into the page
if(! function_exists('login')) {
function login($register = false, $hiddens=false) {
$a = get_app();
$o = "";
$reg = false;
if ($register) {
$reg = array(
'title' => t('Create a New Account'),
'desc' => t('Register')
);
}
function login($register = false, $hiddens=false) {
$a = get_app();
$o = "";
$reg = false;
if ($register) {
$reg = array(
'title' => t('Create a New Account'),
'desc' => t('Register')
);
}
$noid = get_config('system','no_openid');
$noid = get_config('system','no_openid');
$dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
$dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
if(local_user()) {
$tpl = get_markup_template("logout.tpl");
}
else {
$tpl = get_markup_template("login.tpl");
$_SESSION['return_url'] = $a->query_string;
if(local_user()) {
$tpl = get_markup_template("logout.tpl");
}
else {
$tpl = get_markup_template("login.tpl");
$_SESSION['return_url'] = $a->query_string;
}
$o .= replace_macros($tpl,array(
'$dest_url' => $dest_url,
'$logout' => t('Logout'),
'$login' => t('Login'),
'$lname' => array('username', t('Nickname or Email address: ') , '', ''),
'$lpassword' => array('password', t('Password: '), '', ''),
'$openid' => !$noid,
'$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''),
'$hiddens' => $hiddens,
'$register' => $reg,
'$lostpass' => t('Forgot your password?'),
'$lostlink' => t('Password Reset'),
));
call_hooks('login_hook',$o);
return $o;
}
}
$o .= replace_macros($tpl,array(
'$dest_url' => $dest_url,
'$logout' => t('Logout'),
'$login' => t('Login'),
'$lname' => array('username', t('Nickname or Email address: ') , '', ''),
'$lpassword' => array('password', t('Password: '), '', ''),
'$openid' => !$noid,
'$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''),
'$hiddens' => $hiddens,
'$register' => $reg,
'$lostpass' => t('Forgot your password?'),
'$lostlink' => t('Password Reset'),
));
call_hooks('login_hook',$o);
return $o;
}}
// Used to end the current process, after saving session state.
// Used to end the current process, after saving session state.
if(! function_exists('killme')) {
function killme() {
session_write_close();
exit;
}}
function killme() {
session_write_close();
exit;
}
}
// redirect to another URL and terminate this process.
if(! function_exists('goaway')) {
function goaway($s) {
header("Location: $s");
killme();
}}
function goaway($s) {
header("Location: $s");
killme();
}
}
// Returns the uid of locally logged in user or false.
if(! function_exists('local_user')) {
function local_user() {
if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
return intval($_SESSION['uid']);
return false;
}}
function local_user() {
if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
return intval($_SESSION['uid']);
return false;
}
}
// Returns contact id of authenticated site visitor or false
if(! function_exists('remote_user')) {
function remote_user() {
if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
return intval($_SESSION['visitor_id']);
return false;
}}
function remote_user() {
if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
return intval($_SESSION['visitor_id']);
return false;
}
}
// contents of $s are displayed prominently on the page the next time
// a page is loaded. Usually used for errors or alerts.
if(! function_exists('notice')) {
function notice($s) {
$a = get_app();
if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
if($a->interactive)
$_SESSION['sysmsg'][] = $s;
}}
function notice($s) {
$a = get_app();
if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
if($a->interactive)
$_SESSION['sysmsg'][] = $s;
}
}
if(! function_exists('info')) {
function info($s) {
$a = get_app();
if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
if($a->interactive)
$_SESSION['sysmsg_info'][] = $s;
}}
function info($s) {
$a = get_app();
if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
if($a->interactive)
$_SESSION['sysmsg_info'][] = $s;
}
}
// wrapper around config to limit the text length of an incoming message
if(! function_exists('get_max_import_size')) {
function get_max_import_size() {
global $a;
return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
}}
function get_max_import_size() {
global $a;
return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
}
}
@ -855,7 +893,7 @@ function get_max_import_size() {
* @parameter string $nickname
* @parameter int $profile
*
* Summary: Loads a profile into the page sidebar.
* Summary: Loads a profile into the page sidebar.
* The function requires a writeable copy of the main App structure, and the nickname
* of a registered local account.
*
@ -865,88 +903,89 @@ function get_max_import_size() {
* by the owner.
*
* Profile information is placed in the App structure for later retrieval.
* Honours the owner's chosen theme for display.
* Honours the owner's chosen theme for display.
*
*/
if(! function_exists('profile_load')) {
function profile_load(&$a, $nickname, $profile = 0) {
if(remote_user()) {
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
intval($_SESSION['visitor_id']));
if(count($r))
$profile = $r[0]['profile-id'];
}
function profile_load(&$a, $nickname, $profile = 0) {
if(remote_user()) {
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
intval($_SESSION['visitor_id']));
if(count($r))
$profile = $r[0]['profile-id'];
}
$r = null;
$r = null;
if($profile) {
$profile_int = intval($profile);
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d and `contact`.`self` = 1 LIMIT 1",
dbesc($nickname),
intval($profile_int)
);
}
if((! $r) && (! count($r))) {
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
dbesc($nickname)
);
}
if($profile) {
$profile_int = intval($profile);
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d and `contact`.`self` = 1 LIMIT 1",
dbesc($nickname),
intval($profile_int)
);
}
if((! $r) && (! count($r))) {
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile`
left join `contact` on `contact`.`uid` = `profile`.`uid` LEFT JOIN `user` ON `profile`.`uid` = `user`.`uid`
WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
dbesc($nickname)
);
}
if(($r === false) || (! count($r))) {
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
return;
}
// fetch user tags if this isn't the default profile
if(! $r[0]['is-default']) {
$x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
intval($profile_uid)
);
if($x && count($x))
$r[0]['pub_keywords'] = $x[0]['pub_keywords'];
}
$a->profile = $r[0];
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
$_SESSION['theme'] = $a->profile['theme'];
/**
* load/reload current theme info
*/
$theme_info_file = "view/theme/".current_theme()."/theme.php";
if (file_exists($theme_info_file)){
require_once($theme_info_file);
}
if(! (x($a->page,'aside')))
$a->page['aside'] = '';
if(local_user() && local_user() == $a->profile['uid']) {
$a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array(
'$editprofile' => t('Edit profile'),
'$profid' => $a->profile['id']
));
}
$block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
$a->page['aside'] .= profile_sidebar($a->profile, $block);
/*if(! $block)
$a->page['aside'] .= contact_block();*/
if(($r === false) || (! count($r))) {
notice( t('Requested profile is not available.') . EOL );
$a->error = 404;
return;
}
// fetch user tags if this isn't the default profile
if(! $r[0]['is-default']) {
$x = q("select `pub_keywords` from `profile` where uid = %d and `is-default` = 1 limit 1",
intval($profile_uid)
);
if($x && count($x))
$r[0]['pub_keywords'] = $x[0]['pub_keywords'];
}
$a->profile = $r[0];
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
$_SESSION['theme'] = $a->profile['theme'];
/**
* load/reload current theme info
*/
$theme_info_file = "view/theme/".current_theme()."/theme.php";
if (file_exists($theme_info_file)){
require_once($theme_info_file);
}
if(! (x($a->page,'aside')))
$a->page['aside'] = '';
if(local_user() && local_user() == $a->profile['uid']) {
$a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array(
'$editprofile' => t('Edit profile'),
'$profid' => $a->profile['id']
));
}
$block = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
$a->page['aside'] .= profile_sidebar($a->profile, $block);
/*if(! $block)
$a->page['aside'] .= contact_block();*/
return;
}}
}
/**
@ -966,478 +1005,488 @@ function profile_load(&$a, $nickname, $profile = 0) {
if(! function_exists('profile_sidebar')) {
function profile_sidebar($profile, $block = 0) {
function profile_sidebar($profile, $block = 0) {
$a = get_app();
$a = get_app();
$o = '';
$location = false;
$address = false;
$pdesc = true;
$o = '';
$location = false;
$address = false;
$pdesc = true;
if((! is_array($profile)) && (! count($profile)))
return $o;
if((! is_array($profile)) && (! count($profile)))
return $o;
$profile['picdate'] = urlencode($profile['picdate']);
$profile['picdate'] = urlencode($profile['picdate']);
call_hooks('profile_sidebar_enter', $profile);
call_hooks('profile_sidebar_enter', $profile);
// don't show connect link to yourself
$connect = (($profile['uid'] != local_user()) ? t('Connect') : False);
// don't show connect link to yourself
$connect = (($profile['uid'] != local_user()) ? t('Connect') : False);
// don't show connect link to authenticated visitors either
// don't show connect link to authenticated visitors either
if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
$connect = False;
if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
$connect = False;
if(get_my_url() && $profile['unkmail'])
$wallmessage = t('Message');
else
$wallmessage = false;
if(get_my_url() && $profile['unkmail'])
$wallmessage = t('Message');
else
$wallmessage = false;
// show edit profile to yourself
if ($profile['uid'] == local_user()) {
$profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
// show edit profile to yourself
if ($profile['uid'] == local_user()) {
$profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
$r = q("SELECT * FROM `profile` WHERE `uid` = %d",
local_user());
$r = q("SELECT * FROM `profile` WHERE `uid` = %d",
local_user());
$profile['menu'] = array(
'chg_photo' => t('Change profile photo'),
'cr_new' => t('Create New Profile'),
'entries' => array(),
);
if(count($r)) {
$profile['menu'] = array(
'chg_photo' => t('Change profile photo'),
'cr_new' => t('Create New Profile'),
'entries' => array(),
);
if(count($r)) {
foreach($r as $rr) {
$profile['menu']['entries'][] = array(
'photo' => $rr['thumb'],
'id' => $rr['id'],
'alt' => t('Profile Image'),
'profile_name' => $rr['profile-name'],
'isdefault' => $rr['is-default'],
'visibile_to_everybody' => t('visible to everybody'),
'edit_visibility' => t('Edit visibility'),
);
}
foreach($r as $rr) {
$profile['menu']['entries'][] = array(
'photo' => $rr['thumb'],
'id' => $rr['id'],
'alt' => t('Profile Image'),
'profile_name' => $rr['profile-name'],
'isdefault' => $rr['is-default'],
'visibile_to_everybody' => t('visible to everybody'),
'edit_visibility' => t('Edit visibility'),
);
}
}
}
if((x($profile,'address') == 1)
|| (x($profile,'locality') == 1)
|| (x($profile,'region') == 1)
|| (x($profile,'postal-code') == 1)
|| (x($profile,'country-name') == 1))
$location = t('Location:');
if((x($profile,'address') == 1)
|| (x($profile,'locality') == 1)
|| (x($profile,'region') == 1)
|| (x($profile,'postal-code') == 1)
|| (x($profile,'country-name') == 1))
$location = t('Location:');
$gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
$gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
$marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
$marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
$location = $pdesc = $gender = $marital = $homepage = False;
if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
$location = $pdesc = $gender = $marital = $homepage = False;
}
$firstname = ((strpos($profile['name'],' '))
? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
$lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
$diaspora = array(
'podloc' => $a->get_baseurl(),
'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
'nickname' => $profile['nickname'],
'fullname' => $profile['name'],
'firstname' => $firstname,
'lastname' => $lastname,
'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg',
);
if (!$block){
$contact_block = contact_block();
}
$tpl = get_markup_template('profile_vcard.tpl');
$o .= replace_macros($tpl, array(
'$profile' => $profile,
'$connect' => $connect,
'$wallmessage' => $wallmessage,
'$location' => template_escape($location),
'$gender' => $gender,
'$pdesc' => $pdesc,
'$marital' => $marital,
'$homepage' => $homepage,
'$diaspora' => $diaspora,
'$contact_block' => $contact_block,
));
$arr = array('profile' => &$profile, 'entry' => &$o);
call_hooks('profile_sidebar', $arr);
return $o;
}
$firstname = ((strpos($profile['name'],' '))
? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
$lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
$diaspora = array(
'podloc' => $a->get_baseurl(),
'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
'nickname' => $profile['nickname'],
'fullname' => $profile['name'],
'firstname' => $firstname,
'lastname' => $lastname,
'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg',
);
if (!$block){
$contact_block = contact_block();
}
$tpl = get_markup_template('profile_vcard.tpl');
$o .= replace_macros($tpl, array(
'$profile' => $profile,
'$connect' => $connect,
'$wallmessage' => $wallmessage,
'$location' => template_escape($location),
'$gender' => $gender,
'$pdesc' => $pdesc,
'$marital' => $marital,
'$homepage' => $homepage,
'$diaspora' => $diaspora,
'$contact_block' => $contact_block,
));
$arr = array('profile' => &$profile, 'entry' => &$o);
call_hooks('profile_sidebar', $arr);
return $o;
}}
}
if(! function_exists('get_birthdays')) {
function get_birthdays() {
function get_birthdays() {
$a = get_app();
$o = '';
$a = get_app();
$o = '';
if(! local_user())
return $o;
if(! local_user())
return $o;
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
$bd_short = t('F d');
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
$bd_short = t('F d');
$r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event`
LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid`
WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s'
ORDER BY `start` ASC ",
intval(local_user()),
dbesc(datetime_convert('UTC','UTC','now + 6 days')),
dbesc(datetime_convert('UTC','UTC','now'))
);
$r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event`
LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid`
WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s'
ORDER BY `start` ASC ",
intval(local_user()),
dbesc(datetime_convert('UTC','UTC','now + 6 days')),
dbesc(datetime_convert('UTC','UTC','now'))
);
if($r && count($r)) {
$total = 0;
$now = strtotime('now');
$cids = array();
if($r && count($r)) {
$total = 0;
$now = strtotime('now');
$cids = array();
$istoday = false;
foreach($r as $rr) {
if(strlen($rr['name']))
$total ++;
$istoday = false;
foreach($r as $rr) {
if(strlen($rr['name']))
$total ++;
if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now))
$istoday = true;
}
$classtoday = $istoday ? ' birthday-today ' : '';
if($total) {
$o .= '<div id="birthday-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'birthday-wrapper\'); >' . t('Birthday Reminders') . ' ' . '(' . $total . ')' . '</div>';
$o .= '<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">' . t('Birthdays this week:') . '</div>';
$o .= '<div id="birthday-title-end"></div>';
foreach($r as $rr) {
if(! strlen($rr['name']))
continue;
// avoid duplicates
if(in_array($rr['cid'],$cids))
continue;
$cids[] = $rr['cid'];
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
$sparkle = '';
$url = $rr['url'];
if($rr['network'] === NETWORK_DFRN) {
$sparkle = " sparkle";
$url = $a->get_baseurl() . '/redir/' . $rr['cid'];
}
$o .= '<div class="birthday-list" id="birthday-' . $rr['eid'] . '"><a class="birthday-link$sparkle" target="redir" href="'
. $url . '">' . $rr['name'] . '</a> '
. day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ? ' ' . t('[today]') : '')
. '</div>' ;
}
$o .= '</div></div>';
}
}
$classtoday = $istoday ? ' birthday-today ' : '';
if($total) {
$o .= '<div id="birthday-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'birthday-wrapper\'); >' . t('Birthday Reminders') . ' ' . '(' . $total . ')' . '</div>';
$o .= '<div id="birthday-wrapper" style="display: none;" ><div id="birthday-title">' . t('Birthdays this week:') . '</div>';
$o .= '<div id="birthday-title-end"></div>';
return $o;
}
}
if(! function_exists('get_events')) {
function get_events() {
require_once('include/bbcode.php');
$a = get_app();
$o = '';
if(! local_user())
return $o;
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
$bd_short = t('F d');
$r = q("SELECT `event`.* FROM `event`
WHERE `event`.`uid` = %d AND `type` != 'birthday' AND `start` < '%s' AND `start` > '%s'
ORDER BY `start` ASC ",
intval(local_user()),
dbesc(datetime_convert('UTC','UTC','now + 6 days')),
dbesc(datetime_convert('UTC','UTC','now - 1 days'))
);
if($r && count($r)) {
$now = strtotime('now');
$istoday = false;
foreach($r as $rr) {
if(strlen($rr['name']))
$total ++;
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start'],'Y-m-d');
if($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d'))
$istoday = true;
}
$classtoday = (($istoday) ? ' event-today ' : '');
$o .= '<div id="event-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'event-wrapper\'); >' . t('Event Reminders') . ' ' . '(' . count($r) . ')' . '</div>';
$o .= '<div id="event-wrapper" style="display: none;" ><div id="event-title">' . t('Events this week:') . '</div>';
$o .= '<div id="event-title-end"></div>';
foreach($r as $rr) {
if(! strlen($rr['name']))
continue;
// avoid duplicates
if($rr['adjust'])
$md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m\#\l\i\n\k\-j');
else
$md = datetime_convert('UTC','UTC',$rr['start'],'Y/m\#\l\i\n\k\-j');
if(in_array($rr['cid'],$cids))
continue;
$cids[] = $rr['cid'];
$title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
if(! $title)
$title = t('[No description]');
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
$sparkle = '';
$url = $rr['url'];
if($rr['network'] === NETWORK_DFRN) {
$sparkle = " sparkle";
$url = $a->get_baseurl() . '/redir/' . $rr['cid'];
}
$o .= '<div class="birthday-list" id="birthday-' . $rr['eid'] . '"><a class="birthday-link$sparkle" target="redir" href="'
. $url . '">' . $rr['name'] . '</a> '
. day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $rr['adjust'] ? $bd_format : $bd_short)) . (($today) ? ' ' . t('[today]') : '')
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
$today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);
$o .= '<div class="event-list" id="event-' . $rr['eid'] . '"></a> <a href="events/' . $md . '">' . $title . '</a>'
. day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '')
. '</div>' ;
}
$o .= '</div></div>';
}
}
return $o;
}}
if(! function_exists('get_events')) {
function get_events() {
require_once('include/bbcode.php');
$a = get_app();
$o = '';
if(! local_user())
return $o;
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
$bd_short = t('F d');
$r = q("SELECT `event`.* FROM `event`
WHERE `event`.`uid` = %d AND `type` != 'birthday' AND `start` < '%s' AND `start` > '%s'
ORDER BY `start` ASC ",
intval(local_user()),
dbesc(datetime_convert('UTC','UTC','now + 6 days')),
dbesc(datetime_convert('UTC','UTC','now - 1 days'))
);
if($r && count($r)) {
$now = strtotime('now');
$istoday = false;
foreach($r as $rr) {
if(strlen($rr['name']))
$total ++;
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start'],'Y-m-d');
if($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d'))
$istoday = true;
}
$classtoday = (($istoday) ? ' event-today ' : '');
$o .= '<div id="event-notice" class="birthday-notice fakelink' . $classtoday . '" onclick=openClose(\'event-wrapper\'); >' . t('Event Reminders') . ' ' . '(' . count($r) . ')' . '</div>';
$o .= '<div id="event-wrapper" style="display: none;" ><div id="event-title">' . t('Events this week:') . '</div>';
$o .= '<div id="event-title-end"></div>';
foreach($r as $rr) {
if($rr['adjust'])
$md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m\#\l\i\n\k\-j');
else
$md = datetime_convert('UTC','UTC',$rr['start'],'Y/m\#\l\i\n\k\-j');
$title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
if(! $title)
$title = t('[No description]');
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
$today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);
$o .= '<div class="event-list" id="event-' . $rr['eid'] . '"></a> <a href="events/' . $md . '">' . $title . '</a>'
. day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '')
. '</div>' ;
}
$o .= '</div></div>';
}
return $o;
}}
}
/**
*
*
* Wrap calls to proc_close(proc_open()) and call hook
* so plugins can take part in process :)
*
*
* args:
* $cmd program to run
* next args are passed as $cmd command line
*
*
* e.g.: proc_run("ls","-la","/tmp");
*
*
* $cmd and string args are surrounded with ""
*/
if(! function_exists('proc_run')) {
function proc_run($cmd){
function proc_run($cmd){
$a = get_app();
$a = get_app();
$args = func_get_args();
$arr = array('args' => $args, 'run_cmd' => true);
$args = func_get_args();
$arr = array('args' => $args, 'run_cmd' => true);
call_hooks("proc_run", $arr);
if(! $arr['run_cmd'])
return;
call_hooks("proc_run", $arr);
if(! $arr['run_cmd'])
return;
if(count($args) && $args[0] === 'php')
$args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
foreach ($args as $arg){
$arg = escapeshellarg($arg);
if(count($args) && $args[0] === 'php')
$args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
foreach ($args as $arg){
$arg = escapeshellarg($arg);
}
$cmdline = implode($args," ");
proc_close(proc_open($cmdline." &",array(),$foo));
}
$cmdline = implode($args," ");
proc_close(proc_open($cmdline." &",array(),$foo));
}}
}
if(! function_exists('current_theme')) {
function current_theme(){
$app_base_themes = array('duepuntozero', 'loozah');
function current_theme(){
$app_base_themes = array('duepuntozero', 'loozah');
$a = get_app();
$a = get_app();
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
if($theme_name &&
(file_exists('view/theme/' . $theme_name . '/style.css') ||
file_exists('view/theme/' . $theme_name . '/style.php')))
return($theme_name);
if($theme_name &&
(file_exists('view/theme/' . $theme_name . '/style.css') ||
file_exists('view/theme/' . $theme_name . '/style.php')))
return($theme_name);
foreach($app_base_themes as $t) {
if(file_exists('view/theme/' . $t . '/style.css')||
file_exists('view/theme/' . $t . '/style.php'))
return($t);
}
$fallback = glob('view/theme/*/style.[css|php]');
if(count($fallback))
return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
foreach($app_base_themes as $t) {
if(file_exists('view/theme/' . $t . '/style.css')||
file_exists('view/theme/' . $t . '/style.php'))
return($t);
}
$fallback = glob('view/theme/*/style.[css|php]');
if(count($fallback))
return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
}}
}
/*
* Return full URL to theme which is currently in effect.
* Return full URL to theme which is currently in effect.
* Provide a sane default if nothing is chosen or the specified theme does not exist.
*/
if(! function_exists('current_theme_url')) {
function current_theme_url() {
global $a;
$t = current_theme();
if (file_exists('view/theme/' . $t . '/style.php'))
return($a->get_baseurl() . '/view/theme/' . $t . '/style.pcss');
return($a->get_baseurl() . '/view/theme/' . $t . '/style.css');
}}
function current_theme_url() {
global $a;
$t = current_theme();
if (file_exists('view/theme/' . $t . '/style.php'))
return($a->get_baseurl() . '/view/theme/' . $t . '/style.pcss');
return($a->get_baseurl() . '/view/theme/' . $t . '/style.css');
}
}
if(! function_exists('feed_birthday')) {
function feed_birthday($uid,$tz) {
function feed_birthday($uid,$tz) {
/**
*
* Determine the next birthday, but only if the birthday is published
* in the default profile. We _could_ also look for a private profile that the
* recipient can see, but somebody could get mad at us if they start getting
* public birthday greetings when they haven't made this info public.
*
* Assuming we are able to publish this info, we are then going to convert
* the start time from the owner's timezone to UTC.
*
* This will potentially solve the problem found with some social networks
* where birthdays are converted to the viewer's timezone and salutations from
* elsewhere in the world show up on the wrong day. We will convert it to the
* viewer's timezone also, but first we are going to convert it from the birthday
* person's timezone to GMT - so the viewer may find the birthday starting at
* 6:00PM the day before, but that will correspond to midnight to the birthday person.
*
*/
/**
*
* Determine the next birthday, but only if the birthday is published
* in the default profile. We _could_ also look for a private profile that the
* recipient can see, but somebody could get mad at us if they start getting
* public birthday greetings when they haven't made this info public.
*
* Assuming we are able to publish this info, we are then going to convert
* the start time from the owner's timezone to UTC.
*
* This will potentially solve the problem found with some social networks
* where birthdays are converted to the viewer's timezone and salutations from
* elsewhere in the world show up on the wrong day. We will convert it to the
* viewer's timezone also, but first we are going to convert it from the birthday
* person's timezone to GMT - so the viewer may find the birthday starting at
* 6:00PM the day before, but that will correspond to midnight to the birthday person.
*
*/
$birthday = '';
$birthday = '';
if(! strlen($tz))
$tz = 'UTC';
if(! strlen($tz))
$tz = 'UTC';
$p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
intval($uid)
);
$p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
intval($uid)
);
if($p && count($p)) {
$tmp_dob = substr($p[0]['dob'],5);
if(intval($tmp_dob)) {
$y = datetime_convert($tz,$tz,'now','Y');
$bd = $y . '-' . $tmp_dob . ' 00:00';
$t_dob = strtotime($bd);
$now = strtotime(datetime_convert($tz,$tz,'now'));
if($t_dob < $now)
$bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
$birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME);
if($p && count($p)) {
$tmp_dob = substr($p[0]['dob'],5);
if(intval($tmp_dob)) {
$y = datetime_convert($tz,$tz,'now','Y');
$bd = $y . '-' . $tmp_dob . ' 00:00';
$t_dob = strtotime($bd);
$now = strtotime(datetime_convert($tz,$tz,'now'));
if($t_dob < $now)
$bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
$birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME);
}
}
}
return $birthday;
}}
return $birthday;
}
}
if(! function_exists('is_site_admin')) {
function is_site_admin() {
$a = get_app();
if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
return true;
return false;
}}
function is_site_admin() {
$a = get_app();
if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
return true;
return false;
}
}
if(! function_exists('load_contact_links')) {
function load_contact_links($uid) {
function load_contact_links($uid) {
$a = get_app();
$a = get_app();
$ret = array();
$ret = array();
if(! $uid || x($a->contacts,'empty'))
return;
if(! $uid || x($a->contacts,'empty'))
return;
$r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ",
intval($uid)
);
if(count($r)) {
foreach($r as $rr){
$url = normalise_link($rr['url']);
$ret[$url] = $rr;
$r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ",
intval($uid)
);
if(count($r)) {
foreach($r as $rr){
$url = normalise_link($rr['url']);
$ret[$url] = $rr;
}
}
else
$ret['empty'] = true;
$a->contacts = $ret;
return;
}
else
$ret['empty'] = true;
$a->contacts = $ret;
return;
}}
}
if(! function_exists('profile_tabs')){
function profile_tabs($a, $is_owner=False, $nickname=Null){
//echo "<pre>"; var_dump($a->user); killme();
function profile_tabs($a, $is_owner=False, $nickname=Null){
//echo "<pre>"; var_dump($a->user); killme();
if (is_null($nickname))
$nickname = $a->user['nickname'];
if (is_null($nickname))
$nickname = $a->user['nickname'];
if(x($_GET,'tab'))
$tab = notags(trim($_GET['tab']));
if(x($_GET,'tab'))
$tab = notags(trim($_GET['tab']));
$url = $a->get_baseurl() . '/profile/' . $nickname;
$url = $a->get_baseurl() . '/profile/' . $nickname;
$tabs = array(
array(
'label'=>t('Status'),
'url' => $url,
'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
),
array(
'label' => t('Profile'),
'url' => $url.'/?tab=profile',
'sel' => ((isset($tab) && $tab=='profile')?'active':''),
),
array(
'label' => t('Photos'),
'url' => $a->get_baseurl() . '/photos/' . $nickname,
'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
),
);
$tabs = array(
array(
'label'=>t('Status'),
'url' => $url,
'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
),
array(
'label' => t('Profile'),
'url' => $url.'/?tab=profile',
'sel' => ((isset($tab) && $tab=='profile')?'active':''),
),
array(
'label' => t('Photos'),
'url' => $a->get_baseurl() . '/photos/' . $nickname,
'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
),
);
if ($is_owner){
$tabs[] = array(
'label' => t('Events'),
'url' => $a->get_baseurl() . '/events',
'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
);
$tabs[] = array(
'label' => t('Personal Notes'),
'url' => $a->get_baseurl() . '/notes',
'sel' =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
);
if ($is_owner){
$tabs[] = array(
'label' => t('Events'),
'url' => $a->get_baseurl() . '/events',
'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
);
$tabs[] = array(
'label' => t('Personal Notes'),
'url' => $a->get_baseurl() . '/notes',
'sel' =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
);
}
$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
call_hooks('profile_tabs', $arr);
$tpl = get_markup_template('common_tabs.tpl');
return replace_macros($tpl,array('$tabs' => $arr['tabs']));
}
$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
call_hooks('profile_tabs', $arr);
$tpl = get_markup_template('common_tabs.tpl');
return replace_macros($tpl,array('$tabs' => $arr['tabs']));
}}
}
function get_my_url() {
if(x($_SESSION,'my_url'))
@ -1445,11 +1494,13 @@ function get_my_url() {
return false;
}
function zrl($s) {
function zrl($s,$force = false) {
if(! strlen($s))
return $s;
if(! strpos($s,'/profile/'))
return $s;
if((! strpos($s,'/profile/')) && (! $force))
return $s;
if($force && substr($s,-1,1) !== '/')
$s = $s . '/';
$achar = strpos($s,'?') ? '&' : '?';
$mine = get_my_url();
if($mine and ! link_compare($mine,$s))

View file

@ -1,19 +1,77 @@
-- phpMyAdmin SQL Dump
-- version 2.11.9.4
-- version 3.3.10.4
-- http://www.phpmyadmin.net
--
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
-- --------------------------------------------------------
--
-- Table structure for table `addon`
--
CREATE TABLE IF NOT EXISTS `addon` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(255) NOT NULL,
`version` char(255) NOT NULL,
`installed` tinyint(1) NOT NULL DEFAULT '0',
`timestamp` bigint(20) NOT NULL DEFAULT '0',
`plugin_admin` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `attach`
--
CREATE TABLE IF NOT EXISTS `attach` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`hash` char(64) NOT NULL,
`filename` char(255) NOT NULL,
`filetype` char(64) NOT NULL,
`filesize` int(11) NOT NULL,
`data` longblob NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
`deny_gid` mediumtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `auth_codes`
--
CREATE TABLE IF NOT EXISTS `auth_codes` (
`id` varchar(40) NOT NULL,
`client_id` varchar(20) NOT NULL,
`redirect_uri` varchar(200) NOT NULL,
`expires` int(11) NOT NULL,
`scope` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `cache`
--
CREATE TABLE IF NOT EXISTS `cache` (
`k` char(255) NOT NULL,
`v` text NOT NULL,
`updated` datetime NOT NULL,
PRIMARY KEY (`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
@ -32,17 +90,36 @@ CREATE TABLE IF NOT EXISTS `challenge` (
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `config` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cat` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
`k` char(255) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
`v` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `access`(`cat`,`k`)
--
-- Table structure for table `clients`
--
CREATE TABLE IF NOT EXISTS `clients` (
`client_id` varchar(20) NOT NULL,
`pw` varchar(20) NOT NULL,
`redirect_uri` varchar(200) NOT NULL,
`name` text,
`icon` text,
`uid` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`client_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `config`
--
CREATE TABLE IF NOT EXISTS `config` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cat` char(255) CHARACTER SET ascii NOT NULL,
`k` char(255) CHARACTER SET ascii NOT NULL,
`v` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `access` (`cat`,`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `contact`
@ -52,7 +129,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL COMMENT 'owner uid',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`self` tinyint(1) NOT NULL DEFAULT '0',
`self` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'boolean 1 == info for local UID, primarily name and photo to use in item displays.',
`remote_self` tinyint(1) NOT NULL DEFAULT '0',
`rel` tinyint(1) NOT NULL DEFAULT '0',
`duplex` tinyint(1) NOT NULL DEFAULT '0',
@ -60,7 +137,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
`name` char(255) NOT NULL,
`nick` char(255) NOT NULL,
`attag` char(255) NOT NULL,
`photo` text NOT NULL,
`photo` text NOT NULL COMMENT 'remote photo URL initially until approved',
`thumb` text NOT NULL,
`micro` text NOT NULL,
`site-pubkey` text NOT NULL,
@ -96,32 +173,219 @@ CREATE TABLE IF NOT EXISTS `contact` (
`forum` tinyint(1) NOT NULL DEFAULT '0',
`hidden` tinyint(1) NOT NULL DEFAULT '0',
`pending` tinyint(1) NOT NULL DEFAULT '1',
`rating` tinyint(1) NOT NULL DEFAULT '0',
`reason` text NOT NULL,
`rating` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-5 reputation, 0 unknown, 1 call police, 5 inscrutable',
`reason` text NOT NULL COMMENT 'why a rating was given - will help friends decide to make friends or not',
`closeness` tinyint(2) NOT NULL DEFAULT '99',
`info` mediumtext NOT NULL,
`profile-id` int(11) NOT NULL DEFAULT '0',
`bdyear` CHAR( 4 ) NOT NULL COMMENT 'birthday notify flag',
`profile-id` int(11) NOT NULL DEFAULT '0' COMMENT 'which profile to display - 0 is public default',
`bdyear` char(4) NOT NULL COMMENT 'birthday notify flag',
`bd` date NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `self` (`self`),
KEY `network` (`network`),
KEY `name` (`name`),
KEY `nick` (`nick`),
KEY `attag` (`attag`),
KEY `url` (`url`),
KEY `nurl` (`nurl`),
KEY `addr` (`addr`),
KEY `batch` (`batch`),
KEY `issued-id` (`issued-id`),
KEY `dfrn-id` (`dfrn-id`),
KEY `blocked` (`blocked`),
KEY `readonly` (`readonly`),
KEY `forum` (`forum`),
KEY `hidden` (`hidden`),
KEY `network` (`network`),
KEY `name` (`name`),
KEY `nick` (`nick`),
KEY `attag` (`attag`),
KEY `addr` (`addr`),
KEY `url` (`url`),
KEY `batch` (`batch`),
KEY `nurl` (`nurl`),
KEY `pending` (`pending`),
KEY `closeness` (`closeness`)
KEY `hidden` (`hidden`),
KEY `forum` (`forum`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `conv`
--
CREATE TABLE IF NOT EXISTS `conv` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`guid` char(64) NOT NULL,
`recips` mediumtext NOT NULL,
`uid` int(11) NOT NULL,
`creator` char(255) NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`subject` mediumtext NOT NULL,
PRIMARY KEY (`id`),
KEY `created` (`created`),
KEY `updated` (`updated`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `deliverq`
--
CREATE TABLE IF NOT EXISTS `deliverq` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cmd` char(32) NOT NULL,
`item` int(11) NOT NULL,
`contact` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `event`
--
CREATE TABLE IF NOT EXISTS `event` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`cid` int(11) NOT NULL,
`uri` char(255) NOT NULL,
`created` datetime NOT NULL,
`edited` datetime NOT NULL,
`start` datetime NOT NULL,
`finish` datetime NOT NULL,
`desc` text NOT NULL,
`location` text NOT NULL,
`type` char(255) NOT NULL,
`nofinish` tinyint(1) NOT NULL DEFAULT '0',
`adjust` tinyint(1) NOT NULL DEFAULT '1',
`allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
`deny_gid` mediumtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `fcontact`
--
CREATE TABLE IF NOT EXISTS `fcontact` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`url` char(255) NOT NULL,
`name` char(255) NOT NULL,
`photo` char(255) NOT NULL,
`request` char(255) NOT NULL,
`nick` char(255) NOT NULL,
`addr` char(255) NOT NULL,
`batch` char(255) NOT NULL,
`notify` char(255) NOT NULL,
`poll` char(255) NOT NULL,
`confirm` char(255) NOT NULL,
`priority` tinyint(1) NOT NULL,
`network` char(32) NOT NULL,
`alias` char(255) NOT NULL,
`pubkey` text NOT NULL,
`updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `addr` (`addr`),
KEY `network` (`network`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `ffinder`
--
CREATE TABLE IF NOT EXISTS `ffinder` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`cid` int(10) unsigned NOT NULL,
`fid` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `fserver`
--
CREATE TABLE IF NOT EXISTS `fserver` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`server` char(255) NOT NULL,
`posturl` char(255) NOT NULL,
`key` text NOT NULL,
PRIMARY KEY (`id`),
KEY `server` (`server`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `fsuggest`
--
CREATE TABLE IF NOT EXISTS `fsuggest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`cid` int(11) NOT NULL,
`name` char(255) NOT NULL,
`url` char(255) NOT NULL,
`request` char(255) NOT NULL,
`photo` char(255) NOT NULL,
`note` text NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `gcign`
--
CREATE TABLE IF NOT EXISTS `gcign` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`gcid` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `gcid` (`gcid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `gcontact`
--
CREATE TABLE IF NOT EXISTS `gcontact` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` char(255) NOT NULL,
`url` char(255) NOT NULL,
`nurl` char(255) NOT NULL,
`photo` char(255) NOT NULL,
`connect` char(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `nurl` (`nurl`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `glink`
--
CREATE TABLE IF NOT EXISTS `glink` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cid` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`gcid` int(11) NOT NULL,
`updated` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `cid` (`cid`),
KEY `uid` (`uid`),
KEY `gcid` (`gcid`),
KEY `updated` (`updated`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@ -155,6 +419,33 @@ CREATE TABLE IF NOT EXISTS `group_member` (
-- --------------------------------------------------------
--
-- Table structure for table `guid`
--
CREATE TABLE IF NOT EXISTS `guid` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`guid` char(64) NOT NULL,
PRIMARY KEY (`id`),
KEY `guid` (`guid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `hook`
--
CREATE TABLE IF NOT EXISTS `hook` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hook` char(255) NOT NULL,
`file` char(255) NOT NULL,
`function` char(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `intro`
--
@ -183,18 +474,18 @@ CREATE TABLE IF NOT EXISTS `intro` (
CREATE TABLE IF NOT EXISTS `item` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`guid` char(64) NOT NULL,
`uri` char(255) NOT NULL,
`uri` char(255) CHARACTER SET ascii NOT NULL,
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`contact-id` int(10) unsigned NOT NULL DEFAULT '0',
`type` char(255) NOT NULL,
`wall` tinyint(1) NOT NULL DEFAULT '0',
`gravity` tinyint(1) NOT NULL DEFAULT '0',
`parent` int(10) unsigned NOT NULL DEFAULT '0',
`parent-uri` char(255) NOT NULL,
`parent-uri` char(255) CHARACTER SET ascii NOT NULL,
`extid` char(255) NOT NULL,
`thr-parent` char(255) NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`edited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` datetime NOT NULL,
`edited` datetime NOT NULL,
`commented` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`received` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
@ -213,9 +504,9 @@ CREATE TABLE IF NOT EXISTS `item` (
`target-type` char(255) NOT NULL,
`target` text NOT NULL,
`postopts` text NOT NULL,
`plink` char(255) NOT NULL,
`plink` char(255) NOT NULL,
`resource-id` char(255) NOT NULL,
`event-id` int(10) unsigned NOT NULL,
`event-id` int(11) NOT NULL,
`tag` mediumtext NOT NULL,
`attach` mediumtext NOT NULL,
`inform` mediumtext NOT NULL,
@ -239,42 +530,59 @@ CREATE TABLE IF NOT EXISTS `item` (
`forum_mode` tinyint(1) NOT NULL DEFAULT '0',
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
KEY `guid` (`guid`),
KEY `uri` (`uri`),
KEY `uid` (`uid`),
KEY `contact-id` (`contact-id`),
KEY `type` (`type`),
KEY `parent` (`parent`),
KEY `parent-uri` (`parent-uri`),
KEY `extid` (`extid`),
KEY `created` (`created`),
KEY `edited` (`edited`),
KEY `received` (`received`),
KEY `moderated` (`moderated`),
KEY `visible` (`visible`),
KEY `spam` (`spam`),
KEY `starred` (`starred`),
KEY `bookmark` (`bookmark`),
KEY `deleted` (`deleted`),
KEY `origin` (`origin`),
KEY `forum_mode` (`forum_mode`),
KEY `last-child` (`last-child`),
KEY `unseen` (`unseen`),
KEY `extid` (`extid`),
KEY `received` (`received`),
KEY `starred` (`starred`),
KEY `guid` (`guid`),
KEY `origin` (`origin`),
KEY `wall` (`wall`),
KEY `author-name` (`author-name`),
KEY `forum_mode` (`forum_mode`),
KEY `author-link` (`author-link`),
KEY `bookmark` (`bookmark`),
KEY `moderated` (`moderated`),
KEY `spam` (`spam`),
KEY `author-name` (`author-name`),
FULLTEXT KEY `title` (`title`),
FULLTEXT KEY `body` (`body`),
FULLTEXT KEY `tag` (`tag`),
FULLTEXT KEY `file` (`file`),
FULLTEXT KEY `allow_cid` (`allow_cid`),
FULLTEXT KEY `allow_gid` (`allow_gid`),
FULLTEXT KEY `deny_cid` (`deny_cid`),
FULLTEXT KEY `deny_gid` (`deny_gid`)
FULLTEXT KEY `deny_gid` (`deny_gid`),
FULLTEXT KEY `tag` (`tag`),
FULLTEXT KEY `file` (`file`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `item_id`
--
CREATE TABLE IF NOT EXISTS `item_id` (
`iid` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`sid` char(255) NOT NULL,
`service` char(255) NOT NULL,
PRIMARY KEY (`iid`),
KEY `uid` (`uid`),
KEY `sid` (`sid`),
KEY `service` (`service`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `mail`
--
@ -287,26 +595,130 @@ CREATE TABLE IF NOT EXISTS `mail` (
`from-photo` char(255) NOT NULL,
`from-url` char(255) NOT NULL,
`contact-id` char(255) NOT NULL,
`convid` int(10) unsigned NOT NULL,
`convid` int(11) NOT NULL,
`title` char(255) NOT NULL,
`body` mediumtext NOT NULL,
`seen` tinyint(1) NOT NULL DEFAULT '0',
`seen` tinyint(1) NOT NULL,
`reply` tinyint(1) NOT NULL DEFAULT '0',
`replied` tinyint(1) NOT NULL DEFAULT '0',
`replied` tinyint(1) NOT NULL,
`unknown` tinyint(1) NOT NULL DEFAULT '0',
`uri` char(255) NOT NULL,
`parent-uri` char(255) NOT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `reply` (`reply`),
KEY `uid` (`uid`),
KEY `guid` (`guid`),
KEY `convid` (`convid`),
KEY `reply` (`reply`),
KEY `unknown` (`unknown`),
KEY `seen` (`seen`),
KEY `uri` (`uri`),
KEY `parent-uri` (`parent-uri`),
KEY `created` (`created`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
KEY `created` (`created`),
KEY `convid` (`convid`),
KEY `unknown` (`unknown`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `mailacct`
--
CREATE TABLE IF NOT EXISTS `mailacct` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`server` char(255) NOT NULL,
`port` int(11) NOT NULL,
`ssltype` char(16) NOT NULL,
`mailbox` char(255) NOT NULL,
`user` char(255) NOT NULL,
`pass` text NOT NULL,
`action` int(11) NOT NULL,
`movetofolder` char(255) NOT NULL,
`reply_to` char(255) NOT NULL,
`pubmail` tinyint(1) NOT NULL DEFAULT '0',
`last_check` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `manage`
--
CREATE TABLE IF NOT EXISTS `manage` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`mid` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `mid` (`mid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `notify`
--
CREATE TABLE IF NOT EXISTS `notify` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hash` char(64) NOT NULL,
`name` char(255) NOT NULL,
`url` char(255) NOT NULL,
`photo` char(255) NOT NULL,
`date` datetime NOT NULL,
`msg` mediumtext NOT NULL,
`uid` int(11) NOT NULL,
`link` char(255) NOT NULL,
`parent` int(11) NOT NULL,
`seen` tinyint(1) NOT NULL DEFAULT '0',
`type` int(11) NOT NULL,
`verb` char(255) NOT NULL,
`otype` char(16) NOT NULL,
PRIMARY KEY (`id`),
KEY `type` (`type`),
KEY `seen` (`seen`),
KEY `uid` (`uid`),
KEY `date` (`date`),
KEY `hash` (`hash`),
KEY `parent` (`parent`),
KEY `link` (`link`),
KEY `otype` (`otype`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `notify-threads`
--
CREATE TABLE IF NOT EXISTS `notify-threads` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`notify-id` int(11) NOT NULL,
`master-parent-item` int(10) unsigned NOT NULL DEFAULT '0',
`parent-item` int(10) unsigned NOT NULL DEFAULT '0',
`receiver-uid` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `master-parent-item` (`master-parent-item`),
KEY `receiver-uid` (`receiver-uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `pconfig`
--
CREATE TABLE IF NOT EXISTS `pconfig` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL DEFAULT '0',
`cat` char(255) CHARACTER SET ascii NOT NULL,
`k` char(255) CHARACTER SET ascii NOT NULL,
`v` mediumtext NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `access` (`uid`,`cat`,`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@ -317,8 +729,8 @@ CREATE TABLE IF NOT EXISTS `mail` (
CREATE TABLE IF NOT EXISTS `photo` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`contact-id` int(10) unsigned NOT NULL,
`guid` char(64) NOT NULL,
`contact-id` int(10) unsigned NOT NULL DEFAULT '0',
`guid` char(64) NOT NULL,
`resource-id` char(255) NOT NULL,
`created` datetime NOT NULL,
`edited` datetime NOT NULL,
@ -340,12 +752,49 @@ CREATE TABLE IF NOT EXISTS `photo` (
KEY `resource-id` (`resource-id`),
KEY `album` (`album`),
KEY `scale` (`scale`),
KEY `profile` (`profile`),
KEY `guid` (`guid`)
KEY `profile` (`profile`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `poll`
--
CREATE TABLE IF NOT EXISTS `poll` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`q0` mediumtext NOT NULL,
`q1` mediumtext NOT NULL,
`q2` mediumtext NOT NULL,
`q3` mediumtext NOT NULL,
`q4` mediumtext NOT NULL,
`q5` mediumtext NOT NULL,
`q6` mediumtext NOT NULL,
`q7` mediumtext NOT NULL,
`q8` mediumtext NOT NULL,
`q9` mediumtext NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `poll_result`
--
CREATE TABLE IF NOT EXISTS `poll_result` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`poll_id` int(11) NOT NULL,
`choice` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `poll_id` (`poll_id`),
KEY `choice` (`choice`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `profile`
--
@ -366,7 +815,6 @@ CREATE TABLE IF NOT EXISTS `profile` (
`country-name` char(255) NOT NULL,
`gender` char(32) NOT NULL,
`marital` char(255) NOT NULL,
`showwith` tinyint(1) NOT NULL DEFAULT '0',
`with` text NOT NULL,
`sexual` char(255) NOT NULL,
`politic` char(255) NOT NULL,
@ -403,7 +851,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
CREATE TABLE IF NOT EXISTS `profile_check` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`cid` int(10) unsigned NOT NULL,
`cid` int(10) unsigned NOT NULL DEFAULT '0',
`dfrn_id` char(255) NOT NULL,
`sec` char(255) NOT NULL,
`expire` int(11) NOT NULL,
@ -412,6 +860,59 @@ CREATE TABLE IF NOT EXISTS `profile_check` (
-- --------------------------------------------------------
--
-- Table structure for table `queue`
--
CREATE TABLE IF NOT EXISTS `queue` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cid` int(11) NOT NULL,
`network` char(32) NOT NULL,
`created` datetime NOT NULL,
`last` datetime NOT NULL,
`content` mediumtext NOT NULL,
`batch` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `cid` (`cid`),
KEY `network` (`network`),
KEY `created` (`created`),
KEY `last` (`last`),
KEY `batch` (`batch`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `register`
--
CREATE TABLE IF NOT EXISTS `register` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`hash` char(255) NOT NULL,
`created` datetime NOT NULL,
`uid` int(10) unsigned NOT NULL,
`password` char(255) NOT NULL,
`language` char(16) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `search`
--
CREATE TABLE IF NOT EXISTS `search` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`term` char(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `term` (`term`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `session`
--
@ -428,6 +929,58 @@ CREATE TABLE IF NOT EXISTS `session` (
-- --------------------------------------------------------
--
-- Table structure for table `sign`
--
CREATE TABLE IF NOT EXISTS `sign` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`iid` int(10) unsigned NOT NULL,
`signed_text` mediumtext NOT NULL,
`signature` text NOT NULL,
`signer` char(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `iid` (`iid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `spam`
--
CREATE TABLE IF NOT EXISTS `spam` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`spam` int(11) NOT NULL DEFAULT '0',
`ham` int(11) NOT NULL DEFAULT '0',
`term` char(255) NOT NULL,
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `spam` (`spam`),
KEY `ham` (`ham`),
KEY `term` (`term`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tokens`
--
CREATE TABLE IF NOT EXISTS `tokens` (
`id` varchar(40) NOT NULL,
`secret` text NOT NULL,
`client_id` varchar(20) NOT NULL,
`expires` int(11) NOT NULL,
`scope` varchar(200) NOT NULL,
`uid` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `user`
--
@ -441,7 +994,7 @@ CREATE TABLE IF NOT EXISTS `user` (
`email` char(255) NOT NULL,
`openid` char(255) NOT NULL,
`timezone` char(128) NOT NULL,
`language` char(32) NOT NULL DEFAULT 'en',
`language` char(16) NOT NULL DEFAULT 'en',
`register_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`login_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`default-location` char(255) NOT NULL,
@ -451,427 +1004,47 @@ CREATE TABLE IF NOT EXISTS `user` (
`prvkey` text NOT NULL,
`spubkey` text NOT NULL,
`sprvkey` text NOT NULL,
`verified` tinyint(1) unsigned NOT NULL DEFAULT '0',
`blocked` tinyint(1) unsigned NOT NULL DEFAULT '0',
`blockwall` tinyint(1) unsigned NOT NULL DEFAULT '0',
`hidewall` tinyint(1) unsigned NOT NULL DEFAULT '0',
`blocktags` tinyint(1) unsigned NOT NULL DEFAULT '0',
`unkmail` tinyint(1) unsigned NOT NULL DEFAULT '0',
`cntunkmail` int(11) unsigned NOT NULL DEFAULT '10',
`notify-flags` int(11) unsigned NOT NULL DEFAULT '65535',
`page-flags` int(11) unsigned NOT NULL DEFAULT '0',
`verified` tinyint(1) unsigned NOT NULL DEFAULT '0',
`blocked` tinyint(1) unsigned NOT NULL DEFAULT '0',
`blockwall` tinyint(1) NOT NULL DEFAULT '0',
`hidewall` tinyint(1) NOT NULL DEFAULT '0',
`blocktags` tinyint(1) NOT NULL DEFAULT '0',
`unkmail` tinyint(1) NOT NULL DEFAULT '0',
`cntunkmail` int(11) NOT NULL DEFAULT '10',
`notify-flags` int(11) unsigned NOT NULL DEFAULT '65535',
`page-flags` int(11) NOT NULL DEFAULT '0',
`prvnets` tinyint(1) NOT NULL DEFAULT '0',
`pwdreset` char(255) NOT NULL,
`maxreq` int(11) NOT NULL DEFAULT '10',
`expire` int(11) unsigned NOT NULL DEFAULT '0',
`account_expired` tinyint( 1 ) NOT NULL DEFAULT '0',
`expire` int(10) unsigned NOT NULL DEFAULT '0',
`account_expired` tinyint(1) NOT NULL DEFAULT '0',
`account_expires_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`allow_cid` mediumtext NOT NULL,
`allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
`deny_gid` mediumtext NOT NULL,
`openidserver` text NOT NULL,
PRIMARY KEY (`uid`),
PRIMARY KEY (`uid`),
KEY `nickname` (`nickname`),
KEY `login_date` (`login_date`),
KEY `account_expired` (`account_expired`),
KEY `hidewall` (`hidewall`),
KEY `blockwall` (`blockwall`),
KEY `unkmail` (`unkmail`),
KEY `cntunkmail` (`cntunkmail`),
KEY `blocked` (`blocked`),
KEY `verified` (`verified`),
KEY `login_date` (`login_date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `register` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`hash` CHAR( 255 ) NOT NULL ,
`created` DATETIME NOT NULL ,
`uid` INT(11) UNSIGNED NOT NULL,
`password` CHAR(255) NOT NULL,
`language` CHAR(16) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `clients` (
`client_id` VARCHAR( 20 ) NOT NULL ,
`pw` VARCHAR( 20 ) NOT NULL ,
`redirect_uri` VARCHAR( 200 ) NOT NULL ,
`name` VARCHAR( 128 ) NULL DEFAULT NULL,
`icon` VARCHAR( 255 ) NULL DEFAULT NULL,
`uid` INT NOT NULL DEFAULT 0,
PRIMARY KEY ( `client_id` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `tokens` (
`id` VARCHAR( 40 ) NOT NULL ,
`secret` VARCHAR( 40 ) NOT NULL ,
`client_id` VARCHAR( 20 ) NOT NULL ,
`expires` INT NOT NULL ,
`scope` VARCHAR( 200 ) NOT NULL ,
`uid` INT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `auth_codes` (
`id` VARCHAR( 40 ) NOT NULL ,
`client_id` VARCHAR( 20 ) NOT NULL ,
`redirect_uri` VARCHAR( 200 ) NOT NULL ,
`expires` INT NOT NULL ,
`scope` VARCHAR( 250 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `queue` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cid` INT NOT NULL ,
`network` CHAR( 32 ) NOT NULL,
`created` DATETIME NOT NULL ,
`last` DATETIME NOT NULL ,
`content` MEDIUMTEXT NOT NULL,
`batch` TINYINT( 1 ) NOT NULL DEFAULT '0',
INDEX ( `cid` ),
INDEX ( `created` ),
INDEX ( `last` ),
INDEX ( `network` ),
INDEX ( `batch` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `pconfig` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL DEFAULT '0',
`cat` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
`k` CHAR( 255 ) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL ,
`v` MEDIUMTEXT NOT NULL,
UNIQUE KEY `access`(`cat`, `k`)
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `hook` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`hook` CHAR( 255 ) NOT NULL ,
`file` CHAR( 255 ) NOT NULL ,
`function` CHAR( 255 ) NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `addon` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` CHAR( 255 ) NOT NULL ,
`version` CHAR( 255 ) NOT NULL ,
`installed` TINYINT( 1 ) NOT NULL DEFAULT '0' ,
`timestamp` BIGINT NOT NULL DEFAULT '0' ,
`plugin_admin` TINYINT( 1 ) NOT NULL DEFAULT '0'
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `event` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`cid` INT NOT NULL ,
`uri` CHAR( 255 ) NOT NULL,
`created` DATETIME NOT NULL ,
`edited` DATETIME NOT NULL ,
`start` DATETIME NOT NULL ,
`finish` DATETIME NOT NULL ,
`desc` TEXT NOT NULL ,
`location` TEXT NOT NULL ,
`type` CHAR( 255 ) NOT NULL ,
`nofinish` TINYINT( 1 ) NOT NULL DEFAULT '0',
`adjust` TINYINT( 1 ) NOT NULL DEFAULT '1',
`allow_cid` MEDIUMTEXT NOT NULL ,
`allow_gid` MEDIUMTEXT NOT NULL ,
`deny_cid` MEDIUMTEXT NOT NULL ,
`deny_gid` MEDIUMTEXT NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `cache` (
`k` CHAR( 255 ) NOT NULL PRIMARY KEY ,
`v` TEXT NOT NULL,
`updated` DATETIME NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `fcontact` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`url` CHAR( 255 ) NOT NULL ,
`name` CHAR( 255 ) NOT NULL ,
`photo` CHAR( 255 ) NOT NULL ,
`request` CHAR( 255 ) NOT NULL,
`nick` CHAR( 255 ) NOT NULL ,
`addr` CHAR( 255 ) NOT NULL ,
`batch` CHAR( 255) NOT NULL,
`notify` CHAR( 255 ) NOT NULL ,
`poll` CHAR( 255 ) NOT NULL ,
`confirm` CHAR( 255 ) NOT NULL ,
`priority` TINYINT( 1 ) NOT NULL ,
`network` CHAR( 32 ) NOT NULL ,
`alias` CHAR( 255 ) NOT NULL ,
`pubkey` TEXT NOT NULL ,
`updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
INDEX ( `addr` ),
INDEX ( `network` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `ffinder` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT UNSIGNED NOT NULL ,
`cid` INT UNSIGNED NOT NULL ,
`fid` INT UNSIGNED NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `fsuggest` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`cid` INT NOT NULL ,
`name` CHAR( 255 ) NOT NULL ,
`url` CHAR( 255 ) NOT NULL ,
`request` CHAR( 255 ) NOT NULL,
`photo` CHAR( 255 ) NOT NULL ,
`note` TEXT NOT NULL ,
`created` DATETIME NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `mailacct` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL,
`server` CHAR( 255 ) NOT NULL ,
`port` INT NOT NULL,
`ssltype` CHAR( 16 ) NOT NULL,
`mailbox` CHAR( 255 ) NOT NULL,
`user` CHAR( 255 ) NOT NULL ,
`pass` TEXT NOT NULL ,
`reply_to` CHAR( 255 ) NOT NULL ,
`action` INT NOT NULL ,
`movetofolder` CHAR(255) NOT NULL ,
`pubmail` TINYINT(1) NOT NULL DEFAULT '0',
`last_check` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `attach` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`hash` CHAR(64) NOT NULL,
`filename` CHAR(255) NOT NULL,
`filetype` CHAR( 64 ) NOT NULL ,
`filesize` INT NOT NULL ,
`data` LONGBLOB NOT NULL ,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`edited` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`allow_cid` MEDIUMTEXT NOT NULL ,
`allow_gid` MEDIUMTEXT NOT NULL ,
`deny_cid` MEDIUMTEXT NOT NULL ,
`deny_gid` MEDIUMTEXT NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `guid` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`guid` CHAR( 64 ) NOT NULL ,
INDEX ( `guid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `sign` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`iid` INT UNSIGNED NOT NULL ,
`signed_text` MEDIUMTEXT NOT NULL ,
`signature` TEXT NOT NULL ,
`signer` CHAR( 255 ) NOT NULL ,
INDEX ( `iid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `deliverq` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cmd` CHAR( 32 ) NOT NULL ,
`item` INT NOT NULL ,
`contact` INT NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `search` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`term` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
INDEX ( `uid` ),
INDEX ( `term` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `fserver` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`server` CHAR( 255 ) NOT NULL ,
`posturl` CHAR( 255 ) NOT NULL ,
`key` TEXT NOT NULL,
INDEX ( `server` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `gcontact` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` CHAR( 255 ) NOT NULL ,
`url` CHAR( 255 ) NOT NULL ,
`nurl` CHAR( 255 ) NOT NULL ,
`photo` CHAR( 255 ) NOT NULL,
`connect` CHAR( 255 ) NOT NULL,
INDEX ( `nurl` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `glink` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`cid` INT NOT NULL ,
`uid` INT NOT NULL ,
`gcid` INT NOT NULL,
`updated` DATETIME NOT NULL,
INDEX ( `cid` ),
INDEX ( `uid` ),
INDEX ( `gcid` ),
INDEX ( `updated` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `gcign` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`gcid` INT NOT NULL,
INDEX ( `uid` ),
INDEX ( `gcid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `conv` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`guid` CHAR( 64 ) NOT NULL ,
`recips` MEDIUMTEXT NOT NULL ,
`uid` INT NOT NULL,
`creator` CHAR( 255 ) NOT NULL ,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`subject` MEDIUMTEXT NOT NULL,
INDEX ( `created` ),
INDEX ( `updated` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `notify` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`hash` CHAR( 64 ) NOT NULL,
`type` INT( 11 ) NOT NULL ,
`name` CHAR( 255 ) NOT NULL ,
`url` CHAR( 255 ) NOT NULL ,
`photo` CHAR( 255 ) NOT NULL ,
`date` DATETIME NOT NULL ,
`msg` MEDIUMTEXT NOT NULL ,
`uid` INT NOT NULL ,
`link` CHAR( 255 ) NOT NULL ,
`parent` INT( 11 ) NOT NULL,
`seen` TINYINT( 1 ) NOT NULL DEFAULT '0',
`verb` CHAR( 255 ) NOT NULL,
`otype` CHAR( 16 ) NOT NULL,
INDEX ( `hash` ),
INDEX ( `type` ),
INDEX ( `uid` ),
INDEX ( `link` ),
INDEX ( `parent` ),
INDEX ( `seen` ),
INDEX ( `date` ),
INDEX ( `otype` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `item_id` (
`iid` INT NOT NULL ,
`uid` INT NOT NULL ,
`face` CHAR( 255 ) NOT NULL ,
`dspr` CHAR( 255 ) NOT NULL ,
`twit` CHAR( 255 ) NOT NULL ,
`stat` CHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `iid` ),
INDEX ( `uid` ),
INDEX ( `face` ),
INDEX ( `dspr` ),
INDEX ( `twit` ),
INDEX ( `stat` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `manage` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`mid` INT NOT NULL,
INDEX ( `uid` ),
INDEX ( `mid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `poll_result` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`poll_id` INT NOT NULL ,
`choice` INT NOT NULL ,
INDEX ( `poll_id` ),
INDEX ( `choice` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `poll` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`q0` MEDIUMTEXT NOT NULL ,
`q1` MEDIUMTEXT NOT NULL ,
`q2` MEDIUMTEXT NOT NULL ,
`q3` MEDIUMTEXT NOT NULL ,
`q4` MEDIUMTEXT NOT NULL ,
`q5` MEDIUMTEXT NOT NULL ,
`q6` MEDIUMTEXT NOT NULL ,
`q7` MEDIUMTEXT NOT NULL ,
`q8` MEDIUMTEXT NOT NULL ,
`q9` MEDIUMTEXT NOT NULL ,
INDEX ( `uid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
KEY `unkmail` (`unkmail`),
KEY `cntunkmail` (`cntunkmail`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `notify-threads`
-- Table structure for table `userd`
--
-- notify-id: notify.id of the first notification of this thread
-- master-parent-item: item.id of the parent item
-- parent-item: item.id of the imediate parent (only for multi-thread)
-- not used yet.
-- receiver-uid: user.uid of the receiver of this notification.
--
-- If we query for a master-parent-item and receiver-uid...
-- * Returns 1 item: this is not the parent notification,
-- so just "follow" the thread (references to this notification)
-- * Returns no item: this is the first notification related to
-- this parent item. So, create the record and use the message-id
-- header.
CREATE TABLE IF NOT EXISTS `notify-threads` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`notify-id` INT NOT NULL,
`master-parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
`parent-item` INT( 10 ) unsigned NOT NULL DEFAULT '0',
`receiver-uid` INT NOT NULL,
INDEX ( `master-parent-item` ),
INDEX ( `receiver-uid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `spam` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL,
`spam` INT NOT NULL DEFAULT '0',
`ham` INT NOT NULL DEFAULT '0',
`term` CHAR(255) NOT NULL,
`date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
INDEX ( `uid` ),
INDEX ( `spam` ),
INDEX ( `ham` ),
INDEX ( `term` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `userd` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` CHAR( 255 ) NOT NULL,
INDEX ( `username` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` char(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

View file

@ -6,40 +6,41 @@ Account Basics
**Registration**
Not all Friendica sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site registration page. The strength of our network is that lots of different sites are all completely compatible with each other. If the site you're visting doesn't allow registration, or you think you might prefer another one, you can find a <a href ="http://dir.friendica.com/siteinfo">list of public servers here</a>, and find one that meets your needs.
Not all Friendica sites allow open registration. If registration is allowed, you will see a "Register" link immediately below the login prompts on the site home page. Following this link will take you to the site registration page. The strength of our network is that lots of different sites are all completely compatible with each other. If the site you're visting doesn't allow registration, or you think you might prefer another one, you can find a <a href="http://dir.friendica.com/siteinfo">list of public servers here</a>, and find one that meets your needs.
If you'd like to have your own server, you can do that too. Visit <a href="http://friendica.com/download">the Friendica website</a> to download the code with setup instructions. It's a very simple install process that anybody experienced in hosting websites, or with basic Linux experience can handle easily.
If you'd like to have your own server, you can do that too. Visit <a href = "http://friendica.com/download">the Friendica website</a> to download the code with setup instructions. It's a very simple install process that anybody experienced in hosting websites, or with basic Linux experience can handle easily.
*OpenID*
The first field on the Registration page is for an OpenID address. If you do not have an OpenID address or do not wish to use OpenID, leave this field blank. If you have an OpenID account elsewhere and wish to use it, enter the address into this field and click 'Register'. Friendica will attempt to extract as much information as possible from your OpenID provider and return to this page with those items already filled in.
*Your Full Name*
Please provide your full name **as you would like it to be displayed on this system**. Most people use their real name for this, but you're under no obligation to do so yourself.
*Email Address*
Please provide a valid email address. Your email address is **never** published. We need this to send you account information and your login details. You may also occasionally receive notifications of incoming messages or items requiring your attention, but you have the ability to completely disable these from your Settings page once you have logged in. This doesn't have to be your primary email address, but it does need to be a real email address. You can't get your initial password, or reset a lost password later without it. This is the only bit of personal information that has to be accurate.
*Nickname*
A nickname is used to generate web addresses for many of your personal pages, and is also treated like an email address when establishing communications with others. Due to the way that the nickname is used, it has some limitations. It must contain only US-ASCII text characters and numbers, and must also start with a text character. It also must be unique on this system. This is used in many places to identify your account, and once set - cannot be changed.
*Directory Publishing*
The Registration form also allows you to choose whether or not to list your account in the online directory. This is like a "phone book" and you may choose to be unlisted. We recommend that you select 'Yes' so that other people (friends, family, etc.) will be able to find you. If you choose 'No', you will essentially be invisible and have few opportunities for interaction. Whichever you choose, this can be changed any time from your Settings page after you login.
*Register*
Once you have provided the necessary details, click the 'Register' button. An email will be sent to you providing your account login details. Please watch your email (including spam folders) for your registration details and initial password.
**Login Page**
On the 'Login' page, please enter your login information that was provided during registration. You may use either your nickname or email address as a Login Name.
@ -55,6 +56,7 @@ Otherwise, enter your password. This will have been initially provided in your r
After your first login, please visit the 'Settings' page from the top menu bar and change your password to something that you will remember.
**Getting Started**
A ['Tips for New Members'](newmember) link will show up on your home page for two weeks to provide some important Getting Started information.

View file

@ -6,11 +6,11 @@ Bugs and Issues
If your server has a support page, you should report any bugs/issues you encounter there first. Reporting to your support page before reporting to the developers makes their job easier, as they don't have to deal with bug reports that might not have anything to do with them, and that helps us get new features faster.
If you're a technical user, or your site doesn't have a support page, you'll need to use the <a href = "http://bugs.friendica.com/">Bug Tracker</a>. Please perform a search to see if there's already an open bug that matches yours before submitting anything.
If you're a technical user, or your site doesn't have a support page, you'll need to use the <a href="http://bugs.friendica.com/">Bug Tracker</a>. Please perform a search to see if there's already an open bug that matches yours before submitting anything.
Try to provide as much information as you can about the bug, including the **full** text of any error messages or notices, and any steps required to replicate the problem in as much detail as possible. It's generally better to provide too much information than not enough.
<a href = "http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">See this article</a> to learn more about submitting **good** bug reports.
<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">See this article</a> to learn more about submitting **good** bug reports.
**Bug Sponsorship**

View file

@ -5,11 +5,11 @@ Making Friends
Friendship in Friendica can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody. How do you do it?
The easiest thing to do is to join the <a href = "http://kakste.com/profile/newhere">New Here</a> group. This group is especially for people new to the Friendica network. Simply connect to the group, post to the wall, and make new friends. You don't even have to like us - comment on a few of our posts, and other people will start to add you too.
The easiest thing to do is to join the <a href="http://kakste.com/profile/newhere">New Here</a> group. This group is especially for people new to the Friendica network. Simply connect to the group, post to the wall, and make new friends. You don't even have to like us - comment on a few of our posts, and other people will start to add you too.
The next thing you can do is look at the Directory. The directory is split up into two parts. If you click the directory button, you will be presented with a list of all members (who chose to be listed) on your server. You'll also see a link to the Global Directory. If you click through to the global directory, you will be presented with a list of everybody who chose to be listed across all instances of Friendica. You will also see a "Show Community Forums" link, which will direct you to Groups, Forums and Fanpages. You connect to people, groups and forums in the same way, except groups and forums will automatically accept your introduction request, whereas a human will approve you manually.
To connect with other Friendica user
To connect with other Friendica users:
Visit their profile. Just beneath their profile picture will be the word 'Connect' (we're assuming this is an English language profile).

View file

@ -164,10 +164,15 @@ Your module functions will often contain the function plugin_name_content(&$a),
**'init_1'** - called just after DB has been opened and before session start
$b is not used or passed
**'page_end'** - called after HTML content functions have completed
$b is (string) HTML of content div
**'avatar_lookup'** - called when looking up the avatar
$b is (array)
'size' => the size of the avatar that will be looked up
'email' => email to look up the avatar for
'url' => the (string) generated URL of the avatar
A complete list of all hook callbacks with file locations (generated 14-Feb-2012): Please see the source for details of any hooks not documented above.

View file

@ -172,16 +172,6 @@ $a->config['system']['no_regfullname'] = true;
```
**Gravatars**
During registration, we will try to automatically find a user photo for you on the web using the gravatar service. You may turn this off by setting 'no_gravatar' to true. Default is false.
Config:
```
$a->config['system']['no_gravatar'] = true;
```
**OpenID**
By default, OpenID may be used for both registration and logins. If you do not wish to make OpenID facilities available on your system (at all), set 'no_openid' to true. Default is false.

View file

@ -1,3 +1,5 @@
[[!meta title="And Finally..."]]
And that brings the Quick Start to an end.
Here are some more things to help get you started:
@ -5,20 +7,20 @@ Here are some more things to help get you started:
**Groups**
- <a href = "https://kakste.com/profile/newhere">New Here</a> - a group for people new to Friendica
- <a href="https://kakste.com/profile/newhere">New Here</a> - a group for people new to Friendica
- <a href = "http://helpers.pyxis.uberspace.de/profile/helpers">Friendica Support</a> - problems? This is the place to ask.
- <a href="http://helpers.pyxis.uberspace.de/profile/helpers">Friendica Support</a> - problems? This is the place to ask.
- <a href = "https://kakste.com/profile/public_stream">Public Stream</a> - a place to talk about anything to anyone.
- <a href="https://kakste.com/profile/public_stream">Public Stream</a> - a place to talk about anything to anyone.
- <a href = "https://letstalk.pyxis.uberspace.de/profile/letstalk">Let's Talk</a> a group for finding people and groups who share similar interests.
- <a href="https://letstalk.pyxis.uberspace.de/profile/letstalk">Let's Talk</a> a group for finding people and groups who share similar interests.
- <a href = "http://newzot.hydra.uberspace.de/profile/newzot">Local Friendica</a> a page for local Friendica groups</a>
- <a href="http://newzot.hydra.uberspace.de/profile/newzot">Local Friendica</a> a page for local Friendica groups</a>
**Documentation**
- <a href = "/help/Connectors">Connecting to more networks</a>
- <a href = "/help">Help Index</a>
- <a href="help/Connectors">Connecting to more networks</a>
- <a href="help">Help Index</a>

View file

@ -1,11 +1,11 @@
This is the global directory. If you get lost, you can <a href = "/help/groupsandpages">click this link</a> to bring yourself back here.
This is the global directory. If you get lost, you can <a href = "help/groupsandpages">click this link</a> to bring yourself back here.
On this page, you'll find a collection of groups, forums and celebrity pages. Groups are not real people. Connecting to them is similar to "liking" something on Facebook, or signing up for a new forum. You don't have to feel awkward about introducing yourself to a new person, because they're not people!
When you connect to a group, all messages to that group will start appearing in your network tab. You can comment on these posts, or post to the group yourself without ever having to add any of the groups members. This is a great way to make friends dynamically - you'll find people you like and add each other naturally instead of adding random strangers. Simply find a group you're interested in, and connect to it the same way you did with people in the last section. There are a lot of groups, and you're likely to get lost. Remember the link at the top of this page will bring you back here.
Once you've added some groups, <a href = "/help/andfinally">move on to the next section</a>.
Once you've added some groups, <a href="help/andfinally">move on to the next section</a>.
<iframe src="http://dir.friendica.com/directory/forum" width="950" height = "600"></iframe>
<iframe src="http://dir.friendica.com/directory/forum" width="950" height="600"></iframe>

View file

@ -6,8 +6,8 @@ This is a bit like your Facebook wall. It's where all your status messgages are
Once you've finished writing your post, click on the padlock icon to select who can see it. If you do not use the padlock icon, your post will be public. This means it will appear to anybody who views your profile, and in the community tab if your site has it enabled, as well as in the network tab of any of your contacts.
Play around with this a bit, then when you're ready to move on, we'll take a look at the <a href = "/help/network">Network Tab</a>
Play around with this a bit, then when you're ready to move on, we'll take a look at the <a href="help/network">Network Tab</a>
<iframe src="/login" width="950" height = "600"></iframe>
<iframe src="login" width="950" height="600"></iframe>

View file

@ -1,11 +1,11 @@
This is your Suggested Friends page. If you get lost, you can <a href = "/help/makenewfriends">click this link</a> to bring yourself back here.
This is your Suggested Friends page. If you get lost, you can <a href="help/makenewfriends">click this link</a> to bring yourself back here.
This is a bit like the Friend Suggestions page of Facebook. Everybody on this list has agreed that they may be suggested as a friend. This means they're unlikely to refuse an introduction you send, and they want to meet new people too!
See somebody you like the look of? Click the connect button beneath their photograph. This will bring you to the introductions page. Fill in the form as instructed, and add a small note (optional). Now, wait a bit and they'll accept your request - note that these are real people, and it might take a while. Now you've added one, you're probably lost. Click the link at the top of this page to go back to the suggested friends list and add some more.
Feel uncomfortable adding people you don't know? Don't worry - that's where <a href = "/help/groupsandpages">Groups and Pages</a> come in!
Feel uncomfortable adding people you don't know? Don't worry - that's where <a href="help/groupsandpages">Groups and Pages</a> come in!
<iframe src="/suggest" width="950" height = "600"></iframe>
<iframe src="suggest" width="950" height="600"></iframe>

View file

@ -1,9 +1,9 @@
This is your Network Tab. If you get lost, you can <a href = "/help/network">click this link</a> to bring yourself back here.
This is your Network Tab. If you get lost, you can <a href="help/network">click this link</a> to bring yourself back here.
This is a bit like the Newsfeed at Facebook or the Stream at Diaspora. It's where all the posts from your contacts, groups, and feeds will appear. If you're new, you won't see anything in this page, unless you posted your status in the last step. If you've already added a few friends, you'll be able to see their posts. Here, you can comment, like, or dislike posts, or click on somebody's name to visit their profile page where you can write on their wall.
Now we need to fill it up, the first step, is to <a href = "/help/peopleyouknow"> add people you already know from Facebook</a>.
Now we need to fill it up, the first step, is to <a href="help/peopleyouknow"> add people you already know from Facebook</a>.
<iframe src="/network" width="950" height = "600"></iframe>
<iframe src="network" width="950" height="600"></iframe>

View file

@ -1,13 +1,13 @@
This is your connector settings page. If you get lost, you can <a href = "/help/network">click this link</a> to bring yourself back here.
This is your connector settings page. If you get lost, you can <a href="help/network">click this link</a> to bring yourself back here.
This is the bit that makes Friendica unique. You can connect to <i>anybody on the internet</i> from your Friendica account using this page! The available connectors varies depending on which plugins you have installed, but for now, we'll walk you through Facebook. Note that not all servers have the Facebook connector installed. If you can't find it in the list below, don't worry, we'll look at ways of connecting to more people in the following pages.
The biggest of all social networks is Facebook. Fortunately, this connector is really easy. Scroll down the page, and click Facebook Connector Settings. Enter your Facebook user name and password and let the application (the connector) do everything the options suggest. You can <a href = "https://github.com/friendica/friendica/wiki/How-to:-Friendica%E2%80%99s-Facebook-connector" target="new">fine tune this</a> or experiment with the other connectors too. If you need help, you can always ask at <a href = "http://helpers.pyxis.uberspace.de/profile/helpers" target="new">Friendica Support</a> or <a href = "/help/Connectors" target="new">see the instructions here</a>.
The biggest of all social networks is Facebook. Fortunately, this connector is really easy. Scroll down the page, and click Facebook Connector Settings. Enter your Facebook user name and password and let the application (the connector) do everything the options suggest. You can <a href="https://github.com/friendica/friendica/wiki/How-to:-Friendica%E2%80%99s-Facebook-connector" target="_blank">fine tune this</a> or experiment with the other connectors too. If you need help, you can always ask at <a href="http://helpers.pyxis.uberspace.de/profile/helpers" target="_blank">Friendica Support</a> or <a href="help/Connectors" target="_blank">see the instructions here</a>.
When you're ready, we can move on to <a href = "/help/makingnewfriends">making new friends</a>.
When you're ready, we can move on to <a href="help/makingnewfriends">making new friends</a>.
<iframe src="/settings/connectors" width="950" height = "600"></iframe>
<iframe src="settings/connectors" width="950" height="600"></iframe>

View file

@ -23,16 +23,24 @@ function user_remove($uid) {
);
q("DELETE FROM `contact` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `gcign` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `group_member` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `intro` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `event` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `item` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `item_id` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `mail` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `mailacct` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `manage` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `notify` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `photo` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `attach` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile_check` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `search` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `spam` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
if($uid == local_user()) {
unset($_SESSION['authenticated']);
@ -134,11 +142,11 @@ function contact_photo_menu($contact) {
$posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id'];
$menu = Array(
t("View status") => $status_link,
t("View profile") => $profile_link,
t("View photos") => $photos_link,
t("View recent") => $posts_link,
t("Edit contact") => $contact_url,
t("View Status") => $status_link,
t("View Profile") => $profile_link,
t("View Photos") => $photos_link,
t("Network Posts") => $posts_link,
t("Edit Contact") => $contact_url,
t("Send PM") => $pm_url,
);
@ -150,7 +158,7 @@ function contact_photo_menu($contact) {
$o = "";
foreach($menu as $k=>$v){
if ($v!="") {
if(($k !== t("View recent")) && ($k !== t("Send PM")))
if(($k !== t("Network Posts")) && ($k !== t("Send PM")))
$o .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
else
$o .= "<li><a href=\"$v\">$k</a></li>\n";
@ -158,3 +166,36 @@ function contact_photo_menu($contact) {
}
return $o;
}}
function random_profile() {
$r = q("select url from gcontact where url like '%%://%%/profile/%%' order by rand() limit 1");
if(count($r))
return dirname($r[0]['url']);
return '';
}
function contacts_not_grouped($uid,$start = 0,$count = 0) {
if(! $count) {
$r = q("select count(*) as total from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ",
intval($uid),
intval($uid)
);
return $r;
}
$r = q("select * from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) and blocked = 0 and pending = 0 limit %d, %d",
intval($uid),
intval($uid),
intval($start),
intval($count)
);
return $r;
}

View file

@ -446,7 +446,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
$phost = substr($url,strpos($url,'@')+1);
$profile = 'http://' . $phost;
// fix nick character range
$vcard = array('fn' => $name, 'nick' => $name, 'photo' => gravatar_img($url));
$vcard = array('fn' => $name, 'nick' => $name, 'photo' => avatar_img($url));
$notify = 'smtp ' . random_string();
$poll = 'email ' . random_string();
$priority = 0;
@ -655,7 +655,7 @@ function probe_url($url, $mode = PROBE_NORMAL) {
}
if((! $vcard['photo']) && strlen($email))
$vcard['photo'] = gravatar_img($email);
$vcard['photo'] = avatar_img($email);
if($poll === $profile)
$lnk = $feed->get_permalink();
if(isset($lnk) && strlen($lnk))

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

View file

@ -12,6 +12,7 @@ function follow_widget() {
}
function findpeople_widget() {
require_once('include/Contact.php');
$a = get_app();
@ -32,6 +33,7 @@ function findpeople_widget() {
'$findthem' => t('Find'),
'$suggest' => t('Friend Suggestions'),
'$similar' => t('Similar Interests'),
'$random' => t('Random Profile'),
'$inv' => t('Invite Friends')
));

View file

@ -810,11 +810,11 @@ function item_photo_menu($item){
}
$menu = Array(
t("View status") => $status_link,
t("View profile") => $profile_link,
t("View photos") => $photos_link,
t("View recent") => $posts_link,
t("Edit contact") => $contact_url,
t("View Status") => $status_link,
t("View Profile") => $profile_link,
t("View Photos") => $photos_link,
t("Network Posts") => $posts_link,
t("Edit Contact") => $contact_url,
t("Send PM") => $pm_url,
);

View file

@ -212,6 +212,7 @@ function group_side($every="contacts",$each="group",$edit = false, $group_id = 0
'$title' => t('Groups'),
'$edittext' => t('Edit group'),
'$createtext' => t('Create a new group'),
'$ungrouped' => (($every === 'contacts') ? t('Contacts not in any group') : ''),
'$groups' => $groups,
'$add' => t('add'),
));

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(x($category)) {
$sql_extra .= file_tag_file_query('item',$category,'category');
}
if($public_feed) {
if(! $converse)
$sql_extra .= " AND `contact`.`self` = 1 ";
@ -1856,6 +1866,8 @@ function local_delivery($importer,$data) {
$feed->enable_order_by_date(false);
$feed->init();
/*
// Currently unsupported - needs a lot of work
$reloc = $feed->get_feed_tags( NAMESPACE_DFRN, 'relocate' );
if(isset($reloc[0]['child'][NAMESPACE_DFRN])) {
$base = $reloc[0]['child'][NAMESPACE_DFRN];
@ -1880,6 +1892,7 @@ function local_delivery($importer,$data) {
// schedule a scan?
}
*/
// handle friend suggestion notification
@ -2971,12 +2984,23 @@ function item_expire($uid,$days) {
if($expire_items==0 && $item['type']!='note')
continue;
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($item['id'])
);
$r = q("DELETE FROM item_id where iid in (select id from item where parent = %d) and uid = %d",
intval($item['id']),
intval($uid)
);
$r = q("DELETE FROM sign where iid in (select id from item where parent = %d) and uid = %d",
intval($item['id']),
intval($uid)
);
// kill the kids
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",

View file

@ -587,13 +587,14 @@ function fetch_xrd_links($url) {
if(! function_exists('validate_url')) {
function validate_url(&$url) {
// no naked subdomains
if(strpos($url,'.') === false)
// no naked subdomains (allow localhost for tests)
if(strpos($url,'.') === false && strpos($url,'/localhost/') === false)
return false;
if(substr($url,0,4) != 'http')
$url = 'http://' . $url;
$h = @parse_url($url);
if(($h) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR))) {
return true;
}
@ -692,18 +693,23 @@ function allowed_email($email) {
}}
if(! function_exists('gravatar_img')) {
function gravatar_img($email) {
$size = 175;
$opt = 'identicon'; // psuedo-random geometric pattern if not found
$rating = 'pg';
$hash = md5(trim(strtolower($email)));
$url = 'http://www.gravatar.com/avatar/' . $hash . '.jpg'
. '?s=' . $size . '&d=' . $opt . '&r=' . $rating;
if(! function_exists('avatar_img')) {
function avatar_img($email) {
logger('gravatar: ' . $email . ' ' . $url);
return $url;
$a = get_app();
$avatar['size'] = 175;
$avatar['email'] = $email;
$avatar['url'] = '';
$avatar['success'] = false;
call_hooks('avatar_lookup', $avatar);
if(! $avatar['success'])
$avatar['url'] = $a->get_baseurl() . '/images/person-175.jpg';
logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], LOGGER_DEBUG);
return $avatar['url'];
}}

View file

@ -30,7 +30,7 @@ function sexpref_selector($current="",$suffix="") {
function marital_selector($current="",$suffix="") {
$o = '';
$select = array('', t('Single'), t('Lonely'), t('Available'), t('Unavailable'), t('Dating'), t('Unfaithful'), t('Sex Addict'), t('Friends'), t('Friends/Benefits'), t('Casual'), t('Engaged'), t('Married'), t('Partners'), t('Cohabiting'), t('Happy'), t('Not Looking'), t('Swinger'), t('Betrayed'), t('Separated'), t('Unstable'), t('Divorced'), t('Widowed'), t('Uncertain'), t('Complicated'), t('Don\'t care'), t('Ask me') );
$select = array('', t('Single'), t('Lonely'), t('Available'), t('Unavailable'), t('Has crush'), t('Infatuated'), t('Dating'), t('Unfaithful'), t('Sex Addict'), t('Friends'), t('Friends/Benefits'), t('Casual'), t('Engaged'), t('Married'), t('Imaginarily married'), t('Partners'), t('Cohabiting'), t('Common law'), t('Happy'), t('Not looking'), t('Swinger'), t('Betrayed'), t('Separated'), t('Unstable'), t('Divorced'), t('Imaginarily divorced'), t('Widowed'), t('Uncertain'), t('It\'s complicated'), t('Don\'t care'), t('Ask me') );
$o .= "<select name=\"marital\" id=\"marital-select\" size=\"1\" >";
foreach($select as $selection) {

4
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)) {
@ -344,4 +344,4 @@ function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'f
header('HTTP/1.1 403 Forbidden');
killme();
}
}
}

View file

@ -1068,10 +1068,12 @@ function unamp($s) {
if(! function_exists('lang_selector')) {
function lang_selector() {
global $lang;
$o = '<div id="lang-select-icon" class="icon language" title="' . t('Select an alternate language') . '" onclick="openClose(\'language-selector\');" ></div>';
$o .= '<div id="language-selector" style="display: none;" >';
$o .= '<form action="#" method="post" ><select name="system_language" onchange="this.form.submit();" >';
$langs = glob('view/*/strings.php');
$lang_options = array();
$selected = "";
if(is_array($langs) && count($langs)) {
$langs[] = '';
if(! in_array('view/en/strings.php',$langs))
@ -1079,17 +1081,22 @@ function lang_selector() {
asort($langs);
foreach($langs as $l) {
if($l == '') {
$default_selected = ((! x($_SESSION,'language')) ? ' selected="selected" ' : '');
$o .= '<option value="" ' . $default_selected . '>' . t('default') . '</option>';
$lang_options[""] = t('default');
continue;
}
$ll = substr($l,5);
$ll = substr($ll,0,strrpos($ll,'/'));
$selected = (($ll === $lang && (x($_SESSION, 'language'))) ? ' selected="selected" ' : '');
$o .= '<option value="' . $ll . '"' . $selected . '>' . $ll . '</option>';
$selected = (($ll === $lang && (x($_SESSION, 'language'))) ? $ll : $selected);
$lang_options[$ll]=$ll;
}
}
$o .= '</select></form></div>';
$tpl = get_markup_template("lang_selector.tpl");
$o = replace_macros($tpl, array(
'$title' => t('Select an alternate language'),
'$langs' => array($lang_options, $selected),
));
return $o;
}}
@ -1506,3 +1513,8 @@ function undo_post_tagging($s) {
return $s;
}
function fix_mce_lf($s) {
$s = str_replace("\r\n","\n",$s);
$s = str_replace("\n\n","\n",$s);
return $s;
}

View file

@ -38,11 +38,10 @@ load_translation_table($lang);
*/
require_once("dba.php");
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
unset($db_host, $db_user, $db_pass, $db_data);
if(! $install) {
$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
@ -96,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);
}
}
/**
@ -360,13 +363,13 @@ $profile = $a->profile;
header("Content-type: text/html; charset=utf-8");
$template = 'view/' . current_theme() . '/'
$template = 'view/theme/' . current_theme() . '/'
. ((x($a->page,'template')) ? $a->page['template'] : 'default' ) . '.php';
if(file_exists($template))
require_once($template);
else
require_once(str_replace(current_theme() . '/', '', $template));
require_once(str_replace('theme/' . current_theme() . '/', '', $template));
session_write_close();
exit;

19
js/main.js Executable file → Normal file
View file

@ -137,13 +137,12 @@
$('#mail-update-li').html(mail);
var eNotif = $(data).find('notif')
notif = eNotif.attr('count');
if (notif>=0){
$("#nav-notifications-linkmenu").addClass("on");
if (eNotif.children("note").length==0){
$("#nav-notifications-menu").html(notifications_empty);
} else {
nnm = $("#nav-notifications-menu");
nnm.html(notifications_all + notifications_mark);
//nnm.attr('popup','true');
eNotif.children("note").each(function(){
e = $(this);
@ -151,10 +150,12 @@
html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen'));
nnm.append(html);
});
}
notif = eNotif.attr('count');
if (notif>0){
$("#nav-notifications-linkmenu").addClass("on");
} else {
// $("#nav-notifications-linkmenu").removeClass("on");
// $("#nav-notifications-menu").html(notifications_empty);
$("#nav-notifications-linkmenu").removeClass("on");
}
if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
$('#notify-update').html(notif);
@ -609,4 +610,4 @@ function previewTheme(elm) {
$('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><a href="' + data.img + '"><img src="' + data.img + '" width="320" height="240" alt="' + theme + '" /></a>');
});
}
}

View file

@ -40,6 +40,20 @@ function admin_post(&$a){
goaway($a->get_baseurl(true) . '/admin/plugins/' . $a->argv[2] );
return; // NOTREACHED
break;
case 'themes':
$theme = $a->argv[2];
if (is_file("view/theme/$theme/config.php")){
require_once("view/theme/$theme/config.php");
if (function_exists("theme_admin_post")){
theme_admin_post($a);
}
}
info(t('Theme settings updated.'));
if(is_ajax()) return;
goaway($a->get_baseurl(true) . '/admin/themes/' . $theme );
return;
break;
case 'logs':
admin_page_logs_post($a);
break;
@ -129,7 +143,13 @@ function admin_content(&$a) {
} else {
$o = admin_page_summary($a);
}
return $o;
if(is_ajax()) {
echo $o;
killme();
} else {
return $o;
}
}
@ -174,7 +194,6 @@ function admin_page_site_post(&$a){
return;
}
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
@ -194,7 +213,6 @@ function admin_page_site_post(&$a){
$global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
$no_openid = !((x($_POST,'no_openid')) ? True : False);
$no_gravatar = !((x($_POST,'no_gravatar')) ? True : False);
$no_regfullname = !((x($_POST,'no_regfullname')) ? True : False);
$no_utf = !((x($_POST,'no_utf')) ? True : False);
$no_community_page = !((x($_POST,'no_community_page')) ? True : False);
@ -204,7 +222,7 @@ function admin_page_site_post(&$a){
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
@ -283,7 +301,6 @@ function admin_page_site_post(&$a){
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_gravatar', $no_gravatar);
set_config('system','no_regfullname', $no_regfullname);
set_config('system','no_community_page', $no_community_page);
set_config('system','no_utf', $no_utf);
@ -365,7 +382,7 @@ function admin_page_site(&$a) {
'$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles"), $theme_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
@ -380,7 +397,6 @@ function admin_page_site(&$a) {
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
'$no_gravatar' => array('no_gravatar', t("Gravatar support"), !get_config('system','no_gravatar'), t("Search new user's photo on Gravatar.")),
'$no_regfullname' => array('no_regfullname', t("Fullname check"), !get_config('system','no_regfullname'), t("Force users to register with a space between firstname and lastname in Full name, as an antispam measure")),
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
@ -772,14 +788,22 @@ function admin_page_themes(&$a){
}
$readme=Null;
if (is_file("view/$theme/README.md")){
$readme = file_get_contents("view/$theme/README.md");
if (is_file("view/theme/$theme/README.md")){
$readme = file_get_contents("view/theme/$theme/README.md");
$readme = Markdown($readme);
} else if (is_file("view/$theme/README")){
$readme = "<pre>". file_get_contents("view/$theme/README") ."</pre>";
} else if (is_file("view/theme/$theme/README")){
$readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
}
$admin_form="";
if (is_file("view/theme/$theme/config.php")){
require_once("view/theme/$theme/config.php");
if(function_exists("theme_admin")){
$admin_form = theme_admin($a);
}
}
$screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
if(! stristr($screenshot[0],$theme))
@ -797,10 +821,10 @@ function admin_page_themes(&$a){
'$status' => $status,
'$action' => $action,
'$info' => get_theme_info($theme),
'$function' => 'themes',
'$function' => 'themes',
'$admin_form' => $admin_form,
'$str_author' => t('Author: '),
'$str_maintainer' => t('Maintainer: '),
'$str_maintainer' => t('Maintainer: '),
'$screenshot' => $screenshot,
'$readme' => $readme
));
@ -809,7 +833,7 @@ function admin_page_themes(&$a){
/**
* List plugins
* List themes
*/
$xthemes = array();

View file

@ -45,13 +45,13 @@ function community_content(&$a, $update = 0) {
// OR your own posts if you are a logged in member
$r = q("SELECT COUNT(*) AS `total`
$r = q("SELECT distinct(`item`.`uri`) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''
AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 "
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri` "
);
if(count($r))
@ -62,7 +62,7 @@ function community_content(&$a, $update = 0) {
return $o;
}
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
$r = q("SELECT distinct(`item`.`uri`), `item`.*, `item`.`id` AS `item_id`,
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`,
`contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`,
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`,
@ -73,7 +73,7 @@ function community_content(&$a, $update = 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
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 group by `item`.`uri`
ORDER BY `received` DESC LIMIT %d, %d ",
intval($a->pager['start']),
intval($a->pager['itemspage'])

View file

@ -85,7 +85,7 @@ function contacts_post(&$a) {
if($priority > 5 || $priority < 0)
$priority = 0;
$info = escape_tags(trim($_POST['info']));
$info = fix_mce_lf(escape_tags(trim($_POST['info'])));
$r = q("UPDATE `contact` SET `profile-id` = %d, `priority` = %d , `info` = '%s',
`hidden` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1",
@ -232,8 +232,14 @@ function contacts_content(&$a) {
$contact_id = $a->data['contact']['id'];
$contact = $a->data['contact'];
$tpl = get_markup_template('contact_head.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true)));
$editselect = 'exact';
if(intval(get_pconfig(local_user(),'system','plaintext')))
$editselect = 'none';
$a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => $editselect,
));
require_once('include/contact_selectors.php');

View file

@ -428,11 +428,13 @@ function dfrn_poll_content(&$a) {
break; // NOTREACHED
}
$nickname = $a->argv[1];
$r = q("SELECT `contact`.*, `user`.`username`, `user`.`nickname`
FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `user`.`nickname` = '%s' $sql_extra LIMIT 1",
dbesc($a->argv[1])
dbesc($nickname)
);
if(count($r)) {
@ -482,7 +484,7 @@ function dfrn_poll_content(&$a) {
));
}
$profile = $r[0]['nickname'];
$profile = ((count($r) && $r[0]['nickname']) ? $r[0]['nickname'] : $nickname);
switch($destination_url) {
case 'profile':

View file

@ -261,7 +261,7 @@ function dfrn_request_post(&$a) {
WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0
AND `contact`.`network` != '%s'
AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ",
dbesc(NETWORK_MAIL)
dbesc(NETWORK_MAIL2)
);
if(count($r)) {
foreach($r as $rr) {
@ -286,7 +286,7 @@ function dfrn_request_post(&$a) {
WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0
AND `contact`.`network` = '%s'
AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ",
dbesc(NETWORK_MAIL)
dbesc(NETWORK_MAIL2)
);
if(count($r)) {
foreach($r as $rr) {
@ -301,6 +301,8 @@ function dfrn_request_post(&$a) {
}
}
$email_follow = (x($_POST,'email_follow') ? intval($_POST['email_follow']) : 0);
$real_name = (x($_POST,'realname') ? notags(trim($_POST['realname'])) : '');
$url = trim($_POST['dfrn_url']);
if(! strlen($url)) {
@ -308,17 +310,60 @@ function dfrn_request_post(&$a) {
return;
}
// Canonicalise email-style profile locator
$hcard = '';
$url = webfinger_dfrn($url,$hcard);
if(substr($url,0,5) === 'stat:') {
$network = NETWORK_OSTATUS;
$url = substr($url,5);
if($email_follow) {
if(! strpos($url,'@')) {
notice( t('Invalid email address.') . EOL);
return;
}
$addr = $url;
$name = ($realname) ? $realname : $addr;
$nick = substr($addr,0,strpos($addr,'@'));
$url = 'http://' . substr($addr,strpos($addr,'@') + 1);
$nurl = normalise_url($host);
$poll = 'email ' . random_string();
$notify = 'smtp ' . random_string();
$blocked = 1;
$pending = 1;
$network = NETWORK_MAIL2;
$rel = CONTACT_IS_FOLLOWER;
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
if(get_config('system','dfrn_only'))
$mail_disabled = 1;
if(! $mail_disabled) {
$failed = false;
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
intval($uid)
);
if(! count($r)) {
notice( t('This account has not been configured for email. Request failed.') . EOL);
return;
}
}
}
else {
$network = NETWORK_DFRN;
// Canonicalise email-style profile locator
$url = webfinger_dfrn($url,$hcard);
if(substr($url,0,5) === 'stat:') {
$network = NETWORK_OSTATUS;
$url = substr($url,5);
}
else {
$network = NETWORK_DFRN;
}
}
logger('dfrn_request: url: ' . $url);

View file

@ -44,7 +44,7 @@ function directory_content(&$a) {
$gdirpath = dirname(get_config('system','directory_submit_url'));
if(strlen($gdirpath)) {
$globaldir = '<ul><li><div id="global-directory-link"><a href="'
. $gdirpath . '">' . t('Global Directory') . '</a></div></li></ul>';
. zrl($gdirpath,true) . '">' . t('Global Directory') . '</a></div></li></ul>';
}
$admin = '';

View file

@ -451,7 +451,7 @@ function load_database_rem($v, $i){
function load_database($db) {
$str = file_get_contents('database.sql');
$str = array_reduce(explode("\n", $str),"load_database_rem","");
// $str = array_reduce(explode("\n", $str),"load_database_rem","");
$arr = explode(';',$str);
$errors = false;
foreach($arr as $a) {

View file

@ -272,8 +272,7 @@ function item_post(&$a) {
$plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) : 0);
if((! $parent) && (! $api_source) && (! $plaintext)) {
$body = str_replace("\r\n","\n",$body);
$body = str_replace("\n\n","\n",$body);
$body = fix_mce_lf($body);
}
@ -447,7 +446,7 @@ function item_post(&$a) {
if(count($tags)) {
foreach($tags as $tag) {
handle_tag($a, $body, $inform, $str_tags, $profile_uid, $tag);
handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag);
}
}

View file

@ -48,8 +48,7 @@ function message_post(&$a) {
$plaintext = intval(get_pconfig(local_user(),'system','plaintext'));
if(! $plaintext) {
$body = str_replace("\r\n","\n",$body);
$body = str_replace("\n\n","\n",$body);
$body = fix_mce_lf($body);
}
$ret = send_message($recipient, $body, $subject, $replyto);

View file

@ -13,7 +13,7 @@ function newmember_content(&$a) {
$o .= '<ul>';
$o .= '<li>' . '<a target="newmember" href="/help/guide">' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, connect to Facebook, make some new connections, and find some groups to join.') . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="help/guide">' . t('On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, connect to Facebook, make some new connections, and find some groups to join.') . '</a></li>' . EOL;
$o .= '<li>' . '<a target="newmember" href="settings">' . t('On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web.') . '</a></li>' . EOL;
@ -48,4 +48,4 @@ function newmember_content(&$a) {
$o .= '</div>';
return $o;
}
}

65
mod/nogroup.php Normal file
View file

@ -0,0 +1,65 @@
<?php
require_once('include/Contact.php');
require_once('include/socgraph.php');
require_once('include/contact_selectors.php');
function nogroup_init(&$a) {
if(! local_user())
return;
require_once('include/group.php');
require_once('include/contact_widgets.php');
if(! x($a->page,'aside'))
$a->page['aside'] = '';
$a->page['aside'] .= group_side('contacts','group',false,0,$contact_id);
}
function nogroup_content(&$a) {
if(! local_user()) {
notice( t('Permission denied.') . EOL);
return '';
}
require_once('include/Contact.php');
$r = contacts_not_grouped(local_user());
if(count($r)) {
$a->set_pager_total($r[0]['total']);
}
$r = contacts_not_grouped(local_user(),$a->pager['start'],$a->pager['itemspage']);
if(count($r)) {
foreach($r as $rr) {
$contacts[] = array(
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
'edit_hover' => t('Edit contact'),
'photo_menu' => contact_photo_menu($rr),
'id' => $rr['id'],
'alt_text' => $alt_text,
'dir_icon' => $dir_icon,
'thumb' => $rr['thumb'],
'name' => $rr['name'],
'username' => $rr['name'],
'sparkle' => $sparkle,
'itemurl' => $rr['url'],
'url' => $url,
'network' => network_to_name($rr['network']),
);
}
}
$tpl = get_markup_template("nogroup-template.tpl");
$o .= replace_macros($tpl,array(
'$header' => t('Contacts who are not members of a group'),
'$contacts' => $contacts,
'$paginate' => paginate($a),
));
return $o;
}

View file

@ -151,7 +151,7 @@ function notifications_content(&$a) {
'$fullname' => $rr['fname'],
'$url' => zrl($rr['furl']),
'$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
'$activity' => array('activity', t('Post a new friend activity'), 1, t('if applicable')),
'$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')),
'$knowyou' => $knowyou,
'$approve' => t('Approve'),
@ -198,7 +198,7 @@ function notifications_content(&$a) {
'$photo' => ((x($rr,'photo')) ? $rr['photo'] : "images/person-175.jpg"),
'$fullname' => $rr['name'],
'$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
'$activity' => array('activity', t('Post a new friend activity'), 1, t('if applicable')),
'$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')),
'$url' => zrl($rr['url']),
'$knowyou' => $knowyou,
'$approve' => t('Approve'),

View file

@ -14,7 +14,7 @@ function profile_init(&$a) {
else {
$r = q("select nickname from user where blocked = 0 and account_expired = 0 and verified = 1 order by rand() limit 1");
if(count($r)) {
$which = $r[0]['nickname'];
goaway($a->get_baseurl() . '/profile/' . $r[0]['nickname']);
}
else {
notice( t('Requested profile is not available.') . EOL );

View file

@ -51,6 +51,7 @@ function profiles_post(&$a) {
if($orig[0]['name'] != $name)
$namechanged = true;
$pdesc = notags(trim($_POST['pdesc']));
$gender = notags(trim($_POST['gender']));
$address = notags(trim($_POST['address']));
@ -61,15 +62,16 @@ function profiles_post(&$a) {
$pub_keywords = notags(trim($_POST['pub_keywords']));
$prv_keywords = notags(trim($_POST['prv_keywords']));
$marital = notags(trim($_POST['marital']));
if($marital != $orig[0]['marital'])
$maritalchanged = true;
$with = ((x($_POST,'with')) ? notags(trim($_POST['with'])) : '');
// linkify the relationship target if applicable
$withchanged = false;
if(strlen($with)) {
if($with != strip_tags($orig[0]['with'])) {
$withchanged = true;
$prf = '';
$lookup = $with;
if(strpos($lookup,'@') === 0)
@ -121,18 +123,40 @@ function profiles_post(&$a) {
$politic = notags(trim($_POST['politic']));
$religion = notags(trim($_POST['religion']));
$about = escape_tags(trim($_POST['about']));
$interest = escape_tags(trim($_POST['interest']));
$contact = escape_tags(trim($_POST['contact']));
$music = escape_tags(trim($_POST['music']));
$book = escape_tags(trim($_POST['book']));
$tv = escape_tags(trim($_POST['tv']));
$film = escape_tags(trim($_POST['film']));
$romance = escape_tags(trim($_POST['romance']));
$work = escape_tags(trim($_POST['work']));
$education = escape_tags(trim($_POST['education']));
$about = fix_mce_lf(escape_tags(trim($_POST['about'])));
$interest = fix_mce_lf(escape_tags(trim($_POST['interest'])));
$contact = fix_mce_lf(escape_tags(trim($_POST['contact'])));
$music = fix_mce_lf(escape_tags(trim($_POST['music'])));
$book = fix_mce_lf(escape_tags(trim($_POST['book'])));
$tv = fix_mce_lf(escape_tags(trim($_POST['tv'])));
$film = fix_mce_lf(escape_tags(trim($_POST['film'])));
$romance = fix_mce_lf(escape_tags(trim($_POST['romance'])));
$work = fix_mce_lf(escape_tags(trim($_POST['work'])));
$education = fix_mce_lf(escape_tags(trim($_POST['education'])));
$hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
$changes = array();
if($is_default) {
if($marital != $orig[0]['marital']) $changes[] = '&hearts; ' . t('Marital Status');
if($withchanged) $changes[] = '&hearts; ' . t('Romantic Partner');
if($work != $orig[0]['work']) $changes[] = t('Work/Employment');
if($religion != $orig[0]['religion']) $changes[] = t('Religion');
if($politic != $orig[0]['politic']) $changes[] = t('Political Views');
if($gender != $orig[0]['gender']) $changes[] = t('Gender');
if($sexual != $orig[0]['sexual']) $changes[] = t('Sexual Preference');
if($homepage != $orig[0]['homepage']) $changes[] = t('Homepage');
if($interest != $orig[0]['interest']) $changes[] = t('Interests');
if($address != $orig[0]['address'] || $locality != $orig[0]['locality'] || $region != $orig[0]['region']
|| $country_name != $orig[0]['country_name'])
$changes[] = t('Location');
profile_activity($changes);
}
$r = q("UPDATE `profile`
SET `profile-name` = '%s',
`name` = '%s',
@ -194,7 +218,7 @@ function profiles_post(&$a) {
dbesc($education),
intval($hide_friends),
intval($a->argv[1]),
intval($_SESSION['uid'])
intval(local_user())
);
if($r)
@ -221,6 +245,79 @@ function profiles_post(&$a) {
}
function profile_activity($changed) {
$a = get_app();
if(! local_user() || ! is_array($changed) || ! count($changed))
return;
if($a->user['hidewall'] || get_config('system','block_public'))
return;
if(! get_pconfig(local_user(),'system','post_profilechange'))
return;
require_once('include/items.php');
$self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
intval(local_user())
);
if(! count($self))
return;
$arr = array();
$arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), local_user());
$arr['uid'] = local_user();
$arr['contact-id'] = $self[0]['id'];
$arr['wall'] = 1;
$arr['type'] = 'wall';
$arr['gravity'] = 0;
$arr['origin'] = 1;
$arr['author-name'] = $arr['owner-name'] = $self[0]['name'];
$arr['author-link'] = $arr['owner-link'] = $self[0]['url'];
$arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb'];
$arr['verb'] = ACTIVITY_UPDATE;
$arr['object-type'] = ACTIVITY_OBJ_PROFILE;
$A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]';
$changes = '';
$t = count($changed);
$z = 0;
foreach($changed as $ch) {
if(strlen($changes)) {
if ($z == ($t - 1))
$changes .= ' and ';
else
$changes .= ', ';
}
$z ++;
$changes .= $ch;
}
$prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]';
$arr['body'] = sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes);
$arr['object'] = '<object><type>' . ACTIVITY_OBJ_PROFILE . '</type><title>' . $self[0]['name'] . '</title>'
. '<id>' . $self[0]['url'] . '/' . $self[0]['name'] . '</id>';
$arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $self[0]['url'] . '?tab=profile' . '" />' . "\n");
$arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $self[0]['thumb'] . '" />' . "\n");
$arr['object'] .= '</link></object>' . "\n";
$arr['last-child'] = 1;
$arr['allow_cid'] = $a->user['allow_cid'];
$arr['allow_gid'] = $a->user['allow_gid'];
$arr['deny_cid'] = $a->user['deny_cid'];
$arr['deny_gid'] = $a->user['deny_gid'];
$i = item_store($arr);
if($i)
proc_run('php',"include/notifier.php","activity","$i");
}
function profiles_content(&$a) {
@ -361,7 +458,16 @@ function profiles_content(&$a) {
require_once('include/profile_selectors.php');
$tpl = get_markup_template('profed_head.tpl');
$editselect = 'textareas';
if(intval(get_pconfig(local_user(),'system','plaintext')))
$editselect = 'none';
$a->page['htmlhead'] .= replace_macros(get_markup_template('profed_head.tpl'), array(
'$baseurl' => $a->get_baseurl(true),
'$editselect' => $editselect,
));
$opt_tpl = get_markup_template("profile-hide-friends.tpl");
$hide_friends = replace_macros($opt_tpl,array(
@ -372,10 +478,12 @@ function profiles_content(&$a) {
'$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "")
));
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true)));
$a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"js/country.js\" ></script>";
$f = get_config('system','birthday_input_format');
if(! $f)
$f = 'ymd';

10
mod/randprof.php Normal file
View file

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

View file

@ -314,17 +314,13 @@ function register_post(&$a) {
}
$use_gravatar = ((get_config('system','no_gravatar')) ? false : true);
// if we have an openid photo use it.
// otherwise unless it is disabled, use gravatar
if($use_gravatar || strlen($photo)) {
// if we have no OpenID photo try to look up an avatar
if(! strlen($photo))
$photo = avatar_img($email);
// unless there is no avatar-plugin loaded
if(strlen($photo)) {
require_once('include/Photo.php');
if(($use_gravatar) && (! strlen($photo)))
$photo = gravatar_img($email);
$photo_failure = false;
$filename = basename($photo);
@ -333,7 +329,7 @@ function register_post(&$a) {
if($img->is_valid()) {
$img->scaleImageSquare(175);
$hash = photo_new_resource();
$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 );

View file

@ -15,10 +15,6 @@ function get_theme_config_file($theme){
}
function settings_init(&$a) {
if(local_user()) {
profile_load($a,$a->user['nickname']);
}
// These lines provide the javascript needed by the acl selector
$a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ;
@ -47,6 +43,47 @@ function settings_init(&$a) {
EOT;
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'selected' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connected apps'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'selected' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'selected' => ''
)
);
$tabtpl = get_markup_template("generic_links_widget.tpl");
$a->page['aside'] = replace_macros($tabtpl, array(
'$title' => t('Settings'),
'$items' => $tabs,
));
}
@ -309,6 +346,8 @@ function settings_post(&$a) {
$suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0);
$hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
$hidewall = (($_POST['hidewall'] == 1) ? 1: 0);
$post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0);
$post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0);
$notify = 0;
@ -391,6 +430,8 @@ function settings_post(&$a) {
set_pconfig(local_user(),'expire','photos', $expire_photos);
set_pconfig(local_user(),'system','suggestme', $suggestme);
set_pconfig(local_user(),'system','post_newfriend', $post_newfriend);
set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d WHERE `uid` = %d LIMIT 1",
@ -479,44 +520,7 @@ function settings_content(&$a) {
return;
}
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
$tabtpl = get_markup_template("common_tabs.tpl");
$tabs = replace_macros($tabtpl, array(
'$tabs' => $tabs,
));
if(($a->argc > 1) && ($a->argv[1] === 'oauth')) {
@ -524,7 +528,6 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs,
'$title' => t('Add application'),
'$submit' => t('Submit'),
'$cancel' => t('Cancel'),
@ -551,7 +554,6 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs,
'$title' => t('Add application'),
'$submit' => t('Update'),
'$cancel' => t('Cancel'),
@ -594,7 +596,6 @@ function settings_content(&$a) {
'$consumerkey' => t('Client key starts with'),
'$noname' => t('No name'),
'$remove' => t('Remove authorization'),
'$tabs' => $tabs,
'$apps' => $r,
));
return $o;
@ -614,7 +615,6 @@ function settings_content(&$a) {
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_addon"),
'$title' => t('Plugin Settings'),
'$tabs' => $tabs,
'$settings_addons' => $settings_addons
));
return $o;
@ -658,7 +658,6 @@ function settings_content(&$a) {
'$form_security_token' => get_form_security_token("settings_connectors"),
'$title' => t('Connector Settings'),
'$tabs' => $tabs,
'$diasp_enabled' => $diasp_enabled,
'$ostat_enabled' => $ostat_enabled,
@ -735,7 +734,6 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_display.tpl");
$o = replace_macros($tpl, array(
'$tabs' => $tabs,
'$ptitle' => t('Display Settings'),
'$form_security_token' => get_form_security_token("settings_display"),
'$submit' => t('Submit'),
@ -796,6 +794,11 @@ function settings_content(&$a) {
$suggestme = get_pconfig(local_user(), 'system','suggestme');
$suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0
$post_newfriend = get_pconfig(local_user(), 'system','post_newfriend');
$post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0
$post_profilechange = get_pconfig(local_user(), 'system','post_profilechange');
$post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
if(! strlen($a->user['timezone']))
@ -884,6 +887,8 @@ function settings_content(&$a) {
));
$invisible = (((! $profile['publish']) && (! $profile['net-publish']))
? true : false);
@ -920,7 +925,6 @@ function settings_content(&$a) {
);
$o .= replace_macros($stpl,array(
'$tabs' => $tabs,
'$ptitle' => t('Account Settings'),
'$submit' => t('Submit'),
@ -965,6 +969,9 @@ function settings_content(&$a) {
'$h_not' => t('Notification Settings'),
'$activity_options' => t('By default post a status message when:'),
'$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, ''),
'$post_profilechange' => array('post_profilechange', t('making an <em>interesting</em> profile change'), $post_profilechange, ''),
'$lbl_not' => t('Send a notification email when:'),
'$notify1' => array('notify1', t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''),
'$notify2' => array('notify2', t('Your introductions are confirmed'), ($notify & NOTIFY_CONFIRM), NOTIFY_CONFIRM, ''),

View file

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1137 );
define( 'UPDATE_VERSION' , 1138 );
/**
*
@ -1205,4 +1205,11 @@ function update_1136() {
q("ALTER TABLE `config` ADD UNIQUE `access` ( `cat` , `k` ) ");
q("ALTER TABLE `pconfig` ADD UNIQUE `access` ( `uid` , `cat` , `k` )");
}
}
function update_1137() {
q("alter table item_id DROP `face` , DROP `dspr` , DROP `twit` , DROP `stat` ");
q("ALTER TABLE `item_id` ADD `sid` CHAR( 255 ) NOT NULL AFTER `uid` , ADD `service` CHAR( 255 ) NOT NULL AFTER `sid` , add index (`sid`), add index ( `service`) ");
}

View file

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: 2.3.1306\n"
"Project-Id-Version: 2.3.1311\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-08 10:00-0700\n"
"POT-Creation-Date: 2012-04-13 10:00-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -34,13 +34,13 @@ msgstr ""
msgid "Contact update failed."
msgstr ""
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:43
#: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44
#: ../../mod/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26
#: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:866
#: ../../mod/editpost.php:10 ../../mod/install.php:171
#: ../../mod/notifications.php:66 ../../mod/contacts.php:125
#: ../../mod/settings.php:62 ../../mod/settings.php:473
#: ../../mod/settings.php:478 ../../mod/manage.php:86 ../../mod/network.php:6
#: ../../mod/settings.php:99 ../../mod/settings.php:514
#: ../../mod/settings.php:519 ../../mod/manage.php:86 ../../mod/network.php:6
#: ../../mod/notes.php:20 ../../mod/wallmessage.php:9
#: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
#: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
@ -49,13 +49,14 @@ msgstr ""
#: ../../mod/item.php:140 ../../mod/profile_photo.php:19
#: ../../mod/profile_photo.php:139 ../../mod/profile_photo.php:150
#: ../../mod/profile_photo.php:163 ../../mod/message.php:38
#: ../../mod/message.php:91 ../../mod/allfriends.php:9
#: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9
#: ../../mod/display.php:138 ../../mod/profiles.php:7
#: ../../mod/profiles.php:232 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:460
#: ../../include/items.php:3118 ../../index.php:306
#: ../../mod/message.php:90 ../../mod/allfriends.php:9
#: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:46
#: ../../mod/follow.php:8 ../../mod/common.php:9 ../../mod/display.php:138
#: ../../mod/profiles.php:7 ../../mod/profiles.php:329
#: ../../mod/delegate.php:6 ../../mod/suggest.php:28 ../../mod/invite.php:13
#: ../../mod/invite.php:81 ../../mod/dfrn_confirm.php:53
#: ../../addon/facebook/facebook.php:461 ../../include/items.php:3132
#: ../../index.php:305
msgid "Permission denied."
msgstr ""
@ -84,8 +85,8 @@ msgstr ""
msgid "Return to contact editor"
msgstr ""
#: ../../mod/crepair.php:148 ../../mod/settings.php:531
#: ../../mod/settings.php:558 ../../mod/admin.php:528 ../../mod/admin.php:537
#: ../../mod/crepair.php:148 ../../mod/settings.php:534
#: ../../mod/settings.php:560 ../../mod/admin.php:544 ../../mod/admin.php:553
msgid "Name"
msgstr ""
@ -126,21 +127,23 @@ msgstr ""
#: ../../mod/photos.php:1194 ../../mod/photos.php:1234
#: ../../mod/photos.php:1274 ../../mod/photos.php:1305
#: ../../mod/install.php:251 ../../mod/install.php:289
#: ../../mod/localtime.php:45 ../../mod/contacts.php:319
#: ../../mod/settings.php:529 ../../mod/settings.php:679
#: ../../mod/settings.php:741 ../../mod/settings.php:926
#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:357
#: ../../mod/admin.php:525 ../../mod/admin.php:654 ../../mod/admin.php:826
#: ../../mod/admin.php:906 ../../mod/profiles.php:390 ../../mod/invite.php:119
#: ../../addon/facebook/facebook.php:551 ../../addon/yourls/yourls.php:76
#: ../../mod/localtime.php:45 ../../mod/contacts.php:325
#: ../../mod/settings.php:532 ../../mod/settings.php:678
#: ../../mod/settings.php:739 ../../mod/settings.php:930
#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:374
#: ../../mod/admin.php:541 ../../mod/admin.php:670 ../../mod/admin.php:850
#: ../../mod/admin.php:930 ../../mod/profiles.php:498 ../../mod/invite.php:119
#: ../../addon/facebook/facebook.php:552 ../../addon/yourls/yourls.php:76
#: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57
#: ../../addon/planets/planets.php:158
#: ../../addon/uhremotestorage/uhremotestorage.php:89
#: ../../addon/randplace/randplace.php:179 ../../addon/dwpost/dwpost.php:93
#: ../../addon/randplace/randplace.php:177 ../../addon/dwpost/dwpost.php:93
#: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:80
#: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61
#: ../../addon/openstreetmap/openstreetmap.php:70
#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94
#: ../../addon/gravatar/gravatar.php:86
#: ../../addon/pageheader/pageheader.php:55 ../../addon/ijpost/ijpost.php:93
#: ../../addon/statusnet/statusnet.php:278
#: ../../addon/statusnet/statusnet.php:292
@ -152,8 +155,9 @@ msgstr ""
#: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180
#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375
#: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102
#: ../../addon/posterous/posterous.php:90
#: ../../view/theme/quattro/config.php:21 ../../include/conversation.php:555
#: ../../view/theme/quattro/config.php:52 ../../include/conversation.php:555
msgid "Submit"
msgstr ""
@ -165,20 +169,20 @@ msgstr ""
msgid "Help"
msgstr ""
#: ../../mod/help.php:38 ../../index.php:225
#: ../../mod/help.php:38 ../../index.php:224
msgid "Not Found"
msgstr ""
#: ../../mod/help.php:41 ../../index.php:228
#: ../../mod/help.php:41 ../../index.php:227
msgid "Page not found."
msgstr ""
#: ../../mod/wall_attach.php:57
#: ../../mod/wall_attach.php:58
#, php-format
msgid "File exceeds size limit of %d"
msgstr ""
#: ../../mod/wall_attach.php:85 ../../mod/wall_attach.php:96
#: ../../mod/wall_attach.php:86 ../../mod/wall_attach.php:97
msgid "File upload failed."
msgstr ""
@ -211,11 +215,11 @@ msgstr ""
msgid "link to source"
msgstr ""
#: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:244
#: ../../view/theme/diabook-blue/theme.php:244
#: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:243
#: ../../view/theme/diabook-blue/theme.php:243
#: ../../view/theme/diabook/theme.php:251
#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:52
#: ../../boot.php:1422
#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:52
#: ../../boot.php:1470
msgid "Events"
msgstr ""
@ -265,7 +269,7 @@ msgid "Description:"
msgstr ""
#: ../../mod/events.php:395 ../../include/event.php:37
#: ../../include/bb2diaspora.php:260 ../../boot.php:1043
#: ../../include/bb2diaspora.php:260 ../../boot.php:1082
msgid "Location:"
msgstr ""
@ -274,8 +278,8 @@ msgid "Share this event"
msgstr ""
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
#: ../../mod/dfrn_request.php:707 ../../mod/settings.php:530
#: ../../mod/settings.php:557 ../../addon/js_upload/js_upload.php:45
#: ../../mod/dfrn_request.php:752 ../../mod/settings.php:533
#: ../../mod/settings.php:559 ../../addon/js_upload/js_upload.php:45
msgid "Cancel"
msgstr ""
@ -295,7 +299,7 @@ msgstr ""
msgid "Remove"
msgstr ""
#: ../../mod/dfrn_poll.php:94 ../../mod/dfrn_poll.php:520
#: ../../mod/dfrn_poll.php:94 ../../mod/dfrn_poll.php:522
#, php-format
msgid "%s welcomes %s"
msgstr ""
@ -318,25 +322,25 @@ msgid ""
"and/or create new posts for you?"
msgstr ""
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:695
#: ../../mod/settings.php:841 ../../mod/settings.php:847
#: ../../mod/settings.php:855 ../../mod/settings.php:859
#: ../../mod/settings.php:864 ../../mod/settings.php:870
#: ../../mod/settings.php:876 ../../mod/settings.php:882
#: ../../mod/settings.php:916 ../../mod/settings.php:917
#: ../../mod/settings.php:918 ../../mod/settings.php:919
#: ../../mod/register.php:536 ../../mod/profiles.php:369
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:740
#: ../../mod/settings.php:844 ../../mod/settings.php:850
#: ../../mod/settings.php:858 ../../mod/settings.php:862
#: ../../mod/settings.php:867 ../../mod/settings.php:873
#: ../../mod/settings.php:879 ../../mod/settings.php:885
#: ../../mod/settings.php:921 ../../mod/settings.php:922
#: ../../mod/settings.php:923 ../../mod/settings.php:924
#: ../../mod/register.php:532 ../../mod/profiles.php:475
msgid "Yes"
msgstr ""
#: ../../mod/api.php:106 ../../mod/dfrn_request.php:696
#: ../../mod/settings.php:841 ../../mod/settings.php:847
#: ../../mod/settings.php:855 ../../mod/settings.php:859
#: ../../mod/settings.php:864 ../../mod/settings.php:870
#: ../../mod/settings.php:876 ../../mod/settings.php:882
#: ../../mod/settings.php:916 ../../mod/settings.php:917
#: ../../mod/settings.php:918 ../../mod/settings.php:919
#: ../../mod/register.php:537 ../../mod/profiles.php:370
#: ../../mod/api.php:106 ../../mod/dfrn_request.php:741
#: ../../mod/settings.php:844 ../../mod/settings.php:850
#: ../../mod/settings.php:858 ../../mod/settings.php:862
#: ../../mod/settings.php:867 ../../mod/settings.php:873
#: ../../mod/settings.php:879 ../../mod/settings.php:885
#: ../../mod/settings.php:921 ../../mod/settings.php:922
#: ../../mod/settings.php:923 ../../mod/settings.php:924
#: ../../mod/register.php:533 ../../mod/profiles.php:476
msgid "No"
msgstr ""
@ -347,10 +351,10 @@ msgstr ""
#: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:880
#: ../../mod/photos.php:951 ../../mod/photos.php:966 ../../mod/photos.php:1383
#: ../../mod/photos.php:1395 ../../addon/communityhome/communityhome.php:110
#: ../../view/theme/diabook-red/theme.php:114
#: ../../view/theme/diabook-blue/theme.php:114
#: ../../view/theme/diabook-red/theme.php:113
#: ../../view/theme/diabook-blue/theme.php:113
#: ../../view/theme/diabook/theme.php:117
#: ../../view/theme/diabook-aerith/theme.php:115
#: ../../view/theme/diabook-aerith/theme.php:114
msgid "Contact Photos"
msgstr ""
@ -358,7 +362,7 @@ msgstr ""
msgid "Upload New Photos"
msgstr ""
#: ../../mod/photos.php:69 ../../mod/settings.php:24
#: ../../mod/photos.php:69 ../../mod/settings.php:20
msgid "everybody"
msgstr ""
@ -367,16 +371,16 @@ msgid "Contact information unavailable"
msgstr ""
#: ../../mod/photos.php:151 ../../mod/photos.php:598 ../../mod/photos.php:951
#: ../../mod/photos.php:966 ../../mod/register.php:339
#: ../../mod/register.php:346 ../../mod/register.php:353
#: ../../mod/photos.php:966 ../../mod/register.php:335
#: ../../mod/register.php:342 ../../mod/register.php:349
#: ../../mod/profile_photo.php:60 ../../mod/profile_photo.php:67
#: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174
#: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261
#: ../../addon/communityhome/communityhome.php:111
#: ../../view/theme/diabook-red/theme.php:115
#: ../../view/theme/diabook-blue/theme.php:115
#: ../../view/theme/diabook-red/theme.php:114
#: ../../view/theme/diabook-blue/theme.php:114
#: ../../view/theme/diabook/theme.php:118
#: ../../view/theme/diabook-aerith/theme.php:116
#: ../../view/theme/diabook-aerith/theme.php:115
msgid "Profile Photos"
msgstr ""
@ -398,10 +402,10 @@ msgstr ""
#: ../../mod/photos.php:529 ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook-red/theme.php:86
#: ../../view/theme/diabook-blue/theme.php:86
#: ../../view/theme/diabook-red/theme.php:85
#: ../../view/theme/diabook-blue/theme.php:85
#: ../../view/theme/diabook/theme.php:89
#: ../../view/theme/diabook-aerith/theme.php:87 ../../include/text.php:1297
#: ../../view/theme/diabook-aerith/theme.php:86 ../../include/text.php:1304
#: ../../include/diaspora.php:1654 ../../include/conversation.php:53
#: ../../include/conversation.php:126
msgid "photo"
@ -420,17 +424,17 @@ msgid "Image file is empty."
msgstr ""
#: ../../mod/photos.php:654 ../../mod/profile_photo.php:124
#: ../../mod/wall_upload.php:65
#: ../../mod/wall_upload.php:69
msgid "Unable to process image."
msgstr ""
#: ../../mod/photos.php:674 ../../mod/profile_photo.php:257
#: ../../mod/wall_upload.php:84
#: ../../mod/wall_upload.php:88
msgid "Image upload failed."
msgstr ""
#: ../../mod/photos.php:760 ../../mod/community.php:16
#: ../../mod/dfrn_request.php:626 ../../mod/viewcontacts.php:17
#: ../../mod/dfrn_request.php:671 ../../mod/viewcontacts.php:17
#: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29
msgid "Public access denied."
msgstr ""
@ -536,8 +540,8 @@ msgid "Share"
msgstr ""
#: ../../mod/photos.php:1215 ../../mod/editpost.php:104
#: ../../mod/wallmessage.php:145 ../../mod/message.php:189
#: ../../mod/message.php:358 ../../include/conversation.php:362
#: ../../mod/wallmessage.php:145 ../../mod/message.php:188
#: ../../mod/message.php:357 ../../include/conversation.php:362
#: ../../include/conversation.php:702 ../../include/conversation.php:979
msgid "Please wait"
msgstr ""
@ -549,7 +553,7 @@ msgstr ""
#: ../../mod/photos.php:1233 ../../mod/photos.php:1273
#: ../../mod/photos.php:1304 ../../include/conversation.php:554
#: ../../boot.php:494
#: ../../boot.php:495
msgid "Comment"
msgstr ""
@ -558,8 +562,8 @@ msgstr ""
msgid "Preview"
msgstr ""
#: ../../mod/photos.php:1332 ../../mod/settings.php:593
#: ../../mod/settings.php:677 ../../mod/group.php:168 ../../mod/admin.php:532
#: ../../mod/photos.php:1332 ../../mod/settings.php:595
#: ../../mod/settings.php:676 ../../mod/group.php:168 ../../mod/admin.php:548
#: ../../include/conversation.php:318 ../../include/conversation.php:576
msgid "Delete"
msgstr ""
@ -576,10 +580,10 @@ msgstr ""
msgid "Not available."
msgstr ""
#: ../../mod/community.php:30 ../../view/theme/diabook-red/theme.php:246
#: ../../view/theme/diabook-blue/theme.php:246
#: ../../mod/community.php:30 ../../view/theme/diabook-red/theme.php:245
#: ../../view/theme/diabook-blue/theme.php:245
#: ../../view/theme/diabook/theme.php:253
#: ../../view/theme/diabook-aerith/theme.php:247 ../../include/nav.php:101
#: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:101
msgid "Community"
msgstr ""
@ -631,13 +635,13 @@ msgstr ""
msgid "Post to Email"
msgstr ""
#: ../../mod/editpost.php:95 ../../mod/settings.php:592
#: ../../mod/editpost.php:95 ../../mod/settings.php:594
#: ../../include/conversation.php:563
msgid "Edit"
msgstr ""
#: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143
#: ../../mod/message.php:187 ../../mod/message.php:356
#: ../../mod/message.php:186 ../../mod/message.php:355
#: ../../include/conversation.php:961
msgid "Upload photo"
msgstr ""
@ -647,7 +651,7 @@ msgid "Attach file"
msgstr ""
#: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144
#: ../../mod/message.php:188 ../../mod/message.php:357
#: ../../mod/message.php:187 ../../mod/message.php:356
#: ../../include/conversation.php:965
msgid "Insert web link"
msgstr ""
@ -700,19 +704,19 @@ msgstr ""
msgid "This introduction has already been accepted."
msgstr ""
#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:382
#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:427
msgid "Profile location is not valid or does not contain profile information."
msgstr ""
#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:387
#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:432
msgid "Warning: profile location has no identifiable owner name."
msgstr ""
#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:389
#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:434
msgid "Warning: profile location has no profile photo."
msgstr ""
#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:392
#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:437
#, php-format
msgid "%d required parameter was not found at the given location"
msgid_plural "%d required parameters were not found at the given location"
@ -744,132 +748,140 @@ msgstr ""
msgid "Friends are advised to please try again in 24 hours."
msgstr ""
#: ../../mod/dfrn_request.php:307
#: ../../mod/dfrn_request.php:309
msgid "Invalid locator"
msgstr ""
#: ../../mod/dfrn_request.php:327
msgid "Unable to resolve your name at the provided location."
msgstr ""
#: ../../mod/dfrn_request.php:340
msgid "You have already introduced yourself here."
#: ../../mod/dfrn_request.php:318
msgid "Invalid email address."
msgstr ""
#: ../../mod/dfrn_request.php:344
msgid "This account has not been configured for email. Request failed."
msgstr ""
#: ../../mod/dfrn_request.php:372
msgid "Unable to resolve your name at the provided location."
msgstr ""
#: ../../mod/dfrn_request.php:385
msgid "You have already introduced yourself here."
msgstr ""
#: ../../mod/dfrn_request.php:389
#, php-format
msgid "Apparently you are already friends with %s."
msgstr ""
#: ../../mod/dfrn_request.php:365
#: ../../mod/dfrn_request.php:410
msgid "Invalid profile URL."
msgstr ""
#: ../../mod/dfrn_request.php:371 ../../mod/follow.php:20
#: ../../mod/dfrn_request.php:416 ../../mod/follow.php:20
msgid "Disallowed profile URL."
msgstr ""
#: ../../mod/dfrn_request.php:440 ../../mod/contacts.php:102
#: ../../mod/dfrn_request.php:485 ../../mod/contacts.php:102
msgid "Failed to update contact record."
msgstr ""
#: ../../mod/dfrn_request.php:461
#: ../../mod/dfrn_request.php:506
msgid "Your introduction has been sent."
msgstr ""
#: ../../mod/dfrn_request.php:514
#: ../../mod/dfrn_request.php:559
msgid "Please login to confirm introduction."
msgstr ""
#: ../../mod/dfrn_request.php:528
#: ../../mod/dfrn_request.php:573
msgid ""
"Incorrect identity currently logged in. Please login to <strong>this</"
"strong> profile."
msgstr ""
#: ../../mod/dfrn_request.php:540
#: ../../mod/dfrn_request.php:585
#, php-format
msgid "Welcome home %s."
msgstr ""
#: ../../mod/dfrn_request.php:541
#: ../../mod/dfrn_request.php:586
#, php-format
msgid "Please confirm your introduction/connection request to %s."
msgstr ""
#: ../../mod/dfrn_request.php:542
#: ../../mod/dfrn_request.php:587
msgid "Confirm"
msgstr ""
#: ../../mod/dfrn_request.php:583 ../../include/items.php:2649
#: ../../mod/dfrn_request.php:628 ../../include/items.php:2652
msgid "[Name Withheld]"
msgstr ""
#: ../../mod/dfrn_request.php:670
#: ../../mod/dfrn_request.php:715
msgid ""
"Please enter your 'Identity Address' from one of the following supported "
"communications networks:"
msgstr ""
#: ../../mod/dfrn_request.php:686
#: ../../mod/dfrn_request.php:731
msgid "<strike>Connect as an email follower</strike> (Coming soon)"
msgstr ""
#: ../../mod/dfrn_request.php:688
#: ../../mod/dfrn_request.php:733
msgid ""
"If you are not yet a member of the free social web, <a href=\"http://dir."
"friendica.com/siteinfo\">follow this link to find a public Friendica site "
"and join us today</a>."
msgstr ""
#: ../../mod/dfrn_request.php:691
#: ../../mod/dfrn_request.php:736
msgid "Friend/Connection Request"
msgstr ""
#: ../../mod/dfrn_request.php:692
#: ../../mod/dfrn_request.php:737
msgid ""
"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
"testuser@identi.ca"
msgstr ""
#: ../../mod/dfrn_request.php:693
#: ../../mod/dfrn_request.php:738
msgid "Please answer the following:"
msgstr ""
#: ../../mod/dfrn_request.php:694
#: ../../mod/dfrn_request.php:739
#, php-format
msgid "Does %s know you?"
msgstr ""
#: ../../mod/dfrn_request.php:697
#: ../../mod/dfrn_request.php:742
msgid "Add a personal note:"
msgstr ""
#: ../../mod/dfrn_request.php:699 ../../include/contact_selectors.php:76
#: ../../mod/dfrn_request.php:744 ../../include/contact_selectors.php:76
msgid "Friendica"
msgstr ""
#: ../../mod/dfrn_request.php:700
#: ../../mod/dfrn_request.php:745
msgid "StatusNet/Federated Social Web"
msgstr ""
#: ../../mod/dfrn_request.php:701 ../../mod/settings.php:629
#: ../../mod/dfrn_request.php:746 ../../mod/settings.php:629
#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr ""
#: ../../mod/dfrn_request.php:702
#: ../../mod/dfrn_request.php:747
#, php-format
msgid ""
" - please do not use this form. Instead, enter %s into your Diaspora search "
"bar."
msgstr ""
#: ../../mod/dfrn_request.php:703
#: ../../mod/dfrn_request.php:748
msgid "Your Identity Address:"
msgstr ""
#: ../../mod/dfrn_request.php:706
#: ../../mod/dfrn_request.php:751
msgid "Submit Request"
msgstr ""
@ -1164,7 +1176,7 @@ msgid "is interested in:"
msgstr ""
#: ../../mod/match.php:58 ../../mod/suggest.php:59
#: ../../include/contact_widgets.php:9 ../../boot.php:987
#: ../../include/contact_widgets.php:9 ../../boot.php:1026
msgid "Connect"
msgstr ""
@ -1195,8 +1207,8 @@ msgid "Discard"
msgstr ""
#: ../../mod/notifications.php:51 ../../mod/notifications.php:160
#: ../../mod/notifications.php:206 ../../mod/contacts.php:302
#: ../../mod/contacts.php:345
#: ../../mod/notifications.php:206 ../../mod/contacts.php:308
#: ../../mod/contacts.php:351
msgid "Ignore"
msgstr ""
@ -1212,10 +1224,10 @@ msgstr ""
msgid "Personal"
msgstr ""
#: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:240
#: ../../view/theme/diabook-blue/theme.php:240
#: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:239
#: ../../view/theme/diabook-blue/theme.php:239
#: ../../view/theme/diabook/theme.php:247
#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:77
#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:77
#: ../../include/nav.php:115
msgid "Home"
msgstr ""
@ -1224,7 +1236,7 @@ msgstr ""
msgid "Introductions"
msgstr ""
#: ../../mod/notifications.php:100 ../../mod/message.php:103
#: ../../mod/notifications.php:100 ../../mod/message.php:102
#: ../../include/nav.php:128
msgid "Messages"
msgstr ""
@ -1251,7 +1263,7 @@ msgid "suggested by %s"
msgstr ""
#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
#: ../../mod/contacts.php:350
#: ../../mod/contacts.php:356
msgid "Hide this contact from others"
msgstr ""
@ -1264,7 +1276,7 @@ msgid "if applicable"
msgstr ""
#: ../../mod/notifications.php:157 ../../mod/notifications.php:204
#: ../../mod/admin.php:530
#: ../../mod/admin.php:546
msgid "Approve"
msgstr ""
@ -1409,207 +1421,206 @@ msgstr ""
msgid "Contact has been removed."
msgstr ""
#: ../../mod/contacts.php:245
#: ../../mod/contacts.php:251
#, php-format
msgid "You are mutual friends with %s"
msgstr ""
#: ../../mod/contacts.php:249
#: ../../mod/contacts.php:255
#, php-format
msgid "You are sharing with %s"
msgstr ""
#: ../../mod/contacts.php:254
#: ../../mod/contacts.php:260
#, php-format
msgid "%s is sharing with you"
msgstr ""
#: ../../mod/contacts.php:271
#: ../../mod/contacts.php:277
msgid "Private communications are not available for this contact."
msgstr ""
#: ../../mod/contacts.php:274
#: ../../mod/contacts.php:280
msgid "Never"
msgstr ""
#: ../../mod/contacts.php:278
#: ../../mod/contacts.php:284
msgid "(Update was successful)"
msgstr ""
#: ../../mod/contacts.php:278
#: ../../mod/contacts.php:284
msgid "(Update was not successful)"
msgstr ""
#: ../../mod/contacts.php:280
#: ../../mod/contacts.php:286
msgid "Suggest friends"
msgstr ""
#: ../../mod/contacts.php:284
#: ../../mod/contacts.php:290
#, php-format
msgid "Network type: %s"
msgstr ""
#: ../../mod/contacts.php:287
#: ../../mod/contacts.php:293
#, php-format
msgid "%d contact in common"
msgid_plural "%d contacts in common"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/contacts.php:292
#: ../../mod/contacts.php:298
msgid "View all contacts"
msgstr ""
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
#: ../../mod/admin.php:534
#: ../../mod/contacts.php:303 ../../mod/contacts.php:350
#: ../../mod/admin.php:550
msgid "Unblock"
msgstr ""
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
#: ../../mod/admin.php:533
#: ../../mod/contacts.php:303 ../../mod/contacts.php:350
#: ../../mod/admin.php:549
msgid "Block"
msgstr ""
#: ../../mod/contacts.php:302 ../../mod/contacts.php:345
#: ../../mod/contacts.php:308 ../../mod/contacts.php:351
msgid "Unignore"
msgstr ""
#: ../../mod/contacts.php:307
#: ../../mod/contacts.php:313
msgid "Repair"
msgstr ""
#: ../../mod/contacts.php:317
#: ../../mod/contacts.php:323
msgid "Contact Editor"
msgstr ""
#: ../../mod/contacts.php:320
#: ../../mod/contacts.php:326
msgid "Profile Visibility"
msgstr ""
#: ../../mod/contacts.php:321
#: ../../mod/contacts.php:327
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr ""
#: ../../mod/contacts.php:322
#: ../../mod/contacts.php:328
msgid "Contact Information / Notes"
msgstr ""
#: ../../mod/contacts.php:323
#: ../../mod/contacts.php:329
msgid "Edit contact notes"
msgstr ""
#: ../../mod/contacts.php:328 ../../mod/contacts.php:501
#: ../../mod/viewcontacts.php:62
#: ../../mod/contacts.php:334 ../../mod/contacts.php:507
#: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40
#, php-format
msgid "Visit %s's profile [%s]"
msgstr ""
#: ../../mod/contacts.php:329
#: ../../mod/contacts.php:335
msgid "Block/Unblock contact"
msgstr ""
#: ../../mod/contacts.php:330
#: ../../mod/contacts.php:336
msgid "Ignore contact"
msgstr ""
#: ../../mod/contacts.php:331
#: ../../mod/contacts.php:337
msgid "Repair URL settings"
msgstr ""
#: ../../mod/contacts.php:332
#: ../../mod/contacts.php:338
msgid "View conversations"
msgstr ""
#: ../../mod/contacts.php:334
#: ../../mod/contacts.php:340
msgid "Delete contact"
msgstr ""
#: ../../mod/contacts.php:338
#: ../../mod/contacts.php:344
msgid "Last update:"
msgstr ""
#: ../../mod/contacts.php:339
#: ../../mod/contacts.php:345
msgid "Update public posts"
msgstr ""
#: ../../mod/contacts.php:341 ../../mod/admin.php:955
#: ../../mod/contacts.php:347 ../../mod/admin.php:979
msgid "Update now"
msgstr ""
#: ../../mod/contacts.php:348
#: ../../mod/contacts.php:354
msgid "Currently blocked"
msgstr ""
#: ../../mod/contacts.php:349
#: ../../mod/contacts.php:355
msgid "Currently ignored"
msgstr ""
#: ../../mod/contacts.php:350
#: ../../mod/contacts.php:356
msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr ""
#: ../../mod/contacts.php:399
#: ../../mod/contacts.php:405
msgid "Suggestions"
msgstr ""
#: ../../mod/contacts.php:404 ../../mod/group.php:191
#: ../../mod/contacts.php:410 ../../mod/group.php:191
msgid "All Contacts"
msgstr ""
#: ../../mod/contacts.php:409
#: ../../mod/contacts.php:415
msgid "Unblocked Contacts"
msgstr ""
#: ../../mod/contacts.php:415
#: ../../mod/contacts.php:421
msgid "Blocked Contacts"
msgstr ""
#: ../../mod/contacts.php:421
#: ../../mod/contacts.php:427
msgid "Ignored Contacts"
msgstr ""
#: ../../mod/contacts.php:427
#: ../../mod/contacts.php:433
msgid "Hidden Contacts"
msgstr ""
#: ../../mod/contacts.php:477
#: ../../mod/contacts.php:483
msgid "Mutual Friendship"
msgstr ""
#: ../../mod/contacts.php:481
#: ../../mod/contacts.php:487
msgid "is a fan of yours"
msgstr ""
#: ../../mod/contacts.php:485
#: ../../mod/contacts.php:491
msgid "you are a fan of"
msgstr ""
#: ../../mod/contacts.php:502 ../../include/Contact.php:141
#: ../../include/conversation.php:817
#: ../../mod/contacts.php:508 ../../mod/nogroup.php:41
msgid "Edit contact"
msgstr ""
#: ../../mod/contacts.php:523 ../../view/theme/diabook-red/theme.php:242
#: ../../view/theme/diabook-blue/theme.php:242
#: ../../mod/contacts.php:529 ../../view/theme/diabook-red/theme.php:241
#: ../../view/theme/diabook-blue/theme.php:241
#: ../../view/theme/diabook/theme.php:249
#: ../../view/theme/diabook-aerith/theme.php:243 ../../include/nav.php:139
#: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:139
msgid "Contacts"
msgstr ""
#: ../../mod/contacts.php:527
#: ../../mod/contacts.php:533
msgid "Search your contacts"
msgstr ""
#: ../../mod/contacts.php:528 ../../mod/directory.php:57
#: ../../mod/contacts.php:534 ../../mod/directory.php:57
msgid "Finding: "
msgstr ""
#: ../../mod/contacts.php:529 ../../mod/directory.php:59
#: ../../include/contact_widgets.php:32
#: ../../mod/contacts.php:535 ../../mod/directory.php:59
#: ../../include/contact_widgets.php:33
msgid "Find"
msgstr ""
@ -1627,10 +1638,11 @@ msgid "Password reset requested at %s"
msgstr ""
#: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
#: ../../mod/register.php:392 ../../mod/register.php:446
#: ../../mod/register.php:388 ../../mod/register.php:442
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732
#: ../../addon/facebook/facebook.php:621
#: ../../addon/facebook/facebook.php:1073 ../../include/items.php:2658
#: ../../addon/facebook/facebook.php:622
#: ../../addon/facebook/facebook.php:1076
#: ../../addon/testdrive/testdrive.php:58 ../../include/items.php:2661
msgid "Administrator"
msgstr ""
@ -1640,7 +1652,7 @@ msgid ""
"Password reset failed."
msgstr ""
#: ../../mod/lostpass.php:83 ../../boot.php:779
#: ../../mod/lostpass.php:83 ../../boot.php:809
msgid "Password Reset"
msgstr ""
@ -1684,151 +1696,139 @@ msgstr ""
msgid "Reset"
msgstr ""
#: ../../mod/settings.php:89
#: ../../mod/settings.php:49 ../../include/nav.php:137
msgid "Account settings"
msgstr ""
#: ../../mod/settings.php:54
msgid "Display settings"
msgstr ""
#: ../../mod/settings.php:60
msgid "Connector settings"
msgstr ""
#: ../../mod/settings.php:65
msgid "Plugin settings"
msgstr ""
#: ../../mod/settings.php:70
msgid "Connected apps"
msgstr ""
#: ../../mod/settings.php:75
msgid "Export personal data"
msgstr ""
#: ../../mod/settings.php:83 ../../mod/admin.php:631 ../../mod/admin.php:817
#: ../../include/nav.php:137
msgid "Settings"
msgstr ""
#: ../../mod/settings.php:126
msgid "Missing some important data!"
msgstr ""
#: ../../mod/settings.php:92 ../../mod/settings.php:556 ../../mod/admin.php:75
#: ../../mod/settings.php:129 ../../mod/settings.php:558
#: ../../mod/admin.php:89
msgid "Update"
msgstr ""
#: ../../mod/settings.php:197
#: ../../mod/settings.php:234
msgid "Failed to connect with email account using the settings provided."
msgstr ""
#: ../../mod/settings.php:202
#: ../../mod/settings.php:239
msgid "Email settings updated."
msgstr ""
#: ../../mod/settings.php:261
#: ../../mod/settings.php:298
msgid "Passwords do not match. Password unchanged."
msgstr ""
#: ../../mod/settings.php:266
#: ../../mod/settings.php:303
msgid "Empty passwords are not allowed. Password unchanged."
msgstr ""
#: ../../mod/settings.php:277
#: ../../mod/settings.php:314
msgid "Password changed."
msgstr ""
#: ../../mod/settings.php:279
#: ../../mod/settings.php:316
msgid "Password update failed. Please try again."
msgstr ""
#: ../../mod/settings.php:340
#: ../../mod/settings.php:379
msgid " Please use a shorter name."
msgstr ""
#: ../../mod/settings.php:342
#: ../../mod/settings.php:381
msgid " Name too short."
msgstr ""
#: ../../mod/settings.php:348
#: ../../mod/settings.php:387
msgid " Not valid email."
msgstr ""
#: ../../mod/settings.php:350
#: ../../mod/settings.php:389
msgid " Cannot change to that email."
msgstr ""
#: ../../mod/settings.php:420 ../../addon/facebook/facebook.php:449
#: ../../mod/settings.php:461 ../../addon/facebook/facebook.php:450
#: ../../addon/impressum/impressum.php:75
#: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:370
msgid "Settings updated."
msgstr ""
#: ../../mod/settings.php:484 ../../view/theme/diabook-red/theme.php:288
#: ../../view/theme/diabook-blue/theme.php:287
#: ../../view/theme/diabook/theme.php:298
#: ../../view/theme/diabook-aerith/theme.php:288 ../../include/nav.php:137
msgid "Account settings"
msgstr ""
#: ../../mod/settings.php:489 ../../view/theme/diabook-red/theme.php:293
#: ../../view/theme/diabook-blue/theme.php:292
#: ../../view/theme/diabook/theme.php:303
#: ../../view/theme/diabook-aerith/theme.php:293
msgid "Display settings"
msgstr ""
#: ../../mod/settings.php:495 ../../view/theme/diabook-red/theme.php:302
#: ../../view/theme/diabook-blue/theme.php:301
#: ../../view/theme/diabook/theme.php:312
#: ../../view/theme/diabook-aerith/theme.php:302
msgid "Connector settings"
msgstr ""
#: ../../mod/settings.php:500 ../../view/theme/diabook-red/theme.php:307
#: ../../view/theme/diabook-blue/theme.php:306
#: ../../view/theme/diabook/theme.php:317
#: ../../view/theme/diabook-aerith/theme.php:307
msgid "Plugin settings"
msgstr ""
#: ../../mod/settings.php:505 ../../view/theme/diabook-red/theme.php:312
#: ../../view/theme/diabook-blue/theme.php:311
#: ../../view/theme/diabook/theme.php:322
#: ../../view/theme/diabook-aerith/theme.php:312
msgid "Connections"
msgstr ""
#: ../../mod/settings.php:510 ../../view/theme/diabook-red/theme.php:317
#: ../../view/theme/diabook-blue/theme.php:316
#: ../../view/theme/diabook/theme.php:327
#: ../../view/theme/diabook-aerith/theme.php:317
msgid "Export personal data"
msgstr ""
#: ../../mod/settings.php:528 ../../mod/settings.php:555
#: ../../mod/settings.php:591
#: ../../mod/settings.php:531 ../../mod/settings.php:557
#: ../../mod/settings.php:593
msgid "Add application"
msgstr ""
#: ../../mod/settings.php:532 ../../mod/settings.php:559
#: ../../mod/settings.php:535 ../../mod/settings.php:561
#: ../../addon/statusnet/statusnet.php:547
msgid "Consumer Key"
msgstr ""
#: ../../mod/settings.php:533 ../../mod/settings.php:560
#: ../../mod/settings.php:536 ../../mod/settings.php:562
#: ../../addon/statusnet/statusnet.php:546
msgid "Consumer Secret"
msgstr ""
#: ../../mod/settings.php:534 ../../mod/settings.php:561
#: ../../mod/settings.php:537 ../../mod/settings.php:563
msgid "Redirect"
msgstr ""
#: ../../mod/settings.php:535 ../../mod/settings.php:562
#: ../../mod/settings.php:538 ../../mod/settings.php:564
msgid "Icon url"
msgstr ""
#: ../../mod/settings.php:546
#: ../../mod/settings.php:549
msgid "You can't edit this application."
msgstr ""
#: ../../mod/settings.php:590
#: ../../mod/settings.php:592
msgid "Connected Apps"
msgstr ""
#: ../../mod/settings.php:594
#: ../../mod/settings.php:596
msgid "Client key starts with"
msgstr ""
#: ../../mod/settings.php:595
#: ../../mod/settings.php:597
msgid "No name"
msgstr ""
#: ../../mod/settings.php:596
#: ../../mod/settings.php:598
msgid "Remove authorization"
msgstr ""
#: ../../mod/settings.php:608
#: ../../mod/settings.php:609
msgid "No Plugin settings configured"
msgstr ""
#: ../../mod/settings.php:616 ../../addon/widgets/widgets.php:123
#: ../../mod/settings.php:617 ../../addon/widgets/widgets.php:123
msgid "Plugin Settings"
msgstr ""
@ -1853,321 +1853,333 @@ msgstr ""
msgid "Connector Settings"
msgstr ""
#: ../../mod/settings.php:666
#: ../../mod/settings.php:665
msgid "Email/Mailbox Setup"
msgstr ""
#: ../../mod/settings.php:667
#: ../../mod/settings.php:666
msgid ""
"If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox."
msgstr ""
#: ../../mod/settings.php:668
#: ../../mod/settings.php:667
msgid "Last successful email check:"
msgstr ""
#: ../../mod/settings.php:669
#: ../../mod/settings.php:668
msgid "Email access is disabled on this site."
msgstr ""
#: ../../mod/settings.php:670
#: ../../mod/settings.php:669
msgid "IMAP server name:"
msgstr ""
#: ../../mod/settings.php:671
#: ../../mod/settings.php:670
msgid "IMAP port:"
msgstr ""
#: ../../mod/settings.php:672
#: ../../mod/settings.php:671
msgid "Security:"
msgstr ""
#: ../../mod/settings.php:672 ../../mod/settings.php:677
#: ../../mod/settings.php:671 ../../mod/settings.php:676
msgid "None"
msgstr ""
#: ../../mod/settings.php:673
#: ../../mod/settings.php:672
msgid "Email login name:"
msgstr ""
#: ../../mod/settings.php:674
#: ../../mod/settings.php:673
msgid "Email password:"
msgstr ""
#: ../../mod/settings.php:675
#: ../../mod/settings.php:674
msgid "Reply-to address:"
msgstr ""
#: ../../mod/settings.php:676
#: ../../mod/settings.php:675
msgid "Send public posts to all email contacts:"
msgstr ""
#: ../../mod/settings.php:677
#: ../../mod/settings.php:676
msgid "Action after import:"
msgstr ""
#: ../../mod/settings.php:677
#: ../../mod/settings.php:676
msgid "Mark as seen"
msgstr ""
#: ../../mod/settings.php:677
#: ../../mod/settings.php:676
msgid "Move to folder"
msgstr ""
#: ../../mod/settings.php:678
#: ../../mod/settings.php:677
msgid "Move to folder:"
msgstr ""
#: ../../mod/settings.php:739
#: ../../mod/settings.php:737
msgid "Display Settings"
msgstr ""
#: ../../mod/settings.php:745
#: ../../mod/settings.php:743
msgid "Display Theme:"
msgstr ""
#: ../../mod/settings.php:746
#: ../../mod/settings.php:744
msgid "Update browser every xx seconds"
msgstr ""
#: ../../mod/settings.php:746
#: ../../mod/settings.php:744
msgid "Minimum of 10 seconds, no maximum"
msgstr ""
#: ../../mod/settings.php:747
#: ../../mod/settings.php:745
msgid "Number of items to display on the network page:"
msgstr ""
#: ../../mod/settings.php:747
#: ../../mod/settings.php:745
msgid "Maximum of 100 items"
msgstr ""
#: ../../mod/settings.php:748
#: ../../mod/settings.php:746
msgid "Don't show emoticons"
msgstr ""
#: ../../mod/settings.php:808 ../../mod/admin.php:142 ../../mod/admin.php:506
#: ../../mod/settings.php:811 ../../mod/admin.php:162 ../../mod/admin.php:522
msgid "Normal Account"
msgstr ""
#: ../../mod/settings.php:809
#: ../../mod/settings.php:812
msgid "This account is a normal personal profile"
msgstr ""
#: ../../mod/settings.php:812 ../../mod/admin.php:143 ../../mod/admin.php:507
#: ../../mod/settings.php:815 ../../mod/admin.php:163 ../../mod/admin.php:523
msgid "Soapbox Account"
msgstr ""
#: ../../mod/settings.php:813
#: ../../mod/settings.php:816
msgid "Automatically approve all connection/friend requests as read-only fans"
msgstr ""
#: ../../mod/settings.php:816 ../../mod/admin.php:144 ../../mod/admin.php:508
#: ../../mod/settings.php:819 ../../mod/admin.php:164 ../../mod/admin.php:524
msgid "Community/Celebrity Account"
msgstr ""
#: ../../mod/settings.php:817
#: ../../mod/settings.php:820
msgid "Automatically approve all connection/friend requests as read-write fans"
msgstr ""
#: ../../mod/settings.php:820 ../../mod/admin.php:145 ../../mod/admin.php:509
#: ../../mod/settings.php:823 ../../mod/admin.php:165 ../../mod/admin.php:525
msgid "Automatic Friend Account"
msgstr ""
#: ../../mod/settings.php:821
#: ../../mod/settings.php:824
msgid "Automatically approve all connection/friend requests as friends"
msgstr ""
#: ../../mod/settings.php:831
#: ../../mod/settings.php:834
msgid "OpenID:"
msgstr ""
#: ../../mod/settings.php:831
#: ../../mod/settings.php:834
msgid "(Optional) Allow this OpenID to login to this account."
msgstr ""
#: ../../mod/settings.php:841
#: ../../mod/settings.php:844
msgid "Publish your default profile in your local site directory?"
msgstr ""
#: ../../mod/settings.php:847
#: ../../mod/settings.php:850
msgid "Publish your default profile in the global social directory?"
msgstr ""
#: ../../mod/settings.php:855
#: ../../mod/settings.php:858
msgid "Hide your contact/friend list from viewers of your default profile?"
msgstr ""
#: ../../mod/settings.php:859
#: ../../mod/settings.php:862
msgid "Hide your profile details from unknown viewers?"
msgstr ""
#: ../../mod/settings.php:864
#: ../../mod/settings.php:867
msgid "Allow friends to post to your profile page?"
msgstr ""
#: ../../mod/settings.php:870
#: ../../mod/settings.php:873
msgid "Allow friends to tag your posts?"
msgstr ""
#: ../../mod/settings.php:876
#: ../../mod/settings.php:879
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
#: ../../mod/settings.php:882
#: ../../mod/settings.php:885
msgid "Permit unknown people to send you private mail?"
msgstr ""
#: ../../mod/settings.php:891
#: ../../mod/settings.php:896
msgid "Profile is <strong>not published</strong>."
msgstr ""
#: ../../mod/settings.php:897 ../../mod/profile_photo.php:211
#: ../../mod/settings.php:902 ../../mod/profile_photo.php:211
msgid "or"
msgstr ""
#: ../../mod/settings.php:902
#: ../../mod/settings.php:907
msgid "Your Identity Address is"
msgstr ""
#: ../../mod/settings.php:913
#: ../../mod/settings.php:918
msgid "Automatically expire posts after this many days:"
msgstr ""
#: ../../mod/settings.php:913
#: ../../mod/settings.php:918
msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr ""
#: ../../mod/settings.php:914
#: ../../mod/settings.php:919
msgid "Advanced expiration settings"
msgstr ""
#: ../../mod/settings.php:915
#: ../../mod/settings.php:920
msgid "Advanced Expiration"
msgstr ""
#: ../../mod/settings.php:916
#: ../../mod/settings.php:921
msgid "Expire posts:"
msgstr ""
#: ../../mod/settings.php:917
#: ../../mod/settings.php:922
msgid "Expire personal notes:"
msgstr ""
#: ../../mod/settings.php:918
#: ../../mod/settings.php:923
msgid "Expire starred posts:"
msgstr ""
#: ../../mod/settings.php:919
#: ../../mod/settings.php:924
msgid "Expire photos:"
msgstr ""
#: ../../mod/settings.php:924
#: ../../mod/settings.php:928
msgid "Account Settings"
msgstr ""
#: ../../mod/settings.php:933
#: ../../mod/settings.php:937
msgid "Password Settings"
msgstr ""
#: ../../mod/settings.php:934
#: ../../mod/settings.php:938
msgid "New Password:"
msgstr ""
#: ../../mod/settings.php:935
#: ../../mod/settings.php:939
msgid "Confirm:"
msgstr ""
#: ../../mod/settings.php:935
#: ../../mod/settings.php:939
msgid "Leave password fields blank unless changing"
msgstr ""
#: ../../mod/settings.php:939
#: ../../mod/settings.php:943
msgid "Basic Settings"
msgstr ""
#: ../../mod/settings.php:940 ../../include/profile_advanced.php:15
#: ../../mod/settings.php:944 ../../include/profile_advanced.php:15
msgid "Full Name:"
msgstr ""
#: ../../mod/settings.php:941
#: ../../mod/settings.php:945
msgid "Email Address:"
msgstr ""
#: ../../mod/settings.php:942
#: ../../mod/settings.php:946
msgid "Your Timezone:"
msgstr ""
#: ../../mod/settings.php:943
#: ../../mod/settings.php:947
msgid "Default Post Location:"
msgstr ""
#: ../../mod/settings.php:944
#: ../../mod/settings.php:948
msgid "Use Browser Location:"
msgstr ""
#: ../../mod/settings.php:947
#: ../../mod/settings.php:951
msgid "Security and Privacy Settings"
msgstr ""
#: ../../mod/settings.php:949
#: ../../mod/settings.php:953
msgid "Maximum Friend Requests/Day:"
msgstr ""
#: ../../mod/settings.php:949 ../../mod/settings.php:964
#: ../../mod/settings.php:953 ../../mod/settings.php:968
msgid "(to prevent spam abuse)"
msgstr ""
#: ../../mod/settings.php:950
#: ../../mod/settings.php:954
msgid "Default Post Permissions"
msgstr ""
#: ../../mod/settings.php:951
#: ../../mod/settings.php:955
msgid "(click to open/close)"
msgstr ""
#: ../../mod/settings.php:964
#: ../../mod/settings.php:968
msgid "Maximum private messages per day from unknown people:"
msgstr ""
#: ../../mod/settings.php:967
#: ../../mod/settings.php:971
msgid "Notification Settings"
msgstr ""
#: ../../mod/settings.php:968
msgid "Send a notification email when:"
msgstr ""
#: ../../mod/settings.php:969
msgid "You receive an introduction"
msgstr ""
#: ../../mod/settings.php:970
msgid "Your introductions are confirmed"
msgstr ""
#: ../../mod/settings.php:971
msgid "Someone writes on your profile wall"
msgstr ""
#: ../../mod/settings.php:972
msgid "Someone writes a followup comment"
msgid "By default post a status message when:"
msgstr ""
#: ../../mod/settings.php:973
msgid "You receive a private message"
msgid "accepting a friend request"
msgstr ""
#: ../../mod/settings.php:974
msgid "You receive a friend suggestion"
msgid "making an <em>interesting</em> profile change"
msgstr ""
#: ../../mod/settings.php:975
msgid "You are tagged in a post"
msgid "Send a notification email when:"
msgstr ""
#: ../../mod/settings.php:976
msgid "You receive an introduction"
msgstr ""
#: ../../mod/settings.php:977
msgid "Your introductions are confirmed"
msgstr ""
#: ../../mod/settings.php:978
msgid "Someone writes on your profile wall"
msgstr ""
#: ../../mod/settings.php:979
msgid "Someone writes a followup comment"
msgstr ""
#: ../../mod/settings.php:980
msgid "You receive a private message"
msgstr ""
#: ../../mod/settings.php:981
msgid "You receive a friend suggestion"
msgstr ""
#: ../../mod/settings.php:982
msgid "You are tagged in a post"
msgstr ""
#: ../../mod/settings.php:985
msgid "Advanced Page Settings"
msgstr ""
@ -2197,7 +2209,7 @@ msgstr ""
msgid "Saved Searches"
msgstr ""
#: ../../mod/network.php:92 ../../include/group.php:216
#: ../../mod/network.php:92 ../../include/group.php:217
msgid "add"
msgstr ""
@ -2257,12 +2269,12 @@ msgstr ""
msgid "Invalid contact."
msgstr ""
#: ../../mod/notes.php:44 ../../boot.php:1427
#: ../../mod/notes.php:44 ../../boot.php:1475
msgid "Personal Notes"
msgstr ""
#: ../../mod/notes.php:63 ../../mod/filer.php:30
#: ../../addon/facebook/facebook.php:677 ../../include/text.php:652
#: ../../addon/facebook/facebook.php:680 ../../include/text.php:652
msgid "Save"
msgstr ""
@ -2271,7 +2283,7 @@ msgstr ""
msgid "Number of daily wall messages for %s exceeded. Message failed."
msgstr ""
#: ../../mod/wallmessage.php:56 ../../mod/message.php:60
#: ../../mod/wallmessage.php:56 ../../mod/message.php:59
msgid "No recipient selected."
msgstr ""
@ -2279,15 +2291,15 @@ msgstr ""
msgid "Unable to check your home location."
msgstr ""
#: ../../mod/wallmessage.php:62 ../../mod/message.php:67
#: ../../mod/wallmessage.php:62 ../../mod/message.php:66
msgid "Message could not be sent."
msgstr ""
#: ../../mod/wallmessage.php:65 ../../mod/message.php:70
#: ../../mod/wallmessage.php:65 ../../mod/message.php:69
msgid "Message collection failure."
msgstr ""
#: ../../mod/wallmessage.php:68 ../../mod/message.php:73
#: ../../mod/wallmessage.php:68 ../../mod/message.php:72
msgid "Message sent."
msgstr ""
@ -2295,12 +2307,12 @@ msgstr ""
msgid "No recipient."
msgstr ""
#: ../../mod/wallmessage.php:124 ../../mod/message.php:170
#: ../../mod/wallmessage.php:124 ../../mod/message.php:169
#: ../../include/conversation.php:914
msgid "Please enter a link URL:"
msgstr ""
#: ../../mod/wallmessage.php:131 ../../mod/message.php:178
#: ../../mod/wallmessage.php:131 ../../mod/message.php:177
msgid "Send Private Message"
msgstr ""
@ -2311,18 +2323,18 @@ msgid ""
"your site allow private mail from unknown senders."
msgstr ""
#: ../../mod/wallmessage.php:133 ../../mod/message.php:179
#: ../../mod/message.php:348
#: ../../mod/wallmessage.php:133 ../../mod/message.php:178
#: ../../mod/message.php:347
msgid "To:"
msgstr ""
#: ../../mod/wallmessage.php:134 ../../mod/message.php:180
#: ../../mod/message.php:349
#: ../../mod/wallmessage.php:134 ../../mod/message.php:179
#: ../../mod/message.php:348
msgid "Subject:"
msgstr ""
#: ../../mod/wallmessage.php:140 ../../mod/message.php:184
#: ../../mod/message.php:352 ../../mod/invite.php:113
#: ../../mod/wallmessage.php:140 ../../mod/message.php:183
#: ../../mod/message.php:351 ../../mod/invite.php:113
msgid "Your message:"
msgstr ""
@ -2464,7 +2476,7 @@ msgstr ""
msgid "Group name changed."
msgstr ""
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:304
msgid "Permission denied"
msgstr ""
@ -2504,12 +2516,12 @@ msgstr ""
msgid "Profile Visibility Editor"
msgstr ""
#: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:241
#: ../../view/theme/diabook-blue/theme.php:241
#: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:240
#: ../../view/theme/diabook-blue/theme.php:240
#: ../../view/theme/diabook/theme.php:248
#: ../../view/theme/diabook-aerith/theme.php:242
#: ../../view/theme/diabook-aerith/theme.php:241
#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:76
#: ../../include/nav.php:50 ../../boot.php:1409
#: ../../include/nav.php:50 ../../boot.php:1457
msgid "Profile"
msgstr ""
@ -2597,91 +2609,91 @@ msgstr ""
msgid "An error occurred creating your default profile. Please try again."
msgstr ""
#: ../../mod/register.php:390 ../../mod/regmod.php:52
#: ../../mod/register.php:386 ../../mod/regmod.php:52
#, php-format
msgid "Registration details for %s"
msgstr ""
#: ../../mod/register.php:398
#: ../../mod/register.php:394
msgid ""
"Registration successful. Please check your email for further instructions."
msgstr ""
#: ../../mod/register.php:402
#: ../../mod/register.php:398
msgid "Failed to send email message. Here is the message that failed."
msgstr ""
#: ../../mod/register.php:407
#: ../../mod/register.php:403
msgid "Your registration can not be processed."
msgstr ""
#: ../../mod/register.php:444
#: ../../mod/register.php:440
#, php-format
msgid "Registration request at %s"
msgstr ""
#: ../../mod/register.php:453
#: ../../mod/register.php:449
msgid "Your registration is pending approval by the site owner."
msgstr ""
#: ../../mod/register.php:491
#: ../../mod/register.php:487
msgid ""
"This site has exceeded the number of allowed daily account registrations. "
"Please try again tomorrow."
msgstr ""
#: ../../mod/register.php:517
#: ../../mod/register.php:513
msgid ""
"You may (optionally) fill in this form via OpenID by supplying your OpenID "
"and clicking 'Register'."
msgstr ""
#: ../../mod/register.php:518
#: ../../mod/register.php:514
msgid ""
"If you are not familiar with OpenID, please leave that field blank and fill "
"in the rest of the items."
msgstr ""
#: ../../mod/register.php:519
#: ../../mod/register.php:515
msgid "Your OpenID (optional): "
msgstr ""
#: ../../mod/register.php:533
#: ../../mod/register.php:529
msgid "Include your profile in member directory?"
msgstr ""
#: ../../mod/register.php:553
#: ../../mod/register.php:549
msgid "Membership on this site is by invitation only."
msgstr ""
#: ../../mod/register.php:554
#: ../../mod/register.php:550
msgid "Your invitation ID: "
msgstr ""
#: ../../mod/register.php:557 ../../mod/admin.php:358
#: ../../mod/register.php:553 ../../mod/admin.php:375
msgid "Registration"
msgstr ""
#: ../../mod/register.php:565
#: ../../mod/register.php:561
msgid "Your Full Name (e.g. Joe Smith): "
msgstr ""
#: ../../mod/register.php:566
#: ../../mod/register.php:562
msgid "Your Email Address: "
msgstr ""
#: ../../mod/register.php:567
#: ../../mod/register.php:563
msgid ""
"Choose a profile nickname. This must begin with a text character. Your "
"profile address on this site will then be '<strong>nickname@$sitename</"
"strong>'."
msgstr ""
#: ../../mod/register.php:568
#: ../../mod/register.php:564
msgid "Choose a nickname: "
msgstr ""
#: ../../mod/register.php:571 ../../include/nav.php:81 ../../boot.php:745
#: ../../mod/register.php:567 ../../include/nav.php:81 ../../boot.php:775
msgid "Register"
msgstr ""
@ -2690,28 +2702,28 @@ msgid "People Search"
msgstr ""
#: ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/facebook/facebook.php:1546
#: ../../addon/facebook/facebook.php:1549
#: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167
#: ../../view/theme/diabook-red/theme.php:81
#: ../../view/theme/diabook-red/theme.php:90
#: ../../view/theme/diabook-blue/theme.php:81
#: ../../view/theme/diabook-blue/theme.php:90
#: ../../view/theme/diabook-red/theme.php:80
#: ../../view/theme/diabook-red/theme.php:89
#: ../../view/theme/diabook-blue/theme.php:80
#: ../../view/theme/diabook-blue/theme.php:89
#: ../../view/theme/diabook/theme.php:84 ../../view/theme/diabook/theme.php:93
#: ../../view/theme/diabook-aerith/theme.php:82
#: ../../view/theme/diabook-aerith/theme.php:91
#: ../../view/theme/diabook-aerith/theme.php:81
#: ../../view/theme/diabook-aerith/theme.php:90
#: ../../include/diaspora.php:1654 ../../include/conversation.php:48
#: ../../include/conversation.php:57 ../../include/conversation.php:121
#: ../../include/conversation.php:130
msgid "status"
msgstr ""
#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1550
#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1553
#: ../../addon/communityhome/communityhome.php:172
#: ../../view/theme/diabook-red/theme.php:95
#: ../../view/theme/diabook-blue/theme.php:95
#: ../../view/theme/diabook-red/theme.php:94
#: ../../view/theme/diabook-blue/theme.php:94
#: ../../view/theme/diabook/theme.php:98
#: ../../view/theme/diabook-aerith/theme.php:96
#: ../../view/theme/diabook-aerith/theme.php:95
#: ../../include/diaspora.php:1670 ../../include/conversation.php:65
#, php-format
msgid "%1$s likes %2$s's %3$s"
@ -2722,9 +2734,9 @@ msgstr ""
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:127
#: ../../mod/admin.php:566 ../../mod/admin.php:745 ../../mod/display.php:37
#: ../../mod/display.php:142 ../../include/items.php:3030
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:141
#: ../../mod/admin.php:582 ../../mod/admin.php:761 ../../mod/display.php:37
#: ../../mod/display.php:142 ../../include/items.php:3044
msgid "Item not found."
msgstr ""
@ -2753,34 +2765,34 @@ msgstr ""
msgid "Empty post discarded."
msgstr ""
#: ../../mod/item.php:373 ../../mod/wall_upload.php:81
#: ../../mod/wall_upload.php:90 ../../mod/wall_upload.php:97
#: ../../mod/item.php:372 ../../mod/wall_upload.php:85
#: ../../mod/wall_upload.php:94 ../../mod/wall_upload.php:101
#: ../../include/message.php:144
msgid "Wall Photos"
msgstr ""
#: ../../mod/item.php:763
#: ../../mod/item.php:762
msgid "System error. Post not saved."
msgstr ""
#: ../../mod/item.php:788
#: ../../mod/item.php:787
#, php-format
msgid ""
"This message was sent to you by %s, a member of the Friendica social network."
msgstr ""
#: ../../mod/item.php:790
#: ../../mod/item.php:789
#, php-format
msgid "You may visit them online at %s"
msgstr ""
#: ../../mod/item.php:791
#: ../../mod/item.php:790
msgid ""
"Please contact the sender by replying to this post if you do not wish to "
"receive these messages."
msgstr ""
#: ../../mod/item.php:793
#: ../../mod/item.php:792
#, php-format
msgid "%s posted an update."
msgstr ""
@ -2805,7 +2817,7 @@ msgstr ""
msgid "Unable to process image"
msgstr ""
#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:56
#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:60
#, php-format
msgid "Image exceeds size limit of %d"
msgstr ""
@ -2868,67 +2880,67 @@ msgstr ""
msgid "New Message"
msgstr ""
#: ../../mod/message.php:64
#: ../../mod/message.php:63
msgid "Unable to locate contact information."
msgstr ""
#: ../../mod/message.php:118
#: ../../mod/message.php:117
msgid "Message deleted."
msgstr ""
#: ../../mod/message.php:148
#: ../../mod/message.php:147
msgid "Conversation removed."
msgstr ""
#: ../../mod/message.php:220
#: ../../mod/message.php:219
msgid "No messages."
msgstr ""
#: ../../mod/message.php:227
#: ../../mod/message.php:226
#, php-format
msgid "Unknown sender - %s"
msgstr ""
#: ../../mod/message.php:230
#: ../../mod/message.php:229
#, php-format
msgid "You and %s"
msgstr ""
#: ../../mod/message.php:233
#: ../../mod/message.php:232
#, php-format
msgid "%s and You"
msgstr ""
#: ../../mod/message.php:243 ../../mod/message.php:341
#: ../../mod/message.php:242 ../../mod/message.php:340
msgid "Delete conversation"
msgstr ""
#: ../../mod/message.php:246
#: ../../mod/message.php:245
msgid "D, d M Y - g:i A"
msgstr ""
#: ../../mod/message.php:248
#: ../../mod/message.php:247
#, php-format
msgid "%d message"
msgid_plural "%d messages"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/message.php:283
#: ../../mod/message.php:282
msgid "Message not available."
msgstr ""
#: ../../mod/message.php:325
#: ../../mod/message.php:324
msgid "Delete message"
msgstr ""
#: ../../mod/message.php:343
#: ../../mod/message.php:342
msgid ""
"No secure communications available. You <strong>may</strong> be able to "
"respond from the sender's profile page."
msgstr ""
#: ../../mod/message.php:347
#: ../../mod/message.php:346
msgid "Send Reply"
msgstr ""
@ -2941,491 +2953,485 @@ msgstr ""
msgid "No friends to display."
msgstr ""
#: ../../mod/admin.php:71 ../../mod/admin.php:356
#: ../../mod/admin.php:51
msgid "Theme settings updated."
msgstr ""
#: ../../mod/admin.php:85 ../../mod/admin.php:373
msgid "Site"
msgstr ""
#: ../../mod/admin.php:72 ../../mod/admin.php:524 ../../mod/admin.php:536
#: ../../mod/admin.php:86 ../../mod/admin.php:540 ../../mod/admin.php:552
msgid "Users"
msgstr ""
#: ../../mod/admin.php:73 ../../mod/admin.php:613 ../../mod/admin.php:653
#: ../../mod/admin.php:87 ../../mod/admin.php:629 ../../mod/admin.php:669
msgid "Plugins"
msgstr ""
#: ../../mod/admin.php:74 ../../mod/admin.php:791 ../../mod/admin.php:825
#: ../../mod/admin.php:88 ../../mod/admin.php:815 ../../mod/admin.php:849
msgid "Themes"
msgstr ""
#: ../../mod/admin.php:89 ../../mod/admin.php:905
#: ../../mod/admin.php:103 ../../mod/admin.php:929
msgid "Logs"
msgstr ""
#: ../../mod/admin.php:94
#: ../../mod/admin.php:108
msgid "User registrations waiting for confirmation"
msgstr ""
#: ../../mod/admin.php:157 ../../mod/admin.php:355 ../../mod/admin.php:523
#: ../../mod/admin.php:612 ../../mod/admin.php:652 ../../mod/admin.php:790
#: ../../mod/admin.php:824 ../../mod/admin.php:904
#: ../../mod/admin.php:177 ../../mod/admin.php:372 ../../mod/admin.php:539
#: ../../mod/admin.php:628 ../../mod/admin.php:668 ../../mod/admin.php:814
#: ../../mod/admin.php:848 ../../mod/admin.php:928
msgid "Administration"
msgstr ""
#: ../../mod/admin.php:158
#: ../../mod/admin.php:178
msgid "Summary"
msgstr ""
#: ../../mod/admin.php:159
#: ../../mod/admin.php:179
msgid "Registered users"
msgstr ""
#: ../../mod/admin.php:161
#: ../../mod/admin.php:181
msgid "Pending registrations"
msgstr ""
#: ../../mod/admin.php:162
#: ../../mod/admin.php:182
msgid "Version"
msgstr ""
#: ../../mod/admin.php:164
#: ../../mod/admin.php:184
msgid "Active plugins"
msgstr ""
#: ../../mod/admin.php:298
#: ../../mod/admin.php:315
msgid "Site settings updated."
msgstr ""
#: ../../mod/admin.php:342
#: ../../mod/admin.php:359
msgid "Closed"
msgstr ""
#: ../../mod/admin.php:343
#: ../../mod/admin.php:360
msgid "Requires approval"
msgstr ""
#: ../../mod/admin.php:344
#: ../../mod/admin.php:361
msgid "Open"
msgstr ""
#: ../../mod/admin.php:348
#: ../../mod/admin.php:365
msgid "No SSL policy, links will track page SSL state"
msgstr ""
#: ../../mod/admin.php:349
#: ../../mod/admin.php:366
msgid "Force all links to use SSL"
msgstr ""
#: ../../mod/admin.php:350
#: ../../mod/admin.php:367
msgid "Self-signed certificate, use SSL for local links only (discouraged)"
msgstr ""
#: ../../mod/admin.php:359
#: ../../mod/admin.php:376
msgid "File upload"
msgstr ""
#: ../../mod/admin.php:360
#: ../../mod/admin.php:377
msgid "Policies"
msgstr ""
#: ../../mod/admin.php:361
#: ../../mod/admin.php:378
msgid "Advanced"
msgstr ""
#: ../../mod/admin.php:365 ../../addon/statusnet/statusnet.php:544
#: ../../mod/admin.php:382 ../../addon/statusnet/statusnet.php:544
msgid "Site name"
msgstr ""
#: ../../mod/admin.php:366
#: ../../mod/admin.php:383
msgid "Banner/Logo"
msgstr ""
#: ../../mod/admin.php:367
#: ../../mod/admin.php:384
msgid "System language"
msgstr ""
#: ../../mod/admin.php:368
#: ../../mod/admin.php:385
msgid "System theme"
msgstr ""
#: ../../mod/admin.php:368
msgid "Default system theme - may be over-ridden by user profiles"
#: ../../mod/admin.php:385
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr ""
#: ../../mod/admin.php:369
#: ../../mod/admin.php:386
msgid "SSL link policy"
msgstr ""
#: ../../mod/admin.php:369
#: ../../mod/admin.php:386
msgid "Determines whether generated links should be forced to use SSL"
msgstr ""
#: ../../mod/admin.php:370
#: ../../mod/admin.php:387
msgid "Maximum image size"
msgstr ""
#: ../../mod/admin.php:370
#: ../../mod/admin.php:387
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
#: ../../mod/admin.php:372
#: ../../mod/admin.php:389
msgid "Register policy"
msgstr ""
#: ../../mod/admin.php:373
#: ../../mod/admin.php:390
msgid "Register text"
msgstr ""
#: ../../mod/admin.php:373
#: ../../mod/admin.php:390
msgid "Will be displayed prominently on the registration page."
msgstr ""
#: ../../mod/admin.php:374
#: ../../mod/admin.php:391
msgid "Accounts abandoned after x days"
msgstr ""
#: ../../mod/admin.php:374
#: ../../mod/admin.php:391
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
#: ../../mod/admin.php:375
#: ../../mod/admin.php:392
msgid "Allowed friend domains"
msgstr ""
#: ../../mod/admin.php:375
#: ../../mod/admin.php:392
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
#: ../../mod/admin.php:376
#: ../../mod/admin.php:393
msgid "Allowed email domains"
msgstr ""
#: ../../mod/admin.php:376
#: ../../mod/admin.php:393
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr ""
#: ../../mod/admin.php:377
#: ../../mod/admin.php:394
msgid "Block public"
msgstr ""
#: ../../mod/admin.php:377
#: ../../mod/admin.php:394
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr ""
#: ../../mod/admin.php:378
#: ../../mod/admin.php:395
msgid "Force publish"
msgstr ""
#: ../../mod/admin.php:378
#: ../../mod/admin.php:395
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
#: ../../mod/admin.php:379
#: ../../mod/admin.php:396
msgid "Global directory update URL"
msgstr ""
#: ../../mod/admin.php:379
#: ../../mod/admin.php:396
msgid ""
"URL to update the global directory. If this is not set, the global directory "
"is completely unavailable to the application."
msgstr ""
#: ../../mod/admin.php:381
#: ../../mod/admin.php:398
msgid "Block multiple registrations"
msgstr ""
#: ../../mod/admin.php:381
#: ../../mod/admin.php:398
msgid "Disallow users to register additional accounts for use as pages."
msgstr ""
#: ../../mod/admin.php:382
#: ../../mod/admin.php:399
msgid "OpenID support"
msgstr ""
#: ../../mod/admin.php:382
#: ../../mod/admin.php:399
msgid "OpenID support for registration and logins."
msgstr ""
#: ../../mod/admin.php:383
msgid "Gravatar support"
msgstr ""
#: ../../mod/admin.php:383
msgid "Search new user's photo on Gravatar."
msgstr ""
#: ../../mod/admin.php:384
#: ../../mod/admin.php:400
msgid "Fullname check"
msgstr ""
#: ../../mod/admin.php:384
#: ../../mod/admin.php:400
msgid ""
"Force users to register with a space between firstname and lastname in Full "
"name, as an antispam measure"
msgstr ""
#: ../../mod/admin.php:385
#: ../../mod/admin.php:401
msgid "UTF-8 Regular expressions"
msgstr ""
#: ../../mod/admin.php:385
#: ../../mod/admin.php:401
msgid "Use PHP UTF8 regular expressions"
msgstr ""
#: ../../mod/admin.php:386
#: ../../mod/admin.php:402
msgid "Show Community Page"
msgstr ""
#: ../../mod/admin.php:386
#: ../../mod/admin.php:402
msgid ""
"Display a Community page showing all recent public postings on this site."
msgstr ""
#: ../../mod/admin.php:387
#: ../../mod/admin.php:403
msgid "Enable OStatus support"
msgstr ""
#: ../../mod/admin.php:387
#: ../../mod/admin.php:403
msgid ""
"Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
"communications in OStatus are public, so privacy warnings will be "
"occasionally displayed."
msgstr ""
#: ../../mod/admin.php:388
#: ../../mod/admin.php:404
msgid "Enable Diaspora support"
msgstr ""
#: ../../mod/admin.php:388
#: ../../mod/admin.php:404
msgid "Provide built-in Diaspora network compatibility."
msgstr ""
#: ../../mod/admin.php:389
#: ../../mod/admin.php:405
msgid "Only allow Friendica contacts"
msgstr ""
#: ../../mod/admin.php:389
#: ../../mod/admin.php:405
msgid ""
"All contacts must use Friendica protocols. All other built-in communication "
"protocols disabled."
msgstr ""
#: ../../mod/admin.php:390
#: ../../mod/admin.php:406
msgid "Verify SSL"
msgstr ""
#: ../../mod/admin.php:390
#: ../../mod/admin.php:406
msgid ""
"If you wish, you can turn on strict certificate checking. This will mean you "
"cannot connect (at all) to self-signed SSL sites."
msgstr ""
#: ../../mod/admin.php:391
#: ../../mod/admin.php:407
msgid "Proxy user"
msgstr ""
#: ../../mod/admin.php:392
#: ../../mod/admin.php:408
msgid "Proxy URL"
msgstr ""
#: ../../mod/admin.php:393
#: ../../mod/admin.php:409
msgid "Network timeout"
msgstr ""
#: ../../mod/admin.php:393
#: ../../mod/admin.php:409
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
#: ../../mod/admin.php:414
#: ../../mod/admin.php:430
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/admin.php:421
#: ../../mod/admin.php:437
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] ""
msgstr[1] ""
#: ../../mod/admin.php:455
#: ../../mod/admin.php:471
#, php-format
msgid "User '%s' deleted"
msgstr ""
#: ../../mod/admin.php:462
#: ../../mod/admin.php:478
#, php-format
msgid "User '%s' unblocked"
msgstr ""
#: ../../mod/admin.php:462
#: ../../mod/admin.php:478
#, php-format
msgid "User '%s' blocked"
msgstr ""
#: ../../mod/admin.php:526
#: ../../mod/admin.php:542
msgid "select all"
msgstr ""
#: ../../mod/admin.php:527
#: ../../mod/admin.php:543
msgid "User registrations waiting for confirm"
msgstr ""
#: ../../mod/admin.php:528
#: ../../mod/admin.php:544
msgid "Request date"
msgstr ""
#: ../../mod/admin.php:528 ../../mod/admin.php:537
#: ../../mod/admin.php:544 ../../mod/admin.php:553
#: ../../include/contact_selectors.php:79
msgid "Email"
msgstr ""
#: ../../mod/admin.php:529
#: ../../mod/admin.php:545
msgid "No registrations."
msgstr ""
#: ../../mod/admin.php:531
#: ../../mod/admin.php:547
msgid "Deny"
msgstr ""
#: ../../mod/admin.php:537
#: ../../mod/admin.php:553
msgid "Register date"
msgstr ""
#: ../../mod/admin.php:537
#: ../../mod/admin.php:553
msgid "Last login"
msgstr ""
#: ../../mod/admin.php:537
#: ../../mod/admin.php:553
msgid "Last item"
msgstr ""
#: ../../mod/admin.php:537
#: ../../mod/admin.php:553
msgid "Account"
msgstr ""
#: ../../mod/admin.php:539
#: ../../mod/admin.php:555
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
#: ../../mod/admin.php:540
#: ../../mod/admin.php:556
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
#: ../../mod/admin.php:576
#: ../../mod/admin.php:592
#, php-format
msgid "Plugin %s disabled."
msgstr ""
#: ../../mod/admin.php:580
#: ../../mod/admin.php:596
#, php-format
msgid "Plugin %s enabled."
msgstr ""
#: ../../mod/admin.php:590 ../../mod/admin.php:769
#: ../../mod/admin.php:606 ../../mod/admin.php:785
msgid "Disable"
msgstr ""
#: ../../mod/admin.php:592 ../../mod/admin.php:771
#: ../../mod/admin.php:608 ../../mod/admin.php:787
msgid "Enable"
msgstr ""
#: ../../mod/admin.php:614 ../../mod/admin.php:792
#: ../../mod/admin.php:630 ../../mod/admin.php:816
msgid "Toggle"
msgstr ""
#: ../../mod/admin.php:615 ../../mod/admin.php:793 ../../include/nav.php:137
msgid "Settings"
msgstr ""
#: ../../mod/admin.php:622 ../../mod/admin.php:802
#: ../../mod/admin.php:638 ../../mod/admin.php:826
msgid "Author: "
msgstr ""
#: ../../mod/admin.php:623 ../../mod/admin.php:803
#: ../../mod/admin.php:639 ../../mod/admin.php:827
msgid "Maintainer: "
msgstr ""
#: ../../mod/admin.php:734
#: ../../mod/admin.php:750
msgid "No themes found."
msgstr ""
#: ../../mod/admin.php:784
#: ../../mod/admin.php:808
msgid "Screenshot"
msgstr ""
#: ../../mod/admin.php:830
#: ../../mod/admin.php:854
msgid "[Experimental]"
msgstr ""
#: ../../mod/admin.php:831
#: ../../mod/admin.php:855
msgid "[Unsupported]"
msgstr ""
#: ../../mod/admin.php:854
#: ../../mod/admin.php:878
msgid "Log settings updated."
msgstr ""
#: ../../mod/admin.php:907
#: ../../mod/admin.php:931
msgid "Clear"
msgstr ""
#: ../../mod/admin.php:913
#: ../../mod/admin.php:937
msgid "Debugging"
msgstr ""
#: ../../mod/admin.php:914
#: ../../mod/admin.php:938
msgid "Log file"
msgstr ""
#: ../../mod/admin.php:914
#: ../../mod/admin.php:938
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr ""
#: ../../mod/admin.php:915
#: ../../mod/admin.php:939
msgid "Log level"
msgstr ""
#: ../../mod/admin.php:956
#: ../../mod/admin.php:980
msgid "Close"
msgstr ""
#: ../../mod/admin.php:962
#: ../../mod/admin.php:986
msgid "FTP Host"
msgstr ""
#: ../../mod/admin.php:963
#: ../../mod/admin.php:987
msgid "FTP Path"
msgstr ""
#: ../../mod/admin.php:964
#: ../../mod/admin.php:988
msgid "FTP User"
msgstr ""
#: ../../mod/admin.php:965
#: ../../mod/admin.php:989
msgid "FTP Password"
msgstr ""
#: ../../mod/profile.php:20 ../../boot.php:901
#: ../../mod/profile.php:20 ../../boot.php:939
msgid "Requested profile is not available."
msgstr ""
@ -3482,6 +3488,10 @@ msgstr ""
msgid "{0} mentioned you in a post"
msgstr ""
#: ../../mod/nogroup.php:58
msgid "Contacts who are not members of a group"
msgstr ""
#: ../../mod/openid.php:24
msgid "OpenID protocol error. No ID returned."
msgstr ""
@ -3565,8 +3575,8 @@ msgstr ""
msgid "Search This Site"
msgstr ""
#: ../../mod/profiles.php:21 ../../mod/profiles.php:242
#: ../../mod/profiles.php:356 ../../mod/dfrn_confirm.php:62
#: ../../mod/profiles.php:21 ../../mod/profiles.php:339
#: ../../mod/profiles.php:453 ../../mod/dfrn_confirm.php:62
msgid "Profile not found."
msgstr ""
@ -3574,213 +3584,259 @@ msgstr ""
msgid "Profile Name is required."
msgstr ""
#: ../../mod/profiles.php:201
#: ../../mod/profiles.php:143
msgid "Marital Status"
msgstr ""
#: ../../mod/profiles.php:144
msgid "Romantic Partner"
msgstr ""
#: ../../mod/profiles.php:145
msgid "Work/Employment"
msgstr ""
#: ../../mod/profiles.php:146
msgid "Religion"
msgstr ""
#: ../../mod/profiles.php:147
msgid "Political Views"
msgstr ""
#: ../../mod/profiles.php:148
msgid "Gender"
msgstr ""
#: ../../mod/profiles.php:149
msgid "Sexual Preference"
msgstr ""
#: ../../mod/profiles.php:150
msgid "Homepage"
msgstr ""
#: ../../mod/profiles.php:151
msgid "Interests"
msgstr ""
#: ../../mod/profiles.php:154
msgid "Location"
msgstr ""
#: ../../mod/profiles.php:225
msgid "Profile updated."
msgstr ""
#: ../../mod/profiles.php:261
#: ../../mod/profiles.php:300
msgid "public profile"
msgstr ""
#: ../../mod/profiles.php:302
#, php-format
msgid "%1$s has an updated %2$s, changing %3$s."
msgstr ""
#: ../../mod/profiles.php:358
msgid "Profile deleted."
msgstr ""
#: ../../mod/profiles.php:279 ../../mod/profiles.php:313
#: ../../mod/profiles.php:376 ../../mod/profiles.php:410
msgid "Profile-"
msgstr ""
#: ../../mod/profiles.php:298 ../../mod/profiles.php:340
#: ../../mod/profiles.php:395 ../../mod/profiles.php:437
msgid "New profile created."
msgstr ""
#: ../../mod/profiles.php:319
#: ../../mod/profiles.php:416
msgid "Profile unavailable to clone."
msgstr ""
#: ../../mod/profiles.php:368
#: ../../mod/profiles.php:474
msgid "Hide your contact/friend list from viewers of this profile?"
msgstr ""
#: ../../mod/profiles.php:389
#: ../../mod/profiles.php:497
msgid "Edit Profile Details"
msgstr ""
#: ../../mod/profiles.php:391
#: ../../mod/profiles.php:499
msgid "View this profile"
msgstr ""
#: ../../mod/profiles.php:392
#: ../../mod/profiles.php:500
msgid "Create a new profile using these settings"
msgstr ""
#: ../../mod/profiles.php:393
#: ../../mod/profiles.php:501
msgid "Clone this profile"
msgstr ""
#: ../../mod/profiles.php:394
#: ../../mod/profiles.php:502
msgid "Delete this profile"
msgstr ""
#: ../../mod/profiles.php:395
#: ../../mod/profiles.php:503
msgid "Profile Name:"
msgstr ""
#: ../../mod/profiles.php:396
#: ../../mod/profiles.php:504
msgid "Your Full Name:"
msgstr ""
#: ../../mod/profiles.php:397
#: ../../mod/profiles.php:505
msgid "Title/Description:"
msgstr ""
#: ../../mod/profiles.php:398
#: ../../mod/profiles.php:506
msgid "Your Gender:"
msgstr ""
#: ../../mod/profiles.php:399
#: ../../mod/profiles.php:507
#, php-format
msgid "Birthday (%s):"
msgstr ""
#: ../../mod/profiles.php:400
#: ../../mod/profiles.php:508
msgid "Street Address:"
msgstr ""
#: ../../mod/profiles.php:401
#: ../../mod/profiles.php:509
msgid "Locality/City:"
msgstr ""
#: ../../mod/profiles.php:402
#: ../../mod/profiles.php:510
msgid "Postal/Zip Code:"
msgstr ""
#: ../../mod/profiles.php:403
#: ../../mod/profiles.php:511
msgid "Country:"
msgstr ""
#: ../../mod/profiles.php:404
#: ../../mod/profiles.php:512
msgid "Region/State:"
msgstr ""
#: ../../mod/profiles.php:405
#: ../../mod/profiles.php:513
msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
msgstr ""
#: ../../mod/profiles.php:406
#: ../../mod/profiles.php:514
msgid "Who: (if applicable)"
msgstr ""
#: ../../mod/profiles.php:407
#: ../../mod/profiles.php:515
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
#: ../../mod/profiles.php:408 ../../include/profile_advanced.php:43
#: ../../mod/profiles.php:516 ../../include/profile_advanced.php:43
msgid "Sexual Preference:"
msgstr ""
#: ../../mod/profiles.php:409
#: ../../mod/profiles.php:517
msgid "Homepage URL:"
msgstr ""
#: ../../mod/profiles.php:410 ../../include/profile_advanced.php:49
#: ../../mod/profiles.php:518 ../../include/profile_advanced.php:49
msgid "Political Views:"
msgstr ""
#: ../../mod/profiles.php:411
#: ../../mod/profiles.php:519
msgid "Religious Views:"
msgstr ""
#: ../../mod/profiles.php:412
#: ../../mod/profiles.php:520
msgid "Public Keywords:"
msgstr ""
#: ../../mod/profiles.php:413
#: ../../mod/profiles.php:521
msgid "Private Keywords:"
msgstr ""
#: ../../mod/profiles.php:414
#: ../../mod/profiles.php:522
msgid "Example: fishing photography software"
msgstr ""
#: ../../mod/profiles.php:415
#: ../../mod/profiles.php:523
msgid "(Used for suggesting potential friends, can be seen by others)"
msgstr ""
#: ../../mod/profiles.php:416
#: ../../mod/profiles.php:524
msgid "(Used for searching profiles, never shown to others)"
msgstr ""
#: ../../mod/profiles.php:417
#: ../../mod/profiles.php:525
msgid "Tell us about yourself..."
msgstr ""
#: ../../mod/profiles.php:418
#: ../../mod/profiles.php:526
msgid "Hobbies/Interests"
msgstr ""
#: ../../mod/profiles.php:419
#: ../../mod/profiles.php:527
msgid "Contact information and Social Networks"
msgstr ""
#: ../../mod/profiles.php:420
#: ../../mod/profiles.php:528
msgid "Musical interests"
msgstr ""
#: ../../mod/profiles.php:421
#: ../../mod/profiles.php:529
msgid "Books, literature"
msgstr ""
#: ../../mod/profiles.php:422
#: ../../mod/profiles.php:530
msgid "Television"
msgstr ""
#: ../../mod/profiles.php:423
#: ../../mod/profiles.php:531
msgid "Film/dance/culture/entertainment"
msgstr ""
#: ../../mod/profiles.php:424
#: ../../mod/profiles.php:532
msgid "Love/romance"
msgstr ""
#: ../../mod/profiles.php:425
#: ../../mod/profiles.php:533
msgid "Work/employment"
msgstr ""
#: ../../mod/profiles.php:426
#: ../../mod/profiles.php:534
msgid "School/education"
msgstr ""
#: ../../mod/profiles.php:431
#: ../../mod/profiles.php:539
msgid ""
"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
"be visible to anybody using the internet."
msgstr ""
#: ../../mod/profiles.php:441 ../../mod/directory.php:111
#: ../../mod/profiles.php:549 ../../mod/directory.php:111
msgid "Age: "
msgstr ""
#: ../../mod/profiles.php:476 ../../view/theme/diabook-red/theme.php:298
#: ../../view/theme/diabook-blue/theme.php:297
#: ../../view/theme/diabook/theme.php:308
#: ../../view/theme/diabook-aerith/theme.php:298
#: ../../mod/profiles.php:584
msgid "Edit/Manage Profiles"
msgstr ""
#: ../../mod/profiles.php:477 ../../boot.php:1009
#: ../../mod/profiles.php:585 ../../boot.php:1048
msgid "Change profile photo"
msgstr ""
#: ../../mod/profiles.php:478 ../../boot.php:1010
#: ../../mod/profiles.php:586 ../../boot.php:1049
msgid "Create New Profile"
msgstr ""
#: ../../mod/profiles.php:489 ../../boot.php:1020
#: ../../mod/profiles.php:597 ../../boot.php:1059
msgid "Profile Image"
msgstr ""
#: ../../mod/profiles.php:491 ../../boot.php:1023
#: ../../mod/profiles.php:599 ../../boot.php:1062
msgid "visible to everybody"
msgstr ""
#: ../../mod/profiles.php:492 ../../boot.php:1024
#: ../../mod/profiles.php:600 ../../boot.php:1063
msgid "Edit visibility"
msgstr ""
@ -3832,11 +3888,11 @@ msgstr ""
msgid "No entries."
msgstr ""
#: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:150
#: ../../view/theme/diabook-blue/theme.php:150
#: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:149
#: ../../view/theme/diabook-blue/theme.php:149
#: ../../view/theme/diabook/theme.php:153
#: ../../view/theme/diabook-aerith/theme.php:151
#: ../../include/contact_widgets.php:33
#: ../../view/theme/diabook-aerith/theme.php:150
#: ../../include/contact_widgets.php:34
msgid "Friend Suggestions"
msgstr ""
@ -3850,10 +3906,10 @@ msgstr ""
msgid "Ignore/Hide"
msgstr ""
#: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:148
#: ../../view/theme/diabook-blue/theme.php:148
#: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:147
#: ../../view/theme/diabook-blue/theme.php:147
#: ../../view/theme/diabook/theme.php:151
#: ../../view/theme/diabook-aerith/theme.php:149
#: ../../view/theme/diabook-aerith/theme.php:148
msgid "Global Directory"
msgstr ""
@ -4039,71 +4095,71 @@ msgstr ""
msgid "Connection accepted at %s"
msgstr ""
#: ../../addon/facebook/facebook.php:466
#: ../../addon/facebook/facebook.php:467
msgid "Facebook disabled"
msgstr ""
#: ../../addon/facebook/facebook.php:471
#: ../../addon/facebook/facebook.php:472
msgid "Updating contacts"
msgstr ""
#: ../../addon/facebook/facebook.php:492
#: ../../addon/facebook/facebook.php:493
msgid "Facebook API key is missing."
msgstr ""
#: ../../addon/facebook/facebook.php:499
#: ../../addon/facebook/facebook.php:500
msgid "Facebook Connect"
msgstr ""
#: ../../addon/facebook/facebook.php:505
#: ../../addon/facebook/facebook.php:506
msgid "Install Facebook connector for this account."
msgstr ""
#: ../../addon/facebook/facebook.php:512
#: ../../addon/facebook/facebook.php:513
msgid "Remove Facebook connector"
msgstr ""
#: ../../addon/facebook/facebook.php:517
#: ../../addon/facebook/facebook.php:518
msgid ""
"Re-authenticate [This is necessary whenever your Facebook password is "
"changed.]"
msgstr ""
#: ../../addon/facebook/facebook.php:524
#: ../../addon/facebook/facebook.php:525
msgid "Post to Facebook by default"
msgstr ""
#: ../../addon/facebook/facebook.php:528
#: ../../addon/facebook/facebook.php:529
msgid "Link all your Facebook friends and conversations on this website"
msgstr ""
#: ../../addon/facebook/facebook.php:530
#: ../../addon/facebook/facebook.php:531
msgid ""
"Facebook conversations consist of your <em>profile wall</em> and your friend "
"<em>stream</em>."
msgstr ""
#: ../../addon/facebook/facebook.php:531
#: ../../addon/facebook/facebook.php:532
msgid "On this website, your Facebook friend stream is only visible to you."
msgstr ""
#: ../../addon/facebook/facebook.php:532
#: ../../addon/facebook/facebook.php:533
msgid ""
"The following settings determine the privacy of your Facebook profile wall "
"on this website."
msgstr ""
#: ../../addon/facebook/facebook.php:536
#: ../../addon/facebook/facebook.php:537
msgid ""
"On this website your Facebook profile wall conversations will only be "
"visible to you"
msgstr ""
#: ../../addon/facebook/facebook.php:541
#: ../../addon/facebook/facebook.php:542
msgid "Do not import your Facebook profile wall conversations"
msgstr ""
#: ../../addon/facebook/facebook.php:543
#: ../../addon/facebook/facebook.php:544
msgid ""
"If you choose to link conversations and leave both of these boxes unchecked, "
"your Facebook profile wall will be merged with your profile wall on this "
@ -4111,114 +4167,114 @@ msgid ""
"who may see the conversations."
msgstr ""
#: ../../addon/facebook/facebook.php:548
#: ../../addon/facebook/facebook.php:549
msgid "Comma separated applications to ignore"
msgstr ""
#: ../../addon/facebook/facebook.php:619
#: ../../addon/facebook/facebook.php:620
msgid "Problems with Facebook Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:643
#: ../../addon/facebook/facebook.php:644
#: ../../include/contact_selectors.php:81
msgid "Facebook"
msgstr ""
#: ../../addon/facebook/facebook.php:644
#: ../../addon/facebook/facebook.php:645
msgid "Facebook Connector Settings"
msgstr ""
#: ../../addon/facebook/facebook.php:653
#: ../../addon/facebook/facebook.php:656
msgid "Facebook API Key"
msgstr ""
#: ../../addon/facebook/facebook.php:662
#: ../../addon/facebook/facebook.php:665
msgid ""
"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>"
msgstr ""
#: ../../addon/facebook/facebook.php:667
#: ../../addon/facebook/facebook.php:670
msgid ""
"Error: the given API Key seems to be incorrect (the application access token "
"could not be retrieved)."
msgstr ""
#: ../../addon/facebook/facebook.php:669
#: ../../addon/facebook/facebook.php:672
msgid "The given API Key seems to work correctly."
msgstr ""
#: ../../addon/facebook/facebook.php:671
#: ../../addon/facebook/facebook.php:674
msgid ""
"The correctness of the API Key could not be detected. Somthing strange's "
"going on."
msgstr ""
#: ../../addon/facebook/facebook.php:674
#: ../../addon/facebook/facebook.php:677
msgid "App-ID / API-Key"
msgstr ""
#: ../../addon/facebook/facebook.php:675
#: ../../addon/facebook/facebook.php:678
msgid "Application secret"
msgstr ""
#: ../../addon/facebook/facebook.php:676
#: ../../addon/facebook/facebook.php:679
#, php-format
msgid "Polling Interval (min. %1$s minutes)"
msgstr ""
#: ../../addon/facebook/facebook.php:680
#: ../../addon/facebook/facebook.php:683
msgid "Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:684
#: ../../addon/facebook/facebook.php:687
msgid "Real-Time Updates are activated."
msgstr ""
#: ../../addon/facebook/facebook.php:685
#: ../../addon/facebook/facebook.php:688
msgid "Deactivate Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:687
#: ../../addon/facebook/facebook.php:690
msgid "Real-Time Updates not activated."
msgstr ""
#: ../../addon/facebook/facebook.php:687
#: ../../addon/facebook/facebook.php:690
msgid "Activate Real-Time Updates"
msgstr ""
#: ../../addon/facebook/facebook.php:701
#: ../../addon/facebook/facebook.php:704
msgid "The new values have been saved."
msgstr ""
#: ../../addon/facebook/facebook.php:720
#: ../../addon/facebook/facebook.php:723
msgid "Post to Facebook"
msgstr ""
#: ../../addon/facebook/facebook.php:812
#: ../../addon/facebook/facebook.php:815
msgid ""
"Post to Facebook cancelled because of multi-network access permission "
"conflict."
msgstr ""
#: ../../addon/facebook/facebook.php:1030
#: ../../addon/facebook/facebook.php:1033
msgid "View on Friendica"
msgstr ""
#: ../../addon/facebook/facebook.php:1055
#: ../../addon/facebook/facebook.php:1058
msgid "Facebook post failed. Queued for retry."
msgstr ""
#: ../../addon/facebook/facebook.php:1091
#: ../../addon/facebook/facebook.php:1094
msgid "Your Facebook connection became invalid. Please Re-authenticate."
msgstr ""
#: ../../addon/facebook/facebook.php:1092
#: ../../addon/facebook/facebook.php:1095
msgid "Facebook connection became invalid"
msgstr ""
#: ../../addon/facebook/facebook.php:1093
#: ../../addon/facebook/facebook.php:1096
#, php-format
msgid ""
"Hi %1$s,\n"
@ -4345,11 +4401,19 @@ msgstr ""
msgid "Forums"
msgstr ""
#: ../../addon/planets/planets.php:150
msgid "Planets Settings"
msgstr ""
#: ../../addon/planets/planets.php:152
msgid "Enable Planets Plugin"
msgstr ""
#: ../../addon/communityhome/communityhome.php:28
#: ../../addon/communityhome/communityhome.php:34
#: ../../addon/communityhome/twillingham/communityhome.php:28
#: ../../addon/communityhome/twillingham/communityhome.php:34
#: ../../include/nav.php:64 ../../boot.php:766
#: ../../include/nav.php:64 ../../boot.php:796
msgid "Login"
msgstr ""
@ -4377,10 +4441,10 @@ msgid "Latest likes"
msgstr ""
#: ../../addon/communityhome/communityhome.php:155
#: ../../view/theme/diabook-red/theme.php:78
#: ../../view/theme/diabook-blue/theme.php:78
#: ../../view/theme/diabook-red/theme.php:77
#: ../../view/theme/diabook-blue/theme.php:77
#: ../../view/theme/diabook/theme.php:81
#: ../../view/theme/diabook-aerith/theme.php:79 ../../include/text.php:1295
#: ../../view/theme/diabook-aerith/theme.php:78 ../../include/text.php:1302
#: ../../include/conversation.php:45 ../../include/conversation.php:118
msgid "event"
msgstr ""
@ -4463,11 +4527,11 @@ msgstr ""
msgid "I won!"
msgstr ""
#: ../../addon/randplace/randplace.php:171
#: ../../addon/randplace/randplace.php:169
msgid "Randplace Settings"
msgstr ""
#: ../../addon/randplace/randplace.php:173
#: ../../addon/randplace/randplace.php:171
msgid "Enable Randplace Plugin"
msgstr ""
@ -4532,7 +4596,7 @@ msgid "Post to Drupal by default"
msgstr ""
#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:190
#: ../../addon/posterous/posterous.php:173
#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:173
msgid "Post from Friendica"
msgstr ""
@ -4744,6 +4808,68 @@ msgstr ""
msgid "Disable richtext status editor"
msgstr ""
#: ../../addon/gravatar/gravatar.php:71
msgid "generic profile image"
msgstr ""
#: ../../addon/gravatar/gravatar.php:72
msgid "random geometric pattern"
msgstr ""
#: ../../addon/gravatar/gravatar.php:73
msgid "monster face"
msgstr ""
#: ../../addon/gravatar/gravatar.php:74
msgid "computer generated face"
msgstr ""
#: ../../addon/gravatar/gravatar.php:75
msgid "retro arcade style face"
msgstr ""
#: ../../addon/gravatar/gravatar.php:87
msgid "Default avatar image"
msgstr ""
#: ../../addon/gravatar/gravatar.php:87
msgid "Select default avatar image if none was found at Gravatar. See README"
msgstr ""
#: ../../addon/gravatar/gravatar.php:88
msgid "Rating of images"
msgstr ""
#: ../../addon/gravatar/gravatar.php:88
msgid "Select the appropriate avatar rating for your site. See README"
msgstr ""
#: ../../addon/gravatar/gravatar.php:102
msgid "Gravatar settings updated."
msgstr ""
#: ../../addon/testdrive/testdrive.php:85
#, php-format
msgid "Your account on %s will expire in a few days."
msgstr ""
#: ../../addon/testdrive/testdrive.php:86
msgid "Your Friendica test account is about to expire."
msgstr ""
#: ../../addon/testdrive/testdrive.php:87
#, php-format
msgid ""
"Hi %1$s,\n"
"\n"
"Your 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."
msgstr ""
#: ../../addon/pageheader/pageheader.php:50
msgid "\"pageheader\" Settings"
msgstr ""
@ -5009,7 +5135,7 @@ msgid "Show More Settings saved."
msgstr ""
#: ../../addon/showmore/showmore.php:87 ../../include/conversation.php:466
#: ../../boot.php:495
#: ../../boot.php:496
msgid "show more"
msgstr ""
@ -5119,14 +5245,58 @@ msgstr ""
msgid "Consumer secret"
msgstr ""
#: ../../addon/irc/irc.php:25
msgid "IRC Chatroom"
#: ../../addon/irc/irc.php:44
msgid "IRC Settings"
msgstr ""
#: ../../addon/irc/irc.php:46
msgid "Channel(s) to auto connect (comma separated)"
msgstr ""
#: ../../addon/irc/irc.php:51
msgid "Popular Channels (comma separated)"
msgstr ""
#: ../../addon/irc/irc.php:69
msgid "IRC settings saved."
msgstr ""
#: ../../addon/irc/irc.php:74
msgid "IRC Chatroom"
msgstr ""
#: ../../addon/irc/irc.php:96
msgid "Popular Channels"
msgstr ""
#: ../../addon/blogger/blogger.php:42
msgid "Post to blogger"
msgstr ""
#: ../../addon/blogger/blogger.php:74
msgid "Blogger Post Settings"
msgstr ""
#: ../../addon/blogger/blogger.php:76
msgid "Enable Blogger Post Plugin"
msgstr ""
#: ../../addon/blogger/blogger.php:81
msgid "Blogger username"
msgstr ""
#: ../../addon/blogger/blogger.php:86
msgid "Blogger password"
msgstr ""
#: ../../addon/blogger/blogger.php:91
msgid "Blogger API URL"
msgstr ""
#: ../../addon/blogger/blogger.php:96
msgid "Post to Blogger by default"
msgstr ""
#: ../../addon/posterous/posterous.php:36
msgid "Post to Posterous"
msgstr ""
@ -5151,183 +5321,182 @@ msgstr ""
msgid "Post to Posterous by default"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:27
#: ../../view/theme/diabook-blue/theme.php:27
#: ../../view/theme/diabook-red/theme.php:26
#: ../../view/theme/diabook-blue/theme.php:26
#: ../../view/theme/diabook/theme.php:30
#: ../../view/theme/dispy-dark/theme.php:120
#: ../../view/theme/diabook-aerith/theme.php:28
#: ../../view/theme/diabook-aerith/theme.php:27
msgid "Last users"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:56
#: ../../view/theme/diabook-blue/theme.php:56
#: ../../view/theme/diabook-red/theme.php:55
#: ../../view/theme/diabook-blue/theme.php:55
#: ../../view/theme/diabook/theme.php:59
#: ../../view/theme/diabook-aerith/theme.php:57
#: ../../view/theme/diabook-aerith/theme.php:56
msgid "Last likes"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:101
#: ../../view/theme/diabook-blue/theme.php:101
#: ../../view/theme/diabook-red/theme.php:100
#: ../../view/theme/diabook-blue/theme.php:100
#: ../../view/theme/diabook/theme.php:104
#: ../../view/theme/diabook-aerith/theme.php:102
#: ../../view/theme/diabook-aerith/theme.php:101
msgid "Last photos"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:145
#: ../../view/theme/diabook-blue/theme.php:145
#: ../../view/theme/diabook/theme.php:149
#: ../../view/theme/diabook-aerith/theme.php:146
msgid "Find Friends"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:146
#: ../../view/theme/diabook-blue/theme.php:146
#: ../../view/theme/diabook/theme.php:149
#: ../../view/theme/diabook-aerith/theme.php:147
msgid "Find Friends"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:147
#: ../../view/theme/diabook-blue/theme.php:147
#: ../../view/theme/diabook/theme.php:150
#: ../../view/theme/diabook-aerith/theme.php:148
#: ../../view/theme/diabook-aerith/theme.php:147
msgid "Local Directory"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:149
#: ../../view/theme/diabook-blue/theme.php:149
#: ../../view/theme/diabook-red/theme.php:148
#: ../../view/theme/diabook-blue/theme.php:148
#: ../../view/theme/diabook/theme.php:152
#: ../../view/theme/diabook-aerith/theme.php:150
#: ../../include/contact_widgets.php:34
#: ../../view/theme/diabook-aerith/theme.php:149
#: ../../include/contact_widgets.php:35
msgid "Similar Interests"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:151
#: ../../view/theme/diabook-blue/theme.php:151
#: ../../view/theme/diabook-red/theme.php:150
#: ../../view/theme/diabook-blue/theme.php:150
#: ../../view/theme/diabook/theme.php:154
#: ../../view/theme/diabook-aerith/theme.php:152
#: ../../include/contact_widgets.php:35
#: ../../view/theme/diabook-aerith/theme.php:151
#: ../../include/contact_widgets.php:37
msgid "Invite Friends"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:166
#: ../../view/theme/diabook-red/theme.php:247
#: ../../view/theme/diabook-blue/theme.php:166
#: ../../view/theme/diabook-blue/theme.php:247
#: ../../view/theme/diabook-red/theme.php:165
#: ../../view/theme/diabook-red/theme.php:246
#: ../../view/theme/diabook-blue/theme.php:165
#: ../../view/theme/diabook-blue/theme.php:246
#: ../../view/theme/diabook/theme.php:170
#: ../../view/theme/diabook/theme.php:254
#: ../../view/theme/diabook-aerith/theme.php:167
#: ../../view/theme/diabook-aerith/theme.php:248
#: ../../view/theme/diabook-aerith/theme.php:166
#: ../../view/theme/diabook-aerith/theme.php:247
msgid "Community Pages"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:199
#: ../../view/theme/diabook-blue/theme.php:199
#: ../../view/theme/diabook-red/theme.php:198
#: ../../view/theme/diabook-blue/theme.php:198
#: ../../view/theme/diabook/theme.php:203
#: ../../view/theme/diabook-aerith/theme.php:200
#: ../../view/theme/diabook-aerith/theme.php:199
msgid "Help or @NewHere ?"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:205
#: ../../view/theme/diabook-blue/theme.php:205
#: ../../view/theme/diabook-red/theme.php:204
#: ../../view/theme/diabook-blue/theme.php:204
#: ../../view/theme/diabook/theme.php:209
#: ../../view/theme/diabook-aerith/theme.php:206
#: ../../view/theme/diabook-aerith/theme.php:205
msgid "Connect Services"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:211
#: ../../view/theme/diabook-blue/theme.php:211
#: ../../view/theme/diabook-red/theme.php:210
#: ../../view/theme/diabook-blue/theme.php:210
#: ../../view/theme/diabook/theme.php:215
#: ../../view/theme/diabook-aerith/theme.php:212
#: ../../view/theme/diabook-aerith/theme.php:211
msgid "PostIt to Friendica"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:211
#: ../../view/theme/diabook-blue/theme.php:211
#: ../../view/theme/diabook-red/theme.php:210
#: ../../view/theme/diabook-blue/theme.php:210
#: ../../view/theme/diabook/theme.php:215
#: ../../view/theme/diabook-aerith/theme.php:212
#: ../../view/theme/diabook-aerith/theme.php:211
msgid "Post to Friendica"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:212
#: ../../view/theme/diabook-blue/theme.php:212
#: ../../view/theme/diabook-red/theme.php:211
#: ../../view/theme/diabook-blue/theme.php:211
#: ../../view/theme/diabook/theme.php:216
#: ../../view/theme/diabook-aerith/theme.php:213
#: ../../view/theme/diabook-aerith/theme.php:212
msgid " from anywhere by bookmarking this Link."
msgstr ""
#: ../../view/theme/diabook-red/theme.php:240
#: ../../view/theme/diabook-blue/theme.php:240
#: ../../view/theme/diabook-red/theme.php:239
#: ../../view/theme/diabook-blue/theme.php:239
#: ../../view/theme/diabook/theme.php:247
#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:49
#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:49
#: ../../include/nav.php:115
msgid "Your posts and conversations"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:240
#: ../../view/theme/diabook-blue/theme.php:240
#: ../../view/theme/diabook/theme.php:248
#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:50
msgid "Your profile page"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:241
#: ../../view/theme/diabook-blue/theme.php:241
#: ../../view/theme/diabook/theme.php:248
#: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:50
msgid "Your profile page"
#: ../../view/theme/diabook/theme.php:249
#: ../../view/theme/diabook-aerith/theme.php:242
msgid "Your contacts"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:242
#: ../../view/theme/diabook-blue/theme.php:242
#: ../../view/theme/diabook/theme.php:249
#: ../../view/theme/diabook-aerith/theme.php:243
msgid "Your contacts"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:243
#: ../../view/theme/diabook-blue/theme.php:243
#: ../../view/theme/diabook/theme.php:250
#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:51
#: ../../boot.php:1414
#: ../../view/theme/diabook-aerith/theme.php:243 ../../include/nav.php:51
#: ../../boot.php:1462
msgid "Photos"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:242
#: ../../view/theme/diabook-blue/theme.php:242
#: ../../view/theme/diabook/theme.php:250
#: ../../view/theme/diabook-aerith/theme.php:243 ../../include/nav.php:51
msgid "Your photos"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:243
#: ../../view/theme/diabook-blue/theme.php:243
#: ../../view/theme/diabook/theme.php:250
#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:51
msgid "Your photos"
#: ../../view/theme/diabook/theme.php:251
#: ../../view/theme/diabook-aerith/theme.php:244 ../../include/nav.php:52
msgid "Your events"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:244
#: ../../view/theme/diabook-blue/theme.php:244
#: ../../view/theme/diabook/theme.php:251
#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:52
msgid "Your events"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:245
#: ../../view/theme/diabook-blue/theme.php:245
#: ../../view/theme/diabook/theme.php:252
#: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53
#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:53
msgid "Personal notes"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:245
#: ../../view/theme/diabook-blue/theme.php:245
#: ../../view/theme/diabook-red/theme.php:244
#: ../../view/theme/diabook-blue/theme.php:244
#: ../../view/theme/diabook/theme.php:252
#: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53
#: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:53
msgid "Your personal photos"
msgstr ""
#: ../../view/theme/quattro/config.php:23
#: ../../view/theme/quattro/config.php:54
msgid "Theme settings"
msgstr ""
#: ../../view/theme/quattro/config.php:24
#: ../../view/theme/quattro/config.php:55
msgid "Alignment"
msgstr ""
#: ../../view/theme/quattro/config.php:24
#: ../../view/theme/quattro/config.php:55
msgid "Left"
msgstr ""
#: ../../view/theme/quattro/config.php:24
#: ../../view/theme/quattro/config.php:55
msgid "Center"
msgstr ""
#: ../../view/theme/quattro/config.php:25
#: ../../view/theme/quattro/config.php:56
msgid "Color scheme"
msgstr ""
#: ../../include/profile_advanced.php:17 ../../boot.php:1045
#: ../../include/profile_advanced.php:17 ../../boot.php:1084
msgid "Gender:"
msgstr ""
@ -5339,7 +5508,7 @@ msgstr ""
msgid "j F"
msgstr ""
#: ../../include/profile_advanced.php:30 ../../include/datetime.php:438
#: ../../include/profile_advanced.php:30 ../../include/datetime.php:448
#: ../../include/items.php:1392
msgid "Birthday:"
msgstr ""
@ -5348,11 +5517,11 @@ msgstr ""
msgid "Age:"
msgstr ""
#: ../../include/profile_advanced.php:37 ../../boot.php:1048
#: ../../include/profile_advanced.php:37 ../../boot.php:1087
msgid "Status:"
msgstr ""
#: ../../include/profile_advanced.php:45 ../../boot.php:1050
#: ../../include/profile_advanced.php:45 ../../boot.php:1089
msgid "Homepage:"
msgstr ""
@ -5836,27 +6005,27 @@ msgstr ""
msgid "Click to open/close"
msgstr ""
#: ../../include/text.php:1071
msgid "Select an alternate language"
msgstr ""
#: ../../include/text.php:1083
#: ../../include/text.php:1084
msgid "default"
msgstr ""
#: ../../include/text.php:1299
#: ../../include/text.php:1096
msgid "Select an alternate language"
msgstr ""
#: ../../include/text.php:1306
msgid "activity"
msgstr ""
#: ../../include/text.php:1301
#: ../../include/text.php:1308
msgid "comment"
msgstr ""
#: ../../include/text.php:1302
#: ../../include/text.php:1309
msgid "post"
msgstr ""
#: ../../include/text.php:1457
#: ../../include/text.php:1464
msgid "Item filed"
msgstr ""
@ -5873,7 +6042,7 @@ msgstr ""
msgid "[Relayed] Comment authored by %s from network %s"
msgstr ""
#: ../../include/network.php:817
#: ../../include/network.php:823
msgid "view full size"
msgstr ""
@ -5912,7 +6081,11 @@ msgstr ""
msgid "Create a new group"
msgstr ""
#: ../../include/nav.php:46 ../../boot.php:765
#: ../../include/group.php:215
msgid "Contacts not in any group"
msgstr ""
#: ../../include/nav.php:46 ../../boot.php:795
msgid "Logout"
msgstr ""
@ -5920,7 +6093,7 @@ msgstr ""
msgid "End this session"
msgstr ""
#: ../../include/nav.php:49 ../../boot.php:1404
#: ../../include/nav.php:49 ../../boot.php:1452
msgid "Status"
msgstr ""
@ -6000,11 +6173,11 @@ msgstr ""
msgid "Manage other pages"
msgstr ""
#: ../../include/nav.php:138 ../../boot.php:1003
#: ../../include/nav.php:138 ../../boot.php:1042
msgid "Profiles"
msgstr ""
#: ../../include/nav.php:138 ../../boot.php:1003
#: ../../include/nav.php:138 ../../boot.php:1042
msgid "Manage/edit profiles"
msgstr ""
@ -6036,46 +6209,50 @@ msgstr ""
msgid "Example: bob@example.com, http://example.com/barbara"
msgstr ""
#: ../../include/contact_widgets.php:22
#: ../../include/contact_widgets.php:23
#, php-format
msgid "%d invitation available"
msgid_plural "%d invitations available"
msgstr[0] ""
msgstr[1] ""
#: ../../include/contact_widgets.php:28
#: ../../include/contact_widgets.php:29
msgid "Find People"
msgstr ""
#: ../../include/contact_widgets.php:29
#: ../../include/contact_widgets.php:30
msgid "Enter name or interest"
msgstr ""
#: ../../include/contact_widgets.php:30
#: ../../include/contact_widgets.php:31
msgid "Connect/Follow"
msgstr ""
#: ../../include/contact_widgets.php:31
#: ../../include/contact_widgets.php:32
msgid "Examples: Robert Morgenstein, Fishing"
msgstr ""
#: ../../include/contact_widgets.php:66
#: ../../include/contact_widgets.php:36
msgid "Random Profile"
msgstr ""
#: ../../include/contact_widgets.php:68
msgid "Networks"
msgstr ""
#: ../../include/contact_widgets.php:69
#: ../../include/contact_widgets.php:71
msgid "All Networks"
msgstr ""
#: ../../include/contact_widgets.php:96
#: ../../include/contact_widgets.php:98
msgid "Saved Folders"
msgstr ""
#: ../../include/contact_widgets.php:99 ../../include/contact_widgets.php:127
#: ../../include/contact_widgets.php:101 ../../include/contact_widgets.php:129
msgid "Everything"
msgstr ""
#: ../../include/contact_widgets.php:124
#: ../../include/contact_widgets.php:126
msgid "Categories"
msgstr ""
@ -6097,71 +6274,71 @@ msgstr ""
msgid "Miscellaneous"
msgstr ""
#: ../../include/datetime.php:121 ../../include/datetime.php:253
#: ../../include/datetime.php:131 ../../include/datetime.php:263
msgid "year"
msgstr ""
#: ../../include/datetime.php:126 ../../include/datetime.php:254
#: ../../include/datetime.php:136 ../../include/datetime.php:264
msgid "month"
msgstr ""
#: ../../include/datetime.php:131 ../../include/datetime.php:256
#: ../../include/datetime.php:141 ../../include/datetime.php:266
msgid "day"
msgstr ""
#: ../../include/datetime.php:244
#: ../../include/datetime.php:254
msgid "never"
msgstr ""
#: ../../include/datetime.php:250
#: ../../include/datetime.php:260
msgid "less than a second ago"
msgstr ""
#: ../../include/datetime.php:253
#: ../../include/datetime.php:263
msgid "years"
msgstr ""
#: ../../include/datetime.php:254
#: ../../include/datetime.php:264
msgid "months"
msgstr ""
#: ../../include/datetime.php:255
#: ../../include/datetime.php:265
msgid "week"
msgstr ""
#: ../../include/datetime.php:255
#: ../../include/datetime.php:265
msgid "weeks"
msgstr ""
#: ../../include/datetime.php:256
#: ../../include/datetime.php:266
msgid "days"
msgstr ""
#: ../../include/datetime.php:257
#: ../../include/datetime.php:267
msgid "hour"
msgstr ""
#: ../../include/datetime.php:257
#: ../../include/datetime.php:267
msgid "hours"
msgstr ""
#: ../../include/datetime.php:258
#: ../../include/datetime.php:268
msgid "minute"
msgstr ""
#: ../../include/datetime.php:258
#: ../../include/datetime.php:268
msgid "minutes"
msgstr ""
#: ../../include/datetime.php:259
#: ../../include/datetime.php:269
msgid "second"
msgstr ""
#: ../../include/datetime.php:259
#: ../../include/datetime.php:269
msgid "seconds"
msgstr ""
#: ../../include/datetime.php:267
#: ../../include/datetime.php:277
#, php-format
msgid "%1$d %2$s ago"
msgstr ""
@ -6387,11 +6564,11 @@ msgstr ""
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
#: ../../include/items.php:2656
#: ../../include/items.php:2659
msgid "A new person is sharing with you at "
msgstr ""
#: ../../include/items.php:2656
#: ../../include/items.php:2659
msgid "You have a new follower at "
msgstr ""
@ -6419,27 +6596,31 @@ msgstr ""
#: ../../include/security.php:329
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before subitting it."
"form has been opened for too long (>3 hours) before submitting it."
msgstr ""
#: ../../include/Contact.php:137 ../../include/conversation.php:813
msgid "View status"
#: ../../include/Contact.php:145 ../../include/conversation.php:813
msgid "View Status"
msgstr ""
#: ../../include/Contact.php:138 ../../include/conversation.php:814
msgid "View profile"
#: ../../include/Contact.php:146 ../../include/conversation.php:814
msgid "View Profile"
msgstr ""
#: ../../include/Contact.php:139 ../../include/conversation.php:815
msgid "View photos"
#: ../../include/Contact.php:147 ../../include/conversation.php:815
msgid "View Photos"
msgstr ""
#: ../../include/Contact.php:140 ../../include/Contact.php:153
#: ../../include/Contact.php:148 ../../include/Contact.php:161
#: ../../include/conversation.php:816
msgid "View recent"
msgid "Network Posts"
msgstr ""
#: ../../include/Contact.php:142 ../../include/Contact.php:153
#: ../../include/Contact.php:149 ../../include/conversation.php:817
msgid "Edit Contact"
msgstr ""
#: ../../include/Contact.php:150 ../../include/Contact.php:161
#: ../../include/conversation.php:818
msgid "Send PM"
msgstr ""
@ -6634,70 +6815,70 @@ msgstr ""
msgid "permissions"
msgstr ""
#: ../../boot.php:493
#: ../../boot.php:494
msgid "Delete this item?"
msgstr ""
#: ../../boot.php:496
#: ../../boot.php:497
msgid "show fewer"
msgstr ""
#: ../../boot.php:744
#: ../../boot.php:774
msgid "Create a New Account"
msgstr ""
#: ../../boot.php:768
#: ../../boot.php:798
msgid "Nickname or Email address: "
msgstr ""
#: ../../boot.php:769
#: ../../boot.php:799
msgid "Password: "
msgstr ""
#: ../../boot.php:772
#: ../../boot.php:802
msgid "Or login using OpenID: "
msgstr ""
#: ../../boot.php:778
#: ../../boot.php:808
msgid "Forgot your password?"
msgstr ""
#: ../../boot.php:936
#: ../../boot.php:974
msgid "Edit profile"
msgstr ""
#: ../../boot.php:995
#: ../../boot.php:1034
msgid "Message"
msgstr ""
#: ../../boot.php:1110 ../../boot.php:1181
#: ../../boot.php:1150 ../../boot.php:1222
msgid "g A l F d"
msgstr ""
#: ../../boot.php:1111 ../../boot.php:1182
#: ../../boot.php:1151 ../../boot.php:1223
msgid "F d"
msgstr ""
#: ../../boot.php:1136
#: ../../boot.php:1176
msgid "Birthday Reminders"
msgstr ""
#: ../../boot.php:1137
#: ../../boot.php:1177
msgid "Birthdays this week:"
msgstr ""
#: ../../boot.php:1160 ../../boot.php:1224
#: ../../boot.php:1200 ../../boot.php:1265
msgid "[today]"
msgstr ""
#: ../../boot.php:1205
#: ../../boot.php:1246
msgid "Event Reminders"
msgstr ""
#: ../../boot.php:1206
#: ../../boot.php:1247
msgid "Events this week:"
msgstr ""
#: ../../boot.php:1218
#: ../../boot.php:1259
msgid "[No description]"
msgstr ""

View file

@ -17,7 +17,7 @@
</p>
{{ if $screenshot }}
<a href="$screenshot.0" ><img src="$screenshot.0" width="320" height="240" alt="$screenshot.1" /></a>
<a href="$screenshot.0" class='screenshot'><img src="$screenshot.0" alt="$screenshot.1" /></a>
{{ endif }}
{{ if $admin_form }}

View file

@ -1,3 +1,39 @@
<script>
$(function(){
$("#cnftheme").fancybox({
width: 800,
autoDimensions: false,
onStart: function(){
var theme = $("#id_theme :selected").val();
$("#cnftheme").attr('href',"$baseurl/admin/themes/"+theme);
},
onComplete: function(){
$("div#fancybox-content form").submit(function(e){
var url = $(this).attr('action');
// can't get .serialize() to work...
var data={};
$(this).find("input").each(function(){
data[$(this).attr('name')] = $(this).val();
});
$(this).find("select").each(function(){
data[$(this).attr('name')] = $(this).children(":selected").val();
});
console.log(":)", url, data);
$.post(url, data, function(data) {
if(timer) clearTimeout(timer);
NavUpdate();
$.fancybox.close();
})
return false;
});
}
});
});
</script>
<div id='adminpage'>
<h1>$title - $page</h1>
@ -17,7 +53,6 @@
{{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_openid }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_gravatar }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

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

@ -2,10 +2,9 @@
src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode : "exact",
mode : "$editselect",
elements: "contact-edit-info",
plugins : "bbcode",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",

View file

@ -4161,7 +4161,7 @@ msgstr "Fehler: der angegebene API Schlüssel scheint nicht korrekt zu sein (Zug
#: ../../addon/facebook/facebook.php:665
msgid "The given API Key seems to work correctly."
msgstr "Der angegebene API Schlüssel scheint nicht korrekt zu funktionieren."
msgstr "Der angegebene API Schlüssel scheint korrekt zu funktionieren."
#: ../../addon/facebook/facebook.php:667
msgid ""
@ -6405,7 +6405,7 @@ msgstr "Willkommen zurück "
#: ../../include/security.php:329
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before subitting it."
"form has been opened for too long (>3 hours) before submitting it."
msgstr "Der Formular-Sicherheits-Token war nicht korrekt. Der Grund ist wahrscheinlich, dass das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde."
#: ../../include/Contact.php:137 ../../include/conversation.php:813

View file

@ -777,7 +777,7 @@ $a->strings["{0} tagged %s's post with #%s"] = "{0} hat %ss Beitrag mit dem Schl
$a->strings["{0} mentioned you in a post"] = "{0} hat dich in einem Beitrag erwähnt";
$a->strings["OpenID protocol error. No ID returned."] = "OpenID Protokollfehler. Keine ID zurückgegeben.";
$a->strings["Account not found and OpenID registration is not permitted on this site."] = "Account wurde nicht gefunden und OpenID Registrierung auf diesem Server nicht gestattet.";
$a->strings["Login failed."] = "Annmeldung fehlgeschlagen.";
$a->strings["Login failed."] = "Anmeldung fehlgeschlagen.";
$a->strings["Connect URL missing."] = "Connect-URL fehlt";
$a->strings["This site is not configured to allow communications with other networks."] = "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann.";
$a->strings["No compatible communication protocols or feeds were discovered."] = "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden.";
@ -924,7 +924,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 nicht korrekt zu funktionieren.";
$a->strings["The given API Key seems to work correctly."] = "Der angegebene API Schlüssel scheint 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";
@ -1441,7 +1441,7 @@ $a->strings["image/photo"] = "Bild/Foto";
$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["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting 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";
@ -1511,3 +1511,4 @@ $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

@ -0,0 +1,12 @@
Hey,
Ich bin's, $sitename.
Die Friendica-Entwickler haben gerade Update $update freigegeben,
aber als ich es installieren wollte, ist irgendetwas schief gegangen.
Das sollte schnell repariert werden und alleine schaffe ich es nicht.
Wende dich bitte an einen Friendica-Entwickler, wenn du mir nicht selbst helfen kannst.
Meine Datenbank könnte ziemlich durcheinander sein.
Die Fehlermeldung ist '$error'.
Tut mir leid,
dein Friendica Server unter $siteurl

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,6 +1,6 @@
<div class='field checkbox'>
<label for='id_$field.0'>$field.1</label>
<input type="checkbox" name='$field.0' id='id_$field.0' value="1" {{ if $field.2 }}checked="true"{{ endif }}>
<input type="checkbox" name='$field.0' id='id_$field.0' value="1" {{ if $field.2 }}checked="checked"{{ endif }}>
<span class='field_help'>$field.3</span>
</div>

View file

@ -1,4 +1,4 @@
<script>$(function(){ previewTheme($("#id_$field.0")[0]); });</script>
<div class='field select'>
<label for='id_$field.0'>$field.1</label>
<select name='$field.0' id='id_$field.0' onchange="previewTheme(this);" >

View file

@ -0,0 +1,11 @@
<div class="widget">
{{if $title}}<h3>$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul>
{{ for $items as $item }}
<li class="tool"><a href="$item.url" class="{{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -23,6 +23,11 @@
<div id="sidebar-new-group">
<a href="group/new">$createtext</a>
</div>
{{ if $ungrouped }}
<div id="sidebar-ungrouped">
<a href="nogroup">$ungrouped</a>
</div>
{{ endif }}
</div>

10
view/lang_selector.tpl Normal file
View file

@ -0,0 +1,10 @@
<div id="lang-select-icon" class="icon s22 language" title="$title" onclick="openClose('language-selector');" >lang</div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{ for $langs.0 as $v=>$l }}
<option value="$v" {{if $v==$langs.1}}selected="selected"{{endif}}>$l</option>
{{ endfor }}
</select>
</form>
</div>

12
view/nogroup-template.tpl Normal file
View file

@ -0,0 +1,12 @@
<h1>$header</h1>
{{ for $contacts as $contact }}
{{ inc contact_template.tpl }}{{ endinc }}
{{ endfor }}
<div id="contact-edit-end"></div>
$paginate

View file

@ -6,6 +6,7 @@
</form>
<div class="side-link" id="side-match-link"><a href="match" >$similar</a></div>
<div class="side-link" id="side-suggest-link"><a href="suggest" >$suggest</a></div>
<div class="side-link" id="side-random-profile-link" ><a href="randprof" target="extlink" >$random</a></div>
{{ if $inv }}
<div class="side-link" id="side-invite-link" ><a href="invite" >$inv</a></div>
{{ endif }}

View file

@ -5,7 +5,7 @@
tinyMCE.init({
theme : "advanced",
mode : "textareas",
mode : "$editselect",
plugins : "bbcode,paste",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "",

View file

@ -159,7 +159,7 @@ $sexual
$lbl_about
</p>
<textarea rows="10" cols="72" id="profile-jot-text" name="about" >$about</textarea>
<textarea rows="10" cols="72" id="profile-about-text" name="about" >$about</textarea>
</div>
<div id="about-jot-end"></div>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$ptitle</h1>
$nickname_block
@ -101,7 +99,13 @@ $unkmail
<h3 class="settings-heading">$h_not</h3>
<div id="settings-notify-desc">$lbl_not </div>
<strong>$activity_options</strong>
{{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}}
{{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}}
<div id="settings-notify-desc"><strong>$lbl_not </strong></div>
<div class="group">
{{inc field_intcheckbox.tpl with $field=$notify1 }}{{endinc}}

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>
<div class="connector_statusmsg">$diasp_enabled</div>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$ptitle</h1>
<form action="settings/display" id="settings-form" method="post" autocomplete="off" >

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>

View file

@ -1,5 +1,3 @@
$tabs
<h1>$title</h1>
<form method="POST">

View file

@ -0,0 +1,41 @@
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<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);tautogrow($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>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>
{{ for $qcomment as $qc }}
<option value="$qc">$qc</option>
{{ endfor }}
</select>
{{ endif }}
<div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
</div>
<div class="comment-edit-end"></div>
</form>
</div>

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

View file

@ -0,0 +1,71 @@
<?php
/**
* Theme settings
*/
function theme_content(&$a){
if(!local_user())
return;
$font_size = get_pconfig(local_user(), 'diabook-aerith', 'font_size' );
$line_height = get_pconfig(local_user(), 'diabook-aerith', 'line_height' );
return diabook_form($a,$font_size, $line_height);
}
function theme_post(&$a){
if(! local_user())
return;
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']);
}
}
function theme_admin(&$a){
$font_size = get_config('diabook-aerith', 'font_size' );
$line_height = get_config('diabook-aerith', 'line_height' );
return diabook_form($a,$font_size, $line_height);
}
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']);
}
}
function diabook_form(&$a, $font_size, $line_height){
$line_heights = array(
"1.4"=>"1.4",
"1.3"=>"1.3",
"1.2"=>"1.2",
"1.1"=>"1.1",
);
$font_sizes = array(
'14'=>'14',
'13.5'=>'13.5',
'13'=>'13',
'12.5'=>'12.5',
'12'=>'12',
);
$t = file_get_contents( dirname(__file__). "/theme_settings.tpl" );
$o .= replace_macros($t, array(
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(),
'$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),
));
return $o;
}

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

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

0
view/theme/diabook-aerith/fpostit/fpostit.js Executable file → Normal file
View file

View file

@ -0,0 +1,11 @@
<div id="widget_$title">
{{if $title}}<h3 style="border-bottom: 1px solid #D2D2D2;">$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul class="rs_tabs">
{{ for $items as $item }}
<li><a href="$item.url" class="rs_tab button {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

16
view/theme/diabook-aerith/group_side.tpl Executable file → Normal file
View file

@ -1,18 +1,18 @@
<div id="group-sidebar" class="widget">
<div class="title tool">
<h3 class="label">$title</h3>
<a href="group/new" title="$createtext" class="action"><span class="icon text s16 add"></span></a>
<div id="profile_side" >
<div class="">
<h3 style="margin-left: 2px;">$title<a href="group/new" title="$createtext" class="icon text_add"></a></h3>
</div>
<div id="sidebar-group-list">
<ul>
<ul class="menu-profile-side">
{{ for $groups as $group }}
<li class="tool {{ if $group.selected }}selected{{ endif }}">
<a href="$group.href" class="label">
<li class="menu-profile-list">
<span class="menu-profile-icon {{ if $group.selected }}group_selected{{else}}group_unselected{{ endif }}"></span>
<a href="$group.href" class="menu-profile-list-item">
$group.text
</a>
{{ if $group.edit }}
<a href="$group.edit.href" class="action"><span class="icon text s10 edit"></span></a>
<a href="$group.edit.href" class="action"><span class="icon text_edit" ></span></a>
{{ endif }}
{{ if $group.cid }}
<input type="checkbox"

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

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Before After
Before After

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

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 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

Before After
Before After

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

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 774 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

After

Width:  |  Height:  |  Size: 803 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 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

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 723 B

Before After
Before After

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

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 706 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 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

Before After
Before After

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

Before After
Before After

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

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 637 B

Before After
Before After

BIN
view/theme/diabook-aerith/icons/messages.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 901 B

Before After
Before After

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

Before After
Before After

Binary file not shown.

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

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 764 B

Before After
Before After

BIN
view/theme/diabook-aerith/icons/notifications.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 1 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

BIN
view/theme/diabook-aerith/icons/notify.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

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

Before After
Before After

Binary file not shown.

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

Before After
Before After

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

Before After
Before After

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

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 664 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 688 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 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

Before After
Before After

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

Before After
Before After

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

Before After
Before After

BIN
view/theme/diabook-aerith/icons/selected.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

After

Width:  |  Height:  |  Size: 293 B

Before After
Before After

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

Before After
Before After

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

Before After
Before After

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

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 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

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 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

Before After
Before After

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

Before After
Before After

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

Before After
Before After

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

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);

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

View file

@ -0,0 +1,11 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="nets-ul">
<li class="tool"><a style="text-decoration: none;" href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a></li>
{{ for $nets as $net }}
<li class="tool"><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

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

View file

@ -7,13 +7,13 @@
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1</a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
<li id="profile-side-status" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1<span class="menu-profile-icon home"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1<span class="menu-profile-icon photos"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1<span class="menu-profile-icon pscontacts"></span></a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1<span class="menu-profile-icon events"></span></a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1<span class="menu-profile-icon notes"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1<span class="menu-profile-icon foren"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1<span class="menu-profile-icon com_side"></span></a></li>
</ul>
</div>

View file

@ -1,6 +0,0 @@
<h3 style="border-bottom: 1px solid #D2D2D2;">Settings Menu</h3>
<ul class="rs_tabs">
{{ for $tabs as $tab }}
<li><a href="$tab.url" class="rs_tab button $tab.sel">$tab.label</a></li>
{{ endfor }}
</ul>

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

View file

@ -482,8 +482,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover ,
#fileas-sidebar .tool:hover {
background: aliceBlue;
}
.tool .label {
float: left;
@ -940,44 +941,58 @@ ul.menu-popup .empty {
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
overflow: auto;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: aliceBlue;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-aerith/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-aerith/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-aerith/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-aerith/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-aerith/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-aerith/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-aerith/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;
@ -1298,6 +1313,7 @@ transition: all 0.2s ease-in-out;
padding: 5px;
margin-bottom: 0px;
width: 575px;
padding-top: 10px;
}
.tread-wrapper a{
color: #3465A4;
@ -1364,10 +1380,10 @@ transition: all 0.2s ease-in-out;
}
.wall-item-container .wall-item-content {
font-size: 12.5px;
max-width: 420px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
@ -1447,7 +1463,7 @@ transition: all 0.2s ease-in-out;
}
.wall-item-comment-wrapper {
margin: 1px 0px 0px 80px;
margin: 1px 5px 17px 80px;
background-color: #fff;
width: 500px;
}

View file

@ -1291,6 +1291,7 @@ transition: all 0.2s ease-in-out;
padding: 5px;
margin-bottom: 0px;
width: 575px;
padding-top: 10px;
}
.tread-wrapper a{
color: #3465A4;
@ -1357,10 +1358,10 @@ transition: all 0.2s ease-in-out;
}
.wall-item-container .wall-item-content {
font-size: 12.5px;
max-width: 420px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
@ -1439,7 +1440,7 @@ transition: all 0.2s ease-in-out;
padding-left: 12px;
}
.wall-item-comment-wrapper {
margin: 1px 5px 1px 80px;
margin: 1px 5px 17px 80px;
}
.wall-item-comment-wrapper .comment-edit-photo {
display: none;

View file

@ -83,6 +83,35 @@
#adminpage .selectall { text-align: right; }
/* icons */
.icon.bb-url{
background-image: url("../../../view/theme/diabook-aerith/icons/bb-url.png");
float: right;
margin-top: 2px;}
.icon.quote{
background-image: url("../../../view/theme/diabook-aerith/icons/quote.png");
float: right;
margin-top: 2px;}
.icon.bold{
background-image: url("../../../view/theme/diabook-aerith/icons/bold.png");
float: right;
margin-top: 2px;}
.icon.underline{
background-image: url("../../../view/theme/diabook-aerith/icons/underline.png");
float: right;
margin-top: 2px;}
.icon.italic{
background-image: url("../../../view/theme/diabook-aerith/icons/italic.png");
float: right;
margin-top: 2px;}
.icon.bb-image{
background-image: url("../../../view/theme/diabook-aerith/icons/bb-image.png");
float: right;
margin-top: 2px;}
.icon.bb-video{
background-image: url("../../../view/theme/diabook-aerith/icons/bb-video.png");
float: right;
margin-top: 2px;}
.icon.contacts {
background-image: url("../../../view/theme/diabook-aerith/icons/contacts.png");}
.icon.notifications {
@ -498,8 +527,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: aliceBlue;
}
.tool .label {
float: left;
@ -1032,44 +1062,57 @@ ul.menu-popup .empty {
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
overflow: auto;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: aliceBlue;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-aerith/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-aerith/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-aerith/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-aerith/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-aerith/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-aerith/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-aerith/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;
@ -1187,6 +1230,50 @@ aside #likes a:hover{
float: left;
margin-right: 20px;
}
.group_selected {
background: url("../../../view/theme/diabook/icons/selected.png") no-repeat left center;
float: left;
height: 22px;
width: 22px;
}
.group_unselected {
background: url("../../../view/theme/diabook/icons/unselected.png") no-repeat left center;
float: left;
height: 22px;
width: 22px;
}
.icon.text_add {
background-image: url("../../../images/icons/16/add.png");
float: right;
opacity: 0.1;
margin-right: 14px;
}
.icon.text_add:hover {
background-image: url("../../../images/icons/16/add.png");
float: right;
cursor: pointer;
margin-right: 14px;
opacity: 1;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.icon.text_edit {
background-image: url("../../../images/icons/10/edit.png");
opacity: 0.1;
margin-top: 6px;
float: right;
height: 10px;
}
.icon.text_edit:hover {
background-image: url("../../../images/icons/10/edit.png");
opacity: 1;
margin-top: 6px;
float: right;
height: 10px;
}
/* widget */
.widget {
margin-bottom: 2em;
@ -1331,6 +1418,7 @@ body .pageheader{
padding: 5px;
margin-bottom: 0px;
width: 775px;
padding-top: 10px;
}
.tread-wrapper a{
color: #3465A4;
@ -1366,10 +1454,10 @@ body .pageheader{
color: #999;
}
.wall-item-photo-container .wall-item-content {
font-size: 12.5px;
max-width: 720px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
.wall-item-photo-container .wall-item-content img {
@ -1511,10 +1599,10 @@ body .pageheader{
}
.wall-item-container .wall-item-content {
font-size: 12.5px;
max-width: 720px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
@ -1592,7 +1680,7 @@ body .pageheader{
padding-left: 12px;
}
.wall-item-comment-wrapper {
margin: 1px 5px 1px 80px;
margin: 1px 5px 17px 80px;
}
.wall-item-comment-wrapper .comment-edit-photo {
display: none;
@ -2117,6 +2205,41 @@ ul.tabs li .active {
box-shadow: 2px 2px 2px #CFCFCF;
margin-left: 5px;
}
//settings tabs
ul.rs_tabs {
list-style-type: none;
font-size: 11px;
}
ul.rs_tabs li {
float: left;
margin-bottom: 30px;
clear: both;
}
ul.rs_tabs li .selected {
background-color: #3465A4;
border: 1px solid #777777;
color: white;
border-radius: 3px 3px 3px 3px;
box-shadow: 2px 2px 2px #CFCFCF;
font-size: 13px;
}
.rs_tabs {
list-style-type: none;
font-size: 11px;
background-position: 0 -20px;
background-repeat: repeat-x;
height: 27px;
padding: 0;
}
.rs_tab.button {
/*background: none repeat scroll 0 0 #F8F8F8;*/
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
font-weight: bolder;
padding: 3px;
color: #333333;
text-decoration: none;
}
/**
* Form fields
*/

View file

@ -0,0 +1,120 @@
<?php
$line_height=false;
$diabook_font_size=false;
$site_line_height = get_config("diabook-aerith","line_height");
$site_diabook_font_size = get_config("diabook-aerith", "font_size" );
if (local_user()) {
$line_height = get_pconfig(local_user(), "diabook-aerith","line_height");
$diabook_font_size = get_pconfig(local_user(), "diabook-aerith", "font_size");
}
if ($line_height===false) $line_height=$site_line_height;
if ($line_height===false) $line_height="1.3";
if ($diabook_font_size===false) $diabook_font_size=$site_diabook_font_size;
if ($diabook_font_size===false) $diabook_font_size="13";
if (file_exists("$THEMEPATH/style.css")){
echo file_get_contents("$THEMEPATH/style.css");
}
if($diabook_font_size == "14"){
echo "
.wall-item-container .wall-item-content {
font-size: 14px;
}
.wall-item-photo-container .wall-item-content {
font-size: 14px;
}
";
}
if($diabook_font_size == "13.5"){
echo "
.wall-item-container .wall-item-content {
font-size: 13.5px;
}
.wall-item-photo-container .wall-item-content {
font-size: 13.5px;
}
";
}
if($diabook_font_size == "13"){
echo "
.wall-item-container .wall-item-content {
font-size: 13px;
}
.wall-item-photo-container .wall-item-content {
font-size: 13px;
}
";
}
if($diabook_font_size == "12.5"){
echo "
.wall-item-container .wall-item-content {
font-size: 12.5px;
}
.wall-item-photo-container .wall-item-content {
font-size: 12.5px;
}
";
}
if($diabook_font_size == "12"){
echo "
.wall-item-container .wall-item-content {
font-size: 12px;
}
.wall-item-photo-container .wall-item-content {
font-size: 12px;
}
";
}
if($line_height == "1.4"){
echo "
.wall-item-container .wall-item-content {
line-height: 1.4;
}
.wall-item-photo-container .wall-item-content {
line-height: 1.4;
}
";
}
if($line_height == "1.3"){
echo "
.wall-item-container .wall-item-content {
line-height: 1.3;
}
.wall-item-photo-container .wall-item-content {
line-height: 1.3;
}
";
}
if($line_height == "1.2"){
echo "
.wall-item-container .wall-item-content {
line-height: 1.2;
}
.wall-item-photo-container .wall-item-content {
line-height: 1.2;
}
";
}
if($line_height == "1.1"){
echo "
.wall-item-container .wall-item-content {
line-height: 1.1;
}
.wall-item-photo-container .wall-item-content {
line-height: 1.1;
}
";
}

102
view/theme/diabook-aerith/theme.php Executable file → Normal file
View file

@ -3,13 +3,13 @@
/*
* Name: Diabook-aerith
* Description: Diabook-aerith : report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.015)
* Version: (Version: 1.018)
* Author:
*/
//print diabook-version for debugging
$diabook_version = "Diabook-aerith (Version: 1.015)";
$diabook_version = "Diabook-aerith (Version: 1.018)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
@ -22,7 +22,6 @@ $cssFile = null;
*/
function diabook_aerith_community_info(){
$a = get_app();
//right_aside at networkpages
// last 12 users
$aside['$lastusers_title'] = t('Last users');
@ -280,55 +279,6 @@ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
}
}
//tabs at right_aside on settings page
if ($a->argv[0] === "settings"){
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'display')?'active':''),
),
array(
'label' => t('Edit/Manage Profiles'),
'url' => $a->get_baseurl(true).'/profiles',
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
$tabtpl = file_get_contents(dirname(__file__).'/rs_common_tabs.tpl') ;
$a->page['aside'] = replace_macros($tabtpl, array(
'$tabs' => $tabs,
));
// CUSTOM CSS
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook-aerith/style-settings.css";
}
// custom css
@ -342,6 +292,10 @@ $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></scrip
$imageresizeJS = $a->get_baseurl($ssl_state)."/view/theme/diabook-aerith/js/jquery.ae.image.resize.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $imageresizeJS);
//load jquery.autogrow-textarea.js
$autogrowJS = $a->get_baseurl($ssl_state)."/view/theme/diabook-aerith/js/jquery.autogrow.textarea.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $autogrowJS);
//js scripts
//comment-edit-wrapper on photo_view
if ($a->argv[0].$a->argv[2] === "photos"."image"){
@ -365,6 +319,15 @@ $a->page['htmlhead'] .= '
});
</script>';
$a->page['htmlhead'] .= '
<script type="text/javascript">
function tautogrow(id){
$("textarea#comment-edit-text-" +id).autogrow();
};
</script>';
$a->page['htmlhead'] .= '
<script>
@ -507,4 +470,37 @@ function restore_boxes(){
$.cookie("close_lastlikes","2", { expires: 365, path: "/" });
alert("Right-hand column was restored. Please refresh your browser");
}
</script>';}
</script>';}
$a->page['htmlhead'] .= '
<script type="text/javascript">
function insertFormatting(comment,BBcode,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == comment) {
tmpStr = "";
$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
openMenu("comment-edit-submit-wrapper-" + id);
}
textarea = document.getElementById("comment-edit-text-" +id);
if (document.selection) {
textarea.focus();
selected = document.selection.createRange();
if (BBcode == "url"){
selected.text = "["+BBcode+"]" + "http://" + selected.text + "[/"+BBcode+"]";
} else
selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
} else if (textarea.selectionStart || textarea.selectionStart == "0") {
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
if (BBcode == "url"){
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
} else
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
}
return true;
}
</script> ';

View file

@ -0,0 +1,8 @@
{{inc field_select.tpl with $field=$font_size}}{{endinc}}
{{inc field_select.tpl with $field=$line_height}}{{endinc}}
<div class="settings-submit-wrapper">
<input type="submit" value="$submit" class="settings-submit" name="diabook-aerith-settings-submit" />
</div>

View file

@ -0,0 +1,41 @@
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<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);tautogrow($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>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>
{{ for $qcomment as $qc }}
<option value="$qc">$qc</option>
{{ endfor }}
</select>
{{ endif }}
<div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
</div>
<div class="comment-edit-end"></div>
</form>
</div>

0
view/theme/diabook-blue/communityhome.tpl Executable file → Normal file
View file

View file

@ -0,0 +1,71 @@
<?php
/**
* Theme settings
*/
function theme_content(&$a){
if(!local_user())
return;
$font_size = get_pconfig(local_user(), 'diabook-blue', 'font_size' );
$line_height = get_pconfig(local_user(), 'diabook-blue', 'line_height' );
return diabook_form($a,$font_size, $line_height);
}
function theme_post(&$a){
if(! local_user())
return;
if (isset($_POST['diabook-blue-settings-submit'])){
set_pconfig(local_user(), 'diabook-blue', 'font_size', $_POST['diabook-blue_font_size']);
set_pconfig(local_user(), 'diabook-blue', 'line_height', $_POST['diabook-blue_line_height']);
}
}
function theme_admin(&$a){
$font_size = get_config('diabook-blue', 'font_size' );
$line_height = get_config('diabook-blue', 'line_height' );
return diabook_form($a,$font_size, $line_height);
}
function theme_admin_post(&$a){
if (isset($_POST['diabook-blue-settings-submit'])){
set_config('diabook-blue', 'font_size', $_POST['diabook-blue_font_size']);
set_config('diabook-blue', 'line_height', $_POST['diabook-blue_line_height']);
}
}
function diabook_form(&$a, $font_size, $line_height){
$line_heights = array(
"1.4"=>"1.4",
"1.3"=>"1.3",
"1.2"=>"1.2",
"1.1"=>"1.1",
);
$font_sizes = array(
'14'=>'14',
'13.5'=>'13.5',
'13'=>'13',
'12.5'=>'12.5',
'12'=>'12',
);
$t = file_get_contents( dirname(__file__). "/theme_settings.tpl" );
$o .= replace_macros($t, array(
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(),
'$title' => t("Theme settings"),
'$font_size' => array('diabook-blue_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes),
'$line_height' => array('diabook-blue_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights),
));
return $o;
}

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

0
view/theme/diabook-blue/directory_item.tpl Executable file → Normal file
View file

0
view/theme/diabook-blue/fpostit/fpostit.js Executable file → Normal file
View file

View file

@ -0,0 +1,11 @@
<div id="widget_$title">
{{if $title}}<h3 style="border-bottom: 1px solid #D2D2D2;">$title</h3>{{endif}}
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul class="rs_tabs">
{{ for $items as $item }}
<li><a href="$item.url" class="rs_tab button {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

16
view/theme/diabook-blue/group_side.tpl Executable file → Normal file
View file

@ -1,18 +1,18 @@
<div id="group-sidebar" class="widget">
<div class="title tool">
<h3 class="label">$title</h3>
<a href="group/new" title="$createtext" class="action"><span class="icon text s16 add"></span></a>
<div id="profile_side" >
<div class="">
<h3 style="margin-left: 2px;">$title<a href="group/new" title="$createtext" class="icon text_add"></a></h3>
</div>
<div id="sidebar-group-list">
<ul>
<ul class="menu-profile-side">
{{ for $groups as $group }}
<li class="tool {{ if $group.selected }}selected{{ endif }}">
<a href="$group.href" class="label">
<li class="menu-profile-list">
<span class="menu-profile-icon {{ if $group.selected }}group_selected{{else}}group_unselected{{ endif }}"></span>
<a href="$group.href" class="menu-profile-list-item">
$group.text
</a>
{{ if $group.edit }}
<a href="$group.edit.href" class="action"><span class="icon text s10 edit"></span></a>
<a href="$group.edit.href" class="action"><span class="icon text_edit" ></span></a>
{{ endif }}
{{ if $group.cid }}
<input type="checkbox"

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

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 762 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

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

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 685 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 206 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 774 B

Before After
Before After

0
view/theme/diabook-blue/icons/contacts2.png Executable file → Normal file
View file

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 292 B

After

Width:  |  Height:  |  Size: 292 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 723 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 352 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

After

Width:  |  Height:  |  Size: 706 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

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

Before

Width:  |  Height:  |  Size: 365 B

After

Width:  |  Height:  |  Size: 365 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 366 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 697 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 637 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 490 B

After

Width:  |  Height:  |  Size: 490 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 300 B

After

Width:  |  Height:  |  Size: 300 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 764 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 727 B

After

Width:  |  Height:  |  Size: 727 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 608 B

After

Width:  |  Height:  |  Size: 608 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 286 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 336 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 664 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 688 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

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

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 427 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

Before After
Before After

BIN
view/theme/diabook-blue/icons/selected.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

After

Width:  |  Height:  |  Size: 293 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 388 B

After

Width:  |  Height:  |  Size: 388 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 501 B

After

Width:  |  Height:  |  Size: 501 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 353 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

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

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 362 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

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

Before

Width:  |  Height:  |  Size: 468 B

After

Width:  |  Height:  |  Size: 468 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 472 B

After

Width:  |  Height:  |  Size: 472 B

Before After
Before After

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

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 505 B

Before After
Before After

0
view/theme/diabook-blue/jot.tpl Executable file → Normal file
View file

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);

0
view/theme/diabook-blue/mail_conv.tpl Executable file → Normal file
View file

View file

@ -0,0 +1,11 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="nets-ul">
<li class="tool"><a style="text-decoration: none;" href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a></li>
{{ for $nets as $net }}
<li class="tool"><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

0
view/theme/diabook-blue/photo_view.tpl Executable file → Normal file
View file

View file

@ -7,13 +7,13 @@
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1</a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
<li id="profile-side-status" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1<span class="menu-profile-icon home"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1<span class="menu-profile-icon photos"></span></a></li>
<li id="profile-side-photos" class="menu-profile-list pscontacts"><a class="menu-profile-list-item" href="$ps.usermenu.contacts.0">$ps.usermenu.contacts.1<span class="menu-profile-icon pscontacts"></span></a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1<span class="menu-profile-icon events"></span></a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1<span class="menu-profile-icon notes"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1<span class="menu-profile-icon foren"></span></a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1<span class="menu-profile-icon com_side"></span></a></li>
</ul>
</div>

View file

@ -1,6 +0,0 @@
<h3 style="border-bottom: 1px solid #D2D2D2;">Settings Menu</h3>
<ul class="rs_tabs">
{{ for $tabs as $tab }}
<li><a href="$tab.url" class="rs_tab button $tab.sel">$tab.label</a></li>
{{ endfor }}
</ul>

0
view/theme/diabook-blue/search_item.tpl Executable file → Normal file
View file

View file

@ -482,8 +482,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #308DBF;
}
.tool .label {
float: left;
@ -907,43 +908,57 @@ ul.menu-popup .empty {
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #308DBF;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-blue/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;
@ -1260,6 +1275,7 @@ transition: all 0.2s ease-in-out;
padding: 5px;
margin-bottom: 0px;
width: 575px;
padding-top: 10px;
}
.tread-wrapper a{
color: #1872A2;
@ -1326,10 +1342,10 @@ transition: all 0.2s ease-in-out;
}
.wall-item-container .wall-item-content {
font-size: 12.5px;
max-width: 420px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
@ -1409,7 +1425,7 @@ transition: all 0.2s ease-in-out;
}
.wall-item-comment-wrapper {
margin: 1px 0px 0px 80px;
margin: 1px 5px 17px 80px;
background-color: #fff;
width: 500px;
}

View file

@ -1258,6 +1258,7 @@ transition: all 0.2s ease-in-out;
padding: 5px;
margin-bottom: 0px;
width: 575px;
padding-top: 10px;
}
.tread-wrapper a{
color: #1872A2;
@ -1324,10 +1325,10 @@ transition: all 0.2s ease-in-out;
}
.wall-item-container .wall-item-content {
font-size: 12.5px;
max-width: 420px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
@ -1406,7 +1407,7 @@ transition: all 0.2s ease-in-out;
padding-left: 12px;
}
.wall-item-comment-wrapper {
margin: 1px 5px 1px 80px;
margin: 1px 5px 17px 80px;
}
.wall-item-comment-wrapper .comment-edit-photo {
display: none;

View file

@ -82,7 +82,35 @@
#adminpage table tr:hover { background-color: #eeeeee; }
#adminpage .selectall { text-align: right; }
/* icons */
.icon.bb-url{
background-image: url("../../../view/theme/diabook-blue/icons/bb-url.png");
float: right;
margin-top: 2px;}
.icon.quote{
background-image: url("../../../view/theme/diabook-blue/icons/quote.png");
float: right;
margin-top: 2px;}
.icon.bold{
background-image: url("../../../view/theme/diabook-blue/icons/bold.png");
float: right;
margin-top: 2px;}
.icon.underline{
background-image: url("../../../view/theme/diabook-blue/icons/underline.png");
float: right;
margin-top: 2px;}
.icon.italic{
background-image: url("../../../view/theme/diabook-blue/icons/italic.png");
float: right;
margin-top: 2px;}
.icon.bb-image{
background-image: url("../../../view/theme/diabook-blue/icons/bb-image.png");
float: right;
margin-top: 2px;}
.icon.bb-video{
background-image: url("../../../view/theme/diabook-blue/icons/bb-video.png");
float: right;
margin-top: 2px;}
.icon.contacts {
background-image: url("../../../view/theme/diabook-blue/icons/contacts.png");}
.icon.notifications {
@ -498,8 +526,9 @@ code {
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
background: #EEE;
#sidebar-group-list .tool:hover,
#fileas-sidebar .tool:hover {
background: #308DBF;
}
.tool .label {
float: left;
@ -1003,43 +1032,57 @@ ul.menu-popup .empty {
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
background: #308DBF;
}
.menu-profile-list-item{
padding-left: 5px;
vertical-align: middle;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
.menu-profile-icon.home{
background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
float: left;
height: 22px;
width: 22px;
}
.menu-profile-list.photos{
.menu-profile-icon.photos{
background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.events{
background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.notes{
background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.foren{
background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.com_side{
background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
}
.menu-profile-list.pscontacts{
float: left;
height: 22px;
width: 22px;}
.menu-profile-icon.pscontacts{
background: url("../../../view/theme/diabook-blue/icons/pscontacts.png") no-repeat;
}
float: left;
height: 22px;
width: 22px;}
/* aside */
aside {
display: table-cell;
@ -1147,6 +1190,50 @@ aside #side-peoplefind-url {
float: left;
margin-right: 20px;
}
.group_selected {
background: url("../../../view/theme/diabook/icons/selected.png") no-repeat left center;
float: left;
height: 22px;
width: 22px;
}
.group_unselected {
background: url("../../../view/theme/diabook/icons/unselected.png") no-repeat left center;
float: left;
height: 22px;
width: 22px;
}
.icon.text_add {
background-image: url("../../../images/icons/16/add.png");
float: right;
opacity: 0.1;
margin-right: 14px;
}
.icon.text_add:hover {
background-image: url("../../../images/icons/16/add.png");
float: right;
cursor: pointer;
margin-right: 14px;
opacity: 1;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.icon.text_edit {
background-image: url("../../../images/icons/10/edit.png");
opacity: 0.1;
margin-top: 6px;
float: right;
height: 10px;
}
.icon.text_edit:hover {
background-image: url("../../../images/icons/10/edit.png");
opacity: 1;
margin-top: 6px;
float: right;
height: 10px;
}
/* widget */
.widget {
margin-bottom: 2em;
@ -1287,6 +1374,7 @@ body .pageheader{
padding: 5px;
margin-bottom: 0px;
width: 775px;
padding-top: 10px;
}
.tread-wrapper a{
color: #1872A2;
@ -1323,10 +1411,10 @@ body .pageheader{
color: #999;
}
.wall-item-photo-container .wall-item-content {
font-size: 12.5px;
max-width: 720px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
.wall-item-photo-container .wall-item-content img {
@ -1469,10 +1557,10 @@ body .pageheader{
}
.wall-item-container .wall-item-content {
font-size: 12.5px;
max-width: 720px;
word-wrap: break-word;
line-height: 1.2;
margin-bottom: 14px;
}
@ -1550,7 +1638,7 @@ body .pageheader{
padding-left: 12px;
}
.wall-item-comment-wrapper {
margin: 1px 5px 1px 80px;
margin: 1px 5px 17px 80px;
}
.wall-item-comment-wrapper .comment-edit-photo {
display: none;
@ -2074,6 +2162,41 @@ ul.tabs li .active {
box-shadow: 0 1px 1px #CFCFCF;
margin-left: 5px;
}
//settings tabs
ul.rs_tabs {
list-style-type: none;
font-size: 11px;
}
ul.rs_tabs li {
float: left;
margin-bottom: 30px;
clear: both;
}
ul.rs_tabs li .selected {
background-color: #055580;
border: 1px solid #777777;
color: white;
border-radius: 3px 3px 3px 3px;
box-shadow: 2px 2px 2px #CFCFCF;
font-size: 13px;
}
.rs_tabs {
list-style-type: none;
font-size: 11px;
background-position: 0 -20px;
background-repeat: repeat-x;
height: 27px;
padding: 0;
}
.rs_tab.button {
/*background: none repeat scroll 0 0 #F8F8F8;*/
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
font-weight: bolder;
padding: 3px;
color: #333333;
text-decoration: none;
}
/**
* Form fields
*/

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