Merge commit 'upstream/master'

This commit is contained in:
Michael Vogel 2012-04-11 19:35:51 +02:00
commit ee714daf4d
133 changed files with 2953 additions and 1978 deletions

1799
boot.php
View file

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php'); require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1304' ); define ( 'FRIENDICA_VERSION', '2.3.1308' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1137 ); define ( 'DB_UPDATE_VERSION', 1137 );
@ -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. * 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 * For ease of upgrade, please do not change here. Change jpeg quality with
* $a->config['system']['jpeg_quality'] = n; * $a->config['system']['jpeg_quality'] = n;
* in .htconfig.php, where n is netween 1 and 100, and with very poor results * in .htconfig.php, where n is netween 1 and 100, and with very poor results
* below about 50 * below about 50
* *
*/ */
define ( 'JPEG_QUALITY', 100 ); define ( 'JPEG_QUALITY', 100 );
/** /**
* SSL redirection policies * SSL redirection policies
@ -68,7 +68,7 @@ define ( 'CONTACT_IS_FRIEND', 3);
/** /**
* Hook array order * Hook array order
*/ */
define ( 'HOOK_HOOK', 0); define ( 'HOOK_HOOK', 0);
define ( 'HOOK_FILE', 1); define ( 'HOOK_FILE', 1);
define ( 'HOOK_FUNCTION', 2); define ( 'HOOK_FUNCTION', 2);
@ -79,9 +79,9 @@ define ( 'HOOK_FUNCTION', 2);
* *
* PAGE_NORMAL is a typical personal profile account * PAGE_NORMAL is a typical personal profile account
* PAGE_SOAPBOX automatically approves all friend requests as CONTACT_IS_SHARING, (readonly) * 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) * 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 ); define ( 'PAGE_PRVGROUP', 5 );
/** /**
* Network and protocol family types * Network and protocol family types
*/ */
define ( 'NETWORK_DFRN', 'dfrn'); // Friendica, Mistpark, other DFRN implementations 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_DIASPORA', 'dspr'); // Diaspora
define ( 'NETWORK_MAIL', 'mail'); // IMAP/POP define ( 'NETWORK_MAIL', 'mail'); // IMAP/POP
define ( 'NETWORK_MAIL2', 'mai2'); // extended 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_LINKEDIN', 'lnkd'); // LinkedIn
define ( 'NETWORK_XMPP', 'xmpp'); // XMPP define ( 'NETWORK_XMPP', 'xmpp'); // XMPP
define ( 'NETWORK_MYSPACE', 'mysp'); // MySpace define ( 'NETWORK_MYSPACE', 'mysp'); // MySpace
define ( 'NETWORK_GPLUS', 'goog'); // Google+ define ( 'NETWORK_GPLUS', 'goog'); // Google+
/* /**
* These numbers are used in stored permissions * These numbers are used in stored permissions
* and existing allocations MUST NEVER BE CHANGED * and existing allocations MUST NEVER BE CHANGED
* OR RE-ASSIGNED! You may only add to them. * 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_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_THREAD' , 'http://purl.org/syndication/thread/1.0' );
define ( 'NAMESPACE_TOMB' , 'http://purl.org/atompub/tombstones/1.0' ); define ( 'NAMESPACE_TOMB' , 'http://purl.org/atompub/tombstones/1.0' );
define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' ); define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' );
@ -232,19 +232,19 @@ function startup() {
if (get_magic_quotes_gpc()) { if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) { while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) { foreach ($val as $k => $v) {
unset($process[$key][$k]); unset($process[$key][$k]);
if (is_array($v)) { if (is_array($v)) {
$process[$key][stripslashes($k)] = $v; $process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)]; $process[] = &$process[$key][stripslashes($k)];
} else { } else {
$process[$key][stripslashes($k)] = stripslashes($v); $process[$key][stripslashes($k)] = stripslashes($v);
} }
} }
} }
unset($process); unset($process);
} }
} }
@ -255,276 +255,278 @@ function startup() {
* *
* Our main application structure for the life of this page * Our main application structure for the life of this page
* Primarily deals with the URL that got us here * 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 * stores our page contents and config storage
* and anything else that might need to be passed around * and anything else that might need to be passed around
* before we spit the page out. * before we spit the page out.
* *
*/ */
if(! class_exists('App')) { if(! class_exists('App')) {
class App { class App {
public $module_loaded = false; public $module_loaded = false;
public $query_string; public $query_string;
public $config; public $config;
public $page; public $page;
public $profile; public $profile;
public $user; public $user;
public $cid; public $cid;
public $contact; public $contact;
public $contacts; public $contacts;
public $page_contact; public $page_contact;
public $content; public $content;
public $data = array(); public $data = array();
public $error = false; public $error = false;
public $cmd; public $cmd;
public $argv; public $argv;
public $argc; public $argc;
public $module; public $module;
public $pager; public $pager;
public $strings; public $strings;
public $path; public $path;
public $hooks; public $hooks;
public $timezone; public $timezone;
public $interactive = true; public $interactive = true;
public $plugins; public $plugins;
public $apps = array(); public $apps = array();
public $identities; public $identities;
public $nav_sel; public $nav_sel;
public $category; public $category;
private $scheme; private $scheme;
private $hostname; private $hostname;
private $baseurl; private $baseurl;
private $db; private $db;
private $curl_code; private $curl_code;
private $curl_headers; private $curl_headers;
function __construct() { function __construct() {
$this->config = array(); $this->config = array();
$this->page = array(); $this->page = array();
$this->pager= array(); $this->pager= array();
$this->query_string = ''; $this->query_string = '';
startup(); startup();
$this->scheme = 'http'; $this->scheme = 'http';
if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
$this->scheme = 'https'; $this->scheme = 'https';
elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
$this->scheme = 'https'; $this->scheme = 'https';
if(x($_SERVER,'SERVER_NAME')) { if(x($_SERVER,'SERVER_NAME')) {
$this->hostname = $_SERVER['SERVER_NAME']; $this->hostname = $_SERVER['SERVER_NAME'];
if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
$this->hostname .= ':' . $_SERVER['SERVER_PORT']; $this->hostname .= ':' . $_SERVER['SERVER_PORT'];
/** /**
* Figure out if we are running at the top of a domain * Figure out if we are running at the top of a domain
* or in a sub-directory and adjust accordingly * 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']),'/\\'); $this->argv = explode('/',$this->cmd);
if(isset($path) && strlen($path) && ($path != $this->path)) $this->argc = count($this->argv);
$this->path = $path; 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)) {
set_include_path( $this->category = $this->argv[2];
"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];
} }
} else {
else { $this->argc = 1;
$this->argc = 1; $this->argv = array('home');
$this->argv = array('home'); $this->module = '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;
} }
/** function get_baseurl($ssl = false) {
* Special handling for the webfinger/lrdd host XRD file
*/
if($this->cmd === '.well-known/host-meta') { $scheme = $this->scheme;
$this->argc = 1;
$this->argv = array('hostxrd'); if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
$this->module = 'hostxrd'; 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 : '' );
* See if there is any page number information, and initialise return $this->baseurl;
* 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 : '' ); function set_baseurl($url) {
return $this->baseurl; $parsed = @parse_url($url);
}
function set_baseurl($url) { $this->baseurl = $url;
$parsed = @parse_url($url);
$this->baseurl = $url; if($parsed) {
$this->scheme = $parsed['scheme'];
if($parsed) { $this->hostname = $parsed['host'];
$this->scheme = $parsed['scheme']; 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 // retrieve the App structure
// useful in functions which require it but don't get it passed to them // useful in functions which require it but don't get it passed to them
if(! function_exists('get_app')) { if(! function_exists('get_app')) {
function get_app() { function get_app() {
global $a; global $a;
return $a; return $a;
}}; }
};
// Multi-purpose function to check variable state. // Multi-purpose function to check variable state.
@ -534,42 +536,44 @@ function get_app() {
// e.g. x('') or x(0) returns 0; // e.g. x('') or x(0) returns 0;
if(! function_exists('x')) { if(! function_exists('x')) {
function x($s,$k = NULL) { function x($s,$k = NULL) {
if($k != NULL) { if($k != NULL) {
if((is_array($s)) && (array_key_exists($k,$s))) { if((is_array($s)) && (array_key_exists($k,$s))) {
if($s[$k]) if($s[$k])
return (int) 1; return (int) 1;
return (int) 0; return (int) 0;
} }
return false; return false;
} }
else { else {
if(isset($s)) { if(isset($s)) {
if($s) { if($s) {
return (int) 1; return (int) 1;
}
return (int) 0;
} }
return (int) 0; return false;
} }
return false;
} }
}} }
// called from db initialisation if db is dead. // called from db initialisation if db is dead.
if(! function_exists('system_unavailable')) { if(! function_exists('system_unavailable')) {
function system_unavailable() { function system_unavailable() {
include('system_unavailable.php'); include('system_unavailable.php');
system_down(); system_down();
killme(); killme();
}} }
}
function clean_urls() { function clean_urls() {
global $a; global $a;
// if($a->config['system']['clean_urls']) // if($a->config['system']['clean_urls'])
return true; return true;
// return false; // return false;
} }
function z_path() { function z_path() {
@ -596,125 +600,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 // base url for use in cmdline programs which don't have
// $_SERVER variables, and synchronising the state of installed plugins. // $_SERVER variables, and synchronising the state of installed plugins.
if(! function_exists('check_config')) { if(! function_exists('check_config')) {
function check_config(&$a) { function check_config(&$a) {
$build = get_config('system','build'); $build = get_config('system','build');
if(! x($build)) if(! x($build))
$build = set_config('system','build',DB_UPDATE_VERSION); $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 // if the url isn't set or the stored url is radically different
// than the currently visited url, store the current value accordingly. // than the currently visited url, store the current value accordingly.
// "Radically different" ignores common variations such as http vs https // "Radically different" ignores common variations such as http vs https
// and www.example.com vs example.com. // and www.example.com vs example.com.
if((! x($url)) || (! link_compare($url,$a->get_baseurl()))) if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
$url = set_config('system','url',$a->get_baseurl()); $url = set_config('system','url',$a->get_baseurl());
if($build != DB_UPDATE_VERSION) { if($build != DB_UPDATE_VERSION) {
$stored = intval($build); $stored = intval($build);
$current = intval(DB_UPDATE_VERSION); $current = intval(DB_UPDATE_VERSION);
if(($stored < $current) && file_exists('update.php')) { if(($stored < $current) && file_exists('update.php')) {
load_config('database'); load_config('database');
// We're reporting a different version than what is currently installed. // We're reporting a different version than what is currently installed.
// Run any existing update scripts to bring the database up to current. // 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 // 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 // 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. // 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 ++) { for($x = $stored; $x < $current; $x ++) {
if(function_exists('update_' . $x)) { if(function_exists('update_' . $x)) {
// There could be a lot of processes running or about to run. // There could be a lot of processes running or about to run.
// We want exactly one process to run the update command. // We want exactly one process to run the update command.
// So store the fact that we're taking responsibility // So store the fact that we're taking responsibility
// after first checking to see if somebody else already has. // after first checking to see if somebody else already has.
// If the update fails or times-out completely you may need to // If the update fails or times-out completely you may need to
// delete the config entry to try again. // delete the config entry to try again.
if(get_config('database','update_' . $x)) if(get_config('database','update_' . $x))
break; break;
set_config('database','update_' . $x, '1'); set_config('database','update_' . $x, '1');
// call the specific update // call the specific update
$func = 'update_' . $x; global $db;
$func($a); $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: * Synchronise plugins:
* *
* $a->config['system']['addon'] contains a comma-separated list of names * $a->config['system']['addon'] contains a comma-separated list of names
* of plugins/addons which are used on this system. * of plugins/addons which are used on this system.
* Go through the database list of already installed addons, and if we have * 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 * 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). * 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, * 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. * call the install procedure and add it to the database.
* *
*/ */
$r = q("SELECT * FROM `addon` WHERE `installed` = 1"); $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
if(count($r)) if(count($r))
$installed = $r; $installed = $r;
else else
$installed = array(); $installed = array();
$plugins = get_config('system','addon'); $plugins = get_config('system','addon');
$plugins_arr = array(); $plugins_arr = array();
if($plugins) if($plugins)
$plugins_arr = explode(',',str_replace(' ', '',$plugins)); $plugins_arr = explode(',',str_replace(' ', '',$plugins));
$a->plugins = $plugins_arr; $a->plugins = $plugins_arr;
$installed_arr = array(); $installed_arr = array();
if(count($installed)) { if(count($installed)) {
foreach($installed as $i) { foreach($installed as $i) {
if(! in_array($i['name'],$plugins_arr)) { if(! in_array($i['name'],$plugins_arr)) {
uninstall_plugin($i['name']); uninstall_plugin($i['name']);
} }
else else
$installed_arr[] = $i['name']; $installed_arr[] = $i['name'];
}
}
if(count($plugins_arr)) {
foreach($plugins_arr as $p) {
if(! in_array($p,$installed_arr)) {
install_plugin($p);
} }
} }
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) { function get_guid($size=16) {
@ -735,116 +764,124 @@ function get_guid($size=16) {
// returns the complete html for inserting into the page // returns the complete html for inserting into the page
if(! function_exists('login')) { if(! function_exists('login')) {
function login($register = false, $hiddens=false) { function login($register = false, $hiddens=false) {
$a = get_app(); $a = get_app();
$o = ""; $o = "";
$reg = false; $reg = false;
if ($register) { if ($register) {
$reg = array( $reg = array(
'title' => t('Create a New Account'), 'title' => t('Create a New Account'),
'desc' => t('Register') '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()) { if(local_user()) {
$tpl = get_markup_template("logout.tpl"); $tpl = get_markup_template("logout.tpl");
} }
else { else {
$tpl = get_markup_template("login.tpl"); $tpl = get_markup_template("login.tpl");
$_SESSION['return_url'] = $a->query_string; $_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;
} }
}
// Used to end the current process, after saving session state.
$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.
if(! function_exists('killme')) { if(! function_exists('killme')) {
function killme() { function killme() {
session_write_close(); session_write_close();
exit; exit;
}} }
}
// redirect to another URL and terminate this process. // redirect to another URL and terminate this process.
if(! function_exists('goaway')) { if(! function_exists('goaway')) {
function goaway($s) { function goaway($s) {
header("Location: $s"); header("Location: $s");
killme(); killme();
}} }
}
// Returns the uid of locally logged in user or false. // Returns the uid of locally logged in user or false.
if(! function_exists('local_user')) { if(! function_exists('local_user')) {
function local_user() { function local_user() {
if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid'))) if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
return intval($_SESSION['uid']); return intval($_SESSION['uid']);
return false; return false;
}} }
}
// Returns contact id of authenticated site visitor or false // Returns contact id of authenticated site visitor or false
if(! function_exists('remote_user')) { if(! function_exists('remote_user')) {
function remote_user() { function remote_user() {
if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id'))) if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
return intval($_SESSION['visitor_id']); return intval($_SESSION['visitor_id']);
return false; return false;
}} }
}
// contents of $s are displayed prominently on the page the next time // contents of $s are displayed prominently on the page the next time
// a page is loaded. Usually used for errors or alerts. // a page is loaded. Usually used for errors or alerts.
if(! function_exists('notice')) { if(! function_exists('notice')) {
function notice($s) { function notice($s) {
$a = get_app(); $a = get_app();
if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array(); if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
if($a->interactive) if($a->interactive)
$_SESSION['sysmsg'][] = $s; $_SESSION['sysmsg'][] = $s;
}} }
}
if(! function_exists('info')) { if(! function_exists('info')) {
function info($s) { function info($s) {
$a = get_app(); $a = get_app();
if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array(); if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
if($a->interactive) if($a->interactive)
$_SESSION['sysmsg_info'][] = $s; $_SESSION['sysmsg_info'][] = $s;
}} }
}
// wrapper around config to limit the text length of an incoming message // wrapper around config to limit the text length of an incoming message
if(! function_exists('get_max_import_size')) { if(! function_exists('get_max_import_size')) {
function get_max_import_size() { function get_max_import_size() {
global $a; global $a;
return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 ); return ((x($a->config,'max_import_size')) ? $a->config['max_import_size'] : 0 );
}} }
}
@ -855,7 +892,7 @@ function get_max_import_size() {
* @parameter string $nickname * @parameter string $nickname
* @parameter int $profile * @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 * The function requires a writeable copy of the main App structure, and the nickname
* of a registered local account. * of a registered local account.
* *
@ -865,87 +902,89 @@ function get_max_import_size() {
* by the owner. * by the owner.
* *
* Profile information is placed in the App structure for later retrieval. * 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')) { if(! function_exists('profile_load')) {
function profile_load(&$a, $nickname, $profile = 0) { function profile_load(&$a, $nickname, $profile = 0) {
if(remote_user()) { if(remote_user()) {
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1", $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
intval($_SESSION['visitor_id'])); intval($_SESSION['visitor_id']));
if(count($r)) if(count($r))
$profile = $r[0]['profile-id']; $profile = $r[0]['profile-id'];
} }
$r = null; $r = null;
if($profile) { if($profile) {
$profile_int = intval($profile); $profile_int = intval($profile);
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `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` 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", WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d and `contact`.`self` = 1 LIMIT 1",
dbesc($nickname), dbesc($nickname),
intval($profile_int) intval($profile_int)
); );
} }
if((! $r) && (! count($r))) { if((! $r) && (! count($r))) {
$r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `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` 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", WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 and `contact`.`self` = 1 LIMIT 1",
dbesc($nickname) 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; 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;
}}
/** /**
@ -965,478 +1004,488 @@ function profile_load(&$a, $nickname, $profile = 0) {
if(! function_exists('profile_sidebar')) { if(! function_exists('profile_sidebar')) {
function profile_sidebar($profile, $block = 0) { function profile_sidebar($profile, $block = 0) {
$a = get_app(); $a = get_app();
$o = ''; $o = '';
$location = false; $location = false;
$address = false; $address = false;
$pdesc = true; $pdesc = true;
if((! is_array($profile)) && (! count($profile))) if((! is_array($profile)) && (! count($profile)))
return $o; 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 // don't show connect link to yourself
$connect = (($profile['uid'] != local_user()) ? t('Connect') : False); $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'])) if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
$connect = False; $connect = False;
if(get_my_url() && $profile['unkmail']) if(get_my_url() && $profile['unkmail'])
$wallmessage = t('Message'); $wallmessage = t('Message');
else else
$wallmessage = false; $wallmessage = false;
// show edit profile to yourself // show edit profile to yourself
if ($profile['uid'] == local_user()) { if ($profile['uid'] == local_user()) {
$profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles')); $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
$r = q("SELECT * FROM `profile` WHERE `uid` = %d", $r = q("SELECT * FROM `profile` WHERE `uid` = %d",
local_user()); local_user());
$profile['menu'] = array( $profile['menu'] = array(
'chg_photo' => t('Change profile photo'), 'chg_photo' => t('Change profile photo'),
'cr_new' => t('Create New Profile'), 'cr_new' => t('Create New Profile'),
'entries' => array(), 'entries' => array(),
); );
if(count($r)) { 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) if((x($profile,'address') == 1)
|| (x($profile,'locality') == 1) || (x($profile,'locality') == 1)
|| (x($profile,'region') == 1) || (x($profile,'region') == 1)
|| (x($profile,'postal-code') == 1) || (x($profile,'postal-code') == 1)
|| (x($profile,'country-name') == 1)) || (x($profile,'country-name') == 1))
$location = t('Location:'); $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())) { if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
$location = $pdesc = $gender = $marital = $homepage = False; $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')) { if(! function_exists('get_birthdays')) {
function get_birthdays() { function get_birthdays() {
$a = get_app(); $a = get_app();
$o = ''; $o = '';
if(! local_user()) if(! local_user())
return $o; return $o;
$bd_format = t('g A l F d') ; // 8 AM Friday January 18 $bd_format = t('g A l F d') ; // 8 AM Friday January 18
$bd_short = t('F d'); $bd_short = t('F d');
$r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event` $r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event`
LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid` LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid`
WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s' WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s'
ORDER BY `start` ASC ", ORDER BY `start` ASC ",
intval(local_user()), intval(local_user()),
dbesc(datetime_convert('UTC','UTC','now + 6 days')), dbesc(datetime_convert('UTC','UTC','now + 6 days')),
dbesc(datetime_convert('UTC','UTC','now')) dbesc(datetime_convert('UTC','UTC','now'))
); );
if($r && count($r)) { if($r && count($r)) {
$total = 0; $total = 0;
$now = strtotime('now'); $now = strtotime('now');
$cids = array(); $cids = array();
$istoday = false; $istoday = false;
foreach($r as $rr) { foreach($r as $rr) {
if(strlen($rr['name'])) if(strlen($rr['name']))
$total ++; $total ++;
if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now))
$istoday = true; $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 ' : ''; return $o;
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>';
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) { 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)) $title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
continue; if(! $title)
$cids[] = $rr['cid']; $title = t('[No description]');
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false); $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
$sparkle = ''; $today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);
$url = $rr['url'];
if($rr['network'] === NETWORK_DFRN) { $o .= '<div class="event-list" id="event-' . $rr['eid'] . '"></a> <a href="events/' . $md . '">' . $title . '</a>'
$sparkle = " sparkle"; . day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '')
$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>' ; . '</div>' ;
} }
$o .= '</div></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; 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 * Wrap calls to proc_close(proc_open()) and call hook
* so plugins can take part in process :) * so plugins can take part in process :)
* *
* args: * args:
* $cmd program to run * $cmd program to run
* next args are passed as $cmd command line * next args are passed as $cmd command line
* *
* e.g.: proc_run("ls","-la","/tmp"); * e.g.: proc_run("ls","-la","/tmp");
* *
* $cmd and string args are surrounded with "" * $cmd and string args are surrounded with ""
*/ */
if(! function_exists('proc_run')) { if(! function_exists('proc_run')) {
function proc_run($cmd){ function proc_run($cmd){
$a = get_app(); $a = get_app();
$args = func_get_args(); $args = func_get_args();
$arr = array('args' => $args, 'run_cmd' => true); $arr = array('args' => $args, 'run_cmd' => true);
call_hooks("proc_run", $arr); call_hooks("proc_run", $arr);
if(! $arr['run_cmd']) if(! $arr['run_cmd'])
return; return;
if(count($args) && $args[0] === 'php') if(count($args) && $args[0] === 'php')
$args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
foreach ($args as $arg){ foreach ($args as $arg){
$arg = escapeshellarg($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')) { if(! function_exists('current_theme')) {
function current_theme(){ function current_theme(){
$app_base_themes = array('duepuntozero', 'loozah'); $app_base_themes = array('duepuntozero', 'loozah');
$a = get_app(); $a = get_app();
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : ''); $system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme); $theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
if($theme_name && if($theme_name &&
(file_exists('view/theme/' . $theme_name . '/style.css') || (file_exists('view/theme/' . $theme_name . '/style.css') ||
file_exists('view/theme/' . $theme_name . '/style.php'))) file_exists('view/theme/' . $theme_name . '/style.php')))
return($theme_name); 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. * Provide a sane default if nothing is chosen or the specified theme does not exist.
*/ */
if(! function_exists('current_theme_url')) { if(! function_exists('current_theme_url')) {
function current_theme_url() { function current_theme_url() {
global $a; global $a;
$t = current_theme(); $t = current_theme();
if (file_exists('view/theme/' . $t . '/style.php')) 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.pcss');
return($a->get_baseurl() . '/view/theme/' . $t . '/style.css'); return($a->get_baseurl() . '/view/theme/' . $t . '/style.css');
}} }
}
if(! function_exists('feed_birthday')) { 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 * 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 * 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 * 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. * 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 * Assuming we are able to publish this info, we are then going to convert
* the start time from the owner's timezone to UTC. * the start time from the owner's timezone to UTC.
* *
* This will potentially solve the problem found with some social networks * This will potentially solve the problem found with some social networks
* where birthdays are converted to the viewer's timezone and salutations from * 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 * 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 * 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 * 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. * 6:00PM the day before, but that will correspond to midnight to the birthday person.
* *
*/ */
$birthday = ''; $birthday = '';
if(! strlen($tz)) if(! strlen($tz))
$tz = 'UTC'; $tz = 'UTC';
$p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
intval($uid) intval($uid)
); );
if($p && count($p)) { if($p && count($p)) {
$tmp_dob = substr($p[0]['dob'],5); $tmp_dob = substr($p[0]['dob'],5);
if(intval($tmp_dob)) { if(intval($tmp_dob)) {
$y = datetime_convert($tz,$tz,'now','Y'); $y = datetime_convert($tz,$tz,'now','Y');
$bd = $y . '-' . $tmp_dob . ' 00:00'; $bd = $y . '-' . $tmp_dob . ' 00:00';
$t_dob = strtotime($bd); $t_dob = strtotime($bd);
$now = strtotime(datetime_convert($tz,$tz,'now')); $now = strtotime(datetime_convert($tz,$tz,'now'));
if($t_dob < $now) if($t_dob < $now)
$bd = $y + 1 . '-' . $tmp_dob . ' 00:00'; $bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
$birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME); $birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME);
}
} }
}
return $birthday; return $birthday;
}} }
}
if(! function_exists('is_site_admin')) { if(! function_exists('is_site_admin')) {
function is_site_admin() { function is_site_admin() {
$a = get_app(); $a = get_app();
if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email'])) if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
return true; return true;
return false; return false;
}} }
}
if(! function_exists('load_contact_links')) { 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')) if(! $uid || x($a->contacts,'empty'))
return; return;
$r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ", $r = q("SELECT `id`,`network`,`url`,`thumb` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 ",
intval($uid) intval($uid)
); );
if(count($r)) { if(count($r)) {
foreach($r as $rr){ foreach($r as $rr){
$url = normalise_link($rr['url']); $url = normalise_link($rr['url']);
$ret[$url] = $rr; $ret[$url] = $rr;
}
} }
else
$ret['empty'] = true;
$a->contacts = $ret;
return;
} }
else }
$ret['empty'] = true;
$a->contacts = $ret;
return;
}}
if(! function_exists('profile_tabs')){ if(! function_exists('profile_tabs')){
function profile_tabs($a, $is_owner=False, $nickname=Null){ function profile_tabs($a, $is_owner=False, $nickname=Null){
//echo "<pre>"; var_dump($a->user); killme(); //echo "<pre>"; var_dump($a->user); killme();
if (is_null($nickname)) if (is_null($nickname))
$nickname = $a->user['nickname']; $nickname = $a->user['nickname'];
if(x($_GET,'tab')) if(x($_GET,'tab'))
$tab = notags(trim($_GET['tab'])); $tab = notags(trim($_GET['tab']));
$url = $a->get_baseurl() . '/profile/' . $nickname; $url = $a->get_baseurl() . '/profile/' . $nickname;
$tabs = array( $tabs = array(
array( array(
'label'=>t('Status'), 'label'=>t('Status'),
'url' => $url, 'url' => $url,
'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''), 'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
), ),
array( array(
'label' => t('Profile'), 'label' => t('Profile'),
'url' => $url.'/?tab=profile', 'url' => $url.'/?tab=profile',
'sel' => ((isset($tab) && $tab=='profile')?'active':''), 'sel' => ((isset($tab) && $tab=='profile')?'active':''),
), ),
array( array(
'label' => t('Photos'), 'label' => t('Photos'),
'url' => $a->get_baseurl() . '/photos/' . $nickname, 'url' => $a->get_baseurl() . '/photos/' . $nickname,
'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''), 'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
), ),
); );
if ($is_owner){ if ($is_owner){
$tabs[] = array( $tabs[] = array(
'label' => t('Events'), 'label' => t('Events'),
'url' => $a->get_baseurl() . '/events', 'url' => $a->get_baseurl() . '/events',
'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''), 'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
); );
$tabs[] = array( $tabs[] = array(
'label' => t('Personal Notes'), 'label' => t('Personal Notes'),
'url' => $a->get_baseurl() . '/notes', 'url' => $a->get_baseurl() . '/notes',
'sel' =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''), '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() { function get_my_url() {
if(x($_SESSION,'my_url')) if(x($_SESSION,'my_url'))
@ -1448,7 +1497,7 @@ function zrl($s) {
if(! strlen($s)) if(! strlen($s))
return $s; return $s;
if(! strpos($s,'/profile/')) if(! strpos($s,'/profile/'))
return $s; return $s;
$achar = strpos($s,'?') ? '&' : '?'; $achar = strpos($s,'?') ? '&' : '?';
$mine = get_my_url(); $mine = get_my_url();
if($mine and ! link_compare($mine,$s)) if($mine and ! link_compare($mine,$s))

View file

@ -6,40 +6,41 @@ Account Basics
**Registration** **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* *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. 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* *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. 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* *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. 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* *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. 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* *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. 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* *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. 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** **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. 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. 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** **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. 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 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. 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** **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? 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. 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). 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 **'init_1'** - called just after DB has been opened and before session start
$b is not used or passed $b is not used or passed
**'page_end'** - called after HTML content functions have completed **'page_end'** - called after HTML content functions have completed
$b is (string) HTML of content div $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. 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** **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. 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. And that brings the Quick Start to an end.
Here are some more things to help get you started: 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** **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** **Documentation**
- <a href = "/help/Connectors">Connecting to more networks</a> - <a href="help/Connectors">Connecting to more networks</a>
- <a href = "/help">Help Index</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! 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. 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. 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! 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. 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. 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. 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

@ -134,11 +134,11 @@ function contact_photo_menu($contact) {
$posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id']; $posts_link = $a->get_baseurl() . '/network/?cid=' . $contact['id'];
$menu = Array( $menu = Array(
t("View status") => $status_link, t("View Status") => $status_link,
t("View profile") => $profile_link, t("View Profile") => $profile_link,
t("View photos") => $photos_link, t("View Photos") => $photos_link,
t("View recent") => $posts_link, t("Network Posts") => $posts_link,
t("Edit contact") => $contact_url, t("Edit Contact") => $contact_url,
t("Send PM") => $pm_url, t("Send PM") => $pm_url,
); );
@ -150,7 +150,7 @@ function contact_photo_menu($contact) {
$o = ""; $o = "";
foreach($menu as $k=>$v){ foreach($menu as $k=>$v){
if ($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"; $o .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
else else
$o .= "<li><a href=\"$v\">$k</a></li>\n"; $o .= "<li><a href=\"$v\">$k</a></li>\n";
@ -158,3 +158,11 @@ function contact_photo_menu($contact) {
} }
return $o; 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 '';
}

View file

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

View file

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

View file

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

View file

@ -80,6 +80,16 @@ function field_timezone($name='timezone', $label='', $current = 'America/Los_Ang
if(! function_exists('datetime_convert')) { if(! function_exists('datetime_convert')) {
function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") { function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d H:i:s") {
// Defaults to UTC if nothing is set, but throws an exception if set to empty string.
// Provide some sane defaults regardless.
if($from === '')
$from = 'UTC';
if($to === '')
$to = 'UTC';
if($s === '')
$s = 'now';
// Slight hackish adjustment so that 'zero' datetime actually returns what is intended // Slight hackish adjustment so that 'zero' datetime actually returns what is intended
// otherwise we end up with -0001-11-30 ... // otherwise we end up with -0001-11-30 ...
// add 32 days so that we at least get year 00, and then hack around the fact that // add 32 days so that we at least get year 00, and then hack around the fact that

View file

@ -8,189 +8,273 @@ require_once('include/datetime.php');
* *
* For debugging, insert 'dbg(1);' anywhere in the program flow. * For debugging, insert 'dbg(1);' anywhere in the program flow.
* dbg(0); will turn it off. Logging is performed at LOGGER_DATA level. * dbg(0); will turn it off. Logging is performed at LOGGER_DATA level.
* When logging, all binary info is converted to text and html entities are escaped so that * When logging, all binary info is converted to
* the debugging stream is safe to view within both terminals and web pages. * text and html entities are escaped so that
* the debugging stream is safe to view
* within both terminals and web pages.
* *
*/ */
if(! class_exists('dba')) {
class dba {
private $debug = 0; if(! class_exists('dba')) {
private $db;
public $mysqli = true;
public $connected = false;
public $error = false;
function __construct($server,$user,$pass,$db,$install = false) { class dba {
$server = trim($server); private $debug = 0;
$user = trim($user); private $db;
$pass = trim($pass); private $exceptions;
$db = trim($db);
if (!(strlen($server) && strlen($user))){
$this->connected = false;
$this->db = null;
return;
}
if($install) { public $mysqli = true;
if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { public $connected = false;
if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { public $error = false;
$this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
$this->connected = false; function __construct($server,$user,$pass,$db,$install = false) {
$this->db = null;
return; $server = trim($server);
$user = trim($user);
$pass = trim($pass);
$db = trim($db);
//we need both, server and username, so fail if one is missing
if (!(strlen($server) && strlen($user))){
$this->connected = false;
$this->db = null;
throw new InvalidArgumentException(t("Server name of user name are missing. "));
}
//when we are installing
if($install) {
if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
$this->connected = false;
$this->db = null;
throw new InvalidArgumentException( t('Cannot locate DNS info for database server \'%s\''), $server);
}
}
}
if(class_exists('mysqli')) {
$this->db = new mysqli($server,$user,$pass,$db);
if(NULL === $this->db->connect_error) {
$this->connected = true;
} else {
throw new RuntimeException($this->db->connect_error);
}
} else {
$this->mysqli = false;
$this->db = mysql_connect($server,$user,$pass);
if($this->db && mysql_select_db($db,$this->db)) {
$this->connected = true;
} else {
throw new RuntimeException(mysql_error());
} }
} }
} }
if(class_exists('mysqli')) { public function excep($excep) {
$this->db = @new mysqli($server,$user,$pass,$db); $this->exceptions=$excep;
if(! mysqli_connect_errno()) {
$this->connected = true;
}
} }
else {
$this->mysqli = false;
$this->db = mysql_connect($server,$user,$pass);
if($this->db && mysql_select_db($db,$this->db)) {
$this->connected = true;
}
}
if(! $this->connected) {
$this->db = null;
if(! $install)
system_unavailable();
}
}
public function getdb() {
return $this->db;
}
public function q($sql) {
if((! $this->db) || (! $this->connected)) public function getdb() {
return false; return $this->db;
}
if($this->mysqli)
$result = @$this->db->query($sql);
else
$result = @mysql_query($sql,$this->db);
if($this->debug) { public function q($sql) {
$mesg = ''; if((! $this->db) || (! $this->connected)) {
$this->throwOrLog(new RuntimeException(t("There is no db connection. ")));
return;
}
if($this->mysqli) { if($this->mysqli) {
if($this->db->errno) $result = $this->db->query($sql);
logger('dba: ' . $this->db->error); } else {
$result = mysql_query($sql,$this->db);
} }
elseif(mysql_errno($this->db))
logger('dba: ' . mysql_error($this->db));
if($result === false) //on debug mode or fail, the query is written to the log.
$mesg = 'false'; //this won't work if logger can not read it's logging level
elseif($result === true) //from the db.
$mesg = 'true'; if($this->debug || FALSE === $result) {
else {
if($this->mysqli) $mesg = '';
$mesg = $result->num_rows . ' results' . EOL;
else if($result === false) {
$mesg = mysql_num_rows($result) . ' results' . EOL; $mesg = 'false '.$this->error();
} elseif($result === true) {
$mesg = 'true';
} else {
if($this->mysqli) {
$mesg = $result->num_rows . t(' results') . EOL;
} else {
$mesg = mysql_num_rows($result) . t(' results') . EOL;
}
}
$str = 'SQL = ' . printable($sql) . EOL . t('SQL returned ') . $mesg . EOL;
// If dbfail.out exists, we will write any failed calls directly to it,
// regardless of any logging that may or may nor be in effect.
// These usually indicate SQL syntax errors that need to be resolved.
if(file_exists('dbfail.out')) {
file_put_contents('dbfail.out', datetime_convert() . "\n" . $str . "\n", FILE_APPEND);
}
logger('dba: ' . $str );
if(FALSE===$result) {
$this->throwOrLog(new RuntimeException('dba: ' . $str));
return;
}
} }
$str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
logger('dba: ' . $str ); if($result === true) {
return $result;
}
$r = array();
if($this->mysqli) {
if($result->num_rows) {
while($x = $result->fetch_array(MYSQLI_ASSOC)) {
$r[] = $x;
}
$result->free_result();
}
} else {
if(mysql_num_rows($result)) {
while($x = mysql_fetch_array($result, MYSQL_ASSOC)) {
$r[] = $x;
}
mysql_free_result($result);
}
}
if($this->debug) {
logger('dba: ' . printable(print_r($r, true)));
}
return($r);
}
private function error() {
if($this->mysqli) {
return $this->db->error;
} else {
return mysql_error($this->db);
}
}
private function throwOrLog(Exception $ex) {
if($this->exceptions) {
throw $ex;
} else {
logger('dba: '.$ex->getMessage());
}
}
/**
* starts a transaction. Transactions need to be finished with
* commit() or rollback(). Please mind that the db table engine may
* not support this.
*/
public function beginTransaction() {
if($this->mysqli) {
return $this->db->autocommit(false);
} else {
//no transaction support in mysql module...
mysql_query('SET AUTOCOMMIT = 0;', $db);
}
}
/**
* rollback a transaction. So, rollback anything that was done since the last call
* to beginTransaction().
*/
public function rollback() {
if($this->mysqli) {
return $this->db->rollback();
} else {
//no transaction support in mysql module...
mysql_query('ROLLBACK;', $db);
}
$this->stopTransaction();
} }
/** /**
* If dbfail.out exists, we will write any failed calls directly to it, * commit a transaction. So, write any query to the database.
* regardless of any logging that may or may nor be in effect.
* These usually indicate SQL syntax errors that need to be resolved.
*/ */
public function commit() {
if($result === false) { if($this->mysqli) {
logger('dba: ' . printable($sql) . ' returned false.'); return $this->db->commit();
if(file_exists('dbfail.out')) } else {
file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND); //no transaction support in mysql module...
mysql_query('COMMIT;', $db);
}
$this->stopTransaction();
}
private function stopTransaction() {
if($this->mysqli) {
return $this->db->autocommit(true);
} else {
//no transaction support in mysql module...
mysql_query('SET AUTOCOMMIT = 1;', $db);
}
}
public function dbg($dbg) {
$this->debug = $dbg;
} }
if(($result === true) || ($result === false)) public function escape($str) {
return $result; if($this->db && $this->connected) {
if($this->mysqli) {
$r = array(); return $this->db->real_escape_string($str);
if($this->mysqli) { } else {
if($result->num_rows) { return mysql_real_escape_string($str,$this->db);
while($x = $result->fetch_array(MYSQLI_ASSOC)) }
$r[] = $x;
$result->free_result();
}
}
else {
if(mysql_num_rows($result)) {
while($x = mysql_fetch_array($result, MYSQL_ASSOC))
$r[] = $x;
mysql_free_result($result);
} }
} }
function __destruct() {
if($this->debug) if ($this->db) {
logger('dba: ' . printable(print_r($r, true))); if($this->mysqli) {
return($r); $this->db->close();
} }
} else {
public function dbg($dbg) {
$this->debug = $dbg;
}
public function escape($str) {
if($this->db && $this->connected) {
if($this->mysqli)
return @$this->db->real_escape_string($str);
else
return @mysql_real_escape_string($str,$this->db);
}
}
function __destruct() {
if ($this->db)
if($this->mysqli)
$this->db->close();
else
mysql_close($this->db); mysql_close($this->db);
}
}
} }
}} }
if(! function_exists('printable')) { if(! function_exists('printable')) {
function printable($s) { function printable($s) {
$s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s); $s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
$s = str_replace("\x00",'.',$s); $s = str_replace("\x00",'.',$s);
if(x($_SERVER,'SERVER_NAME')) if(x($_SERVER,'SERVER_NAME'))
$s = escape_tags($s); $s = escape_tags($s);
return $s; return $s;
}} }
}
// Procedural functions // Procedural functions
if(! function_exists('dbg')) { if(! function_exists('dbg')) {
function dbg($state) { function dbg($state) {
global $db; global $db;
if($db) if($db)
$db->dbg($state); $db->dbg($state);
}} }
}
if(! function_exists('dbesc')) { if(! function_exists('dbesc')) {
function dbesc($str) { function dbesc($str) {
global $db; global $db;
if($db && $db->connected) if($db && $db->connected)
return($db->escape($str)); return($db->escape($str));
else else
return(str_replace("'","\\'",$str)); return(str_replace("'","\\'",$str));
}} }
}
@ -199,30 +283,31 @@ function dbesc($str) {
// Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d", // Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
// 'user', 1); // 'user', 1);
if(! function_exists('q')) { if(! function_exists('q')) {
function q($sql) { function q($sql) {
global $db; global $db;
$args = func_get_args(); $args = func_get_args();
unset($args[0]); unset($args[0]);
if($db && $db->connected) {
$stmt = vsprintf($sql,$args);
if($stmt === false)
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
return $db->q($stmt);
}
/**
*
* This will happen occasionally trying to store the
* session data after abnormal program termination
*
*/
logger('dba: no database: ' . print_r($args,true));
return false;
if($db && $db->connected) {
$stmt = vsprintf($sql,$args);
if($stmt === false)
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true));
return $db->q($stmt);
} }
}
/**
*
* This will happen occasionally trying to store the
* session data after abnormal program termination
*
*/
logger('dba: no database: ' . print_r($args,true));
return false;
}}
/** /**
* *
@ -230,36 +315,39 @@ function q($sql) {
* *
*/ */
if(! function_exists('dbq')) { if(! function_exists('dbq')) {
function dbq($sql) { function dbq($sql) {
global $db; global $db;
if($db && $db->connected) if($db && $db->connected)
$ret = $db->q($sql); $ret = $db->q($sql);
else else
$ret = false; $ret = false;
return $ret; return $ret;
}} }
}
// Caller is responsible for ensuring that any integer arguments to // Caller is responsible for ensuring that any integer arguments to
// dbesc_array are actually integers and not malformed strings containing // dbesc_array are actually integers and not malformed strings containing
// SQL injection vectors. All integer array elements should be specifically // SQL injection vectors. All integer array elements should be specifically
// cast to int to avoid trouble. // cast to int to avoid trouble.
if(! function_exists('dbesc_array_cb')) { if(! function_exists('dbesc_array_cb')) {
function dbesc_array_cb(&$item, $key) { function dbesc_array_cb(&$item, $key) {
if(is_string($item)) if(is_string($item))
$item = dbesc($item); $item = dbesc($item);
}} }
}
if(! function_exists('dbesc_array')) { if(! function_exists('dbesc_array')) {
function dbesc_array(&$arr) { function dbesc_array(&$arr) {
if(is_array($arr) && count($arr)) { if(is_array($arr) && count($arr)) {
array_walk($arr,'dbesc_array_cb'); array_walk($arr,'dbesc_array_cb');
}
} }
}} }

View file

@ -1856,6 +1856,8 @@ function local_delivery($importer,$data) {
$feed->enable_order_by_date(false); $feed->enable_order_by_date(false);
$feed->init(); $feed->init();
/*
// Currently unsupported - needs a lot of work
$reloc = $feed->get_feed_tags( NAMESPACE_DFRN, 'relocate' ); $reloc = $feed->get_feed_tags( NAMESPACE_DFRN, 'relocate' );
if(isset($reloc[0]['child'][NAMESPACE_DFRN])) { if(isset($reloc[0]['child'][NAMESPACE_DFRN])) {
$base = $reloc[0]['child'][NAMESPACE_DFRN]; $base = $reloc[0]['child'][NAMESPACE_DFRN];
@ -1880,6 +1882,7 @@ function local_delivery($importer,$data) {
// schedule a scan? // schedule a scan?
} }
*/
// handle friend suggestion notification // handle friend suggestion notification

View file

@ -692,18 +692,23 @@ function allowed_email($email) {
}} }}
if(! function_exists('gravatar_img')) { if(! function_exists('avatar_img')) {
function gravatar_img($email) { function avatar_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;
logger('gravatar: ' . $email . ' ' . $url); $a = get_app();
return $url;
$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

@ -1506,3 +1506,8 @@ function undo_post_tagging($s) {
return $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"); 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) { 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 * Load configs from db. Overwrite configs from .htconfig.php
@ -258,6 +257,18 @@ if($a->module_loaded) {
$func($a); $func($a);
} }
if(function_exists(str_replace('-','_',current_theme()) . '_init')) {
$func = str_replace('-','_',current_theme()) . '_init';
$func($a);
}
// elseif (x($a->theme_info,"extends") && file_exists("view/theme/".$a->theme_info["extends"]."/theme.php")) {
// require_once("view/theme/".$a->theme_info["extends"]."/theme.php");
// if(function_exists(str_replace('-','_',$a->theme_info["extends"]) . '_init')) {
// $func = str_replace('-','_',$a->theme_info["extends"]) . '_init';
// $func($a);
// }
// }
if(($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error) if(($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error)
&& (function_exists($a->module . '_post')) && (function_exists($a->module . '_post'))
&& (! x($_POST,'auth-params'))) { && (! x($_POST,'auth-params'))) {
@ -348,13 +359,13 @@ $profile = $a->profile;
header("Content-type: text/html; charset=utf-8"); 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'; . ((x($a->page,'template')) ? $a->page['template'] : 'default' ) . '.php';
if(file_exists($template)) if(file_exists($template))
require_once($template); require_once($template);
else else
require_once(str_replace(current_theme() . '/', '', $template)); require_once(str_replace('theme/' . current_theme() . '/', '', $template));
session_write_close(); session_write_close();
exit; exit;

View file

@ -174,7 +174,6 @@ function admin_page_site_post(&$a){
return; return;
} }
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : ''); $sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false); $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : ''); $language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
@ -194,7 +193,6 @@ function admin_page_site_post(&$a){
$global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : ''); $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False); $no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
$no_openid = !((x($_POST,'no_openid')) ? 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_regfullname = !((x($_POST,'no_regfullname')) ? True : False);
$no_utf = !((x($_POST,'no_utf')) ? True : False); $no_utf = !((x($_POST,'no_utf')) ? True : False);
$no_community_page = !((x($_POST,'no_community_page')) ? True : False); $no_community_page = !((x($_POST,'no_community_page')) ? True : False);
@ -204,7 +202,7 @@ function admin_page_site_post(&$a){
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : ''); $proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60); $timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False); $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); $diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0); $ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
@ -283,7 +281,6 @@ function admin_page_site_post(&$a){
set_config('system','directory_search_url', $global_search_url); set_config('system','directory_search_url', $global_search_url);
set_config('system','block_extended_register', $no_multi_reg); set_config('system','block_extended_register', $no_multi_reg);
set_config('system','no_openid', $no_openid); 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_regfullname', $no_regfullname);
set_config('system','no_community_page', $no_community_page); set_config('system','no_community_page', $no_community_page);
set_config('system','no_utf', $no_utf); set_config('system','no_utf', $no_utf);
@ -380,7 +377,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_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_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_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_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.")), '$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.")),

View file

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

View file

@ -85,7 +85,7 @@ function contacts_post(&$a) {
if($priority > 5 || $priority < 0) if($priority > 5 || $priority < 0)
$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', $r = q("UPDATE `contact` SET `profile-id` = %d, `priority` = %d , `info` = '%s',
`hidden` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1", `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_id = $a->data['contact']['id'];
$contact = $a->data['contact']; $contact = $a->data['contact'];
$tpl = get_markup_template('contact_head.tpl'); $editselect = 'exact';
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true))); 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'); require_once('include/contact_selectors.php');

View file

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

View file

@ -180,7 +180,7 @@ function dfrn_request_post(&$a) {
// (ignore reply, nothing we can do it failed) // (ignore reply, nothing we can do it failed)
goaway($dfrn_url); goaway(zrl($dfrn_url));
return; // NOTREACHED return; // NOTREACHED
} }
@ -261,7 +261,7 @@ function dfrn_request_post(&$a) {
WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0
AND `contact`.`network` != '%s' AND `contact`.`network` != '%s'
AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ", AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 30 MINUTE ",
dbesc(NETWORK_MAIL) dbesc(NETWORK_MAIL2)
); );
if(count($r)) { if(count($r)) {
foreach($r as $rr) { foreach($r as $rr) {
@ -286,7 +286,7 @@ function dfrn_request_post(&$a) {
WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0 WHERE `intro`.`blocked` = 1 AND `contact`.`self` = 0
AND `contact`.`network` = '%s' AND `contact`.`network` = '%s'
AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ", AND `intro`.`datetime` < UTC_TIMESTAMP() - INTERVAL 3 DAY ",
dbesc(NETWORK_MAIL) dbesc(NETWORK_MAIL2)
); );
if(count($r)) { if(count($r)) {
foreach($r as $rr) { 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']); $url = trim($_POST['dfrn_url']);
if(! strlen($url)) { if(! strlen($url)) {
@ -308,17 +310,60 @@ function dfrn_request_post(&$a) {
return; return;
} }
// Canonicalise email-style profile locator
$hcard = ''; $hcard = '';
$url = webfinger_dfrn($url,$hcard);
if(substr($url,0,5) === 'stat:') { if($email_follow) {
$network = NETWORK_OSTATUS;
$url = substr($url,5); 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 { 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); logger('dfrn_request: url: ' . $url);

View file

@ -272,8 +272,7 @@ function item_post(&$a) {
$plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) : 0); $plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) : 0);
if((! $parent) && (! $api_source) && (! $plaintext)) { if((! $parent) && (! $api_source) && (! $plaintext)) {
$body = str_replace("\r\n","\n",$body); $body = fix_mce_lf($body);
$body = str_replace("\n\n","\n",$body);
} }
@ -351,7 +350,7 @@ function item_post(&$a) {
$image_uri = substr($image_uri,0, strpos($image_uri,'-')); $image_uri = substr($image_uri,0, strpos($image_uri,'-'));
if(! strlen($image_uri)) if(! strlen($image_uri))
continue; continue;
$srch = '<' . intval($profile_uid) . '>'; $srch = '<' . intval($contact_record['id']) . '>';
$r = q("SELECT `id` FROM `photo` WHERE `allow_cid` = '%s' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' $r = q("SELECT `id` FROM `photo` WHERE `allow_cid` = '%s' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = ''
AND `resource-id` = '%s' AND `uid` = %d LIMIT 1", AND `resource-id` = '%s' AND `uid` = %d LIMIT 1",
dbesc($srch), dbesc($srch),
@ -447,7 +446,7 @@ function item_post(&$a) {
if(count($tags)) { if(count($tags)) {
foreach($tags as $tag) { 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')); $plaintext = intval(get_pconfig(local_user(),'system','plaintext'));
if(! $plaintext) { if(! $plaintext) {
$body = str_replace("\r\n","\n",$body); $body = fix_mce_lf($body);
$body = str_replace("\n\n","\n",$body);
} }
$ret = send_message($recipient, $body, $subject, $replyto); $ret = send_message($recipient, $body, $subject, $replyto);

View file

@ -13,7 +13,7 @@ function newmember_content(&$a) {
$o .= '<ul>'; $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; $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>'; $o .= '</div>';
return $o; return $o;
} }

View file

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

View file

@ -121,16 +121,17 @@ function profiles_post(&$a) {
$politic = notags(trim($_POST['politic'])); $politic = notags(trim($_POST['politic']));
$religion = notags(trim($_POST['religion'])); $religion = notags(trim($_POST['religion']));
$about = escape_tags(trim($_POST['about'])); $about = fix_mce_lf(escape_tags(trim($_POST['about'])));
$interest = escape_tags(trim($_POST['interest'])); $interest = fix_mce_lf(escape_tags(trim($_POST['interest'])));
$contact = escape_tags(trim($_POST['contact'])); $contact = fix_mce_lf(escape_tags(trim($_POST['contact'])));
$music = escape_tags(trim($_POST['music'])); $music = fix_mce_lf(escape_tags(trim($_POST['music'])));
$book = escape_tags(trim($_POST['book'])); $book = fix_mce_lf(escape_tags(trim($_POST['book'])));
$tv = escape_tags(trim($_POST['tv'])); $tv = fix_mce_lf(escape_tags(trim($_POST['tv'])));
$film = escape_tags(trim($_POST['film'])); $film = fix_mce_lf(escape_tags(trim($_POST['film'])));
$romance = escape_tags(trim($_POST['romance'])); $romance = fix_mce_lf(escape_tags(trim($_POST['romance'])));
$work = escape_tags(trim($_POST['work'])); $work = fix_mce_lf(escape_tags(trim($_POST['work'])));
$education = escape_tags(trim($_POST['education'])); $education = fix_mce_lf(escape_tags(trim($_POST['education'])));
$hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
$r = q("UPDATE `profile` $r = q("UPDATE `profile`
@ -361,7 +362,16 @@ function profiles_content(&$a) {
require_once('include/profile_selectors.php'); 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"); $opt_tpl = get_markup_template("profile-hide-friends.tpl");
$hide_friends = replace_macros($opt_tpl,array( $hide_friends = replace_macros($opt_tpl,array(
@ -372,10 +382,12 @@ function profiles_content(&$a) {
'$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "") '$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>"; $a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"js/country.js\" ></script>";
$f = get_config('system','birthday_input_format'); $f = get_config('system','birthday_input_format');
if(! $f) if(! $f)
$f = 'ymd'; $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($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 no OpenID photo try to look up an avatar
if(! strlen($photo))
// if we have an openid photo use it. $photo = avatar_img($email);
// otherwise unless it is disabled, use gravatar
if($use_gravatar || strlen($photo)) {
// unless there is no avatar-plugin loaded
if(strlen($photo)) {
require_once('include/Photo.php'); require_once('include/Photo.php');
if(($use_gravatar) && (! strlen($photo)))
$photo = gravatar_img($email);
$photo_failure = false; $photo_failure = false;
$filename = basename($photo); $filename = basename($photo);
@ -333,7 +329,7 @@ function register_post(&$a) {
if($img->is_valid()) { if($img->is_valid()) {
$img->scaleImageSquare(175); $img->scaleImageSquare(175);
$hash = photo_new_resource(); $hash = photo_new_resource();
$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 ); $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 );

View file

@ -7,7 +7,7 @@ function wall_attach_post(&$a) {
if($a->argc > 1) { if($a->argc > 1) {
$nick = $a->argv[1]; $nick = $a->argv[1];
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
dbesc($nick) dbesc($nick)
); );
if(! count($r)) if(! count($r))
@ -21,6 +21,7 @@ function wall_attach_post(&$a) {
$visitor = 0; $visitor = 0;
$page_owner_uid = $r[0]['uid']; $page_owner_uid = $r[0]['uid'];
$page_owner_cid = $r[0]['id'];
$page_owner_nick = $r[0]['nickname']; $page_owner_nick = $r[0]['nickname'];
$community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
@ -73,7 +74,7 @@ function wall_attach_post(&$a) {
dbesc($filedata), dbesc($filedata),
dbesc($created), dbesc($created),
dbesc($created), dbesc($created),
dbesc('<' . $page_owner_uid . '>'), dbesc('<' . $page_owner_cid . '>'),
dbesc(''), dbesc(''),
dbesc(''), dbesc(''),
dbesc('') dbesc('')

View file

@ -6,7 +6,7 @@ function wall_upload_post(&$a) {
if($a->argc > 1) { if($a->argc > 1) {
$nick = $a->argv[1]; $nick = $a->argv[1];
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
dbesc($nick) dbesc($nick)
); );
if(! count($r)) if(! count($r))
@ -16,10 +16,13 @@ function wall_upload_post(&$a) {
else else
return; return;
$can_post = false; $can_post = false;
$visitor = 0; $visitor = 0;
$page_owner_uid = $r[0]['uid']; $page_owner_uid = $r[0]['uid'];
$default_cid = $r[0]['id'];
$page_owner_nick = $r[0]['nickname']; $page_owner_nick = $r[0]['nickname'];
$community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false); $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
@ -34,6 +37,7 @@ function wall_upload_post(&$a) {
if(count($r)) { if(count($r)) {
$can_post = true; $can_post = true;
$visitor = remote_user(); $visitor = remote_user();
$default_cid = $visitor;
} }
} }
} }
@ -76,7 +80,7 @@ function wall_upload_post(&$a) {
$smallest = 0; $smallest = 0;
$defperm = '<' . $page_owner_uid . '>'; $defperm = '<' . $default_cid . '>';
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm); $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);

View file

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2.3.1304\n" "Project-Id-Version: 2.3.1308\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-04-06 10:00-0700\n" "POT-Creation-Date: 2012-04-10 10:00-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -34,7 +34,7 @@ msgstr ""
msgid "Contact update failed." msgid "Contact update failed."
msgstr "" 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/fsuggest.php:78 ../../mod/events.php:110 ../../mod/api.php:26
#: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:866 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:866
#: ../../mod/editpost.php:10 ../../mod/install.php:171 #: ../../mod/editpost.php:10 ../../mod/install.php:171
@ -50,12 +50,12 @@ msgstr ""
#: ../../mod/profile_photo.php:139 ../../mod/profile_photo.php:150 #: ../../mod/profile_photo.php:139 ../../mod/profile_photo.php:150
#: ../../mod/profile_photo.php:163 ../../mod/message.php:38 #: ../../mod/profile_photo.php:163 ../../mod/message.php:38
#: ../../mod/message.php:91 ../../mod/allfriends.php:9 #: ../../mod/message.php:91 ../../mod/allfriends.php:9
#: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9 #: ../../mod/wall_upload.php:46 ../../mod/follow.php:8 ../../mod/common.php:9
#: ../../mod/display.php:138 ../../mod/profiles.php:7 #: ../../mod/display.php:138 ../../mod/profiles.php:7
#: ../../mod/profiles.php:232 ../../mod/delegate.php:6 #: ../../mod/profiles.php:232 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:456 #: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:460
#: ../../include/items.php:3118 ../../index.php:294 #: ../../include/items.php:3118 ../../index.php:306
msgid "Permission denied." msgid "Permission denied."
msgstr "" msgstr ""
@ -132,12 +132,13 @@ msgstr ""
#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:357 #: ../../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:525 ../../mod/admin.php:654 ../../mod/admin.php:826
#: ../../mod/admin.php:906 ../../mod/profiles.php:390 ../../mod/invite.php:119 #: ../../mod/admin.php:906 ../../mod/profiles.php:390 ../../mod/invite.php:119
#: ../../addon/facebook/facebook.php:547 ../../addon/yourls/yourls.php:76 #: ../../addon/facebook/facebook.php:551 ../../addon/yourls/yourls.php:76
#: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57 #: ../../addon/ljpost/ljpost.php:93 ../../addon/nsfw/nsfw.php:57
#: ../../addon/planets/planets.php:180
#: ../../addon/uhremotestorage/uhremotestorage.php:89 #: ../../addon/uhremotestorage/uhremotestorage.php:89
#: ../../addon/randplace/randplace.php:179 ../../addon/dwpost/dwpost.php:93 #: ../../addon/randplace/randplace.php:179 ../../addon/dwpost/dwpost.php:93
#: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187 #: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:69 #: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:80
#: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61 #: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61
#: ../../addon/openstreetmap/openstreetmap.php:70 #: ../../addon/openstreetmap/openstreetmap.php:70
#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94 #: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94
@ -147,12 +148,12 @@ msgstr ""
#: ../../addon/statusnet/statusnet.php:318 #: ../../addon/statusnet/statusnet.php:318
#: ../../addon/statusnet/statusnet.php:325 #: ../../addon/statusnet/statusnet.php:325
#: ../../addon/statusnet/statusnet.php:353 #: ../../addon/statusnet/statusnet.php:353
#: ../../addon/statusnet/statusnet.php:547 ../../addon/tumblr/tumblr.php:90 #: ../../addon/statusnet/statusnet.php:553 ../../addon/tumblr/tumblr.php:90
#: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88 #: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
#: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48 #: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180 #: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180
#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:369 #: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375
#: ../../addon/posterous/posterous.php:90 #: ../../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:21 ../../include/conversation.php:555
msgid "Submit" msgid "Submit"
msgstr "" msgstr ""
@ -173,12 +174,12 @@ msgstr ""
msgid "Page not found." msgid "Page not found."
msgstr "" msgstr ""
#: ../../mod/wall_attach.php:57 #: ../../mod/wall_attach.php:58
#, php-format #, php-format
msgid "File exceeds size limit of %d" msgid "File exceeds size limit of %d"
msgstr "" 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." msgid "File upload failed."
msgstr "" msgstr ""
@ -211,11 +212,11 @@ msgstr ""
msgid "link to source" msgid "link to source"
msgstr "" msgstr ""
#: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:240 #: ../../mod/events.php:296 ../../view/theme/diabook-red/theme.php:244
#: ../../view/theme/diabook-blue/theme.php:240 #: ../../view/theme/diabook-blue/theme.php:244
#: ../../view/theme/diabook/theme.php:248 #: ../../view/theme/diabook/theme.php:251
#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:52 #: ../../view/theme/diabook-aerith/theme.php:245 ../../include/nav.php:52
#: ../../boot.php:1421 #: ../../boot.php:1469
msgid "Events" msgid "Events"
msgstr "" msgstr ""
@ -265,7 +266,7 @@ msgid "Description:"
msgstr "" msgstr ""
#: ../../mod/events.php:395 ../../include/event.php:37 #: ../../mod/events.php:395 ../../include/event.php:37
#: ../../include/bb2diaspora.php:260 ../../boot.php:1042 #: ../../include/bb2diaspora.php:260 ../../boot.php:1081
msgid "Location:" msgid "Location:"
msgstr "" msgstr ""
@ -347,10 +348,10 @@ msgstr ""
#: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:880 #: ../../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:951 ../../mod/photos.php:966 ../../mod/photos.php:1383
#: ../../mod/photos.php:1395 ../../addon/communityhome/communityhome.php:110 #: ../../mod/photos.php:1395 ../../addon/communityhome/communityhome.php:110
#: ../../view/theme/diabook-red/theme.php:110 #: ../../view/theme/diabook-red/theme.php:114
#: ../../view/theme/diabook-blue/theme.php:110 #: ../../view/theme/diabook-blue/theme.php:114
#: ../../view/theme/diabook/theme.php:114 #: ../../view/theme/diabook/theme.php:117
#: ../../view/theme/diabook-aerith/theme.php:110 #: ../../view/theme/diabook-aerith/theme.php:115
msgid "Contact Photos" msgid "Contact Photos"
msgstr "" msgstr ""
@ -373,10 +374,10 @@ msgstr ""
#: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174
#: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261
#: ../../addon/communityhome/communityhome.php:111 #: ../../addon/communityhome/communityhome.php:111
#: ../../view/theme/diabook-red/theme.php:111 #: ../../view/theme/diabook-red/theme.php:115
#: ../../view/theme/diabook-blue/theme.php:111 #: ../../view/theme/diabook-blue/theme.php:115
#: ../../view/theme/diabook/theme.php:115 #: ../../view/theme/diabook/theme.php:118
#: ../../view/theme/diabook-aerith/theme.php:111 #: ../../view/theme/diabook-aerith/theme.php:116
msgid "Profile Photos" msgid "Profile Photos"
msgstr "" msgstr ""
@ -398,10 +399,10 @@ msgstr ""
#: ../../mod/photos.php:529 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../mod/photos.php:529 ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/communityhome/communityhome.php:163 #: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook-red/theme.php:82 #: ../../view/theme/diabook-red/theme.php:86
#: ../../view/theme/diabook-blue/theme.php:82 #: ../../view/theme/diabook-blue/theme.php:86
#: ../../view/theme/diabook/theme.php:86 #: ../../view/theme/diabook/theme.php:89
#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1297 #: ../../view/theme/diabook-aerith/theme.php:87 ../../include/text.php:1297
#: ../../include/diaspora.php:1654 ../../include/conversation.php:53 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53
#: ../../include/conversation.php:126 #: ../../include/conversation.php:126
msgid "photo" msgid "photo"
@ -420,12 +421,12 @@ msgid "Image file is empty."
msgstr "" msgstr ""
#: ../../mod/photos.php:654 ../../mod/profile_photo.php:124 #: ../../mod/photos.php:654 ../../mod/profile_photo.php:124
#: ../../mod/wall_upload.php:65 #: ../../mod/wall_upload.php:69
msgid "Unable to process image." msgid "Unable to process image."
msgstr "" msgstr ""
#: ../../mod/photos.php:674 ../../mod/profile_photo.php:257 #: ../../mod/photos.php:674 ../../mod/profile_photo.php:257
#: ../../mod/wall_upload.php:84 #: ../../mod/wall_upload.php:88
msgid "Image upload failed." msgid "Image upload failed."
msgstr "" msgstr ""
@ -576,11 +577,10 @@ msgstr ""
msgid "Not available." msgid "Not available."
msgstr "" msgstr ""
#: ../../mod/community.php:30 ../../addon/pages/pages.php:75 #: ../../mod/community.php:30 ../../view/theme/diabook-red/theme.php:246
#: ../../view/theme/diabook-red/theme.php:242 #: ../../view/theme/diabook-blue/theme.php:246
#: ../../view/theme/diabook-blue/theme.php:242 #: ../../view/theme/diabook/theme.php:253
#: ../../view/theme/diabook/theme.php:250 #: ../../view/theme/diabook-aerith/theme.php:247 ../../include/nav.php:101
#: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:101
msgid "Community" msgid "Community"
msgstr "" msgstr ""
@ -1165,7 +1165,7 @@ msgid "is interested in:"
msgstr "" msgstr ""
#: ../../mod/match.php:58 ../../mod/suggest.php:59 #: ../../mod/match.php:58 ../../mod/suggest.php:59
#: ../../include/contact_widgets.php:9 ../../boot.php:986 #: ../../include/contact_widgets.php:9 ../../boot.php:1025
msgid "Connect" msgid "Connect"
msgstr "" msgstr ""
@ -1213,10 +1213,10 @@ msgstr ""
msgid "Personal" msgid "Personal"
msgstr "" msgstr ""
#: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:236 #: ../../mod/notifications.php:90 ../../view/theme/diabook-red/theme.php:240
#: ../../view/theme/diabook-blue/theme.php:236 #: ../../view/theme/diabook-blue/theme.php:240
#: ../../view/theme/diabook/theme.php:244 #: ../../view/theme/diabook/theme.php:247
#: ../../view/theme/diabook-aerith/theme.php:236 ../../include/nav.php:77 #: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:77
#: ../../include/nav.php:115 #: ../../include/nav.php:115
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -1594,10 +1594,10 @@ msgstr ""
msgid "Edit contact" msgid "Edit contact"
msgstr "" msgstr ""
#: ../../mod/contacts.php:523 ../../view/theme/diabook-red/theme.php:238 #: ../../mod/contacts.php:523 ../../view/theme/diabook-red/theme.php:242
#: ../../view/theme/diabook-blue/theme.php:238 #: ../../view/theme/diabook-blue/theme.php:242
#: ../../view/theme/diabook/theme.php:246 #: ../../view/theme/diabook/theme.php:249
#: ../../view/theme/diabook-aerith/theme.php:238 ../../include/nav.php:139 #: ../../view/theme/diabook-aerith/theme.php:243 ../../include/nav.php:139
msgid "Contacts" msgid "Contacts"
msgstr "" msgstr ""
@ -1630,8 +1630,9 @@ msgstr ""
#: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107 #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107
#: ../../mod/register.php:392 ../../mod/register.php:446 #: ../../mod/register.php:392 ../../mod/register.php:446
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732 #: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:732
#: ../../addon/facebook/facebook.php:617 #: ../../addon/facebook/facebook.php:621
#: ../../addon/facebook/facebook.php:1069 ../../include/items.php:2658 #: ../../addon/facebook/facebook.php:1073 ../../include/items.php:2658
#: ../../boot.php:679
msgid "Administrator" msgid "Administrator"
msgstr "" msgstr ""
@ -1641,7 +1642,7 @@ msgid ""
"Password reset failed." "Password reset failed."
msgstr "" msgstr ""
#: ../../mod/lostpass.php:83 ../../boot.php:779 #: ../../mod/lostpass.php:83 ../../boot.php:808
msgid "Password Reset" msgid "Password Reset"
msgstr "" msgstr ""
@ -1733,52 +1734,52 @@ msgstr ""
msgid " Cannot change to that email." msgid " Cannot change to that email."
msgstr "" msgstr ""
#: ../../mod/settings.php:420 ../../addon/facebook/facebook.php:445 #: ../../mod/settings.php:420 ../../addon/facebook/facebook.php:449
#: ../../addon/impressum/impressum.php:64 #: ../../addon/impressum/impressum.php:75
#: ../../addon/openstreetmap/openstreetmap.php:80 #: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:364 #: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:370
msgid "Settings updated." msgid "Settings updated."
msgstr "" msgstr ""
#: ../../mod/settings.php:484 ../../view/theme/diabook-red/theme.php:284 #: ../../mod/settings.php:484 ../../view/theme/diabook-red/theme.php:288
#: ../../view/theme/diabook-blue/theme.php:283 #: ../../view/theme/diabook-blue/theme.php:287
#: ../../view/theme/diabook/theme.php:293 #: ../../view/theme/diabook/theme.php:298
#: ../../view/theme/diabook-aerith/theme.php:283 ../../include/nav.php:137 #: ../../view/theme/diabook-aerith/theme.php:288 ../../include/nav.php:137
msgid "Account settings" msgid "Account settings"
msgstr "" msgstr ""
#: ../../mod/settings.php:489 ../../view/theme/diabook-red/theme.php:289 #: ../../mod/settings.php:489 ../../view/theme/diabook-red/theme.php:293
#: ../../view/theme/diabook-blue/theme.php:288 #: ../../view/theme/diabook-blue/theme.php:292
#: ../../view/theme/diabook/theme.php:298 #: ../../view/theme/diabook/theme.php:303
#: ../../view/theme/diabook-aerith/theme.php:288 #: ../../view/theme/diabook-aerith/theme.php:293
msgid "Display settings" msgid "Display settings"
msgstr "" msgstr ""
#: ../../mod/settings.php:495 ../../view/theme/diabook-red/theme.php:298 #: ../../mod/settings.php:495 ../../view/theme/diabook-red/theme.php:302
#: ../../view/theme/diabook-blue/theme.php:297 #: ../../view/theme/diabook-blue/theme.php:301
#: ../../view/theme/diabook/theme.php:307 #: ../../view/theme/diabook/theme.php:312
#: ../../view/theme/diabook-aerith/theme.php:297 #: ../../view/theme/diabook-aerith/theme.php:302
msgid "Connector settings" msgid "Connector settings"
msgstr "" msgstr ""
#: ../../mod/settings.php:500 ../../view/theme/diabook-red/theme.php:303 #: ../../mod/settings.php:500 ../../view/theme/diabook-red/theme.php:307
#: ../../view/theme/diabook-blue/theme.php:302 #: ../../view/theme/diabook-blue/theme.php:306
#: ../../view/theme/diabook/theme.php:312 #: ../../view/theme/diabook/theme.php:317
#: ../../view/theme/diabook-aerith/theme.php:302 #: ../../view/theme/diabook-aerith/theme.php:307
msgid "Plugin settings" msgid "Plugin settings"
msgstr "" msgstr ""
#: ../../mod/settings.php:505 ../../view/theme/diabook-red/theme.php:308 #: ../../mod/settings.php:505 ../../view/theme/diabook-red/theme.php:312
#: ../../view/theme/diabook-blue/theme.php:307 #: ../../view/theme/diabook-blue/theme.php:311
#: ../../view/theme/diabook/theme.php:317 #: ../../view/theme/diabook/theme.php:322
#: ../../view/theme/diabook-aerith/theme.php:307 #: ../../view/theme/diabook-aerith/theme.php:312
msgid "Connections" msgid "Connections"
msgstr "" msgstr ""
#: ../../mod/settings.php:510 ../../view/theme/diabook-red/theme.php:313 #: ../../mod/settings.php:510 ../../view/theme/diabook-red/theme.php:317
#: ../../view/theme/diabook-blue/theme.php:312 #: ../../view/theme/diabook-blue/theme.php:316
#: ../../view/theme/diabook/theme.php:322 #: ../../view/theme/diabook/theme.php:327
#: ../../view/theme/diabook-aerith/theme.php:312 #: ../../view/theme/diabook-aerith/theme.php:317
msgid "Export personal data" msgid "Export personal data"
msgstr "" msgstr ""
@ -1788,12 +1789,12 @@ msgid "Add application"
msgstr "" msgstr ""
#: ../../mod/settings.php:532 ../../mod/settings.php:559 #: ../../mod/settings.php:532 ../../mod/settings.php:559
#: ../../addon/statusnet/statusnet.php:541 #: ../../addon/statusnet/statusnet.php:547
msgid "Consumer Key" msgid "Consumer Key"
msgstr "" msgstr ""
#: ../../mod/settings.php:533 ../../mod/settings.php:560 #: ../../mod/settings.php:533 ../../mod/settings.php:560
#: ../../addon/statusnet/statusnet.php:540 #: ../../addon/statusnet/statusnet.php:546
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "" msgstr ""
@ -2258,12 +2259,12 @@ msgstr ""
msgid "Invalid contact." msgid "Invalid contact."
msgstr "" msgstr ""
#: ../../mod/notes.php:44 ../../boot.php:1426 #: ../../mod/notes.php:44 ../../boot.php:1474
msgid "Personal Notes" msgid "Personal Notes"
msgstr "" msgstr ""
#: ../../mod/notes.php:63 ../../mod/filer.php:30 #: ../../mod/notes.php:63 ../../mod/filer.php:30
#: ../../addon/facebook/facebook.php:673 ../../include/text.php:652 #: ../../addon/facebook/facebook.php:677 ../../include/text.php:652
msgid "Save" msgid "Save"
msgstr "" msgstr ""
@ -2465,7 +2466,7 @@ msgstr ""
msgid "Group name changed." msgid "Group name changed."
msgstr "" msgstr ""
#: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:293 #: ../../mod/group.php:72 ../../mod/profperm.php:19 ../../index.php:305
msgid "Permission denied" msgid "Permission denied"
msgstr "" msgstr ""
@ -2505,12 +2506,12 @@ msgstr ""
msgid "Profile Visibility Editor" msgid "Profile Visibility Editor"
msgstr "" msgstr ""
#: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:237 #: ../../mod/profperm.php:103 ../../view/theme/diabook-red/theme.php:241
#: ../../view/theme/diabook-blue/theme.php:237 #: ../../view/theme/diabook-blue/theme.php:241
#: ../../view/theme/diabook/theme.php:245 #: ../../view/theme/diabook/theme.php:248
#: ../../view/theme/diabook-aerith/theme.php:237 #: ../../view/theme/diabook-aerith/theme.php:242
#: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:76 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:76
#: ../../include/nav.php:50 ../../boot.php:1408 #: ../../include/nav.php:50 ../../boot.php:1456
msgid "Profile" msgid "Profile"
msgstr "" msgstr ""
@ -2682,7 +2683,7 @@ msgstr ""
msgid "Choose a nickname: " msgid "Choose a nickname: "
msgstr "" msgstr ""
#: ../../mod/register.php:571 ../../include/nav.php:81 ../../boot.php:745 #: ../../mod/register.php:571 ../../include/nav.php:81 ../../boot.php:774
msgid "Register" msgid "Register"
msgstr "" msgstr ""
@ -2691,28 +2692,28 @@ msgid "People Search"
msgstr "" msgstr ""
#: ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/facebook/facebook.php:1440 #: ../../addon/facebook/facebook.php:1546
#: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167 #: ../../addon/communityhome/communityhome.php:167
#: ../../view/theme/diabook-red/theme.php:77 #: ../../view/theme/diabook-red/theme.php:81
#: ../../view/theme/diabook-red/theme.php:86 #: ../../view/theme/diabook-red/theme.php:90
#: ../../view/theme/diabook-blue/theme.php:77 #: ../../view/theme/diabook-blue/theme.php:81
#: ../../view/theme/diabook-blue/theme.php:86 #: ../../view/theme/diabook-blue/theme.php:90
#: ../../view/theme/diabook/theme.php:81 ../../view/theme/diabook/theme.php:90 #: ../../view/theme/diabook/theme.php:84 ../../view/theme/diabook/theme.php:93
#: ../../view/theme/diabook-aerith/theme.php:77 #: ../../view/theme/diabook-aerith/theme.php:82
#: ../../view/theme/diabook-aerith/theme.php:86 #: ../../view/theme/diabook-aerith/theme.php:91
#: ../../include/diaspora.php:1654 ../../include/conversation.php:48 #: ../../include/diaspora.php:1654 ../../include/conversation.php:48
#: ../../include/conversation.php:57 ../../include/conversation.php:121 #: ../../include/conversation.php:57 ../../include/conversation.php:121
#: ../../include/conversation.php:130 #: ../../include/conversation.php:130
msgid "status" msgid "status"
msgstr "" msgstr ""
#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1444 #: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1550
#: ../../addon/communityhome/communityhome.php:172 #: ../../addon/communityhome/communityhome.php:172
#: ../../view/theme/diabook-red/theme.php:91 #: ../../view/theme/diabook-red/theme.php:95
#: ../../view/theme/diabook-blue/theme.php:91 #: ../../view/theme/diabook-blue/theme.php:95
#: ../../view/theme/diabook/theme.php:95 #: ../../view/theme/diabook/theme.php:98
#: ../../view/theme/diabook-aerith/theme.php:91 #: ../../view/theme/diabook-aerith/theme.php:96
#: ../../include/diaspora.php:1670 ../../include/conversation.php:65 #: ../../include/diaspora.php:1670 ../../include/conversation.php:65
#, php-format #, php-format
msgid "%1$s likes %2$s's %3$s" msgid "%1$s likes %2$s's %3$s"
@ -2754,8 +2755,8 @@ msgstr ""
msgid "Empty post discarded." msgid "Empty post discarded."
msgstr "" msgstr ""
#: ../../mod/item.php:373 ../../mod/wall_upload.php:81 #: ../../mod/item.php:373 ../../mod/wall_upload.php:85
#: ../../mod/wall_upload.php:90 ../../mod/wall_upload.php:97 #: ../../mod/wall_upload.php:94 ../../mod/wall_upload.php:101
#: ../../include/message.php:144 #: ../../include/message.php:144
msgid "Wall Photos" msgid "Wall Photos"
msgstr "" msgstr ""
@ -2806,7 +2807,7 @@ msgstr ""
msgid "Unable to process image" msgid "Unable to process image"
msgstr "" msgstr ""
#: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:56 #: ../../mod/profile_photo.php:115 ../../mod/wall_upload.php:60
#, php-format #, php-format
msgid "Image exceeds size limit of %d" msgid "Image exceeds size limit of %d"
msgstr "" msgstr ""
@ -3032,7 +3033,7 @@ msgstr ""
msgid "Advanced" msgid "Advanced"
msgstr "" msgstr ""
#: ../../mod/admin.php:365 ../../addon/statusnet/statusnet.php:538 #: ../../mod/admin.php:365 ../../addon/statusnet/statusnet.php:544
msgid "Site name" msgid "Site name"
msgstr "" msgstr ""
@ -3426,7 +3427,7 @@ msgstr ""
msgid "FTP Password" msgid "FTP Password"
msgstr "" msgstr ""
#: ../../mod/profile.php:20 ../../boot.php:901 #: ../../mod/profile.php:20 ../../boot.php:938
msgid "Requested profile is not available." msgid "Requested profile is not available."
msgstr "" msgstr ""
@ -3758,30 +3759,30 @@ msgstr ""
msgid "Age: " msgid "Age: "
msgstr "" msgstr ""
#: ../../mod/profiles.php:476 ../../view/theme/diabook-red/theme.php:294 #: ../../mod/profiles.php:476 ../../view/theme/diabook-red/theme.php:298
#: ../../view/theme/diabook-blue/theme.php:293 #: ../../view/theme/diabook-blue/theme.php:297
#: ../../view/theme/diabook/theme.php:303 #: ../../view/theme/diabook/theme.php:308
#: ../../view/theme/diabook-aerith/theme.php:293 #: ../../view/theme/diabook-aerith/theme.php:298
msgid "Edit/Manage Profiles" msgid "Edit/Manage Profiles"
msgstr "" msgstr ""
#: ../../mod/profiles.php:477 ../../boot.php:1008 #: ../../mod/profiles.php:477 ../../boot.php:1047
msgid "Change profile photo" msgid "Change profile photo"
msgstr "" msgstr ""
#: ../../mod/profiles.php:478 ../../boot.php:1009 #: ../../mod/profiles.php:478 ../../boot.php:1048
msgid "Create New Profile" msgid "Create New Profile"
msgstr "" msgstr ""
#: ../../mod/profiles.php:489 ../../boot.php:1019 #: ../../mod/profiles.php:489 ../../boot.php:1058
msgid "Profile Image" msgid "Profile Image"
msgstr "" msgstr ""
#: ../../mod/profiles.php:491 ../../boot.php:1022 #: ../../mod/profiles.php:491 ../../boot.php:1061
msgid "visible to everybody" msgid "visible to everybody"
msgstr "" msgstr ""
#: ../../mod/profiles.php:492 ../../boot.php:1023 #: ../../mod/profiles.php:492 ../../boot.php:1062
msgid "Edit visibility" msgid "Edit visibility"
msgstr "" msgstr ""
@ -3833,10 +3834,10 @@ msgstr ""
msgid "No entries." msgid "No entries."
msgstr "" msgstr ""
#: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:146 #: ../../mod/suggest.php:38 ../../view/theme/diabook-red/theme.php:150
#: ../../view/theme/diabook-blue/theme.php:146 #: ../../view/theme/diabook-blue/theme.php:150
#: ../../view/theme/diabook/theme.php:150 #: ../../view/theme/diabook/theme.php:153
#: ../../view/theme/diabook-aerith/theme.php:146 #: ../../view/theme/diabook-aerith/theme.php:151
#: ../../include/contact_widgets.php:33 #: ../../include/contact_widgets.php:33
msgid "Friend Suggestions" msgid "Friend Suggestions"
msgstr "" msgstr ""
@ -3851,10 +3852,10 @@ msgstr ""
msgid "Ignore/Hide" msgid "Ignore/Hide"
msgstr "" msgstr ""
#: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:144 #: ../../mod/directory.php:47 ../../view/theme/diabook-red/theme.php:148
#: ../../view/theme/diabook-blue/theme.php:144 #: ../../view/theme/diabook-blue/theme.php:148
#: ../../view/theme/diabook/theme.php:148 #: ../../view/theme/diabook/theme.php:151
#: ../../view/theme/diabook-aerith/theme.php:144 #: ../../view/theme/diabook-aerith/theme.php:149
msgid "Global Directory" msgid "Global Directory"
msgstr "" msgstr ""
@ -4040,71 +4041,71 @@ msgstr ""
msgid "Connection accepted at %s" msgid "Connection accepted at %s"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:462 #: ../../addon/facebook/facebook.php:466
msgid "Facebook disabled" msgid "Facebook disabled"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:467 #: ../../addon/facebook/facebook.php:471
msgid "Updating contacts" msgid "Updating contacts"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:488 #: ../../addon/facebook/facebook.php:492
msgid "Facebook API key is missing." msgid "Facebook API key is missing."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:495 #: ../../addon/facebook/facebook.php:499
msgid "Facebook Connect" msgid "Facebook Connect"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:501 #: ../../addon/facebook/facebook.php:505
msgid "Install Facebook connector for this account." msgid "Install Facebook connector for this account."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:508 #: ../../addon/facebook/facebook.php:512
msgid "Remove Facebook connector" msgid "Remove Facebook connector"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:513 #: ../../addon/facebook/facebook.php:517
msgid "" msgid ""
"Re-authenticate [This is necessary whenever your Facebook password is " "Re-authenticate [This is necessary whenever your Facebook password is "
"changed.]" "changed.]"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:520 #: ../../addon/facebook/facebook.php:524
msgid "Post to Facebook by default" msgid "Post to Facebook by default"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:524 #: ../../addon/facebook/facebook.php:528
msgid "Link all your Facebook friends and conversations on this website" msgid "Link all your Facebook friends and conversations on this website"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:526 #: ../../addon/facebook/facebook.php:530
msgid "" msgid ""
"Facebook conversations consist of your <em>profile wall</em> and your friend " "Facebook conversations consist of your <em>profile wall</em> and your friend "
"<em>stream</em>." "<em>stream</em>."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:527 #: ../../addon/facebook/facebook.php:531
msgid "On this website, your Facebook friend stream is only visible to you." msgid "On this website, your Facebook friend stream is only visible to you."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:528 #: ../../addon/facebook/facebook.php:532
msgid "" msgid ""
"The following settings determine the privacy of your Facebook profile wall " "The following settings determine the privacy of your Facebook profile wall "
"on this website." "on this website."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:532 #: ../../addon/facebook/facebook.php:536
msgid "" msgid ""
"On this website your Facebook profile wall conversations will only be " "On this website your Facebook profile wall conversations will only be "
"visible to you" "visible to you"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:537 #: ../../addon/facebook/facebook.php:541
msgid "Do not import your Facebook profile wall conversations" msgid "Do not import your Facebook profile wall conversations"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:539 #: ../../addon/facebook/facebook.php:543
msgid "" msgid ""
"If you choose to link conversations and leave both of these boxes unchecked, " "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 " "your Facebook profile wall will be merged with your profile wall on this "
@ -4112,114 +4113,114 @@ msgid ""
"who may see the conversations." "who may see the conversations."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:544 #: ../../addon/facebook/facebook.php:548
msgid "Comma separated applications to ignore" msgid "Comma separated applications to ignore"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:615 #: ../../addon/facebook/facebook.php:619
msgid "Problems with Facebook Real-Time Updates" msgid "Problems with Facebook Real-Time Updates"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:639 #: ../../addon/facebook/facebook.php:643
#: ../../include/contact_selectors.php:81 #: ../../include/contact_selectors.php:81
msgid "Facebook" msgid "Facebook"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:640 #: ../../addon/facebook/facebook.php:644
msgid "Facebook Connector Settings" msgid "Facebook Connector Settings"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:649 #: ../../addon/facebook/facebook.php:653
msgid "Facebook API Key" msgid "Facebook API Key"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:658 #: ../../addon/facebook/facebook.php:662
msgid "" msgid ""
"Error: it appears that you have specified the App-ID and -Secret in your ." "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 " "htconfig.php file. As long as they are specified there, they cannot be set "
"using this form.<br><br>" "using this form.<br><br>"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:663 #: ../../addon/facebook/facebook.php:667
msgid "" msgid ""
"Error: the given API Key seems to be incorrect (the application access token " "Error: the given API Key seems to be incorrect (the application access token "
"could not be retrieved)." "could not be retrieved)."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:665 #: ../../addon/facebook/facebook.php:669
msgid "The given API Key seems to work correctly." msgid "The given API Key seems to work correctly."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:667 #: ../../addon/facebook/facebook.php:671
msgid "" msgid ""
"The correctness of the API Key could not be detected. Somthing strange's " "The correctness of the API Key could not be detected. Somthing strange's "
"going on." "going on."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:670 #: ../../addon/facebook/facebook.php:674
msgid "App-ID / API-Key" msgid "App-ID / API-Key"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:671 #: ../../addon/facebook/facebook.php:675
msgid "Application secret" msgid "Application secret"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:672 #: ../../addon/facebook/facebook.php:676
#, php-format #, php-format
msgid "Polling Interval (min. %1$s minutes)" msgid "Polling Interval (min. %1$s minutes)"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:676 #: ../../addon/facebook/facebook.php:680
msgid "Real-Time Updates" msgid "Real-Time Updates"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:680 #: ../../addon/facebook/facebook.php:684
msgid "Real-Time Updates are activated." msgid "Real-Time Updates are activated."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:681 #: ../../addon/facebook/facebook.php:685
msgid "Deactivate Real-Time Updates" msgid "Deactivate Real-Time Updates"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:683 #: ../../addon/facebook/facebook.php:687
msgid "Real-Time Updates not activated." msgid "Real-Time Updates not activated."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:683 #: ../../addon/facebook/facebook.php:687
msgid "Activate Real-Time Updates" msgid "Activate Real-Time Updates"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:697 #: ../../addon/facebook/facebook.php:701
msgid "The new values have been saved." msgid "The new values have been saved."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:716 #: ../../addon/facebook/facebook.php:720
msgid "Post to Facebook" msgid "Post to Facebook"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:808 #: ../../addon/facebook/facebook.php:812
msgid "" msgid ""
"Post to Facebook cancelled because of multi-network access permission " "Post to Facebook cancelled because of multi-network access permission "
"conflict." "conflict."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:1026 #: ../../addon/facebook/facebook.php:1030
msgid "View on Friendica" msgid "View on Friendica"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:1051 #: ../../addon/facebook/facebook.php:1055
msgid "Facebook post failed. Queued for retry." msgid "Facebook post failed. Queued for retry."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:1087 #: ../../addon/facebook/facebook.php:1091
msgid "Your Facebook connection became invalid. Please Re-authenticate." msgid "Your Facebook connection became invalid. Please Re-authenticate."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:1088 #: ../../addon/facebook/facebook.php:1092
msgid "Facebook connection became invalid" msgid "Facebook connection became invalid"
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:1089 #: ../../addon/facebook/facebook.php:1093
#, php-format #, php-format
msgid "" msgid ""
"Hi %1$s,\n" "Hi %1$s,\n"
@ -4229,11 +4230,6 @@ msgid ""
"connection again, you have to %3$sre-authenticate the Facebook-connector%4$s." "connection again, you have to %3$sre-authenticate the Facebook-connector%4$s."
msgstr "" msgstr ""
#: ../../addon/facebook/facebook.php:1214
#: ../../addon/facebook/facebook.php:1223 ../../include/bb2diaspora.php:102
msgid "link"
msgstr ""
#: ../../addon/widgets/widget_like.php:58 #: ../../addon/widgets/widget_like.php:58
#, php-format #, php-format
msgid "%d person likes this" msgid "%d person likes this"
@ -4351,11 +4347,19 @@ msgstr ""
msgid "Forums" msgid "Forums"
msgstr "" msgstr ""
#: ../../addon/planets/planets.php:172
msgid "Planets Settings"
msgstr ""
#: ../../addon/planets/planets.php:174
msgid "Enable Planets Plugin"
msgstr ""
#: ../../addon/communityhome/communityhome.php:28 #: ../../addon/communityhome/communityhome.php:28
#: ../../addon/communityhome/communityhome.php:34 #: ../../addon/communityhome/communityhome.php:34
#: ../../addon/communityhome/twillingham/communityhome.php:28 #: ../../addon/communityhome/twillingham/communityhome.php:28
#: ../../addon/communityhome/twillingham/communityhome.php:34 #: ../../addon/communityhome/twillingham/communityhome.php:34
#: ../../include/nav.php:64 ../../boot.php:766 #: ../../include/nav.php:64 ../../boot.php:795
msgid "Login" msgid "Login"
msgstr "" msgstr ""
@ -4383,10 +4387,10 @@ msgid "Latest likes"
msgstr "" msgstr ""
#: ../../addon/communityhome/communityhome.php:155 #: ../../addon/communityhome/communityhome.php:155
#: ../../view/theme/diabook-red/theme.php:74 #: ../../view/theme/diabook-red/theme.php:78
#: ../../view/theme/diabook-blue/theme.php:74 #: ../../view/theme/diabook-blue/theme.php:78
#: ../../view/theme/diabook/theme.php:78 #: ../../view/theme/diabook/theme.php:81
#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1295 #: ../../view/theme/diabook-aerith/theme.php:79 ../../include/text.php:1295
#: ../../include/conversation.php:45 ../../include/conversation.php:118 #: ../../include/conversation.php:45 ../../include/conversation.php:118
msgid "event" msgid "event"
msgstr "" msgstr ""
@ -4538,7 +4542,7 @@ msgid "Post to Drupal by default"
msgstr "" msgstr ""
#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:190 #: ../../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" msgid "Post from Friendica"
msgstr "" msgstr ""
@ -4594,41 +4598,69 @@ msgstr ""
msgid "URL to embed:" msgid "URL to embed:"
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:25 #: ../../addon/impressum/impressum.php:34
msgid "Impressum" msgid "Impressum"
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:38 #: ../../addon/impressum/impressum.php:47
#: ../../addon/impressum/impressum.php:40 #: ../../addon/impressum/impressum.php:49
#: ../../addon/impressum/impressum.php:70 #: ../../addon/impressum/impressum.php:81
msgid "Site Owner" msgid "Site Owner"
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:38 #: ../../addon/impressum/impressum.php:47
#: ../../addon/impressum/impressum.php:74 #: ../../addon/impressum/impressum.php:85
msgid "Email Address" msgid "Email Address"
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:43 #: ../../addon/impressum/impressum.php:52
#: ../../addon/impressum/impressum.php:72 #: ../../addon/impressum/impressum.php:83
msgid "Postal Address" msgid "Postal Address"
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:49 #: ../../addon/impressum/impressum.php:58
msgid "" msgid ""
"The impressum addon needs to be configured!<br />Please add at least the " "The impressum addon needs to be configured!<br />Please add at least the "
"<tt>owner</tt> variable to your config file. For other variables please " "<tt>owner</tt> variable to your config file. For other variables please "
"refer to the README file of the addon." "refer to the README file of the addon."
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:71 #: ../../addon/impressum/impressum.php:81
msgid "The page operators name."
msgstr ""
#: ../../addon/impressum/impressum.php:82
msgid "Site Owners Profile" msgid "Site Owners Profile"
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:73 #: ../../addon/impressum/impressum.php:82
msgid "Profile address of the operator."
msgstr ""
#: ../../addon/impressum/impressum.php:83
msgid "How to contact the operator via snail mail."
msgstr ""
#: ../../addon/impressum/impressum.php:84
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: ../../addon/impressum/impressum.php:84
msgid "Additional notes that are displayed beneath the contact information."
msgstr ""
#: ../../addon/impressum/impressum.php:85
msgid "How to contact the operator via email. (will be displayed obfuscated)"
msgstr ""
#: ../../addon/impressum/impressum.php:86
msgid "Footer note"
msgstr ""
#: ../../addon/impressum/impressum.php:86
msgid "Text for the footer."
msgstr ""
#: ../../addon/buglink/buglink.php:15 #: ../../addon/buglink/buglink.php:15
msgid "Report Bug" msgid "Report Bug"
msgstr "" msgstr ""
@ -4879,7 +4911,7 @@ msgstr ""
msgid "Clear OAuth configuration" msgid "Clear OAuth configuration"
msgstr "" msgstr ""
#: ../../addon/statusnet/statusnet.php:539 #: ../../addon/statusnet/statusnet.php:545
msgid "API URL" msgid "API URL"
msgstr "" msgstr ""
@ -4982,11 +5014,11 @@ msgstr ""
msgid "Cutting posts after how much characters" msgid "Cutting posts after how much characters"
msgstr "" msgstr ""
#: ../../addon/showmore/showmore.php:64 #: ../../addon/showmore/showmore.php:65
msgid "Show More Settings saved." msgid "Show More Settings saved."
msgstr "" msgstr ""
#: ../../addon/showmore/showmore.php:86 ../../include/conversation.php:466 #: ../../addon/showmore/showmore.php:87 ../../include/conversation.php:466
#: ../../boot.php:495 #: ../../boot.php:495
msgid "show more" msgid "show more"
msgstr "" msgstr ""
@ -5089,11 +5121,11 @@ msgstr ""
msgid "Send #tag links to Twitter" msgid "Send #tag links to Twitter"
msgstr "" msgstr ""
#: ../../addon/twitter/twitter.php:371 #: ../../addon/twitter/twitter.php:377
msgid "Consumer key" msgid "Consumer key"
msgstr "" msgstr ""
#: ../../addon/twitter/twitter.php:372 #: ../../addon/twitter/twitter.php:378
msgid "Consumer secret" msgid "Consumer secret"
msgstr "" msgstr ""
@ -5105,6 +5137,34 @@ msgstr ""
msgid "Popular Channels" msgid "Popular Channels"
msgstr "" 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 #: ../../addon/posterous/posterous.php:36
msgid "Post to Posterous" msgid "Post to Posterous"
msgstr "" msgstr ""
@ -5129,159 +5189,159 @@ msgstr ""
msgid "Post to Posterous by default" msgid "Post to Posterous by default"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:23 #: ../../view/theme/diabook-red/theme.php:27
#: ../../view/theme/diabook-blue/theme.php:23 #: ../../view/theme/diabook-blue/theme.php:27
#: ../../view/theme/diabook/theme.php:27 #: ../../view/theme/diabook/theme.php:30
#: ../../view/theme/dispy-dark/theme.php:116 #: ../../view/theme/dispy-dark/theme.php:120
#: ../../view/theme/diabook-aerith/theme.php:23 #: ../../view/theme/diabook-aerith/theme.php:28
msgid "Last users" msgid "Last users"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:52 #: ../../view/theme/diabook-red/theme.php:56
#: ../../view/theme/diabook-blue/theme.php:52 #: ../../view/theme/diabook-blue/theme.php:56
#: ../../view/theme/diabook/theme.php:56 #: ../../view/theme/diabook/theme.php:59
#: ../../view/theme/diabook-aerith/theme.php:52 #: ../../view/theme/diabook-aerith/theme.php:57
msgid "Last likes" msgid "Last likes"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:97 #: ../../view/theme/diabook-red/theme.php:101
#: ../../view/theme/diabook-blue/theme.php:97 #: ../../view/theme/diabook-blue/theme.php:101
#: ../../view/theme/diabook/theme.php:101 #: ../../view/theme/diabook/theme.php:104
#: ../../view/theme/diabook-aerith/theme.php:97 #: ../../view/theme/diabook-aerith/theme.php:102
msgid "Last photos" msgid "Last photos"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:142 #: ../../view/theme/diabook-red/theme.php:146
#: ../../view/theme/diabook-blue/theme.php:142 #: ../../view/theme/diabook-blue/theme.php:146
#: ../../view/theme/diabook/theme.php:146
#: ../../view/theme/diabook-aerith/theme.php:142
msgid "Find Friends"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:143
#: ../../view/theme/diabook-blue/theme.php:143
#: ../../view/theme/diabook/theme.php:147
#: ../../view/theme/diabook-aerith/theme.php:143
msgid "Local Directory"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:145
#: ../../view/theme/diabook-blue/theme.php:145
#: ../../view/theme/diabook/theme.php:149 #: ../../view/theme/diabook/theme.php:149
#: ../../view/theme/diabook-aerith/theme.php:145 #: ../../view/theme/diabook-aerith/theme.php:147
#: ../../include/contact_widgets.php:34 msgid "Find Friends"
msgid "Similar Interests"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:147 #: ../../view/theme/diabook-red/theme.php:147
#: ../../view/theme/diabook-blue/theme.php:147 #: ../../view/theme/diabook-blue/theme.php:147
#: ../../view/theme/diabook/theme.php:151 #: ../../view/theme/diabook/theme.php:150
#: ../../view/theme/diabook-aerith/theme.php:147 #: ../../view/theme/diabook-aerith/theme.php:148
msgid "Local Directory"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:149
#: ../../view/theme/diabook-blue/theme.php:149
#: ../../view/theme/diabook/theme.php:152
#: ../../view/theme/diabook-aerith/theme.php:150
#: ../../include/contact_widgets.php:34
msgid "Similar Interests"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:151
#: ../../view/theme/diabook-blue/theme.php:151
#: ../../view/theme/diabook/theme.php:154
#: ../../view/theme/diabook-aerith/theme.php:152
#: ../../include/contact_widgets.php:35 #: ../../include/contact_widgets.php:35
msgid "Invite Friends" msgid "Invite Friends"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:162 #: ../../view/theme/diabook-red/theme.php:166
#: ../../view/theme/diabook-red/theme.php:243 #: ../../view/theme/diabook-red/theme.php:247
#: ../../view/theme/diabook-blue/theme.php:162 #: ../../view/theme/diabook-blue/theme.php:166
#: ../../view/theme/diabook-blue/theme.php:243 #: ../../view/theme/diabook-blue/theme.php:247
#: ../../view/theme/diabook/theme.php:167 #: ../../view/theme/diabook/theme.php:170
#: ../../view/theme/diabook/theme.php:251 #: ../../view/theme/diabook/theme.php:254
#: ../../view/theme/diabook-aerith/theme.php:162 #: ../../view/theme/diabook-aerith/theme.php:167
#: ../../view/theme/diabook-aerith/theme.php:243 #: ../../view/theme/diabook-aerith/theme.php:248
msgid "Community Pages" msgid "Community Pages"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:195 #: ../../view/theme/diabook-red/theme.php:199
#: ../../view/theme/diabook-blue/theme.php:195 #: ../../view/theme/diabook-blue/theme.php:199
#: ../../view/theme/diabook/theme.php:200 #: ../../view/theme/diabook/theme.php:203
#: ../../view/theme/diabook-aerith/theme.php:195 #: ../../view/theme/diabook-aerith/theme.php:200
msgid "Help or @NewHere ?" msgid "Help or @NewHere ?"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:201 #: ../../view/theme/diabook-red/theme.php:205
#: ../../view/theme/diabook-blue/theme.php:201 #: ../../view/theme/diabook-blue/theme.php:205
#: ../../view/theme/diabook/theme.php:206 #: ../../view/theme/diabook/theme.php:209
#: ../../view/theme/diabook-aerith/theme.php:201 #: ../../view/theme/diabook-aerith/theme.php:206
msgid "Connect Services" msgid "Connect Services"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:207 #: ../../view/theme/diabook-red/theme.php:211
#: ../../view/theme/diabook-blue/theme.php:207 #: ../../view/theme/diabook-blue/theme.php:211
#: ../../view/theme/diabook/theme.php:212 #: ../../view/theme/diabook/theme.php:215
#: ../../view/theme/diabook-aerith/theme.php:207 #: ../../view/theme/diabook-aerith/theme.php:212
msgid "PostIt to Friendica" msgid "PostIt to Friendica"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:207 #: ../../view/theme/diabook-red/theme.php:211
#: ../../view/theme/diabook-blue/theme.php:207 #: ../../view/theme/diabook-blue/theme.php:211
#: ../../view/theme/diabook/theme.php:212 #: ../../view/theme/diabook/theme.php:215
#: ../../view/theme/diabook-aerith/theme.php:207 #: ../../view/theme/diabook-aerith/theme.php:212
msgid "Post to Friendica" msgid "Post to Friendica"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:208 #: ../../view/theme/diabook-red/theme.php:212
#: ../../view/theme/diabook-blue/theme.php:208 #: ../../view/theme/diabook-blue/theme.php:212
#: ../../view/theme/diabook/theme.php:213 #: ../../view/theme/diabook/theme.php:216
#: ../../view/theme/diabook-aerith/theme.php:208 #: ../../view/theme/diabook-aerith/theme.php:213
msgid " from anywhere by bookmarking this Link." msgid " from anywhere by bookmarking this Link."
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:236
#: ../../view/theme/diabook-blue/theme.php:236
#: ../../view/theme/diabook/theme.php:244
#: ../../view/theme/diabook-aerith/theme.php:236 ../../include/nav.php:49
#: ../../include/nav.php:115
msgid "Your posts and conversations"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:237
#: ../../view/theme/diabook-blue/theme.php:237
#: ../../view/theme/diabook/theme.php:245
#: ../../view/theme/diabook-aerith/theme.php:237 ../../include/nav.php:50
msgid "Your profile page"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:238
#: ../../view/theme/diabook-blue/theme.php:238
#: ../../view/theme/diabook/theme.php:246
#: ../../view/theme/diabook-aerith/theme.php:238
msgid "Your contacts"
msgstr ""
#: ../../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:239 ../../include/nav.php:51
#: ../../boot.php:1413
msgid "Photos"
msgstr ""
#: ../../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:239 ../../include/nav.php:51
msgid "Your photos"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:240 #: ../../view/theme/diabook-red/theme.php:240
#: ../../view/theme/diabook-blue/theme.php:240 #: ../../view/theme/diabook-blue/theme.php:240
#: ../../view/theme/diabook/theme.php:247
#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:49
#: ../../include/nav.php:115
msgid "Your posts and conversations"
msgstr ""
#: ../../view/theme/diabook-red/theme.php:241
#: ../../view/theme/diabook-blue/theme.php:241
#: ../../view/theme/diabook/theme.php:248 #: ../../view/theme/diabook/theme.php:248
#: ../../view/theme/diabook-aerith/theme.php:240 ../../include/nav.php:52 #: ../../view/theme/diabook-aerith/theme.php:242 ../../include/nav.php:50
msgid "Your profile page"
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:1461
msgid "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"
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" msgid "Your events"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:241 #: ../../view/theme/diabook-red/theme.php:245
#: ../../view/theme/diabook-blue/theme.php:241 #: ../../view/theme/diabook-blue/theme.php:245
#: ../../view/theme/diabook/theme.php:249 #: ../../view/theme/diabook/theme.php:252
#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:53 #: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53
msgid "Personal notes" msgid "Personal notes"
msgstr "" msgstr ""
#: ../../view/theme/diabook-red/theme.php:241 #: ../../view/theme/diabook-red/theme.php:245
#: ../../view/theme/diabook-blue/theme.php:241 #: ../../view/theme/diabook-blue/theme.php:245
#: ../../view/theme/diabook/theme.php:249 #: ../../view/theme/diabook/theme.php:252
#: ../../view/theme/diabook-aerith/theme.php:241 ../../include/nav.php:53 #: ../../view/theme/diabook-aerith/theme.php:246 ../../include/nav.php:53
msgid "Your personal photos" msgid "Your personal photos"
msgstr "" msgstr ""
@ -5305,7 +5365,7 @@ msgstr ""
msgid "Color scheme" msgid "Color scheme"
msgstr "" msgstr ""
#: ../../include/profile_advanced.php:17 ../../boot.php:1044 #: ../../include/profile_advanced.php:17 ../../boot.php:1083
msgid "Gender:" msgid "Gender:"
msgstr "" msgstr ""
@ -5317,7 +5377,7 @@ msgstr ""
msgid "j F" msgid "j F"
msgstr "" msgstr ""
#: ../../include/profile_advanced.php:30 ../../include/datetime.php:438 #: ../../include/profile_advanced.php:30 ../../include/datetime.php:448
#: ../../include/items.php:1392 #: ../../include/items.php:1392
msgid "Birthday:" msgid "Birthday:"
msgstr "" msgstr ""
@ -5326,11 +5386,11 @@ msgstr ""
msgid "Age:" msgid "Age:"
msgstr "" msgstr ""
#: ../../include/profile_advanced.php:37 ../../boot.php:1047 #: ../../include/profile_advanced.php:37 ../../boot.php:1086
msgid "Status:" msgid "Status:"
msgstr "" msgstr ""
#: ../../include/profile_advanced.php:45 ../../boot.php:1049 #: ../../include/profile_advanced.php:45 ../../boot.php:1088
msgid "Homepage:" msgid "Homepage:"
msgstr "" msgstr ""
@ -5890,7 +5950,7 @@ msgstr ""
msgid "Create a new group" msgid "Create a new group"
msgstr "" msgstr ""
#: ../../include/nav.php:46 ../../boot.php:765 #: ../../include/nav.php:46 ../../boot.php:794
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
@ -5898,7 +5958,7 @@ msgstr ""
msgid "End this session" msgid "End this session"
msgstr "" msgstr ""
#: ../../include/nav.php:49 ../../boot.php:1403 #: ../../include/nav.php:49 ../../boot.php:1451
msgid "Status" msgid "Status"
msgstr "" msgstr ""
@ -5978,11 +6038,11 @@ msgstr ""
msgid "Manage other pages" msgid "Manage other pages"
msgstr "" msgstr ""
#: ../../include/nav.php:138 ../../boot.php:1002 #: ../../include/nav.php:138 ../../boot.php:1041
msgid "Profiles" msgid "Profiles"
msgstr "" msgstr ""
#: ../../include/nav.php:138 ../../boot.php:1002 #: ../../include/nav.php:138 ../../boot.php:1041
msgid "Manage/edit profiles" msgid "Manage/edit profiles"
msgstr "" msgstr ""
@ -6075,76 +6135,76 @@ msgstr ""
msgid "Miscellaneous" msgid "Miscellaneous"
msgstr "" msgstr ""
#: ../../include/datetime.php:121 ../../include/datetime.php:253 #: ../../include/datetime.php:131 ../../include/datetime.php:263
msgid "year" msgid "year"
msgstr "" msgstr ""
#: ../../include/datetime.php:126 ../../include/datetime.php:254 #: ../../include/datetime.php:136 ../../include/datetime.php:264
msgid "month" msgid "month"
msgstr "" msgstr ""
#: ../../include/datetime.php:131 ../../include/datetime.php:256 #: ../../include/datetime.php:141 ../../include/datetime.php:266
msgid "day" msgid "day"
msgstr "" msgstr ""
#: ../../include/datetime.php:244 #: ../../include/datetime.php:254
msgid "never" msgid "never"
msgstr "" msgstr ""
#: ../../include/datetime.php:250 #: ../../include/datetime.php:260
msgid "less than a second ago" msgid "less than a second ago"
msgstr "" msgstr ""
#: ../../include/datetime.php:253 #: ../../include/datetime.php:263
msgid "years" msgid "years"
msgstr "" msgstr ""
#: ../../include/datetime.php:254 #: ../../include/datetime.php:264
msgid "months" msgid "months"
msgstr "" msgstr ""
#: ../../include/datetime.php:255 #: ../../include/datetime.php:265
msgid "week" msgid "week"
msgstr "" msgstr ""
#: ../../include/datetime.php:255 #: ../../include/datetime.php:265
msgid "weeks" msgid "weeks"
msgstr "" msgstr ""
#: ../../include/datetime.php:256 #: ../../include/datetime.php:266
msgid "days" msgid "days"
msgstr "" msgstr ""
#: ../../include/datetime.php:257 #: ../../include/datetime.php:267
msgid "hour" msgid "hour"
msgstr "" msgstr ""
#: ../../include/datetime.php:257 #: ../../include/datetime.php:267
msgid "hours" msgid "hours"
msgstr "" msgstr ""
#: ../../include/datetime.php:258 #: ../../include/datetime.php:268
msgid "minute" msgid "minute"
msgstr "" msgstr ""
#: ../../include/datetime.php:258 #: ../../include/datetime.php:268
msgid "minutes" msgid "minutes"
msgstr "" msgstr ""
#: ../../include/datetime.php:259 #: ../../include/datetime.php:269
msgid "second" msgid "second"
msgstr "" msgstr ""
#: ../../include/datetime.php:259 #: ../../include/datetime.php:269
msgid "seconds" msgid "seconds"
msgstr "" msgstr ""
#: ../../include/datetime.php:267 #: ../../include/datetime.php:277
#, php-format #, php-format
msgid "%1$d %2$s ago" msgid "%1$d %2$s ago"
msgstr "" msgstr ""
#: ../../include/poller.php:533 #: ../../include/poller.php:543
msgid "From: " msgid "From: "
msgstr "" msgstr ""
@ -6152,15 +6212,31 @@ msgstr ""
msgid "$1 wrote:" msgid "$1 wrote:"
msgstr "" msgstr ""
#: ../../include/bbcode.php:237 ../../include/bbcode.php:303 #: ../../include/bbcode.php:238 ../../include/bbcode.php:304
msgid "Image/photo" msgid "Image/photo"
msgstr "" msgstr ""
#: ../../include/dba.php:41 #: ../../include/dba.php:41
msgid "Server name of user name are missing. "
msgstr ""
#: ../../include/dba.php:50
#, php-format #, php-format
msgid "Cannot locate DNS info for database server '%s'" msgid "Cannot locate DNS info for database server '%s'"
msgstr "" msgstr ""
#: ../../include/dba.php:84
msgid "There is no db connection. "
msgstr ""
#: ../../include/dba.php:107 ../../include/dba.php:109
msgid " results"
msgstr ""
#: ../../include/dba.php:113
msgid "SQL returned "
msgstr ""
#: ../../include/message.php:15 ../../include/message.php:171 #: ../../include/message.php:15 ../../include/message.php:171
msgid "[no subject]" msgid "[no subject]"
msgstr "" msgstr ""
@ -6378,6 +6454,10 @@ msgstr ""
msgid "image/photo" msgid "image/photo"
msgstr "" msgstr ""
#: ../../include/bb2diaspora.php:102
msgid "link"
msgstr ""
#: ../../include/security.php:21 #: ../../include/security.php:21
msgid "Welcome " msgid "Welcome "
msgstr "" msgstr ""
@ -6616,62 +6696,67 @@ msgstr ""
msgid "show fewer" msgid "show fewer"
msgstr "" msgstr ""
#: ../../boot.php:744 #: ../../boot.php:676
#, php-format
msgid "Update Error at %s"
msgstr ""
#: ../../boot.php:773
msgid "Create a New Account" msgid "Create a New Account"
msgstr "" msgstr ""
#: ../../boot.php:768 #: ../../boot.php:797
msgid "Nickname or Email address: " msgid "Nickname or Email address: "
msgstr "" msgstr ""
#: ../../boot.php:769 #: ../../boot.php:798
msgid "Password: " msgid "Password: "
msgstr "" msgstr ""
#: ../../boot.php:772 #: ../../boot.php:801
msgid "Or login using OpenID: " msgid "Or login using OpenID: "
msgstr "" msgstr ""
#: ../../boot.php:778 #: ../../boot.php:807
msgid "Forgot your password?" msgid "Forgot your password?"
msgstr "" msgstr ""
#: ../../boot.php:935 #: ../../boot.php:973
msgid "Edit profile" msgid "Edit profile"
msgstr "" msgstr ""
#: ../../boot.php:994 #: ../../boot.php:1033
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: ../../boot.php:1109 ../../boot.php:1180 #: ../../boot.php:1149 ../../boot.php:1221
msgid "g A l F d" msgid "g A l F d"
msgstr "" msgstr ""
#: ../../boot.php:1110 ../../boot.php:1181 #: ../../boot.php:1150 ../../boot.php:1222
msgid "F d" msgid "F d"
msgstr "" msgstr ""
#: ../../boot.php:1135 #: ../../boot.php:1175
msgid "Birthday Reminders" msgid "Birthday Reminders"
msgstr "" msgstr ""
#: ../../boot.php:1136 #: ../../boot.php:1176
msgid "Birthdays this week:" msgid "Birthdays this week:"
msgstr "" msgstr ""
#: ../../boot.php:1159 ../../boot.php:1223 #: ../../boot.php:1199 ../../boot.php:1264
msgid "[today]" msgid "[today]"
msgstr "" msgstr ""
#: ../../boot.php:1204 #: ../../boot.php:1245
msgid "Event Reminders" msgid "Event Reminders"
msgstr "" msgstr ""
#: ../../boot.php:1205 #: ../../boot.php:1246
msgid "Events this week:" msgid "Events this week:"
msgstr "" msgstr ""
#: ../../boot.php:1217 #: ../../boot.php:1258
msgid "[No description]" msgid "[No description]"
msgstr "" msgstr ""

View file

@ -17,7 +17,6 @@
{{ inc field_checkbox.tpl with $field=$no_multi_reg }}{{ endinc }} {{ 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_openid }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_gravatar }}{{ endinc }}
{{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }} {{ inc field_checkbox.tpl with $field=$no_regfullname }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div> <div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

View file

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

View file

@ -16,9 +16,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: friendica\n" "Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: http://bugs.friendica.com/\n" "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
"POT-Creation-Date: 2012-04-05 10:00-0700\n" "POT-Creation-Date: 2012-04-06 10:00-0700\n"
"PO-Revision-Date: 2012-04-06 10:40+0000\n" "PO-Revision-Date: 2012-04-08 23:57+0000\n"
"Last-Translator: bavatar <tobias.diekershoff@gmx.net>\n" "Last-Translator: zottel <transifex@zottel.net>\n"
"Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n" "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -216,7 +216,7 @@ msgstr "l, F j"
msgid "Edit event" msgid "Edit event"
msgstr "Veranstaltung bearbeiten" msgstr "Veranstaltung bearbeiten"
#: ../../mod/events.php:272 ../../include/text.php:1050 #: ../../mod/events.php:272 ../../include/text.php:1053
msgid "link to source" msgid "link to source"
msgstr "Link zum Originalbeitrag" msgstr "Link zum Originalbeitrag"
@ -410,7 +410,7 @@ msgstr "wurde getaggt in einem"
#: ../../view/theme/diabook-red/theme.php:82 #: ../../view/theme/diabook-red/theme.php:82
#: ../../view/theme/diabook-blue/theme.php:82 #: ../../view/theme/diabook-blue/theme.php:82
#: ../../view/theme/diabook/theme.php:86 #: ../../view/theme/diabook/theme.php:86
#: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1294 #: ../../view/theme/diabook-aerith/theme.php:82 ../../include/text.php:1297
#: ../../include/diaspora.php:1654 ../../include/conversation.php:53 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53
#: ../../include/conversation.php:126 #: ../../include/conversation.php:126
msgid "photo" msgid "photo"
@ -2234,7 +2234,7 @@ msgstr "Markierte"
msgid "Shared Links" msgid "Shared Links"
msgstr "Geteilte Links" msgstr "Geteilte Links"
#: ../../mod/network.php:270 #: ../../mod/network.php:274
#, php-format #, php-format
msgid "Warning: This group contains %s member from an insecure network." msgid "Warning: This group contains %s member from an insecure network."
msgid_plural "" msgid_plural ""
@ -2242,31 +2242,31 @@ msgid_plural ""
msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk." msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem unsicheren Netzwerk."
msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken." msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerken."
#: ../../mod/network.php:273 #: ../../mod/network.php:277
msgid "Private messages to this group are at risk of public disclosure." msgid "Private messages to this group are at risk of public disclosure."
msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten." msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten."
#: ../../mod/network.php:318 #: ../../mod/network.php:322
msgid "No such group" msgid "No such group"
msgstr "Es gibt keine solche Gruppe" msgstr "Es gibt keine solche Gruppe"
#: ../../mod/network.php:329 #: ../../mod/network.php:333
msgid "Group is empty" msgid "Group is empty"
msgstr "Gruppe ist leer" msgstr "Gruppe ist leer"
#: ../../mod/network.php:333 #: ../../mod/network.php:337
msgid "Group: " msgid "Group: "
msgstr "Gruppe: " msgstr "Gruppe: "
#: ../../mod/network.php:343 #: ../../mod/network.php:347
msgid "Contact: " msgid "Contact: "
msgstr "Kontakt: " msgstr "Kontakt: "
#: ../../mod/network.php:345 #: ../../mod/network.php:349
msgid "Private messages to this person are at risk of public disclosure." msgid "Private messages to this person are at risk of public disclosure."
msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen." msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."
#: ../../mod/network.php:350 #: ../../mod/network.php:354
msgid "Invalid contact." msgid "Invalid contact."
msgstr "Ungültiger Kontakt." msgstr "Ungültiger Kontakt."
@ -2275,7 +2275,7 @@ msgid "Personal Notes"
msgstr "Persönliche Notizen" msgstr "Persönliche Notizen"
#: ../../mod/notes.php:63 ../../mod/filer.php:30 #: ../../mod/notes.php:63 ../../mod/filer.php:30
#: ../../addon/facebook/facebook.php:673 ../../include/text.php:649 #: ../../addon/facebook/facebook.php:673 ../../include/text.php:652
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
@ -2538,7 +2538,7 @@ msgstr "Alle Kontakte (mit gesichertem Profilzugriff)"
msgid "No contacts." msgid "No contacts."
msgstr "Keine Kontakte." msgstr "Keine Kontakte."
#: ../../mod/viewcontacts.php:76 ../../include/text.php:586 #: ../../mod/viewcontacts.php:76 ../../include/text.php:589
msgid "View Contacts" msgid "View Contacts"
msgstr "Kontakte anzeigen" msgstr "Kontakte anzeigen"
@ -4161,7 +4161,7 @@ msgstr "Fehler: der angegebene API Schlüssel scheint nicht korrekt zu sein (Zug
#: ../../addon/facebook/facebook.php:665 #: ../../addon/facebook/facebook.php:665
msgid "The given API Key seems to work correctly." 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 #: ../../addon/facebook/facebook.php:667
msgid "" msgid ""
@ -4397,7 +4397,7 @@ msgstr "Neueste Favoriten"
#: ../../view/theme/diabook-red/theme.php:74 #: ../../view/theme/diabook-red/theme.php:74
#: ../../view/theme/diabook-blue/theme.php:74 #: ../../view/theme/diabook-blue/theme.php:74
#: ../../view/theme/diabook/theme.php:78 #: ../../view/theme/diabook/theme.php:78
#: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1292 #: ../../view/theme/diabook-aerith/theme.php:74 ../../include/text.php:1295
#: ../../include/conversation.php:45 ../../include/conversation.php:118 #: ../../include/conversation.php:45 ../../include/conversation.php:118
msgid "event" msgid "event"
msgstr "Veranstaltung" msgstr "Veranstaltung"
@ -5223,21 +5223,21 @@ msgstr "Verbinde Dienste"
#: ../../view/theme/diabook/theme.php:212 #: ../../view/theme/diabook/theme.php:212
#: ../../view/theme/diabook-aerith/theme.php:207 #: ../../view/theme/diabook-aerith/theme.php:207
msgid "PostIt to Friendica" msgid "PostIt to Friendica"
msgstr "PostIt nach Friendica" msgstr "Bei Friendica posten"
#: ../../view/theme/diabook-red/theme.php:207 #: ../../view/theme/diabook-red/theme.php:207
#: ../../view/theme/diabook-blue/theme.php:207 #: ../../view/theme/diabook-blue/theme.php:207
#: ../../view/theme/diabook/theme.php:212 #: ../../view/theme/diabook/theme.php:212
#: ../../view/theme/diabook-aerith/theme.php:207 #: ../../view/theme/diabook-aerith/theme.php:207
msgid "Post to Friendica" msgid "Post to Friendica"
msgstr "Bei Friendica veröffentlichen" msgstr "Wenn du diesen Link"
#: ../../view/theme/diabook-red/theme.php:208 #: ../../view/theme/diabook-red/theme.php:208
#: ../../view/theme/diabook-blue/theme.php:208 #: ../../view/theme/diabook-blue/theme.php:208
#: ../../view/theme/diabook/theme.php:213 #: ../../view/theme/diabook/theme.php:213
#: ../../view/theme/diabook-aerith/theme.php:208 #: ../../view/theme/diabook-aerith/theme.php:208
msgid " from anywhere by bookmarking this Link." msgid " from anywhere by bookmarking this Link."
msgstr " von überall her indem du diesen Link zu deinen Lesezeichen hinzufügst." msgstr "zu deinen Lesezeichen hinzufügst, kannst du von überallher Links bei Friendica veröffentlichen."
#: ../../view/theme/diabook-red/theme.php:236 #: ../../view/theme/diabook-red/theme.php:236
#: ../../view/theme/diabook-blue/theme.php:236 #: ../../view/theme/diabook-blue/theme.php:236
@ -5695,158 +5695,158 @@ msgstr "(kein Betreff)"
msgid "noreply" msgid "noreply"
msgstr "noreply" msgstr "noreply"
#: ../../include/text.php:240 #: ../../include/text.php:243
msgid "prev" msgid "prev"
msgstr "vorige" msgstr "vorige"
#: ../../include/text.php:242 #: ../../include/text.php:245
msgid "first" msgid "first"
msgstr "erste" msgstr "erste"
#: ../../include/text.php:271 #: ../../include/text.php:274
msgid "last" msgid "last"
msgstr "letzte" msgstr "letzte"
#: ../../include/text.php:274 #: ../../include/text.php:277
msgid "next" msgid "next"
msgstr "nächste" msgstr "nächste"
#: ../../include/text.php:565 #: ../../include/text.php:568
msgid "No contacts" msgid "No contacts"
msgstr "Keine Kontakte" msgstr "Keine Kontakte"
#: ../../include/text.php:574 #: ../../include/text.php:577
#, php-format #, php-format
msgid "%d Contact" msgid "%d Contact"
msgid_plural "%d Contacts" msgid_plural "%d Contacts"
msgstr[0] "%d Kontakt" msgstr[0] "%d Kontakt"
msgstr[1] "%d Kontakte" msgstr[1] "%d Kontakte"
#: ../../include/text.php:647 ../../include/nav.php:91 #: ../../include/text.php:650 ../../include/nav.php:91
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"
#: ../../include/text.php:828 #: ../../include/text.php:831
msgid "Monday" msgid "Monday"
msgstr "Montag" msgstr "Montag"
#: ../../include/text.php:828 #: ../../include/text.php:831
msgid "Tuesday" msgid "Tuesday"
msgstr "Dienstag" msgstr "Dienstag"
#: ../../include/text.php:828 #: ../../include/text.php:831
msgid "Wednesday" msgid "Wednesday"
msgstr "Mittwoch" msgstr "Mittwoch"
#: ../../include/text.php:828 #: ../../include/text.php:831
msgid "Thursday" msgid "Thursday"
msgstr "Donnerstag" msgstr "Donnerstag"
#: ../../include/text.php:828 #: ../../include/text.php:831
msgid "Friday" msgid "Friday"
msgstr "Freitag" msgstr "Freitag"
#: ../../include/text.php:828 #: ../../include/text.php:831
msgid "Saturday" msgid "Saturday"
msgstr "Samstag" msgstr "Samstag"
#: ../../include/text.php:828 #: ../../include/text.php:831
msgid "Sunday" msgid "Sunday"
msgstr "Sonntag" msgstr "Sonntag"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "January" msgid "January"
msgstr "Januar" msgstr "Januar"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "February" msgid "February"
msgstr "Februar" msgstr "Februar"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "March" msgid "March"
msgstr "März" msgstr "März"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "April" msgid "April"
msgstr "April" msgstr "April"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "May" msgid "May"
msgstr "Mai" msgstr "Mai"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "June" msgid "June"
msgstr "Juni" msgstr "Juni"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "July" msgid "July"
msgstr "Juli" msgstr "Juli"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "August" msgid "August"
msgstr "August" msgstr "August"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "September" msgid "September"
msgstr "September" msgstr "September"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "October" msgid "October"
msgstr "Oktober" msgstr "Oktober"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "November" msgid "November"
msgstr "November" msgstr "November"
#: ../../include/text.php:832 #: ../../include/text.php:835
msgid "December" msgid "December"
msgstr "Dezember" msgstr "Dezember"
#: ../../include/text.php:916 #: ../../include/text.php:919
msgid "bytes" msgid "bytes"
msgstr "Byte" msgstr "Byte"
#: ../../include/text.php:933 #: ../../include/text.php:936
msgid "Categories:" msgid "Categories:"
msgstr "Kategorien:" msgstr "Kategorien:"
#: ../../include/text.php:945 #: ../../include/text.php:948
msgid "remove" msgid "remove"
msgstr "löschen" msgstr "löschen"
#: ../../include/text.php:945 #: ../../include/text.php:948
msgid "[remove]" msgid "[remove]"
msgstr "[löschen]" msgstr "[löschen]"
#: ../../include/text.php:948 #: ../../include/text.php:951
msgid "Filed under:" msgid "Filed under:"
msgstr "Abgelegt unter:" msgstr "Abgelegt unter:"
#: ../../include/text.php:964 ../../include/text.php:976 #: ../../include/text.php:967 ../../include/text.php:979
msgid "Click to open/close" msgid "Click to open/close"
msgstr "Zum öffnen/schließen klicken" msgstr "Zum öffnen/schließen klicken"
#: ../../include/text.php:1068 #: ../../include/text.php:1071
msgid "Select an alternate language" msgid "Select an alternate language"
msgstr "Alternative Sprache auswählen" msgstr "Alternative Sprache auswählen"
#: ../../include/text.php:1080 #: ../../include/text.php:1083
msgid "default" msgid "default"
msgstr "standard" msgstr "standard"
#: ../../include/text.php:1296 #: ../../include/text.php:1299
msgid "activity" msgid "activity"
msgstr "Aktivität" msgstr "Aktivität"
#: ../../include/text.php:1298 #: ../../include/text.php:1301
msgid "comment" msgid "comment"
msgstr "Kommentar" msgstr "Kommentar"
#: ../../include/text.php:1299 #: ../../include/text.php:1302
msgid "post" msgid "post"
msgstr "Beitrag" msgstr "Beitrag"
#: ../../include/text.php:1454 #: ../../include/text.php:1457
msgid "Item filed" msgid "Item filed"
msgstr "Beitrag abgelegt" msgstr "Beitrag abgelegt"
@ -6220,7 +6220,7 @@ msgstr "%s hat dir eine neue private Nachricht auf %s geschrieben."
#: ../../include/enotify.php:42 #: ../../include/enotify.php:42
#, php-format #, php-format
msgid "%s sent you %s." msgid "%s sent you %s."
msgstr "%s hat Dir geschickt %s" msgstr "%s hat Dir %s geschickt"
#: ../../include/enotify.php:42 #: ../../include/enotify.php:42
msgid "a private message" msgid "a private message"
@ -6316,7 +6316,7 @@ msgstr "%s markierte %s"
#: ../../include/enotify.php:121 #: ../../include/enotify.php:121
msgid "your post" msgid "your post"
msgstr "Dein Beitrag" msgstr "Deinen Beitrag"
#: ../../include/enotify.php:130 #: ../../include/enotify.php:130
msgid "[Friendica:Notify] Introduction received" msgid "[Friendica:Notify] Introduction received"

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["{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["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["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["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["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."; $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["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: 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["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["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["App-ID / API-Key"] = "App-ID / API-Key";
$a->strings["Application secret"] = "Anwendungs-Geheimnis"; $a->strings["Application secret"] = "Anwendungs-Geheimnis";
@ -1159,9 +1159,9 @@ $a->strings["Invite Friends"] = "Freunde einladen";
$a->strings["Community Pages"] = "Foren"; $a->strings["Community Pages"] = "Foren";
$a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere"; $a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere";
$a->strings["Connect Services"] = "Verbinde Dienste"; $a->strings["Connect Services"] = "Verbinde Dienste";
$a->strings["PostIt to Friendica"] = "PostIt nach Friendica"; $a->strings["PostIt to Friendica"] = "Bei Friendica posten";
$a->strings["Post to Friendica"] = "Bei Friendica veröffentlichen"; $a->strings["Post to Friendica"] = "Wenn du diesen Link";
$a->strings[" from anywhere by bookmarking this Link."] = " von überall her indem du diesen Link zu deinen Lesezeichen hinzufügst."; $a->strings[" from anywhere by bookmarking this Link."] = "zu deinen Lesezeichen hinzufügst, kannst du von überallher Links bei Friendica veröffentlichen.";
$a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen"; $a->strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen";
$a->strings["Your profile page"] = "Deine Profilseite"; $a->strings["Your profile page"] = "Deine Profilseite";
$a->strings["Your contacts"] = "Deine Kontakte"; $a->strings["Your contacts"] = "Deine Kontakte";
@ -1401,7 +1401,7 @@ $a->strings["%s Administrator"] = "der Administrator von %s";
$a->strings["%s <!item_type!>"] = "%s <!item_type!>"; $a->strings["%s <!item_type!>"] = "%s <!item_type!>";
$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica Meldung] Neue Nachricht erhalten von %s"; $a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica Meldung] Neue Nachricht erhalten von %s";
$a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben."; $a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben.";
$a->strings["%s sent you %s."] = "%s hat Dir geschickt %s"; $a->strings["%s sent you %s."] = "%s hat Dir %s geschickt";
$a->strings["a private message"] = "eine private Nachricht"; $a->strings["a private message"] = "eine private Nachricht";
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten."; $a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten.";
$a->strings["%s's"] = "%s's"; $a->strings["%s's"] = "%s's";
@ -1421,7 +1421,7 @@ $a->strings["tagged you"] = "erwähnte Dich";
$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte Deinen Beitrag"; $a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte Deinen Beitrag";
$a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt"; $a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt";
$a->strings["%s tagged %s"] = "%s markierte %s"; $a->strings["%s tagged %s"] = "%s markierte %s";
$a->strings["your post"] = "Dein Beitrag"; $a->strings["your post"] = "Deinen Beitrag";
$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten"; $a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten";
$a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten"; $a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten";
$a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten."; $a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten.";
@ -1511,3 +1511,4 @@ $a->strings["[today]"] = "[heute]";
$a->strings["Event Reminders"] = "Veranstaltungserinnerungen"; $a->strings["Event Reminders"] = "Veranstaltungserinnerungen";
$a->strings["Events this week:"] = "Veranstaltungen diese Woche"; $a->strings["Events this week:"] = "Veranstaltungen diese Woche";
$a->strings["[No description]"] = "[keine Beschreibung]"; $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

@ -6,6 +6,7 @@
</form> </form>
<div class="side-link" id="side-match-link"><a href="match" >$similar</a></div> <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-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 }} {{ if $inv }}
<div class="side-link" id="side-invite-link" ><a href="invite" >$inv</a></div> <div class="side-link" id="side-invite-link" ><a href="invite" >$inv</a></div>
{{ endif }} {{ endif }}

View file

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

View file

@ -159,7 +159,7 @@ $sexual
$lbl_about $lbl_about
</p> </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>
<div id="about-jot-end"></div> <div id="about-jot-end"></div>

View file

@ -11,6 +11,7 @@ $a->theme_info = array(
'extends' => 'duepuntozero', 'extends' => 'duepuntozero',
); );
function darkzero_NS_init(&$a) {
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -57,3 +58,4 @@ $('.savedsearchterm').hover(
</script> </script>
EOT; EOT;
}

View file

@ -12,6 +12,7 @@ $a->theme_info = array(
'extends' => 'duepuntozero', 'extends' => 'duepuntozero',
); );
function darkzero_init(&$a) {
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -58,3 +59,4 @@ $('.savedsearchterm').hover(
</script> </script>
EOT; EOT;
}

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);" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('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>

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 901 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

View file

@ -0,0 +1,4 @@
<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
<img width='$tw' height='$th' src='$turl' >
<div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
</a>

View file

@ -1298,6 +1298,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: #3465A4; color: #3465A4;
@ -1447,7 +1448,7 @@ transition: all 0.2s ease-in-out;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 0px 0px 80px; margin: 1px 5px 17px 80px;
background-color: #fff; background-color: #fff;
width: 500px; width: 500px;
} }
@ -2173,7 +2174,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -1291,6 +1291,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: #3465A4; color: #3465A4;
@ -1439,7 +1440,7 @@ transition: all 0.2s ease-in-out;
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2162,7 +2163,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -83,6 +83,35 @@
#adminpage .selectall { text-align: right; } #adminpage .selectall { text-align: right; }
/* icons */ /* 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 { .icon.contacts {
background-image: url("../../../view/theme/diabook-aerith/icons/contacts.png");} background-image: url("../../../view/theme/diabook-aerith/icons/contacts.png");}
.icon.notifications { .icon.notifications {
@ -1276,7 +1305,7 @@ body .pageheader{
font-size: 20px; font-size: 20px;
margin-bottom: 20px; margin-bottom: 20px;
margin-top: 0px; margin-top: 0px;
max-width: 575px; max-width: 775px;
} }
.qcomment{ .qcomment{
max-width: 122px; max-width: 122px;
@ -1331,6 +1360,7 @@ body .pageheader{
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 775px; width: 775px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: #3465A4; color: #3465A4;
@ -1592,7 +1622,7 @@ body .pageheader{
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2324,7 +2354,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -3,13 +3,13 @@
/* /*
* Name: Diabook-aerith * Name: Diabook-aerith
* Description: Diabook-aerith : report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu * Description: Diabook-aerith : report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.014) * Version: (Version: 1.016)
* Author: * Author:
*/ */
//print diabook-version for debugging //print diabook-version for debugging
$diabook_version = "Diabook-aerith (Version: 1.014)"; $diabook_version = "Diabook-aerith (Version: 1.016)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version); $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
@ -366,6 +366,35 @@ $a->page['htmlhead'] .= '
</script>'; </script>';
$a->page['htmlhead'] .= '
<script>
$(document).ready(function() {
$("iframe").each(function(){
var ifr_source = $(this).attr("src");
var wmode = "wmode=transparent";
if(ifr_source.indexOf("?") != -1) {
var getQString = ifr_source.split("?");
var oldString = getQString[1];
var newString = getQString[0];
$(this).attr("src",newString+"?"+wmode+"&"+oldString);
}
else $(this).attr("src",ifr_source+"?"+wmode);
});
});
function yt_iframe() {
$("iframe").load(function() {
var ifr_src = $(this).contents().find("body iframe").attr("src");
$("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
});
};
</script>';
if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
$a->page['htmlhead'] .= ' $a->page['htmlhead'] .= '
@ -374,7 +403,12 @@ $a->page['htmlhead'] .= '
$(function() { $(function() {
$(".oembed.photo img").aeImageResize({height: 400, width: 400}); $(".oembed.photo img").aeImageResize({height: 400, width: 400});
}); });
</script>';
if($ccCookie != "8") {
$a->page['htmlhead'] .= '
<script>
$("right_aside").ready(function(){ $("right_aside").ready(function(){
if($.cookie("close_pages") == "1") if($.cookie("close_pages") == "1")
@ -458,9 +492,10 @@ function close_lastlikes(){
document.getElementById( "close_lastlikes" ).style.display = "none"; document.getElementById( "close_lastlikes" ).style.display = "none";
$.cookie("close_lastlikes","1", { expires: 365, path: "/" }); $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
}; };
</script>';}
$a->page['htmlhead'] .= '
<script>
function restore_boxes(){ function restore_boxes(){
$.cookie("close_pages","2", { expires: 365, path: "/" }); $.cookie("close_pages","2", { expires: 365, path: "/" });
$.cookie("close_helpers","2", { expires: 365, path: "/" }); $.cookie("close_helpers","2", { expires: 365, path: "/" });
@ -471,5 +506,38 @@ function restore_boxes(){
$.cookie("close_lastphotos","2", { expires: 365, path: "/" }); $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
$.cookie("close_lastlikes","2", { expires: 365, path: "/" }); $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
alert("Right-hand column was restored. Please refresh your browser"); alert("Right-hand column was restored. Please refresh your browser");
}; }
</script>';} </script>';}
$a->page['htmlhead'] .= '
<script type="text/javascript">
function insertFormatting(BBcode,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == "Kommentar") {
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,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);" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('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>

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

View file

@ -0,0 +1,4 @@
<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
<img width='$tw' height='$th' src='$turl' >
<div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
</a>

View file

@ -1260,6 +1260,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: #1872A2; color: #1872A2;
@ -1409,7 +1410,7 @@ transition: all 0.2s ease-in-out;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 0px 0px 80px; margin: 1px 5px 17px 80px;
background-color: #fff; background-color: #fff;
width: 500px; width: 500px;
} }
@ -2134,7 +2135,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -1258,6 +1258,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: #1872A2; color: #1872A2;
@ -1406,7 +1407,7 @@ transition: all 0.2s ease-in-out;
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2129,7 +2130,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -82,7 +82,35 @@
#adminpage table tr:hover { background-color: #eeeeee; } #adminpage table tr:hover { background-color: #eeeeee; }
#adminpage .selectall { text-align: right; } #adminpage .selectall { text-align: right; }
/* icons */ /* 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 { .icon.contacts {
background-image: url("../../../view/theme/diabook-blue/icons/contacts.png");} background-image: url("../../../view/theme/diabook-blue/icons/contacts.png");}
.icon.notifications { .icon.notifications {
@ -1236,7 +1264,7 @@ body .pageheader{
font-size: 20px; font-size: 20px;
margin-bottom: 20px; margin-bottom: 20px;
margin-top: 0px; margin-top: 0px;
max-width: 575px; max-width: 775px;
} }
.qcomment{ .qcomment{
max-width: 122px; max-width: 122px;
@ -1287,6 +1315,7 @@ body .pageheader{
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 775px; width: 775px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: #1872A2; color: #1872A2;
@ -1550,7 +1579,7 @@ body .pageheader{
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2281,7 +2310,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -3,13 +3,13 @@
/* /*
* Name: Diabook-blue * Name: Diabook-blue
* Description: Diabook-blue: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu * Description: Diabook-blue: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.014) * Version: (Version: 1.016)
* Author: * Author:
*/ */
//print diabook-version for debugging //print diabook-version for debugging
$diabook_version = "Diabook-blue (Version: 1.014)"; $diabook_version = "Diabook-blue (Version: 1.016)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version); $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
//change css on network and profilepages //change css on network and profilepages
@ -366,15 +366,50 @@ $a->page['htmlhead'] .= '
</script>'; </script>';
$a->page['htmlhead'] .= '
<script>
$(document).ready(function() {
$("iframe").each(function(){
var ifr_source = $(this).attr("src");
var wmode = "wmode=transparent";
if(ifr_source.indexOf("?") != -1) {
var getQString = ifr_source.split("?");
var oldString = getQString[1];
var newString = getQString[0];
$(this).attr("src",newString+"?"+wmode+"&"+oldString);
}
else $(this).attr("src",ifr_source+"?"+wmode);
});
});
function yt_iframe() {
$("iframe").load(function() {
var ifr_src = $(this).contents().find("body iframe").attr("src");
$("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
});
};
</script>';
if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
$a->page['htmlhead'] .= ' $a->page['htmlhead'] .= '
<script> <script>
$(function() { $(function() {
$(".oembed.photo img").aeImageResize({height: 400, width: 400}); $(".oembed.photo img").aeImageResize({height: 400, width: 400});
}); });
</script>';
if($ccCookie != "8") {
$a->page['htmlhead'] .= '
<script>
$("right_aside").ready(function(){ $("right_aside").ready(function(){
if($.cookie("close_pages") == "1") if($.cookie("close_pages") == "1")
@ -458,9 +493,10 @@ function close_lastlikes(){
document.getElementById( "close_lastlikes" ).style.display = "none"; document.getElementById( "close_lastlikes" ).style.display = "none";
$.cookie("close_lastlikes","1", { expires: 365, path: "/" }); $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
}; };
</script>';}
$a->page['htmlhead'] .= '
<script>
function restore_boxes(){ function restore_boxes(){
$.cookie("close_pages","2", { expires: 365, path: "/" }); $.cookie("close_pages","2", { expires: 365, path: "/" });
$.cookie("close_helpers","2", { expires: 365, path: "/" }); $.cookie("close_helpers","2", { expires: 365, path: "/" });
@ -471,5 +507,38 @@ function restore_boxes(){
$.cookie("close_lastphotos","2", { expires: 365, path: "/" }); $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
$.cookie("close_lastlikes","2", { expires: 365, path: "/" }); $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
alert("Right-hand column was restored. Please refresh your browser"); alert("Right-hand column was restored. Please refresh your browser");
}; }
</script>';} </script>';}
$a->page['htmlhead'] .= '
<script type="text/javascript">
function insertFormatting(BBcode,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == "Kommentar") {
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,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);" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('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>

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

View file

@ -0,0 +1,4 @@
<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
<img width='$tw' height='$th' src='$turl' >
<div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
</a>

View file

@ -1295,6 +1295,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: red; color: red;
@ -1444,7 +1445,7 @@ transition: all 0.2s ease-in-out;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 0px 0px 80px; margin: 1px 5px 17px 80px;
background-color: #fff; background-color: #fff;
width: 500px; width: 500px;
} }
@ -2171,7 +2172,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -1271,6 +1271,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: red; color: red;
@ -1419,7 +1420,7 @@ transition: all 0.2s ease-in-out;
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2143,7 +2144,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -82,7 +82,35 @@
#adminpage table tr:hover { background-color: #eeeeee; } #adminpage table tr:hover { background-color: #eeeeee; }
#adminpage .selectall { text-align: right; } #adminpage .selectall { text-align: right; }
/* icons */ /* icons */
.icon.bb-url{
background-image: url("../../../view/theme/diabook-red/icons/bb-url.png");
float: right;
margin-top: 2px;}
.icon.quote{
background-image: url("../../../view/theme/diabook-red/icons/quote.png");
float: right;
margin-top: 2px;}
.icon.bold{
background-image: url("../../../view/theme/diabook-red/icons/bold.png");
float: right;
margin-top: 2px;}
.icon.underline{
background-image: url("../../../view/theme/diabook-red/icons/underline.png");
float: right;
margin-top: 2px;}
.icon.italic{
background-image: url("../../../view/theme/diabook-red/icons/italic.png");
float: right;
margin-top: 2px;}
.icon.bb-image{
background-image: url("../../../view/theme/diabook-red/icons/bb-image.png");
float: right;
margin-top: 2px;}
.icon.bb-video{
background-image: url("../../../view/theme/diabook-red/icons/bb-video.png");
float: right;
margin-top: 2px;}
.icon.contacts { .icon.contacts {
background-image: url("../../../view/theme/diabook-red/icons/contacts.png");} background-image: url("../../../view/theme/diabook-red/icons/contacts.png");}
.icon.notifications { .icon.notifications {
@ -1266,7 +1294,7 @@ body .pageheader{
font-size: 20px; font-size: 20px;
margin-bottom: 20px; margin-bottom: 20px;
margin-top: 0px; margin-top: 0px;
max-width: 575px; max-width: 775px;
} }
.qcomment{ .qcomment{
max-width: 122px; max-width: 122px;
@ -1317,6 +1345,7 @@ body .pageheader{
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 775px; width: 775px;
padding-top: 10px;
} }
.tread-wrapper a{ .tread-wrapper a{
color: red; color: red;
@ -1579,7 +1608,7 @@ body .pageheader{
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2310,7 +2339,7 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{

View file

@ -3,13 +3,13 @@
/* /*
* Name: Diabook-red * Name: Diabook-red
* Description: Diabook-red: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu * Description: Diabook-red: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.014) * Version: (Version: 1.016)
* Author: * Author:
*/ */
//print diabook-version for debugging //print diabook-version for debugging
$diabook_version = "Diabook-red (Version: 1.014)"; $diabook_version = "Diabook-red (Version: 1.016)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version); $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
//change css on network and profilepages //change css on network and profilepages
@ -367,15 +367,50 @@ $a->page['htmlhead'] .= '
</script>'; </script>';
$a->page['htmlhead'] .= '
<script>
$(document).ready(function() {
$("iframe").each(function(){
var ifr_source = $(this).attr("src");
var wmode = "wmode=transparent";
if(ifr_source.indexOf("?") != -1) {
var getQString = ifr_source.split("?");
var oldString = getQString[1];
var newString = getQString[0];
$(this).attr("src",newString+"?"+wmode+"&"+oldString);
}
else $(this).attr("src",ifr_source+"?"+wmode);
});
});
function yt_iframe() {
$("iframe").load(function() {
var ifr_src = $(this).contents().find("body iframe").attr("src");
$("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
});
};
</script>';
if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){
$a->page['htmlhead'] .= ' $a->page['htmlhead'] .= '
<script> <script>
$(function() { $(function() {
$(".oembed.photo img").aeImageResize({height: 400, width: 400}); $(".oembed.photo img").aeImageResize({height: 400, width: 400});
}); });
</script>';
if($ccCookie != "8") {
$a->page['htmlhead'] .= '
<script>
$("right_aside").ready(function(){ $("right_aside").ready(function(){
if($.cookie("close_pages") == "1") if($.cookie("close_pages") == "1")
@ -459,9 +494,10 @@ function close_lastlikes(){
document.getElementById( "close_lastlikes" ).style.display = "none"; document.getElementById( "close_lastlikes" ).style.display = "none";
$.cookie("close_lastlikes","1", { expires: 365, path: "/" }); $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
}; };
</script>';}
$a->page['htmlhead'] .= '
<script>
function restore_boxes(){ function restore_boxes(){
$.cookie("close_pages","2", { expires: 365, path: "/" }); $.cookie("close_pages","2", { expires: 365, path: "/" });
$.cookie("close_helpers","2", { expires: 365, path: "/" }); $.cookie("close_helpers","2", { expires: 365, path: "/" });
@ -472,5 +508,38 @@ function restore_boxes(){
$.cookie("close_lastphotos","2", { expires: 365, path: "/" }); $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
$.cookie("close_lastlikes","2", { expires: 365, path: "/" }); $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
alert("Right-hand column was restored. Please refresh your browser"); alert("Right-hand column was restored. Please refresh your browser");
}; }
</script>';} </script>';}
$a->page['htmlhead'] .= '
<script type="text/javascript">
function insertFormatting(BBcode,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == "Kommentar") {
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,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);" onBlur="commentClose(this,$id);" >$comment</textarea>
<a class="icon bb-image" onclick="insertFormatting('img',$id);">img</a>
<a class="icon bb-url" onclick="insertFormatting('url',$id);">url</a>
<a class="icon bb-video" onclick="insertFormatting('video',$id);">video</a>
<a class="icon underline" onclick="insertFormatting('u',$id);">u</a>
<a class="icon italic" onclick="insertFormatting('i',$id);">i</a>
<a class="icon bold" onclick="insertFormatting('b',$id);">b</a>
<a class="icon quote" onclick="insertFormatting('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>

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

After

Width:  |  Height:  |  Size: 773 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 488 B

After

Width:  |  Height:  |  Size: 777 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

After

Width:  |  Height:  |  Size: 926 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

After

Width:  |  Height:  |  Size: 1,001 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

View file

@ -1,4 +1,4 @@
<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); return false;' style='float:left; margin: 1em; position: relative;'> <a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe(); return false;' style='float:left; margin: 1em; position: relative;'>
<img width='$tw' height='$th' src='$turl' > <img width='$tw' height='$th' src='$turl' >
<div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div> <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
</a> </a>

View file

@ -1241,6 +1241,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.wall-item-decor { .wall-item-decor {
position: absolute; position: absolute;
@ -1385,7 +1386,7 @@ transition: all 0.2s ease-in-out;
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2103,7 +2104,6 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{
@ -2549,4 +2549,4 @@ list-style-type: disc;
#photos-upload-newalbum-div { #photos-upload-newalbum-div {
float: left; float: left;
width: 175px; width: 175px;
} }

View file

@ -1235,6 +1235,7 @@ transition: all 0.2s ease-in-out;
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 575px; width: 575px;
padding-top: 10px;
} }
.wall-item-decor { .wall-item-decor {
position: absolute; position: absolute;
@ -1379,7 +1380,7 @@ transition: all 0.2s ease-in-out;
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2100,7 +2101,6 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{
@ -2546,4 +2546,4 @@ list-style-type: disc;
#photos-upload-newalbum-div { #photos-upload-newalbum-div {
float: left; float: left;
width: 175px; width: 175px;
} }

View file

@ -2526,4 +2526,4 @@ list-style-type: disc;
#photos-upload-newalbum-div { #photos-upload-newalbum-div {
float: left; float: left;
width: 175px; width: 175px;
} }

View file

@ -83,6 +83,35 @@
#adminpage .selectall { text-align: right; } #adminpage .selectall { text-align: right; }
/* icons */ /* icons */
.icon.bb-url{
background-image: url("../../../view/theme/diabook/icons/bb-url.png");
float: right;
margin-top: 2px;}
.icon.quote{
background-image: url("../../../view/theme/diabook/icons/quote.png");
float: right;
margin-top: 2px;}
.icon.bold{
background-image: url("../../../view/theme/diabook/icons/bold.png");
float: right;
margin-top: 2px;}
.icon.underline{
background-image: url("../../../view/theme/diabook/icons/underline.png");
float: right;
margin-top: 2px;}
.icon.italic{
background-image: url("../../../view/theme/diabook/icons/italic.png");
float: right;
margin-top: 2px;}
.icon.bb-image{
background-image: url("../../../view/theme/diabook/icons/bb-image.png");
float: right;
margin-top: 2px;}
.icon.bb-video{
background-image: url("../../../view/theme/diabook/icons/bb-video.png");
float: right;
margin-top: 2px;}
.icon.contacts { .icon.contacts {
background-image: url("../../../view/theme/diabook/icons/contacts.png");} background-image: url("../../../view/theme/diabook/icons/contacts.png");}
.icon.notifications { .icon.notifications {
@ -1219,7 +1248,7 @@ body .pageheader{
font-size: 20px; font-size: 20px;
margin-bottom: 20px; margin-bottom: 20px;
margin-top: 0px; margin-top: 0px;
max-width: 575px; max-width: 775px;
} }
.qcomment{ .qcomment{
max-width: 122px; max-width: 122px;
@ -1269,6 +1298,7 @@ body .pageheader{
padding: 5px; padding: 5px;
margin-bottom: 0px; margin-bottom: 0px;
width: 775px; width: 775px;
padding-top: 10px;
} }
.wall-item-decor { .wall-item-decor {
@ -1516,7 +1546,7 @@ body .pageheader{
padding-left: 12px; padding-left: 12px;
} }
.wall-item-comment-wrapper { .wall-item-comment-wrapper {
margin: 1px 5px 1px 80px; margin: 1px 5px 17px 80px;
} }
.wall-item-comment-wrapper .comment-edit-photo { .wall-item-comment-wrapper .comment-edit-photo {
display: none; display: none;
@ -2246,7 +2276,6 @@ blockquote {
color: #777; color: #777;
} }
.oembed { .oembed {
font-size: large;
font-weight: bold; font-weight: bold;
} }
.aprofile dt{ .aprofile dt{
@ -2687,4 +2716,4 @@ list-style-type: disc;
#photos-upload-newalbum-div { #photos-upload-newalbum-div {
float: left; float: left;
width: 175px; width: 175px;
} }

View file

@ -3,13 +3,13 @@
/* /*
* Name: Diabook * Name: Diabook
* Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu * Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.014) * Version: (Version: 1.016)
* Author: * Author:
*/ */
//print diabook-version for debugging //print diabook-version for debugging
$diabook_version = "Diabook (Version: 1.014)"; $diabook_version = "Diabook (Version: 1.016)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version); $a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
//change css on network and profilepages //change css on network and profilepages
@ -376,11 +376,12 @@ $a->page['htmlhead'] .= '
</script>'; </script>';
$a->page['htmlhead'] .= ' $a->page['htmlhead'] .= '
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$(".embed_yt iframe").each(function(){ $("iframe").each(function(){
var ifr_source = $(this).attr("src"); var ifr_source = $(this).attr("src");
var wmode = "wmode=transparent"; var wmode = "wmode=transparent";
if(ifr_source.indexOf("?") != -1) { if(ifr_source.indexOf("?") != -1) {
@ -391,7 +392,18 @@ $(document).ready(function() {
} }
else $(this).attr("src",ifr_source+"?"+wmode); else $(this).attr("src",ifr_source+"?"+wmode);
}); });
}); });
function yt_iframe() {
$("iframe").load(function() {
var ifr_src = $(this).contents().find("body iframe").attr("src");
$("iframe").contents().find("body iframe").attr("src", ifr_src+"&wmode=transparent");
});
};
</script>'; </script>';
@ -403,7 +415,12 @@ $a->page['htmlhead'] .= '
$(function() { $(function() {
$(".oembed.photo img").aeImageResize({height: 400, width: 400}); $(".oembed.photo img").aeImageResize({height: 400, width: 400});
}); });
</script>';
if($ccCookie != "8") {
$a->page['htmlhead'] .= '
<script>
$("right_aside").ready(function(){ $("right_aside").ready(function(){
if($.cookie("close_pages") == "1") if($.cookie("close_pages") == "1")
@ -487,9 +504,10 @@ function close_lastlikes(){
document.getElementById( "close_lastlikes" ).style.display = "none"; document.getElementById( "close_lastlikes" ).style.display = "none";
$.cookie("close_lastlikes","1", { expires: 365, path: "/" }); $.cookie("close_lastlikes","1", { expires: 365, path: "/" });
}; };
</script>';}
$a->page['htmlhead'] .= '
<script>
function restore_boxes(){ function restore_boxes(){
$.cookie("close_pages","2", { expires: 365, path: "/" }); $.cookie("close_pages","2", { expires: 365, path: "/" });
$.cookie("close_helpers","2", { expires: 365, path: "/" }); $.cookie("close_helpers","2", { expires: 365, path: "/" });
@ -500,5 +518,38 @@ function restore_boxes(){
$.cookie("close_lastphotos","2", { expires: 365, path: "/" }); $.cookie("close_lastphotos","2", { expires: 365, path: "/" });
$.cookie("close_lastlikes","2", { expires: 365, path: "/" }); $.cookie("close_lastlikes","2", { expires: 365, path: "/" });
alert("Right-hand column was restored. Please refresh your browser"); alert("Right-hand column was restored. Please refresh your browser");
}; }
</script>';} </script>';}
$a->page['htmlhead'] .= '
<script type="text/javascript">
function insertFormatting(BBcode,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == "Kommentar") {
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

@ -37,10 +37,8 @@
</div> </div>
{{ endif }} {{ endif }}
{{ if $lastusers_title }} <h3 id="postit-header">'PostIt' to Friendica</h3>
<h3 id="postit-header">PostIt to Friendica</h3>
<div id="postit"> <div id="postit">
<a href="$fostitJS" title="PostIt">Post to Friendica</a> from anywhere by bookmarking this link. <a href="$fostitJS" title="PostIt">Post to Friendica</a> from anywhere by bookmarking this link.
</div> </div>
{{ endif }}

View file

@ -6,15 +6,31 @@
<?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?> <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
</head> </head>
<body> <body>
<?php if(x($page,'nav')) echo $page['nav']; ?> <header>
<aside> <!-- header stuff will go here -->
<?php if(x($page,'aside')) echo $page['aside']; ?> </header>
<?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?> <article id="articlemain">
</aside> <?php if(x($page,'nav')) echo $page['nav']; ?>
<section><?php if(x($page,'content')) echo $page['content']; ?> <aside id="asideleft">
<div id="page-footer"></div> <?php if(x($page,'aside_left')) echo $page['aside_left']; ?>
</section> <?php if(x($page,'aside_left_bottom')) echo $page['aside_left_bottom']; ?>
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer> </aside>
<section id="sectionmain">
<?php if(x($page,'content')) echo $page['content']; ?>
<footer id="section-footer"></footer>
</section>
<aside id="asidemain">
<?php if(x($page,'aside')) echo $page['aside']; ?>
<?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?>
</aside>
<aside id="asideright">
<?php if(x($page,'aside_right')) echo $page['aside_right']; ?>
<?php if(x($page,'aside_right_bottom')) echo $page['aside_right_bottom']; ?>
</aside>
</article>
<footer id="page-footer">
<?php if(x($page,'footer')) echo $page['footer']; ?>
</footer>
</body> </body>
</html> </html>

View file

@ -1,7 +1,7 @@
/* /*
* dispy-dark * dispy-dark
* *
* modernised, sort of, by simon <http://simon.kisikew.org/> * author, maintainer: simon <http://simon.kisikew.org/>
* *
*/ */
@ -210,12 +210,17 @@ input[type=submit] {
margin: 5px 0; margin: 5px 0;
list-style: none; list-style: none;
} }
#articlemain {
width: 100%;
height: 100%;
margin: 0 auto;
}
/** /**
* login * login
*/ */
aside .field { #asidemain .field {
overflow: hidden; overflow: hidden;
width: 200px; width: 200px;
} }
@ -247,7 +252,7 @@ aside .field {
#login-submit-button { #login-submit-button {
margin-left: 0px !important; margin-left: 0px !important;
} }
aside #login_openid { #asidemain #login_openid {
position: relative !important; position: relative !important;
float: none !important; float: none !important;
margin-left: 0px !important; margin-left: 0px !important;
@ -268,13 +273,10 @@ aside #login_openid {
*/ */
nav { nav {
height: 60px; height: 60px;
display: block;
background-color: #1d1f1d; background-color: #1d1f1d;
color: #eeeeec; color: #eeeeec;
position: relative; position: relative;
padding: 20px 20px 10px 95px; padding: 20px 20px 10px 95px;
margin-left: auto;
margin-right: auto;
} }
nav a { nav a {
text-decoration: none; text-decoration: none;
@ -707,12 +709,16 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
/** /**
* aside * aside
**/ **/
aside { #asidemain {
position: absolute; float: left;
right: 15px;
width: 245px;
padding-top: 15px;
font-size: smaller; font-size: smaller;
margin: 20px 0 20px 35px;
width: 25%;
display: inline;
}
/* for now, disappear these */
#asideright, #asideleft {
display: none;
} }
.vcard .fn { .vcard .fn {
font-size: 1.7em; font-size: 1.7em;
@ -742,10 +748,10 @@ aside {
.vcard #profile-photo-wrapper img { .vcard #profile-photo-wrapper img {
box-shadow: 3px 3px 10px 0 #000; box-shadow: 3px 3px 10px 0 #000;
} }
aside h4 { #asidemain h4 {
font-size: 1.2em; font-size: 1.2em;
} }
aside #viewcontacts { #asidemain #viewcontacts {
text-align: right; text-align: right;
} }
.aprofile dt { .aprofile dt {
@ -1064,12 +1070,13 @@ aside #viewcontacts {
/** /**
* section * section
*/ */
section { #sectionmain {
margin: 20px 9% 0 4%; margin: 20px;
font-size: 0.8em; font-size: 0.8em;
padding-right: 230px;
min-width: 475px; min-width: 475px;
width: 65%; width: 67%;
float: left;
display: inline;
} }
/** tabs **/ /** tabs **/
@ -1333,19 +1340,19 @@ section {
width: 100%; width: 100%;
} }
#connect-services-header { #connect-services-header {
margin: 5px 0 0 0;
} }
#connect-services { #connect-services {
margin: 5px 0 0 0; margin: 5px 0 0 0;
} }
#extra-help-header { #extra-help-header {
margin: 5px 0 0 0;
} }
#extra-help { #extra-help {
margin: 5px 0 0 0; margin: 5px 0 0 0;
} }
#postit-header { #postit-header {
margin: 5px 0 0 0;
} }
#postit { #postit {
margin: 5px 0 0 0; margin: 5px 0 0 0;
@ -2603,8 +2610,8 @@ div[id$="wrapper"] br {
} }
.icon.drop, .icon.drop,
.icon.drophide, .icon.delete { .icon.drophide, .icon.delete {
float: right; float: left;
margin: 5px; /*margin: 5px;*/
} }
.icon.s22.delete { .icon.s22.delete {
display: block; display: block;
@ -2776,7 +2783,7 @@ div[id$="wrapper"] br {
} }
footer { footer {
display: block; display: block;
margin: 50px 20%; /*margin: 50px 20%;*/
clear: both; clear: both;
} }
#profile-jot-text { #profile-jot-text {

View file

@ -3,126 +3,135 @@
/* /*
* Name: Dispy Dark * Name: Dispy Dark
* Description: Dispy Dark, Friendica theme * Description: Dispy Dark, Friendica theme
* Version: 1.0 * Version: 1.1
* Author: Simon <http://simon.kisikew.org/> * Author: Simon <http://simon.kisikew.org/>
* Maintainer: Simon <http://simon.kisikew.org/> * Maintainer: Simon <http://simon.kisikew.org/>
* Screenshot: <a href="screenshot.jpg">Screenshot</a> * Screenshot: <a href="screenshot.jpg">Screenshot</a>
*/ */
$a = get_app();
$a->theme_info = array( $a->theme_info = array(
'extends' => 'dispy-dark', 'name' => 'dispy-dark',
'version' => '1.1'
); );
$a->page['htmlhead'] .= <<< EOT function dispy_dark_init(&$a) {
<script>
$(document).ready(function() {
$('.group-edit-icon').hover(
function() {
$(this).addClass('icon');
$(this).removeClass('iconspacer'); },
function() { // aside on profile page
$(this).removeClass('icon'); if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
$(this).addClass('iconspacer'); } dispy_dark_community_info();
); }
$('.sidebar-group-element').hover( $a->page['htmlhead'] .= <<<EOT
function() { <script type="text/javascript">
id = $(this).attr('id'); $(document).ready(function() {
$('#edit-' + id).addClass('icon'); $('.group-edit-icon').hover(
$('#edit-' + id).removeClass('iconspacer'); }, function() {
$(this).addClass('icon');
$(this).removeClass('iconspacer'); },
function() { function() {
id = $(this).attr('id'); $(this).removeClass('icon');
$('#edit-' + id).removeClass('icon'); $(this).addClass('iconspacer'); }
$('#edit-' + id).addClass('iconspacer'); } );
);
$('.savedsearchdrop').hover( $('.sidebar-group-element').hover(
function() { function() {
$(this).addClass('drop'); id = $(this).attr('id');
$(this).addClass('icon'); $('#edit-' + id).addClass('icon');
$(this).removeClass('iconspacer'); }, $('#edit-' + id).removeClass('iconspacer'); },
function() { function() {
$(this).removeClass('drop'); id = $(this).attr('id');
$(this).removeClass('icon'); $('#edit-' + id).removeClass('icon');
$(this).addClass('iconspacer'); } $('#edit-' + id).addClass('iconspacer'); }
); );
$('.savedsearchterm').hover( $('.savedsearchdrop').hover(
function() { function() {
id = $(this).attr('id'); $(this).addClass('drop');
$('#drop-' + id).addClass('icon'); $(this).addClass('icon');
$('#drop-' + id).addClass('drophide'); $(this).removeClass('iconspacer'); },
$('#drop-' + id).removeClass('iconspacer'); },
function() { function() {
id = $(this).attr('id'); $(this).removeClass('drop');
$('#drop-' + id).removeClass('icon'); $(this).removeClass('icon');
$('#drop-' + id).removeClass('drophide'); $(this).addClass('iconspacer'); }
$('#drop-' + id).addClass('iconspacer'); } );
);
$('.savedsearchterm').hover(
function() {
id = $(this).attr('id');
$('#drop-' + id).addClass('icon');
$('#drop-' + id).addClass('drophide');
$('#drop-' + id).removeClass('iconspacer'); },
function() {
id = $(this).attr('id');
$('#drop-' + id).removeClass('icon');
$('#drop-' + id).removeClass('drophide');
$('#drop-' + id).addClass('iconspacer'); }
);
// click outside notifications menu closes it
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// click outside profiles menu closes it
$('html').click(function() {
$('#profiles-menu-trigger').removeClass('selected');
document.getElementById("profiles-menu").style.display = "none";
});
$('#profiles-menu').click(function(event) {
event.stopPropagation();
});
// main function in toolbar functioning
function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast');
$('.floaterflip').css({
backgroundPosition: '-210px -60px'
});
$('.search-box').slideUp('fast');
} else {
$('#nav-floater').slideDown('fast');
$('.floaterflip').css({
backgroundPosition: '-190px -60px'
});
$('.search-box').slideDown('fast');
}
};
// our trigger for the toolbar button
$('.floaterflip').click(function() {
toggleToolbar();
return false;
});
// (attempt) to change the text colour in a top post
$('#profile-jot-text').focusin(function() {
$(this).css({color: '#eec'});
});
// click outside notifications menu closes it
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
}); });
</script>
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// click outside profiles menu closes it
$('html').click(function() {
$('#profiles-menu-trigger').removeClass('selected');
document.getElementById("profiles-menu").style.display = "none";
});
$('#profiles-menu').click(function(event) {
event.stopPropagation();
});
// main function in toolbar functioning
function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast');
$('.floaterflip').css({
backgroundPosition: '-210px -60px'
});
$('.search-box').slideUp('fast');
} else {
$('#nav-floater').slideDown('fast');
$('.floaterflip').css({
backgroundPosition: '-190px -60px'
});
$('.search-box').slideDown('fast');
}
};
// our trigger for the toolbar button
$('.floaterflip').click(function() {
toggleToolbar();
return false;
});
// (attempt) to change the text colour in a top post
$('#profile-jot-text').focusin(function() {
$(this).css({color: '#eec'});
});
});
</script>
EOT; EOT;
}
function dispydark_community_info() { function dispy_dark_community_info() {
$a = get_app(); $a = get_app();
$url = $a->get_baseurl($ssl_state);
$aside['$url'] = $url;
$aside['$lastusers_title'] = t('Last users'); $fpostitJS = <<<FPI
$aside['$lastusers_items'] = array(); javascript: (function() {
$publish = (get_config('system','publish_all') ? '' : " AND `publish` = 1 " ); the_url = ' . $url . '/view/theme/' . $a->theme_info['name'] . '/fpostit/fpostit.php?url=' +
$fostitJS = "javascript: (function() {
the_url = '".$a->get_baseurl($ssl_state)."/view/theme/dispy-dark/fpostit/fpostit.php?url=' +
encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' +
encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ? encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ?
document.getSelection() : document.selection.createRange().text)); document.getSelection() : document.selection.createRange().text));
@ -135,18 +144,11 @@ function dispydark_community_info() {
} else { } else {
a_funct(); a_funct();
} }
})();"; })();
FPI;
$aside['$fostitJS'] = $fostitJS; $aside['$fpostitJS'] = $fpostitJS;
$url = $a->get_baseurl($ssl_state); $tpl = file_get_contents(dirname(__file__) . '/communityhome.tpl');
$aside['$url'] = $url; return $a->page['aside_bottom'] = replace_macros($tpl, $aside);
$tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
$a->page['aside_bottom'] = replace_macros($tpl, $aside);
} }
// aside on profile page
//if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
dispydark_community_info();
//}

View file

@ -37,10 +37,8 @@
</div> </div>
{{ endif }} {{ endif }}
{{ if $lastusers_title }} <h3 id="postit-header">'PostIt' to Friendica</h3>
<h3 id="postit-header">PostIt to Friendica</h3>
<div id="postit"> <div id="postit">
<a href="$fostitJS" title="PostIt">Post to Friendica</a> from anywhere by bookmarking this link. <a href="$fostitJS" title="PostIt">Post to Friendica</a> from anywhere by bookmarking this link.
</div> </div>
{{ endif }}

View file

@ -6,15 +6,31 @@
<?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?> <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
</head> </head>
<body> <body>
<?php if(x($page,'nav')) echo $page['nav']; ?> <header>
<aside> <!-- header stuff will go here -->
<?php if(x($page,'aside')) echo $page['aside']; ?> </header>
<?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?> <article id="articlemain">
</aside> <?php if(x($page,'nav')) echo $page['nav']; ?>
<section><?php if(x($page,'content')) echo $page['content']; ?> <aside id="asideleft">
<div id="page-footer"></div> <?php if(x($page,'aside_left')) echo $page['aside_left']; ?>
</section> <?php if(x($page,'aside_left_bottom')) echo $page['aside_left_bottom']; ?>
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer> </aside>
<section id="sectionmain">
<?php if(x($page,'content')) echo $page['content']; ?>
<footer id="section-footer"></footer>
</section>
<aside id="asidemain">
<?php if(x($page,'aside')) echo $page['aside']; ?>
<?php if(x($page,'aside_bottom')) echo $page['aside_bottom']; ?>
</aside>
<aside id="asideright">
<?php if(x($page,'aside_right')) echo $page['aside_right']; ?>
<?php if(x($page,'aside_right_bottom')) echo $page['aside_right_bottom']; ?>
</aside>
</article>
<footer id="page-footer">
<?php if(x($page,'footer')) echo $page['footer']; ?>
</footer>
</body> </body>
</html> </html>

View file

@ -56,7 +56,6 @@ works -->
<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.1"></a> <a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.1"></a>
</li> </li>
{{ endif }} {{ endif }}
{{ if $nav.contacts }} {{ if $nav.contacts }}
<li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.1">$nav.contacts.1</a></li> <li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.1">$nav.contacts.1</a></li>
{{ endif }} {{ endif }}
@ -75,11 +74,9 @@ works -->
{{ if $nav.admin }} {{ if $nav.admin }}
<li><a id="nav-admin-link" class="nav-commlink $nav.admin.2" href="$nav.admin.0" title="$nav.admin.1">$nav.admin.1</a></li> <li><a id="nav-admin-link" class="nav-commlink $nav.admin.2" href="$nav.admin.0" title="$nav.admin.1">$nav.admin.1</a></li>
{{ endif }} {{ endif }}
{{ if $nav.login }} {{ if $nav.login }}
<li><a id="nav-login-link" class="nav-commlink $nav.login.2" href="$nav.login.0" title="$nav.login.1">$nav.login.1</a></li> <li><a id="nav-login-link" class="nav-commlink $nav.login.2" href="$nav.login.0" title="$nav.login.1">$nav.login.1</a></li>
{{ endif }} {{ endif }}
{{ if $nav.logout }} {{ if $nav.logout }}
<li><a id="nav-logout-link" class="nav-commlink $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a></li> <li><a id="nav-logout-link" class="nav-commlink $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a></li>
{{ endif }} {{ endif }}

View file

@ -1,7 +1,8 @@
/* /*
* dispy * dispy
* *
* modernised, sort of, by simon <http://simon.kisikew.org/> * maintainer: simon <http://simon.kisikew.org/>
* author: unknown
* *
*/ */
@ -210,12 +211,17 @@ input[type=submit] {
margin: 5px 0; margin: 5px 0;
list-style: none; list-style: none;
} }
#articlemain {
width: 100%;
height: 100%;
margin: 0 auto;
}
/** /**
* login * login
*/ */
aside .field { #asidemain .field {
overflow: hidden; overflow: hidden;
width: 200px; width: 200px;
} }
@ -247,7 +253,7 @@ aside .field {
#login-submit-button { #login-submit-button {
margin-left: 0px !important; margin-left: 0px !important;
} }
aside #login_openid { #asidemain #login_openid {
position: relative !important; position: relative !important;
float: none !important; float: none !important;
margin-left: 0px !important; margin-left: 0px !important;
@ -268,13 +274,10 @@ aside #login_openid {
*/ */
nav { nav {
height: 60px; height: 60px;
display: block;
background-color: #2e3436; background-color: #2e3436;
color: #eeeeec; color: #eeeeec;
position: relative; position: relative;
padding: 20px 20px 10px 95px; padding: 20px 20px 10px 95px;
margin-left: auto;
margin-right: auto;
} }
nav a { nav a {
text-decoration: none; text-decoration: none;
@ -707,12 +710,16 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
/** /**
* aside * aside
**/ **/
aside { #asidemain {
position: absolute; float: left;
right: 15px;
width: 245px;
padding-top: 15px;
font-size: smaller; font-size: smaller;
margin: 20px 0 20px 35px;
width: 25%;
display: inline;
}
/* for now, disappear these */
#asideright, #asideleft {
display: none;
} }
.vcard .fn { .vcard .fn {
font-size: 1.7em; font-size: 1.7em;
@ -742,15 +749,15 @@ aside {
.vcard #profile-photo-wrapper img { .vcard #profile-photo-wrapper img {
box-shadow: 3px 3px 10px 0 #000; box-shadow: 3px 3px 10px 0 #000;
} }
aside h4 { #asidemain h4 {
font-size: 1.2em; font-size: 1.2em;
} }
aside #viewcontacts { #asidemain #viewcontacts {
text-align: right; text-align: right;
} }
.aprofile dt { .aprofile dt {
color: #666666;
background: transparent; background: transparent;
color: #666666;
font-weight: bold; font-weight: bold;
box-shadow: 1px 1px 5px 0 #000; box-shadow: 1px 1px 5px 0 #000;
margin: 15px 0 5px; margin: 15px 0 5px;
@ -1064,12 +1071,13 @@ aside #viewcontacts {
/** /**
* section * section
*/ */
section { #sectionmain {
margin: 20px 9% 0 4%; margin: 20px;
font-size: 0.8em; font-size: 0.8em;
padding-right: 230px;
min-width: 475px; min-width: 475px;
width: 65%; width: 67%;
float: left;
display: inline;
} }
/** tabs **/ /** tabs **/
@ -1333,19 +1341,19 @@ section {
width: 100%; width: 100%;
} }
#connect-services-header { #connect-services-header {
margin: 5px 0 0 0;
} }
#connect-services { #connect-services {
margin: 5px 0 0 0; margin: 5px 0 0 0;
} }
#extra-help-header { #extra-help-header {
margin: 5px 0 0 0;
} }
#extra-help { #extra-help {
margin: 5px 0 0 0; margin: 5px 0 0 0;
} }
#postit-header { #postit-header {
margin: 5px 0 0 0;
} }
#postit { #postit {
margin: 5px 0 0 0; margin: 5px 0 0 0;
@ -2603,8 +2611,8 @@ div[id$="wrapper"] br {
} }
.icon.drop, .icon.drop,
.icon.drophide, .icon.delete { .icon.drophide, .icon.delete {
float: right; float: left;
margin: 5px; /*margin: 5px;*/
} }
.icon.s22.delete { .icon.s22.delete {
display: block; display: block;
@ -2776,7 +2784,7 @@ div[id$="wrapper"] br {
} }
footer { footer {
display: block; display: block;
margin: 50px 20%; /*margin: 50px 20%;*/
clear: both; clear: both;
} }
#profile-jot-text { #profile-jot-text {

View file

@ -3,122 +3,135 @@
/* /*
* Name: Dispy * Name: Dispy
* Description: Dispy, Friendica theme * Description: Dispy, Friendica theme
* Version: 1.0 * Version: 1.1
* Author: unknown * Author: unknown
* Maintainer: Simon <http://simon.kisikew.org/> * Maintainer: Simon <http://simon.kisikew.org/>
* Screenshot: <a href="screenshot.jpg">Screenshot</a> * Screenshot: <a href="screenshot.jpg">Screenshot</a>
*/ */
$a = get_app();
$a->theme_info = array( $a->theme_info = array(
'extends' => 'dispy', 'name' => 'dispy',
'version' => '1.1'
); );
$a->page['htmlhead'] .= <<< EOT function dispy_init(&$a) {
<script>
$(document).ready(function() {
$('.group-edit-icon').hover(
function() {
$(this).addClass('icon');
$(this).removeClass('iconspacer'); },
function() { // aside on profile page
$(this).removeClass('icon'); if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
$(this).addClass('iconspacer'); } dispy_community_info();
); }
$('.sidebar-group-element').hover( $a->page['htmlhead'] .= <<<EOT
function() { <script type="text/javascript">
id = $(this).attr('id'); $(document).ready(function() {
$('#edit-' + id).addClass('icon'); $('.group-edit-icon').hover(
$('#edit-' + id).removeClass('iconspacer'); }, function() {
$(this).addClass('icon');
$(this).removeClass('iconspacer'); },
function() { function() {
id = $(this).attr('id'); $(this).removeClass('icon');
$('#edit-' + id).removeClass('icon'); $(this).addClass('iconspacer'); }
$('#edit-' + id).addClass('iconspacer'); } );
);
$('.savedsearchdrop').hover( $('.sidebar-group-element').hover(
function() { function() {
$(this).addClass('drop'); id = $(this).attr('id');
$(this).addClass('icon'); $('#edit-' + id).addClass('icon');
$(this).removeClass('iconspacer'); }, $('#edit-' + id).removeClass('iconspacer'); },
function() { function() {
$(this).removeClass('drop'); id = $(this).attr('id');
$(this).removeClass('icon'); $('#edit-' + id).removeClass('icon');
$(this).addClass('iconspacer'); } $('#edit-' + id).addClass('iconspacer'); }
); );
$('.savedsearchterm').hover( $('.savedsearchdrop').hover(
function() { function() {
id = $(this).attr('id'); $(this).addClass('drop');
$('#drop-' + id).addClass('icon'); $(this).addClass('icon');
$('#drop-' + id).addClass('drophide'); $(this).removeClass('iconspacer'); },
$('#drop-' + id).removeClass('iconspacer'); },
function() { function() {
id = $(this).attr('id'); $(this).removeClass('drop');
$('#drop-' + id).removeClass('icon'); $(this).removeClass('icon');
$('#drop-' + id).removeClass('drophide'); $(this).addClass('iconspacer'); }
$('#drop-' + id).addClass('iconspacer'); } );
);
$('.savedsearchterm').hover(
function() {
id = $(this).attr('id');
$('#drop-' + id).addClass('icon');
$('#drop-' + id).addClass('drophide');
$('#drop-' + id).removeClass('iconspacer'); },
function() {
id = $(this).attr('id');
$('#drop-' + id).removeClass('icon');
$('#drop-' + id).removeClass('drophide');
$('#drop-' + id).addClass('iconspacer'); }
);
// click outside notifications menu closes it
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// click outside profiles menu closes it
$('html').click(function() {
$('#profiles-menu-trigger').removeClass('selected');
document.getElementById("profiles-menu").style.display = "none";
});
$('#profiles-menu').click(function(event) {
event.stopPropagation();
});
// main function in toolbar functioning
function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast');
$('.floaterflip').css({
backgroundPosition: '-210px -60px'
});
$('.search-box').slideUp('fast');
} else {
$('#nav-floater').slideDown('fast');
$('.floaterflip').css({
backgroundPosition: '-190px -60px'
});
$('.search-box').slideDown('fast');
}
};
// our trigger for the toolbar button
$('.floaterflip').click(function() {
toggleToolbar();
return false;
});
// (attempt) to change the text colour in a top post
$('#profile-jot-text').focusin(function() {
$(this).css({color: '#eec'});
});
// click outside notifications menu closes it
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
}); });
</script>
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// click outside profiles menu closes it
$('html').click(function() {
$('#profiles-menu-trigger').removeClass('selected');
document.getElementById("profiles-menu").style.display = "none";
});
$('#profiles-menu').click(function(event) {
event.stopPropagation();
});
// main function in toolbar functioning
function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast');
$('.floaterflip').css({
backgroundPosition: '-210px -60px'
});
$('.search-box').slideUp('fast');
} else {
$('#nav-floater').slideDown('fast');
$('.floaterflip').css({
backgroundPosition: '-190px -60px'
});
$('.search-box').slideDown('fast');
}
};
// our trigger for the toolbar button
$('.floaterflip').click(function() {
toggleToolbar();
return false;
});
// (attempt) to change the text colour in a top post
$('#profile-jot-text').focusin(function() {
$(this).css({color: '#eec'});
});
});
</script>
EOT; EOT;
}
function dispy_community_info() { function dispy_community_info() {
$a = get_app(); $a = get_app();
$url = $a->get_baseurl($ssl_state);
$aside['$url'] = $url;
$fostitJS = "javascript: (function() { $fpostitJS = <<<FPI
the_url = '".$a->get_baseurl($ssl_state)."/view/theme/dispy-dark/fpostit/fpostit.php?url=' + javascript: (function() {
the_url = ' . $url . '/view/theme/' . $a->theme_info['name'] . '/fpostit/fpostit.php?url=' +
encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' + encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' +
encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ? encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ?
document.getSelection() : document.selection.createRange().text)); document.getSelection() : document.selection.createRange().text));
@ -131,17 +144,11 @@ function dispy_community_info() {
} else { } else {
a_funct(); a_funct();
} }
})();"; })();
FPI;
$aside['$fostitJS'] = $fostitJS; $aside['$fpostitJS'] = $fpostitJS;
$url = $a->get_baseurl($ssl_state); $tpl = file_get_contents(dirname(__file__) . '/communityhome.tpl');
$aside['$url'] = $url; return $a->page['aside_bottom'] = replace_macros($tpl, $aside);
$tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
$a->page['aside_bottom'] = replace_macros($tpl, $aside);
} }
// aside on profile page
if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
dispy_community_info();
}

View file

@ -4,9 +4,7 @@
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id" <div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')" onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)"> onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
<a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id"> <a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id"><img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" />
</a>
<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span> <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id"> <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul> <ul>
@ -57,15 +55,16 @@
</ul> </ul>
<div class="wall-item-delete-end"></div> <div class="wall-item-delete-end"></div>
</div> </div>
<div class="wall-item-content" id="wall-item-content-$item.id" > <div class="wall-item-content" id="wall-item-content-$item.id">
<div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div> <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
<div class="wall-item-title-end"></div> <div class="wall-item-title-end"></div>
<div class="wall-item-body" id="wall-item-body-$item.id" >$item.body <div class="wall-item-body" id="wall-item-body-$item.id">
<div class="body-tag"> $item.body
{{ for $item.tags as $tag }} <div class="body-tag">
<span class='tag'>$tag</span> {{ for $item.tags as $tag }}
{{ endfor }} <span class='tag'>$tag</span>
</div> {{ endfor }}
</div>
</div> </div>
</div> </div>
<div class="wall-item-author"> <div class="wall-item-author">

View file

@ -2,15 +2,13 @@
<div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" > <div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info wallwall" id="wall-item-info-$item.id"> <div class="wall-item-info wallwall" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" > <div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
<a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id"> <a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id"><img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
<img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
</div> </div>
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div> <div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
<div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$item.id" <div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')" onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)"> onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id"> <a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id"><img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span> <span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id"> <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul> <ul>
@ -63,15 +61,16 @@ class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick
</ul> </ul>
<div class="wall-item-delete-end"></div> <div class="wall-item-delete-end"></div>
</div> </div>
<div class="wall-item-content" id="wall-item-content-$item.id" > <div class="wall-item-content" id="wall-item-content-$item.id">
<div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div> <div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
<div class="wall-item-title-end"></div> <div class="wall-item-title-end"></div>
<div class="wall-item-body" id="wall-item-body-$item.id" >$item.body <div class="wall-item-body" id="wall-item-body-$item.id">
<div class="body-tag"> $item.body
{{ for $item.tags as $tag }} <div class="body-tag">
<span class="tag">$tag</span> {{ for $item.tags as $tag }}
{{ endfor }} <span class="tag">$tag</span>
</div> {{ endfor }}
</div>
</div> </div>
</div> </div>
<div class="wall-item-author"> <div class="wall-item-author">

View file

@ -1,6 +1,7 @@
<?php <?php
$a->theme_info = array(); $a->theme_info = array();
function duepuntozero_init(&$a) {
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -47,3 +48,4 @@ $('.savedsearchterm').hover(
</script> </script>
EOT; EOT;
}

View file

@ -3,6 +3,7 @@ $a->theme_info = array(
'extends' => 'duepuntozero', 'extends' => 'duepuntozero',
); );
function greenzero_init(&$a) {
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
</script> </script>
EOT; EOT;
}

View file

@ -3,6 +3,7 @@ $a->theme_info = array(
'extends' => 'duepuntozero', 'extends' => 'duepuntozero',
); );
function purplezero_init(&$a) {
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
</script> </script>
EOT; EOT;
}

View file

@ -3,6 +3,7 @@ $a->theme_info = array(
'extends' => 'duepuntozero', 'extends' => 'duepuntozero',
); );
function slack_NS_init(&$a) {
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
</script> </script>
EOT; EOT;
}

View file

@ -3,6 +3,7 @@ $a->theme_info = array(
'extends' => 'duepuntozero', 'extends' => 'duepuntozero',
); );
function slackr_init(&$a) {
$a->page['htmlhead'] .= <<< EOT $a->page['htmlhead'] .= <<< EOT
<script> <script>
$(document).ready(function() { $(document).ready(function() {
@ -49,3 +50,4 @@ $('.savedsearchterm').hover(
</script> </script>
EOT; EOT;
}

11
view/update_fail_eml.tpl Normal file
View file

@ -0,0 +1,11 @@
Hey,
I'm $sitename.
The friendica developers released update $update recently,
but when I tried to install it, something went terribly wrong.
This needs to be fixed soon and I can't do it alone. Please contact a
friendica developer if you can not help me on your own. My database might be invalid.
The error message is '$error'.
I'm sorry,
your friendica server at $siteurl