diff --git a/README b/README
index e5c5e02d6..36bd01792 100644
--- a/README
+++ b/README
@@ -40,10 +40,8 @@ interaction you've grown to love, *and* was free to use, *and* was open source,
*and* where your privacy is always under your control?
And what if this social network could scale to encompass the entire
-internet, and *not* require a central organisation to provide servers (in
-exchange for selling your private information; and everything else they can
-find out about you - from logging all of your online activities and
-conversations)?
+internet, and *not* require a central organisation to provide servers?
+(In exchange for peddling your private information behind your back.)
Look no further.
diff --git a/addon/facebook/facebook.php b/addon/facebook/facebook.php
index 7bebb3b4f..119ee2f3e 100644
--- a/addon/facebook/facebook.php
+++ b/addon/facebook/facebook.php
@@ -123,15 +123,12 @@ function facebook_content(&$a) {
function facebook_install() {
register_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
register_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
- register_hook('post_local_start','addon/facebook/facebook.php', 'facebook_post_local');
-
}
function facebook_uninstall() {
unregister_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
unregister_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
- unregister_hook('post_local_start','addon/facebook/facebook.php', 'facebook_post_local');
}
@@ -148,17 +145,6 @@ function facebook_jot_nets(&$a,&$b) {
}
}
-function facebook_post_local(&$a,&$b) {
-
- if(! local_user())
- return;
-
- if((x($b,'facebook_enable')) && (intval($b['facebook_enable'])))
- set_pconfig(local_user(),'facebook','enable','1');
- else
- del_pconfig(local_user(),'facebook','enable');
-}
-
function facebook_post_hook(&$a,&$b) {
@@ -179,9 +165,10 @@ function facebook_post_hook(&$a,&$b) {
logger('facebook: have appid+secret');
$fb_post = intval(get_pconfig(local_user(),'facebook','post'));
- $fb_enable = intval(get_pconfig(local_user(),'facebook','enable'));
+ $fb_enable = (($fb_post && x($_POST,'facebook_enable')) ? intval($_POST['facebook_enable']) : 0);
$fb_token = get_pconfig(local_user(),'facebook','access_token');
+ logger('facebook: $fb_post: ' . $fb_post . ' $fb_enable: ' . $fb_enable . ' $fb_token: ' . $fb_token,LOGGER_DEBUG);
if($fb_post && $fb_token && $fb_enable) {
logger('facebook: able to post');
require_once('library/facebook.php');
diff --git a/addon/statusnet/statusnet.php b/addon/statusnet/statusnet.php
index bc47242fc..3dd4b5e98 100644
--- a/addon/statusnet/statusnet.php
+++ b/addon/statusnet/statusnet.php
@@ -133,7 +133,7 @@ function statusnet_settings(&$a,&$s) {
$s .= ' ';
$s .= '';
$s .= ' ';
- $s .= '';
+ $s .= '';
$s .= ' ';
$s .= '
';
$s .= '';
diff --git a/boot.php b/boot.php
index 2cbc48cde..3dff39a33 100644
--- a/boot.php
+++ b/boot.php
@@ -2,8 +2,8 @@
set_time_limit(0);
-define ( 'BUILD_ID', 1038 );
-define ( 'FRIENDIKA_VERSION', '2.10.0906' );
+define ( 'BUILD_ID', 1039 );
+define ( 'FRIENDIKA_VERSION', '2.10.0907' );
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
define ( 'EOL', " \r\n" );
@@ -1804,7 +1804,7 @@ function like_puller($a,$item,&$arr,$mode) {
if((activity_match($item['verb'],$verb)) && ($item['id'] != $item['parent'])) {
$url = $item['author-link'];
- if(($item['network'] === 'dfrn') && (! $item['self']) && ($item['author-link'] == $item['url'])) {
+ if((local_user()) && (local_user() == $item['uid']) && ($item['network'] === 'dfrn') && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) {
$url = $a->get_baseurl() . '/redir/' . $item['contact-id'];
$sparkle = ' class="sparkle" ';
}
@@ -1978,8 +1978,11 @@ function smilies($s) {
$a = get_app();
return str_replace(
- array( ':-)', ';-)', ':-(', ':(', ':-P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O'),
+ array( '<3', '</3', '<\\3', ':-)', ';-)', ':-(', ':(', ':-P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O'),
array(
+ '',
+ '',
+ '',
'',
'',
'',
diff --git a/database.sql b/database.sql
index 55671db85..93e444b6b 100644
--- a/database.sql
+++ b/database.sql
@@ -181,6 +181,7 @@ CREATE TABLE IF NOT EXISTS `item` (
`object` text NOT NULL,
`target-type` char(255) NOT NULL,
`target` text NOT NULL,
+ `plink` char(255) NOT NULL,
`resource-id` char(255) NOT NULL,
`tag` mediumtext NOT NULL,
`inform` mediumtext NOT NULL,
diff --git a/images/smiley-brokenheart.gif b/images/smiley-brokenheart.gif
new file mode 100644
index 000000000..79ca0c31b
Binary files /dev/null and b/images/smiley-brokenheart.gif differ
diff --git a/images/smiley-heart.gif b/images/smiley-heart.gif
new file mode 100644
index 000000000..21c0c6530
Binary files /dev/null and b/images/smiley-heart.gif differ
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index 953243a43..94f51a9ff 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -44,6 +44,8 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) {
function contact_select($selname, $selclass, $preselected = false, $size = 4, $privmail = false, $celeb = false, $privatenet = false) {
+ $a = get_app();
+
$o = '';
// When used for private messages, we limit correspondence to mutual friends and the selector
diff --git a/include/main.js b/include/main.js
index 63b34bd21..abd097e54 100644
--- a/include/main.js
+++ b/include/main.js
@@ -29,6 +29,7 @@
$(document).ready(function() {
$.ajaxSetup({cache: false});
+
msie = $.browser.msie ;
NavUpdate();
// Allow folks to stop the ajax page updates with the pause/break key
@@ -210,3 +211,23 @@
$('#panel').hide();
}
+ function post_comment(id) {
+ $.post(
+ "item",
+ $("#comment-edit-form-" + id).serialize(),
+ function(data) {
+ if(data.success) {
+ $("#comment-edit-wrapper-" + id).hide();
+ $("#comment-edit-text-" + id).val('');
+ var tarea = document.getElementById("comment-edit-text-" + id);
+ if(tarea)
+ commentClose(tarea,id);
+ if(timer) clearTimeout(timer);
+ timer = setTimeout(NavUpdate,10);
+ }
+ },
+ "json"
+ );
+ return false;
+ }
+
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index dffbb5974..5f91f1b1b 100644
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -2,8 +2,6 @@
require_once('simplepie/simplepie.inc');
require_once('include/items.php');
-
-
function dfrn_notify_post(&$a) {
$dfrn_id = ((x($_POST,'dfrn_id')) ? notags(trim($_POST['dfrn_id'])) : '');
@@ -52,11 +50,17 @@ function dfrn_notify_post(&$a) {
}
- $r = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`,
- `contact`.`pubkey` AS `cpubkey`, `contact`.`prvkey` AS `cprvkey`, `user`.* FROM `contact`
- LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
- WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
- AND `user`.`nickname` = '%s' $sql_extra LIMIT 1",
+ $r = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`,
+ `contact`.`pubkey` AS `cpubkey`,
+ `contact`.`prvkey` AS `cprvkey`,
+ `contact`.`thumb` AS `thumb`,
+ `contact`.`url` as `url`,
+ `contact`.`name` as `senderName`,
+ `user`.*
+ FROM `contact`
+ LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
+ WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+ AND `user`.`nickname` = '%s' $sql_extra LIMIT 1",
dbesc($a->argv[1])
);
@@ -169,29 +173,70 @@ function dfrn_notify_post(&$a) {
require_once('bbcode.php');
if($importer['notify-flags'] & NOTIFY_MAIL) {
- $body = html_entity_decode(strip_tags(bbcode(stripslashes($msg['body']))),ENT_QUOTES,'UTF-8');
+ // generate a mime boundary
+ $msg['mimeboundary'] =rand(0,9)."-"
+ .rand(10000000000,9999999999)."-"
+ .rand(10000000000,9999999999)."=:"
+ .rand(10000,99999);
- if(function_exists('quoted_printable_encode'))
- $body = quoted_printable_encode($body);
- else
- $body = qp($body);
+ // name of the automated email sender
+ $msg['notificationfromname'] = t('Administrator');
+ // noreply address to send from
+ $msg['notificationfromemail'] = t('noreply') . '@' . $a->get_hostname();
+ // message headers
+ $msg['headers'] =
+ "From: {$msg['notificationfromname']} <{$msg['notificationfromemail']}>\n" .
+ "Reply-To: {$msg['notificationfromemail']}\n" .
+ "MIME-Version: 1.0\n" .
+ "Content-Type: multipart/alternative; boundary=\"{$msg['mimeboundary']}\"";
- $tpl = load_view_file('view/mail_received_eml.tpl');
+ // text version
+ // process the message body to display properly in text mode
+ // 1) substitute a \n character for the "\" then "n", so it behaves properly (it doesn't come in as a \n character)
+ // 2) remove escape slashes
+ // 3) decode any bbcode from the message editor
+ // 4) decode any encoded html tags
+ // 5) remove html tags
+ $msg['textversion']
+ = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r", "\\n"), "\n",$msg['body']))),ENT_QUOTES,'UTF-8'));
+
+ // html version
+ // process the message body to display properly in text mode
+ // 1) substitute a tag for the "\" then "n", so it behaves properly (it doesn't come in as a \n character)
+ // 2) remove escape slashes
+ // 3) decode any bbcode from the message editor
+ // 4) decode any encoded html tags
+ $msg['htmlversion']
+ = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), " \n",$msg['body']))));
+
+ // load the template for private message notifications
+ $tpl = load_view_file('view/mail_received_eml.tpl');
+
+ // import the data into the template
$email_tpl = replace_macros($tpl, array(
- '$sitename' => $a->config['sitename'],
- '$siteurl' => $a->get_baseurl(),
- '$username' => $importer['username'],
- '$email' => $importer['email'],
- '$from' => $msg['from-name'],
- '$title' => stripslashes($msg['title']),
- '$body' => $body
+ '$siteName' => $a->config['sitename'], // name of this site
+ '$siteurl' => $a->get_baseurl(), // descriptive url of this site
+ '$thumb' => $importer['thumb'], // thumbnail url for sender icon
+ '$email' => $importer['email'], // email address to send to
+ '$url' => $importer['url'], // full url for the site
+ '$from' => $msg['from-name'], // name of the person sending the message
+ '$title' => stripslashes($msg['title']), // subject of the message
+ '$textversion' => $msg['textversion'], // text version of the message
+ '$htmlversion' => $msg['htmlversion'], // html version of the message
+ '$mimeboundary' => $msg['mimeboundary'], // mime message divider
+ '$hostname' => $a->get_hostname() // name of this host
));
-
- $res = mail($importer['email'], t('New mail received at ') . $a->config['sitename'],
- $email_tpl, 'From: ' . t('Administrator') . '@' . $a->get_hostname() . "\r\n"
- . 'MIME-Version: 1.0' . "\r\n"
- . 'Content-type: text/plain; charset=UTF-8' . "\r\n"
- . 'Content-transfer-encoding: quoted-printable' . "\r\n"
+
+ logger("message headers: " . $msg['headers']);
+ logger("message body: " . $mail_tpl);
+
+
+ // send the message
+ $res = mail(
+ $importer['email'], // send to address
+ t('New mail received at ') . $a->config['sitename'], // subject
+ $email_tpl, // message body
+ $msg['headers'] // message headers
);
}
xml_status(0);
@@ -391,8 +436,9 @@ function dfrn_notify_post(&$a) {
intval($importer['importer_uid'])
);
if(count($myconv)) {
+ $importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
foreach($myconv as $conv) {
- if(! link_compare($conv['author-link'],$importer['url']))
+ if(! link_compare($conv['author-link'],$importer_url))
continue;
require_once('bbcode.php');
$from = stripslashes($datarray['author-name']);
diff --git a/mod/display.php b/mod/display.php
index 3215ae90a..b07e1aee5 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -153,7 +153,7 @@ function display_content(&$a) {
}
if($item['last-child']) {
$comment = replace_macros($cmnt_tpl,array(
- '$return_path' => $_SESSION['return_url'],
+ '$return_path' => '', // $_SESSION['return_url'],
'$type' => 'wall-comment',
'$id' => $item['item_id'],
'$parent' => $item['parent'],
diff --git a/mod/item.php b/mod/item.php
index a83373f59..2cc2b9eb2 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -490,7 +490,12 @@ function item_post(&$a) {
}
}
- goaway($a->get_baseurl() . "/" . $_POST['return'] );
+ if((x($_POST,'return')) && strlen($_POST['return']))
+ goaway($a->get_baseurl() . "/" . $_POST['return'] );
+
+ $json = array('success' => 1);
+ echo json_encode($json);
+ killme();
// NOTREACHED
}
diff --git a/mod/network.php b/mod/network.php
index f11db45a8..f09b302e9 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -340,7 +340,7 @@ function network_content(&$a, $update = 0) {
if($item['last-child']) {
$comment = replace_macros($cmnt_tpl,array(
- '$return_path' => $_SESSION['return_url'],
+ '$return_path' => '', // $_SESSION['return_url'],
'$type' => 'net-comment',
'$id' => $item['item_id'],
'$parent' => $item['parent'],
diff --git a/mod/photos.php b/mod/photos.php
index 9acde458d..a44eb5a5f 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -1048,7 +1048,7 @@ function photos_content(&$a) {
if($can_post || can_write_wall($a,$owner_uid)) {
if($link_item['last-child']) {
$o .= replace_macros($cmnt_tpl,array(
- '$return_path' => $return_url,
+ '$return_path' => '', // $return_url,
'$type' => 'wall-comment',
'$id' => $link_item['id'],
'$parent' => $link_item['id'],
diff --git a/mod/profile.php b/mod/profile.php
index 8ec29d382..57abc479d 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -293,7 +293,7 @@ function profile_content(&$a, $update = 0) {
}
if($item['last-child']) {
$comment = replace_macros($cmnt_tpl,array(
- '$return_path' => $_SESSION['return_url'],
+ '$return_path' => '', // $_SESSION['return_url'],
'$type' => 'wall-comment',
'$id' => $item['item_id'],
'$parent' => $item['parent'],
diff --git a/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif b/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif
index e46de5333..c6a75fc13 100644
Binary files a/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif and b/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif differ
diff --git a/update.php b/update.php
index 84eaebe18..131014d4a 100644
--- a/update.php
+++ b/update.php
@@ -370,3 +370,7 @@ function update_1037() {
}
+function update_1038() {
+ q("ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` ");
+}
+
diff --git a/util/string_translator.php b/util/string_translator.php
index 4d24f7a6f..4112d9506 100644
--- a/util/string_translator.php
+++ b/util/string_translator.php
@@ -4,6 +4,7 @@
@@ -78,14 +79,13 @@ function strhex($string) {
echo "
Translator
";
-echo "
Utility to translate string.php file.";
-echo " Need write permission to language file you want to modify
";
+echo "Utility to translate string.php file.";
+echo " Need write permission to language file you want to modify";
echo "
";
}
diff --git a/util/strings.php b/util/strings.php
index b6360e971..994243976 100644
--- a/util/strings.php
+++ b/util/strings.php
@@ -57,18 +57,6 @@ $a->strings['December'] = 'December';
$a->strings['Birthdays this week:'] = 'Birthdays this week:';
$a->strings["\x28Adjusted for local time\x29"] = "\x28Adjusted for local time\x29";
$a->strings['[today]'] = '[today]';
-$a->strings['Unable to locate original post.'] = 'Unable to locate original post.';
-$a->strings['Empty post discarded.'] = 'Empty post discarded.';
-$a->strings['Wall Photos'] = 'Wall Photos';
-$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.'] = 'System error. Post not saved.';
-$a->strings['This message was sent to you by '] = 'This message was sent to you by ';
-$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.';
-$a->strings['You may visit them online at'] = 'You may visit them online at';
-$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.';
-$a->strings['posted an update.'] = 'posted an update.';
-$a->strings['Item not found.'] = 'Item not found.';
$a->strings["Invite Friends"] = "Invite Friends";
$a->strings['Connect/Follow [profile address]'] = 'Connect/Follow [profile address]';
$a->strings['Example: bob@example.com, http://example.com/barbara'] = 'Example: bob@example.com, http://example.com/barbara';
@@ -130,7 +118,7 @@ $a->strings['Unable to set your contact credentials on our system.'] = 'Unable t
$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'] = 'Administrator';
-$a->strings['New mail received at '] = 'New mail received at ';
+$a->strings['noreply'] = 'noreply';
$a->strings[' commented on an item at '] = ' commented on an item at ';
$a->strings[" commented on an item at "] = " commented on an item at ";
$a->strings[' welcomes '] = ' welcomes ';
@@ -173,6 +161,7 @@ $a->strings['Your profile address:'] = 'Your profile address:';
$a->strings['Submit Request'] = 'Submit Request';
$a->strings['Cancel'] = 'Cancel';
$a->strings['Global Directory'] = 'Global Directory';
+$a->strings['Item not found.'] = 'Item not found.';
$a->strings['Private Message'] = 'Private Message';
$a->strings['This is you'] = 'This is you';
$a->strings['View $name\'s profile'] = 'View $name\'s profile';
@@ -228,6 +217,17 @@ $a->strings['Your message:'] = 'Your message:';
$a->strings['Please join my social network on '] = 'Please join my social network on ';
$a->strings['To accept this invitation, please visit:'] = 'To accept this invitation, please visit:';
$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['Wall Photos'] = 'Wall Photos';
+$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.'] = 'System error. Post not saved.';
+$a->strings['This message was sent to you by '] = 'This message was sent to you by ';
+$a->strings[', a member of the Friendika social network.'] = ', a member of the Friendika social network.';
+$a->strings['You may visit them online at'] = 'You may visit them online at';
+$a->strings['Please contact the sender by replying to this post if you do not wish to receive these messages.'] = 'Please contact the sender by replying to this post if you do not wish to receive these messages.';
+$a->strings['posted an update.'] = 'posted an update.';
$a->strings['photo'] = 'photo';
$a->strings['status'] = 'status';
$a->strings['likes'] = 'likes';
@@ -480,7 +480,13 @@ $a->strings['Uncertain'] = 'Uncertain';
$a->strings['Complicated'] = 'Complicated';
$a->strings['Don\'t care'] = 'Don\'t care';
$a->strings['Ask me'] = 'Ask me';
-$a->strings['Facebook status update failed.'] = 'Facebook status update failed.';
+$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 posting'] = 'Install Facebook posting';
+$a->strings['Remove Facebook posting'] = 'Remove Facebook posting';
+$a->strings['Post to Facebook'] = 'Post to Facebook';
+$a->strings['Image: '] = 'Image: ';
$a->strings['Select files to upload: '] = 'Select files to upload: ';
$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'] = 'Upload a file';
@@ -496,7 +502,7 @@ $a->strings['Enable Randplace Plugin'] = 'Enable Randplace Plugin';
$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. 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. 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 (remember the trailing /] = 'Base API Path (remember the trailing /;
+$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 public 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 public 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';
@@ -504,6 +510,7 @@ $a->strings['Currently connected to: '] = 'Currently connected to: ';
$a->strings['If enabled all your public postings will be posted to the associated StatusNet account as well.'] = 'If enabled all your public 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['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 public 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 public posts will be posted to Twitter.';
@@ -658,7 +665,6 @@ $a->strings['America/Managua'] = 'America/Managua';
$a->strings['America/Manaus'] = 'America/Manaus';
$a->strings['America/Marigot'] = 'America/Marigot';
$a->strings['America/Martinique'] = 'America/Martinique';
-$a->strings['America/Matamoros'] = 'America/Matamoros';
$a->strings['America/Mazatlan'] = 'America/Mazatlan';
$a->strings['America/Mendoza'] = 'America/Mendoza';
$a->strings['America/Menominee'] = 'America/Menominee';
@@ -677,7 +683,6 @@ $a->strings['America/Nome'] = 'America/Nome';
$a->strings['America/Noronha'] = 'America/Noronha';
$a->strings['America/North_Dakota/Center'] = 'America/North_Dakota/Center';
$a->strings['America/North_Dakota/New_Salem'] = 'America/North_Dakota/New_Salem';
-$a->strings['America/Ojinaga'] = 'America/Ojinaga';
$a->strings['America/Panama'] = 'America/Panama';
$a->strings['America/Pangnirtung'] = 'America/Pangnirtung';
$a->strings['America/Paramaribo'] = 'America/Paramaribo';
@@ -694,7 +699,6 @@ $a->strings['America/Regina'] = 'America/Regina';
$a->strings['America/Resolute'] = 'America/Resolute';
$a->strings['America/Rio_Branco'] = 'America/Rio_Branco';
$a->strings['America/Rosario'] = 'America/Rosario';
-$a->strings['America/Santa_Isabel'] = 'America/Santa_Isabel';
$a->strings['America/Santarem'] = 'America/Santarem';
$a->strings['America/Santiago'] = 'America/Santiago';
$a->strings['America/Santo_Domingo'] = 'America/Santo_Domingo';
@@ -723,7 +727,6 @@ $a->strings['America/Yellowknife'] = 'America/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';
@@ -786,7 +789,6 @@ $a->strings['Asia/Makassar'] = 'Asia/Makassar';
$a->strings['Asia/Manila'] = 'Asia/Manila';
$a->strings['Asia/Muscat'] = 'Asia/Muscat';
$a->strings['Asia/Nicosia'] = 'Asia/Nicosia';
-$a->strings['Asia/Novokuznetsk'] = 'Asia/Novokuznetsk';
$a->strings['Asia/Novosibirsk'] = 'Asia/Novosibirsk';
$a->strings['Asia/Omsk'] = 'Asia/Omsk';
$a->strings['Asia/Oral'] = 'Asia/Oral';
diff --git a/view/comment_item.tpl b/view/comment_item.tpl
index 6f63e39b7..885d735ed 100644
--- a/view/comment_item.tpl
+++ b/view/comment_item.tpl
@@ -1,9 +1,9 @@