add gen_link_id() function to selectively encode/decode the message-id component of /display/ links for message-ids that contain troublesome characters
This commit is contained in:
@@ -733,7 +733,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
'like' => '',
|
||||
'dislike' => '',
|
||||
'comment' => '',
|
||||
'conv' => (($preview) ? '' : array('href'=> z_root() . '/display/' . urlencode($item['mid']), 'title'=> t('View in context'))),
|
||||
'conv' => (($preview) ? '' : array('href'=> z_root() . '/display/' . gen_link_id($item['mid']), 'title'=> t('View in context'))),
|
||||
'previewing' => $previewing,
|
||||
'wait' => t('Please wait'),
|
||||
'thread_level' => 1,
|
||||
|
||||
@@ -1018,7 +1018,7 @@ function event_store_item($arr, $event) {
|
||||
if($wall)
|
||||
$item_arr['plink'] = z_root() . '/channel/' . $z[0]['channel_address'] . '/?f=&mid=' . urlencode($item_arr['mid']);
|
||||
else
|
||||
$item_arr['plink'] = z_root() . '/display/' . urlencode($item_arr['mid']);
|
||||
$item_arr['plink'] = z_root() . '/display/' . gen_link_id($item_arr['mid']);
|
||||
|
||||
$x = q("select * from xchan where xchan_hash = '%s' limit 1",
|
||||
dbesc($arr['event_xchan'])
|
||||
|
||||
@@ -1624,7 +1624,7 @@ logger('revision: ' . $arr['revision']);
|
||||
if($d2 > $d1)
|
||||
$arr['item_delayed'] = 1;
|
||||
|
||||
$arr['llink'] = z_root() . '/display/' . urlencode($arr['mid']);
|
||||
$arr['llink'] = z_root() . '/display/' . gen_link_id($arr['mid']);
|
||||
|
||||
if(! $arr['plink'])
|
||||
$arr['plink'] = $arr['llink'];
|
||||
@@ -2279,7 +2279,7 @@ function send_status_notifications($post_id,$item) {
|
||||
if($unfollowed)
|
||||
return;
|
||||
|
||||
$link = z_root() . '/display/' . urlencode($item['mid']);
|
||||
$link = z_root() . '/display/' . gen_link_id($item['mid']);
|
||||
|
||||
$y = q("select id from notify where link = '%s' and uid = %d limit 1",
|
||||
dbesc($link),
|
||||
|
||||
@@ -3124,6 +3124,12 @@ function cleanup_bbcode($body) {
|
||||
|
||||
}
|
||||
|
||||
function gen_link_id($mid) {
|
||||
if(strpbrk($mid,':/&?<>"\'') !== false)
|
||||
return 'b64.' . base64url_encode($mid);
|
||||
return $mid;
|
||||
}
|
||||
|
||||
// callback for array_walk
|
||||
|
||||
function array_trim(&$v,$k) {
|
||||
@@ -3132,4 +3138,5 @@ function array_trim(&$v,$k) {
|
||||
|
||||
function array_escape_tags(&$v,$k) {
|
||||
$v = escape_tags($v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user