? Success

User tests: Successful: Unsuccessful:

avatar nikosdion
nikosdion
19 Aug 2016

Pull Request for Issue #11672 .

Pinging @wilsonge and @mbabker – This PR addresses PHP 7.0 and 7.1 compatibility issues. See the bold stuff under Bugfixes

Summary of Changes

Updated FOF to 2.5.5. The following improvements and bug fixes have been implemented since version 2.4.3 (what is currently included in Joomla! 3.6.2):

Improvements

  • Now compatible with Joomla! 1.6, 1.7, 2.5, 3.0, 3.1, 3.2, 3.3, 3.4 and 3.5 (best used with Joomla! 3.3 or later)
  • F0FUtilsIniFile to parse INI files even on broken hosts
  • F0FUtilsConfigHelper to get component configuration parameters without going through JComponentHelper
  • F0FUtilsUpdate improvements
  • Clear the OPcache when installing / updating an extension as long as it uses F0FUtilsInstallscript
  • F0FUtilsIp: let the workarounds be disabled
  • gh-584 removeHeader method added in Form, allowing you to remove a header from an XML form.
  • utf8mb4 support in schema installer under Joomla! 3.5+

Bugfixes

  • [HIGH] mcrypt is deprecated in PHP 7.1. This will cause Two Factor Authentication to fail under PHP 7.1 unless you apply this PR.
  • [HIGH] gh-593 Cannot use multiple behaviours under PHP 7. This was breaking many FOF extensions using the old version in Joomla! 3.5 and 3.6 under PHP 7.
  • [HIGH] If you declared onBefore/onAfter Controller methods public FOF would erroneously treat them as tasks
  • [HIGH] Crazy code for JDatabaseInterface in Joomla! causes fatal errors when using the Joomla! db driver in FOF in CLI
  • [HIGH] The caching ID was always wrong since JCache::makeId() is never called any more in Joomla!.
  • [LOW] F0FUtilsUpdate had a wrong version_compare which didn't allow the automatic update to proceed
  • [HIGH] F0FUtilsUpdateJoomla could not detect Joomla! updates due to changes in Joomla! XML update sources

Testing Instructions

After applying the PR make sure that the two core features using FOF still work.

  1. Two Factor Authentication feature works. Espeially for @brainteeman : If you don't remember how TFA works please RTFM that I kindly provided back in 2012 https://docs.joomla.org/J3.x:Two_Factor_Authentication
  2. The Post-installation Messages component. Install a BRAND NEW copy of Joomla!. Log in to the Administrator. You will see some post-installation messages. Make sure you can still dismiss them. Especially for @brianteeman : Since that core component may still have bugs and you have a propensity to bumping into bugs please make sure that any bugs you spot are NOT reproducible in plain old Joomla! 3.6.2. If they are please file a different GitHub issue and at-mention me.

Documentation Changes Required

None.

avatar joomla-cms-bot joomla-cms-bot - change - 19 Aug 2016
Category Libraries External Library
avatar nikosdion nikosdion - open - 19 Aug 2016
avatar nikosdion nikosdion - change - 19 Aug 2016
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 19 Aug 2016
Labels Added: ?
avatar brianteeman
brianteeman - comment - 19 Aug 2016

thanks for the update.

Quick question - there have been a few reports in recent weeks of some missing strings and other stuff with f0f but because you had said it was unsupported they were not dealt with.

avatar brianteeman
brianteeman - comment - 19 Aug 2016

@wilsonge I am confused now why you have been asking for people to rewrite the existing plugins to not use fof

avatar nikosdion
nikosdion - comment - 19 Aug 2016

Can you please link me to the reports for missing strings? Most likely it's some extension not loading FOF's language strings or FOF's language strings are not being in Joomla translation package.

Regarding the core TFA plugins, since Joomla! 4 will NOT include FOF there's a good reason to decouple them. Luckily for @wilsonge , the code I've written for the FOFEncrypt package can be easily ported into the CMS library package (e.g. JAes) without many changes. If you're interested I can do it. The code is GPL2 and I've signed the JCA a long time ago so it should all be fairly straightforward. I just don't know if it makes sense to PR against staging or a different branch. Any feedback on that welcome (even on sidechannels – let's leave this issue's conversation clean).

avatar wilsonge wilsonge - change - 19 Aug 2016
Status Pending Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 2016-08-19 18:54:50
Closed_By wilsonge
avatar wilsonge wilsonge - close - 19 Aug 2016
avatar wilsonge wilsonge - merge - 19 Aug 2016
avatar zero-24
zero-24 - comment - 19 Aug 2016

@wilsonge can you add the Milestone please?

If you're interested I can do it.

FYI: To not waste your time ?

#11553
#11546

avatar brianteeman
brianteeman - comment - 19 Aug 2016

The missing strings were listed in this issue #10798

avatar nikosdion
nikosdion - comment - 21 Aug 2016

@brianteeman These language strings are in the optional installation script class. Even if they are not translated they are the headers (Extension and Status) of the table listing installation success. Further to that, developers shouldn't really use that method to deliver multiple extensions in a single file since there are Package type packages. That's why I never bothered to change those strings. Not to mention FOF 2 is EOL.

If someone really wants to use the installation script they should use the currently supported version of FOF, 3.0. There are no untranslated strings there.

avatar brianteeman
brianteeman - comment - 21 Aug 2016

I don't care. That was the report.

Add a Comment

Login with GitHub to post a comment