aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addon/facebook/facebook.php4
-rw-r--r--boot.php16
-rw-r--r--database.sql20
-rw-r--r--images/audio.gifbin0 -> 559 bytes
-rw-r--r--images/pencil.gifbin0 -> 553 bytes
-rw-r--r--images/recycle.gifbin0 -> 612 bytes
-rw-r--r--images/remote-link.gifbin357 -> 237 bytes
-rw-r--r--images/share.gifbin0 -> 155 bytes
-rw-r--r--images/video.gifbin0 -> 257 bytes
-rw-r--r--include/Contact.php5
-rw-r--r--include/bbcode.php2
-rw-r--r--include/dba.php19
-rw-r--r--include/expire.php44
-rw-r--r--include/fcontact.php41
-rw-r--r--include/items.php69
-rw-r--r--include/notifier.php34
-rw-r--r--include/poller.php11
-rw-r--r--index.php11
-rw-r--r--mod/directory.php2
-rw-r--r--mod/display.php7
-rw-r--r--mod/editpost.php91
-rw-r--r--mod/item.php122
-rw-r--r--mod/network.php10
-rw-r--r--mod/photos.php41
-rw-r--r--mod/profile.php18
-rw-r--r--mod/profile_photo.php2
-rw-r--r--mod/profiles.php12
-rw-r--r--mod/register.php4
-rw-r--r--mod/search.php9
-rw-r--r--mod/settings.php6
-rw-r--r--mod/share.php23
-rw-r--r--update.php32
-rw-r--r--view/de/jot-header.tpl24
-rw-r--r--view/de/profile_edit.tpl16
-rw-r--r--view/de/settings.tpl6
-rw-r--r--view/en/jot-header.tpl23
-rw-r--r--view/en/profile_edit.tpl16
-rw-r--r--view/en/settings.tpl7
-rw-r--r--view/fr/jot-header.tpl23
-rw-r--r--view/fr/profile_edit.tpl16
-rw-r--r--view/fr/settings.tpl5
-rw-r--r--view/fr/strings.php12
-rw-r--r--view/it/jot-header.tpl23
-rw-r--r--view/it/profile_edit.tpl16
-rw-r--r--view/it/settings.tpl5
-rw-r--r--view/jot.tpl8
-rw-r--r--view/like.tpl1
-rw-r--r--view/like_noshare.tpl5
-rw-r--r--view/sv/cmnt_received_eml.tpl18
-rw-r--r--view/sv/contact_edit.tpl81
-rw-r--r--view/sv/cropbody.tpl57
-rw-r--r--view/sv/dfrn_req_confirm.tpl17
-rw-r--r--view/sv/directory_header.tpl14
-rw-r--r--view/sv/follow_notify_eml.tpl14
-rw-r--r--view/sv/friend_complete_eml.tpl22
-rw-r--r--view/sv/group_edit.tpl24
-rw-r--r--view/sv/group_new.tpl23
-rw-r--r--view/sv/head.tpl32
-rw-r--r--view/sv/htconfig.tpl74
-rw-r--r--view/sv/insecure_net.tpl6
-rw-r--r--view/sv/install_db.tpl40
-rw-r--r--view/sv/intro_complete_eml.tpl22
-rw-r--r--view/sv/intros-top.tpl7
-rw-r--r--view/sv/jot-header.tpl172
-rw-r--r--view/sv/lostpass.tpl18
-rw-r--r--view/sv/lostpass_eml.tpl32
-rw-r--r--view/sv/mail_received_html_body_eml.tpl25
-rw-r--r--view/sv/mail_received_text_body_eml.tpl10
-rw-r--r--view/sv/msg-header.tpl104
-rw-r--r--view/sv/pagetypes.tpl25
-rw-r--r--view/sv/passchanged_eml.tpl20
-rw-r--r--view/sv/profile-hide-friends.tpl16
-rw-r--r--view/sv/profile-in-directory.tpl16
-rw-r--r--view/sv/profile-in-netdir.tpl16
-rw-r--r--view/sv/profile.php72
-rw-r--r--view/sv/profile_advanced.php225
-rw-r--r--view/sv/profile_edit.tpl299
-rw-r--r--view/sv/profile_entry_default.tpl9
-rw-r--r--view/sv/profile_listing_header.tpl8
-rw-r--r--view/sv/profile_photo.tpl18
-rw-r--r--view/sv/profile_tabs.tpl7
-rw-r--r--view/sv/pwdreset.tpl16
-rw-r--r--view/sv/register_open_eml.tpl21
-rw-r--r--view/sv/register_verify_eml.tpl26
-rw-r--r--view/sv/registrations-top.tpl3
-rw-r--r--view/sv/registrations.tpl1
-rw-r--r--view/sv/request_notify_eml.tpl17
-rw-r--r--view/sv/settings.tpl168
-rw-r--r--view/sv/settings_nick_set.tpl9
-rw-r--r--view/sv/settings_nick_subdir.tpl6
-rw-r--r--view/sv/settings_nick_unset.tpl14
-rw-r--r--view/sv/strings.php1124
-rw-r--r--view/sv/wall_received_eml.tpl18
-rw-r--r--view/theme/duepuntozero/style.css51
-rw-r--r--view/theme/loozah/style.css54
-rw-r--r--view/wall_item.tpl1
-rw-r--r--view/wallwall_item.tpl1
97 files changed, 3809 insertions, 125 deletions
diff --git a/addon/facebook/facebook.php b/addon/facebook/facebook.php
index edfc5a374..f3f313efe 100644
--- a/addon/facebook/facebook.php
+++ b/addon/facebook/facebook.php
@@ -225,7 +225,7 @@ function facebook_post_hook(&$a,&$b) {
// make links readable before we strip the code
- $msg = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/is",'$2 [$1]',$msg);
+ $msg = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/is",'$2 $1',$msg);
$msg = preg_replace("/\[img\](.+?)\[\/img\]/is", t('Image: ') . '$1',$msg);
@@ -237,7 +237,7 @@ function facebook_post_hook(&$a,&$b) {
require_once('library/slinky.php');
$display_url = $a->get_baseurl() . '/display/' . $a->user['nickname'] . '/' . $b['id'];
- $slinky = new Slinky( $posturl );
+ $slinky = new Slinky( $display_url );
// setup a cascade of shortening services
// try to get a short link from these services
// in the order ur1.ca, trim, id.gd, tinyurl
diff --git a/boot.php b/boot.php
index ac57d1e51..3636288b2 100644
--- a/boot.php
+++ b/boot.php
@@ -2,9 +2,9 @@
set_time_limit(0);
-define ( 'FRIENDIKA_VERSION', '2.1.913' );
+define ( 'FRIENDIKA_VERSION', '2.1.921' );
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
-define ( 'DB_UPDATE_VERSION', 1040 );
+define ( 'DB_UPDATE_VERSION', 1043 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@@ -2410,11 +2410,19 @@ function get_birthdays() {
);
if($r && count($r)) {
- $o .= '<div id="birthday-wrapper"><div id="birthday-title">' . t('Birthdays this week:') . '</div>';
+ $total = 0;
+ foreach($r as $rr)
+ if(strlen($rr['name']))
+ $total ++;
+
+ $o .= '<div id="birthday-notice" class="birthday-notice fakelink" 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-adjust">' . t("\x28Adjusted for local time\x29") . '</div>';
$o .= '<div id="birthday-title-end"></div>';
foreach($r as $rr) {
+ if(! strlen($rr['name']))
+ continue;
$now = strtotime('now');
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
@@ -2424,7 +2432,7 @@ function get_birthdays() {
. '</div>' ;
}
- $o .= '</div>';
+ $o .= '</div></div>';
}
return $o;
diff --git a/database.sql b/database.sql
index f47a5967e..0ecf0ea20 100644
--- a/database.sql
+++ b/database.sql
@@ -297,7 +297,8 @@ CREATE TABLE IF NOT EXISTS `profile` (
`sexual` char(255) NOT NULL,
`politic` char(255) NOT NULL,
`religion` char(255) NOT NULL,
- `keywords` text NOT NULL,
+ `pub_keywords` text NOT NULL,
+ `prv_keywords` text NOT NULL,
`about` text NOT NULL,
`summary` char(255) NOT NULL,
`music` text NOT NULL,
@@ -378,6 +379,7 @@ CREATE TABLE IF NOT EXISTS `user` (
`page-flags` int(11) unsigned NOT NULL DEFAULT '0',
`pwdreset` char(255) NOT NULL,
`maxreq` int(11) NOT NULL DEFAULT '10',
+ `expire` int(11) unsigned NOT NULL DEFAULT '0',
`allow_cid` mediumtext NOT NULL,
`allow_gid` mediumtext NOT NULL,
`deny_cid` mediumtext NOT NULL,
@@ -479,3 +481,19 @@ CREATE TABLE IF NOT EXISTS `cache` (
`v` TEXT NOT NULL,
`updated` DATETIME NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
+
+
+CREATE TABLE IF NOT EXISTS `fcontact` (
+`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`url` CHAR( 255 ) NOT NULL ,
+`name` CHAR( 255 ) NOT NULL ,
+`photo` CHAR( 255 ) NOT NULL
+) ENGINE = MYISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `ffinder` (
+`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+`uid` INT UNSIGNED NOT NULL ,
+`cid` INT UNSIGNED NOT NULL ,
+`fid` INT UNSIGNED NOT NULL
+) ENGINE = MYISAM DEFAULT CHARSET=utf8;
+
diff --git a/images/audio.gif b/images/audio.gif
new file mode 100644
index 000000000..4be977116
--- /dev/null
+++ b/images/audio.gif
Binary files differ
diff --git a/images/pencil.gif b/images/pencil.gif
new file mode 100644
index 000000000..26bfb0c9a
--- /dev/null
+++ b/images/pencil.gif
Binary files differ
diff --git a/images/recycle.gif b/images/recycle.gif
new file mode 100644
index 000000000..01b3e13b4
--- /dev/null
+++ b/images/recycle.gif
Binary files differ
diff --git a/images/remote-link.gif b/images/remote-link.gif
index 008397fe8..64de29aee 100644
--- a/images/remote-link.gif
+++ b/images/remote-link.gif
Binary files differ
diff --git a/images/share.gif b/images/share.gif
new file mode 100644
index 000000000..035fa2e38
--- /dev/null
+++ b/images/share.gif
Binary files differ
diff --git a/images/video.gif b/images/video.gif
new file mode 100644
index 000000000..e4d5e8cdd
--- /dev/null
+++ b/images/video.gif
Binary files differ
diff --git a/include/Contact.php b/include/Contact.php
index 7cac3c0e0..4ca77d065 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -14,11 +14,13 @@ function user_remove($uid) {
q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `group_member` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `intro` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `event` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `item` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `mail` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `photo` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `profile_check` WHERE `uid` = %d", intval($uid));
+ q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($uid));
q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
if($uid == local_user()) {
unset($_SESSION['authenticated']);
@@ -41,6 +43,9 @@ function contact_remove($id) {
q("DELETE FROM `mail` WHERE `contact-id` = %d ",
intval($id)
);
+ q("DELETE FROM `event` WHERE `cid` = %d ",
+ intval($id)
+ );
}
diff --git a/include/bbcode.php b/include/bbcode.php
index 978b4af69..4caf18766 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -90,7 +90,7 @@ function bbcode($Text) {
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text);
// Youtube extensions
- $Text = preg_replace("/\[youtube\]http:\/\/www.youtube.com\/watch\?v\=(.+?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text);
+ $Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.+?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text);
$Text = preg_replace("/\[youtube\](.+?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
// oembed tag
diff --git a/include/dba.php b/include/dba.php
index d75ed560a..e2f369f19 100644
--- a/include/dba.php
+++ b/include/dba.php
@@ -19,6 +19,23 @@ class dba {
public $connected = false;
function __construct($server,$user,$pass,$db,$install = false) {
+
+ $server = trim($server);
+ $user = trim($user);
+ $pass = trim($pass);
+ $db = trim($db);
+
+ if($install) {
+ if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
+ if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
+ notice( sprintf( t('Cannot locate DNS info for database server \'%s\'',$server)));
+ $this->connected = false;
+ $this->db = null;
+ return;
+ }
+ }
+ }
+
$this->db = @new mysqli($server,$user,$pass,$db);
if(! mysqli_connect_errno()) {
$this->connected = true;
@@ -61,7 +78,7 @@ class dba {
}
else {
- /*
+ /**
* 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.
diff --git a/include/expire.php b/include/expire.php
new file mode 100644
index 000000000..3c30e01c1
--- /dev/null
+++ b/include/expire.php
@@ -0,0 +1,44 @@
+<?php
+
+require_once("boot.php");
+
+function expire_run($argv, $argc){
+ global $a, $db;
+
+ if(is_null($a)) {
+ $a = new App;
+ }
+
+ if(is_null($db)) {
+ @include(".htconfig.php");
+ require_once("dba.php");
+ $db = new dba($db_host, $db_user, $db_pass, $db_data);
+ unset($db_host, $db_user, $db_pass, $db_data);
+ };
+
+ require_once('session.php');
+ require_once('datetime.php');
+ require_once('simplepie/simplepie.inc');
+ require_once('include/items.php');
+ require_once('include/Contact.php');
+
+ $a->set_baseurl(get_config('system','url'));
+
+
+ logger('expire: start');
+
+ $r = q("SELECT `uid`,`username`,`expire` FROM `user` WHERE `expire` != 0");
+ if(count($r)) {
+ foreach($r as $rr) {
+ logger('Expire: ' . $rr['username'] . ' interval: ' . $rr['expire'], LOGGER_DEBUG);
+ item_expire($rr['uid'],$rr['expire']);
+ }
+ }
+
+ return;
+}
+
+if (array_search(__file__,get_included_files())===0){
+ expire_run($argv,$argc);
+ killme();
+}
diff --git a/include/fcontact.php b/include/fcontact.php
new file mode 100644
index 000000000..8821a985f
--- /dev/null
+++ b/include/fcontact.php
@@ -0,0 +1,41 @@
+<?php
+
+
+
+function fcontact_store($url,$name,$photo) {
+
+ $nurl = str_replace(array('https:','//www.'), array('http:','//'), $url);
+
+ $r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
+ dbesc($nurl)
+ );
+
+ if(count($r))
+ return $r[0]['id'];
+
+ $r = q("INSERT INTO `fcontact` ( `url`, `name`, `photo` ) VALUES ( '%s', '%s', '%s' ) ",
+ dbesc($nurl),
+ dbesc($name),
+ dbesc($photo)
+ );
+
+ if($r) {
+ $r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
+ dbesc($nurl)
+ );
+ if(count($r))
+ return $r[0]['id'];
+ }
+
+ return 0;
+}
+
+function ffinder_store($uid,$cid,$fid) {
+ $r = q("INSERT INTO `ffinder` ( `uid`, `cid`, `fid` ) VALUES ( %d, %d, %d ) ",
+ intval($uid),
+ intval($cid),
+ intval($fid)
+ );
+ return $r;
+}
+
diff --git a/include/items.php b/include/items.php
index e930ab5d2..051659321 100644
--- a/include/items.php
+++ b/include/items.php
@@ -401,6 +401,17 @@ function get_atom_elements($feed,$item) {
$res['edited'] = $item->get_date('c');
+ // Disallow time travelling posts
+
+ $d1 = strtotime($res['created']);
+ $d2 = strtotime($res['edited']);
+ $d3 = strtotime('now');
+
+ if($d1 > $d3)
+ $res['created'] = datetime_convert();
+ if($d2 > $d3)
+ $res['edited'] = datetime_convert();
+
$rawowner = $item->get_item_tags(NAMESPACE_DFRN, 'owner');
if($rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])
$res['owner-name'] = unxmlify($rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']);
@@ -702,6 +713,18 @@ function item_store($arr,$force_parent = false) {
intval($current_post)
);
+ /**
+ * If this is now the last-child, force all _other_ children of this parent to *not* be last-child
+ */
+
+ if($arr['last-child']) {
+ $r = q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d AND `id` != %d",
+ dbesc($arr['uri']),
+ intval($arr['uid']),
+ intval($current_post)
+ );
+ }
+
return $current_post;
}
@@ -1484,3 +1507,49 @@ function atom_entry($item,$type,$author,$owner,$comment = false) {
return $o;
}
+function item_expire($uid,$days) {
+
+ if((! $uid) || (! $days))
+ return;
+
+ $r = q("SELECT * FROM `item`
+ WHERE `uid` = %d
+ AND `created` < UTC_TIMESTAMP() - INTERVAL %d DAY
+ AND `id` = `parent`
+ AND `deleted` = 0",
+ intval($uid),
+ intval($days)
+ );
+
+ if(! count($r))
+ return;
+
+ logger('expire: # items=' . count($r) );
+
+ foreach($r as $item) {
+
+ // Only expire posts, not photos and photo comments
+
+ if(strlen($item['resource-id']))
+ continue;
+
+ $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ intval($item['id'])
+ );
+
+ // kill the kids
+
+ $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($item['parent-uri']),
+ intval($item['uid'])
+ );
+
+ }
+
+ proc_run('php',"include/notifier.php","expire","$uid");
+
+} \ No newline at end of file
diff --git a/include/notifier.php b/include/notifier.php
index 648a07062..ca2304845 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -40,6 +40,7 @@ function notifier_run($argv, $argc){
break;
}
+ $expire = false;
$top_level = false;
$recipients = array();
$url_recipients = array();
@@ -57,6 +58,17 @@ function notifier_run($argv, $argc){
$item = $message[0];
}
+ elseif($cmd === 'expire') {
+ $expire = true;
+ $items = q("SELECT * FROM `item` WHERE `uid` = %d AND `wall` = 1
+ AND `deleted` = 1 AND `changed` > UTC_TIMESTAMP - INTERVAL 10 MINUTE",
+ intval($item_id)
+ );
+ $uid = $item_id;
+ $item_id = 0;
+ if(! count($items))
+ return;
+ }
else {
// find ancestors
@@ -76,11 +88,10 @@ function notifier_run($argv, $argc){
intval($parent_id)
);
- if(! count($items)){
+ if(! count($items)) {
return;
}
-
// avoid race condition with deleting entries
if($items[0]['deleted']) {
@@ -98,11 +109,11 @@ function notifier_run($argv, $argc){
intval($uid)
);
- if(count($r))
- $owner = $r[0];
- else {
+ if(! count($r))
return;
- }
+
+ $owner = $r[0];
+
$hub = get_config('system','huburl');
// If this is a public conversation, notify the feed hub
@@ -117,7 +128,7 @@ function notifier_run($argv, $argc){
$parent = $items[0];
- if($parent['type'] === 'remote') {
+ if($parent['type'] === 'remote' && (! $expire)) {
// local followup to remote post
$followup = true;
$notify_hub = false; // not public
@@ -235,6 +246,7 @@ function notifier_run($argv, $argc){
}
else {
foreach($items as $item) {
+
if(! $item['parent'])
continue;
@@ -242,9 +254,9 @@ function notifier_run($argv, $argc){
if(! $contact)
continue;
- $atom .= atom_entry($item,'text',$contact,$owner,true);
+ $atom .= atom_entry($item,'text',$contact,$owner,true);
- if(($top_level) && ($notify_hub) && ($item['author-link'] === $item['owner-link']))
+ if(($top_level) && ($notify_hub) && ($item['author-link'] === $item['owner-link']) && (! $expire))
$slaps[] = atom_entry($item,'html',$contact,$owner,true);
}
}
@@ -319,7 +331,7 @@ function notifier_run($argv, $argc){
// only send salmon if public - e.g. if it's ok to notify
// a public hub, it's ok to send a salmon
- if(count($slaps) && $notify_hub) {
+ if((count($slaps)) && ($notify_hub) && (! $expire)) {
logger('notifier: slapdelivery: ' . $contact['name']);
foreach($slaps as $slappy) {
if($contact['notify']) {
@@ -350,7 +362,7 @@ function notifier_run($argv, $argc){
// send additional slaps to mentioned remote tags (@foo@example.com)
- if($slap && count($url_recipients) && $followup && $notify_hub) {
+ if($slap && count($url_recipients) && $followup && $notify_hub && (! $expire)) {
foreach($url_recipients as $url) {
if($url) {
logger('notifier: urldelivery: ' . $url);
diff --git a/include/poller.php b/include/poller.php
index a093190a6..8619697d9 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -29,6 +29,17 @@ function poller_run($argv, $argc){
proc_run('php',"include/queue.php");
+ // once daily run expire in background
+
+ $d1 = get_config('system','last_expire_day');
+ $d2 = intval(datetime_convert('UTC','UTC','now','d'));
+
+ if($d2 != intval($d1)) {
+ set_config('system','last_expire_day',$d2);
+ proc_run('php','include/expire.php');
+ }
+
+
// clear old cache
q("DELETE FROM `cache` WHERE `updated` < '%s'",
dbesc(datetime_convert('UTC','UTC',"now - 30 days")));
diff --git a/index.php b/index.php
index 09a179c1c..ab722df2a 100644
--- a/index.php
+++ b/index.php
@@ -31,10 +31,17 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false
*
* Get the language setting directly from system variables, bypassing get_config()
* as database may not yet be configured.
+ *
+ * If possible, we use the value from the browser.
*
*/
-$lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
+if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+ $langs = preg_split("/[,-]/",$_SERVER['HTTP_ACCEPT_LANGUAGE'],2);
+ $lang = $langs[0];
+} else {
+ $lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
+}
load_translation_table($lang);
@@ -160,7 +167,7 @@ if(strlen($a->module)) {
*/
if((! $a->module_loaded) && (file_exists("mod/{$a->module}.php"))) {
- include("mod/{$a->module}.php");
+ include_once("mod/{$a->module}.php");
$a->module_loaded = true;
}
diff --git a/mod/directory.php b/mod/directory.php
index 0504ac321..825e2a375 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -40,7 +40,7 @@ function directory_content(&$a) {
if($search)
$search = dbesc($search);
- $sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
+ $sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
$publish = ((get_config('system','publish_all')) ? '' : " AND `publish` = 1 " );
diff --git a/mod/display.php b/mod/display.php
index 096ea16c9..eddaf8aaf 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -104,7 +104,7 @@ function display_content(&$a) {
$cmnt_tpl = load_view_file('view/comment_item.tpl');
- $like_tpl = load_view_file('view/like.tpl');
+ $like_tpl = load_view_file('view/like_noshare.tpl');
$tpl = load_view_file('view/wall_item.tpl');
$wallwall = load_view_file('view/wallwall_item.tpl');
@@ -155,6 +155,7 @@ function display_content(&$a) {
'$id' => $item['id'],
'$likethis' => t("I like this \x28toggle\x29"),
'$nolike' => t("I don't like this \x28toggle\x29"),
+ '$share' => t('Share'),
'$wait' => t('Please wait')
));
}
@@ -216,6 +217,9 @@ function display_content(&$a) {
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
$profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $item['thumb']);
+ $edpost = '';
+ if((local_user()) && ($item['uid'] == local_user()) && ($item['id'] == $item['parent']) && (intval($item['wall']) == 1))
+ $edpost = '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>';
// Can we use our special contact URL for this author?
if(strlen($item['author-link'])) {
@@ -275,6 +279,7 @@ function display_content(&$a) {
'$owner_photo' => $owner_photo,
'$owner_name' => $owner_name,
'$plink' => get_plink($item),
+ '$edpost' => $edpost,
'$drop' => $drop,
'$vote' => $likebuttons,
'$like' => $like,
diff --git a/mod/editpost.php b/mod/editpost.php
new file mode 100644
index 000000000..862ba937f
--- /dev/null
+++ b/mod/editpost.php
@@ -0,0 +1,91 @@
+<?php
+
+require_once('acl_selectors.php');
+
+function editpost_content(&$a) {
+
+ $o = '';
+
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ $post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
+
+ if(! $post_id) {
+ notice( t('Item not found') . EOL);
+ return;
+ }
+
+ $r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($post_id),
+ intval(local_user())
+ );
+
+ if(! count($r)) {
+ notice( t('Item not found') . EOL);
+ return;
+ }
+
+
+ $o .= '<h2>' . t('Edit post') . '</h2>';
+
+ $tpl = load_view_file('view/jot-header.tpl');
+
+ $a->page['htmlhead'] .= replace_macros($tpl, array(
+ '$baseurl' => $a->get_baseurl(),
+ '$geotag' => $geotag,
+ '$nickname' => $a->user['nickname']
+ ));
+
+
+ $tpl = load_view_file("view/jot.tpl");
+
+ if(($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid'])))))
+ $lockstate = 'lock';
+ else
+ $lockstate = 'unlock';
+
+ $celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
+
+ $jotplugins = '';
+ $jotnets = '';
+ call_hooks('jot_tool', $jotplugins);
+ call_hooks('jot_networks', $jotnets);
+
+ $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
+
+ $o .= replace_macros($tpl,array(
+ '$return_path' => $_SESSION['return_url'],
+ '$action' => 'item',
+ '$share' => t('Edit'),
+ '$upload' => t('Upload photo'),
+ '$weblink' => t('Insert web link'),
+ '$youtube' => t('Insert YouTube video'),
+ '$video' => t('Insert Vorbis [.ogg] video'),
+ '$audio' => t('Insert Vorbis [.ogg] audio'),
+ '$setloc' => t('Set your location'),
+ '$noloc' => t('Clear browser location'),
+ '$wait' => t('Please wait'),
+ '$permset' => t('Permission settings'),
+ '$content' => $r[0]['body'],
+ '$post_id' => $post_id,
+ '$baseurl' => $a->get_baseurl(),
+ '$defloc' => $a->user['default-location'],
+ '$visitor' => 'none',
+ '$emailcc' => t('CC: email addresses'),
+ '$jotnets' => $jotnets,
+ '$emtitle' => t('Example: bob@example.com, mary@example.com'),
+ '$lockstate' => $lockstate,
+ '$acl' => '', // populate_acl((($group) ? $group_acl : $a->user), $celeb),
+ '$bang' => (($group) ? '!' : ''),
+ '$profile_uid' => $_SESSION['uid']
+ ));
+
+
+ return $o;
+
+}
+
+
diff --git a/mod/item.php b/mod/item.php
index da317a8c0..5cefb3be3 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -51,7 +51,7 @@ function item_post(&$a) {
}
$profile_uid = ((x($_POST,'profile_uid')) ? intval($_POST['profile_uid']) : 0);
-
+ $post_id = ((x($_POST['post_id'])) ? intval($_POST['post_id']) : 0);
if(! can_write_wall($a,$profile_uid)) {
notice( t('Permission denied.') . EOL) ;
@@ -60,6 +60,21 @@ function item_post(&$a) {
killme();
}
+
+ // is this an edited post?
+
+ $orig_post = null;
+
+ if($post_id) {
+ $i = q("SELECT * FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
+ intval($profile_uid),
+ intval($post_id)
+ );
+ if(! count($i))
+ killme();
+ $orig_post = $i[0];
+ }
+
$user = null;
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
@@ -68,37 +83,51 @@ function item_post(&$a) {
if(count($r))
$user = $r[0];
-
- $str_group_allow = perms2str($_POST['group_allow']);
- $str_contact_allow = perms2str($_POST['contact_allow']);
- $str_group_deny = perms2str($_POST['group_deny']);
- $str_contact_deny = perms2str($_POST['contact_deny']);
-
- $private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0);
-
- if(($parent_item) &&
- (($parent_item['private'])
- || strlen($parent_item['allow_cid'])
- || strlen($parent_item['allow_gid'])
- || strlen($parent_item['deny_cid'])
- || strlen($parent_item['deny_gid'])
- )
- ) {
- $private = 1;
+ if($orig_post) {
+ $str_group_allow = $orig_post['allow_gid'];
+ $str_contact_allow = $orig_post['allow_cid'];
+ $str_group_deny = $orig_post['deny_gid'];
+ $str_contact_deny = $orig_post['deny_cid'];
+ $title = $orig_post['title'];
+ $location = $orig_post['location'];
+ $coord = $orig_post['coord'];
+ $verb = $orig_post['verb'];
+ $emailcc = $orig_post['emailcc'];
+
+ $body = escape_tags(trim($_POST['body']));
+ $private = $orig_post['private'];
}
+ else {
+ $str_group_allow = perms2str($_POST['group_allow']);
+ $str_contact_allow = perms2str($_POST['contact_allow']);
+ $str_group_deny = perms2str($_POST['group_deny']);
+ $str_contact_deny = perms2str($_POST['contact_deny']);
+ $title = notags(trim($_POST['title']));
+ $location = notags(trim($_POST['location']));
+ $coord = notags(trim($_POST['coord']));
+ $verb = notags(trim($_POST['verb']));
+ $emailcc = notags(trim($_POST['emailcc']));
+
+ $body = escape_tags(trim($_POST['body']));
+ $private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0);
+
+ if(($parent_item) &&
+ (($parent_item['private'])
+ || strlen($parent_item['allow_cid'])
+ || strlen($parent_item['allow_gid'])
+ || strlen($parent_item['deny_cid'])
+ || strlen($parent_item['deny_gid'])
+ )) {
+ $private = 1;
+ }
+
- $title = notags(trim($_POST['title']));
- $body = escape_tags(trim($_POST['body']));
- $location = notags(trim($_POST['location']));
- $coord = notags(trim($_POST['coord']));
- $verb = notags(trim($_POST['verb']));
- $emailcc = notags(trim($_POST['emailcc']));
-
- if(! strlen($body)) {
- notice( t('Empty post discarded.') . EOL );
- if(x($_POST,'return'))
- goaway($a->get_baseurl() . "/" . $_POST['return'] );
- killme();
+ if(! strlen($body)) {
+ notice( t('Empty post discarded.') . EOL );
+ if(x($_POST,'return'))
+ goaway($a->get_baseurl() . "/" . $_POST['return'] );
+ killme();
+ }
}
// get contact info for poster
@@ -151,7 +180,6 @@ function item_post(&$a) {
}
}
-
/**
*
* When a photo was uploaded into the message using the (profile wall) ajax
@@ -212,6 +240,8 @@ function item_post(&$a) {
if(count($tags)) {
foreach($tags as $tag) {
if(strpos($tag,'#') === 0) {
+ if(strpos($tag,'[url='))
+ continue;
$basetag = str_replace('_',' ',substr($tag,1));
$body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body);
if(strlen($str_tags))
@@ -220,6 +250,8 @@ function item_post(&$a) {
continue;
}
if(strpos($tag,'@') === 0) {
+ if(strpos($tag,'[url='))
+ continue;
$stat = false;
$name = substr($tag,1);
if((strpos($name,'@')) || (strpos($name,'http://'))) {
@@ -283,15 +315,13 @@ function item_post(&$a) {
$str_tags .= ',';
$str_tags .= '@[url=' . $alias . ']' . $newname . '[/url]';
}
-
}
}
}
}
-
-
$wall = 0;
+
if($post_type === 'wall' || $post_type === 'wall-comment')
$wall = 1;
@@ -342,9 +372,31 @@ function item_post(&$a) {
$datarray['parent'] = $parent;
$datarray['self'] = $self;
+ if($orig_post)
+ $datarray['edit'] = true;
call_hooks('post_local',$datarray);
+
+ if($orig_post) {
+ $r = q("UPDATE `item` SET `body` = '%s', `edited` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ dbesc($body),
+ dbesc(datetime_convert()),
+ intval($post_id),
+ intval($profile_uid)
+ );
+
+ proc_run('php', "include/notifier.php", 'edit_post', "$post_id");
+ if((x($_POST,'return')) && strlen($_POST['return'])) {
+ logger('return: ' . $_POST['return']);
+ goaway($a->get_baseurl() . "/" . $_POST['return'] );
+ }
+ killme();
+ }
+ else
+ $post_id = 0;
+
+
$r = q("INSERT INTO `item` (`uid`,`type`,`wall`,`gravity`,`contact-id`,`owner-name`,`owner-link`,`owner-avatar`,
`author-name`, `author-link`, `author-avatar`, `created`, `edited`, `changed`, `uri`, `title`, `body`, `location`, `coord`,
`tag`, `inform`, `verb`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `private` )
@@ -532,7 +584,7 @@ function item_content(&$a) {
require_once('include/security.php');
- $uid = $_SESSION['uid'];
+ $uid = local_user();
if(($a->argc == 3) && ($a->argv[1] === 'drop') && intval($a->argv[2])) {
diff --git a/mod/network.php b/mod/network.php
index 32c7216d4..81c85f0ff 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -92,6 +92,8 @@ function network_content(&$a, $update = 0) {
'$upload' => t('Upload photo'),
'$weblink' => t('Insert web link'),
'$youtube' => t('Insert YouTube video'),
+ '$video' => t('Insert Vorbis [.ogg] video'),
+ '$audio' => t('Insert Vorbis [.ogg] audio'),
'$setloc' => t('Set your location'),
'$noloc' => t('Clear browser location'),
'$wait' => t('Please wait'),
@@ -217,6 +219,7 @@ function network_content(&$a, $update = 0) {
$cmnt_tpl = load_view_file('view/comment_item.tpl');
$like_tpl = load_view_file('view/like.tpl');
+ $noshare_tpl = load_view_file('view/like_noshare.tpl');
$tpl = load_view_file('view/wall_item.tpl');
$wallwall = load_view_file('view/wallwall_item.tpl');
@@ -360,10 +363,11 @@ function network_content(&$a, $update = 0) {
$likebuttons = '';
if($item['id'] == $item['parent']) {
- $likebuttons = replace_macros($like_tpl,array(
+ $likebuttons = replace_macros((($item['private']) ? $noshare_tpl : $like_tpl),array(
'$id' => $item['id'],
'$likethis' => t("I like this \x28toggle\x29"),
'$nolike' => t("I don't like this \x28toggle\x29"),
+ '$share' => t('Share'),
'$wait' => t('Please wait')
));
}
@@ -383,6 +387,9 @@ function network_content(&$a, $update = 0) {
));
}
+ $edpost = '';
+ if(($item['id'] == $item['parent']) && (intval($item['wall']) == 1))
+ $edpost = '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>';
$drop = replace_macros(load_view_file('view/wall_item_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
$photo = $item['photo'];
@@ -451,6 +458,7 @@ function network_content(&$a, $update = 0) {
'$owner_photo' => $owner_photo,
'$owner_name' => $owner_name,
'$plink' => get_plink($item),
+ '$edpost' => $edpost,
'$drop' => $drop,
'$vote' => $likebuttons,
'$like' => $like,
diff --git a/mod/photos.php b/mod/photos.php
index 854c6ee14..8298d0d3f 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -310,6 +310,7 @@ foreach($_FILES AS $key => $val) {
$arr['deny_gid'] = $p[0]['deny_gid'];
$arr['last-child'] = 1;
$arr['visible'] = $visibility;
+
$arr['body'] = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']'
. '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.jpg' . '[/img]'
. '[/url]';
@@ -909,6 +910,32 @@ function photos_content(&$a) {
return;
}
+ $prevlink = '';
+ $nextlink = '';
+
+ $prvnxt = q("SELECT `resource-id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0
+ $sql_extra ORDER BY `created` DESC ",
+ dbesc($ph[0]['album']),
+ intval($owner_uid)
+ );
+
+ if(count($prvnxt)) {
+ for($z = 0; $z < count($prvnxt); $z++) {
+ if($prvnxt[$z]['resource-id'] == $ph[0]['resource-id']) {
+ $prv = $z - 1;
+ $nxt = $z + 1;
+ if($prv < 0)
+ $prv = count($prvnxt) - 1;
+ if($nxt >= count($prvnxt))
+ $nxt = 0;
+ break;
+ }
+ }
+ $prevlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$prv]['resource-id'] ;
+ $nextlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$nxt]['resource-id'] ;
+ }
+
+
if(count($ph) == 1)
$hires = $lores = $ph[0];
if(count($ph) > 1) {
@@ -938,11 +965,18 @@ function photos_content(&$a) {
$o .= '</div>';
}
+ if($prevlink)
+ $o .= '<div id="photo-prev-link"><a href="' . $prevlink .'">' . t('<< Prev') . '</a></div>' ;
- $o .= '<a href="' . $a->get_baseurl() . '/photo/'
+ $o .= '<div id="photo-photo"><a href="' . $a->get_baseurl() . '/photo/'
. $hires['resource-id'] . '-' . $hires['scale'] . '.jpg" title="'
. t('View Full Size') . '" ><img src="' . $a->get_baseurl() . '/photo/'
- . $lores['resource-id'] . '-' . $lores['scale'] . '.jpg' . '" /></a>';
+ . $lores['resource-id'] . '-' . $lores['scale'] . '.jpg' . '" /></a></div>';
+
+ if($nextlink)
+ $o .= '<div id="photo-next-link"><a href="' . $nextlink .'">' . t('Next >>') . '</a></div>';
+
+ $o .= '<div id="photo-photo-end"></div>';
// Do we have an item for this photo?
@@ -1040,7 +1074,7 @@ function photos_content(&$a) {
$tpl = load_view_file('view/photo_item.tpl');
$return_url = $a->cmd;
- $like_tpl = load_view_file('view/like.tpl');
+ $like_tpl = load_view_file('view/lik_noshare.tpl');
$likebuttons = '';
@@ -1049,6 +1083,7 @@ function photos_content(&$a) {
'$id' => $item['id'],
'$likethis' => t("I like this \x28toggle\x29"),
'$nolike' => t("I don't like this \x28toggle\x29"),
+ '$share' => t('Share'),
'$wait' => t('Please wait')
));
}
diff --git a/mod/profile.php b/mod/profile.php
index 5615573b9..1053e4a1e 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -28,6 +28,11 @@ function profile_init(&$a) {
$a->page['htmlhead'] .= '<link rel="openid.delegate" href="' . $delegate . '" />' . "\r\n";
}
+ $keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : '');
+ $keywords = str_replace(array(',',' ',',,'),array(' ',',',','),$keywords);
+ if(strlen($keywords))
+ $a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\r\n" ;
+
$a->page['htmlhead'] .= '<meta name="dfrn-global-visibility" content="' . (($a->profile['net-publish']) ? 'true' : 'false') . '" />' . "\r\n" ;
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/dfrn_poll/' . $which .'" />' . "\r\n" ;
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : ''));
@@ -152,6 +157,8 @@ function profile_content(&$a, $update = 0) {
'$upload' => t('Upload photo'),
'$weblink' => t('Insert web link'),
'$youtube' => t('Insert YouTube video'),
+ '$video' => t('Insert Vorbis [.ogg] video'),
+ '$audio' => t('Insert Vorbis [.ogg] audio'),
'$setloc' => t('Set your location'),
'$noloc' => t('Clear browser location'),
'$wait' => t('Please wait'),
@@ -260,6 +267,7 @@ function profile_content(&$a, $update = 0) {
$cmnt_tpl = load_view_file('view/comment_item.tpl');
$like_tpl = load_view_file('view/like.tpl');
+ $noshare_tpl = load_view_file('view/like_noshare.tpl');
$tpl = load_view_file('view/wall_item.tpl');
@@ -302,10 +310,11 @@ function profile_content(&$a, $update = 0) {
if(can_write_wall($a,$a->profile['profile_uid'])) {
if($item['id'] == $item['parent']) {
- $likebuttons = replace_macros($like_tpl,array(
+ $likebuttons = replace_macros((($item['private']) ? $noshare_tpl : $like_tpl),array(
'$id' => $item['id'],
'$likethis' => t("I like this \x28toggle\x29"),
'$nolike' => t("I don't like this \x28toggle\x29"),
+ '$share' => t('Share'),
'$wait' => t('Please wait')
));
}
@@ -339,6 +348,12 @@ function profile_content(&$a, $update = 0) {
else
$sparkle = '';
+
+ $edpost = '';
+ if((local_user()) && ($a->profile['profile_uid'] == local_user()) && ($item['id'] == $item['parent']) && (intval($item['wall']) == 1))
+ $edpost = '<a class="editpost" href="' . $a->get_baseurl() . '/editpost/' . $item['id'] . '" title="' . t('Edit') . '"><img src="images/pencil.gif" /></a>';
+
+
// We would prefer to use our own avatar link for this item because the one in the author-avatar might reference a
// remote site (which could be down). We will use author-avatar if we haven't got something stored locally.
// We use this same logic block in mod/network.php to determine it this is a third party post and we don't have any
@@ -391,6 +406,7 @@ function profile_content(&$a, $update = 0) {
'$location' => $location,
'$indent' => $indent,
'$plink' => get_plink($item),
+ '$edpost' => $edpost,
'$drop' => $drop,
'$like' => $like,
'$vote' => $likebuttons,
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index 748adc438..68c05625b 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -87,7 +87,7 @@ function profile_photo_post(&$a) {
);
// Update global directory in background
- $url = $_SESSION['my_url'];
+ $url = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
if($url && strlen(get_config('system','directory_submit_url')))
proc_run('php',"include/directory.php","$url");
}
diff --git a/mod/profiles.php b/mod/profiles.php
index 409999a3e..434f58adf 100644
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -55,7 +55,8 @@ function profiles_post(&$a) {
$region = notags(trim($_POST['region']));
$postal_code = notags(trim($_POST['postal_code']));
$country_name = notags(trim($_POST['country_name']));
- $keywords = notags(trim($_POST['keywords']));
+ $pub_keywords = notags(trim($_POST['pub_keywords']));
+ $prv_keywords = notags(trim($_POST['prv_keywords']));
$marital = notags(trim($_POST['marital']));
if($marital != $orig[0]['marital'])
$maritalchanged = true;
@@ -147,7 +148,8 @@ function profiles_post(&$a) {
`homepage` = '%s',
`politic` = '%s',
`religion` = '%s',
- `keywords` = '%s',
+ `pub_keywords` = '%s',
+ `prv_keywords` = '%s',
`about` = '%s',
`interest` = '%s',
`contact` = '%s',
@@ -176,7 +178,8 @@ function profiles_post(&$a) {
dbesc($homepage),
dbesc($politic),
dbesc($religion),
- dbesc($keywords),
+ dbesc($pub_keywords),
+ dbesc($prv_keywords),
dbesc($about),
dbesc($interest),
dbesc($contact),
@@ -383,7 +386,8 @@ function profiles_content(&$a) {
'$homepage' => $r[0]['homepage'],
'$politic' => $r[0]['politic'],
'$religion' => $r[0]['religion'],
- '$keywords' => $r[0]['keywords'],
+ '$pub_keywords' => $r[0]['pub_keywords'],
+ '$prv_keywords' => $r[0]['prv_keywords'],
'$music' => $r[0]['music'],
'$book' => $r[0]['book'],
'$tv' => $r[0]['tv'],
diff --git a/mod/register.php b/mod/register.php
index 3530ef588..95e9d581f 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -401,7 +401,9 @@ function register_content(&$a) {
$oidlabel = t("Your OpenID \x28optional\x29: ");
}
- $realpeople = t('Members of this network prefer to communicate with real people who use their real names.');
+ // I set this and got even more fake names than before...
+
+ $realpeople = ''; // t('Members of this network prefer to communicate with real people who use their real names.');
if(get_config('system','publish_all')) {
$profile_publish_reg = '<input type="hidden" name="profile_publish_reg" value="1" />';
diff --git a/mod/search.php b/mod/search.php
index 561bb6c62..db7279fb5 100644
--- a/mod/search.php
+++ b/mod/search.php
@@ -51,7 +51,7 @@ function search_content(&$a) {
$a->set_pager_total($r[0]['total']);
if(! $r[0]['total']) {
- notice('No results.');
+ notice( t('No results.') . EOL);
return $o;
}
@@ -134,13 +134,6 @@ function search_content(&$a) {
}
}
-
- if(! $r[0]['total']) {
- notice('No results.');
- return $o;
- }
-
-
$o .= paginate($a);
return $o;
diff --git a/mod/settings.php b/mod/settings.php
index ebe07612e..85029b3d7 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -63,6 +63,7 @@ function settings_post(&$a) {
$defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : '');
$openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
$maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
+ $expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0);
$allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
$publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
@@ -139,7 +140,7 @@ function settings_post(&$a) {
$openidserver = '';
}
- $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `openidserver` = '%s' WHERE `uid` = %d LIMIT 1",
+ $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `expire` = %d, `openidserver` = '%s' WHERE `uid` = %d LIMIT 1",
dbesc($username),
dbesc($email),
dbesc($openid),
@@ -154,6 +155,7 @@ function settings_post(&$a) {
intval($allow_location),
dbesc($theme),
intval($maxreq),
+ intval($expire),
dbesc($openidserver),
intval(local_user())
);
@@ -238,6 +240,7 @@ function settings_content(&$a) {
$defloc = $a->user['default-location'];
$openid = $a->user['openid'];
$maxreq = $a->user['maxreq'];
+ $expire = ((intval($a->user['expire'])) ? $a->user['expire'] : '');
if(! strlen($a->user['timezone']))
$timezone = date_default_timezone_get();
@@ -358,6 +361,7 @@ function settings_content(&$a) {
'$sel_notify4' => (($notify & NOTIFY_COMMENT) ? ' checked="checked" ' : ''),
'$sel_notify5' => (($notify & NOTIFY_MAIL) ? ' checked="checked" ' : ''),
'$maxreq' => $maxreq,
+ '$expire' => $expire,
'$theme' => $theme_selector,
'$pagetype' => $pagetype
));
diff --git a/mod/share.php b/mod/share.php
new file mode 100644
index 000000000..8a8229e8a
--- /dev/null
+++ b/mod/share.php
@@ -0,0 +1,23 @@
+<?php
+
+require_once('bbcode.php');
+
+function share_init(&$a) {
+
+ $post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
+ if((! $post_id) || (! local_user()))
+ killme();
+
+ $r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1",
+ intval($post_id)
+ );
+ if(! count($r) || $r[0]['private'])
+ killme();
+
+ $o = '';
+
+ $o .= '&#x2672; <a href="' . $r[0]['author-link'] . '">' . $r[0]['author-name'] . '</a><br />';
+ $o .= prepare_body($r[0]);
+ echo $o . '<br />';
+ killme();
+} \ No newline at end of file
diff --git a/update.php b/update.php
index fe8052b00..0be919f3f 100644
--- a/update.php
+++ b/update.php
@@ -326,7 +326,7 @@ function update_1033() {
`k` CHAR( 255 ) NOT NULL PRIMARY KEY ,
`v` TEXT NOT NULL,
`updated` DATETIME NOT NULL
- ) ENGINE = MYISAM DEFAULT CHARSET=utf8;");
+ ) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
}
@@ -377,3 +377,33 @@ function update_1038() {
function update_1039() {
q("ALTER TABLE `addon` ADD `timestamp` BIGINT NOT NULL DEFAULT '0'");
}
+
+
+function update_1040() {
+
+ q("CREATE TABLE IF NOT EXISTS `fcontact` (
+ `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+ `url` CHAR( 255 ) NOT NULL ,
+ `name` CHAR( 255 ) NOT NULL ,
+ `photo` CHAR( 255 ) NOT NULL
+ ) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
+
+ q("CREATE TABLE IF NOT EXISTS `ffinder` (
+ `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+ `uid` INT UNSIGNED NOT NULL ,
+ `cid` INT UNSIGNED NOT NULL ,
+ `fid` INT UNSIGNED NOT NULL
+ ) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
+
+}
+
+function update_1041() {
+ q("ALTER TABLE `profile` CHANGE `keywords` `prv_keywords` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
+ q("ALTER TABLE `profile` ADD `pub_keywords` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `religion` ");
+}
+
+function update_1042() {
+ q("ALTER TABLE `user` ADD `expire` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `maxreq` ");
+}
+
+
diff --git a/view/de/jot-header.tpl b/view/de/jot-header.tpl
index 58403f1ba..62fbe84e4 100644
--- a/view/de/jot-header.tpl
+++ b/view/de/jot-header.tpl
@@ -104,6 +104,20 @@ tinyMCE.init({
}
}
+ function jotVideoURL() {
+ reply = prompt("Please enter a video(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]');
+ }
+ }
+
+ function jotAudioURL() {
+ reply = prompt("Please enter an audio(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]');
+ }
+ }
+
function jotGetLocation() {
reply = prompt("Wo bist du im Moment?", $('#jot-location').val());
if(reply && reply.length) {
@@ -111,6 +125,16 @@ tinyMCE.init({
}
}
+ function jotShare(id) {
+ $('#like-rotator-' + id).show();
+ $.get('share/' + id, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#like-rotator-' + id).hide();
+ $(window).scrollTop(0);
+ });
+ }
+
+
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
diff --git a/view/de/profile_edit.tpl b/view/de/profile_edit.tpl
index 09a761023..840597ddc 100644
--- a/view/de/profile_edit.tpl
+++ b/view/de/profile_edit.tpl
@@ -134,11 +134,17 @@ $sexual
</div>
<div id="profile-edit-religion-end"></div>
-<div id="profile-edit-keywords-wrapper" >
-<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Keywords: </label>
-<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Example: fishing photography software" value="$keywords" />
-</div><div id="profile-edit-keywords-desc">(Used for searching public profiles, never shown to others)</div>
-<div id="profile-edit-keywords-end"></div>
+<div id="profile-edit-pubkeywords-wrapper" >
+<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
+<input type="text" size="32" name="pubkeywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
+</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
+<div id="profile-edit-pubkeywords-end"></div>
+
+<div id="profile-edit-prvkeywords-wrapper" >
+<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
+<input type="text" size="32" name="prvkeywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
+</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
+<div id="profile-edit-prvkeywords-end"></div>
<div class="profile-edit-submit-wrapper" >
diff --git a/view/de/settings.tpl b/view/de/settings.tpl
index 0ef50546f..675ef675f 100644
--- a/view/de/settings.tpl
+++ b/view/de/settings.tpl
@@ -78,7 +78,7 @@ $profile_in_net_dir
<div id="settings-default-perms" class="settings-default-perms" >
- <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >&#x21e9; $permissions</div>
+ <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none;" >
@@ -89,6 +89,10 @@ $profile_in_net_dir
</div>
<div id="settings-default-perms-end"></div>
+<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
+<div id="settings-expire-end"></div>
+
+
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
diff --git a/view/en/jot-header.tpl b/view/en/jot-header.tpl
index fe818410e..d73fe7d62 100644
--- a/view/en/jot-header.tpl
+++ b/view/en/jot-header.tpl
@@ -104,6 +104,21 @@ tinyMCE.init({
}
}
+ function jotVideoURL() {
+ reply = prompt("Please enter a video(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]');
+ }
+ }
+
+ function jotAudioURL() {
+ reply = prompt("Please enter an audio(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]');
+ }
+ }
+
+
function jotGetLocation() {
reply = prompt("Where are you right now?", $('#jot-location').val());
if(reply && reply.length) {
@@ -111,6 +126,14 @@ tinyMCE.init({
}
}
+ function jotShare(id) {
+ $('#like-rotator-' + id).show();
+ $.get('share/' + id, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#like-rotator-' + id).hide();
+ $(window).scrollTop(0);
+ });
+ }
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
diff --git a/view/en/profile_edit.tpl b/view/en/profile_edit.tpl
index b0d4850d0..6c7d74daf 100644
--- a/view/en/profile_edit.tpl
+++ b/view/en/profile_edit.tpl
@@ -134,11 +134,17 @@ $sexual
</div>
<div id="profile-edit-religion-end"></div>
-<div id="profile-edit-keywords-wrapper" >
-<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Keywords: </label>
-<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Example: fishing photography software" value="$keywords" />
-</div><div id="profile-edit-keywords-desc">(Used for searching public profiles, never shown to others)</div>
-<div id="profile-edit-keywords-end"></div>
+<div id="profile-edit-pubkeywords-wrapper" >
+<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
+<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
+</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
+<div id="profile-edit-pubkeywords-end"></div>
+
+<div id="profile-edit-prvkeywords-wrapper" >
+<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
+<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
+</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
+<div id="profile-edit-prvkeywords-end"></div>
<div class="profile-edit-submit-wrapper" >
diff --git a/view/en/settings.tpl b/view/en/settings.tpl
index 97d67cbf6..39b18c126 100644
--- a/view/en/settings.tpl
+++ b/view/en/settings.tpl
@@ -76,9 +76,8 @@ $profile_in_dir
$profile_in_net_dir
-
<div id="settings-default-perms" class="settings-default-perms" >
- <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >&#x21e9; $permissions</div>
+ <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none;" >
@@ -89,6 +88,10 @@ $profile_in_net_dir
</div>
<div id="settings-default-perms-end"></div>
+<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
+<div id="settings-expire-end"></div>
+
+
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
diff --git a/view/fr/jot-header.tpl b/view/fr/jot-header.tpl
index ff7e543a5..b1b6dacf0 100644
--- a/view/fr/jot-header.tpl
+++ b/view/fr/jot-header.tpl
@@ -103,6 +103,20 @@ tinyMCE.init({
}
}
+ function jotVideoURL() {
+ reply = prompt("Please enter a video(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]');
+ }
+ }
+
+ function jotAudioURL() {
+ reply = prompt("Please enter an audio(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]');
+ }
+ }
+
function jotGetLocation() {
reply = prompt("Where are you right now?", $('#jot-location').val());
if(reply && reply.length) {
@@ -110,6 +124,15 @@ tinyMCE.init({
}
}
+ function jotShare(id) {
+ $('#like-rotator-' + id).show();
+ $.get('share/' + id, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#like-rotator-' + id).hide();
+ $(window).scrollTop(0);
+ });
+ }
+
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
diff --git a/view/fr/profile_edit.tpl b/view/fr/profile_edit.tpl
index beff3b8bd..b28255188 100644
--- a/view/fr/profile_edit.tpl
+++ b/view/fr/profile_edit.tpl
@@ -134,11 +134,17 @@ $sexual
</div>
<div id="profile-edit-religion-end"></div>
-<div id="profile-edit-keywords-wrapper" >
-<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Keywords: </label>
-<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Example: fishing photography software" value="$keywords" />
-</div><div id="profile-edit-keywords-desc">(Used for searching public profiles, never shown to others)</div>
-<div id="profile-edit-keywords-end"></div>
+<div id="profile-edit-pubkeywords-wrapper" >
+<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
+<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
+</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
+<div id="profile-edit-pubkeywords-end"></div>
+
+<div id="profile-edit-prvkeywords-wrapper" >
+<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
+<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
+</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
+<div id="profile-edit-prvkeywords-end"></div>
<div class="profile-edit-submit-wrapper" >
diff --git a/view/fr/settings.tpl b/view/fr/settings.tpl
index 97d67cbf6..eb386579f 100644
--- a/view/fr/settings.tpl
+++ b/view/fr/settings.tpl
@@ -78,7 +78,7 @@ $profile_in_net_dir
<div id="settings-default-perms" class="settings-default-perms" >
- <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >&#x21e9; $permissions</div>
+ <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none;" >
@@ -89,6 +89,9 @@ $profile_in_net_dir
</div>
<div id="settings-default-perms-end"></div>
+<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
+<div id="settings-expire-end"></div>
+
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Submit" />
</div>
diff --git a/view/fr/strings.php b/view/fr/strings.php
index 423645c86..d177c07b8 100644
--- a/view/fr/strings.php
+++ b/view/fr/strings.php
@@ -16,14 +16,14 @@ $a->strings['last'] = 'last';
$a->strings['next'] = 'next';
$a->strings[' likes this.'] = ' aime ça.';
$a->strings[' doesn\'t like this.'] = ' n\'aime pas ça.';
-$a->strings['people'] = 'personne(s)';
-$a->strings['like this.'] = 'aime(nt) ça.';
-$a->strings['don\'t like this.'] = 'n\'aime(nt) pas ça.';
+$a->strings['people'] = 'personnes';
+$a->strings['like this.'] = 'aiment ça.';
+$a->strings['don\'t like this.'] = 'n\'aiment pas ça.';
$a->strings['and'] = 'et';
$a->strings[', and '] = ', et ';
-$a->strings[' other people'] = ' autre(s) personne(s)';
-$a->strings[' like this.'] = ' aime(nt) ça.';
-$a->strings[' don\'t like this.'] = ' n\'aime(nt) pas ça.';
+$a->strings[' other people'] = ' autres personnes';
+$a->strings[' like this.'] = ' aiment ça.';
+$a->strings[' don\'t like this.'] = ' n\'aiment pas ça.';
$a->strings['No contacts'] = 'Aucun contact';
$a->strings['Contacts'] = 'Contacts';
$a->strings['View Contacts'] = 'Voir les contacts';
diff --git a/view/it/jot-header.tpl b/view/it/jot-header.tpl
index 117cd1651..8ca5a0717 100644
--- a/view/it/jot-header.tpl
+++ b/view/it/jot-header.tpl
@@ -104,6 +104,20 @@ tinyMCE.init({
}
}
+ function jotVideoURL() {
+ reply = prompt("Please enter a video(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]');
+ }
+ }
+
+ function jotAudioURL() {
+ reply = prompt("Please enter an audio(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]');
+ }
+ }
+
function jotGetLocation() {
reply = prompt("Dove ti trovi ora?", $('#jot-location').val());
if(reply && reply.length) {
@@ -111,6 +125,15 @@ tinyMCE.init({
}
}
+ function jotShare(id) {
+ $('#like-rotator-' + id).show();
+ $.get('share/' + id, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#like-rotator-' + id).hide();
+ $(window).scrollTop(0);
+ });
+ }
+
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
diff --git a/view/it/profile_edit.tpl b/view/it/profile_edit.tpl
index efdb5d448..9f2a13790 100644
--- a/view/it/profile_edit.tpl
+++ b/view/it/profile_edit.tpl
@@ -134,11 +134,17 @@ $sexual
</div>
<div id="profile-edit-religion-end"></div>
-<div id="profile-edit-keywords-wrapper" >
-<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Parole chiave: </label>
-<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Esempio: pescare fotografia software" value="$keywords" />
-</div><div id="profile-edit-keywords-desc">(Usati per la ricerca dei profili pubblci, mai mostrati agli altri)</div>
-<div id="profile-edit-keywords-end"></div>
+<div id="profile-edit-pubkeywords-wrapper" >
+<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >[Public] Parole chiave: </label>
+<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Esempio: pescare fotografia software" value="$pub_keywords" />
+</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
+<div id="profile-edit-pubkeywords-end"></div>
+
+<div id="profile-edit-prvkeywords-wrapper" >
+<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Parole chiave: </label>
+<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Esempio: pescare fotografia software" value="$prv_keywords" />
+</div><div id="profile-edit-prvkeywords-desc">(Usati per la ricerca dei profili, mai mostrati agli altri)</div>
+<div id="profile-edit-prvkeywords-end"></div>
<div class="profile-edit-submit-wrapper" >
diff --git a/view/it/settings.tpl b/view/it/settings.tpl
index 3b68923cf..87f40f26f 100644
--- a/view/it/settings.tpl
+++ b/view/it/settings.tpl
@@ -79,7 +79,7 @@ $profile_in_net_dir
<div id="settings-default-perms" class="settings-default-perms" >
- <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >&#x21e9; $permissions</div>
+ <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
<div id="settings-default-perms-menu-end"></div>
<div id="settings-default-perms-select" style="display: none;" >
@@ -90,6 +90,9 @@ $profile_in_net_dir
</div>
<div id="settings-default-perms-end"></div>
+<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
+<div id="settings-expire-end"></div>
+
<div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="Aggiorna" />
</div>
diff --git a/view/jot.tpl b/view/jot.tpl
index 68139ddc0..fd85b9267 100644
--- a/view/jot.tpl
+++ b/view/jot.tpl
@@ -26,7 +26,13 @@
<img id="profile-link" src="images/link-icon.gif" alt="$weblink" title="$weblink" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink();" />
</div>
<div id="profile-youtube-wrapper" style="display: $visitor;" >
- <img id="profile-video" src="images/youtube_icon.gif" alt="$youtube" title="$youtube" onclick="jotGetVideo();" />
+ <img id="profile-youtube" src="images/youtube_icon.gif" alt="$youtube" title="$youtube" onclick="jotGetVideo();" />
+ </div>
+ <div id="profile-video-wrapper" style="display: $visitor;" >
+ <img id="profile-video" src="images/video.gif" alt="$video" title="$video" onclick="jotVideoURL();" />
+ </div>
+ <div id="profile-audio-wrapper" style="display: $visitor;" >
+ <img id="profile-audio" src="images/audio.gif" alt="$audio" title="$audio" onclick="jotAudioURL();" />
</div>
<div id="profile-location-wrapper" style="display: $visitor;" >
<img id="profile-location" src="images/globe.gif" alt="$setloc" title="$setloc" onclick="jotGetLocation();" />
diff --git a/view/like.tpl b/view/like.tpl
index e36a624a4..0a1c6bfe8 100644
--- a/view/like.tpl
+++ b/view/like.tpl
@@ -1,5 +1,6 @@
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
<img src="images/like.gif" alt="$likethis" title="$likethis" onclick="dolike($id,'like');" />
<img src="images/dislike.gif" alt="$nolike" title="$nolike" onclick="dolike($id,'dislike');" />
+ <img src="images/recycle.gif" alt="$share" title="$share" class="wall-item-share-buttons" onclick="jotShare($id);" />
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>
diff --git a/view/like_noshare.tpl b/view/like_noshare.tpl
new file mode 100644
index 000000000..e36a624a4
--- /dev/null
+++ b/view/like_noshare.tpl
@@ -0,0 +1,5 @@
+<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
+ <img src="images/like.gif" alt="$likethis" title="$likethis" onclick="dolike($id,'like');" />
+ <img src="images/dislike.gif" alt="$nolike" title="$nolike" onclick="dolike($id,'dislike');" />
+ <img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
+ </div>
diff --git a/view/sv/cmnt_received_eml.tpl b/view/sv/cmnt_received_eml.tpl
new file mode 100644
index 000000000..60a5711ea
--- /dev/null
+++ b/view/sv/cmnt_received_eml.tpl
@@ -0,0 +1,18 @@
+
+$username,
+
+ '$from' har kommenterat något som du följer.
+
+-----
+$body
+-----
+
+Logga in på $siteurl för att se hela konversationen:
+
+$display
+
+Tack,
+ $sitename admin
+
+
+
diff --git a/view/sv/contact_edit.tpl b/view/sv/contact_edit.tpl
new file mode 100644
index 000000000..40a751073
--- /dev/null
+++ b/view/sv/contact_edit.tpl
@@ -0,0 +1,81 @@
+
+<h2>$header</h2>
+
+<div id="contact-edit-banner-name">$name</div>
+
+<form action="contacts/$contact_id" method="post" >
+<input type="hidden" name="contact_id" value="$contact_id">
+
+<div id="contact-edit-wrapper" >
+
+ <div id="contact-edit-photo-wrapper" >
+ <img id="contact-edit-direction-icon" src="$dir_icon" alt="$alt_text" title="$alt_text" />
+ <div id="contact-edit-photo" >
+ <a href="$url" title="$visit" /><img src="$photo" $sparkle alt="$name" /></a>
+ </div>
+ <div id="contact-edit-photo-end" ></div>
+ </div>
+ <div id="contact-edit-nav-wrapper" >
+
+ <div id="contact-edit-links" >
+ <a href="contacts/$contact_id/block" id="contact-edit-block-link" ><img src="images/b_block.gif" alt="$blockunblock" title="$block_text"/></a>
+ <a href="contacts/$contact_id/ignore" id="contact-edit-ignore-link" ><img src="images/no.gif" alt="$ignorecont" title="$ignore_text"/></a>
+ </div>
+ <div id="contact-drop-links" >
+ <a href="contacts/$contact_id/drop" id="contact-edit-drop-link" onclick="return confirmDelete();" ><img src="images/b_drophide.gif" alt="$delete" title="$delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" /></a>
+ </div>
+ <div id="contact-edit-nav-end"></div>
+
+
+ <div id="contact-edit-poll-wrapper">
+ <div id="contact-edit-last-update-text">$lastupdtext<span id="contact-edit-last-updated">$last_update</span</div>
+ <div id="contact-edit-poll-text">$updpub</div>
+ $poll_interval
+ <div id="contact-edit-update-now"><a href="contacts/$contact_id/update">$udnow</a></div>
+ </div>
+ </div>
+ <div id="contact-edit-end" ></div>
+
+$insecure
+$blocked
+$ignored
+
+<div id="contact-edit-info-wrapper">
+<h4>Kontaktuppgifter / Anteckningar</h4>
+<textarea id="contact-edit-info" rows="10" cols="72" name="info" >$info</textarea>
+</div>
+<div id="contact-edit-info-end"></div>
+
+<input class="contact-edit-submit" type="submit" name="submit" value="Submit" />
+
+<div id="contact-edit-profile-select-text">
+<h4>Profilvisning</h4>
+<p>V&auml;lj vilken profil som ska visas f&ouml;r $name n&auml;r han eller hon tittar p&aring; din profil i s&auml;kert l&auml;ge.
+</p>
+</div>
+$profile_select
+<div id="contact-edit-profile-select-end"></div>
+
+<input class="contact-edit-submit" type="submit" name="submit" value="Submit" />
+
+
+<div id="contact-edit-rating-wrapper">
+<h4>Rykte online</h4>
+<p>
+Ibland kanske dina v&auml;nner vill f&aring; reda p&aring; hur n&aring;gon annan uppf&ouml;r sig p&aring; n&auml;tet innan de v&aring;ga inleda n&aring;gon kontakt. Du kan hj&auml;lpa till genom att ange personens 'rykte'.
+</p>
+<div id="contact-edit-rating-select-wrapper">
+$rating
+</div>
+<div id="contact-edit-rating-explain">
+<p>
+Var v&auml;nlig spendera tid p&aring; att fylla i n&aring;got h&auml;r om du k&auml;nner att det kan vara till n&aring;gon hj&auml;lp f&ouml;r andra.
+</p>
+<textarea id="contact-edit-rating-text" name="reason" rows="3" cols="64" >$reason</textarea>
+</div>
+</div>
+$groups
+
+<input class="contact-edit-submit" type="submit" name="submit" value="Submit" />
+</form>
+</div>
diff --git a/view/sv/cropbody.tpl b/view/sv/cropbody.tpl
new file mode 100644
index 000000000..39395af8e
--- /dev/null
+++ b/view/sv/cropbody.tpl
@@ -0,0 +1,57 @@
+<h1>Crop Image</h1>
+<p id="cropimage-desc">
+Please adjust the image cropping for optimum viewing.
+</p>
+<div id="cropimage-wrapper">
+<img src="$image_url" id="croppa" class="imgCrop" alt="" />
+</div>
+<div id="cropimage-preview-wrapper" >
+<div id="previewWrap" ></div>
+</div>
+
+<script type="text/javascript" language="javascript">
+
+ function onEndCrop( coords, dimensions ) {
+ $( 'x1' ).value = coords.x1;
+ $( 'y1' ).value = coords.y1;
+ $( 'x2' ).value = coords.x2;
+ $( 'y2' ).value = coords.y2;
+ $( 'width' ).value = dimensions.width;
+ $( 'height' ).value = dimensions.height;
+ }
+
+ Event.observe( window, 'load', function() {
+ new Cropper.ImgWithPreview(
+ 'croppa',
+ {
+ previewWrap: 'previewWrap',
+ minWidth: 175,
+ minHeight: 175,
+ maxWidth: 640,
+ maxHeight: 640,
+ ratioDim: { x: 100, y:100 },
+ displayOnInit: true,
+ onEndCrop: onEndCrop
+ }
+ );
+ }
+ );
+
+</script>
+
+<form action="profile_photo/$resource" id="crop-image-form" method="post" />
+
+<input type="hidden" name="imagename" value="$hash" />
+<input type="hidden" name="cropfinal" value="1" />
+<input type="hidden" name="xstart" id="x1" />
+<input type="hidden" name="ystart" id="y1" />
+<input type="hidden" name="xfinal" id="x2" />
+<input type="hidden" name="yfinal" id="y2" />
+<input type="hidden" name="height" id="height" />
+<input type="hidden" name="width" id="width" />
+
+<div id="crop-image-submit-wrapper" >
+<input type="submit" name="submit" value="Done Editing" />
+</div>
+
+</form>
diff --git a/view/sv/dfrn_req_confirm.tpl b/view/sv/dfrn_req_confirm.tpl
new file mode 100644
index 000000000..f053f22af
--- /dev/null
+++ b/view/sv/dfrn_req_confirm.tpl
@@ -0,0 +1,17 @@
+
+<p id="dfrn-request-homecoming" >
+Welcome home $username.
+<br />
+Please confirm your introduction to $dfrn_url.
+
+</p>
+<form id="dfrn-request-homecoming-form" action="dfrn_request/$nickname" method="post">
+<input type="hidden" name="dfrn_url" value="$dfrn_url" />
+<input type="hidden" name="confirm_key" value="$confirm_key" />
+<input type="hidden" name="localconfirm" value="1" />
+$aes_allow
+
+<div id="dfrn-request-homecoming-submit-wrapper" >
+<input id="dfrn-request-homecoming-submit" type="submit" name="submit" value="Confirm" />
+</div>
+</form> \ No newline at end of file
diff --git a/view/sv/directory_header.tpl b/view/sv/directory_header.tpl
new file mode 100644
index 000000000..03eed62b3
--- /dev/null
+++ b/view/sv/directory_header.tpl
@@ -0,0 +1,14 @@
+<h1>Site Directory</h1>
+
+$globaldir
+
+$finding
+
+<div id="directory-search-wrapper">
+<form id="directory-search-form" action="directory" method="get" >
+<input type="text" name="search" id="directory-search" class="search-input" onfocus="this.select();" value="$search" />
+<input type="submit" name="submit" id="directory-search-submit" value="Find" />
+</form>
+</div>
+<div id="directory-search-end"></div>
+
diff --git a/view/sv/follow_notify_eml.tpl b/view/sv/follow_notify_eml.tpl
new file mode 100644
index 000000000..ae758c9a8
--- /dev/null
+++ b/view/sv/follow_notify_eml.tpl
@@ -0,0 +1,14 @@
+
+Dear $myname,
+
+You have a new follower at $sitename - '$requestor'.
+
+You may visit their profile at $url.
+
+Please login to your site to approve or ignore/cancel the request.
+
+$siteurl
+
+Regards,
+
+ $sitename administrator \ No newline at end of file
diff --git a/view/sv/friend_complete_eml.tpl b/view/sv/friend_complete_eml.tpl
new file mode 100644
index 000000000..ab12fcb6b
--- /dev/null
+++ b/view/sv/friend_complete_eml.tpl
@@ -0,0 +1,22 @@
+
+Dear $username,
+
+ Great news... '$fn' at '$dfrn_url' has accepted
+your connection request at '$sitename'.
+
+You are now mutual friends and may exchange status updates, photos, and email
+without restriction.
+
+Please visit your 'Contacts' page at $sitename if you wish to make
+any changes to this relationship.
+
+$siteurl
+
+[For instance, you may create a separate profile with information that is not
+available to the general public - and assign viewing rights to '$fn'].
+
+Sincerely,
+
+ $sitename Administrator
+
+
diff --git a/view/sv/group_edit.tpl b/view/sv/group_edit.tpl
new file mode 100644
index 000000000..e6c7afb49
--- /dev/null
+++ b/view/sv/group_edit.tpl
@@ -0,0 +1,24 @@
+<h2>Group Editor</h2>
+
+
+<div id="group-edit-wrapper" >
+<form action="group/$gid" id="group-edit-form" method="post" >
+<div id="group-edit-name-wrapper" >
+<label id="group-edit-name-label" for="group-edit-name" >Group Name: </label>
+<input type="text" id="group-edit-name" name="groupname" value="$name" />
+</div>
+<div id="group-edit-name-end"></div>
+<div id="group-edit-select-wrapper" >
+<label id="group_members_select_label" for="group_members_select" >Members:</label>
+$selector
+
+</div>
+$drop
+<div id="group_members_select_end"></div>
+<div id="group-edit-submit-wrapper" >
+<input type="submit" name="submit" value="Submit" >
+</div>
+
+<div id="group-edit-select-end" ></div>
+</form>
+</div>
diff --git a/view/sv/group_new.tpl b/view/sv/group_new.tpl
new file mode 100644
index 000000000..a1efa7717
--- /dev/null
+++ b/view/sv/group_new.tpl
@@ -0,0 +1,23 @@
+
+
+
+<div id="group-new-wrapper" >
+<form action="group/new" method="post">
+
+<div id="group-new-text">
+<p>
+Create a group of contacts/friends.
+
+<div id="group-new-input-wrapper">
+<label id="group-new-label" for="group-new-name" >Group Name: </label>
+<input name="groupname" id="group-new-name" />
+</div>
+<div id="group-new-input-end" ></div>
+
+<div id="group-new-submit-wrapper" >
+<input type="submit" name="submit" value="Submit" />
+</form>
+</div>
+<div id="group-new-end"></div>
+
+ \ No newline at end of file
diff --git a/view/sv/head.tpl b/view/sv/head.tpl
new file mode 100644
index 000000000..8f97a11e5
--- /dev/null
+++ b/view/sv/head.tpl
@@ -0,0 +1,32 @@
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<base href="$baseurl" />
+<meta name="generator" content="$generator" />
+<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
+<link rel="shortcut icon" href="$baseurl/images/friendika-32.png" />
+
+<!--[if IE]>
+<script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+<![endif]-->
+<script type="text/javascript" src="$baseurl/include/jquery.js" ></script>
+<script type="text/javascript" src="$baseurl/include/main.js" ></script>
+<script>
+
+ function confirmDelete() { return confirm("Delete this item?"); }
+ function commentOpen(obj,id) {
+ if(obj.value == 'Comment') {
+ obj.value = '';
+ obj.className = "comment-edit-text-full";
+ openMenu("comment-edit-submit-wrapper-" + id);
+ }
+ }
+ function commentClose(obj,id) {
+ if(obj.value == '') {
+ obj.value = 'Comment';
+ obj.className="comment-edit-text-empty";
+ closeMenu("comment-edit-submit-wrapper-" + id);
+ }
+ }
+
+</script>
+
+
diff --git a/view/sv/htconfig.tpl b/view/sv/htconfig.tpl
new file mode 100644
index 000000000..d3bb6b411
--- /dev/null
+++ b/view/sv/htconfig.tpl
@@ -0,0 +1,74 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '$dbhost';
+$db_user = '$dbuser';
+$db_pass = '$dbpass';
+$db_data = '$dbdata';
+
+// If you are using a subdirectory of your domain you will need to put the
+// relative path (from the root of your domain) here.
+// For instance if your URL is 'http://example.com/directory/subdirectory',
+// set $a->path to 'directory/subdirectory'.
+
+$a->path = '$urlpath';
+
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '$timezone';
+
+// What is your site name?
+
+$a->config['sitename'] = "My Friend Network";
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['register_policy'] = REGISTER_OPEN;
+$a->config['register_text'] = '';
+$a->config['admin_email'] = '';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['max_import_size'] = 10000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['php_path'] = '$phpath';
+
+// Location of global directory submission page.
+
+$a->config['system']['directory_submit_url'] = 'http://dir.friendika.com/submit';
+$a->config['system']['directory_search_url'] = 'http://dir.friendika.com/directory?search=';
+
+// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
+
+$a->config['system']['huburl'] = 'http://pubsubhubbub.appspot.com';
+
+// Server-to-server private message encryption (RINO) is allowed by default.
+// Encryption will only be provided if this setting is true and the
+// PHP mcrypt extension is installed on both systems
+
+$a->config['system']['rino_encrypt'] = true;
+
+// default system theme
+
+$a->config['system']['theme'] = 'duepuntozero';
+
+// Addons or plugins are configured here.
+// This is a comma seperated list of addons to enable. Example:
+// $a->config['system']['addon'] = 'js_upload,randplace,oembed';
+
+$a->config['system']['addon'] = 'js_upload';
+
diff --git a/view/sv/insecure_net.tpl b/view/sv/insecure_net.tpl
new file mode 100644
index 000000000..5628639cc
--- /dev/null
+++ b/view/sv/insecure_net.tpl
@@ -0,0 +1,6 @@
+<div id="profile-edit-insecure">
+<p>
+The social network that $name belongs to is an open network with limited or non-existent privacy controls.
+Please use appropriate discretion.
+</p>
+</div> \ No newline at end of file
diff --git a/view/sv/install_db.tpl b/view/sv/install_db.tpl
new file mode 100644
index 000000000..c413689c2
--- /dev/null
+++ b/view/sv/install_db.tpl
@@ -0,0 +1,40 @@
+
+<h3>Friendika Social Network</h3>
+<h3>Installation</h3>
+
+<p>
+In order to install Friendika we need to know how to contact your database. Please contact your hosting provider or site administrator if you have questions about these settings. The database you specify below must already exist. If it does not, please create it before continuing.
+</p>
+
+<form id="install-form" action="$baseurl/install" method="post">
+
+<input type="hidden" name="phpath" value="$phpath" />
+
+<label for="install-dbhost" id="install-dbhost-label">Database Server Name</label>
+<input type="text" name="dbhost" id="install-dbhost" value="$dbhost" />
+<div id="install-dbhost-end"></div>
+
+<label for="install-dbuser" id="install-dbuser-label">Database Login Name</label>
+<input type="text" name="dbuser" id="install-dbuser" value="$dbuser" />
+<div id="install-dbuser-end"></div>
+
+<label for="install-dbpass" id="install-dbpass-label">Database Login Password</label>
+<input type="password" name="dbpass" id="install-dbpass" value="$dbpass" />
+<div id="install-dbpass-end"></div>
+
+<label for="install-dbdata" id="install-dbdata-label">Database Name</label>
+<input type="text" name="dbdata" id="install-dbdata" value="$dbdata" />
+<div id="install-dbdata-end"></div>
+
+<div id="install-tz-desc">
+Please select a default timezone for your website
+</div>
+
+$tzselect
+
+<div id="install-tz-end" ></div>
+<input id="install-submit" type="submit" name="submit" value="$submit" />
+
+</form>
+<div id="install-end" ></div>
+
diff --git a/view/sv/intro_complete_eml.tpl b/view/sv/intro_complete_eml.tpl
new file mode 100644
index 000000000..a60745ec5
--- /dev/null
+++ b/view/sv/intro_complete_eml.tpl
@@ -0,0 +1,22 @@
+
+Dear $username,
+
+ '$fn' at '$dfrn_url' has accepted
+your connection request at '$sitename'.
+
+ '$fn' has chosen to accept you a "fan", which restricts
+some forms of communication - such as private messaging and some profile
+interactions. If this is a celebrity or community page, these settings were
+applied automatically.
+
+ '$fn' may choose to extend this into a two-way or more permissive
+relationship in the future.
+
+ You will start receiving public status updates from '$fn',
+which will appear on your 'Network' page at
+
+$siteurl
+
+Sincerely,
+
+ $sitename Administrator
diff --git a/view/sv/intros-top.tpl b/view/sv/intros-top.tpl
new file mode 100644
index 000000000..d8b7394a4
--- /dev/null
+++ b/view/sv/intros-top.tpl
@@ -0,0 +1,7 @@
+<h1>Pending Friend/Connect Notifications</h1>
+
+<div id="notification-show-hide-wrapper" >
+<a href="$hide_url" id="notification-show-hide-link">$hide_text</a>
+</div>
+
+
diff --git a/view/sv/jot-header.tpl b/view/sv/jot-header.tpl
new file mode 100644
index 000000000..b6e156324
--- /dev/null
+++ b/view/sv/jot-header.tpl
@@ -0,0 +1,172 @@
+
+<script language="javascript" type="text/javascript" src="$baseurl/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
+<script language="javascript" type="text/javascript">
+
+var editor;
+
+tinyMCE.init({
+ theme : "advanced",
+ mode : "specific_textareas",
+ editor_selector: /(profile-jot-text|prvmail-text)/,
+ plugins : "bbcode,paste",
+ theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
+ theme_advanced_buttons2 : "",
+ theme_advanced_buttons3 : "",
+ theme_advanced_toolbar_location : "top",
+ theme_advanced_toolbar_align : "center",
+ theme_advanced_blockformats : "blockquote,code",
+ paste_text_sticky : true,
+ entity_encoding : "raw",
+ add_unload_trigger : false,
+ remove_linebreaks : false,
+ force_p_newlines : false,
+ force_br_newlines : true,
+ forced_root_block : '',
+ convert_urls: false,
+ content_css: "$baseurl/view/custom_tinymce.css",
+ //Character count
+ theme_advanced_path : false,
+ setup : function(ed) {
+ ed.onKeyUp.add(function(ed, e) {
+ var txt = tinyMCE.activeEditor.getContent();
+ var text = txt.length;
+ if(txt.length <= 140) {
+ $('#character-counter').removeClass('red');
+ $('#character-counter').removeClass('orange');
+ $('#character-counter').addClass('grey');
+ }
+ if((txt.length > 140) && (txt .length <= 420)) {
+ $('#character-counter').removeClass('grey');
+ $('#character-counter').removeClass('red');
+ $('#character-counter').addClass('orange');
+ }
+ if(txt.length > 420) {
+ $('#character-counter').removeClass('grey');
+ $('#character-counter').removeClass('orange');
+ $('#character-counter').addClass('red');
+ }
+ $('#character-counter').text(text);
+ });
+
+ ed.onInit.add(function(ed) {
+ ed.pasteAsPlainText = true;
+ });
+
+ }
+});
+
+</script>
+<script type="text/javascript" src="include/ajaxupload.js" ></script>
+<script>
+ $(document).ready(function() {
+ var uploader = new window.AjaxUpload(
+ 'wall-image-upload',
+ { action: 'wall_upload/$nickname',
+ name: 'userfile',
+ onSubmit: function(file,ext) { $('#profile-rotator').show(); },
+ onComplete: function(file,response) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,response);
+ $('#profile-rotator').hide();
+ }
+ }
+ );
+ $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
+ var selstr;
+ $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
+ selstr = $(this).text();
+ $('#profile-jot-perms img').attr('src', 'images/lock_icon.gif');
+ $('.profile-jot-net input').attr('disabled', 'disabled');
+ });
+ if(selstr == null) {
+ $('#profile-jot-perms img').attr('src', 'images/unlock_icon.gif');
+ $('.profile-jot-net input').attr('disabled', false);
+ }
+
+ }).trigger('change');
+
+ });
+
+ function jotGetLink() {
+ reply = prompt("Please enter a link URL:");
+ if(reply && reply.length) {
+ $('#profile-rotator').show();
+ $.get('parse_url?url=' + reply, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#profile-rotator').hide();
+ });
+ }
+ }
+
+ function jotGetVideo() {
+ reply = prompt("Please enter a YouTube link:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[youtube]' + reply + '[/youtube]');
+ }
+ }
+
+
+ function jotGetVideo() {
+ reply = prompt("Please enter a YouTube link:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[youtube]' + reply + '[/youtube]');
+ }
+ }
+
+ function jotVideoURL() {
+ reply = prompt("Please enter a video(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[video]' + reply + '[/video]');
+ }
+ }
+
+ function jotAudioURL() {
+ reply = prompt("Please enter an audio(.ogg) link/URL:");
+ if(reply && reply.length) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,'[audio]' + reply + '[/audio]');
+ }
+ }
+
+ function jotGetLocation() {
+ reply = prompt("Where are you right now?", $('#jot-location').val());
+ if(reply && reply.length) {
+ $('#jot-location').val(reply);
+ }
+ }
+
+ function jotShare(id) {
+ $('#like-rotator-' + id).show();
+ $.get('share/' + id, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#like-rotator-' + id).hide();
+ $(window).scrollTop(0);
+ });
+ }
+
+ function linkdropper(event) {
+ var linkFound = event.dataTransfer.types.contains("text/uri-list");
+ if(linkFound)
+ event.preventDefault();
+ }
+
+ function linkdrop(event) {
+ var reply = event.dataTransfer.getData("text/uri-list");
+ event.target.textContent = reply;
+ event.preventDefault();
+ if(reply && reply.length) {
+ $('#profile-rotator').show();
+ $.get('parse_url?url=' + reply, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#profile-rotator').hide();
+ });
+ }
+ }
+
+ function jotClearLocation() {
+ $('#jot-coord').val('');
+ $('#profile-nolocation-wrapper').hide();
+ }
+
+ $geotag
+
+</script>
+
diff --git a/view/sv/lostpass.tpl b/view/sv/lostpass.tpl
new file mode 100644
index 000000000..a7040c149
--- /dev/null
+++ b/view/sv/lostpass.tpl
@@ -0,0 +1,18 @@
+<h3>Forgot your Password?</h3>
+
+<p id="lostpass-desc">
+Enter your email address and submit to have your password reset. Then check your email for further instructions.
+</p>
+
+<form action="lostpass" method="post" >
+<div id="login-name-wrapper">
+ <label for="login-name" id="label-login-name">Nickname or Email: </label>
+ <input type="text" maxlength="60" name="login-name" id="login-name" value="" />
+</div>
+<div id="login-extra-end"></div>
+<div id="login-submit-wrapper" >
+ <input type="submit" name="submit" id="lostpass-submit-button" value="Reset" />
+</div>
+<div id="login-submit-end"></div>
+</form>
+
diff --git a/view/sv/lostpass_eml.tpl b/view/sv/lostpass_eml.tpl
new file mode 100644
index 000000000..c350236a4
--- /dev/null
+++ b/view/sv/lostpass_eml.tpl
@@ -0,0 +1,32 @@
+
+Dear $username,
+ A request was recently received at $sitename to reset your account
+password. In order to confirm this request, please select the verification link
+below or paste it into your web browser address bar.
+
+If you did NOT request this change, please DO NOT follow the link
+provided and ignore and/or delete this email.
+
+Your password will not be changed unless we can verify that you
+issued this request.
+
+Follow this link to verify your identity:
+
+$reset_link
+
+You will then receive a follow-up message containing the new password.
+
+You may change that password from your account settings page after logging in.
+
+The login details are as follows:
+
+Site Location: $siteurl
+Login Name: $email
+
+
+
+
+Sincerely,
+ $sitename Administrator
+
+
diff --git a/view/sv/mail_received_html_body_eml.tpl b/view/sv/mail_received_html_body_eml.tpl
new file mode 100644
index 000000000..6b7eb8873
--- /dev/null
+++ b/view/sv/mail_received_html_body_eml.tpl
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN">
+<html>
+<head>
+ <title>Friendika Message</title>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+</head>
+<body>
+<table style="border:1px solid #ccc">
+ <tbody>
+ <tr><td colspan="2" style="background:#3b5998; color:#FFFFFF; font-weight:bold; font-family:'lucida grande', tahoma, verdana,arial, sans-serif; padding: 4px 8px; vertical-align: middle; font-size:16px; letter-spacing: -0.03em; text-align: left;"><img style="width:32px;height:32px;" src='$siteurl/images/friendika-32.png'><span style="padding:7px;">Friendika</span></td></tr>
+
+ <tr><td style="padding-top:22px;" colspan="2">$from sent you a new private message at $siteName.</td></tr>
+
+
+ <tr><td style="padding-left:22px;padding-top:22px;width:60px;" valign="top" rowspan=3><a href="$url"><img style="border:0px;width:48px;height:48px;" src="$thumb"></a></td>
+ <td style="padding-top:22px;"><a href="$url">$from</a></td></tr>
+ <tr><td style="font-weight:bold;padding-bottom:5px;">$title</td></tr>
+ <tr><td style="padding-right:22px;">$htmlversion</td></tr>
+ <tr><td style="padding-top:11px;padding-bottom:11px;" colspan="2">Please login at <a href="$siteurl">$siteurl</a> to read and reply to your private messages.</td></tr>
+ <tr><td></td><td>Thank You,</td></tr>
+ <tr><td></td><td>$siteName Administrator</td></tr>
+ </tbody>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/view/sv/mail_received_text_body_eml.tpl b/view/sv/mail_received_text_body_eml.tpl
new file mode 100644
index 000000000..023867304
--- /dev/null
+++ b/view/sv/mail_received_text_body_eml.tpl
@@ -0,0 +1,10 @@
+$from sent you a new private message at $siteName.
+
+$title
+
+$textversion
+
+Please login at $siteurl to read and reply to your private messages.
+
+Thank you,
+$siteName administrator
diff --git a/view/sv/msg-header.tpl b/view/sv/msg-header.tpl
new file mode 100644
index 000000000..174e6c985
--- /dev/null
+++ b/view/sv/msg-header.tpl
@@ -0,0 +1,104 @@
+
+<script language="javascript" type="text/javascript" src="$baseurl/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
+<script language="javascript" type="text/javascript">
+
+tinyMCE.init({
+ theme : "advanced",
+ mode : "specific_textareas",
+ editor_selector: /(profile-jot-text|prvmail-text)/,
+ plugins : "bbcode,paste",
+ theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
+ theme_advanced_buttons2 : "",
+ theme_advanced_buttons3 : "",
+ theme_advanced_toolbar_location : "top",
+ theme_advanced_toolbar_align : "center",
+ theme_advanced_blockformats : "blockquote,code",
+ paste_text_sticky : true,
+ entity_encoding : "raw",
+ add_unload_trigger : false,
+ remove_linebreaks : false,
+ force_p_newlines : false,
+ force_br_newlines : true,
+ forced_root_block : '',
+ convert_urls: false,
+ content_css: "$baseurl/view/custom_tinymce.css",
+ //Character count
+ theme_advanced_path : false,
+ setup : function(ed) {
+ ed.onKeyUp.add(function(ed, e) {
+ var txt = tinyMCE.activeEditor.getContent();
+ var text = txt.length;
+ if(txt.length <= 140) {
+ $('#character-counter').removeClass('red');
+ $('#character-counter').removeClass('orange');
+ $('#character-counter').addClass('grey');
+ }
+ if((txt.length > 140) && (txt .length <= 420)) {
+ $('#character-counter').removeClass('grey');
+ $('#character-counter').removeClass('red');
+ $('#character-counter').addClass('orange');
+ }
+ if(txt.length > 420) {
+ $('#character-counter').removeClass('grey');
+ $('#character-counter').removeClass('orange');
+ $('#character-counter').addClass('red');
+ }
+ $('#character-counter').text(text);
+ });
+
+ ed.onInit.add(function(ed) {
+ ed.pasteAsPlainText = true;
+ });
+ }
+});
+
+</script>
+<script type="text/javascript" src="include/ajaxupload.js" ></script>
+<script>
+ $(document).ready(function() {
+ var uploader = new window.AjaxUpload(
+ 'prvmail-upload',
+ { action: 'wall_upload/$nickname',
+ name: 'userfile',
+ onSubmit: function(file,ext) { $('#profile-rotator').show(); },
+ onComplete: function(file,response) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,response);
+ $('#profile-rotator').hide();
+ }
+ }
+ );
+
+ });
+
+ function jotGetLink() {
+ reply = prompt("Please enter a link URL:");
+ if(reply && reply.length) {
+ $('#profile-rotator').show();
+ $.get('parse_url?url=' + reply, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#profile-rotator').hide();
+ });
+ }
+ }
+
+ function linkdropper(event) {
+ var linkFound = event.dataTransfer.types.contains("text/uri-list");
+ if(linkFound)
+ event.preventDefault();
+ }
+
+ function linkdrop(event) {
+ var reply = event.dataTransfer.getData("text/uri-list");
+ event.target.textContent = reply;
+ event.preventDefault();
+ if(reply && reply.length) {
+ $('#profile-rotator').show();
+ $.get('parse_url?url=' + reply, function(data) {
+ tinyMCE.execCommand('mceInsertRawHTML',false,data);
+ $('#profile-rotator').hide();
+ });
+ }
+ }
+
+</script>
+
diff --git a/view/sv/pagetypes.tpl b/view/sv/pagetypes.tpl
new file mode 100644
index 000000000..2036614ab
--- /dev/null
+++ b/view/sv/pagetypes.tpl
@@ -0,0 +1,25 @@
+
+ <div id="settings-normal-wrapper">
+ <label id="settings-normal-label" for="settings-normal">Normal Profile</label>
+ <input type="radio" name="page-flags" id="settings-normal" $normal_selected value="$page_normal" />
+ <span id="settings-normal-desc">This account is a normal personal profile</span>
+ </div>
+ <div id="settings-normal-break" ></div>
+ <div id="settings-soapbox-wrapper">
+ <label id="settings-soapbox-label" for="settings-soapbox">Soapbox Profile</label>
+ <input type="radio" name="page-flags" id="settings-soapbox" $soapbox_selected value="$page_soapbox" />
+ <span id="settings-soapbox-desc">Automatically approve all connection/friend requests as read-only fans</span>
+ </div>
+ <div id="settings-soapbox-break" ></div>
+ <div id="settings-community-wrapper">
+ <label id="settings-community-label" for="settings-community">Community/Celebrity Profile</label>
+ <input type="radio" name="page-flags" id="settings-community" $community_selected value="$page_community" />
+ <span id="settings-community-desc">Automatically approve all connection/friend requests as read-write fans</span>
+ </div>
+ <div id="settings-community-break" ></div>
+ <div id="settings-freelove-wrapper">
+ <label id="settings-freelove-label" for="settings-freelove">Automatic Friend Profile</label>
+ <input type="radio" name="page-flags" id="settings-freelove" $freelove_selected value="$page_freelove" />
+ <span id="settings-freelove-desc">Automatically approve all connection/friend requests as friends</span>
+ </div>
+ <div id="settings-freelove-break" ></div>
diff --git a/view/sv/passchanged_eml.tpl b/view/sv/passchanged_eml.tpl
new file mode 100644
index 000000000..9692159e1
--- /dev/null
+++ b/view/sv/passchanged_eml.tpl
@@ -0,0 +1,20 @@
+
+Dear $username,
+ Your password has been changed as requested. Please retain this
+information for your records (or change your password immediately to
+something that you will remember).
+
+
+Your login details are as follows:
+
+Site Location: $siteurl
+Login Name: $email
+Password: $new_password
+
+You may change that password from your account settings page after logging in.
+
+
+Sincerely,
+ $sitename Administrator
+
+
diff --git a/view/sv/profile-hide-friends.tpl b/view/sv/profile-hide-friends.tpl
new file mode 100644
index 000000000..54ade00fe
--- /dev/null
+++ b/view/sv/profile-hide-friends.tpl
@@ -0,0 +1,16 @@
+<p id="hide-friends-text">
+Hide my contact/friend list from viewers of this profile?
+</p>
+
+ <div id="hide-friends-yes-wrapper">
+ <label id="hide-friends-yes-label" for="hide-friends-yes">Yes</label>
+ <input type="radio" name="hide-friends" id="hide-friends-yes" $yes_selected value="1" />
+
+ <div id="hide-friends-break" ></div>
+ </div>
+ <div id="hide-friends-no-wrapper">
+ <label id="hide-friends-no-label" for="hide-friends-no">No</label>
+ <input type="radio" name="hide-friends" id="hide-friends-no" $no_selected value="0" />
+
+ <div id="hide-friends-end"></div>
+ </div>
diff --git a/view/sv/profile-in-directory.tpl b/view/sv/profile-in-directory.tpl
new file mode 100644
index 000000000..98af3e59a
--- /dev/null
+++ b/view/sv/profile-in-directory.tpl
@@ -0,0 +1,16 @@
+<p id="profile-in-directory">
+Publish your default profile in site directory?
+</p>
+
+ <div id="profile-in-dir-yes-wrapper">
+ <label id="profile-in-dir-yes-label" for="profile-in-dir-yes">Yes</label>
+ <input type="radio" name="profile_in_directory" id="profile-in-dir-yes" $yes_selected value="1" />
+
+ <div id="profile-in-dir-break" ></div>
+ </div>
+ <div id="profile-in-dir-no-wrapper">
+ <label id="profile-in-dir-no-label" for="profile-in-dir-no">No</label>
+ <input type="radio" name="profile_in_directory" id="profile-in-dir-no" $no_selected value="0" />
+
+ <div id="profile-in-dir-end"></div>
+ </div>
diff --git a/view/sv/profile-in-netdir.tpl b/view/sv/profile-in-netdir.tpl
new file mode 100644
index 000000000..be111aa67
--- /dev/null
+++ b/view/sv/profile-in-netdir.tpl
@@ -0,0 +1,16 @@
+<p id="profile-in-directory">
+Publish your default profile in global social directory?
+</p>
+
+ <div id="profile-in-netdir-yes-wrapper">
+ <label id="profile-in-netdir-yes-label" for="profile-in-netdir-yes">Yes</label>
+ <input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-yes" $yes_selected value="1" />
+
+ <div id="profile-in-netdir-break" ></div>
+ </div>
+ <div id="profile-in-netdir-no-wrapper">
+ <label id="profile-in-netdir-no-label" for="profile-in-netdir-no">No</label>
+ <input type="radio" name="profile_in_netdirectory" id="profile-in-netdir-no" $no_selected value="0" />
+
+ <div id="profile-in-netdir-end"></div>
+ </div>
diff --git a/view/sv/profile.php b/view/sv/profile.php
new file mode 100644
index 000000000..fa7372668
--- /dev/null
+++ b/view/sv/profile.php
@@ -0,0 +1,72 @@
+<!DOCTYPE html ><?php // This is a perfect example of why I prefer to use template files rather than mixed PHP/HTML ?>
+<html>
+<head>
+ <title><?php if(x($page,'title')) echo $page['title']; ?></title>
+ <?php if(x($page,'htmlhead')) echo $page['htmlhead']; ?>
+</head>
+<body>
+<header><?php if(x($page,'header')) echo $page['header']; ?></header>
+<nav><div id="top-margin"></div><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
+<aside>
+<?php if((is_array($profile)) && count($profile)) { ?>
+<div class="vcard">
+ <?php if(strlen($profile['name'])) { ?>
+ <div class="fn"><?php echo $profile['name']; ?></div>
+ <?php } ?>
+
+ <?php if(strlen($profile['photo'])) { ?>
+ <div id="profile-photo-wrapper"><img class="photo" src="<?php echo $profile['photo']; ?>" alt="<?php echo $profile['name']; ?>" /></div>
+ <?php } ?>
+
+ <div id="profile-extra-links">
+ <ul>
+ <?php if($profile['uid'] != $_SESSION['uid']) { ?>
+ <li><a id="dfrn-request-link" href="dfrn_request/<?php echo $profile['nickname']; ?>">Connect</a></li>
+ <?php } ?>
+ </ul>
+
+ </div>
+
+ <?php if ( (strlen($profile['address']))
+ || (strlen($profile['locality']))
+ || (strlen($profile['region']))
+ || (strlen($profile['postal-code']))
+ || (strlen($profile['country-name']))) { ?>
+ <div class="location">Location:
+ <div class="adr">
+ <div class="street-address"><?php if(strlen($profile['address'])) echo $profile['address']; ?></div>
+ <span class="city-state-zip"><span class="locality"><?php echo $profile['locality']; ?></span><?php if(strlen($profile['locality'])) echo ', '; ?><span class="region"><?php echo $profile['region'] ?></span><?php if(strlen($profile['postal-code'])) { ?> <span class="postal-code"><?php echo $profile['postal-code']; ?></span><?php } ?></span>
+ <span class="country-name"><?php echo $profile['country-name']; ?></span>
+ </div>
+ </div>
+
+ <?php } ?>
+
+ <?php if(strlen($profile['gender'])) { ?>
+ <div class="mf">Gender: <span class="x-gender"><?php echo $profile['gender']; ?></span></div>
+
+ <?php } ?>
+
+ <?php if(strlen($profile['pubkey'])) { ?>
+ <div class="key" style="display: none;"><?php echo $profile['pubkey']; ?></div>
+ <?php } ?>
+</div>
+<?php } ?>
+<?php if(strlen($profile['marital'])) { ?>
+<div class="marital"><span class="marital-label"><span class="heart">&hearts;</span> Status: </span><span class="marital-text"><?php echo $profile['marital']; ?></span></div>
+<?php } ?>
+<?php if(strlen($profile['homepage'])) { ?>
+<div class="homepage"><span class="homepage-label">Homepage: </span><span class="homepage-url"><?php echo linkify($profile['homepage']); ?></span></div>
+<?php } ?>
+<?php if(x($page,'aside')) echo $page['aside'] ?>
+</aside>
+<section>
+<?php if(x($page,'content')) echo $page['content']; ?>
+<div id="page-footer"></div>
+</section>
+<footer>
+<?php if(x($page,'footer')) echo $page['footer']; ?>
+</footer>
+</body>
+</html>
+
diff --git a/view/sv/profile_advanced.php b/view/sv/profile_advanced.php
new file mode 100644
index 000000000..6d2ecba4d
--- /dev/null
+++ b/view/sv/profile_advanced.php
@@ -0,0 +1,225 @@
+<?php
+
+$o .= '';
+
+$o .= <<< EOT
+
+<h2>Profile</h2>
+
+
+EOT;
+
+if($a->profile['name']) {
+$o .= <<< EOT
+<div id="advanced-profile-name-wrapper" >
+<div id="advanced-profile-name-text">Full Name:</div>
+<div id="advanced-profile-name">{$a->profile['name']}</div>
+</div>
+<div id="advanced-profile-name-end"></div>
+EOT;
+}
+
+if($a->profile['gender']) {
+$o .= <<< EOT
+<div id="advanced-profile-gender-wrapper" >
+<div id="advanced-profile-gender-text">Gender:</div>
+<div id="advanced-profile-gender">{$a->profile['gender']}</div>
+</div>
+<div id="advanced-profile-gender-end"></div>
+EOT;
+}
+
+if(($a->profile['dob']) && ($a->profile['dob'] != '0000-00-00')) {
+$o .= <<< EOT
+<div id="advanced-profile-dob-wrapper" >
+<div id="advanced-profile-dob-text">Birthday:</div>
+EOT;
+
+// If no year, add an arbitrary one so just we can parse the month and day.
+
+$o .= '<div id="advanced-profile-dob">'
+ . ((intval($a->profile['dob']))
+ ? day_translate(datetime_convert('UTC','UTC',$a->profile['dob'] . ' 00:00 +00:00','j F, Y'))
+ : day_translate(datetime_convert('UTC','UTC','2001-' . substr($a->profile['dob'],6) . ' 00:00 +00:00','j F')))
+ . "</div>\r\n</div>";
+
+$o .= '<div id="advanced-profile-dob-end"></div>';
+
+}
+
+if($age = age($a->profile['dob'],$a->profile['timezone'],'')) {
+$o .= <<< EOT
+<div id="advanced-profile-age-wrapper" >
+<div id="advanced-profile-age-text">Age:</div>
+<div id="advanced-profile-age">$age</div>
+</div>
+<div id="advanced-profile-age-end"></div>
+EOT;
+}
+
+if($a->profile['marital']) {
+$o .= <<< EOT
+<div id="advanced-profile-marital-wrapper" >
+<div id="advanced-profile-marital-text"><span class="heart">&hearts;</span> Status:</div>
+<div id="advanced-profile-marital">{$a->profile['marital']}</div>
+EOT;
+
+if($a->profile['with'])
+ $o .= "<div id=\"advanced-profile-with\">({$a->profile['with']})</div>";
+$o .= <<< EOT
+</div>
+<div id="advanced-profile-marital-end"></div>
+EOT;
+}
+
+if($a->profile['sexual']) {
+$o .= <<< EOT
+<div id="advanced-profile-sexual-wrapper" >
+<div id="advanced-profile-sexual-text">Sexual Preference:</div>
+<div id="advanced-profile-sexual">{$a->profile['sexual']}</div>
+</div>
+<div id="advanced-profile-sexual-end"></div>
+EOT;
+}
+
+if($a->profile['homepage']) {
+ $homepage = linkify($a->profile['homepage']);
+$o .= <<< EOT
+<div id="advanced-profile-homepage-wrapper" >
+<div id="advanced-profile-homepage-text">Homepage:</div>
+<div id="advanced-profile-homepage">$homepage</div>
+</div>
+<div id="advanced-profile-homepage-end"></div>
+EOT;
+}
+
+if($a->profile['politic']) {
+$o .= <<< EOT
+<div id="advanced-profile-politic-wrapper" >
+<div id="advanced-profile-politic-text">Political Views:</div>
+<div id="advanced-profile-politic">{$a->profile['politic']}</div>
+</div>
+<div id="advanced-profile-politic-end"></div>
+EOT;
+}
+
+if($a->profile['religion']) {
+$o .= <<< EOT
+<div id="advanced-profile-religion-wrapper" >
+<div id="advanced-profile-religion-text">Religion:</div>
+<div id="advanced-profile-religion">{$a->profile['religion']}</div>
+</div>
+<div id="advanced-profile-religion-end"></div>
+EOT;
+}
+if($txt = prepare_text($a->profile['about'])) {
+$o .= <<< EOT
+<div id="advanced-profile-about-wrapper" >
+<div id="advanced-profile-about-text">About:</div>
+<br />
+<div id="advanced-profile-about">$txt</div>
+</div>
+<div id="advanced-profile-about-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['interest'])) {
+$o .= <<< EOT
+<div id="advanced-profile-interest-wrapper" >
+<div id="advanced-profile-interest-text">Hobbies/Interests:</div>
+<br />
+<div id="advanced-profile-interest">$txt</div>
+</div>
+<div id="advanced-profile-interest-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['contact'])) {
+$o .= <<< EOT
+<div id="advanced-profile-contact-wrapper" >
+<div id="advanced-profile-contact-text">Contact information and Social Networks:</div>
+<br />
+<div id="advanced-profile-contact">$txt</div>
+</div>
+<div id="advanced-profile-contact-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['music'])) {
+$o .= <<< EOT
+<div id="advanced-profile-music-wrapper" >
+<div id="advanced-profile-music-text">Musical interests:</div>
+<br />
+<div id="advanced-profile-music">$txt</div>
+</div>
+<div id="advanced-profile-music-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['book'])) {
+$o .= <<< EOT
+<div id="advanced-profile-book-wrapper" >
+<div id="advanced-profile-book-text">Books, literature:</div>
+<br />
+<div id="advanced-profile-book">$txt</div>
+</div>
+<div id="advanced-profile-book-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['tv'])) {
+$o .= <<< EOT
+<div id="advanced-profile-tv-wrapper" >
+<div id="advanced-profile-tv-text">Television:</div>
+<br />
+<div id="advanced-profile-tv">$txt</div>
+</div>
+<div id="advanced-profile-tv-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['film'])) {
+$o .= <<< EOT
+<div id="advanced-profile-film-wrapper" >
+<div id="advanced-profile-film-text">Film/dance/culture/entertainment:</div>
+<br />
+<div id="advanced-profile-film">$txt</div>
+</div>
+<div id="advanced-profile-film-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['romance'])) {
+$o .= <<< EOT
+<div id="advanced-profile-romance-wrapper" >
+<div id="advanced-profile-romance-text">Love/romance:</div>
+<br />
+<div id="advanced-profile-romance">$txt</div>
+</div>
+<div id="advanced-profile-romance-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['work'])) {
+$o .= <<< EOT
+<div id="advanced-profile-work-wrapper" >
+<div id="advanced-profile-work-text">Work/employment:</div>
+<br />
+<div id="advanced-profile-work">$txt</div>
+</div>
+<div id="advanced-profile-work-end"></div>
+EOT;
+}
+
+if($txt = prepare_text($a->profile['education'])) {
+$o .= <<< EOT
+<div id="advanced-profile-education-wrapper" >
+<div id="advanced-profile-education-text">School/education:</div>
+<br />
+<div id="advanced-profile-education">$txt</div>
+</div>
+<div id="advanced-profile-education-end"></div>
+EOT;
+}
+
+
diff --git a/view/sv/profile_edit.tpl b/view/sv/profile_edit.tpl
new file mode 100644
index 000000000..6c7d74daf
--- /dev/null
+++ b/view/sv/profile_edit.tpl
@@ -0,0 +1,299 @@
+<h1>Edit Profile Details</h1>
+
+<div id="profile-edit-links">
+<ul>
+<li><a href="profile/$profile_id/view?tab=profile" id="profile-edit-view-link" title="View this profile">View this profile</a></li>
+<li><a href="profiles/clone/$profile_id" id="profile-edit-clone-link" title="Create a new profile using these settings">Clone this profile</a></li>
+<li></li>
+<li><a href="profiles/drop/$profile_id" id="profile-edit-drop-link" title="Delete this profile" $disabled >Delete this profile</a></li>
+
+</ul>
+</div>
+
+<div id="profile-edit-links-end"></div>
+
+$default
+
+<div id="profile-edit-wrapper" >
+<form id="profile-edit-form" name="form1" action="profiles/$profile_id" method="post" >
+
+<div id="profile-edit-profile-name-wrapper" >
+<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >Profile Name: </label>
+<input type="text" size="32" name="profile_name" id="profile-edit-profile-name" value="$profile_name" /><div class="required">*</div>
+</div>
+<div id="profile-edit-profile-name-end"></div>
+
+<div id="profile-edit-name-wrapper" >
+<label id="profile-edit-name-label" for="profile-edit-name" >Your Full Name: </label>
+<input type="text" size="32" name="name" id="profile-edit-name" value="$name" />
+</div>
+<div id="profile-edit-name-end"></div>
+
+<div id="profile-edit-pdesc-wrapper" >
+<label id="profile-edit-pdesc-label" for="profile-edit-pdesc" >Title/Description: </label>
+<input type="text" size="32" name="pdesc" id="profile-edit-pdesc" value="$pdesc" />
+</div>
+<div id="profile-edit-pdesc-end"></div>
+
+
+<div id="profile-edit-gender-wrapper" >
+<label id="profile-edit-gender-label" for="gender-select" >Your Gender: </label>
+$gender
+</div>
+<div id="profile-edit-gender-end"></div>
+
+<div id="profile-edit-dob-wrapper" >
+<label id="profile-edit-dob-label" for="dob-select" >Birthday (y/m/d): </label>
+<div id="profile-edit-dob" >
+$dob $age
+</div>
+</div>
+<div id="profile-edit-dob-end"></div>
+
+$hide_friends
+
+<div class="profile-edit-submit-wrapper" >
+<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
+</div>
+<div class="profile-edit-submit-end"></div>
+
+
+<div id="profile-edit-address-wrapper" >
+<label id="profile-edit-address-label" for="profile-edit-address" >Street Address: </label>
+<input type="text" size="32" name="address" id="profile-edit-address" value="$address" />
+</div>
+<div id="profile-edit-address-end"></div>
+
+<div id="profile-edit-locality-wrapper" >
+<label id="profile-edit-locality-label" for="profile-edit-locality" >Locality/City: </label>
+<input type="text" size="32" name="locality" id="profile-edit-locality" value="$locality" />
+</div>
+<div id="profile-edit-locality-end"></div>
+
+
+<div id="profile-edit-postal-code-wrapper" >
+<label id="profile-edit-postal-code-label" for="profile-edit-postal-code" >Postal/Zip Code: </label>
+<input type="text" size="32" name="postal_code" id="profile-edit-postal-code" value="$postal_code" />
+</div>
+<div id="profile-edit-postal-code-end"></div>
+
+<div id="profile-edit-country-name-wrapper" >
+<label id="profile-edit-country-name-label" for="profile-edit-country-name" >Country: </label>
+<select name="country_name" id="profile-edit-country-name" onChange="Fill_States('$region');">
+<option selected="selected" >$country_name</option>
+<option>temp</option>
+</select>
+</div>
+<div id="profile-edit-country-name-end"></div>
+
+<div id="profile-edit-region-wrapper" >
+<label id="profile-edit-region-label" for="profile-edit-region" >Region/State: </label>
+<select name="region" id="profile-edit-region" onChange="Update_Globals();" >
+<option selected="selected" >$region</option>
+<option>temp</option>
+</select>
+</div>
+<div id="profile-edit-region-end"></div>
+
+<div class="profile-edit-submit-wrapper" >
+<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
+</div>
+<div class="profile-edit-submit-end"></div>
+
+<div id="profile-edit-marital-wrapper" >
+<label id="profile-edit-marital-label" for="profile-edit-marital" ><span class="heart">&hearts;</span> (Marital) Status: </label>
+$marital
+</div>
+<label id="profile-edit-with-label" for="profile-edit-with" > Who: (if applicable) </label>
+<input type="text" size="32" name="with" id="profile-edit-with" title="Examples: cathy123, Cathy Williams, cathy@example.com" value="$with" />
+<div id="profile-edit-marital-end"></div>
+
+<div id="profile-edit-sexual-wrapper" >
+<label id="profile-edit-sexual-label" for="sexual-select" >Sexual Preference: </label>
+$sexual
+</div>
+<div id="profile-edit-sexual-end"></div>
+
+
+
+<div id="profile-edit-homepage-wrapper" >
+<label id="profile-edit-homepage-label" for="profile-edit-homepage" >Homepage URL: </label>
+<input type="text" size="32" name="homepage" id="profile-edit-homepage" value="$homepage" />
+</div>
+<div id="profile-edit-homepage-end"></div>
+
+<div id="profile-edit-politic-wrapper" >
+<label id="profile-edit-politic-label" for="profile-edit-politic" >Political Views: </label>
+<input type="text" size="32" name="politic" id="profile-edit-politic" value="$politic" />
+</div>
+<div id="profile-edit-politic-end"></div>
+
+<div id="profile-edit-religion-wrapper" >
+<label id="profile-edit-religion-label" for="profile-edit-religion" >Religion: </label>
+<input type="text" size="32" name="religion" id="profile-edit-religion" value="$religion" />
+</div>
+<div id="profile-edit-religion-end"></div>
+
+<div id="profile-edit-pubkeywords-wrapper" >
+<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
+<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
+</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
+<div id="profile-edit-pubkeywords-end"></div>
+
+<div id="profile-edit-prvkeywords-wrapper" >
+<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
+<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
+</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
+<div id="profile-edit-prvkeywords-end"></div>
+
+
+<div class="profile-edit-submit-wrapper" >
+<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
+</div>
+<div class="profile-edit-submit-end"></div>
+
+<div id="about-jot-wrapper" >
+<p id="about-jot-desc" >
+Tell us about yourself...
+</p>
+
+<textarea rows="10" cols="72" id="profile-jot-text" name="about" >$about</textarea>
+
+</div>
+<div id="about-jot-end"></div>
+</div>
+
+
+<div id="interest-jot-wrapper" >
+<p id="interest-jot-desc" >
+Hobbies/Interests
+</p>
+
+<textarea rows="10" cols="72" id="interest-jot-text" name="interest" >$interest</textarea>
+
+</div>
+<div id="interest-jot-end"></div>
+</div>
+
+
+<div id="contact-jot-wrapper" >
+<p id="contact-jot-desc" >
+Contact information and Social Networks
+</p>
+
+<textarea rows="10" cols="72" id="contact-jot-text" name="contact" >$contact</textarea>
+
+</div>
+<div id="contact-jot-end"></div>
+</div>
+
+
+<div class="profile-edit-submit-wrapper" >
+<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
+</div>
+<div class="profile-edit-submit-end"></div>
+
+
+<div id="music-jot-wrapper" >
+<p id="music-jot-desc" >
+Musical interests
+</p>
+
+<textarea rows="10" cols="72" id="music-jot-text" name="music" >$music</textarea>
+
+</div>
+<div id="music-jot-end"></div>
+</div>
+
+<div id="book-jot-wrapper" >
+<p id="book-jot-desc" >
+Books, literature
+</p>
+
+<textarea rows="10" cols="72" id="book-jot-text" name="book" >$book</textarea>
+
+</div>
+<div id="book-jot-end"></div>
+</div>
+
+
+
+<div id="tv-jot-wrapper" >
+<p id="tv-jot-desc" >
+Television
+</p>
+
+<textarea rows="10" cols="72" id="tv-jot-text" name="tv" >$tv</textarea>
+
+</div>
+<div id="tv-jot-end"></div>
+</div>
+
+
+
+<div id="film-jot-wrapper" >
+<p id="film-jot-desc" >
+Film/dance/culture/entertainment
+</p>
+
+<textarea rows="10" cols="72" id="film-jot-text" name="film" >$film</textarea>
+
+</div>
+<div id="film-jot-end"></div>
+</div>
+
+
+<div class="profile-edit-submit-wrapper" >
+<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
+</div>
+<div class="profile-edit-submit-end"></div>
+
+
+<div id="romance-jot-wrapper" >
+<p id="romance-jot-desc" >
+Love/romance
+</p>
+
+<textarea rows="10" cols="72" id="romance-jot-text" name="romance" >$romance</textarea>
+
+</div>
+<div id="romance-jot-end"></div>
+</div>
+
+
+
+<div id="work-jot-wrapper" >
+<p id="work-jot-desc" >
+Work/employment
+</p>
+
+<textarea rows="10" cols="72" id="work-jot-text" name="work" >$work</textarea>
+
+</div>
+<div id="work-jot-end"></div>
+</div>
+
+
+
+<div id="education-jot-wrapper" >
+<p id="education-jot-desc" >
+School/education
+</p>
+
+<textarea rows="10" cols="72" id="education-jot-text" name="education" >$education</textarea>
+
+</div>
+<div id="education-jot-end"></div>
+</div>
+
+
+
+<div class="profile-edit-submit-wrapper" >
+<input type="submit" name="submit" class="profile-edit-submit-button" value="Submit" />
+</div>
+<div class="profile-edit-submit-end"></div>
+
+
+</form>
+</div>
+<script type="text/javascript">Fill_Country('$country_name');Fill_States('$region');</script> \ No newline at end of file
diff --git a/view/sv/profile_entry_default.tpl b/view/sv/profile_entry_default.tpl
new file mode 100644
index 000000000..651199918
--- /dev/null
+++ b/view/sv/profile_entry_default.tpl
@@ -0,0 +1,9 @@
+
+<div class="profile-listing" >
+<div class="profile-listing-photo-wrapper" >
+<a href="profiles/$id" class="profile-listing-edit-link" ><img class="profile-listing-photo" id="profile-listing-photo-$id" src="$photo" alt="Profile Image" /></a>
+</div>
+<div class="profile-listing-photo-end" ></div>
+<div class="profile-listing-name" id="profile-listing-name-$id"><a href="profiles/$id" class="profile-listing-edit-link" >$profile_name</a></div>
+</div>
+<div class="profile-listing-end"></div>
diff --git a/view/sv/profile_listing_header.tpl b/view/sv/profile_listing_header.tpl
new file mode 100644
index 000000000..d4b139a69
--- /dev/null
+++ b/view/sv/profile_listing_header.tpl
@@ -0,0 +1,8 @@
+<h1>Profiles</h1>
+<p id="profile-listing-desc" >
+<a href="profile_photo" >Change profile photo</a>
+</p>
+<div id="profile-listing-new-link-wrapper" >
+<a href="profiles/new" id="profile-listing-new-link" name="Create New Profile" >Create New Profile</a>
+</div>
+
diff --git a/view/sv/profile_photo.tpl b/view/sv/profile_photo.tpl
new file mode 100644
index 000000000..30e51210a
--- /dev/null
+++ b/view/sv/profile_photo.tpl
@@ -0,0 +1,18 @@
+<h1>Upload Profile Photo</h1>
+
+<form enctype="multipart/form-data" action="profile_photo" method="post">
+
+<div id="profile-photo-upload-wrapper">
+<label id="profile-photo-upload-label" for="profile-photo-upload">Upload File: </label>
+<input name="userfile" type="file" id="profile-photo-upload" size="48" />
+</div>
+
+<div id="profile-photo-submit-wrapper">
+<input type="submit" name="submit" id="profile-photo-submit" value="Upload">
+</div>
+
+</form>
+
+<div id="profile-photo-link-select-wrapper">
+or <a href='photos/$user'>select a photo from albums</a>
+</div> \ No newline at end of file
diff --git a/view/sv/profile_tabs.tpl b/view/sv/profile_tabs.tpl
new file mode 100644
index 000000000..9c6c54a1c
--- /dev/null
+++ b/view/sv/profile_tabs.tpl
@@ -0,0 +1,7 @@
+
+<div id="profile-tabs-wrapper" >
+ <a href="$url" id="profile-tab-status-link" class="profile-tabs" >Status</a>
+ <a href="$url?tab=profile" id="profile-tab-profile-link" class="profile-tabs" >Profile</a>
+ <a href="$phototab" id="profile-tab-photos-link" class="profile-tabs" >Photos</a>
+<div id="profile-tabs-end"></div>
+</div> \ No newline at end of file
diff --git a/view/sv/pwdreset.tpl b/view/sv/pwdreset.tpl
new file mode 100644
index 000000000..dd609f061
--- /dev/null
+++ b/view/sv/pwdreset.tpl
@@ -0,0 +1,16 @@
+<h3>Password Reset</h3>
+
+<p>
+Your password has been reset as requested.
+</p>
+<p>
+Your new password is
+</p>
+<p>
+$newpass
+</p>
+<p>
+Save or copy your new password - and then <a href="$baseurl" >click here to login</a>.
+</p>
+<p>
+Your password may be changed from the 'Settings' page after successful login. \ No newline at end of file
diff --git a/view/sv/register_open_eml.tpl b/view/sv/register_open_eml.tpl
new file mode 100644
index 000000000..8a00f21e9
--- /dev/null
+++ b/view/sv/register_open_eml.tpl
@@ -0,0 +1,21 @@
+
+Dear $username,
+ Thank you for registering at $sitename. Your account has been created.
+The login details are as follows:
+
+
+Site Location: $siteurl
+Login Name: $email
+Password: $password
+
+You may change your password from your account "Settings" page after logging
+in.
+
+Please take a few moments to review the other account settings on that page.
+
+Thank you and welcome to $sitename.
+
+Sincerely,
+ $sitename Administrator
+
+
diff --git a/view/sv/register_verify_eml.tpl b/view/sv/register_verify_eml.tpl
new file mode 100644
index 000000000..60c38d800
--- /dev/null
+++ b/view/sv/register_verify_eml.tpl
@@ -0,0 +1,26 @@
+
+A new user registration request was received at $sitename which requires
+your approval.
+
+
+The login details are as follows:
+
+Full Name: $username
+Site Location: $siteurl
+Login Name: $email
+
+
+To approve this request please visit the following link:
+
+
+$siteurl/regmod/allow/$hash
+
+
+To deny the request and remove the account, please visit:
+
+
+$siteurl/regmod/deny/$hash
+
+
+Thank you.
+
diff --git a/view/sv/registrations-top.tpl b/view/sv/registrations-top.tpl
new file mode 100644
index 000000000..d8faf3439
--- /dev/null
+++ b/view/sv/registrations-top.tpl
@@ -0,0 +1,3 @@
+<h1>User registrations waiting for confirm</h1>
+
+
diff --git a/view/sv/registrations.tpl b/view/sv/registrations.tpl
new file mode 100644
index 000000000..c8646043e
--- /dev/null
+++ b/view/sv/registrations.tpl
@@ -0,0 +1 @@
+<li>$fullname ($email) : <a href="$approvelink">Approve</a> - <a href="$denylink">Deny</a></li>
diff --git a/view/sv/request_notify_eml.tpl b/view/sv/request_notify_eml.tpl
new file mode 100644
index 000000000..9eef7a61e
--- /dev/null
+++ b/view/sv/request_notify_eml.tpl
@@ -0,0 +1,17 @@
+
+Dear $myname,
+
+You have just received a connection request at $sitename
+
+from '$requestor'.
+
+You may visit their profile at $url.
+
+Please login to your site to view the complete introduction
+and approve or ignore/cancel the request.
+
+$siteurl
+
+Regards,
+
+ $sitename administrator \ No newline at end of file
diff --git a/view/sv/settings.tpl b/view/sv/settings.tpl
new file mode 100644
index 000000000..ea4e2e52c
--- /dev/null
+++ b/view/sv/settings.tpl
@@ -0,0 +1,168 @@
+<h1>Account Settings</h1>
+
+<div id="plugin-settings-link"><a href="settings/addon">Plugin Settings</a></div>
+
+$nickname_block
+
+
+<form action="settings" id="settings-form" method="post" autocomplete="off" >
+
+
+<h3 class="settings-heading">Basic Settings</h3>
+
+<div id="settings-username-wrapper" >
+<label id="settings-username-label" for="settings-username" >Full Name: </label>
+<input type="text" name="username" id="settings-username" value="$username" />
+</div>
+<div id="settings-username-end" ></div>
+
+<div id="settings-email-wrapper" >
+<label id="settings-email-label" for="settings-email" >Email Address: </label>
+<input type="text" name="email" id="settings-email" value="$email" />
+</div>
+<div id="settings-email-end" ></div>
+
+
+
+<div id="settings-timezone-wrapper" >
+<label id="settings-timezone-label" for="timezone_select" >Your Timezone: </label>
+$zoneselect
+</div>
+<div id="settings-timezone-end" ></div>
+
+<div id="settings-defloc-wrapper" >
+<label id="settings-defloc-label" for="settings-defloc" >Default Post Location: </label>
+<input type="text" name="defloc" id="settings-defloc" value="$defloc" />
+</div>
+<div id="settings-defloc-end" ></div>
+
+<div id="settings-allowloc-wrapper" >
+<label id="settings-allowloc-label" for="settings-allowloc" >Use Browser Location: </label>
+<input type="checkbox" name="allow_location" id="settings-allowloc" value="1" $loc_checked />
+</div>
+<div id="settings-allowloc-end" ></div>
+
+
+
+
+<div id="settings-theme-select">
+<label id="settings-theme-label" for="theme-select" >Display Theme: </label>
+$theme
+</div>
+<div id="settings-theme-end"></div>
+
+<div class="settings-submit-wrapper" >
+<input type="submit" name="submit" class="settings-submit" value="Submit" />
+</div>
+
+
+<h3 class="settings-heading">Security and Privacy Settings</h3>
+
+
+<input type="hidden" name="visibility" value="$visibility" />
+
+<div id="settings-maxreq-wrapper">
+<label id="settings-maxreq-label" for="settings-maxreq" >Maximum Friend Requests/Day</label>
+<input id="settings-maxreq" name="maxreq" value="$maxreq" />
+<div id="settings-maxreq-desc">(to prevent spam abuse)</div>
+</div>
+<div id="settings-maxreq-end"></div>
+
+
+
+
+$profile_in_dir
+
+$profile_in_net_dir
+
+
+
+<div id="settings-default-perms" class="settings-default-perms" >
+ <div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
+ <div id="settings-default-perms-menu-end"></div>
+
+ <div id="settings-default-perms-select" style="display: none;" >
+
+ $aclselect
+
+ </div>
+</div>
+<div id="settings-default-perms-end"></div>
+
+<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
+<div id="settings-expire-end"></div>
+
+
+
+<div class="settings-submit-wrapper" >
+<input type="submit" name="submit" class="settings-submit" value="Submit" />
+</div>
+
+
+
+<h3 class="settings-heading">Notification Settings</h3>
+
+
+<div id="settings-notify-wrapper">
+<div id="settings-notify-desc">Send a notification email when: </div>
+<label for="notify1" id="settings-label-notify1">You receive an introduction</label>
+<input id="notify1" type="checkbox" $sel_notify1 name="notify1" value="1" />
+<div id="notify1-end"></div>
+<label for="notify2" id="settings-label-notify2">Your introductions are confirmed</label>
+<input id="notify2" type="checkbox" $sel_notify2 name="notify2" value="2" />
+<div id="notify2-end"></div>
+<label for="notify3" id="settings-label-notify3">Someone writes on your profile wall</label>
+<input id="notify3" type="checkbox" $sel_notify3 name="notify3" value="4" />
+<div id="notify3-end"></div>
+<label for="notify4" id="settings-label-notify4">Someone writes a followup comment</label>
+<input id="notify4" type="checkbox" $sel_notify4 name="notify4" value="8" />
+<div id="notify4-end"></div>
+<label for="notify5" id="settings-label-notify5">You receive a private message</label>
+<input id="notify5" type="checkbox" $sel_notify5 name="notify5" value="16" />
+<div id="notify5-end"></div>
+</div>
+<div id="settings=notify-end"></div>
+
+<div class="settings-submit-wrapper" >
+<input type="submit" name="submit" class="settings-submit" value="Submit" />
+</div>
+
+
+<h3 class="settings-heading">Password Settings</h3>
+
+
+<div id="settings-password-wrapper" >
+<p id="settings-password-desc" >
+Leave password fields blank unless changing
+</p>
+<label id="settings-password-label" for="settings-password" >New Password: </label>
+<input type="password" id="settings-password" name="npassword" />
+</div>
+<div id="settings-password-end" ></div>
+
+<div id="settings-confirm-wrapper" >
+<label id="settings-confirm-label" for="settings-confirm" >Confirm: </label>
+<input type="password" id="settings-confirm" name="confirm" />
+</div>
+<div id="settings-confirm-end" ></div>
+
+<div id="settings-openid-wrapper" >
+ $oidhtml
+</div>
+<div id="settings-openid-end" ></div>
+
+
+<div class="settings-submit-wrapper" >
+<input type="submit" name="submit" class="settings-submit" value="Submit" />
+</div>
+
+
+<h3 class="settings-heading">Advanced Page Settings</h3>
+
+$pagetype
+
+<div class="settings-submit-wrapper" >
+<input type="submit" name="submit" class="settings-submit" value="Submit" />
+</div>
+
+
diff --git a/view/sv/settings_nick_set.tpl b/view/sv/settings_nick_set.tpl
new file mode 100644
index 000000000..a36b3b9a2
--- /dev/null
+++ b/view/sv/settings_nick_set.tpl
@@ -0,0 +1,9 @@
+
+<div id="settings-nick-wrapper" >
+<p id="settings-nickname-desc">
+<span class="error-message">Your profile address is <strong>'$nickname@$basepath'</strong></span>
+</p>
+$subdir
+
+</div>
+<div id="settings-nick-end" ></div>
diff --git a/view/sv/settings_nick_subdir.tpl b/view/sv/settings_nick_subdir.tpl
new file mode 100644
index 000000000..303c24df7
--- /dev/null
+++ b/view/sv/settings_nick_subdir.tpl
@@ -0,0 +1,6 @@
+<p>
+It appears that your website is located in a subdirectory of the<br />
+$hostname website, so this setting may not work reliably.<br />
+</p>
+<p>If you have any issues, you may have better results using the profile<br /> address '<strong>$baseurl/profile/$nickname</strong>'.
+</p> \ No newline at end of file
diff --git a/view/sv/settings_nick_unset.tpl b/view/sv/settings_nick_unset.tpl
new file mode 100644
index 000000000..903768b59
--- /dev/null
+++ b/view/sv/settings_nick_unset.tpl
@@ -0,0 +1,14 @@
+
+<div id="settings-nick-wrapper" >
+<p id="settings-nickname-desc">
+Your profile URL is currently <strong>'$baseurl/profile/$uid'</strong>.
+Setting a nickname will allow a friendly profile URL such as
+<strong>'nickname@$basepath'</strong>.
+<br />
+Once set, it can never be changed. The nickname <strong>must</strong> start with a letter; and only letters, numbers, dashes, and underscores are allowed.
+</p>
+<label id="settings-nick-label" for="settings-nick" >URL Nickname: </label>
+<input type="text" name="nick" id="settings-nick" value="$nickname" />
+</div>
+<div id="settings-nick-end" ></div>
+
diff --git a/view/sv/strings.php b/view/sv/strings.php
new file mode 100644
index 000000000..6685130bb
--- /dev/null
+++ b/view/sv/strings.php
@@ -0,0 +1,1124 @@
+<?php
+$a->strings['Not Found'] = 'Hittades inte';
+$a->strings['Page not found.' ] = 'Sidan hittades inte.' ;
+$a->strings['Permission denied'] = 'Åtkomst nekad';
+$a->strings['Permission denied.'] = 'Åtkomst nekad.';
+$a->strings['Create a New Account'] = 'Skapa nytt konto';
+$a->strings['Register'] = 'Registrera';
+$a->strings['Nickname or Email address: '] = 'Användarnamn eller e-postadress: ';
+$a->strings['Password: '] = 'Lösenord: ';
+$a->strings['Login'] = 'Logga in';
+$a->strings['Nickname/Email/OpenID: '] = 'Användarnamn/E-post/OpenID: ';
+$a->strings["Password \x28if not OpenID\x29: "] = "Lösenord \x28om inget OpenID\x29: ";
+$a->strings['Forgot your password?'] = 'Glömt lösenordet?';
+$a->strings['Password Reset'] = 'Återställ lösenord';
+$a->strings['Logout'] = 'Logga ut';
+$a->strings['prev'] = 'föreg';
+$a->strings['first'] = 'första';
+$a->strings['last'] = 'sista';
+$a->strings['next'] = 'nästa';
+$a->strings[' likes this.'] = ' gillar detta.';
+$a->strings[' doesn\'t like this.'] = ' ogillar detta.';
+$a->strings['people'] = 'personer';
+$a->strings['like this.'] = 'gilla detta.';
+$a->strings['don\'t like this.'] = 'ogilla detta.';
+$a->strings['and'] = 'och';
+$a->strings[', and '] = ', och ';
+$a->strings[' other people'] = ' personer till';
+$a->strings[' like this.'] = ' gillar detta.';
+$a->strings[' don\'t like this.'] = ' ogillar detta.';
+$a->strings['No contacts'] = 'Inga kontakter';
+$a->strings['Contacts'] = 'Kontakter';
+$a->strings['View Contacts'] = 'Visa kontakter';
+$a->strings['Search'] = 'Sök';
+$a->strings['No profile'] = 'Ingen profil';
+$a->strings['Connect'] = 'Anslut';
+$a->strings['Location:'] = 'Plats:';
+$a->strings[', '] = ', ';
+$a->strings['Gender:'] = 'Kön:';
+$a->strings['Status:'] = 'Status:';
+$a->strings['Homepage:'] = 'Hemsida:';
+$a->strings['Monday'] = 'måndag';
+$a->strings['Tuesday'] = 'tisdag';
+$a->strings['Wednesday'] = 'onsdag';
+$a->strings['Thursday'] = 'torsdag';
+$a->strings['Friday'] = 'fredag';
+$a->strings['Saturday'] = 'lördag';
+$a->strings['Sunday'] = 'söndag';
+$a->strings['January'] = 'januari';
+$a->strings['February'] = 'februari';
+$a->strings['March'] = 'mars';
+$a->strings['April'] = 'april';
+$a->strings['May'] = 'maj';
+$a->strings['June'] = 'juni';
+$a->strings['July'] = 'juli';
+$a->strings['August'] = 'augusti';
+$a->strings['September'] = 'september';
+$a->strings['October'] = 'oktober';
+$a->strings['November'] = 'november';
+$a->strings['December'] = 'december';
+$a->strings['Birthdays this week:'] = 'Födelsedagar denna vecka:';
+$a->strings["\x28Adjusted for local time\x29"] = "\x28Justerad till lokal tid\x29";
+$a->strings['[today]'] = '[today]';
+$a->strings['link to source'] = 'link to source';
+$a->strings['No recipient selected.'] = 'Ingen mottagare vald.';
+$a->strings['[no subject]'] = '[no subject]';
+$a->strings['Unable to locate contact information.'] = 'Hittar inga kontaktuppgifter.';
+$a->strings['Wall Photos'] = 'Loggfoton';
+$a->strings['Message sent.'] = 'Meddelandet har skickats.';
+$a->strings['Message could not be sent.'] = 'Det gick inte att skicka meddelandet.';
+$a->strings['Messages'] = 'Meddelanden';
+$a->strings['Inbox'] = 'Inkort';
+$a->strings['Outbox'] = 'Utkorg';
+$a->strings['New Message'] = 'Nytt meddelande';
+$a->strings['Message deleted.'] = 'Meddelandet borttaget.';
+$a->strings['Conversation removed.'] = 'Konversationen borttagen.';
+$a->strings['Send Private Message'] = 'Skicka personligt meddelande';
+$a->strings['To:'] = 'Till:';
+$a->strings['Subject:'] = 'Ämne:';
+$a->strings['Your message:'] = 'Ditt meddelande:';
+$a->strings['Upload photo'] = 'Ladda upp foto';
+$a->strings['Insert web link'] = 'Infoga länk';
+$a->strings['Please wait'] = 'Vänta';
+$a->strings['No messages.'] = 'Inga meddelanden.';
+$a->strings['Delete conversation'] = 'Ta bort konversation';
+$a->strings['Message not available.'] = 'Meddelandet är inte tillgängligt.';
+$a->strings['Delete message'] = 'Ta bort meddelande';
+$a->strings['Send Reply'] = 'Skicka svar';
+$a->strings['Applications'] = 'Applikationer';
+$a->strings["Invite Friends"] = "Bjud in vänner";
+$a->strings['Connect/Follow'] = 'Anslut/Följ';
+$a->strings['Example: bob@example.com, http://example.com/barbara'] = 'Exempel: adam@exempel.com, http://exempel.com/bertil';
+$a->strings['Follow'] = 'Följ';
+$a->strings['Could not access contact record.'] = 'Could not access contact record.';
+$a->strings['Could not locate selected profile.'] = 'Hittade inte vald profil.';
+$a->strings['Contact updated.'] = 'Kontakten har uppdaterats.';
+$a->strings['Failed to update contact record.'] = 'Failed to update contact record.';
+$a->strings['Contact has been '] = 'Kontakt ';
+$a->strings['blocked'] = 'spärrad';
+$a->strings['unblocked'] = 'inte längre spärrad';
+$a->strings['ignored'] = 'ignoreras';
+$a->strings['unignored'] = 'ignoreras inte längre';
+$a->strings['stopped following'] = 'stopped following';
+$a->strings['Contact has been removed.'] = 'Kontakten har tagits bort.';
+$a->strings['Contact not found.'] = 'Kontakten hittades inte.';
+$a->strings['Mutual Friendship'] = 'Ömsesidig vänskap';
+$a->strings['is a fan of yours'] = 'är ett fan till dig';
+$a->strings['you are a fan of'] = 'du är fan till';
+$a->strings['Never'] = 'Aldrig';
+$a->strings["\x28Update was successful\x29"] = "\x28Uppdateringen lyckades\x29";
+$a->strings["\x28Update was not successful\x29"] = "\x28Uppdateringen lyckades inte\x29";
+$a->strings['Contact Editor'] = 'Kontaktredigerare';
+$a->strings['Visit $name\'s profile'] = 'Besök $name ';
+$a->strings['Block/Unblock contact'] = 'Spärra kontakt eller häv spärr';
+$a->strings['Ignore contact'] = 'Ignorera kontakt';
+$a->strings['Delete contact'] = 'Ta bort kontakt';
+$a->strings['Last updated: '] = 'Uppdaterad senast: ';
+$a->strings['Update public posts: '] = 'Uppdatera offentliga inlägg: ';
+$a->strings['Update now'] = 'Updatera nu';
+$a->strings['Unblock this contact'] = 'Häv spärr för kontakt';
+$a->strings['Block this contact'] = 'Spärra kontakt';
+$a->strings['Unignore this contact'] = 'Ignorera inte längre kontakt';
+$a->strings['Ignore this contact'] = 'Ignorera kontakt';
+$a->strings['Currently blocked'] = 'Spärrad';
+$a->strings['Currently ignored'] = 'Ignoreras';
+$a->strings['Show Blocked Connections'] = 'Visa spärrade kontakter';
+$a->strings['Hide Blocked Connections'] = 'Dölj spärrade kontakter';
+$a->strings['Finding: '] = 'Finding: ';
+$a->strings['Find'] = 'Find';
+$a->strings['Visit '] = 'Besök ';
+$a->strings['\'s profile'] = 's profil';
+$a->strings['Edit contact'] = 'Ändra kontakt';
+$a->strings['Profile not found.'] = 'Profilen hittades inte.';
+$a->strings['Response from remote site was not understood.'] = 'Kunde inte tolka svaret från fjärrsajten.';
+$a->strings['Unexpected response from remote site: '] = 'Oväntat svar från fjärrsajten: ';
+$a->strings["Confirmation completed successfully."] = "Confirmation completed successfully.";
+$a->strings['Remote site reported: '] = 'Remote site reported: ';
+$a->strings["Temporary failure. Please wait and try again."] = "Tillfälligt fel. Försök igen lite senare.";
+$a->strings["Introduction failed or was revoked."] = "Introduction failed or was revoked.";
+$a->strings['Unable to set contact photo.'] = 'Det gick inte att välja profilbild.';
+$a->strings['is now friends with'] = 'är nu vän med';
+$a->strings['No user record found for '] = 'No user record found for ';
+$a->strings['Our site encryption key is apparently messed up.'] = 'Det är något fel på webbplatsens krypteringsnyckel.';
+$a->strings['Empty site URL was provided or URL could not be decrypted by us.'] = 'Empty site URL was provided or URL could not be decrypted by us.';
+$a->strings['Contact record was not found for you on our site.'] = 'Contact record was not found for you on our site.';
+$a->strings['The ID provided by your system is a duplicate on our system. It should work if you try again.'] = 'The ID provided by your system is a duplicate on our system. It should work if you try again.';
+$a->strings['Unable to set your contact credentials on our system.'] = 'Unable to set your contact credentials on our system.';
+$a->strings['Unable to update your contact profile details on our system'] = 'Unable to update your contact profile details on our system';
+$a->strings["Connection accepted at "] = "Connection accepted at ";
+$a->strings['Administrator'] = 'Administratör';
+$a->strings['noreply'] = 'noreply';
+$a->strings[' commented on an item at '] = ' skrev en kommentar på ';
+$a->strings[" commented on an item at "] = " skrev en kommentar på ";
+$a->strings[' welcomes '] = ' välkomnar ';
+$a->strings["This introduction has already been accepted."] = "This introduction has already been accepted.";
+$a->strings['Profile location is not valid or does not contain profile information.'] = 'Profiladressen är ogiltig eller innehåller ingen profilinformation.';
+$a->strings['Warning: profile location has no identifiable owner name.'] = 'Warning: profile location has no identifiable owner name.';
+$a->strings['Warning: profile location has no profile photo.'] = 'Warning: profile location has no profile photo.';
+$a->strings[' required parameter'] = ' obligatoriskt fält';
+$a->strings[" was "] = " was ";
+$a->strings["s were "] = "s were ";
+$a->strings["not found at the given location."] = "finns inte på platsen som angavs.";
+$a->strings["Introduction complete."] = "Presentationen klar.";
+$a->strings['Unrecoverable protocol error.'] = 'Unrecoverable protocol error.';
+$a->strings['Profile unavailable.'] = 'Profilen är inte tillgänglig.';
+$a->strings[' has received too many connection requests today.'] = ' has received too many connection requests today.';
+$a->strings['Spam protection measures have been invoked.'] = 'Spam protection measures have been invoked.';
+$a->strings['Friends are advised to please try again in 24 hours.'] = 'Friends are advised to please try again in 24 hours.';
+$a->strings["Invalid locator"] = "Invalid locator";
+$a->strings["Unable to resolve your name at the provided location."] = "Unable to resolve your name at the provided location.";
+$a->strings['You have already introduced yourself here.'] = 'Du har redan presenterat dig här.';
+$a->strings['Apparently you are already friends with .'] = 'Du är tydligen redan vän med .';
+$a->strings['Invalid profile URL.'] = 'Ogiltig profil-URL.';
+$a->strings['Disallowed profile URL.'] = 'Disallowed profile URL.';
+$a->strings['Your introduction has been sent.'] = 'Presentationen har skickats.';
+$a->strings["Please login to confirm introduction."] = "Please login to confirm introduction.";
+$a->strings["Incorrect identity currently logged in. Please login to <strong>this</strong> profile."] = "Incorrect identity currently logged in. Please login to <strong>this</strong> profile.";
+$a->strings['[Name Withheld]'] = '[Name Withheld]';
+$a->strings['Friend/Connection Request'] = 'Friend/Connection Request';
+$a->strings['Please answer the following:'] = 'Besvara följande, tack:';
+$a->strings['Does $name know you?'] = 'Känner $name dig?';
+$a->strings['Yes'] = 'Ja';
+$a->strings['No'] = 'Nej';
+$a->strings['Add a personal note:'] = 'Lägg till ett personligt meddelande:';
+$a->strings['Please enter your profile address from one of the following supported social networks:'] = 'Ange din profiladress på ett av följande sociala nätverk som stöds:';
+$a->strings['Friendika'] = 'Friendika';
+$a->strings['StatusNet/Federated Social Web'] = 'StatusNet/Federated Social Web';
+$a->strings["Private \x28secure\x29 network"] = "Privat \x28säkert\x29 nätverk";
+$a->strings["Public \x28insecure\x29 network"] = "Offentligt \x28osäkert\x29 nätverk";
+$a->strings['Your profile address:'] = 'Din profiladress:';
+$a->strings['Submit Request'] = 'Skicka begäran';
+$a->strings['Cancel'] = 'Avbryt';
+$a->strings['Global Directory'] = 'Global katalog';
+$a->strings['Item not found.'] = 'Hittades inte.';
+$a->strings['Private Message'] = 'Personligt meddelande';
+$a->strings["I like this \x28toggle\x29"] = "Jag gillar detta \x28toggle\x29";
+$a->strings["I don't like this \x28toggle\x29"] = "Jag ogillar detta \x28toggle\x29";
+$a->strings['This is you'] = 'Det här är du';
+$a->strings['Delete'] = 'Ta bort';
+$a->strings['View $name\'s profile'] = 'Visa $name s profil';
+$a->strings['View $owner_name\'s profile'] = 'Visa $owner_name s profil';
+$a->strings['to'] = 'till';
+$a->strings['Wall-to-Wall'] = 'Logg-till-logg';
+$a->strings['via Wall-To-Wall:'] = 'via Logg-till-logg:';
+$a->strings['Item has been removed.'] = 'Har tagits bort.';
+$a->strings['Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.'] = 'Innehållet omfattas av licensen <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a>.';
+$a->strings['CC: email addresses'] = 'CC: e-postadresser';
+$a->strings['Example: bob@example.com, mary@example.com'] = 'Exempel: adam@exempel.com, bertil@exempel.com';
+$a->strings['The profile address specified does not provide adequate information.'] = 'Angiven profiladress ger inte tillräcklig information.';
+$a->strings['Limited profile. This person will be unable to receive direct/personal notifications from you.'] = 'Begränsad profil. Den här personen kommer inte att kunna ta emot personliga meddelanden från dig.';
+$a->strings['Unable to retrieve contact information.'] = 'Det gick inte att nå kontaktinformationen.';
+$a->strings['following'] = 'följer';
+$a->strings['Group created.'] = 'Gruppen har skapats.';
+$a->strings['Could not create group.'] = 'Det gick inte att skapa gruppen.';
+$a->strings['Group not found.'] = 'Gruppen hittades inte.';
+$a->strings['Group name changed.'] = 'Gruppens namn har ändrats.';
+$a->strings['Membership list updated.'] = 'Medlemslistan har uppdaterats.';
+$a->strings['Group removed.'] = 'Gruppen har tagits bort.';
+$a->strings['Unable to remove group.'] = 'Gruppen kunde inte tas bort.';
+$a->strings["Welcome to "] = "Välkommen till ";
+$a->strings['Could not create/connect to database.'] = 'Det gick inte att skapa eller ansluta till databasen.';
+$a->strings['Connected to database.'] = 'Ansluten till databasen.';
+$a->strings['Database import succeeded.'] = 'Databasen har importerats.';
+$a->strings['IMPORTANT: You will need to [manually] setup a scheduled task for the poller.'] = 'IMPORTANT: You will need to [manually] setup a scheduled task for the poller.';
+$a->strings['Please see the file "INSTALL.txt".'] = 'Se filen "INSTALL.txt".';
+$a->strings['Database import failed.'] = 'Det gick inte att importera databasen.';
+$a->strings['You may need to import the file "database.sql" manually using phpmyadmin or mysql.'] = 'Du kanske måste importera filen "database.sql" manuellt med phpmyadmin eller mysql.';
+$a->strings['Welcome to Friendika.'] = 'Välkommen till Friendika.';
+$a->strings['Submit'] = 'Skicka';
+$a->strings['Could not find a command line version of PHP in the web server PATH.'] = 'Could not find a command line version of PHP in the web server PATH.';
+$a->strings['This is required. Please adjust the configuration file .htconfig.php accordingly.'] = 'This is required. Please adjust the configuration file .htconfig.php accordingly.';
+$a->strings['The command line version of PHP on your system does not have "register_argc_argv" enabled.'] = 'The command line version of PHP on your system does not have "register_argc_argv" enabled.';
+$a->strings['This is required for message delivery to work.'] = 'Det krävs för att meddelanden ska kunna levereras.';
+$a->strings['Error: the "openssl_pkey_new" function on this system is not able to generate encryption keys'] = 'Fel: funktionen "openssl_pkey_new" kan inte skapa krypteringsnycklar';
+$a->strings['If running under Windows, please see "http://www.php.net/manual/en/openssl.installation.php".'] = 'Läs mer på "http://www.php.net/manual/en/openssl.installation.php" om du kör Windows.';
+$a->strings['Error: Apache webserver mod-rewrite module is required but not installed.'] = 'Error: Apache webserver mod-rewrite module is required but not installed.';
+$a->strings['Error: libCURL PHP module required but not installed.'] = 'Error: libCURL PHP module required but not installed.';
+$a->strings['Error: GD graphics PHP module with JPEG support required but not installed.'] = 'Error: GD graphics PHP module with JPEG support required but not installed.';
+$a->strings['Error: openssl PHP module required but not installed.'] = 'Error: openssl PHP module required but not installed.';
+$a->strings['Error: mysqli PHP module required but not installed.'] = 'Error: mysqli PHP module required but not installed.';
+$a->strings['The web installer needs to be able to create a file called ".htconfig.php" in the top folder of your web server and it is unable to do so.'] = 'The web installer needs to be able to create a file called ".htconfig.php" in the top folder of your web server and it is unable to do so.';
+$a->strings['This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.'] = 'This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.';
+$a->strings['Please check with your site documentation or support people to see if this situation can be corrected.'] = 'Please check with your site documentation or support people to see if this situation can be corrected.';
+$a->strings['If not, you may be required to perform a manual installation. Please see the file "INSTALL.txt" for instructions.'] = 'If not, you may be required to perform a manual installation. Please see the file "INSTALL.txt" for instructions.';
+$a->strings['The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.'] = 'The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.';
+$a->strings['Errors encountered creating database tables.'] = 'Fel vid skapandet av databastabeller.';
+$a->strings[' : '] = ' : ';
+$a->strings['Not a valid email address.'] = 'Ogiltig e-postadress.';
+$a->strings['Please join my network on '] = 'Gå med i mitt nätverk på ';
+$a->strings['Message delivery failed.'] = 'Meddelandet kom inte fram.';
+$a->strings[' messages sent.'] = ' meddelanden har skickats.';
+$a->strings['Send invitations'] = 'Send invitations';
+$a->strings['Enter email addresses, one per line:'] = 'Ange e-postadresser, en per rad:';
+$a->strings['Please join my social network on '] = 'Gå med i mitt sociala nätverk på ';
+$a->strings['To accept this invitation, please visit:'] = 'Gå hit för att tacka ja till inbjudan:';
+$a->strings['Once you have registered, please connect with me via my profile page at:'] = 'Once you have registered, please connect with me via my profile page at:';
+$a->strings['Unable to locate original post.'] = 'Unable to locate original post.';
+$a->strings['Empty post discarded.'] = 'Empty post discarded.';
+$a->strings[" commented on your item at "] = " commented on your item at ";
+$a->strings[" posted on your profile wall at "] = " posted on your profile wall at ";
+$a->strings['System error. Post not saved.'] = 'Systemfel. Inlägget sparades inte.';
+$a->strings['This message was sent to you by '] = 'Du har fått det här meddelandet av ';
+$a->strings[', a member of the Friendika social network.'] = ', medlem i det sociala nätverket Friendika.';
+$a->strings['You may visit them online at'] = 'Besök online på';
+$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Kontakta avsändaren genom att svara på det här meddelandet om du inte vill ha sådana här meddelanden.';
+$a->strings['posted an update.'] = 'gjorde en uppdatering.';
+$a->strings['photo'] = 'foto';
+$a->strings['status'] = 'status';
+$a->strings['likes'] = 'gillar';
+$a->strings['doesn\'t like'] = 'ogillar';
+$a->strings['\'s'] = 's';
+$a->strings['Remote privacy information not available.'] = 'Remote privacy information not available.';
+$a->strings['Visible to:'] = 'Synlig för:';
+$a->strings['Password reset requested at '] = 'Lösenordsåterställning begärd kl ';
+$a->strings["Welcome back "] = "Välkommen tillbaka ";
+$a->strings['Manage Identities and/or Pages'] = 'Manage Identities and/or Pages';
+$a->strings["\x28Toggle between different identities or community/group pages which share your account details.\x29"] = "\x28Toggle between different identities or community/group pages which share your account details.\x29";
+$a->strings['Select an identity to manage: '] = 'Select an identity to manage: ';
+$a->strings['Normal View'] = 'Normal vy';
+$a->strings['New Item View'] = 'New Item View';
+$a->strings['Share'] = 'Dela';
+$a->strings['Insert YouTube video'] = 'Infoga klipp från YouTube';
+$a->strings['Set your location'] = 'Ange plats';
+$a->strings['Clear browser location'] = 'Clear browser location';
+$a->strings['Permission settings'] = 'Permission settings';
+$a->strings['No such group'] = 'Gruppen finns inte';
+$a->strings['Group is empty'] = 'Gruppen är tom';
+$a->strings['Group: '] = 'Grupp: ';
+$a->strings['View in context'] = 'Se i sitt sammanhang';
+$a->strings['Invalid request identifier.'] = 'Invalid request identifier.';
+$a->strings['Discard'] = 'Kasta bort';
+$a->strings['Ignore'] = 'Ignorera';
+$a->strings['Show Ignored Requests'] = 'Show Ignored Requests';
+$a->strings['Hide Ignored Requests'] = 'Hide Ignored Requests';
+$a->strings['Claims to be known to you: '] = 'Claims to be known to you: ';
+$a->strings['yes'] = 'ja';
+$a->strings['no'] = 'nej';
+$a->strings['Approve as: '] = 'Approve as: ';
+$a->strings['Friend'] = 'Vän';
+$a->strings['Fan/Admirer'] = 'Fan/Beundrare';
+$a->strings['Notification type: '] = 'Notification type: ';
+$a->strings['Friend/Connect Request'] = 'Friend/Connect Request';
+$a->strings['New Follower'] = 'New Follower';
+$a->strings['Approve'] = 'Godkänn';
+$a->strings['No notifications.'] = 'Inga aviseringar.';
+$a->strings['No registrations.'] = 'Inga registreringar.';
+$a->strings['Login failed.'] = 'Inloggningen misslyckades.';
+$a->strings['Photo Albums'] = 'Fotoalbum';
+$a->strings['Contact Photos'] = 'Contact Photos';
+$a->strings['Contact information unavailable'] = 'Kontaktinformationen är inte tillgänglig';
+$a->strings['Profile Photos'] = 'Profilbilder';
+$a->strings['Album not found.'] = 'Albumet finns inte.';
+$a->strings['Delete Album'] = 'Ta bort album';
+$a->strings['Delete Photo'] = 'Ta bort foto';
+$a->strings['was tagged in a'] = 'was tagged in a';
+$a->strings['by'] = 'av';
+$a->strings['Image exceeds size limit of '] = 'Bilden överskrider den tillåtna storleken ';
+$a->strings['Unable to process image.'] = 'Bilden kunde inte bahandlas.';
+$a->strings['Image upload failed.'] = 'Fel vid bilduppladdning.';
+$a->strings['No photos selected'] = 'Inga foton har valts';
+$a->strings['Upload Photos'] = 'Ladda upp foton';
+$a->strings['New album name: '] = 'Nytt album med namn: ';
+$a->strings['or existing album name: '] = 'eller befintligt album med namn: ';
+$a->strings['Permissions'] = 'Permissions';
+$a->strings['Edit Album'] = 'Redigera album';
+$a->strings['View Photo'] = 'Visa foto';
+$a->strings['Photo not available'] = 'Fotot är inte tillgängligt';
+$a->strings['Edit photo'] = 'Redigera foto';
+$a->strings['View Full Size'] = 'Visa fullstor';
+$a->strings['Tags: '] = 'Taggar: ';
+$a->strings['[Remove any tag]'] = '[Remove any tag]';
+$a->strings['New album name'] = 'New album name';
+$a->strings['Caption'] = 'Caption';
+$a->strings['Add a Tag'] = 'Lägg till tagg';
+$a->strings['Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping'] = 'Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping';
+$a->strings['Recent Photos'] = 'Nyligen tillagda foton';
+$a->strings['Upload New Photos'] = 'Ladda upp foton';
+$a->strings['View Album'] = 'Titta i album';
+$a->strings['Image uploaded but image cropping failed.'] = 'Bilden laddades upp men det blev fel när den skulle beskäras.';
+$a->strings['Image size reduction [175] failed.'] = 'Fel när bildstorlek skulle minskas [175].';
+$a->strings['Image size reduction [80] failed.'] = 'Fel när bildstorlek skulle minskas [80].';
+$a->strings['Image size reduction [48] failed.'] = 'Fel när bildstorlek skulle minskas [48].';
+$a->strings['Unable to process image'] = 'Det gick inte att behandla bilden';
+$a->strings['Image uploaded successfully.'] = 'Bilden har laddats upp.';
+$a->strings['Image size reduction [640] failed.'] = 'Fel när bildstorlek skulle minskas [640].';
+$a->strings['Profile Name is required.'] = 'Profile Name is required.';
+$a->strings['Profile updated.'] = 'Profilen har uppdaterats.';
+$a->strings['Profile deleted.'] = 'Profilen har tagits bort.';
+$a->strings['Profile-'] = 'Profil-';
+$a->strings['New profile created.'] = 'En ny profil har skapats.';
+$a->strings['Profile unavailable to clone.'] = 'Det gick inte att klona profilen.';
+$a->strings['This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet.'] = 'Det här är din <strong>offentliga</strong> profil.<br />Den <strong>kan</strong> vara synlig för vem som helst på internet.';
+$a->strings['Age: '] = 'Ålder: ';
+$a->strings['Profile Image'] = 'Profilbild';
+$a->strings['Invalid OpenID url'] = 'Ogiltig OpenID-url';
+$a->strings['Please enter the required information.'] = 'Fyll i alla obligatoriska fält.';
+$a->strings['Please use a shorter name.'] = 'Välj ett kortare namn.';
+$a->strings['Name too short.'] = 'Namnet är för kort.';
+$a->strings["That doesn\'t appear to be your full \x28First Last\x29 name."] = "Du verkar inte ha angett ditt fullständiga namn.";
+$a->strings['Your email domain is not among those allowed on this site.'] = 'Din epostdomän är inte tillåten på den här webbplatsen.';
+$a->strings['Cannot use that email.'] = 'Får inte använda den e-postadressen.';
+$a->strings['Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.'] = 'Ditt användarnamn får bara innehålla "a-z", "0-9", "-" och "_", och måste dessutom börja med en bokstav.';
+$a->strings['Nickname is already registered. Please choose another.'] = 'Användarnamnet är upptaget. Välj ett annat.';
+$a->strings['SERIOUS ERROR: Generation of security keys failed.'] = 'SERIOUS ERROR: Generation of security keys failed.';
+$a->strings['An error occurred during registration. Please try again.'] = 'Något gick fel vid registreringen. Försök igen.';
+$a->strings['An error occurred creating your default profile. Please try again.'] = 'An error occurred creating your default profile. Please try again.';
+$a->strings['Registration details for '] = 'Registration details for ';
+$a->strings['Registration successful. Please check your email for further instructions.'] = 'Registrering klar. Kolla din e-post för vidare instruktioner.';
+$a->strings['Failed to send email message. Here is the message that failed.'] = 'Det gick inte att skicka e-brevet. Här är meddelandet som inte kunde skickas.';
+$a->strings['Your registration can not be processed.'] = 'Det går inte att behandla registreringen.';
+$a->strings['Registration request at '] = 'Registration request at ';
+$a->strings['Your registration is pending approval by the site owner.'] = 'Din registrering inväntar godkännande av webbplatsens ägare.';
+$a->strings["You may \x28optionally\x29 fill in this form via OpenID by supplying your OpenID and clicking 'Register'."] = "You may \x28optionally\x29 fill in this form via OpenID by supplying your OpenID and clicking 'Register'.";
+$a->strings['If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.'] = 'Om du inte känner till OpenID kan du lämna det fältet tomt och fylla i resten.';
+$a->strings["Your OpenID \x28optional\x29: "] = "Ditt OpenID \x28krävs ej\x29: ";
+$a->strings['Members of this network prefer to communicate with real people who use their real names.'] = 'Medlemmarna i det här nätverket föredrar att kommunicera med riktiga människor som använder sina riktiga namn.';
+$a->strings['Include your profile in member directory?'] = 'Inkludera din profil i medlemskatalogen?';
+$a->strings['Registration'] = 'Registrering';
+$a->strings['Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '] = 'Ditt fullständiga namn ' . "\x28" . 't. ex. Karl Karlsson' . "\x29" . ': ';
+$a->strings['Your Email Address: '] = 'Din e-postadress: ';
+$a->strings['Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \'<strong>nickname@$sitename</strong>\'.'] = 'Välj ett användarnamn. Det måste inledas med en bokstav. Din profiladress på den här webbplatsen blir \'<strong>användarnamn@$sitename</strong>\'.';
+$a->strings['Choose a nickname: '] = 'Välj ett användarnamn: ';
+$a->strings['Please login.'] = 'Logga in.';
+$a->strings['Registration revoked for '] = 'Registration revoked for ';
+$a->strings['Account approved.'] = 'Account approved.';
+$a->strings['Remove My Account'] = 'Ta bort mitt konto';
+$a->strings['This will completely remove your account. Once this has been done it is not recoverable.'] = 'Detta kommer att ta bort kontot helt och hållet. Efter att det är gjort går det inte att återställa.';
+$a->strings['Please enter your password for verification:'] = 'Ange lösenordet igen för jämförelse:';
+$a->strings['Passwords do not match. Password unchanged.'] = 'Lösenorden skiljer sig åt. Lösenordet ändras inte.';
+$a->strings['Empty passwords are not allowed. Password unchanged.'] = 'Lösenordet får inte vara blankt. Lösenordet ändras inte.';
+$a->strings['Password changed.'] = 'Lösenordet har ändrats.';
+$a->strings['Password update failed. Please try again.'] = 'Det blev fel när lösenordet skulle ändras. Försök igen.';
+$a->strings[' Please use a shorter name.'] = ' Använd ett kortare namn.';
+$a->strings[' Name too short.'] = ' Namnet är för kort.';
+$a->strings[' Not valid email.'] = ' Ogiltig e-postadress.';
+$a->strings[' Cannot change to that email.'] = ' Ändring till den e-postadressen görs inte.';
+$a->strings['Settings updated.'] = 'Inställningarna har uppdaterats.';
+$a->strings['Plugin Settings'] = 'Plugin Settings';
+$a->strings['Account Settings'] = 'Kontoinställningar';
+$a->strings['No Plugin settings configured'] = 'No Plugin settings configured';
+$a->strings['OpenID: '] = 'OpenID: ';
+$a->strings["&nbsp;\x28Optional\x29 Allow this OpenID to login to this account."] = "&nbsp;\x28Optional\x29 Allow this OpenID to login to this account.";
+$a->strings['Profile is <strong>not published</strong>.'] = 'Profilen är <strong>inte publicerad</strong>.';
+$a->strings['Default Post Permissions'] = 'Default Post Permissions';
+$a->strings['Tag removed'] = 'Taggen har tagits bort';
+$a->strings['Remove Item Tag'] = 'Remove Item Tag';
+$a->strings['Select a tag to remove: '] = 'Välj tagg som ska tas bort: ';
+$a->strings['Remove'] = 'Ta bort';
+$a->strings['No contacts.'] = 'Inga kontakter.';
+$a->strings['Visible To:'] = 'Synlig för:';
+$a->strings['Groups'] = 'Grupper';
+$a->strings['Except For:'] = 'Utom för:';
+$a->strings['Logged out.'] = 'Utloggad.';
+$a->strings['Unknown | Not categorised'] = 'Okänd | Inte kategoriserad';
+$a->strings['Block immediately'] = 'Spärra omedelbart';
+$a->strings['Shady, spammer, self-marketer'] = 'Suspekt, spammare, reklamspridare';
+$a->strings['Known to me, but no opinion'] = 'Jag vet vem det är, men har ingen åsikt';
+$a->strings['OK, probably harmless'] = 'OK, antagligen harmlös';
+$a->strings['Reputable, has my trust'] = 'Pålitlig, jag litar på personen';
+$a->strings['Frequently'] = 'Ofta';
+$a->strings['Hourly'] = 'Varje timme';
+$a->strings['Twice daily'] = 'Två gånger om dagen';
+$a->strings['Daily'] = 'Dagligen';
+$a->strings['Weekly'] = 'Veckovis';
+$a->strings['Monthly'] = 'Månadsvis';
+$a->strings['Miscellaneous'] = 'Blandat';
+$a->strings['less than a second ago'] = 'för mindre än en sekund sedan';
+$a->strings['year'] = 'år';
+$a->strings['years'] = 'år';
+$a->strings['month'] = 'månad';
+$a->strings['months'] = 'månader';
+$a->strings['week'] = 'vecka';
+$a->strings['weeks'] = 'veckor';
+$a->strings['day'] = 'dag';
+$a->strings['days'] = 'dagar';
+$a->strings['hour'] = 'timme';
+$a->strings['hours'] = 'timmar';
+$a->strings['minute'] = 'minut';
+$a->strings['minutes'] = 'minuter';
+$a->strings['second'] = 'sekund';
+$a->strings['seconds'] = 'sekunder';
+$a->strings[' ago'] = ' sedan';
+$a->strings['Create a new group'] = 'Skapa ny grupp';
+$a->strings['Everybody'] = 'Alla';
+$a->strings['Birthday:'] = 'Födelsedatum:';
+$a->strings['Home'] = 'Hem';
+$a->strings['Apps'] = 'Apps';
+$a->strings['Directory'] = 'Katalog';
+$a->strings['Network'] = 'Nätverk';
+$a->strings['Notifications'] = 'Aviseringar';
+$a->strings['Manage'] = 'Hantera';
+$a->strings['Settings'] = 'Inställningar';
+$a->strings['Profiles'] = 'Profiler';
+$a->strings['Embedding disabled'] = 'Embedding disabled';
+$a->strings['Male'] = 'Man';
+$a->strings['Female'] = 'Kvinna';
+$a->strings['Currently Male'] = 'För närvarande man';
+$a->strings['Currently Female'] = 'För närvarande kvinna';
+$a->strings['Mostly Male'] = 'Mestadels man';
+$a->strings['Mostly Female'] = 'Mestadels kvinna';
+$a->strings['Transgender'] = 'Transgender';
+$a->strings['Intersex'] = 'Intersex';
+$a->strings['Transsexual'] = 'Transsexuell';
+$a->strings['Hermaphrodite'] = 'Hermafrodit';
+$a->strings['Neuter'] = 'Neuter';
+$a->strings['Non-specific'] = 'Non-specific';
+$a->strings['Other'] = 'Annat';
+$a->strings['Undecided'] = 'Undecided';
+$a->strings['Males'] = 'Males';
+$a->strings['Females'] = 'Females';
+$a->strings['Gay'] = 'Bög';
+$a->strings['Lesbian'] = 'Lesbisk';
+$a->strings['No Preference'] = 'No Preference';
+$a->strings['Bisexual'] = 'Bisexuell';
+$a->strings['Autosexual'] = 'Autosexual';
+$a->strings['Abstinent'] = 'Abstinent';
+$a->strings['Virgin'] = 'Oskuld';
+$a->strings['Deviant'] = 'Avvikande';
+$a->strings['Fetish'] = 'Fetish';
+$a->strings['Oodles'] = 'Oodles';
+$a->strings['Nonsexual'] = 'Nonsexual';
+$a->strings['Single'] = 'Singel';
+$a->strings['Lonely'] = 'Ensam';
+$a->strings['Available'] = 'Tillgänglig';
+$a->strings['Unavailable'] = 'Upptagen';
+$a->strings['Dating'] = 'Dejtar';
+$a->strings['Unfaithful'] = 'Unfaithful';
+$a->strings['Sex Addict'] = 'Sexmissbrukare';
+$a->strings['Friends'] = 'Vänner';
+$a->strings['Friends/Benefits'] = 'Friends/Benefits';
+$a->strings['Casual'] = 'Casual';
+$a->strings['Engaged'] = 'Förlovad';
+$a->strings['Married'] = 'Gift';
+$a->strings['Partners'] = 'I partnerskap';
+$a->strings['Cohabiting'] = 'Cohabiting';
+$a->strings['Happy'] = 'Glad';
+$a->strings['Not Looking'] = 'Letar inte';
+$a->strings['Swinger'] = 'Swinger';
+$a->strings['Betrayed'] = 'Bedragen';
+$a->strings['Separated'] = 'Separerat';
+$a->strings['Unstable'] = 'Unstable';
+$a->strings['Divorced'] = 'Skiljd';
+$a->strings['Widowed'] = 'Widowed';
+$a->strings['Uncertain'] = 'Uncertain';
+$a->strings['Complicated'] = 'Komplicerat';
+$a->strings['Don\'t care'] = 'Don\'t care';
+$a->strings['Ask me'] = 'Fråga mig';
+$a->strings['Facebook disabled'] = 'Facebook disabled';
+$a->strings['Facebook API key is missing.'] = 'Facebook API key is missing.';
+$a->strings['Facebook Connect'] = 'Facebook Connect';
+$a->strings['Install Facebook post connector'] = 'Install Facebook post connector';
+$a->strings['Remove Facebook post connector'] = 'Remove Facebook post connector';
+$a->strings['Facebook'] = 'Facebook';
+$a->strings['Facebook Connector Settings'] = 'Facebook Connector Settings';
+$a->strings['Post to Facebook'] = 'Post to Facebook';
+$a->strings['Image: '] = 'Bild: ';
+$a->strings['Select files to upload: '] = 'Välj filer att ladda upp: ';
+$a->strings['Use the following controls only if the Java uploader [above] fails to launch.'] = 'Use the following controls only if the Java uploader [above] fails to launch.';
+$a->strings['Upload a file'] = 'Ladda upp fil';
+$a->strings['Drop files here to upload'] = 'Dra filer som ska laddas upp hit';
+$a->strings['Failed'] = 'Misslyckades';
+$a->strings['No files were uploaded.'] = 'Inga filer laddades upp.';
+$a->strings['Uploaded file is empty'] = 'Den uppladdade filen är tom';
+$a->strings['Uploaded file is too large'] = 'Den uppladdade filen är för stor';
+$a->strings['File has an invalid extension, it should be one of '] = 'Otillåten filnamnsändelse, det ska vara ';
+$a->strings['Upload was cancelled, or server error encountered'] = 'Serverfel eller avbruten uppladdning';
+$a->strings['Randplace Settings'] = 'Randplace Settings';
+$a->strings['Enable Randplace Plugin'] = 'Enable Randplace Plugin';
+$a->strings['Post to StatusNet'] = 'Post to StatusNet';
+$a->strings['StatusNet Posting Settings'] = 'StatusNet Posting Settings';
+$a->strings['No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.'] = 'No consumer key pair for StatusNet found. Register your Friendika Account as an desktop client on your StatusNet account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Friendika installation at your favorited StatusNet installation.';
+$a->strings['OAuth Consumer Key'] = 'OAuth Consumer Key';
+$a->strings['OAuth Consumer Secret'] = 'OAuth Consumer Secret';
+$a->strings["Base API Path \x28remember the trailing /\x29"] = "Base API Path \x28remember the trailing /\x29";
+$a->strings['To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.'] = 'To connect to your StatusNet account click the button below to get a security code from StatusNet which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to StatusNet.';
+$a->strings['Log in with StatusNet'] = 'Log in with StatusNet';
+$a->strings['Copy the security code from StatusNet here'] = 'Copy the security code from StatusNet here';
+$a->strings['Currently connected to: '] = 'Currently connected to: ';
+$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.'] = 'If enabled all your <strong>public</strong> postings will be posted to the associated StatusNet account as well.';
+$a->strings['Send public postings to StatusNet'] = 'Send public postings to StatusNet';
+$a->strings['Clear OAuth configuration'] = 'Clear OAuth configuration';
+$a->strings['Three Dimensional Tic-Tac-Toe'] = 'Tredimensionellt luffarschack';
+$a->strings['3D Tic-Tac-Toe'] = '3D-luffarschack';
+$a->strings['New game'] = 'New game';
+$a->strings['New game with handicap'] = 'New game with handicap';
+$a->strings['Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. '] = 'Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. ';
+$a->strings['In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels.'] = 'In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels.';
+$a->strings['The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage.'] = 'The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage.';
+$a->strings['You go first...'] = 'You go first...';
+$a->strings['I\'m going first this time...'] = 'I\'m going first this time...';
+$a->strings['You won!'] = 'You won!';
+$a->strings['"Cat" game!'] = '"Cat" game!';
+$a->strings['I won!'] = 'I won!';
+$a->strings['Post to Twitter'] = 'Post to Twitter';
+$a->strings['Twitter Posting Settings'] = 'Twitter Posting Settings';
+$a->strings['No consumer key pair for Twitter found. Please contact your site administrator.'] = 'No consumer key pair for Twitter found. Please contact your site administrator.';
+$a->strings['At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.'] = 'At this Friendika instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to Twitter.';
+$a->strings['Copy the PIN from Twitter here'] = 'Copy the PIN from Twitter here';
+$a->strings['If enabled all your <strong>public</strong> postings will be posted to the associated Twitter account as well.'] = 'If enabled all your <strong>public</strong> postings will be posted to the associated Twitter account as well.';
+$a->strings['Send public postings to Twitter'] = 'Send public postings to Twitter';
+$a->strings['Africa/Abidjan'] = 'Afrika/Abidjan';
+$a->strings['Africa/Accra'] = 'Afrika/Accra';
+$a->strings['Africa/Addis_Ababa'] = 'Afrika/Addis_Ababa';
+$a->strings['Africa/Algiers'] = 'Afrika/Algiers';
+$a->strings['Africa/Asmara'] = 'Afrika/Asmara';
+$a->strings['Africa/Asmera'] = 'Afrika/Asmera';
+$a->strings['Africa/Bamako'] = 'Afrika/Bamako';
+$a->strings['Africa/Bangui'] = 'Afrika/Bangui';
+$a->strings['Africa/Banjul'] = 'Afrika/Banjul';
+$a->strings['Africa/Bissau'] = 'Afrika/Bissau';
+$a->strings['Africa/Blantyre'] = 'Afrika/Blantyre';
+$a->strings['Africa/Brazzaville'] = 'Afrika/Brazzaville';
+$a->strings['Africa/Bujumbura'] = 'Afrika/Bujumbura';
+$a->strings['Africa/Cairo'] = 'Afrika/Cairo';
+$a->strings['Africa/Casablanca'] = 'Afrika/Casablanca';
+$a->strings['Africa/Ceuta'] = 'Afrika/Ceuta';
+$a->strings['Africa/Conakry'] = 'Afrika/Conakry';
+$a->strings['Africa/Dakar'] = 'Afrika/Dakar';
+$a->strings['Africa/Dar_es_Salaam'] = 'Afrika/Dar_es_Salaam';
+$a->strings['Africa/Djibouti'] = 'Afrika/Djibouti';
+$a->strings['Africa/Douala'] = 'Afrika/Douala';
+$a->strings['Africa/El_Aaiun'] = 'Afrika/El_Aaiun';
+$a->strings['Africa/Freetown'] = 'Afrika/Freetown';
+$a->strings['Africa/Gaborone'] = 'Afrika/Gaborone';
+$a->strings['Africa/Harare'] = 'Afrika/Harare';
+$a->strings['Africa/Johannesburg'] = 'Afrika/Johannesburg';
+$a->strings['Africa/Kampala'] = 'Afrika/Kampala';
+$a->strings['Africa/Khartoum'] = 'Afrika/Khartoum';
+$a->strings['Africa/Kigali'] = 'Afrika/Kigali';
+$a->strings['Africa/Kinshasa'] = 'Afrika/Kinshasa';
+$a->strings['Africa/Lagos'] = 'Afrika/Lagos';
+$a->strings['Africa/Libreville'] = 'Afrika/Libreville';
+$a->strings['Africa/Lome'] = 'Afrika/Lome';
+$a->strings['Africa/Luanda'] = 'Afrika/Luanda';
+$a->strings['Africa/Lubumbashi'] = 'Afrika/Lubumbashi';
+$a->strings['Africa/Lusaka'] = 'Afrika/Lusaka';
+$a->strings['Africa/Malabo'] = 'Afrika/Malabo';
+$a->strings['Africa/Maputo'] = 'Afrika/Maputo';
+$a->strings['Africa/Maseru'] = 'Afrika/Maseru';
+$a->strings['Africa/Mbabane'] = 'Afrika/Mbabane';
+$a->strings['Africa/Mogadishu'] = 'Afrika/Mogadishu';
+$a->strings['Africa/Monrovia'] = 'Afrika/Monrovia';
+$a->strings['Africa/Nairobi'] = 'Afrika/Nairobi';
+$a->strings['Africa/Ndjamena'] = 'Afrika/Ndjamena';
+$a->strings['Africa/Niamey'] = 'Afrika/Niamey';
+$a->strings['Africa/Nouakchott'] = 'Afrika/Nouakchott';
+$a->strings['Africa/Ouagadougou'] = 'Afrika/Ouagadougou';
+$a->strings['Africa/Porto-Novo'] = 'Afrika/Porto-Novo';
+$a->strings['Africa/Sao_Tome'] = 'Afrika/Sao_Tome';
+$a->strings['Africa/Timbuktu'] = 'Afrika/Timbuktu';
+$a->strings['Africa/Tripoli'] = 'Afrika/Tripoli';
+$a->strings['Africa/Tunis'] = 'Afrika/Tunis';
+$a->strings['Africa/Windhoek'] = 'Afrika/Windhoek';
+$a->strings['America/Adak'] = 'Amerika/Adak';
+$a->strings['America/Anchorage'] = 'Amerika/Anchorage';
+$a->strings['America/Anguilla'] = 'Amerika/Anguilla';
+$a->strings['America/Antigua'] = 'Amerika/Antigua';
+$a->strings['America/Araguaina'] = 'Amerika/Araguaina';
+$a->strings['America/Argentina/Buenos_Aires'] = 'Amerika/Argentina/Buenos_Aires';
+$a->strings['America/Argentina/Catamarca'] = 'Amerika/Argentina/Catamarca';
+$a->strings['America/Argentina/ComodRivadavia'] = 'Amerika/Argentina/ComodRivadavia';
+$a->strings['America/Argentina/Cordoba'] = 'Amerika/Argentina/Cordoba';
+$a->strings['America/Argentina/Jujuy'] = 'Amerika/Argentina/Jujuy';
+$a->strings['America/Argentina/La_Rioja'] = 'Amerika/Argentina/La_Rioja';
+$a->strings['America/Argentina/Mendoza'] = 'Amerika/Argentina/Mendoza';
+$a->strings['America/Argentina/Rio_Gallegos'] = 'Amerika/Argentina/Rio_Gallegos';
+$a->strings['America/Argentina/Salta'] = 'Amerika/Argentina/Salta';
+$a->strings['America/Argentina/San_Juan'] = 'Amerika/Argentina/San_Juan';
+$a->strings['America/Argentina/San_Luis'] = 'Amerika/Argentina/San_Luis';
+$a->strings['America/Argentina/Tucuman'] = 'Amerika/Argentina/Tucuman';
+$a->strings['America/Argentina/Ushuaia'] = 'Amerika/Argentina/Ushuaia';
+$a->strings['America/Aruba'] = 'Amerika/Aruba';
+$a->strings['America/Asuncion'] = 'Amerika/Asuncion';
+$a->strings['America/Atikokan'] = 'Amerika/Atikokan';
+$a->strings['America/Atka'] = 'Amerika/Atka';
+$a->strings['America/Bahia'] = 'Amerika/Bahia';
+$a->strings['America/Barbados'] = 'Amerika/Barbados';
+$a->strings['America/Belem'] = 'Amerika/Belem';
+$a->strings['America/Belize'] = 'Amerika/Belize';
+$a->strings['America/Blanc-Sablon'] = 'Amerika/Blanc-Sablon';
+$a->strings['America/Boa_Vista'] = 'Amerika/Boa_Vista';
+$a->strings['America/Bogota'] = 'Amerika/Bogota';
+$a->strings['America/Boise'] = 'Amerika/Boise';
+$a->strings['America/Buenos_Aires'] = 'Amerika/Buenos_Aires';
+$a->strings['America/Cambridge_Bay'] = 'Amerika/Cambridge_Bay';
+$a->strings['America/Campo_Grande'] = 'Amerika/Campo_Grande';
+$a->strings['America/Cancun'] = 'Amerika/Cancun';
+$a->strings['America/Caracas'] = 'Amerika/Caracas';
+$a->strings['America/Catamarca'] = 'Amerika/Catamarca';
+$a->strings['America/Cayenne'] = 'Amerika/Cayenne';
+$a->strings['America/Cayman'] = 'Amerika/Cayman';
+$a->strings['America/Chicago'] = 'Amerika/Chicago';
+$a->strings['America/Chihuahua'] = 'Amerika/Chihuahua';
+$a->strings['America/Coral_Harbour'] = 'Amerika/Coral_Harbour';
+$a->strings['America/Cordoba'] = 'Amerika/Cordoba';
+$a->strings['America/Costa_Rica'] = 'Amerika/Costa_Rica';
+$a->strings['America/Cuiaba'] = 'Amerika/Cuiaba';
+$a->strings['America/Curacao'] = 'Amerika/Curacao';
+$a->strings['America/Danmarkshavn'] = 'Amerika/Danmarkshavn';
+$a->strings['America/Dawson'] = 'Amerika/Dawson';
+$a->strings['America/Dawson_Creek'] = 'Amerika/Dawson_Creek';
+$a->strings['America/Denver'] = 'Amerika/Denver';
+$a->strings['America/Detroit'] = 'Amerika/Detroit';
+$a->strings['America/Dominica'] = 'Amerika/Dominica';
+$a->strings['America/Edmonton'] = 'Amerika/Edmonton';
+$a->strings['America/Eirunepe'] = 'Amerika/Eirunepe';
+$a->strings['America/El_Salvador'] = 'Amerika/El_Salvador';
+$a->strings['America/Ensenada'] = 'Amerika/Ensenada';
+$a->strings['America/Fort_Wayne'] = 'Amerika/Fort_Wayne';
+$a->strings['America/Fortaleza'] = 'Amerika/Fortaleza';
+$a->strings['America/Glace_Bay'] = 'Amerika/Glace_Bay';
+$a->strings['America/Godthab'] = 'Amerika/Godthab';
+$a->strings['America/Goose_Bay'] = 'Amerika/Goose_Bay';
+$a->strings['America/Grand_Turk'] = 'Amerika/Grand_Turk';
+$a->strings['America/Grenada'] = 'Amerika/Grenada';
+$a->strings['America/Guadeloupe'] = 'Amerika/Guadeloupe';
+$a->strings['America/Guatemala'] = 'Amerika/Guatemala';
+$a->strings['America/Guayaquil'] = 'Amerika/Guayaquil';
+$a->strings['America/Guyana'] = 'Amerika/Guyana';
+$a->strings['America/Halifax'] = 'Amerika/Halifax';
+$a->strings['America/Havana'] = 'Amerika/Havana';
+$a->strings['America/Hermosillo'] = 'Amerika/Hermosillo';
+$a->strings['America/Indiana/Indianapolis'] = 'Amerika/Indiana/Indianapolis';
+$a->strings['America/Indiana/Knox'] = 'Amerika/Indiana/Knox';
+$a->strings['America/Indiana/Marengo'] = 'Amerika/Indiana/Marengo';
+$a->strings['America/Indiana/Petersburg'] = 'Amerika/Indiana/Petersburg';
+$a->strings['America/Indiana/Tell_City'] = 'Amerika/Indiana/Tell_City';
+$a->strings['America/Indiana/Vevay'] = 'Amerika/Indiana/Vevay';
+$a->strings['America/Indiana/Vincennes'] = 'Amerika/Indiana/Vincennes';
+$a->strings['America/Indiana/Winamac'] = 'Amerika/Indiana/Winamac';
+$a->strings['America/Indianapolis'] = 'Amerika/Indianapolis';
+$a->strings['America/Inuvik'] = 'Amerika/Inuvik';
+$a->strings['America/Iqaluit'] = 'Amerika/Iqaluit';
+$a->strings['America/Jamaica'] = 'Amerika/Jamaica';
+$a->strings['America/Jujuy'] = 'Amerika/Jujuy';
+$a->strings['America/Juneau'] = 'Amerika/Juneau';
+$a->strings['America/Kentucky/Louisville'] = 'Amerika/Kentucky/Louisville';
+$a->strings['America/Kentucky/Monticello'] = 'Amerika/Kentucky/Monticello';
+$a->strings['America/Knox_IN'] = 'Amerika/Knox_IN';
+$a->strings['America/La_Paz'] = 'Amerika/La_Paz';
+$a->strings['America/Lima'] = 'Amerika/Lima';
+$a->strings['America/Los_Angeles'] = 'Amerika/Los_Angeles';
+$a->strings['America/Louisville'] = 'Amerika/Louisville';
+$a->strings['America/Maceio'] = 'Amerika/Maceio';
+$a->strings['America/Managua'] = 'Amerika/Managua';
+$a->strings['America/Manaus'] = 'Amerika/Manaus';
+$a->strings['America/Marigot'] = 'Amerika/Marigot';
+$a->strings['America/Martinique'] = 'Amerika/Martinique';
+$a->strings['America/Matamoros'] = 'Amerika/Matamoros';
+$a->strings['America/Mazatlan'] = 'Amerika/Mazatlan';
+$a->strings['America/Mendoza'] = 'Amerika/Mendoza';
+$a->strings['America/Menominee'] = 'Amerika/Menominee';
+$a->strings['America/Merida'] = 'Amerika/Merida';
+$a->strings['America/Mexico_City'] = 'Amerika/Mexico_City';
+$a->strings['America/Miquelon'] = 'Amerika/Miquelon';
+$a->strings['America/Moncton'] = 'Amerika/Moncton';
+$a->strings['America/Monterrey'] = 'Amerika/Monterrey';
+$a->strings['America/Montevideo'] = 'Amerika/Montevideo';
+$a->strings['America/Montreal'] = 'Amerika/Montreal';
+$a->strings['America/Montserrat'] = 'Amerika/Montserrat';
+$a->strings['America/Nassau'] = 'Amerika/Nassau';
+$a->strings['America/New_York'] = 'Amerika/New_York';
+$a->strings['America/Nipigon'] = 'Amerika/Nipigon';
+$a->strings['America/Nome'] = 'Amerika/Nome';
+$a->strings['America/Noronha'] = 'Amerika/Noronha';
+$a->strings['America/North_Dakota/Center'] = 'Amerika/North_Dakota/Center';
+$a->strings['America/North_Dakota/New_Salem'] = 'Amerika/North_Dakota/New_Salem';
+$a->strings['America/Ojinaga'] = 'Amerika/Ojinaga';
+$a->strings['America/Panama'] = 'Amerika/Panama';
+$a->strings['America/Pangnirtung'] = 'Amerika/Pangnirtung';
+$a->strings['America/Paramaribo'] = 'Amerika/Paramaribo';
+$a->strings['America/Phoenix'] = 'Amerika/Phoenix';
+$a->strings['America/Port-au-Prince'] = 'Amerika/Port-au-Prince';
+$a->strings['America/Port_of_Spain'] = 'Amerika/Port_of_Spain';
+$a->strings['America/Porto_Acre'] = 'Amerika/Porto_Acre';
+$a->strings['America/Porto_Velho'] = 'Amerika/Porto_Velho';
+$a->strings['America/Puerto_Rico'] = 'Amerika/Puerto_Rico';
+$a->strings['America/Rainy_River'] = 'Amerika/Rainy_River';
+$a->strings['America/Rankin_Inlet'] = 'Amerika/Rankin_Inlet';
+$a->strings['America/Recife'] = 'Amerika/Recife';
+$a->strings['America/Regina'] = 'Amerika/Regina';
+$a->strings['America/Resolute'] = 'Amerika/Resolute';
+$a->strings['America/Rio_Branco'] = 'Amerika/Rio_Branco';
+$a->strings['America/Rosario'] = 'Amerika/Rosario';
+$a->strings['America/Santa_Isabel'] = 'Amerika/Santa_Isabel';
+$a->strings['America/Santarem'] = 'Amerika/Santarem';
+$a->strings['America/Santiago'] = 'Amerika/Santiago';
+$a->strings['America/Santo_Domingo'] = 'Amerika/Santo_Domingo';
+$a->strings['America/Sao_Paulo'] = 'Amerika/Sao_Paulo';
+$a->strings['America/Scoresbysund'] = 'Amerika/Scoresbysund';
+$a->strings['America/Shiprock'] = 'Amerika/Shiprock';
+$a->strings['America/St_Barthelemy'] = 'Amerika/St_Barthelemy';
+$a->strings['America/St_Johns'] = 'Amerika/St_Johns';
+$a->strings['America/St_Kitts'] = 'Amerika/St_Kitts';
+$a->strings['America/St_Lucia'] = 'Amerika/St_Lucia';
+$a->strings['America/St_Thomas'] = 'Amerika/St_Thomas';
+$a->strings['America/St_Vincent'] = 'Amerika/St_Vincent';
+$a->strings['America/Swift_Current'] = 'Amerika/Swift_Current';
+$a->strings['America/Tegucigalpa'] = 'Amerika/Tegucigalpa';
+$a->strings['America/Thule'] = 'Amerika/Thule';
+$a->strings['America/Thunder_Bay'] = 'Amerika/Thunder_Bay';
+$a->strings['America/Tijuana'] = 'Amerika/Tijuana';
+$a->strings['America/Toronto'] = 'Amerika/Toronto';
+$a->strings['America/Tortola'] = 'Amerika/Tortola';
+$a->strings['America/Vancouver'] = 'Amerika/Vancouver';
+$a->strings['America/Virgin'] = 'Amerika/Virgin';
+$a->strings['America/Whitehorse'] = 'Amerika/Whitehorse';
+$a->strings['America/Winnipeg'] = 'Amerika/Winnipeg';
+$a->strings['America/Yakutat'] = 'Amerika/Yakutat';
+$a->strings['America/Yellowknife'] = 'Amerika/Yellowknife';
+$a->strings['Antarctica/Casey'] = 'Antarctica/Casey';
+$a->strings['Antarctica/Davis'] = 'Antarctica/Davis';
+$a->strings['Antarctica/DumontDUrville'] = 'Antarctica/DumontDUrville';
+$a->strings['Antarctica/Macquarie'] = 'Antarctica/Macquarie';
+$a->strings['Antarctica/Mawson'] = 'Antarctica/Mawson';
+$a->strings['Antarctica/McMurdo'] = 'Antarctica/McMurdo';
+$a->strings['Antarctica/Palmer'] = 'Antarctica/Palmer';
+$a->strings['Antarctica/Rothera'] = 'Antarctica/Rothera';
+$a->strings['Antarctica/South_Pole'] = 'Antarctica/South_Pole';
+$a->strings['Antarctica/Syowa'] = 'Antarctica/Syowa';
+$a->strings['Antarctica/Vostok'] = 'Antarctica/Vostok';
+$a->strings['Arctic/Longyearbyen'] = 'Arctic/Longyearbyen';
+$a->strings['Asia/Aden'] = 'Asien/Aden';
+$a->strings['Asia/Almaty'] = 'Asien/Almaty';
+$a->strings['Asia/Amman'] = 'Asien/Amman';
+$a->strings['Asia/Anadyr'] = 'Asien/Anadyr';
+$a->strings['Asia/Aqtau'] = 'Asien/Aqtau';
+$a->strings['Asia/Aqtobe'] = 'Asien/Aqtobe';
+$a->strings['Asia/Ashgabat'] = 'Asien/Ashgabat';
+$a->strings['Asia/Ashkhabad'] = 'Asien/Ashkhabad';
+$a->strings['Asia/Baghdad'] = 'Asien/Baghdad';
+$a->strings['Asia/Bahrain'] = 'Asien/Bahrain';
+$a->strings['Asia/Baku'] = 'Asien/Baku';
+$a->strings['Asia/Bangkok'] = 'Asien/Bangkok';
+$a->strings['Asia/Beirut'] = 'Asien/Beirut';
+$a->strings['Asia/Bishkek'] = 'Asien/Bishkek';
+$a->strings['Asia/Brunei'] = 'Asien/Brunei';
+$a->strings['Asia/Calcutta'] = 'Asien/Calcutta';
+$a->strings['Asia/Choibalsan'] = 'Asien/Choibalsan';
+$a->strings['Asia/Chongqing'] = 'Asien/Chongqing';
+$a->strings['Asia/Chungking'] = 'Asien/Chungking';
+$a->strings['Asia/Colombo'] = 'Asien/Colombo';
+$a->strings['Asia/Dacca'] = 'Asien/Dacca';
+$a->strings['Asia/Damascus'] = 'Asien/Damascus';
+$a->strings['Asia/Dhaka'] = 'Asien/Dhaka';
+$a->strings['Asia/Dili'] = 'Asien/Dili';
+$a->strings['Asia/Dubai'] = 'Asien/Dubai';
+$a->strings['Asia/Dushanbe'] = 'Asien/Dushanbe';
+$a->strings['Asia/Gaza'] = 'Asien/Gaza';
+$a->strings['Asia/Harbin'] = 'Asien/Harbin';
+$a->strings['Asia/Ho_Chi_Minh'] = 'Asien/Ho_Chi_Minh';
+$a->strings['Asia/Hong_Kong'] = 'Asien/Hong_Kong';
+$a->strings['Asia/Hovd'] = 'Asien/Hovd';
+$a->strings['Asia/Irkutsk'] = 'Asien/Irkutsk';
+$a->strings['Asia/Istanbul'] = 'Asien/Istanbul';
+$a->strings['Asia/Jakarta'] = 'Asien/Jakarta';
+$a->strings['Asia/Jayapura'] = 'Asien/Jayapura';
+$a->strings['Asia/Jerusalem'] = 'Asien/Jerusalem';
+$a->strings['Asia/Kabul'] = 'Asien/Kabul';
+$a->strings['Asia/Kamchatka'] = 'Asien/Kamchatka';
+$a->strings['Asia/Karachi'] = 'Asien/Karachi';
+$a->strings['Asia/Kashgar'] = 'Asien/Kashgar';
+$a->strings['Asia/Kathmandu'] = 'Asien/Kathmandu';
+$a->strings['Asia/Katmandu'] = 'Asien/Katmandu';
+$a->strings['Asia/Kolkata'] = 'Asien/Kolkata';
+$a->strings['Asia/Krasnoyarsk'] = 'Asien/Krasnoyarsk';
+$a->strings['Asia/Kuala_Lumpur'] = 'Asien/Kuala_Lumpur';
+$a->strings['Asia/Kuching'] = 'Asien/Kuching';
+$a->strings['Asia/Kuwait'] = 'Asien/Kuwait';
+$a->strings['Asia/Macao'] = 'Asien/Macao';
+$a->strings['Asia/Macau'] = 'Asien/Macau';
+$a->strings['Asia/Magadan'] = 'Asien/Magadan';
+$a->strings['Asia/Makassar'] = 'Asien/Makassar';
+$a->strings['Asia/Manila'] = 'Asien/Manila';
+$a->strings['Asia/Muscat'] = 'Asien/Muscat';
+$a->strings['Asia/Nicosia'] = 'Asien/Nicosia';
+$a->strings['Asia/Novokuznetsk'] = 'Asien/Novokuznetsk';
+$a->strings['Asia/Novosibirsk'] = 'Asien/Novosibirsk';
+$a->strings['Asia/Omsk'] = 'Asien/Omsk';
+$a->strings['Asia/Oral'] = 'Asien/Oral';
+$a->strings['Asia/Phnom_Penh'] = 'Asien/Phnom_Penh';
+$a->strings['Asia/Pontianak'] = 'Asien/Pontianak';
+$a->strings['Asia/Pyongyang'] = 'Asien/Pyongyang';
+$a->strings['Asia/Qatar'] = 'Asien/Qatar';
+$a->strings['Asia/Qyzylorda'] = 'Asien/Qyzylorda';
+$a->strings['Asia/Rangoon'] = 'Asien/Rangoon';
+$a->strings['Asia/Riyadh'] = 'Asien/Riyadh';
+$a->strings['Asia/Saigon'] = 'Asien/Saigon';
+$a->strings['Asia/Sakhalin'] = 'Asien/Sakhalin';
+$a->strings['Asia/Samarkand'] = 'Asien/Samarkand';
+$a->strings['Asia/Seoul'] = 'Asien/Seoul';
+$a->strings['Asia/Shanghai'] = 'Asien/Shanghai';
+$a->strings['Asia/Singapore'] = 'Asien/Singapore';
+$a->strings['Asia/Taipei'] = 'Asien/Taipei';
+$a->strings['Asia/Tashkent'] = 'Asien/Tashkent';
+$a->strings['Asia/Tbilisi'] = 'Asien/Tbilisi';
+$a->strings['Asia/Tehran'] = 'Asien/Tehran';
+$a->strings['Asia/Tel_Aviv'] = 'Asien/Tel_Aviv';
+$a->strings['Asia/Thimbu'] = 'Asien/Thimbu';
+$a->strings['Asia/Thimphu'] = 'Asien/Thimphu';
+$a->strings['Asia/Tokyo'] = 'Asien/Tokyo';
+$a->strings['Asia/Ujung_Pandang'] = 'Asien/Ujung_Pandang';
+$a->strings['Asia/Ulaanbaatar'] = 'Asien/Ulaanbaatar';
+$a->strings['Asia/Ulan_Bator'] = 'Asien/Ulan_Bator';
+$a->strings['Asia/Urumqi'] = 'Asien/Urumqi';
+$a->strings['Asia/Vientiane'] = 'Asien/Vientiane';
+$a->strings['Asia/Vladivostok'] = 'Asien/Vladivostok';
+$a->strings['Asia/Yakutsk'] = 'Asien/Yakutsk';
+$a->strings['Asia/Yekaterinburg'] = 'Asien/Yekaterinburg';
+$a->strings['Asia/Yerevan'] = 'Asien/Yerevan';
+$a->strings['Atlantic/Azores'] = 'Atlantic/Azores';
+$a->strings['Atlantic/Bermuda'] = 'Atlantic/Bermuda';
+$a->strings['Atlantic/Canary'] = 'Atlantic/Canary';
+$a->strings['Atlantic/Cape_Verde'] = 'Atlantic/Cape_Verde';
+$a->strings['Atlantic/Faeroe'] = 'Atlantic/Faeroe';
+$a->strings['Atlantic/Faroe'] = 'Atlantic/Faroe';
+$a->strings['Atlantic/Jan_Mayen'] = 'Atlantic/Jan_Mayen';
+$a->strings['Atlantic/Madeira'] = 'Atlantic/Madeira';
+$a->strings['Atlantic/Reykjavik'] = 'Atlantic/Reykjavik';
+$a->strings['Atlantic/South_Georgia'] = 'Atlantic/South_Georgia';
+$a->strings['Atlantic/St_Helena'] = 'Atlantic/St_Helena';
+$a->strings['Atlantic/Stanley'] = 'Atlantic/Stanley';
+$a->strings['Australia/ACT'] = 'Australien/ACT';
+$a->strings['Australia/Adelaide'] = 'Australien/Adelaide';
+$a->strings['Australia/Brisbane'] = 'Australien/Brisbane';
+$a->strings['Australia/Broken_Hill'] = 'Australien/Broken_Hill';
+$a->strings['Australia/Canberra'] = 'Australien/Canberra';
+$a->strings['Australia/Currie'] = 'Australien/Currie';
+$a->strings['Australia/Darwin'] = 'Australien/Darwin';
+$a->strings['Australia/Eucla'] = 'Australien/Eucla';
+$a->strings['Australia/Hobart'] = 'Australien/Hobart';
+$a->strings['Australia/LHI'] = 'Australien/LHI';
+$a->strings['Australia/Lindeman'] = 'Australien/Lindeman';
+$a->strings['Australia/Lord_Howe'] = 'Australien/Lord_Howe';
+$a->strings['Australia/Melbourne'] = 'Australien/Melbourne';
+$a->strings['Australia/North'] = 'Australien/North';
+$a->strings['Australia/NSW'] = 'Australien/NSW';
+$a->strings['Australia/Perth'] = 'Australien/Perth';
+$a->strings['Australia/Queensland'] = 'Australien/Queensland';
+$a->strings['Australia/South'] = 'Australien/South';
+$a->strings['Australia/Sydney'] = 'Australien/Sydney';
+$a->strings['Australia/Tasmania'] = 'Australien/Tasmania';
+$a->strings['Australia/Victoria'] = 'Australien/Victoria';
+$a->strings['Australia/West'] = 'Australien/West';
+$a->strings['Australia/Yancowinna'] = 'Australien/Yancowinna';
+$a->strings['Brazil/Acre'] = 'Brasilien/Acre';
+$a->strings['Brazil/DeNoronha'] = 'Brasilien/DeNoronha';
+$a->strings['Brazil/East'] = 'Brasilien/East';
+$a->strings['Brazil/West'] = 'Brasilien/West';
+$a->strings['Canada/Atlantic'] = 'Kanada/Atlantic';
+$a->strings['Canada/Central'] = 'Kanada/Central';
+$a->strings['Canada/East-Saskatchewan'] = 'Kanada/East-Saskatchewan';
+$a->strings['Canada/Eastern'] = 'Kanada/Eastern';
+$a->strings['Canada/Mountain'] = 'Kanada/Mountain';
+$a->strings['Canada/Newfoundland'] = 'Kanada/Newfoundland';
+$a->strings['Canada/Pacific'] = 'Kanada/Pacific';
+$a->strings['Canada/Saskatchewan'] = 'Kanada/Saskatchewan';
+$a->strings['Canada/Yukon'] = 'Kanada/Yukon';
+$a->strings['CET'] = 'CET';
+$a->strings['Chile/Continental'] = 'Chile/Continental';
+$a->strings['Chile/EasterIsland'] = 'Chile/EasterIsland';
+$a->strings['CST6CDT'] = 'CST6CDT';
+$a->strings['Cuba'] = 'Cuba';
+$a->strings['EET'] = 'EET';
+$a->strings['Egypt'] = 'Egypten';
+$a->strings['Eire'] = 'Eire';
+$a->strings['EST'] = 'EST';
+$a->strings['EST5EDT'] = 'EST5EDT';
+$a->strings['Etc/GMT'] = 'Etc/GMT';
+$a->strings['Etc/GMT+0'] = 'Etc/GMT+0';
+$a->strings['Etc/GMT+1'] = 'Etc/GMT+1';
+$a->strings['Etc/GMT+10'] = 'Etc/GMT+10';
+$a->strings['Etc/GMT+11'] = 'Etc/GMT+11';
+$a->strings['Etc/GMT+12'] = 'Etc/GMT+12';
+$a->strings['Etc/GMT+2'] = 'Etc/GMT+2';
+$a->strings['Etc/GMT+3'] = 'Etc/GMT+3';
+$a->strings['Etc/GMT+4'] = 'Etc/GMT+4';
+$a->strings['Etc/GMT+5'] = 'Etc/GMT+5';
+$a->strings['Etc/GMT+6'] = 'Etc/GMT+6';
+$a->strings['Etc/GMT+7'] = 'Etc/GMT+7';
+$a->strings['Etc/GMT+8'] = 'Etc/GMT+8';
+$a->strings['Etc/GMT+9'] = 'Etc/GMT+9';
+$a->strings['Etc/GMT-0'] = 'Etc/GMT-0';
+$a->strings['Etc/GMT-1'] = 'Etc/GMT-1';
+$a->strings['Etc/GMT-10'] = 'Etc/GMT-10';
+$a->strings['Etc/GMT-11'] = 'Etc/GMT-11';
+$a->strings['Etc/GMT-12'] = 'Etc/GMT-12';
+$a->strings['Etc/GMT-13'] = 'Etc/GMT-13';
+$a->strings['Etc/GMT-14'] = 'Etc/GMT-14';
+$a->strings['Etc/GMT-2'] = 'Etc/GMT-2';
+$a->strings['Etc/GMT-3'] = 'Etc/GMT-3';
+$a->strings['Etc/GMT-4'] = 'Etc/GMT-4';
+$a->strings['Etc/GMT-5'] = 'Etc/GMT-5';
+$a->strings['Etc/GMT-6'] = 'Etc/GMT-6';
+$a->strings['Etc/GMT-7'] = 'Etc/GMT-7';
+$a->strings['Etc/GMT-8'] = 'Etc/GMT-8';
+$a->strings['Etc/GMT-9'] = 'Etc/GMT-9';
+$a->strings['Etc/GMT0'] = 'Etc/GMT0';
+$a->strings['Etc/Greenwich'] = 'Etc/Greenwich';
+$a->strings['Etc/UCT'] = 'Etc/UCT';
+$a->strings['Etc/Universal'] = 'Etc/Universal';
+$a->strings['Etc/UTC'] = 'Etc/UTC';
+$a->strings['Etc/Zulu'] = 'Etc/Zulu';
+$a->strings['Europe/Amsterdam'] = 'Europa/Amsterdam';
+$a->strings['Europe/Andorra'] = 'Europa/Andorra';
+$a->strings['Europe/Athens'] = 'Europa/Aten';
+$a->strings['Europe/Belfast'] = 'Europa/Belfast';
+$a->strings['Europe/Belgrade'] = 'Europa/Belgrad';
+$a->strings['Europe/Berlin'] = 'Europa/Berlin';
+$a->strings['Europe/Bratislava'] = 'Europa/Bratislava';
+$a->strings['Europe/Brussels'] = 'Europa/Bryssel';
+$a->strings['Europe/Bucharest'] = 'Europa/Bucharest';
+$a->strings['Europe/Budapest'] = 'Europa/Budapest';
+$a->strings['Europe/Chisinau'] = 'Europa/Chisinau';
+$a->strings['Europe/Copenhagen'] = 'Europa/Köpenhamn';
+$a->strings['Europe/Dublin'] = 'Europa/Dublin';
+$a->strings['Europe/Gibraltar'] = 'Europa/Gibraltar';
+$a->strings['Europe/Guernsey'] = 'Europa/Guernsey';
+$a->strings['Europe/Helsinki'] = 'Europa/Helsingfors';
+$a->strings['Europe/Isle_of_Man'] = 'Europa/Isle_of_Man';
+$a->strings['Europe/Istanbul'] = 'Europa/Istanbul';
+$a->strings['Europe/Jersey'] = 'Europa/Jersey';
+$a->strings['Europe/Kaliningrad'] = 'Europa/Kaliningrad';
+$a->strings['Europe/Kiev'] = 'Europa/Kiev';
+$a->strings['Europe/Lisbon'] = 'Europa/Lisabon';
+$a->strings['Europe/Ljubljana'] = 'Europa/Ljubljana';
+$a->strings['Europe/London'] = 'Europa/London';
+$a->strings['Europe/Luxembourg'] = 'Europa/Luxemburg';
+$a->strings['Europe/Madrid'] = 'Europa/Madrid';
+$a->strings['Europe/Malta'] = 'Europa/Malta';
+$a->strings['Europe/Mariehamn'] = 'Europa/Mariehamn';
+$a->strings['Europe/Minsk'] = 'Europa/Minsk';
+$a->strings['Europe/Monaco'] = 'Europa/Monaco';
+$a->strings['Europe/Moscow'] = 'Europa/Moskva';
+$a->strings['Europe/Nicosia'] = 'Europa/Nicosia';
+$a->strings['Europe/Oslo'] = 'Europa/Oslo';
+$a->strings['Europe/Paris'] = 'Europa/Paris';
+$a->strings['Europe/Podgorica'] = 'Europa/Podgorica';
+$a->strings['Europe/Prague'] = 'Europa/Prag';
+$a->strings['Europe/Riga'] = 'Europa/Riga';
+$a->strings['Europe/Rome'] = 'Europa/Rom';
+$a->strings['Europe/Samara'] = 'Europa/Samara';
+$a->strings['Europe/San_Marino'] = 'Europa/San_Marino';
+$a->strings['Europe/Sarajevo'] = 'Europa/Sarajevo';
+$a->strings['Europe/Simferopol'] = 'Europa/Simferopol';
+$a->strings['Europe/Skopje'] = 'Europa/Skopje';
+$a->strings['Europe/Sofia'] = 'Europa/Sofia';
+$a->strings['Europe/Stockholm'] = 'Europa/Stockholm';
+$a->strings['Europe/Tallinn'] = 'Europa/Tallinn';
+$a->strings['Europe/Tirane'] = 'Europa/Tirane';
+$a->strings['Europe/Tiraspol'] = 'Europa/Tiraspol';
+$a->strings['Europe/Uzhgorod'] = 'Europa/Uzhgorod';
+$a->strings['Europe/Vaduz'] = 'Europa/Vaduz';
+$a->strings['Europe/Vatican'] = 'Europa/Vatikanen';
+$a->strings['Europe/Vienna'] = 'Europa/Wien';
+$a->strings['Europe/Vilnius'] = 'Europa/Vilnius';
+$a->strings['Europe/Volgograd'] = 'Europa/Volgograd';
+$a->strings['Europe/Warsaw'] = 'Europa/Warsawa';
+$a->strings['Europe/Zagreb'] = 'Europa/Zagreb';
+$a->strings['Europe/Zaporozhye'] = 'Europa/Zaporozhye';
+$a->strings['Europe/Zurich'] = 'Europa/Zürich';
+$a->strings['Factory'] = 'Factory';
+$a->strings['GB'] = 'GB';
+$a->strings['GB-Eire'] = 'GB-Eire';
+$a->strings['GMT'] = 'GMT';
+$a->strings['GMT+0'] = 'GMT+0';
+$a->strings['GMT-0'] = 'GMT-0';
+$a->strings['GMT0'] = 'GMT0';
+$a->strings['Greenwich'] = 'Greenwich';
+$a->strings['Hongkong'] = 'Hongkong';
+$a->strings['HST'] = 'HST';
+$a->strings['Iceland'] = 'Iceland';
+$a->strings['Indian/Antananarivo'] = 'Indian/Antananarivo';
+$a->strings['Indian/Chagos'] = 'Indian/Chagos';
+$a->strings['Indian/Christmas'] = 'Indian/Christmas';
+$a->strings['Indian/Cocos'] = 'Indian/Cocos';
+$a->strings['Indian/Comoro'] = 'Indian/Comoro';
+$a->strings['Indian/Kerguelen'] = 'Indian/Kerguelen';
+$a->strings['Indian/Mahe'] = 'Indian/Mahe';
+$a->strings['Indian/Maldives'] = 'Indian/Maldives';
+$a->strings['Indian/Mauritius'] = 'Indian/Mauritius';
+$a->strings['Indian/Mayotte'] = 'Indian/Mayotte';
+$a->strings['Indian/Reunion'] = 'Indian/Reunion';
+$a->strings['Iran'] = 'Iran';
+$a->strings['Israel'] = 'Israel';
+$a->strings['Jamaica'] = 'Jamaica';
+$a->strings['Japan'] = 'Japan';
+$a->strings['Kwajalein'] = 'Kwajalein';
+$a->strings['Libya'] = 'Libya';
+$a->strings['MET'] = 'MET';
+$a->strings['Mexico/BajaNorte'] = 'Mexico/BajaNorte';
+$a->strings['Mexico/BajaSur'] = 'Mexico/BajaSur';
+$a->strings['Mexico/General'] = 'Mexico/General';
+$a->strings['MST'] = 'MST';
+$a->strings['MST7MDT'] = 'MST7MDT';
+$a->strings['Navajo'] = 'Navajo';
+$a->strings['NZ'] = 'NZ';
+$a->strings['NZ-CHAT'] = 'NZ-CHAT';
+$a->strings['Pacific/Apia'] = 'Pacific/Apia';
+$a->strings['Pacific/Auckland'] = 'Pacific/Auckland';
+$a->strings['Pacific/Chatham'] = 'Pacific/Chatham';
+$a->strings['Pacific/Easter'] = 'Pacific/Easter';
+$a->strings['Pacific/Efate'] = 'Pacific/Efate';
+$a->strings['Pacific/Enderbury'] = 'Pacific/Enderbury';
+$a->strings['Pacific/Fakaofo'] = 'Pacific/Fakaofo';
+$a->strings['Pacific/Fiji'] = 'Pacific/Fiji';
+$a->strings['Pacific/Funafuti'] = 'Pacific/Funafuti';
+$a->strings['Pacific/Galapagos'] = 'Pacific/Galapagos';
+$a->strings['Pacific/Gambier'] = 'Pacific/Gambier';
+$a->strings['Pacific/Guadalcanal'] = 'Pacific/Guadalcanal';
+$a->strings['Pacific/Guam'] = 'Pacific/Guam';
+$a->strings['Pacific/Honolulu'] = 'Pacific/Honolulu';
+$a->strings['Pacific/Johnston'] = 'Pacific/Johnston';
+$a->strings['Pacific/Kiritimati'] = 'Pacific/Kiritimati';
+$a->strings['Pacific/Kosrae'] = 'Pacific/Kosrae';
+$a->strings['Pacific/Kwajalein'] = 'Pacific/Kwajalein';
+$a->strings['Pacific/Majuro'] = 'Pacific/Majuro';
+$a->strings['Pacific/Marquesas'] = 'Pacific/Marquesas';
+$a->strings['Pacific/Midway'] = 'Pacific/Midway';
+$a->strings['Pacific/Nauru'] = 'Pacific/Nauru';
+$a->strings['Pacific/Niue'] = 'Pacific/Niue';
+$a->strings['Pacific/Norfolk'] = 'Pacific/Norfolk';
+$a->strings['Pacific/Noumea'] = 'Pacific/Noumea';
+$a->strings['Pacific/Pago_Pago'] = 'Pacific/Pago_Pago';
+$a->strings['Pacific/Palau'] = 'Pacific/Palau';
+$a->strings['Pacific/Pitcairn'] = 'Pacific/Pitcairn';
+$a->strings['Pacific/Ponape'] = 'Pacific/Ponape';
+$a->strings['Pacific/Port_Moresby'] = 'Pacific/Port_Moresby';
+$a->strings['Pacific/Rarotonga'] = 'Pacific/Rarotonga';
+$a->strings['Pacific/Saipan'] = 'Pacific/Saipan';
+$a->strings['Pacific/Samoa'] = 'Pacific/Samoa';
+$a->strings['Pacific/Tahiti'] = 'Pacific/Tahiti';
+$a->strings['Pacific/Tarawa'] = 'Pacific/Tarawa';
+$a->strings['Pacific/Tongatapu'] = 'Pacific/Tongatapu';
+$a->strings['Pacific/Truk'] = 'Pacific/Truk';
+$a->strings['Pacific/Wake'] = 'Pacific/Wake';
+$a->strings['Pacific/Wallis'] = 'Pacific/Wallis';
+$a->strings['Pacific/Yap'] = 'Pacific/Yap';
+$a->strings['Poland'] = 'Poland';
+$a->strings['Portugal'] = 'Portugal';
+$a->strings['PRC'] = 'PRC';
+$a->strings['PST8PDT'] = 'PST8PDT';
+$a->strings['ROC'] = 'ROC';
+$a->strings['ROK'] = 'ROK';
+$a->strings['Singapore'] = 'Singapore';
+$a->strings['Turkey'] = 'Turkiet';
+$a->strings['UCT'] = 'UCT';
+$a->strings['Universal'] = 'Universal';
+$a->strings['US/Alaska'] = 'USA/Alaska';
+$a->strings['US/Aleutian'] = 'USA/Aleutian';
+$a->strings['US/Arizona'] = 'USA/Arizona';
+$a->strings['US/Central'] = 'USA/Central';
+$a->strings['US/East-Indiana'] = 'USA/East-Indiana';
+$a->strings['US/Eastern'] = 'USA/Eastern';
+$a->strings['US/Hawaii'] = 'USA/Hawaii';
+$a->strings['US/Indiana-Starke'] = 'USA/Indiana-Starke';
+$a->strings['US/Michigan'] = 'USA/Michigan';
+$a->strings['US/Mountain'] = 'USA/Mountain';
+$a->strings['US/Pacific'] = 'USA/Pacific';
+$a->strings['US/Pacific-New'] = 'USA/Pacific-New';
+$a->strings['US/Samoa'] = 'USA/Samoa';
+$a->strings['UTC'] = 'UTC';
+$a->strings['W-SU'] = 'W-SU';
+$a->strings['WET'] = 'WET';
+$a->strings['Zulu'] = 'Zulu';
diff --git a/view/sv/wall_received_eml.tpl b/view/sv/wall_received_eml.tpl
new file mode 100644
index 000000000..c296de785
--- /dev/null
+++ b/view/sv/wall_received_eml.tpl
@@ -0,0 +1,18 @@
+
+Dear $username,
+
+ '$from' posted something to your profile wall.
+
+-----
+$body
+-----
+
+Please login at $siteurl to view or delete the item:
+
+$display
+
+Thank you,
+ $sitename administrator
+
+
+
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index d4643b20a..5db45921a 100644
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -206,8 +206,10 @@ div.wall-item-content-wrapper.shiny {
/* from default */
#jot-perms-icon,
#profile-location,
-#profile-nolocation,
+#profile-nolocation,
+#profile-youtube,
#profile-video,
+#profile-audio,
#profile-link,
#wall-image-upload,
#profile-upload-wrapper,
@@ -373,6 +375,10 @@ input#dfrn-url {
margin-bottom: 30px;
}
+#settings-expire-end {
+ margin-bottom: 30px;
+}
+
#settings-username-end,
#settings-email-end,
#settings-nick-end,
@@ -624,7 +630,8 @@ input#dfrn-url {
#profile-edit-sexual-label,
#profile-edit-politic-label,
#profile-edit-religion-label,
-#profile-edit-keywords-label,
+#profile-edit-pubkeywords-label,
+#profile-edit-prvkeywords-label,
#profile-edit-homepage-label {
float: left;
width: 175px;
@@ -644,7 +651,8 @@ input#dfrn-url {
#sexual-select,
#profile-edit-politic,
#profile-edit-religion,
-#profile-edit-keywords,
+#profile-edit-pubkeywords,
+#profile-edit-prvkeywords,
#profile-in-dir-yes,
#profile-in-dir-no,
#profile-in-netdir-yes,
@@ -698,7 +706,8 @@ input#dfrn-url {
#profile-edit-pdesc-desc,
-#profile-edit-keywords-desc {
+#profile-edit-pubkeywords-desc,
+#profile-edit-prvkeywords-desc {
float: left;
margin-left: 20px;
}
@@ -741,7 +750,8 @@ input#dfrn-url {
#profile-edit-sexual-end,
#profile-edit-politic-end,
#profile-edit-religion-end,
-#profile-edit-keywords-end,
+#profile-edit-pubkeywords-end,
+#profile-edit-prvkeywords-end,
#profile-edit-homepage-end,
#profile-in-dir-break,
#profile-in-dir-end,
@@ -913,6 +923,14 @@ input#dfrn-url {
cursor: pointer;
}
+.wall-item-share-buttons {
+ margin-left: 10px;
+}
+
+.editpost {
+ margin-left: 15px;
+}
+
.wall-item-links-wrapper {
float: left;
}
@@ -1044,6 +1062,14 @@ input#dfrn-url {
float: left;
margin-left: 20px;
}
+#profile-video-wrapper {
+ float: left;
+ margin-left: 20px;
+}
+#profile-audio-wrapper {
+ float: left;
+ margin-left: 20px;
+}
#profile-location-wrapper {
float: left;
margin-left: 20px;
@@ -1055,7 +1081,7 @@ input#dfrn-url {
#profile-jot-perms {
float: left;
- margin-left: 200px;
+ margin-left: 150px;
font-weight: bold;
font-size: 1.2em;
}
@@ -2094,3 +2120,16 @@ a.mail-list-link {
margin-top: 20px;
}
+#photo-prev-link, #photo-next-link {
+ padding: 10px;
+ float: left;
+}
+
+#photo-photo {
+ float: left;
+}
+
+#photo-photo-end {
+ clear: both;
+}
+
diff --git a/view/theme/loozah/style.css b/view/theme/loozah/style.css
index ffd352c5a..0284bdcf8 100644
--- a/view/theme/loozah/style.css
+++ b/view/theme/loozah/style.css
@@ -107,8 +107,10 @@ blockquote:before {
#jot-perms-icon,
#profile-location,
-#profile-nolocation,
-#profile-video,
+#profile-nolocation,
+#profile-youtube,
+#profile-video,
+#profile-audio,
#profile-link,
#wall-image-upload,
#profile-upload-wrapper,
@@ -506,6 +508,10 @@ input#dfrn-url {
margin-bottom: 30px;
}
+#settings-expire-end {
+ margin-bottom: 30px;
+}
+
#settings-username-end,
#settings-email-end,
#settings-nick-end,
@@ -755,7 +761,8 @@ input#dfrn-url {
#profile-edit-sexual-label,
#profile-edit-politic-label,
#profile-edit-religion-label,
-#profile-edit-keywords-label,
+#profile-edit-pubkeywords-label,
+#profile-edit-prvkeywords-label,
#profile-edit-homepage-label {
float: left;
width: 175px;
@@ -775,7 +782,8 @@ input#dfrn-url {
#sexual-select,
#profile-edit-politic,
#profile-edit-religion,
-#profile-edit-keywords,
+#profile-edit-pubkeywords,
+#profile-edit-prvkeywords,
#profile-in-dir-yes,
#profile-in-dir-no,
#profile-in-netdir-yes,
@@ -806,7 +814,8 @@ input#dfrn-url {
margin-left: 20px;
}
-#profile-edit-keywords-desc {
+#profile-edit-pubkeywords-desc,
+#profile-edit-prvkeywords-desc {
float: left;
margin-left: 20px;
}
@@ -864,7 +873,8 @@ input#dfrn-url {
#profile-edit-sexual-end,
#profile-edit-politic-end,
#profile-edit-religion-end,
-#profile-edit-keywords-end,
+#profile-edit-pubkeywords-end,
+#profile-edit-prvkeywords-end,
#profile-edit-homepage-end,
#profile-in-dir-break,
#profile-in-dir-end,
@@ -985,6 +995,14 @@ input#dfrn-url {
border-right: 2px solid #fff;
}
+.wall-item-share-buttons {
+ margin-left: 5px;
+}
+
+.editpost {
+ margin-left: 15px;
+}
+
.wall-item-links-wrapper {
float: left;
}
@@ -1113,6 +1131,14 @@ padding: 5px 10px 0px;
float: left;
margin-left: 20px;
}
+#profile-video-wrapper {
+ float: left;
+ margin-left: 20px;
+}
+#profile-audio-wrapper {
+ float: left;
+ margin-left: 20px;
+}
#profile-location-wrapper {
float: left;
margin-left: 20px;
@@ -1124,7 +1150,7 @@ padding: 5px 10px 0px;
#profile-jot-perms {
float: left;
- margin-left: 200px;
+ margin-left: 150px;
font-weight: bold;
font-size: 1.2em;
}
@@ -2126,3 +2152,17 @@ a.mail-list-link {
margin-top: 20px;
}
+
+#photo-prev-link, #photo-next-link {
+ padding: 10px;
+ float: left;
+}
+
+#photo-photo {
+ float: left;
+}
+
+#photo-photo-end {
+ clear: both;
+}
+
diff --git a/view/wall_item.tpl b/view/wall_item.tpl
index 5cae6b142..4c2a3fbf4 100644
--- a/view/wall_item.tpl
+++ b/view/wall_item.tpl
@@ -24,6 +24,7 @@
<div class="wall-item-tools" id="wall-item-tools-$id">
$vote
$plink
+ $edpost
$drop
</div>
</div>
diff --git a/view/wallwall_item.tpl b/view/wallwall_item.tpl
index 256320a46..60383d885 100644
--- a/view/wallwall_item.tpl
+++ b/view/wallwall_item.tpl
@@ -28,6 +28,7 @@
<div class="wall-item-tools" id="wall-item-tools-$id">
$vote
$plink
+ $edpost
$drop
</div>
</div>