Changes added because of good remarks by hypolite@friendica.mrpetovan.com
This commit is contained in:
parent
4e7da2799c
commit
c6d09e5270
|
@ -1,4 +1,5 @@
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$.fancybox.defaults.loop = "true";
|
$.fancybox.defaults.loop = "true";
|
||||||
|
// this disables the colorbox hook found in frio/js/modal.js:34
|
||||||
$("body").off("click", ".wall-item-body a img");
|
$("body").off("click", ".wall-item-body a img");
|
||||||
});
|
});
|
|
@ -28,43 +28,33 @@ function fancybox_footer(App $a, string &$str)
|
||||||
DI::page()->registerFooterScript(__DIR__ . '/asset/fancybox/fancybox.config.js');
|
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);
|
$gallery = 'gallery-' . $b['item']['uri-id'] ?? random_int(1000000, 10000000);
|
||||||
|
|
||||||
// prevent urls in <div class="type-link"> to be replaced
|
// performWithEscapedBlocks escapes block defined with 2nd par pattern that won't be processed.
|
||||||
$b['html'] = preg_replace_callback(
|
// We don't want to touch images in class="type-link":
|
||||||
|
$b['html'] = \Friendica\Util\Strings::performWithEscapedBlocks(
|
||||||
|
$b['html'],
|
||||||
'#<div class="type-link">.*?</div>#s',
|
'#<div class="type-link">.*?</div>#s',
|
||||||
function ($matches) use ($gallery) {
|
function ($text) use ($gallery) {
|
||||||
return str_replace('<a href', '<a data-nofancybox="" href', $matches[0]);
|
// 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!
|
||||||
$b['html']
|
//if (!in_array($a->getCurrentTheme(),['vier','frio']))
|
||||||
);
|
$text = preg_replace(
|
||||||
|
'#<a[^>]*href="([^"]*)"[^>]*>(<img[^>]*src="[^"]*"[^>]*>)</a>#',
|
||||||
|
'<a data-fancybox="' . $gallery . '" href="$1">$2</a>',
|
||||||
|
$text);
|
||||||
|
|
||||||
// This processes images inlined in posts
|
// Local content images attached:
|
||||||
// Frio / Vier hooks für lightbox are un-hooked in fancybox-config.js. So this works for them, too!
|
$text = preg_replace_callback(
|
||||||
//if (!in_array($a->getCurrentTheme(),['vier','frio']))
|
'#<div class="body-attach">.*?</div>#s',
|
||||||
{
|
function ($matches) use ($gallery) {
|
||||||
// normal post inline linked images
|
return str_replace('<a href', '<a data-fancybox="' . $gallery . '" href', $matches[0]);
|
||||||
$b['html'] = preg_replace_callback(
|
},
|
||||||
'#<a[^>]*href="([^"]*)"[^>]*>(<img[^>]*src="[^"]*"[^>]*>)</a>#',
|
$text
|
||||||
function ($matches) use ($gallery) {
|
);
|
||||||
// don't touch URLS marked as not "fancyable".. ;-)
|
|
||||||
if (preg_match('#data-nofancybox#', $matches[0]))
|
|
||||||
{
|
|
||||||
return $matches[0];
|
|
||||||
}
|
|
||||||
return '<a data-fancybox="' . $gallery . '" href="'. $matches[1] .'">' . $matches[2] .'</a>';
|
|
||||||
},
|
|
||||||
$b['html']
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Local content images attached:
|
return $text;
|
||||||
$b['html'] = preg_replace_callback(
|
}
|
||||||
'#<div class="body-attach">.*?</div>#s',
|
|
||||||
function ($matches) use ($gallery) {
|
|
||||||
return str_replace('<a href', '<a data-fancybox="' . $gallery . '" href', $matches[0]);
|
|
||||||
},
|
|
||||||
$b['html']
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user