/**
* Name: Fancybox
* Description: Open media attachments of posts into a fancybox overlay.
- * Version: 1.03
+ * Version: 1.05
* Author: Grischa Brockhaus <grischa@brockha.us>
*/
Hook::register('prepare_body_final', __FILE__, 'fancybox_render');
}
-function fancybox_head(App $a, string &$b)
+function fancybox_head(string &$b)
{
DI::page()->registerStylesheet(__DIR__ . '/asset/fancybox/jquery.fancybox.min.css');
}
-function fancybox_footer(App $a, string &$str)
+function fancybox_footer(string &$str)
{
DI::page()->registerFooterScript(__DIR__ . '/asset/fancybox/jquery.fancybox.min.js');
DI::page()->registerFooterScript(__DIR__ . '/asset/fancybox/fancybox.config.js');
}
-function fancybox_render(App $a, array &$b){
+function fancybox_render(array &$b){
$gallery = 'gallery-' . $b['item']['uri-id'] ?? random_int(1000000, 10000000);
// performWithEscapedBlocks escapes block defined with 2nd par pattern that won't be processed.
function ($text) use ($gallery) {
// 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']))
+ //if (!in_array(DI::app()->getCurrentTheme(),['vier','frio']))
$text = preg_replace(
'#<a[^>]*href="([^"]*)"[^>]*>(<img[^>]*src="[^"]*"[^>]*>)</a>#',
'<a data-fancybox="' . $gallery . '" href="$1">$2</a>',
// Local content images attached:
$text = preg_replace_callback(
- '#<div class="body-attach">.*?</div>#s',
+ '#<div class="(body-attach|imagegrid-column)">.*?</div>#s',
function ($matches) use ($gallery) {
return str_replace('<a href', '<a data-fancybox="' . $gallery . '" href', $matches[0]);
},