diff options
-rw-r--r-- | Zotlabs/Module/Oep.php | 30 | ||||
-rw-r--r-- | doc/developer/zot_protocol.bb | 9 | ||||
-rw-r--r-- | include/conversation.php | 4 |
3 files changed, 26 insertions, 17 deletions
diff --git a/Zotlabs/Module/Oep.php b/Zotlabs/Module/Oep.php index 9c05f5e3f..07094c1de 100644 --- a/Zotlabs/Module/Oep.php +++ b/Zotlabs/Module/Oep.php @@ -151,19 +151,29 @@ class Oep extends \Zotlabs\Web\Controller { xchan_query($p,true); $p = fetch_post_tags($p,true); - + + // This function can get tripped up if the item is already a reshare + // (the multiple share declarations do not parse cleanly if nested) + // So build a template with a known nonsense string as the content, and then + // replace that known string with the actual rendered content, sending + // each content layer through bbcode() separately. + + $x = '2eGriplW^*Jmf4'; + $o = "[share author='".urlencode($p[0]['author']['xchan_name']). - "' profile='".$p[0]['author']['xchan_url'] . - "' avatar='".$p[0]['author']['xchan_photo_s']. - "' link='".$p[0]['plink']. - "' posted='".$p[0]['created']. - "' message_id='".$p[0]['mid']."']"; - if($p[0]['title']) - $o .= '[b]'.$p[0]['title'].'[/b]'."\r\n"; - $o .= $p[0]['body']; - $o .= "[/share]"; + "' profile='".$p[0]['author']['xchan_url'] . + "' avatar='".$p[0]['author']['xchan_photo_s']. + "' link='".$p[0]['plink']. + "' posted='".$p[0]['created']. + "' message_id='".$p[0]['mid']."']"; + if($p[0]['title']) + $o .= '[b]'.$p[0]['title'].'[/b]'."\r\n"; + $o .= $x; + $o .= "[/share]"; $o = bbcode($o); + $o = str_replace($x,bbcode($p[0]['body']),$o); + $ret['type'] = 'rich'; $w = (($maxwidth) ? $maxwidth : 640); diff --git a/doc/developer/zot_protocol.bb b/doc/developer/zot_protocol.bb index 12306c7b7..e9355bca8 100644 --- a/doc/developer/zot_protocol.bb +++ b/doc/developer/zot_protocol.bb @@ -242,7 +242,7 @@ Example of discovery packet for 'mike@zothub.com' Discovery returns a JSON array with the following components: -'success' => ('1' or '') Operation was successful if '1'. Otherwise an optional 'message' may be present indicating the source of error. +'success' => (true or false) Operation was successful if true. Otherwise an optional 'message' may be present indicating the source of error. 'signed_token' => If a token parameter was provided in the request, it is prepended with the text 'token.' and then RSA signed with the channel private key and base64url encoded and returned as 'signed_token'. @@ -272,12 +272,11 @@ Discovery returns a JSON array with the following components: 'target_sig' => if a permissions target was specified, the signature is mirrored. -'searchable' => ('1' or '') '1' indicates this entry can be searched in a directory +'searchable' => (true or false) true indicates this entry can be searched in a directory [h5]Permissions[/h5] - -'permissions' => extensible array of permissions appropriate to this target, values are '1' or '' +'permissions' => extensible array of permissions appropriate to this target, values are true or false Permissions may include: [list] @@ -328,7 +327,7 @@ Each location is an array of 'address' => the webbie or user@host identifier associated with this location -'primary' => ('1' or '') whether or not this is the primary location for this channel where files and web pages are generally found +'primary' => (true or false) whether or not this is the primary location for this channel where files and web pages are generally found 'url' => url of the root of this DNS location e.g. https://example.com diff --git a/include/conversation.php b/include/conversation.php index 30ba4d812..3b8ec19d3 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -295,7 +295,7 @@ function localize_item(&$item){ } $plink = '[zrl=' . $obj['plink'] . ']' . $post_type . '[/zrl]'; - $parsedobj = parse_xml_string($xmlhead.$item['obj']); +// $parsedobj = parse_xml_string($xmlhead.$item['obj']); $tag = sprintf('#[zrl=%s]%s[/zrl]', $parsedobj->id, $parsedobj->content); $item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag ); @@ -312,7 +312,7 @@ function localize_item(&$item){ $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - $obj = parse_xml_string($xmlhead.$item['obj']); +// $obj = parse_xml_string($xmlhead.$item['obj']); if(strlen($obj->id)) { $r = q("select * from item where mid = '%s' and uid = %d limit 1", dbesc($obj->id), |