diff --git a/fancybox/asset/fancybox/fancybox.config.js b/fancybox/asset/fancybox/fancybox.config.js
index 6ac5d9c55..2b9c4f418 100644
--- a/fancybox/asset/fancybox/fancybox.config.js
+++ b/fancybox/asset/fancybox/fancybox.config.js
@@ -1,4 +1,5 @@
$(document).ready(function() {
$.fancybox.defaults.loop = "true";
+ // this disables the colorbox hook found in frio/js/modal.js:34
$("body").off("click", ".wall-item-body a img");
});
\ No newline at end of file
diff --git a/fancybox/fancybox.php b/fancybox/fancybox.php
index 1400a75c6..43219103b 100644
--- a/fancybox/fancybox.php
+++ b/fancybox/fancybox.php
@@ -28,43 +28,33 @@ function fancybox_footer(App $a, string &$str)
DI::page()->registerFooterScript(__DIR__ . '/asset/fancybox/fancybox.config.js');
}
-function fancybox_render($a, array &$b){
+function fancybox_render(App $a, array &$b){
$gallery = 'gallery-' . $b['item']['uri-id'] ?? random_int(1000000, 10000000);
- // prevent urls in
to be replaced
- $b['html'] = preg_replace_callback(
+ // performWithEscapedBlocks escapes block defined with 2nd par pattern that won't be processed.
+ // We don't want to touch images in class="type-link":
+ $b['html'] = \Friendica\Util\Strings::performWithEscapedBlocks(
+ $b['html'],
'#
.*?
#s',
- function ($matches) use ($gallery) {
- return str_replace('
getCurrentTheme(),['vier','frio']))
+ $text = preg_replace(
+ '#]*href="([^"]*)"[^>]*>(]*src="[^"]*"[^>]*>)#',
+ '
$2',
+ $text);
- // This processes images inlined in posts
- // Frio / Vier hooks für lightbox are un-hooked in fancybox-config.js. So this works for them, too!
- //if (!in_array($a->getCurrentTheme(),['vier','frio']))
- {
- // normal post inline linked images
- $b['html'] = preg_replace_callback(
- '#
]*href="([^"]*)"[^>]*>(]*src="[^"]*"[^>]*>)#',
- function ($matches) use ($gallery) {
- // don't touch URLS marked as not "fancyable".. ;-)
- if (preg_match('#data-nofancybox#', $matches[0]))
- {
- return $matches[0];
- }
- return '
' . $matches[2] .'';
- },
- $b['html']
- );
- }
+ // Local content images attached:
+ $text = preg_replace_callback(
+ '#
.*?
#s',
+ function ($matches) use ($gallery) {
+ return str_replace('
.*? #s',
- function ($matches) use ($gallery) {
- return str_replace('