*/ use Friendica\App; use Friendica\Core\Hook; use Friendica\DI; function fancybox_install() { Hook::register('head', __FILE__, 'fancybox_head'); Hook::register('footer', __FILE__, 'fancybox_footer'); Hook::register('prepare_body_final', __FILE__, 'fancybox_render'); } function fancybox_head(App $a, string &$b) { DI::page()->registerStylesheet(__DIR__ . '/asset/fancybox/jquery.fancybox.min.css'); } function fancybox_footer(App $a, 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) { $matches = []; $pattern = '#
.*?
#s'; $gallery = 'gallery'; if (array_key_exists('item', $b)) { $item = $b['item']; if (array_key_exists('uri-id', $item)) { $gallery = $gallery . '-' . $item['uri-id']; } } $html = $b['html']; while (preg_match($pattern, $html, $matches, PREG_OFFSET_CAPTURE)) { if (is_array($matches)) { $matches = $matches[0]; } $part = $matches[0]; $replaced = str_replace('