? ? ? Pending

User tests: Successful: Unsuccessful:

avatar itbra
itbra
29 Aug 2014

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.

avatar itbra itbra - open - 29 Aug 2014
avatar jissues-bot jissues-bot - change - 29 Aug 2014
Status Pending New
Labels Added: ?
avatar mbabker
mbabker - comment - 29 Aug 2014

Can you add the test data as a unit test class? Just add a JImageHelperTest class here.

avatar itbra
itbra - comment - 29 Aug 2014

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?

avatar itbra itbra - change - 29 Aug 2014
The description was changed
avatar mbabker
mbabker - comment - 29 Aug 2014

I'll try to throw something together then.

avatar itbra
itbra - comment - 29 Aug 2014

Thanks a lot, Michael!

avatar mbabker
mbabker - comment - 31 Aug 2014

Done - itbra#3

avatar zero-24
zero-24 - comment - 31 Aug 2014

@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 :+1:

avatar jissues-bot
jissues-bot - comment - 31 Aug 2014

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.

avatar mbabker
mbabker - comment - 31 Aug 2014

Err... Whoops, wrong browser window with that last comment ;-)

avatar brianteeman brianteeman - change - 31 Aug 2014
The description was changed
Status New Pending
avatar itbra itbra - change - 2 Sep 2014
The description was changed
avatar itbra
itbra - comment - 2 Sep 2014

@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?

avatar infograf768
infograf768 - comment - 2 Sep 2014

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."

avatar itbra
itbra - comment - 2 Sep 2014

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?

avatar infograf768
infograf768 - comment - 2 Sep 2014

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... :)

avatar itbra
itbra - comment - 2 Sep 2014

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.

avatar itbra itbra - reference | - 2 Sep 14
avatar itbra itbra - reference | - 2 Sep 14
avatar itbra itbra - reference | - 2 Sep 14
avatar itbra itbra - reference | - 2 Sep 14
avatar itbra
itbra - comment - 2 Sep 2014

Done. Hope i applied all changes in the right places. Anyone who can tell me why the travis builds fail on image.php?

avatar mbabker
mbabker - comment - 2 Sep 2014

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.

avatar itbra
itbra - comment - 2 Sep 2014

Mhm, what do you suggest to do, Michael?

avatar Bakual
Bakual - comment - 2 Sep 2014

The rule of thumb is:

  • If the message is shown to a user, then it should be translated.
  • If the message is written to a error log file, then it should not be translated.

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.

avatar phproberto
phproberto - comment - 3 Sep 2014

Maybe I'm missing something but can't this go inside the JImage class itself? In fact we are duplicating some methods here.

avatar itbra
itbra - comment - 6 Sep 2014

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?

avatar itbra
itbra - comment - 2 Oct 2014

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?

avatar zero-24
zero-24 - comment - 2 Oct 2014

@itbra

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?

avatar itbra
itbra - comment - 2 Oct 2014

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.

avatar mbabker
mbabker - comment - 2 Oct 2014

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.

avatar itbra
itbra - comment - 2 Oct 2014

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?

avatar brianteeman brianteeman - change - 17 Oct 2014
Category Libraries
avatar roland-d roland-d - change - 20 Aug 2015
Category Libraries Feature Request Libraries
avatar onurtemuroglu onurtemuroglu - test_item - 21 Aug 2015 - Tested unsuccessfully
avatar onurtemuroglu
onurtemuroglu - comment - 21 Aug 2015

I've tried the functions, and in function fromBase64 the fullpath ended up being wrong.screen shot 2015-08-21 at 05 15 29
As you can see, when defining fullpath there is one too many DIRECTORY_SEPERATOR in front making the path wrong.


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/4196.

avatar zero-24 zero-24 - change - 23 Aug 2015
Status Pending Information Required
avatar zero-24
zero-24 - comment - 23 Aug 2015

Moving to Information required based on the last comment by @onurtemuroglu and as the PR contains merge conflicts


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/4196.

avatar roland-d
roland-d - comment - 8 Nov 2015

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 comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/4196.

avatar itbra itbra - reference | aaac632 - 9 Nov 15
avatar joomla-cms-bot
joomla-cms-bot - comment - 9 Nov 2015

This PR has received new commits.

CC: @onurtemuroglu


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/4196.

avatar joomla-cms-bot joomla-cms-bot - change - 9 Nov 2015
Labels Added: ? ?
avatar joomla-cms-bot joomla-cms-bot - change - 9 Nov 2015
Labels Added: ? ?
avatar brianteeman brianteeman - change - 19 Dec 2015
Status Information Required Pending
Labels
avatar brianteeman brianteeman - change - 27 Apr 2016
Category Libraries Feature Request Feature Request Language & Strings Libraries
avatar roland-d roland-d - change - 8 May 2016
Status Pending Closed
Closed_Date 0000-00-00 00:00:00 2016-05-08 14:29:34
Closed_By roland-d
avatar roland-d roland-d - change - 8 May 2016
Labels
avatar roland-d roland-d - close - 8 May 2016
avatar roland-d
roland-d - comment - 8 May 2016

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.


This comment was created with the J!Tracker Application at issues.joomla.org/joomla-cms/4196.

Add a Comment

Login with GitHub to post a comment