Skip to content

Commit 42029e5

Browse files
committed
feat: fancybox v6
1 parent 47d7a22 commit 42029e5

File tree

12 files changed

+89
-61
lines changed

12 files changed

+89
-61
lines changed

extend.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Flarum\Extend;
1515
use Flectar\Fancybox\WrapImagesInGallery;
1616
use Flectar\Fancybox\DefineGalleryTemplate;
17+
use Flectar\Fancybox\AddExcerptToDiscussion;
1718
use Flarum\Discussion\Discussion;
1819
use Flarum\Api\Resource\DiscussionResource;
1920
use Flarum\Api\Schema;
@@ -25,6 +26,7 @@
2526

2627
(new Extend\Formatter)
2728
->configure(DefineGalleryTemplate::class)
29+
->configure(AddExcerptToDiscussion::class)
2830
->render(WrapImagesInGallery::class),
2931

3032
(new Extend\ApiResource(DiscussionResource::class))

js/dist/forum.js

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/dist/forum.js.LICENSE.txt

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/dist/forum.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"private": true,
55
"prettier": "@flarum/prettier-config",
66
"dependencies": {
7-
"@fancyapps/ui": "^5.0.36",
7+
"@fancyapps/ui": "^6.1.0",
88
"@flarum/prettier-config": "^1.0.0",
99
"flarum-webpack-config": "^3.0.0",
1010
"webpack": "^5.94.0",

js/src/forum/index.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ app.initializers.add('flectar/flarum-fancybox', () => {
1717
postBody.children('.fancybox-gallery:not(.fancybox-ready)')
1818
.addClass('fancybox-ready')
1919
.each((_, gallery) => {
20-
new Carousel(gallery, {
20+
Carousel(gallery, {
2121
Dots: false,
2222
infinite: false,
2323
dragFree: false,
2424
preload: 0,
25-
});
25+
}).init();
2626
});
2727

2828
postBody.find('a[data-fancybox]:not(.fancybox-ready)')
@@ -52,7 +52,8 @@ app.initializers.add('flectar/flarum-fancybox', () => {
5252
const group = (carouselEl.length > 0 ? carouselEl : postBody).find(`a[data-fancybox="${groupName}"]`).toArray();
5353
const startIndex = group.indexOf(el);
5454

55-
Fancybox.fromNodes(group, {
55+
Fancybox.show(group, {
56+
startIndex,
5657
Carousel: {
5758
infinite: false,
5859
preload: 0,
@@ -61,15 +62,14 @@ app.initializers.add('flectar/flarum-fancybox', () => {
6162
display: {
6263
left: ['infobar'],
6364
middle: ['rotateCCW', 'rotateCW', 'flipX', 'flipY'],
64-
right: ['slideshow', 'fullscreen', 'close'],
65+
right: ['slideshow', 'close'],
6566
},
6667
},
6768
Images: {
68-
initialSize: 'fit' as 'fit',
69+
zoom: true,
6970
},
7071
dragToClose: true,
7172
Hash: false,
72-
startIndex,
7373
});
7474
});
7575
});
@@ -92,12 +92,12 @@ app.initializers.add('flectar/flarum-fancybox', () => {
9292
excerptBody.children('.fancybox-gallery:not(.fancybox-ready)')
9393
.addClass('fancybox-ready')
9494
.each((_, gallery) => {
95-
new Carousel(gallery, {
95+
Carousel(gallery, {
9696
Dots: false,
9797
infinite: false,
9898
dragFree: false,
9999
preload: 0,
100-
});
100+
}).init();
101101
});
102102

103103
excerptBody.find('a[data-fancybox]:not(.fancybox-ready)')
@@ -127,7 +127,8 @@ app.initializers.add('flectar/flarum-fancybox', () => {
127127
const group = (carouselEl.length > 0 ? carouselEl : excerptBody).find(`a[data-fancybox="${groupName}"]`).toArray();
128128
const startIndex = group.indexOf(el);
129129

130-
Fancybox.fromNodes(group, {
130+
Fancybox.show(group, {
131+
startIndex,
131132
Carousel: {
132133
infinite: false,
133134
preload: 0,
@@ -136,15 +137,14 @@ app.initializers.add('flectar/flarum-fancybox', () => {
136137
display: {
137138
left: ['infobar'],
138139
middle: ['rotateCCW', 'rotateCW', 'flipX', 'flipY'],
139-
right: ['slideshow', 'fullscreen', 'close'],
140+
right: ['slideshow', 'close'],
140141
},
141142
},
142143
Images: {
143-
initialSize: 'fit' as 'fit',
144+
zoom: true,
144145
},
145146
dragToClose: true,
146147
Hash: false,
147-
startIndex,
148148
});
149149
});
150150
});

less/carousel.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

less/fancybox.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/AddExcerptToDiscussion.php

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace Flectar\Fancybox;
4+
5+
use s9e\TextFormatter\Configurator;
6+
7+
class AddExcerptToDiscussion
8+
{
9+
public function __invoke(Configurator $config)
10+
{
11+
if ($config->tags->exists('IMG')) {
12+
$tag = $config->tags->get('IMG');
13+
$originalTemplate = $tag->template;
14+
15+
$tag->template = <<<XML
16+
<xsl:choose>
17+
<xsl:when test="ancestor::DISCUSSION-EXCERPT">
18+
<a data-fancybox="excerpt-gallery" href="{@src}">
19+
<img data-lazy-src="{@src}" alt="{@alt}" class="excerpt-image"/>
20+
</a>
21+
</xsl:when>
22+
<xsl:otherwise>
23+
{$originalTemplate}
24+
</xsl:otherwise>
25+
</xsl:choose>
26+
XML;
27+
}
28+
29+
if ($config->tags->exists('UPL-IMAGE-PREVIEW')) {
30+
$tag = $config->tags->get('UPL-IMAGE-PREVIEW');
31+
$originalTemplate = $tag->template;
32+
33+
$tag->template = <<<XML
34+
<xsl:choose>
35+
<xsl:when test="ancestor::DISCUSSION-EXCERPT">
36+
<a data-fancybox="excerpt-gallery" href="{@url}">
37+
<img data-lazy-src="{@url}" alt="" class="excerpt-image"/>
38+
</a>
39+
</xsl:when>
40+
<xsl:otherwise>
41+
{$originalTemplate}
42+
</xsl:otherwise>
43+
</xsl:choose>
44+
XML;
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)