Skip to content

Commit d637e96

Browse files
committed
v1.2.0-alpha
- Changed sql query for allowed image extensions - Changed compression method for png images - Added possibility to insert the attachment as an fullsize image in the post message - Added max display size for post images
1 parent 513a6c0 commit d637e96

File tree

17 files changed

+422
-73
lines changed

17 files changed

+422
-73
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ For full functionality "Maximum avatar file size" in "ACP" > "Board configuratio
5151

5252
## Changelog
5353

54+
### v1.2.0-alpha (09-04-2023)
55+
- Changed sql query for allowed image extensions
56+
- Changed compression method for png images
57+
- Added possibility to insert the attachment as an fullsize image in the post message
58+
- Added max display size for post images
59+
5460
### v1.1.1 (18-03-2023)
5561
- Fixed don't show preview thumbnail in attachments upload
5662
- Added support for Lightbox and Fancybox

imcger/imgupload/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ For full functionality "Maximum avatar file size" in "ACP" > "Board configuratio
5151

5252
## Changelog
5353

54+
### v1.2.0-alpha (09-04-2023)
55+
- Changed sql query for allowed image extensions
56+
- Changed compression method for png images
57+
- Added possibility to insert the attachment as an fullsize image in the post message
58+
- Added max display size for post images
59+
5460
### v1.1.1 (18-03-2023)
5561
- Fixed don't show preview thumbnail in attachments upload
5662
- Added support for Lightbox and Fancybox
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
Image upload use ImageMagick
3+
------------------------------------- */
4+
5+
function imcgerImgInlineDisabled() {
6+
if (document.getElementById('img_create_thumbnail').checked) {
7+
document.getElementById('imcger_imgupload_image_inline').disabled = false;
8+
} else {
9+
document.getElementById('imcger_imgupload_image_inline').checked = false;
10+
setTimeout(document.getElementById('imcger_imgupload_image_inline').disabled = true, 1000);
11+
}
12+
}
13+
14+
document.getElementById('img_create_thumbnail').addEventListener('click', imcgerImgInlineDisabled);
15+
imcgerImgInlineDisabled();

imcger/imgupload/adm/style/acp_imgupload_body.html

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,30 @@ <h1>{{ lang('ACP_IMCGER_IMGUPLOAD_TITLE') }}</h1>
77
<form id="acp_board" method="post" action="{{ U_ACTION }}">
88

99
<fieldset>
10-
<legend>{{ lang('ACP_IMCGER_SETTINGS_THUMB') }}</legend>
10+
<legend>{{ lang('ACP_ATTACHMENT_SETTINGS') }}</legend>
11+
<dl>
12+
<dt><label for="img_create_thumbnail">{{ lang('CREATE_THUMBNAIL') ~ lang('COLON') }}</label><br/><span>{{ lang('CREATE_THUMBNAIL_EXPLAIN') }}</span></dt>
13+
<dd>
14+
{{ _self.switch('img_create_thumbnail', CREATE_THUMBNAIL) }}
15+
</dd>
16+
</dl>
1117
<dl>
1218
<dt><label for="imcger_imgupload_tum_quality">{{ lang('ACP_IMCGER_THUMB_QUALITY') ~ lang('COLON') }}</label><br/><span>{{ lang('ACP_IMCGER_THUMB_QUALITY_DESC') }}</span></dt>
13-
<dd><input type="number" id="imcger_imgupload_tum_quality" min="50" max="90" step="any" maxlength="3" name="imcger_imgupload_tum_quality" value="{{ IMCGER_TUM_QUALITY }}"></dd>
19+
<dd>
20+
<input type="number" id="imcger_imgupload_tum_quality" min="50" max="90" step="any" maxlength="3" name="imcger_imgupload_tum_quality" value="{{ IMCGER_TUM_QUALITY }}">
21+
</dd>
22+
</dl>
23+
<dl>
24+
<dt><label for="imcger_imgupload_image_inline">{{ lang('ACP_IMCGER_IMAGE_INLINE') ~ lang('COLON') }}</label><br/><span>{{ lang('ACP_IMCGER_IMAGE_INLINE_DESC') }}</span></dt>
25+
<dd>
26+
{{ _self.switch('imcger_imgupload_image_inline', IMCGER_IMGUPLOAD_IMAGE_INLINE) }}
27+
</dd>
28+
</dl>
29+
<dl>
30+
<dt><label for="imcger_imgupload_image_inline_maxwidth">{{ lang('ACP_IMCGER_IMAGE_INLINE_MAXWIDTH') ~ lang('COLON') }}</label><br/><span>{{ lang('ACP_IMCGER_IMAGE_INLINE_MAXWIDTH_DESC') }}</span></dt>
31+
<dd>
32+
<input type="number" id="imcger_imgupload_image_inline_maxwidth" min="0" max="99999" step="any" maxlength="3" name="imcger_imgupload_image_inline_maxwidth" value="{{ IMCGER_IMAGE_INLINE_MAXWIDTH }}"> px
33+
</dd>
1434
</dl>
1535
</fieldset>
1636

@@ -70,7 +90,8 @@ <h1>{{ lang('ACP_IMCGER_IMGUPLOAD_TITLE') }}</h1>
7090

7191
{% INCLUDECSS '@imcger_imgupload/acp_toggle.css' %}
7292
{% INCLUDECSS '@imcger_imgupload/acp_imgupload.css' %}
93+
{% INCLUDEJS '@imcger_imgupload/acp_imgupload.js' %}
7394

7495
{% macro switch(name, checked = false) -%}
75-
<input type="checkbox" class="toggle" name="{{ name }}" value="1"{{ checked ? ' checked' }}>
96+
<input type="checkbox" class="toggle" id="{{ name }}" name="{{ name }}" value="1"{{ checked ? ' checked' }}>
7697
{%- endmacro %}

imcger/imgupload/composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"type": "phpbb-extension",
44
"description": "Using ImageMagick php librarie for resize image attachments and creating thumbnails.",
55
"homepage": "https://github.com/IMC-GER/phpBB-Image-upload-use-ImageMagick/tags",
6-
"version": "1.1.1",
7-
"time": "2023-03-18",
6+
"version": "1.2.0-alpha",
7+
"time": "2023-04-09",
88
"license": "GPL-2.0-only",
99
"authors": [{
1010
"name": "Thorsten Ahlers",

imcger/imgupload/controller/admin_controller.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
/**
33
*
4-
* Images upload use ImageMagick
4+
* Image upload use ImageMagick
55
* An extension for the phpBB Forum Software package.
66
*
77
* @copyright (c) 2022, Thorsten Ahlers
@@ -66,6 +66,7 @@ public function display_options()
6666
{
6767
// Add ACP lang file
6868
$this->language->add_lang('common', 'imcger/imgupload');
69+
$this->language->add_lang('acp/attachments');
6970

7071
add_form_key('imcger/imgupload');
7172

@@ -100,6 +101,9 @@ public function display_options()
100101
'IMCGER_DEL_EXIF' => (bool) $this->config['img_strip_metadata'],
101102
'IMCGER_AVATAR_RESIZE' => (bool) $this->config['imcger_imgupload_avatar_resize'],
102103
'IMCGER_AVATAR_FILESIZE_ISSET' => (bool) $this->config['avatar_filesize'],
104+
'CREATE_THUMBNAIL' => (bool) $this->config['img_create_thumbnail'],
105+
'IMCGER_IMGUPLOAD_IMAGE_INLINE' => (bool) $this->config['imcger_imgupload_image_inline'],
106+
'IMCGER_IMAGE_INLINE_MAXWIDTH' => $this->config['imcger_imgupload_image_inline_maxwidth'],
103107
]);
104108
}
105109

@@ -120,8 +124,10 @@ protected function set_variable()
120124
$this->config->set('imcger_imgupload_max_width', $this->request->variable('imcger_imgupload_max_width', 0));
121125
$this->config->set('imcger_imgupload_max_height', $this->request->variable('imcger_imgupload_max_height', 0));
122126
$this->config->set('imcger_imgupload_max_filesize', $max_filesize);
123-
$this->config->set('img_strip_metadata', (bool) $this->request->variable('imcger_imgupload_del_exif', 0));
124-
$this->config->set('imcger_imgupload_avatar_resize', (bool) $this->request->variable('imcger_imgupload_avatar_resize', 0));
127+
$this->config->set('img_strip_metadata', $this->request->variable('imcger_imgupload_del_exif', 0));
128+
$this->config->set('img_create_thumbnail', $this->request->variable('img_create_thumbnail', 0));
129+
$this->config->set('imcger_imgupload_image_inline', $this->request->variable('imcger_imgupload_image_inline', 0));
130+
$this->config->set('imcger_imgupload_image_inline_maxwidth', $this->request->variable('imcger_imgupload_image_inline_maxwidth', 0));
125131
}
126132

127133
/**

imcger/imgupload/event/main_listener.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,14 @@ public function new_profil_avatar_text()
9494
*/
9595
public function set_template_vars()
9696
{
97+
// Load language vars for buttons in post editor
98+
if ($this->config['img_create_thumbnail'])
99+
{
100+
$this->language->add_lang('attachment','imcger/imgupload');
101+
}
102+
97103
$allowed_images = '';
104+
$img_maxwidth = $this->config['imcger_imgupload_image_inline_maxwidth'];
98105

99106
$sql = 'SELECT extension FROM ' . EXTENSIONS_TABLE . ' WHERE group_id = (SELECT group_id FROM ' . EXTENSION_GROUPS_TABLE . ' WHERE group_name = "IMAGES")';
100107
$result = $this->db->sql_query($sql);
@@ -107,7 +114,8 @@ public function set_template_vars()
107114

108115
$this->template->assign_vars([
109116
'IUL_ALLOWED_IMAGES' => $allowed_images,
110-
'IUL_GET_THUMBNAIL' => $this->config['img_create_thumbnail'],
117+
'IUL_IMG_SET_INLINE' => $this->config['imcger_imgupload_image_inline'],
118+
'IUL_IMG_MAXWIDTH' => $img_maxwidth ? $img_maxwidth . 'px' : 'none',
111119
]);
112120
}
113121

@@ -441,8 +449,8 @@ function set_image_compression($image, $quality = 80)
441449
break;
442450

443451
case 'PNG':
444-
$image->setOption('png:compression-method', 0);
445-
$image->setOption('png:compression-filter', 0);
452+
$image->setOption('png:compression-strategy', 1);
453+
$image->setOption('png:compression-filter', 5);
446454
$image->setOption('png:compression-level', 9);
447455
break;
448456

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
/**
3+
*
4+
* Image upload use ImageMagick
5+
* An extension for the phpBB Forum Software package.
6+
*
7+
* @copyright (c) 2022, Thorsten Ahlers
8+
* @license GNU General Public License, version 2 (GPL-2.0)
9+
*
10+
*/
11+
12+
if (!defined('IN_PHPBB'))
13+
{
14+
exit;
15+
}
16+
17+
if (empty($lang) || !is_array($lang))
18+
{
19+
$lang = [];
20+
}
21+
22+
// DEVELOPERS PLEASE NOTE
23+
//
24+
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
25+
//
26+
// Placeholders can now contain order information, e.g. instead of
27+
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
28+
// translators to re-order the output of data while ensuring it remains correct
29+
//
30+
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
31+
// equally where a string contains only two placeholders which are used to wrap text
32+
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
33+
//
34+
// Some characters you may want to copy&paste:
35+
// ’ » “ ” …
36+
//
37+
38+
$lang = array_merge($lang, [
39+
// Post editor settings
40+
'PLACE_INLINE' => 'Thumbnail im Beitrag anzeigen',
41+
'IMAGE_PLACE_INLINE' => 'Bild im Beitrag anzeigen',
42+
]);

imcger/imgupload/language/de/common.php

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
// Language pack author
4141
'ACP_IMCGER_LANG_DESC' => 'Deutsch (Du)',
42-
'ACP_IMCGER_LANG_EXT_VER' => '1.1.1',
42+
'ACP_IMCGER_LANG_EXT_VER' => '1.2.0-alpha',
4343
'ACP_IMCGER_LANG_AUTHOR' => 'IMC-Ger',
4444

4545
// Messages
@@ -49,25 +49,27 @@
4949
'ACP_IMCGER_IMGUPLOAD_TITLE' => 'Image upload use ImageMagick',
5050
'ACP_IMCGER_IMGUPLOAD_DESC' => 'Die Erweiterung verwendet die PHP Imagick Klasse, um hochgeladene Bilder, Thumbnails und Avatars zu verändern. Wenn die im ACP eingestellten Werte von der Bilddatei überschritten werden, wird die Größe des Bildes von der Erweiterung angepasst. Die Erweiterung unterstützt JPEG, WEBP, GIF und PNG Bilder. Andere Bildformate, z. B. BMP, werden beim Ändern der Größe in JPEG umgewandelt. Diese Erweiterung kann die Bildgröße und/oder die Größe der Bilddatei ändern. Es dreht Bilder, Thumbnails und Avatare entsprechend ihrer EXIF Informationen und kann die EXIF Daten aus JPEG und WEBP Dateien entfernen.',
5151

52-
'ACP_IMCGER_SETTINGS_THUMB' => 'Vorschaubild Einstellungen',
53-
'ACP_IMCGER_SETTINGS_IMAGE' => 'Bild Einstellungen',
54-
'ACP_IMCGER_SETTINGS_AVATAR' => 'Avatar Einstellungen',
52+
// Attachment settings
53+
'ACP_IMCGER_THUMB_QUALITY' => 'Vorschaubilder Komprimierungsqualität',
54+
'ACP_IMCGER_THUMB_QUALITY_DESC' => 'Lege einen Wert zwischen 50% (kleinere Dateigröße) und 90% (höhere Qualität) fest. Werte größer als 90% erhöhen die Dateigröße und sind daher deaktiviert. Durch niedrigere Werte werden kleinere Dateien erzeugt.',
55+
'ACP_IMCGER_IMAGE_INLINE' => 'Bild einfügen',
56+
'ACP_IMCGER_IMAGE_INLINE_DESC' => 'Bildanhang kann mit dem BBCode "[img]url[/img]" in dem Beitragseditor mittels eines Button eingefügt werden.',
57+
'ACP_IMCGER_IMAGE_INLINE_MAXWIDTH' => 'Maximale Bildbreite',
58+
'ACP_IMCGER_IMAGE_INLINE_MAXWIDTH_DESC' => 'Maximale Breite in Pixel, mit der Bilder in Beiträgen angezeigt werden. Bei der Eingabe von 0 wird die Größe nicht begrenzt.',
5559

56-
'ACP_IMCGER_THUMB_QUALITY' => 'Vorschaubilder Komprimierungsqualität',
57-
'ACP_IMCGER_THUMB_QUALITY_DESC' => 'Lege einen Wert zwischen 50% (kleinere Dateigröße) und 90% (höhere Qualität) fest. Werte größer als 90% erhöhen die Dateigröße und sind daher deaktiviert. Durch niedrigere Werte werden kleinere Dateien erzeugt.',
58-
59-
'ACP_IMCGER_IMAGE_QUALITY' => 'Bild Komprimierungsqualität',
60-
'ACP_IMCGER_IMAGE_QUALITY_DESC' => 'Lege einen Wert zwischen 50% (kleinere Dateigröße) und 90% (höhere Qualität) fest. Werte größer als 90% erhöhen die Dateigröße und sind daher deaktiviert. Durch niedrigere Werte werden kleinere Dateien erzeugt.',
61-
62-
'ACP_IMCGER_MAX_SIZE' => 'Maximale Bildgröße',
63-
'ACP_IMCGER_MAX_SIZE_DESC' => 'Einstellung der maximalen Bildgröße in Pixel. Die Bilder werden auf die maximale Breite bzw. Höhe verkleinert. Die jeweils andere Seite wird proportional angepasst. Bei der Angabe von 0px x 0px wird keine Veränderung der Bildgröße durchgeführt.',
64-
65-
'ACP_IMCGER_MAX_FILESIZE' => 'Maximale Dateigröße',
66-
'ACP_IMCGER_MAX_FILESIZE_DESC' => 'Einstellung der maximalen Dateigröße in Byte. Bei der Angabe von 0 findet keine Größenbeschränkung statt. Überschreitet die Größe der Bilddatei den eingestellten Wert wird diese angenähert verkleinert.',
67-
68-
'ACP_IMCGER_DEL_EXIF' => 'Entferne Metadaten (JPEG & WEBP)',
69-
'ACP_IMCGER_DEL_EXIF_DESC' => 'Entfernt die Exif-Metadaten wie Name des Autors, GPS-Koordinaten und Kamera-Details.',
60+
// Image settings
61+
'ACP_IMCGER_SETTINGS_IMAGE' => 'Bild Einstellungen',
62+
'ACP_IMCGER_IMAGE_QUALITY' => 'Bild Komprimierungsqualität',
63+
'ACP_IMCGER_IMAGE_QUALITY_DESC' => 'Lege einen Wert zwischen 50% (kleinere Dateigröße) und 90% (höhere Qualität) fest. Werte größer als 90% erhöhen die Dateigröße und sind daher deaktiviert. Durch niedrigere Werte werden kleinere Dateien erzeugt.',
64+
'ACP_IMCGER_MAX_SIZE' => 'Maximale Bildgröße',
65+
'ACP_IMCGER_MAX_SIZE_DESC' => 'Einstellung der maximalen Bildgröße in Pixel. Die Bilder werden auf die maximale Breite bzw. Höhe verkleinert. Die jeweils andere Seite wird proportional angepasst. Bei der Angabe von 0px x 0px wird keine Veränderung der Bildgröße durchgeführt.',
66+
'ACP_IMCGER_MAX_FILESIZE' => 'Maximale Dateigröße',
67+
'ACP_IMCGER_MAX_FILESIZE_DESC' => 'Einstellung der maximalen Dateigröße in Byte. Bei der Angabe von 0 findet keine Größenbeschränkung statt. Überschreitet die Größe der Bilddatei den eingestellten Wert wird diese angenähert verkleinert.',
68+
'ACP_IMCGER_DEL_EXIF' => 'Entferne Metadaten (JPEG & WEBP)',
69+
'ACP_IMCGER_DEL_EXIF_DESC' => 'Entfernt die Exif-Metadaten wie Name des Autors, GPS-Koordinaten und Kamera-Details.',
7070

71+
// Avatar settings
72+
'ACP_IMCGER_SETTINGS_AVATAR' => 'Avatar Einstellungen',
7173
'ACP_IMCGER_AVATAR_RESIZE' => 'Avatar Größe anpassen',
7274
'ACP_IMCGER_AVATAR_RESIZE_DESC' => 'Die Bilddatei des Avatar wird beim Hochladen automatisch verkleinert.',
7375
'ACP_IMCGER_AVATAR_FILESIZE_ISSET' => 'Für diese Funktion muss die "Maximale Dateigröße" des Avatars auf 0 gesetzt werden.',
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
/**
3+
*
4+
* Image upload use ImageMagick
5+
* An extension for the phpBB Forum Software package.
6+
*
7+
* @copyright (c) 2022, Thorsten Ahlers
8+
* @license GNU General Public License, version 2 (GPL-2.0)
9+
*
10+
*/
11+
12+
if (!defined('IN_PHPBB'))
13+
{
14+
exit;
15+
}
16+
17+
if (empty($lang) || !is_array($lang))
18+
{
19+
$lang = [];
20+
}
21+
22+
// DEVELOPERS PLEASE NOTE
23+
//
24+
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
25+
//
26+
// Placeholders can now contain order information, e.g. instead of
27+
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
28+
// translators to re-order the output of data while ensuring it remains correct
29+
//
30+
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
31+
// equally where a string contains only two placeholders which are used to wrap text
32+
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
33+
//
34+
// Some characters you may want to copy&paste:
35+
// ’ » “ ” …
36+
//
37+
38+
$lang = array_merge($lang, [
39+
// Post editor settings
40+
'PLACE_INLINE' => 'Thumbnail im Beitrag anzeigen',
41+
'IMAGE_PLACE_INLINE' => 'Bild im Beitrag anzeigen',
42+
]);

0 commit comments

Comments
 (0)