|
|
@ -218,11 +218,50 @@ function truncate($body, $url, $max_lines = false, $max_chars = false) { |
|
|
|
return $body; |
|
|
|
} |
|
|
|
|
|
|
|
function bidi_cleanup($str) { |
|
|
|
// Removes all embedded RTL and LTR unicode formatting blocks in a string so that |
|
|
|
function bidi_cleanup($data) { |
|
|
|
// Closes all embedded RTL and LTR unicode formatting blocks in a string so that |
|
|
|
// it can be used inside another without controlling its direction. |
|
|
|
|
|
|
|
return "<bdi>$str</bdi>"; |
|
|
|
$explicits = '\xE2\x80\xAA|\xE2\x80\xAB|\xE2\x80\xAD|\xE2\x80\xAE'; |
|
|
|
$pdf = '\xE2\x80\xAC'; |
|
|
|
|
|
|
|
preg_match_all("!$explicits!", $data, $m1, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); |
|
|
|
preg_match_all("!$pdf!", $data, $m2, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); |
|
|
|
|
|
|
|
if (count($m1) || count($m2)){ |
|
|
|
|
|
|
|
$p = array(); |
|
|
|
foreach ($m1 as $m){ $p[$m[0][1]] = 'push'; } |
|
|
|
foreach ($m2 as $m){ $p[$m[0][1]] = 'pop'; } |
|
|
|
ksort($p); |
|
|
|
|
|
|
|
$offset = 0; |
|
|
|
$stack = 0; |
|
|
|
foreach ($p as $pos => $type){ |
|
|
|
|
|
|
|
if ($type == 'push'){ |
|
|
|
$stack++; |
|
|
|
}else{ |
|
|
|
if ($stack){ |
|
|
|
$stack--; |
|
|
|
}else{ |
|
|
|
# we have a pop without a push - remove it |
|
|
|
$data = substr($data, 0, $pos-$offset) |
|
|
|
.substr($data, $pos+3-$offset); |
|
|
|
$offset += 3; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
# now add some pops if your stack is bigger than 0 |
|
|
|
for ($i=0; $i<$stack; $i++){ |
|
|
|
$data .= "\xE2\x80\xAC"; |
|
|
|
} |
|
|
|
|
|
|
|
return $data; |
|
|
|
} |
|
|
|
|
|
|
|
return $data; |
|
|
|
} |
|
|
|
|
|
|
|
function secure_link_confirm($text, $title, $confirm_message, $href) { |
|
|
|