aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
Diffstat (limited to 'mod')
-rw-r--r--mod/contacts.php20
-rw-r--r--mod/dfrn_confirm.php4
-rw-r--r--mod/dfrn_notify.php7
-rw-r--r--mod/dfrn_poll.php4
-rw-r--r--mod/dfrn_request.php18
-rw-r--r--mod/directory.php6
-rw-r--r--mod/display.php4
-rw-r--r--mod/editpost.php91
-rw-r--r--mod/follow.php14
-rw-r--r--mod/home.php2
-rw-r--r--mod/install.php62
-rw-r--r--mod/invite.php10
-rw-r--r--mod/item.php130
-rw-r--r--mod/like.php12
-rw-r--r--mod/lostpass.php2
-rw-r--r--mod/manage.php2
-rw-r--r--mod/match.php57
-rw-r--r--mod/message.php3
-rw-r--r--mod/network.php11
-rw-r--r--mod/openid.php2
-rw-r--r--mod/photos.php3
-rw-r--r--mod/profile.php20
-rw-r--r--mod/profile_photo.php10
-rw-r--r--mod/register.php4
-rw-r--r--mod/regmod.php4
-rw-r--r--mod/settings.php11
-rw-r--r--mod/uexport.php72
-rw-r--r--mod/viewcontacts.php3
-rw-r--r--mod/wall_upload.php2
29 files changed, 464 insertions, 126 deletions
diff --git a/mod/contacts.php b/mod/contacts.php
index c2d28dc1f..aee6548fe 100644
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -9,7 +9,10 @@ function contacts_init(&$a) {
$a->page['aside'] .= group_side();
if($a->config['register_policy'] != REGISTER_CLOSED)
- $a->page['aside'] .= '<div class="side-invite-link-wrapper" id="side-invite-link-wrapper" ><a href="invite" class="side-invite-link" id="side-invite-link">' . t("Invite Friends") . '</a></div>';
+ $a->page['aside'] .= '<div class="side-link" id="side-invite-link" ><a href="invite" >' . t("Invite Friends") . '</a></div>';
+
+ if(strlen(get_config('system','directory_submit_url')))
+ $a->page['aside'] .= '<div class="side-link" id="side-match-link"><a href="match" >' . t('Find People With Shared Interests') . '</a></div>';
$tpl = load_view_file('view/follow.tpl');
$a->page['aside'] .= replace_macros($tpl,array(
@@ -18,6 +21,8 @@ function contacts_init(&$a) {
'$follow' => t('Follow')
));
+
+
}
function contacts_post(&$a) {
@@ -137,7 +142,8 @@ function contacts_content(&$a) {
intval(local_user())
);
if($r) {
- notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
+ //notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
+ notice( (($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')) . EOL );
}
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
return; // NOTREACHED
@@ -151,7 +157,7 @@ function contacts_content(&$a) {
intval(local_user())
);
if($r) {
- notice( t('Contact has been ') . (($readonly) ? t('ignored') : t('unignored')) . EOL );
+ notice( (($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')) . EOL );
}
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
return; // NOTREACHED
@@ -243,6 +249,9 @@ function contacts_content(&$a) {
$sparkle = '';
}
+ $insecure = '<div id="profile-edit-insecure"><p><img src="images/unlock_icon.gif" alt="' . t('Privacy Unavailable') . '" />&nbsp;'
+ . t('Private communications are not available for this contact.') . '</p></div>';
+
$last_update = (($r[0]['last-update'] == '0000-00-00 00:00:00')
? t('Never')
: datetime_convert('UTC',date_default_timezone_get(),$r[0]['last-update'],'D, j M Y, g:i A'));
@@ -265,7 +274,7 @@ function contacts_content(&$a) {
'$contact_id' => $r[0]['id'],
'$block_text' => (($r[0]['blocked']) ? t('Unblock this contact') : t('Block this contact') ),
'$ignore_text' => (($r[0]['readonly']) ? t('Unignore this contact') : t('Ignore this contact') ),
- '$insecure' => (($r[0]['network'] === 'stat') ? load_view_file('view/insecure_net.tpl') : ''),
+ '$insecure' => (($r[0]['network'] !== 'dfrn') ? $insecure : ''),
'$info' => $r[0]['info'],
'$blocked' => (($r[0]['blocked']) ? '<div id="block-message">' . t('Currently blocked') . '</div>' : ''),
'$ignored' => (($r[0]['readonly']) ? '<div id="ignore-message">' . t('Currently ignored') . '</div>' : ''),
@@ -364,13 +373,14 @@ function contacts_content(&$a) {
$o .= replace_macros($tpl, array(
- '$img_hover' => t('Visit ') . $rr['name'] . t('\'s profile'),
+ '$img_hover' => t('Visit $username\'s profile'),
'$edit_hover' => t('Edit contact'),
'$id' => $rr['id'],
'$alt_text' => $alt_text,
'$dir_icon' => $dir_icon,
'$thumb' => $rr['thumb'],
'$name' => substr($rr['name'],0,20),
+ '$username' => $rr['name'],
'$sparkle' => $sparkle,
'$url' => $url
));
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
index 1b42c13b8..1bf1ba954 100644
--- a/mod/dfrn_confirm.php
+++ b/mod/dfrn_confirm.php
@@ -491,7 +491,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
dbesc($node));
if(! count($r)) {
- $message = t('No user record found for ') . '\'' . $node . '\'';
+ $message = sprintf(t('No user record found for \'%s\' '), $node);
xml_status(3,$message); // failure
// NOTREACHED
}
@@ -645,7 +645,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
'$uid' => $newuid )
);
- $res = mail($r[0]['email'], t("Connection accepted at ") . $a->config['sitename'],
+ $res = mail($r[0]['email'], sprintf( t("Connection accepted at %s") , $a->config['sitename']),
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] );
if(!$res) {
// pointless throwing an error here and confusing the person at the other end of the wire.
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index f447b5453..2cc5a62f3 100644
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -385,7 +385,7 @@ function dfrn_notify_post(&$a) {
'$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
));
- $res = mail($importer['email'], $from . t(' commented on an item at ') . $a->config['sitename'],
+ $res = mail($importer['email'], sprintf(t('%s commented on an item at %s'), $from , $a->config['sitename']),
$email_tpl, "From: " . t('Administrator') . '@' . $a->get_hostname() );
}
}
@@ -471,9 +471,8 @@ function dfrn_notify_post(&$a) {
'$body' => html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8')
));
- $res = mail($importer['email'], $from . t(" commented on an item at ")
- . $a->config['sitename'],
- $email_tpl,t("From: Administrator@") . $a->get_hostname() );
+ $res = mail($importer['email'], sprintf( t("%s commented on an item at %s") , $from ,$a->config['sitename']),
+ $email_tpl, "From: ".t("Administrator") . "@". $a->get_hostname() );
break;
}
}
diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php
index 334e10307..bacfe9b94 100644
--- a/mod/dfrn_poll.php
+++ b/mod/dfrn_poll.php
@@ -75,7 +75,7 @@ function dfrn_poll_init(&$a) {
$_SESSION['authenticated'] = 1;
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
- notice( $r[0]['username'] . t(' welcomes ') . $r[0]['name'] . EOL);
+ notice( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
// Visitors get 1 day session.
$session_id = session_id();
$expire = time() + 86400;
@@ -389,7 +389,7 @@ function dfrn_poll_content(&$a) {
$_SESSION['authenticated'] = 1;
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
- notice( $r[0]['username'] . t(' welcomes ') . $r[0]['name'] . EOL);
+ notice( sprintf(t('%s welcomes %s'), $r[0]['username'] , $r[0]['name']) . EOL);
// Visitors get 1 day session.
$session_id = session_id();
$expire = time() + 86400;
diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php
index 24c466bba..3cd8473cf 100644
--- a/mod/dfrn_request.php
+++ b/mod/dfrn_request.php
@@ -123,9 +123,9 @@ function dfrn_request_post(&$a) {
notice( t('Warning: profile location has no profile photo.') . EOL );
$invalid = validate_dfrn($parms);
if($invalid) {
- notice( $invalid . t(' required parameter')
- . (($invalid == 1) ? t(" was ") : t("s were ") )
- . t("not found at the given location.") . EOL ) ;
+ notice( sprintf( tt("%d required parameter was not found at the given location",
+ "%d required parameters were not found at the given location",
+ $invalid), $invalid) . EOL );
return;
}
}
@@ -238,7 +238,7 @@ function dfrn_request_post(&$a) {
intval($uid)
);
if(count($r) > $maxreq) {
- notice( $a->profile['name'] . t(' has received too many connection requests today.') . EOL);
+ notice( sprintf( t('%s has received too many connection requests today.'), $a->profile['name']) . EOL);
notice( t('Spam protection measures have been invoked.') . EOL);
notice( t('Friends are advised to please try again in 24 hours.') . EOL);
return;
@@ -306,7 +306,7 @@ function dfrn_request_post(&$a) {
return;
}
elseif($ret[0]['rel'] == REL_BUD) {
- notice( t('Apparently you are already friends with .') . $a->profile['name'] . EOL);
+ notice( sprintf( t('Apparently you are already friends with %s.'), $a->profile['name']) . EOL);
return;
}
else {
@@ -354,9 +354,9 @@ function dfrn_request_post(&$a) {
notice( t('Warning: profile location has no profile photo.') . EOL );
$invalid = validate_dfrn($parms);
if($invalid) {
- notice( $invalid . t(' required parameter')
- . (($invalid == 1) ? t(" was ") : t("s were ") )
- . t("not found at the given location.") . EOL ) ;
+ notice( sprintf( tt("%d required parameter was not found at the given location",
+ "%d required parameters were not found at the given location",
+ $invalid), $invalid) . EOL );
return;
}
@@ -540,7 +540,7 @@ function dfrn_request_content(&$a) {
'$sitename' => $a->config['sitename']
));
$res = mail($r[0]['email'],
- t("Introduction received at ") . $a->config['sitename'],
+ t("Introduction received at ") . $a->config['sitename'],
$email,
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] );
// This is a redundant notification - no point throwing errors if it fails.
diff --git a/mod/directory.php b/mod/directory.php
index 825e2a375..72c30fb31 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -86,10 +86,10 @@ function directory_content(&$a) {
}
if(strlen($rr['dob'])) {
if(($years = age($rr['dob'],$rr['timezone'],'')) != 0)
- $details .= "<br />Age: $years" ;
+ $details .= '<br />' . t('Age: ') . $years ;
}
if(strlen($rr['gender']))
- $details .= '<br />Gender: ' . $rr['gender'];
+ $details .= '<br />' . t('Gender: ') . $rr['gender'];
$entry = replace_macros($tpl,array(
'$id' => $rr['id'],
@@ -115,7 +115,7 @@ function directory_content(&$a) {
}
else
- notice("No entries (some entries may be hidden).");
+ notice( t("No entries \x28some entries may be hidden\x29.") . EOL);
return $o;
} \ No newline at end of file
diff --git a/mod/display.php b/mod/display.php
index 059952adc..eddaf8aaf 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -217,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'])) {
@@ -276,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/follow.php b/mod/follow.php
index 689ae8232..4ce3ccb82 100644
--- a/mod/follow.php
+++ b/mod/follow.php
@@ -11,7 +11,7 @@ function follow_post(&$a) {
}
$url = $orig_url = notags(trim($_POST['url']));
-
+ $diaspora = false;
$email_conversant = false;
if($url) {
@@ -28,6 +28,9 @@ function follow_post(&$a) {
$hcard = unamp($link['@attributes']['href']);
if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
$profile = unamp($link['@attributes']['href']);
+ if($link['@attributes']['rel'] === 'http://joindiaspora.com/seed_location')
+ $diaspora = true;
+
}
@@ -90,9 +93,12 @@ function follow_post(&$a) {
}
}
- if(! $profile)
- $profile = $url;
-
+ if(! $profile) {
+ if($diaspora)
+ $profile = $hcard;
+ else
+ $profile = $url;
+ }
if(! x($vcard,'fn'))
if(x($vcard,'nick'))
diff --git a/mod/home.php b/mod/home.php
index 20d38cfca..225bd294d 100644
--- a/mod/home.php
+++ b/mod/home.php
@@ -20,7 +20,7 @@ function home_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
- $o .= '<h1>' . ((x($a->config,'sitename')) ? t("Welcome to ").$a->config['sitename'] : "" ) . '</h1>';
+ $o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
if(file_exists('home.html'))
$o .= file_get_contents('home.html');
diff --git a/mod/install.php b/mod/install.php
index dc91f848e..5c508e4f2 100644
--- a/mod/install.php
+++ b/mod/install.php
@@ -14,17 +14,20 @@ function install_post(&$a) {
$phpath = notags(trim($_POST['phpath']));
require_once("dba.php");
-
+ unset($db);
$db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
if(mysqli_connect_errno()) {
+ unset($db);
$db = new dba($dbhost, $dbuser, $dbpass, '', true);
if(! mysqli_connect_errno()) {
$r = q("CREATE DATABASE '%s'",
dbesc($dbdata)
);
- if($r)
+ if($r) {
+ unset($db);
$db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
+ }
}
if(mysqli_connect_errno()) {
notice( t('Could not create/connect to database.') . EOL);
@@ -50,36 +53,47 @@ function install_post(&$a) {
}
$errors = load_database($db);
- if(! $errors) {
- // Our sessions normally are stored in the database. But as we have only managed
- // to get it bootstrapped milliseconds ago, we have to apply a bit of trickery so
- // that you'll see the following important notice (which is stored in the session).
-
- session_write_close();
-
- require_once('session.php');
- session_start();
- session_regenerate_id();
- $_SESSION['sysmsg'] = '';
+ if($errors)
+ $a->data['db_failed'] = true;
+ else
+ $a->data['db_installed'] = true;
- notice( t('Database import succeeded.') . EOL
- . t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.') . EOL
- . t('Please see the file "INSTALL.txt".') . EOL );
- goaway($a->get_baseurl() . '/register' );
- }
- else {
- $db = null; // start fresh
- notice( t('Database import failed.') . EOL
- . t('You may need to import the file "database.sql" manually using phpmyadmin or mysql.') . EOL
- . t('Please see the file "INSTALL.txt".') . EOL );
- }
+ return;
}
function install_content(&$a) {
+ global $db;
$o = '';
+
+ if(x($a->data,'db_installed')) {
+ $o .= '<h2>' . t('Proceed with Installation') . '</h2>';
+ $o .= '<p style="font-size: 130%;">';
+ $o .= t('Your Friendika site database has been installed.') . EOL;
+ $o .= t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.') . EOL ;
+ $o .= t('Please see the file "INSTALL.txt".') . EOL ;
+ $o .= '<br />';
+ $o .= '<a href="' . $a->get_baseurl() . '/register' . '">' . t('Proceed to registration') . '</a>' ;
+ $o .= '</p>';
+ return $o;
+ }
+
+ if(x($a->data,'db_failed')) {
+ $o .= t('Database import failed.') . EOL;
+ $o .= t('You may need to import the file "database.sql" manually using phpmyadmin or mysql.') . EOL;
+ $o .= t('Please see the file "INSTALL.txt".') . EOL ;
+ return $o;
+ }
+
+ if($db && $db->connected) {
+ $r = q("SELECT COUNT(*) as `total` FROM `user`");
+ if($r && count($r) && $r[0]['total']) {
+ notice( t('Permission denied.') . EOL);
+ return '';
+ }
+ }
notice( t('Welcome to Friendika.') . EOL);
diff --git a/mod/invite.php b/mod/invite.php
index f67432746..84fa978ad 100644
--- a/mod/invite.php
+++ b/mod/invite.php
@@ -25,21 +25,21 @@ function invite_post(&$a) {
$recip = trim($recip);
if(! valid_email($recip)) {
- notice( $recip . t(' : ') . t('Not a valid email address.') . EOL);
+ notice( sprintf( t('%s : Not a valid email address.'), $recip) . EOL);
continue;
}
- $res = mail($recip, t('Please join my network on ') . $a->config['sitename'],
+ $res = mail($recip, sprintf(t('Please join my network on %s'), $a->config['sitename']),
$message, "From: " . $a->user['email']);
if($res) {
$total ++;
}
else {
- notice( $recip . t(' : ') . t('Message delivery failed.') . EOL);
+ notice( sprintf( t('%s : Message delivery failed.'), $recip) . EOL);
}
}
- notice( $total . t(' messages sent.') . EOL);
+ notice( sprintf( tt("%d message sent.", "%d messages sent.", $total) , $total) . EOL);
return;
}
@@ -57,7 +57,7 @@ function invite_content(&$a) {
'$invite' => t('Send invitations'),
'$addr_text' => t('Enter email addresses, one per line:'),
'$msg_text' => t('Your message:'),
- '$default_message' => t('Please join my social network on ') . $a->config['sitename'] . "\r\n" . "\r\n"
+ '$default_message' => sprintf(t('Please join my social network on %s'), $a->config['sitename']) . "\r\n" . "\r\n"
. t('To accept this invitation, please visit:') . "\r\n" . "\r\n" . $a->get_baseurl()
. "\r\n" . "\r\n" . t('Once you have registered, please connect with me via my profile page at:')
. "\r\n" . "\r\n" . $a->get_baseurl() . '/profile/' . $a->user['nickname'] ,
diff --git a/mod/item.php b/mod/item.php
index 6e6e822d0..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
@@ -287,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;
@@ -346,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` )
@@ -423,8 +471,8 @@ function item_post(&$a) {
'$body' => strip_tags(bbcode($datarray['body']))
));
- $res = mail($user['email'], $from . t(" commented on your item at ") . $a->config['sitename'],
- $email_tpl,t("From: Administrator@") . $a->get_hostname() );
+ $res = mail($user['email'], sprintf( t("%s commented on your item at %s") ,$from,$a->config['sitename']),
+ $email_tpl,"From: " . t("Administrator") . "@" . $a->get_hostname() );
}
}
else {
@@ -446,8 +494,8 @@ function item_post(&$a) {
'$body' => strip_tags(bbcode($datarray['body']))
));
- $res = mail($user['email'], $from . t(" posted on your profile wall at ") . $a->config['sitename'],
- $email_tpl,t("From: Administrator@") . $a->get_hostname() );
+ $res = mail($user['email'], sprintf( t("%s posted on your profile wall at %s") ,$from, $a->config['sitename']),
+ $email_tpl,"From: " . t("Administrator") . "@" . $a->get_hostname() );
}
}
@@ -490,13 +538,13 @@ function item_post(&$a) {
$addr = trim($recip);
if(! strlen($addr))
continue;
- $disclaimer = '<hr />' . t('This message was sent to you by ') . $a->user['username']
- . t(', a member of the Friendika social network.') . '<br />';
+ $disclaimer = '<hr />' . sprintf(t('This message was sent to you by %s, a member of the Friendika social network.'),$a->user['username'])
+ . '<br />';
$disclaimer .= t('You may visit them online at') . ' '
. $a->get_baseurl() . '/profile/' . $a->user['nickname'] . '<br />';
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . '<br />';
- $subject = '[Friendika]' . ' ' . $a->user['username'] . ' ' . t('posted an update.');
+ $subject = '[Friendika]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
diff --git a/mod/like.php b/mod/like.php
index 3a8ca4b7d..3e3d69529 100644
--- a/mod/like.php
+++ b/mod/like.php
@@ -124,9 +124,9 @@ function like_content(&$a) {
</object>
EOT;
if($verb === 'like')
- $bodyverb = t('likes');
+ $bodyverb = t('%1$s likes %2$s\'s %3$s');
if($verb === 'dislike')
- $bodyverb = t('doesn\'t like');
+ $bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
if(! isset($bodyverb))
return;
@@ -147,9 +147,11 @@ EOT;
$arr['author-name'] = $contact['name'];
$arr['author-link'] = $contact['url'];
$arr['author-avatar'] = $contact['thumb'];
- $arr['body'] = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]' . ' ' . $bodyverb . ' '
- . '[url=' . $item['author-link'] . ']' . $item['author-name'] . t('\'s') . '[/url]' . ' '
- . '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]' ;
+
+ $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
+ $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]';
+ $plink = '[url=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]';
+ $arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink );
$arr['verb'] = $activity;
$arr['object-type'] = $objtype;
diff --git a/mod/lostpass.php b/mod/lostpass.php
index 30bdc059c..3dcf41be7 100644
--- a/mod/lostpass.php
+++ b/mod/lostpass.php
@@ -35,7 +35,7 @@ function lostpass_post(&$a) {
'$reset_link' => $a->get_baseurl() . '/lostpass?verify=' . $new_password
));
- $res = mail($email, t('Password reset requested at ') . $a->config['sitename'],
+ $res = mail($email, sprintf(t('Password reset requested at %s'),$a->config['sitename']),
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER[SERVER_NAME]);
goaway($a->get_baseurl());
diff --git a/mod/manage.php b/mod/manage.php
index 9981a0446..26f7315c3 100644
--- a/mod/manage.php
+++ b/mod/manage.php
@@ -34,7 +34,7 @@ function manage_post(&$a) {
$_SESSION['page_flags'] = $r[0]['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $r[0]['nickname'];
- notice( t("Welcome back ") . $r[0]['username'] . EOL);
+ notice( sprintf( t("Welcome back %s") , $r[0]['username']) . EOL);
$a->user = $r[0];
if(strlen($a->user['timezone'])) {
diff --git a/mod/match.php b/mod/match.php
new file mode 100644
index 000000000..092595a09
--- /dev/null
+++ b/mod/match.php
@@ -0,0 +1,57 @@
+<?php
+
+
+function match_content(&$a) {
+
+ $o = '';
+ if(! local_user())
+ return;
+
+ $o .= '<h2>' . t('Profile Match') . '</h2>';
+
+ $r = q("SELECT `pub_keywords`, `prv_keywords` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
+ intval(local_user())
+ );
+ if(! count($r))
+ return;
+ if(! $r[0]['pub_keywords'] && (! $r[0]['prv_keywords'])) {
+ notice('No keywords to match. Please add keywords to your default profile.');
+ return;
+
+ }
+
+ $params = array();
+ $tags = trim($r[0]['pub_keywords'] . ' ' . $r[0]['prv_keywords']);
+ if($tags) {
+ $params['s'] = $tags;
+ if($a->pager['page'] != 1)
+ $params['p'] = $a->pager['page'];
+
+ $x = post_url('http://dir.friendika.com/msearch', $params);
+
+ $j = json_decode($x);
+
+ if($j->total) {
+ $a->set_pager_total($j->total);
+ $a->set_pager_itemspage($j->items_page);
+ }
+
+ if(count($j->results)) {
+ foreach($j->results as $jj) {
+ $o .= '<div class="profile-match-wrapper"><div class="profile-match-photo">';
+ $o .= '<a href="' . $jj->url . '">' . '<img src="' . $jj->photo . '" alt="' . $jj->name . '" title="' . $jj->name . '[' . $jj->url . ']' . '" /></a></div>';
+ $o .= '<div class="profile-match-break"></div>';
+ $o .= '<div class="profile-match-name"><a href="' . $jj->url . '" title="' . $jj->name . '[' . $jj->url .']' . '">' . $jj->name . '</a></div>';
+ $o .= '<div class="profile-match-end"></div></div>';
+ }
+ $o .= '<div id="profile-match-wrapper-end"></div>';
+ }
+ else {
+ notice( t('No matches') . EOL);
+ }
+
+ }
+
+ $o .= paginate($a);
+ return $o;
+} \ No newline at end of file
diff --git a/mod/message.php b/mod/message.php
index 4821a45d2..9d30abd66 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -168,7 +168,8 @@ function message_content(&$a) {
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
- '$nickname' => $a->user['nickname']
+ '$nickname' => $a->user['nickname'],
+ '$linkurl' => t('Please enter a link URL:')
));
$select = contact_select('messageto','message-to-select', false, 4, true);
diff --git a/mod/network.php b/mod/network.php
index abdf59c48..97bc0713d 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -65,7 +65,12 @@ function network_content(&$a, $update = 0) {
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$geotag' => $geotag,
- '$nickname' => $a->user['nickname']
+ '$nickname' => $a->user['nickname'],
+ '$linkurl' => t('Please enter a link URL:'),
+ '$utubeurl' => t('Please enter a YouTube link:'),
+ '$vidurl' => t("Please enter a video\x28.ogg\x29 link/URL:"),
+ '$audurl' => t("Please enter an audio\x28.ogg\x29 link/URL:"),
+ '$whereareu' => t('Where are you right now?')
));
@@ -387,6 +392,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'];
@@ -455,6 +463,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/openid.php b/mod/openid.php
index 6ccd28e5b..68d7c3fd2 100644
--- a/mod/openid.php
+++ b/mod/openid.php
@@ -70,7 +70,7 @@ function openid_content(&$a) {
$_SESSION['page_flags'] = $r[0]['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $r[0]['nickname'];
- notice( t("Welcome back ") . $r[0]['username'] . EOL);
+ notice( sprintf( t("Welcome back "), $r[0]['username']) . EOL);
$a->user = $r[0];
if(strlen($a->user['timezone'])) {
diff --git a/mod/photos.php b/mod/photos.php
index 4bb6e3eab..061542c75 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]';
@@ -1073,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/lik_noshare.tpl');
+ $like_tpl = load_view_file('view/like_noshare.tpl');
$likebuttons = '';
diff --git a/mod/profile.php b/mod/profile.php
index c0989bd28..d33c9aeb2 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -98,7 +98,10 @@ function profile_content(&$a, $update = 0) {
$o .= replace_macros($tpl,array(
'$url' => $a->get_baseurl() . '/' . $a->cmd,
- '$phototab' => $a->get_baseurl() . '/photos/' . $a->profile['nickname']
+ '$phototab' => $a->get_baseurl() . '/photos/' . $a->profile['nickname'],
+ '$status' => t('Status'),
+ '$profile' => t('Profile'),
+ '$photos' => t('Photos')
));
@@ -130,7 +133,12 @@ function profile_content(&$a, $update = 0) {
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$geotag' => $geotag,
- '$nickname' => $a->profile['nickname']
+ '$nickname' => $a->profile['nickname'],
+ '$linkurl' => t('Please enter a link URL:'),
+ '$utubeurl' => t('Please enter a YouTube link:'),
+ '$vidurl' => t("Please enter a video\x28.ogg\x29 link/URL:"),
+ '$audurl' => t("Please enter an audio\x28.ogg\x29 link/URL:"),
+ '$whereareu' => t('Where are you right now?')
));
require_once('include/acl_selectors.php');
@@ -348,6 +356,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
@@ -400,6 +414,7 @@ function profile_content(&$a, $update = 0) {
'$location' => $location,
'$indent' => $indent,
'$plink' => get_plink($item),
+ '$edpost' => $edpost,
'$drop' => $drop,
'$like' => $like,
'$vote' => $likebuttons,
@@ -422,6 +437,5 @@ function profile_content(&$a, $update = 0) {
$o .= paginate($a);
$o .= '<div class="cc-license">' . t('Shared content is covered by the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> license.') . '</div>';
-
return $o;
}
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index 5365aa3b8..68c05625b 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -58,21 +58,21 @@ function profile_photo_post(&$a) {
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, 1);
if($r === false)
- notice ( t('Image size reduction [175] failed.') . EOL );
+ notice ( sprintf(t('Image size reduction [%s] failed.'),"175") . EOL );
$im->scaleImage(80);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 5, 1);
if($r === false)
- notice( t('Image size reduction [80] failed.') . EOL );
+ notice( sprintf(t('Image size reduction [%s] failed.'),"80") . EOL );
$im->scaleImage(48);
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 6, 1);
if($r === false)
- notice( t('Image size reduction [48] failed.') . EOL );
+ notice( sprintf(t('Image size reduction [%s] failed.'),"48") . EOL );
// Unset the profile photo flag from any other photos I own
@@ -106,7 +106,7 @@ function profile_photo_post(&$a) {
$maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) {
- notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
+ notice( sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL);
@unlink($src);
return;
}
@@ -234,7 +234,7 @@ function profile_photo_crop_ui_head(&$a, $ph){
$r = $ph->store(local_user(), 0 , $hash, $filename, t('Profile Photos'), 1 );
if($r === false)
- notice( t('Image size reduction [640] failed.') . EOL );
+ notice( sprintf(t('Image size reduction [%s] failed.'),"640") . EOL );
else
$smallest = 1;
}
diff --git a/mod/register.php b/mod/register.php
index fdf488b1a..95e9d581f 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -307,7 +307,7 @@ function register_post(&$a) {
'$password' => $new_password,
'$uid' => $newuid ));
- $res = mail($email, t('Registration details for ') . $a->config['sitename'],
+ $res = mail($email, sprintf(t('Registration details for %s'), $a->config['sitename']),
$email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
@@ -344,7 +344,7 @@ function register_post(&$a) {
'$hash' => $hash
));
- $res = mail($a->config['admin_email'], t('Registration request at ') . $a->config['sitename'],
+ $res = mail($a->config['admin_email'], sprintf(t('Registration request at %s'), $a->config['sitename']),
$email_tpl,'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME']);
if($res) {
diff --git a/mod/regmod.php b/mod/regmod.php
index 00cfa06e2..2cbe810bc 100644
--- a/mod/regmod.php
+++ b/mod/regmod.php
@@ -51,7 +51,7 @@ function regmod_content(&$a) {
$r = q("DELETE FROM `register` WHERE `hash` = '%s' LIMIT 1",
dbesc($register[0]['hash'])
);
- notice( t('Registration revoked for ') . $user[0]['username'] . EOL);
+ notice( sprintf(t('Registration revoked for %s'), $user[0]['username']) . EOL);
return;
}
@@ -89,7 +89,7 @@ function regmod_content(&$a) {
'$uid' => $user[0]['uid']
));
- $res = mail($user[0]['email'], t('Registration details for '). $a->config['sitename'],
+ $res = mail($user[0]['email'], sprintf(t('Registration details for %s'), $a->config['sitename']),
$email_tpl,'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] );
if($res) {
diff --git a/mod/settings.php b/mod/settings.php
index 85029b3d7..b20f4d11b 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -5,6 +5,7 @@ function settings_init(&$a) {
if(local_user()) {
profile_load($a,$a->user['nickname']);
}
+
}
@@ -70,6 +71,7 @@ function settings_post(&$a) {
$net_publish = (((x($_POST,'profile_in_netdirectory')) && (intval($_POST['profile_in_netdirectory']) == 1)) ? 1: 0);
$old_visibility = (((x($_POST,'visibility')) && (intval($_POST['visibility']) == 1)) ? 1 : 0);
$page_flags = (((x($_POST,'page-flags')) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0);
+ $blockwall = (((x($_POST,'blockwall')) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted!
$notify = 0;
@@ -140,7 +142,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, `expire` = %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', `blockwall` = %d WHERE `uid` = %d LIMIT 1",
dbesc($username),
dbesc($email),
dbesc($openid),
@@ -157,6 +159,7 @@ function settings_post(&$a) {
intval($maxreq),
intval($expire),
dbesc($openidserver),
+ intval($blockwall),
intval(local_user())
);
if($r)
@@ -241,6 +244,7 @@ function settings_content(&$a) {
$openid = $a->user['openid'];
$maxreq = $a->user['maxreq'];
$expire = ((intval($a->user['expire'])) ? $a->user['expire'] : '');
+ $blockwall = $a->user['blockwall'];
if(! strlen($a->user['timezone']))
$timezone = date_default_timezone_get();
@@ -338,9 +342,13 @@ function settings_content(&$a) {
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
+ $uexport = '<div id="uexport-link"><a href="uexport" >' . t('Export Personal Data') . '</a></div>';
+
+
$o .= replace_macros($stpl,array(
'$baseurl' => $a->get_baseurl(),
'$oidhtml' => $oidhtml,
+ '$uexport' => $uexport,
'$uid' => local_user(),
'$username' => $username,
'$openid' => $openid,
@@ -362,6 +370,7 @@ function settings_content(&$a) {
'$sel_notify5' => (($notify & NOTIFY_MAIL) ? ' checked="checked" ' : ''),
'$maxreq' => $maxreq,
'$expire' => $expire,
+ '$blockw_checked' => (($blockwall) ? '' : ' checked="checked" ' ),
'$theme' => $theme_selector,
'$pagetype' => $pagetype
));
diff --git a/mod/uexport.php b/mod/uexport.php
new file mode 100644
index 000000000..96f062c41
--- /dev/null
+++ b/mod/uexport.php
@@ -0,0 +1,72 @@
+<?php
+
+function uexport_init(&$a) {
+
+ if(! local_user())
+ killme();
+
+ $user = array();
+ $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
+ local_user()
+ );
+ if(count($r)) {
+ foreach($r as $rr)
+ foreach($rr as $k => $v)
+ $user[$k] = $v;
+
+ }
+ $contact = array();
+ $r = q("SELECT * FROM `contact` WHERE `uid` = %d ",
+ intval(local_user())
+ );
+ if(count($r)) {
+ foreach($r as $rr)
+ foreach($rr as $k => $v)
+ $contact[][$k] = $v;
+
+ }
+
+ $profile = array();
+ $r = q("SELECT * FROM `profile` WHERE `uid` = %d ",
+ intval(local_user())
+ );
+ if(count($r)) {
+ foreach($r as $rr)
+ foreach($rr as $k => $v)
+ $profile[][$k] = $v;
+ }
+
+ $output = array('user' => $user, 'contact' => $contact, 'profile' => $profile );
+
+ header("Content-type: application/json");
+ echo str_replace('\\/','/',json_encode($output));
+
+ $r = q("SELECT count(*) as `total` FROM `item` WHERE `uid` = %d ",
+ intval(local_user())
+ );
+ if(count($r))
+ $total = $r[0]['total'];
+
+ // chunk the output to avoid exhausting memory
+
+ for($x = 0; $x < $total; $x += 500) {
+ $item = array();
+ $r = q("SELECT * FROM `item` WHERE `uid` = %d LIMIT %d, %d",
+ intval(local_user()),
+ intval($x),
+ intval(500)
+ );
+ if(count($r)) {
+ foreach($r as $rr)
+ foreach($rr as $k => $v)
+ $item[][$k] = $v;
+ }
+
+ $output = array('item' => $item);
+ echo str_replace('\\/','/',json_encode($output));
+ }
+
+
+ killme();
+
+} \ No newline at end of file
diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php
index 90ff85b9d..063637bf9 100644
--- a/mod/viewcontacts.php
+++ b/mod/viewcontacts.php
@@ -41,9 +41,10 @@ function viewcontacts_content(&$a) {
$o .= replace_macros($tpl, array(
'$id' => $rr['id'],
- '$alt_text' => t('Visit ') . $rr['name'] . t('\'s profile'),
+ '$alt_text' => t('Visit $username\'s profile'),
'$thumb' => $rr['thumb'],
'$name' => substr($rr['name'],0,20),
+ '$username' => $rr['name'],
'$url' => $rr['url']
));
}
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index b5725311d..f7638b730 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -53,7 +53,7 @@ function wall_upload_post(&$a) {
$maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) {
- notice( t('Image exceeds size limit of ') . $maximagesize . EOL);
+ notice( sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL);
@unlink($src);
return;
}