we've been storing json_encoded structures on disk in several places because it's a lot easier to parse than xml - but OMG do they get mangled - stored as single quoted strings when escaped as if double quoted. We need to use my new function json_decode_plus() wherever we need to parse one of these babies to make sure we get it right. Maybe we should've just used serialize().
This commit is contained in:
parent
576b815f9b
commit
71347bb9e0
@ -93,7 +93,7 @@ function localize_item(&$item){
|
|||||||
|
|
||||||
if (activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE)){
|
if (activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE)){
|
||||||
|
|
||||||
$obj= json_decode($item['object'],true);
|
$obj = json_decode_plus($item['object']);
|
||||||
|
|
||||||
if($obj['author'] && $obj['author']['link'])
|
if($obj['author'] && $obj['author']['link'])
|
||||||
$author_link = get_rel_link($obj['author']['link'],'alternate');
|
$author_link = get_rel_link($obj['author']['link'],'alternate');
|
||||||
@ -106,7 +106,7 @@ function localize_item(&$item){
|
|||||||
|
|
||||||
$Bphoto = '';
|
$Bphoto = '';
|
||||||
|
|
||||||
switch($obj->type) {
|
switch($obj['type']) {
|
||||||
case ACTIVITY_OBJ_PHOTO:
|
case ACTIVITY_OBJ_PHOTO:
|
||||||
$post_type = t('photo');
|
$post_type = t('photo');
|
||||||
break;
|
break;
|
||||||
@ -142,12 +142,10 @@ function localize_item(&$item){
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// If we couldn't parse something useful, don't bother translating.
|
// If we couldn't parse something useful, don't bother translating.
|
||||||
// We need something better than zid here, probably magic_link(), but it needs writing
|
// We need something better than zid here, probably magic_link(), but it needs writing
|
||||||
|
|
||||||
if($author_link && $author_name && $item_url) {
|
if($author_link && $author_name && $item_url) {
|
||||||
|
|
||||||
$author = '[zrl=' . chanlink_url($item['author']['xchan_url']) . ']' . $item['author']['xchan_name'] . '[/zrl]';
|
$author = '[zrl=' . chanlink_url($item['author']['xchan_url']) . ']' . $item['author']['xchan_name'] . '[/zrl]';
|
||||||
$objauthor = '[zrl=' . chanlink_url($author_link) . ']' . $author_name . '[/zrl]';
|
$objauthor = '[zrl=' . chanlink_url($author_link) . ']' . $author_name . '[/zrl]';
|
||||||
|
|
||||||
|
@ -50,13 +50,13 @@ function notification($params) {
|
|||||||
|
|
||||||
$additional_mail_header = "";
|
$additional_mail_header = "";
|
||||||
|
|
||||||
|
|
||||||
if(array_key_exists('item',$params)) {
|
if(array_key_exists('item',$params)) {
|
||||||
// if it's a normal item...
|
// if it's a normal item...
|
||||||
if(array_key_exists('verb',$params['item'])) {
|
if(array_key_exists('verb',$params['item'])) {
|
||||||
require_once('include/conversation.php');
|
require_once('include/conversation.php');
|
||||||
// localize_item() alters the original item so make a copy first
|
// localize_item() alters the original item so make a copy first
|
||||||
$i = $params['item'];
|
$i = $params['item'];
|
||||||
|
logger('calling localize');
|
||||||
localize_item($i);
|
localize_item($i);
|
||||||
$title = $i['title'];
|
$title = $i['title'];
|
||||||
$body = $i['body'];
|
$body = $i['body'];
|
||||||
@ -70,6 +70,7 @@ function notification($params) {
|
|||||||
$title = $body = '';
|
$title = $body = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// e.g. "your post", "David's photo", etc.
|
// e.g. "your post", "David's photo", etc.
|
||||||
$possess_desc = t('%s <!item_type!>');
|
$possess_desc = t('%s <!item_type!>');
|
||||||
|
|
||||||
|
@ -1717,3 +1717,11 @@ function jindent($json) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function json_decode_plus($s) {
|
||||||
|
|
||||||
|
$x = json_decode($s,true);
|
||||||
|
if(! $x)
|
||||||
|
$x = json_decode(str_replace(array('\\"','\\\\'),array('"','\\'),$s),true);
|
||||||
|
return $x;
|
||||||
|
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
2013-08-05.396
|
2013-08-06.397
|
||||||
|
Reference in New Issue
Block a user