Skip to content

Commit

Permalink
fix: better handling of none and multilanguage sites
Browse files Browse the repository at this point in the history
  • Loading branch information
mauricerenck committed Nov 15, 2024
1 parent 72d0d7e commit 73a4736
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 13 deletions.
9 changes: 5 additions & 4 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@
],
[
'pattern' => ['(:all)/og-image', 'og-image'],
'action' => function ($slug) {
'language' => '*',
'action' => function ($lang, $slug) {
$languages = kirby()->languages();
$language = null;
if (count($languages) > 1) {
$language = kirby()->language()->code();
$language = null;
$slugParts = explode('/', $slug);

if (in_array($slugParts[0], $languages->codes())) {
Expand All @@ -57,12 +58,12 @@
return new Response($page->getOgImage()->read(), 'image/png');
}

if ($page->hasGeneratedOgImage()) {
if ($page->hasGeneratedOgImage($languageString)) {
return new Response($page->image('generated-og-image.' . $languageString . '.png')->read(), 'image/png');
}

try {
$page->createOgImage();
$page->createOgImage($languageString);
return new Response($page->image('generated-og-image.' . $languageString . '.png')->read(), 'image/png');
} catch (\Exception $e) {
return new Response($e->getMessage(), 'text/plain', 500);
Expand Down
13 changes: 4 additions & 9 deletions lib/page-methods.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@
$ogImageField = option('mauricerenck.ogimage.field', 'ogImage');
return (!is_null($this->{$ogImageField}()) && $this->{$ogImageField}()->isNotEmpty());
},
'hasGeneratedOgImage' => function () {
$language = $this->kirby()->language();
$languageString = is_null($language) ? 'default' : $language->code();
$filename = 'generated-og-image.' . $languageString . '.png';

'hasGeneratedOgImage' => function (string $language) {
$filename = 'generated-og-image.' . $language . '.png';
$savedOgImage = !is_null($this->image($filename)) && $this->image($filename)->exists();

return $savedOgImage;
Expand All @@ -25,7 +22,7 @@
? $this->{$ogImageField}()->toFile()->crop($imageWidth, $imageHeight)
: null;
},
'createOgImage' => function () {
'createOgImage' => function (string $language) {
$imageWidth = option('mauricerenck.ogimage.width', 1600);
$imageHeight = option('mauricerenck.ogimage.height', 900);

Expand Down Expand Up @@ -135,9 +132,7 @@
$tempFile = tempnam(sys_get_temp_dir(), 'png');
imagepng($canvas, $tempFile);

$language = $this->kirby()->language();
$languageString = is_null($language) ? 'default' : $language->code();
$filename = 'generated-og-image.' . $languageString . '.png';
$filename = 'generated-og-image.' . $language . '.png';

kirby()->impersonate('kirby');
if (!is_null($this->file($filename)) && $this->file($filename)->exist()) {
Expand Down

0 comments on commit 73a4736

Please sign in to comment.