User tests: Successful: Unsuccessful:
I found that with the use of base64-encoded data streams of image files it should be possible to integrate the creation of such streams and that JImageHelper is the best place to request it from. So i added two new methods - toBase64 and fromBase64. While the former method generates a ready to use base64-encoded data stream that can be used with an <img/>
element's src-attribute as well as with CSS the latter takes such a stream and writes it into an image file.
The methods can be tested the following way:
// Array of different input types and input path scenarios to show the paths are properly handled
$files = [
'http://www.example.com/images/powered_by.png',
'/abs/path/to/joomla/images/powered_by.png',
'//images/powered_by.png',
'\\images\powered_by.png',
'images\powered_by.png',
'\\abs\\path\to\joomla\images\powered_by.png',
'http://www.example.com/images/joomla_green.gif',
'/abs/path/to/joomla/images/joomla_green.gif',
'//images/joomla_green.gif',
'\\images\joomla_green.gif',
'images\joomla_green.gif',
'\\abs\\path\to\joomla\images\joomla_green.gif',
'http://www.example.com/images/joomla_logo_black.jpg',
'/abs/path/to/joomla/images/joomla_logo_black.jpg',
'//images/joomla_logo_black.jpg',
'\\images\joomla_logo_black.jpg',
'images\joomla_logo_black.jpg',
'\\abs\\path\to\joomla\images\joomla_logo_black.jpg',
'http://www.example.com/images/joomla_logo_black2.jpeg',
'/abs/path/to/joomla/images/joomla_logo_black2.jpeg',
'//images/joomla_logo_black2.jpeg',
'\\images\joomla_logo_black2.jpeg',
'images\joomla_logo_black2.jpeg',
'\\abs\\path\to\joomla\images\joomla_logo_black2.jpeg'
];
// Iterate over the files array and output every image to your browser
foreach ($files as $f)
{
echo '<img src="' . JImageHelper::toBase64($f) . '" border="0" alt="Image"/>';
}
$streams = [
'powered_by.png' => 'data:image/png;base64,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',
'joomla_green.gif' => 'data:image/gif;base64,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',
'joomla_logo_black.jpg' => 'data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABBAAD/4QNnaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9IkY2MDhGQjhFQzMzNDAxNzY5NjQwREU5MEVCNTQ5NDlFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBDQTNDREQ3RjAyNzExRTFCQjREODA4NDZCREZFNEIyIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBDQTNDREQ2RjAyNzExRTFCQjREODA4NDZCREZFNEIyIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjUxOTZGNDdGMDFDMTFFMUJCNEQ4MDg0NkJERkU0QjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjUxOTZGNDhGMDFDMTFFMUJCNEQ4MDg0NkJERkU0QjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+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'
];
// Iterate over the streams array and create files to the /tmp folder.
foreach ($streams as $name => $stream)
{
JImageHelper::fromBase64($stream, true, $name, '/tmp');
}
Please test and report back.
Status | Pending | ⇒ | New |
Labels |
Added:
?
|
I'm afraid i can't. I have never written any unit test so far and have no experience in that. I don't involve unit testing locally and have no testing environment to write and test my tests before providing them to the public audience.
It is furthermore problematice as one of the tests should test for the <img/>
tags creation which requires the use of the deprecated assertion assertTag()
. How to test the html output in this case?
Mabe somebody experienced can help out and write this test?
I'll try to throw something together then.
Thanks a lot, Michael!
@itbra can you translate the Exceptions to use language strings?
Example:
throw new RuntimeException(JText::_('You selected to store the image file. However, you did not specify a file name.'));
replace with
throw new RuntimeException(JText::_('JLIB_STORE_IMAGE_FAILD_NO_FILENAME'));
Than you need to add the new Language string to
https://github.com/joomla/joomla-cms/blob/staging/language/en-GB/en-GB.lib_joomla.ini
and
https://github.com/joomla/joomla-cms/blob/staging/administrator/language/en-GB/en-GB.lib_joomla.ini
as
JLIB_STORE_IMAGE_FAILD_NO_FILENAME="You selected to store the image file. However, you did not specify a file name."
Thanks
Actually, I wouldn't translate it. Most of the libraries folder code was converted to not be translated (Exception messages typically shouldn't be shown directly to the user). JImage
is handled the same way.
Err... Whoops, wrong browser window with that last comment ;-)
Status | New | ⇒ | Pending |
@zero-24
Actually i considered to add translation when i implemented these methods - as can be noted from the //TODO - add translation
annotations. However, as @jissues-bot already stated the libraries folder show many untranslated implementations which is why i wondered if that might be a rule and why i left the translation out so far.
@mbabker
Thank you very much for taking the time and writing this test class. Mabe you can comment that to clarify the situtation?
I would translate these as they will be directly displayed to non-coders in case of error
Example: "You selected to store the image file. However, you did not specify a file name."
Absolutely agree. Then this counts for the getImageFileProperties()
messages as well. So, into which core lang file and what prefix to use - JLIB_APPLICATION_ERROR
?
They should be present in both en-GB.lib_joomla.ini (admin and site)
and I would have their constants start by
JLIB_IMAGE_ERROR_ in a new section of the file starting line 416 before the JLIB_INSTALLER_ ones
But someone may think it needs another constant... :)
I think JLIB_IMAGE_ERROR_
is good as it clearly communicates its context. Anyway, i'll add them and if there will be claims about the prefix we can replace it very fast.
Done. Hope i applied all changes in the right places. Anyone who can tell me why the travis builds fail on image.php?
However, as @jissues-bot already stated the libraries folder show many untranslated implementations which is why i wondered if that might be a rule and why i left the translation out so far.
That was actually me on the wrong account. So if this class were to get pulled up to the Framework (and I think it should as the Image library exists there and these are some useful methods), the Exceptions would again be untranslated, and the time spent translating would be wasted when the CMS ever updated to use that version of the code instead of this one. That's my only real concern here.
Mhm, what do you suggest to do, Michael?
The rule of thumb is:
The question now is: Does it make sense to show this message to a user? Usually library functions aren't directly accessed by a user. They are used by an extension which provides the form (like for example the media manager may use it). But then the form processing within the extension itself does this sanity checks and will generate a (translated) message to the user.
Maybe I'm missing something but can't this go inside the JImage
class itself? In fact we are duplicating some methods here.
Well guys, please let us find a consense to get this PR finished and merged.
What do you want me to change and where do you want me to change it? I mean, if there are doubts about which class to receive which methods we should talk about it and apply the changes if they make sense.
What do you think?
I wonder why this PR isn't discussed anymore. All functionality is implemented. All suggested changes are applied. My impression was we were close to merge it into 3.4-dev. Is there something missing?
Only PLT can decide and merge Pull requests. But here also Travis fails for some reason i don't understand.
https://travis-ci.org/joomla/joomla-cms/builds/34725103
@mbabker can you have a look here?
I also wondered why it fails. The output shown when clicking the "Detail" link does even not tell me very much since i have zero experience with CI. I triple checked my code but couldn't figure if and where it may be the reason. If anybody knows more, please tell us so i can fix it soon.
In libraries/joomla/image/image.php
, the errors are coming from a missing closing parenthesis on the lines where the Exceptions were converted to use JText.
I checked the file within another editor and can confirm this issue. I updated image.php and helper.php as of several complaint by Travis. The tests are now successful.
How to proceed?
Category | ⇒ | Libraries |
Category | Libraries | ⇒ | Feature Request Libraries |
I've tried the functions, and in function fromBase64 the fullpath ended up being wrong.
As you can see, when defining fullpath there is one too many DIRECTORY_SEPERATOR in front making the path wrong.
Status | Pending | ⇒ | Information Required |
Moving to Information required
based on the last comment by @onurtemuroglu and as the PR contains merge conflicts
Hello @itbra
Thank you for your contribution.
The last comment here was on 23rd August. Can you follow up on the feedback?
If no reply is received within 4 weeks we will close this issue.
Thanks for understanding!
This PR has received new commits.
CC: @onurtemuroglu
Labels |
Added:
?
?
|
Labels |
Added:
?
?
|
Status | Information Required | ⇒ | Pending |
Labels |
Category | Libraries Feature Request | ⇒ | Feature Request Language & Strings Libraries |
Status | Pending | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2016-05-08 14:29:34 |
Closed_By | ⇒ | roland-d |
Labels |
Thanks everybody for your contribution, since there is no longer a follow-up and we have an issue and merge conflicts I am going to close this issue. Feel free to open this issue again when you have time to work on it.
Can you add the test data as a unit test class? Just add a JImageHelperTest class here.