diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index f628b97309..05856bd217 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -545,7 +545,7 @@ function acl_lookup(&$a, $out_type = 'json') {
$x['data'] = array();
if(count($r)) {
foreach($r as $g) {
- $x['photos'][] = proxy_url($g['micro']);
+ $x['photos'][] = proxy_url($g['micro'], false, PROXY_SIZE_MICRO);
$x['links'][] = $g['url'];
$x['suggestions'][] = $g['name'];
$x['data'][] = intval($g['id']);
@@ -559,7 +559,7 @@ function acl_lookup(&$a, $out_type = 'json') {
foreach($r as $g){
$contacts[] = array(
"type" => "c",
- "photo" => proxy_url($g['micro']),
+ "photo" => proxy_url($g['micro'], false, PROXY_SIZE_MICRO),
"name" => $g['name'],
"id" => intval($g['id']),
"network" => $g['network'],
@@ -604,7 +604,7 @@ function acl_lookup(&$a, $out_type = 'json') {
// /nickname
$unknow_contacts[] = array(
"type" => "c",
- "photo" => proxy_url($row['author-avatar']),
+ "photo" => proxy_url($row['author-avatar'], false, PROXY_SIZE_MICRO),
"name" => $row['author-name'],
"id" => '',
"network" => "unknown",
diff --git a/include/bbcode.php b/include/bbcode.php
index a4ad09ccf5..2fcf6c3247 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -601,7 +601,7 @@ function bb_ShareAttributes($share, $simplehtml) {
default:
$headline = trim($share[1]).'
";
diff --git a/include/conversation.php b/include/conversation.php
index 0a33740555..bbb0b921a3 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -396,25 +396,25 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$page_writeable = true;
if(!$update) {
// The special div is needed for liveUpdate to kick in for this page.
- // We only launch liveUpdate if you aren't filtering in some incompatible
+ // We only launch liveUpdate if you aren't filtering in some incompatible
// way and also you aren't writing a comment (discovered in javascript).
$live_update_div = '' . "\r\n"
- . "\r\n";
}
@@ -431,7 +431,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
// because browser prefetching might change it on us. We have to deliver it with the page.
$live_update_div = '' . "\r\n"
- . "\r\n";
}
}
@@ -441,7 +441,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$page_writeable = true;
if(!$update) {
$live_update_div = '' . "\r\n"
- . "\r\n";
}
}
@@ -656,7 +656,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'name' => $profile_name_e,
'sparkle' => $sparkle,
'lock' => $lock,
- 'thumb' => proxy_url($profile_avatar),
+ 'thumb' => proxy_url($profile_avatar, false, PROXY_SIZE_THUMB),
'title' => $item['title_e'],
'body' => $body_e,
'tags' => $tags_e,
@@ -675,7 +675,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'indent' => '',
'owner_name' => $owner_name_e,
'owner_url' => $owner_url,
- 'owner_photo' => proxy_url($owner_photo),
+ 'owner_photo' => proxy_url($owner_photo, false, PROXY_SIZE_THUMB),
'plink' => get_plink($item),
'edpost' => false,
'isstarred' => $isstarred,
diff --git a/include/diaspora.php b/include/diaspora.php
index 3145c52ea3..61a0dfc3cf 100644
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -110,6 +110,9 @@ function diaspora_dispatch($importer,$msg,$attempt=1) {
elseif($xmlbase->message) {
$ret = diaspora_message($importer,$xmlbase->message,$msg);
}
+ elseif($xmlbase->participation) {
+ $ret = diaspora_participation($importer,$xmlbase->participation);
+ }
else {
logger('diaspora_dispatch: unknown message type: ' . print_r($xmlbase,true));
}
@@ -1834,7 +1837,7 @@ function diaspora_message($importer,$xml,$msg) {
$author_signature = base64_decode($msg_author_signature);
- $person = find_diaspora_person_by_handle($msg_diaspora_handle);
+ $person = find_diaspora_person_by_handle($msg_diaspora_handle);
if(is_array($person) && x($person,'pubkey'))
$key = $person['pubkey'];
else {
@@ -1881,6 +1884,9 @@ function diaspora_message($importer,$xml,$msg) {
return;
}
+function diaspora_participation($importer,$xml) {
+ logger("Unsupported message type 'participation' ".print_r($xml, true));
+}
function diaspora_photo($importer,$xml,$msg,$attempt=1) {
diff --git a/include/items.php b/include/items.php
index 0d442e3170..8691ccca49 100644
--- a/include/items.php
+++ b/include/items.php
@@ -1287,11 +1287,24 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
}
if ($arr['network'] == "") {
- $r = q("SELECT `network` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
- intval($arr['contact-id']),
+ $r = q("SELECT `network` FROM `contact` WHERE `network` IN ('%s', '%s', '%s') AND `nurl` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS),
+ dbesc(normalise_link($arr['author-link'])),
intval($arr['uid'])
);
+ if(!count($r))
+ $r = q("SELECT `network` FROM `gcontact` WHERE `network` IN ('%s', '%s', '%s') AND `nurl` = '%s' LIMIT 1",
+ dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS),
+ dbesc(normalise_link($arr['author-link']))
+ );
+
+ if(!count($r))
+ $r = q("SELECT `network` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
+ intval($arr['contact-id']),
+ intval($arr['uid'])
+ );
+
if(count($r))
$arr['network'] = $r[0]["network"];
diff --git a/include/text.php b/include/text.php
index c5b28b508e..4ce634b603 100644
--- a/include/text.php
+++ b/include/text.php
@@ -970,7 +970,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
. (($click) ? ' fakelink' : '') . '" '
. (($redir) ? ' target="redir" ' : '')
. (($url) ? ' href="' . $url . '"' : '') . $click . ' >
' . "\r\n";
}
}}
diff --git a/mod/allfriends.php b/mod/allfriends.php
index 1a45775fb2..784dfb8771 100644
--- a/mod/allfriends.php
+++ b/mod/allfriends.php
@@ -21,7 +21,7 @@ function allfriends_content(&$a) {
);
$vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => $c[0]['name'],
+ '$name' => htmlentities($c[0]['name']),
'$photo' => $c[0]['photo'],
'url' => z_root() . '/contacts/' . $cid
));
@@ -34,7 +34,7 @@ function allfriends_content(&$a) {
return;
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
- '$title' => sprintf( t('Friends of %s'), $c[0]['name'])
+ '$title' => sprintf( t('Friends of %s'), htmlentities($c[0]['name']))
));
@@ -48,10 +48,10 @@ function allfriends_content(&$a) {
$tpl = get_markup_template('common_friends.tpl');
foreach($r as $rr) {
-
+
$o .= replace_macros($tpl,array(
'$url' => $rr['url'],
- '$name' => $rr['name'],
+ '$name' => htmlentities($rr['name']),
'$photo' => $rr['photo'],
'$tags' => ''
));
diff --git a/mod/common.php b/mod/common.php
index 3118d12479..1e65137ac6 100644
--- a/mod/common.php
+++ b/mod/common.php
@@ -16,7 +16,7 @@ function common_content(&$a) {
if(! $uid)
return;
- if($cmd === 'loc' && $cid) {
+ if($cmd === 'loc' && $cid) {
$c = q("select name, url, photo from contact where id = %d and uid = %d limit 1",
intval($cid),
intval($uid)
@@ -26,10 +26,10 @@ function common_content(&$a) {
$c = q("select name, url, photo from contact where self = 1 and uid = %d limit 1",
intval($uid)
);
- }
+ }
$vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => $c[0]['name'],
+ '$name' => htmlentities($c[0]['name']),
'$photo' => $c[0]['photo'],
'url' => z_root() . '/contacts/' . $cid
));
@@ -97,10 +97,10 @@ function common_content(&$a) {
$tpl = get_markup_template('common_friends.tpl');
foreach($r as $rr) {
-
+
$o .= replace_macros($tpl,array(
'$url' => $rr['url'],
- '$name' => $rr['name'],
+ '$name' => htmlentities($rr['name']),
'$photo' => $rr['photo'],
'$tags' => ''
));
diff --git a/mod/contacts.php b/mod/contacts.php
index 92463cd8de..ee62bf3c9e 100644
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -33,7 +33,7 @@ function contacts_init(&$a) {
if($contact_id) {
$a->data['contact'] = $r[0];
$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
- '$name' => $a->data['contact']['name'],
+ '$name' => htmlentities($a->data['contact']['name']),
'$photo' => $a->data['contact']['photo'],
'$url' => ($a->data['contact']['network'] == NETWORK_DFRN) ? $a->get_baseurl()."/redir/".$a->data['contact']['id'] : $a->data['contact']['url']
));
@@ -432,7 +432,7 @@ function contacts_content(&$a) {
}
$a->page['aside'] = '';
-
+
return replace_macros(get_markup_template('contact_drop_confirm.tpl'), array(
'$contact' => _contact_detail_for_template($orig_record[0]),
'$method' => 'get',
@@ -509,7 +509,7 @@ function contacts_content(&$a) {
if(!in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA)))
$relation_text = "";
- $relation_text = sprintf($relation_text,$contact['name']);
+ $relation_text = sprintf($relation_text,htmlentities($contact['name']));
if(($contact['network'] === NETWORK_DFRN) && ($contact['rel'])) {
$url = "redir/{$contact['id']}";
@@ -632,7 +632,7 @@ function contacts_content(&$a) {
'$ffi_keyword_blacklist' => $contact['ffi_keyword_blacklist'],
'$ffi_keyword_blacklist' => array('ffi_keyword_blacklist', t('Blacklisted keywords'), $contact['ffi_keyword_blacklist'], t('Comma separated list of keywords that should not be converted to hashtags, when "Fetch information and keywords" is selected')),
'$photo' => $contact['photo'],
- '$name' => $contact['name'],
+ '$name' => htmlentities($contact['name']),
'$dir_icon' => $dir_icon,
'$alt_text' => $alt_text,
'$sparkle' => $sparkle,
@@ -832,8 +832,8 @@ function _contact_detail_for_template($rr){
$url = $rr['url'];
$sparkle = '';
}
-
-
+
+
return array(
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
'edit_hover' => t('Edit contact'),
@@ -841,9 +841,9 @@ function _contact_detail_for_template($rr){
'id' => $rr['id'],
'alt_text' => $alt_text,
'dir_icon' => $dir_icon,
- 'thumb' => proxy_url($rr['thumb']),
- 'name' => $rr['name'],
- 'username' => $rr['name'],
+ 'thumb' => proxy_url($rr['thumb'], false, PROXY_SIZE_THUMB),
+ 'name' => htmlentities($rr['name']),
+ 'username' => htmlentities($rr['name']),
'sparkle' => $sparkle,
'itemurl' => $rr['url'],
'url' => $url,
diff --git a/mod/content.php b/mod/content.php
index cec23a9142..c5a5556116 100644
--- a/mod/content.php
+++ b/mod/content.php
@@ -11,8 +11,8 @@
// There is no "pagination query", but we will manage the "current page" on the client
// and provide a link to fetch the next page - until there are no pages left to fetch.
-// With the exception of complex tag and text searches, this prototype is incredibly
-// fast - e.g. one or two milliseconds to fetch parent items for the current content,
+// With the exception of complex tag and text searches, this prototype is incredibly
+// fast - e.g. one or two milliseconds to fetch parent items for the current content,
// and 10-20 milliseconds to fetch all the child items.
@@ -476,7 +476,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'name' => $name_e,
'sparkle' => $sparkle,
'lock' => $lock,
- 'thumb' => proxy_url($profile_avatar),
+ 'thumb' => proxy_url($profile_avatar, false, PROXY_SIZE_THUMB),
'title' => $title_e,
'body' => $body_e,
'text' => $text_e,
@@ -485,7 +485,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'indent' => '',
'owner_name' => $owner_name_e,
'owner_url' => $owner_url,
- 'owner_photo' => proxy_url($owner_photo),
+ 'owner_photo' => proxy_url($owner_photo, false, PROXY_SIZE_THUMB),
'plink' => get_plink($item),
'edpost' => false,
'isstarred' => $isstarred,
@@ -859,7 +859,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => $name_e,
- 'thumb' => proxy_url($profile_avatar),
+ 'thumb' => proxy_url($profile_avatar, false, PROXY_SIZE_THUMB),
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => $title_e,
@@ -869,7 +869,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) {
'indent' => $indent,
'shiny' => $shiny,
'owner_url' => $owner_url,
- 'owner_photo' => proxy_url($owner_photo),
+ 'owner_photo' => proxy_url($owner_photo, false, PROXY_SIZE_THUMB),
'owner_name' => $owner_name_e,
'plink' => get_plink($item),
'edpost' => $edpost,
diff --git a/mod/crepair.php b/mod/crepair.php
index 457a06685d..686be3948f 100644
--- a/mod/crepair.php
+++ b/mod/crepair.php
@@ -24,7 +24,7 @@ function crepair_init(&$a) {
$a->data['contact'] = $r[0];
$tpl = get_markup_template("vcard-widget.tpl");
$vcard_widget .= replace_macros($tpl, array(
- '$name' => $a->data['contact']['name'],
+ '$name' => htmlentities($a->data['contact']['name']),
'$photo' => $a->data['contact']['photo']
));
$a->page['aside'] .= $vcard_widget;
@@ -179,8 +179,8 @@ function crepair_content(&$a) {
'$label_remote_self' => t('Remote Self'),
'$allow_remote_self' => $allow_remote_self,
'$remote_self' => array('remote_self', t('Mirror postings from this contact'), $contact['remote_self'], t('Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.'), $remote_self_options),
- '$contact_name' => $contact['name'],
- '$contact_nick' => $contact['nick'],
+ '$contact_name' => htmlentities($contact['name']),
+ '$contact_nick' => htmlentities($contact['nick']),
'$contact_id' => $contact['id'],
'$contact_url' => $contact['url'],
'$request' => $contact['request'],
diff --git a/mod/directory.php b/mod/directory.php
index fa3a89e45a..6fd99256f0 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -171,7 +171,7 @@ function directory_content(&$a) {
$entry = replace_macros($tpl,array(
'$id' => $rr['id'],
'$profile_link' => $profile_link,
- '$photo' => proxy_url($a->get_cached_avatar_image($rr[$photo])),
+ '$photo' => proxy_url($a->get_cached_avatar_image($rr[$photo]), false, PROXY_SIZE_THUMB),
'$alt_text' => $rr['name'],
'$name' => $rr['name'],
'$details' => $pdesc . $details,
diff --git a/mod/dirfind.php b/mod/dirfind.php
index 488e10fa16..4156d3b1cf 100644
--- a/mod/dirfind.php
+++ b/mod/dirfind.php
@@ -140,7 +140,7 @@ function dirfind_content(&$a, $prefix = "") {
$o .= replace_macros($tpl,array(
'$url' => zrl($jj->url),
'$name' => $jj->name,
- '$photo' => proxy_url($jj->photo),
+ '$photo' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
'$tags' => $jj->tags,
'$conntxt' => $conntxt,
'$connlnk' => $connlnk,
diff --git a/mod/display.php b/mod/display.php
index 46574bd064..6b345e6302 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -97,7 +97,7 @@ function display_fetchauthor($a, $item) {
$profiledata["nickname"] = $item["author-name"];
$profiledata["name"] = $item["author-name"];
$profiledata["picdate"] = "";
- $profiledata["photo"] = proxy_url($item["author-avatar"]);
+ $profiledata["photo"] = proxy_url($item["author-avatar"], false, PROXY_SIZE_SMALL);
$profiledata["url"] = $item["author-link"];
$profiledata["network"] = $item["network"];
@@ -174,7 +174,7 @@ function display_fetchauthor($a, $item) {
$r[0]["about"] = "";
}
- $profiledata["photo"] = proxy_url($r[0]["photo"]);
+ $profiledata["photo"] = proxy_url($r[0]["photo"], false, PROXY_SIZE_SMALL);
$profiledata["address"] = bbcode($r[0]["location"]);
$profiledata["about"] = bbcode($r[0]["about"]);
if ($r[0]["nick"] != "")
@@ -185,7 +185,7 @@ function display_fetchauthor($a, $item) {
$r = q("SELECT `avatar`, `nick`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'", dbesc(normalise_link($profiledata["url"])));
if (count($r)) {
if ($profiledata["photo"] == "")
- $profiledata["photo"] = proxy_url($r[0]["avatar"]);
+ $profiledata["photo"] = proxy_url($r[0]["avatar"], false, PROXY_SIZE_SMALL);
if (($profiledata["address"] == "") AND ($profiledata["network"] != NETWORK_DIASPORA))
$profiledata["address"] = bbcode($r[0]["location"]);
if (($profiledata["about"] == "") AND ($profiledata["network"] != NETWORK_DIASPORA))
diff --git a/mod/follow.php b/mod/follow.php
index 352a8988b5..54c20e5093 100644
--- a/mod/follow.php
+++ b/mod/follow.php
@@ -81,7 +81,7 @@ function follow_content(&$a) {
$o = replace_macros($tpl,array(
'$header' => htmlentities($header),
- '$photo' => proxy_url($ret["photo"]),
+ '$photo' => proxy_url($ret["photo"], false, PROXY_SIZE_SMALL),
'$desc' => "",
'$pls_answer' => t('Please answer the following:'),
'$does_know_you' => array('knowyou', sprintf(t('Does %s know you?'),$ret["name"]), false, '', array(t('No'),t('Yes'))),
diff --git a/mod/match.php b/mod/match.php
index 74f83a6cc9..f31b0f67a4 100644
--- a/mod/match.php
+++ b/mod/match.php
@@ -2,6 +2,7 @@
include_once('include/text.php');
require_once('include/socgraph.php');
require_once('include/contact_widgets.php');
+require_once('mod/proxy.php');
function match_content(&$a) {
@@ -65,7 +66,7 @@ function match_content(&$a) {
$o .= replace_macros($tpl,array(
'$url' => zrl($jj->url),
'$name' => $jj->name,
- '$photo' => proxy_url($jj->photo),
+ '$photo' => proxy_url($jj->photo, false, PROXY_SIZE_THUMB),
'$inttxt' => ' ' . t('is interested in:'),
'$conntxt' => t('Connect'),
'$connlnk' => $connlnk,
diff --git a/mod/network.php b/mod/network.php
index a92e0c691b..3d14455cdf 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -568,14 +568,14 @@ function network_content(&$a, $update = 0) {
intval($cid)
);
if(count($r)) {
- $sql_post_table = " INNER JOIN (SELECT DISTINCT(`parent`) FROM `item`
- WHERE 1 $sql_options AND `contact-id` = ".intval($cid)." and deleted = 0
- ORDER BY `item`.`received` DESC) AS `temp1`
+ $sql_post_table = " INNER JOIN (SELECT DISTINCT(`parent`) FROM `item`
+ WHERE 1 $sql_options AND `contact-id` = ".intval($cid)." and deleted = 0
+ ORDER BY `item`.`received` DESC) AS `temp1`
ON $sql_table.$sql_parent = `temp1`.`parent` ";
$sql_extra = "";
$o = replace_macros(get_markup_template("section_title.tpl"),array(
- '$title' => sprintf( t('Contact: %s'), $r[0]['name'])
+ '$title' => sprintf( t('Contact: %s'), htmlentities($r[0]['name']))
)) . $o;
if($r[0]['network'] === NETWORK_OSTATUS && $r[0]['writable'] && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
diff --git a/mod/notifications.php b/mod/notifications.php
index fadd1e94e5..a267b7c958 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -166,7 +166,7 @@ function notifications_content(&$a) {
'$intro_id' => $rr['intro_id'],
'$madeby' => sprintf( t('suggested by %s'),$rr['name']),
'$contact_id' => $rr['contact-id'],
- '$photo' => ((x($rr,'fphoto')) ? proxy_url($rr['fphoto']) : "images/person-175.jpg"),
+ '$photo' => ((x($rr,'fphoto')) ? proxy_url($rr['fphoto'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
'$fullname' => $rr['fname'],
'$url' => zrl($rr['furl']),
'$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
@@ -238,7 +238,7 @@ function notifications_content(&$a) {
'$uid' => $_SESSION['uid'],
'$intro_id' => $rr['intro_id'],
'$contact_id' => $rr['contact-id'],
- '$photo' => ((x($rr,'photo')) ? proxy_url($rr['photo']) : "images/person-175.jpg"),
+ '$photo' => ((x($rr,'photo')) ? proxy_url($rr['photo'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
'$fullname' => $rr['name'],
'$location' => bbcode($rr['glocation'], false, false),
'$location_label' => t('Location:'),
@@ -303,7 +303,7 @@ function notifications_content(&$a) {
$notif_content .= replace_macros($tpl_item_likes,array(
//'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
- '$item_image' => $it['author-avatar'],
+ '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
));
@@ -313,7 +313,7 @@ function notifications_content(&$a) {
$notif_content .= replace_macros($tpl_item_dislikes,array(
//'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
- '$item_image' => $it['author-avatar'],
+ '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
));
@@ -328,7 +328,7 @@ function notifications_content(&$a) {
$notif_content .= replace_macros($tpl_item_friends,array(
//'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
- '$item_image' => $it['author-avatar'],
+ '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']),
'$item_when' => relative_date($it['created'])
));
@@ -343,7 +343,7 @@ function notifications_content(&$a) {
$notif_content .= replace_macros($tpl,array(
//'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
- '$item_image' => $it['author-avatar'],
+ '$item_image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'$item_text' => $item_text,
'$item_when' => relative_date($it['created'])
));
@@ -376,7 +376,7 @@ function notifications_content(&$a) {
foreach ($r as $it) {
$notif_content .= replace_macros($not_tpl,array(
'$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'],
- '$item_image' => proxy_url($it['photo']),
+ '$item_image' => proxy_url($it['photo'], false, PROXY_SIZE_MICRO),
'$item_text' => strip_tags(bbcode($it['msg'])),
'$item_when' => relative_date($it['date'])
));
diff --git a/mod/ping.php b/mod/ping.php
index e87ed98553..791ceed351 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -173,7 +173,7 @@ function ping_init(&$a) {
* 'message' => notification message. "{0}" will be replaced by subject name
**/
function xmlize($n){
- $n['photo'] = proxy_url($n['photo']);
+ $n['photo'] = proxy_url($n['photo'], false, PROXY_SIZE_MICRO);
$n['message'] = html_entity_decode($n['message'], ENT_COMPAT | ENT_HTML401, "UTF-8");
$n['name'] = html_entity_decode($n['name'], ENT_COMPAT | ENT_HTML401, "UTF-8");
diff --git a/mod/proxy.php b/mod/proxy.php
index d82d334cec..d26967dddf 100644
--- a/mod/proxy.php
+++ b/mod/proxy.php
@@ -3,6 +3,12 @@
define("PROXY_DEFAULT_TIME", 86400); // 1 Day
+define("PROXY_SIZE_MICRO", "micro");
+define("PROXY_SIZE_THUMB", "thumb");
+define("PROXY_SIZE_SMALL", "small");
+define("PROXY_SIZE_MEDIUM", "medium");
+define("PROXY_SIZE_LARGE", "large");
+
require_once('include/security.php');
require_once("include/Photo.php");
@@ -37,6 +43,7 @@ function proxy_init() {
$thumb = false;
$size = 1024;
+ $sizetype = "";
// If the cache path isn't there, try to create it
if (!is_dir($_SERVER["DOCUMENT_ROOT"]."/proxy"))
@@ -59,14 +66,27 @@ function proxy_init() {
$size = 200;
// thumb, small, medium and large.
- if (substr($url, -6) == ":thumb")
- $size = 150;
- if (substr($url, -6) == ":small")
- $size = 340;
- if (substr($url, -7) == ":medium")
+ if (substr($url, -6) == ":micro") {
+ $size = 48;
+ $sizetype = ":micro";
+ $url = substr($url, 0, -6);
+ } elseif (substr($url, -6) == ":thumb") {
+ $size = 80;
+ $sizetype = ":thumb";
+ $url = substr($url, 0, -6);
+ } elseif (substr($url, -6) == ":small") {
+ $size = 175;
+ $url = substr($url, 0, -6);
+ $sizetype = ":small";
+ } elseif (substr($url, -7) == ":medium") {
$size = 600;
- if (substr($url, -6) == ":large")
+ $url = substr($url, 0, -7);
+ $sizetype = ":medium";
+ } elseif (substr($url, -6) == ":large") {
$size = 1024;
+ $url = substr($url, 0, -6);
+ $sizetype = ":large";
+ }
$pos = strrpos($url, "=.");
if ($pos)
@@ -176,6 +196,8 @@ function proxy_init() {
}
}
+ $img_str_orig = $img_str;
+
// reduce quality - if it isn't a GIF
if ($mime != "image/gif") {
$img = new Photo($img_str, $mime);
@@ -188,10 +210,12 @@ function proxy_init() {
// If there is a real existing directory then put the cache file there
// advantage: real file access is really fast
// Otherwise write in cachefile
- if ($valid AND $direct_cache)
- file_put_contents($_SERVER["DOCUMENT_ROOT"]."/proxy/".proxy_url($_REQUEST['url'], true), $img_str);
- elseif ($cachefile != '')
- file_put_contents($cachefile, $img_str);
+ if ($valid AND $direct_cache) {
+ file_put_contents($_SERVER["DOCUMENT_ROOT"]."/proxy/".proxy_url($_REQUEST['url'], true), $img_str_orig);
+ if ($sizetype <> '')
+ file_put_contents($_SERVER["DOCUMENT_ROOT"]."/proxy/".proxy_url($_REQUEST['url'], true).$sizetype, $img_str);
+ } elseif ($cachefile != '')
+ file_put_contents($cachefile, $img_str_orig);
header("Content-type: $mime");
@@ -208,7 +232,7 @@ function proxy_init() {
killme();
}
-function proxy_url($url, $writemode = false) {
+function proxy_url($url, $writemode = false, $size = "") {
global $_SERVER;
$a = get_app();
@@ -251,6 +275,9 @@ function proxy_url($url, $writemode = false) {
$proxypath = $a->get_baseurl()."/proxy/".$path;
+ if ($size != "")
+ $size = ":".$size;
+
// Too long files aren't supported by Apache
// Writemode in combination with long files shouldn't be possible
if ((strlen($proxypath) > 250) AND $writemode)
@@ -260,7 +287,7 @@ function proxy_url($url, $writemode = false) {
elseif ($writemode)
return ($path);
else
- return ($proxypath);
+ return ($proxypath.$size);
}
/**
diff --git a/mod/suggest.php b/mod/suggest.php
index e07e933114..8bf31ca8e5 100644
--- a/mod/suggest.php
+++ b/mod/suggest.php
@@ -81,12 +81,12 @@ function suggest_content(&$a) {
foreach($r as $rr) {
- $connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
+ $connlnk = $a->get_baseurl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']);
$o .= replace_macros($tpl,array(
'$url' => zrl($rr['url']),
'$name' => $rr['name'],
- '$photo' => proxy_url($rr['photo']),
+ '$photo' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'$ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['id'],
'$ignid' => $rr['id'],
'$conntxt' => t('Connect'),
diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php
index b84856701d..a6bf74b288 100644
--- a/mod/viewcontacts.php
+++ b/mod/viewcontacts.php
@@ -62,9 +62,9 @@ function viewcontacts_content(&$a) {
$contacts[] = array(
'id' => $rr['id'],
'img_hover' => sprintf( t('Visit %s\'s profile [%s]'), $rr['name'], $rr['url']),
- 'thumb' => proxy_url($rr['thumb']),
- 'name' => substr($rr['name'],0,20),
- 'username' => $rr['name'],
+ 'thumb' => proxy_url($rr['thumb'], false, PROXY_SIZE_THUMB),
+ 'name' => htmlentities(substr($rr['name'],0,20)),
+ 'username' => htmlentities($rr['name']),
'url' => $url,
'sparkle' => '',
'itemurl' => $rr['url'],
diff --git a/object/Item.php b/object/Item.php
index c7a025861f..cc6d08ec2b 100644
--- a/object/Item.php
+++ b/object/Item.php
@@ -134,7 +134,7 @@ class Item extends BaseObject {
$filer = (($conv->get_profile_owner() == local_user()) ? t("save to folder") : false);
$diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true);
- $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
+ $profile_name = htmlentities(((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
if($item['author-link'] && (! $item['author-name']))
$profile_name = $item['author-link'];
@@ -334,7 +334,7 @@ class Item extends BaseObject {
'profile_url' => $profile_link,
'item_photo_menu' => item_photo_menu($item),
'name' => $name_e,
- 'thumb' => proxy_url($profile_avatar),
+ 'thumb' => proxy_url($profile_avatar, false, PROXY_SIZE_THUMB),
'osparkle' => $osparkle,
'sparkle' => $sparkle,
'title' => $title_e,
@@ -347,7 +347,7 @@ class Item extends BaseObject {
'indent' => $indent,
'shiny' => $shiny,
'owner_url' => $this->get_owner_url(),
- 'owner_photo' => proxy_url($this->get_owner_photo()),
+ 'owner_photo' => proxy_url($this->get_owner_photo(), false, PROXY_SIZE_THUMB),
'owner_name' => $owner_name_e,
'plink' => get_plink($item),
'edpost' => ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''),
diff --git a/view/theme/vier/theme.php b/view/theme/vier/theme.php
index 6d3ac1caf6..e1a75b9512 100644
--- a/view/theme/vier/theme.php
+++ b/view/theme/vier/theme.php
@@ -84,7 +84,8 @@ function cmtBbClose(id) {
EOT;
// Hide the left menu bar
- if (($a->page['aside'] == "") AND in_array($a->argv[0], array("community", "events", "help", "manage", "notifications", "probe", "webfinger", "login")))
+ if (($a->page['aside'] == "") AND in_array($a->argv[0], array("community", "events", "help", "manage", "notifications",
+ "probe", "webfinger", "login", "invite")))
$a->page['htmlhead'] .= "";
}
@@ -132,7 +133,7 @@ function vier_community_info() {
'$id' => $rr['id'],
//'$profile_link' => zrl($rr['url']),
'$profile_link' => $a->get_baseurl().'/follow/?url='.urlencode($rr['url']),
- '$photo' => proxy_url($rr['photo']),
+ '$photo' => proxy_url($rr['photo'], false, PROXY_SIZE_MICRO),
'$alt_text' => $rr['name'],
));
$aside['$comunity_profiles_items'][] = $entry;