The topic I above linked simply doesn't show anymore what I meant to say because the poster right after I solved its issue decided to edit and removing the screenshot from there, the one that's mentioned by me as "clear and visual". Back to this, sure thing it's what you said and sure thinghs are what Javier said as well.DavidIQ wrote: ↑Sat Jan 14, 2017 3:28 amI think that for the actual issue javiexin is talking about that the likely solution would have to be that is_enabled should return true only if is_available also returns true, which appears to be in the mentioned pull request.
I highly doubt any of this would prevent the error reported and caused by that user though. phpBB already tries to get around it, but if the code is used by that specific area of the ACP there's little that the system could do. Plus making the system work after a user deliberately deletes system files is not something that really needs to be handled nor can it be handled very well in all cases. It's just like if a Windows user deleted some files from the Windows/System32 folder causing the system and programs to malfunction. That's hardly the fault of the operating system and entirely the user's fault. In such a case the recommendation from most technicians would be to reinstall Windows or the affected software. In our case it would be to try and reinstall the extension or, in extreme cases, the entire forum.
But, if an extension has been erroneously deleted from the the ext folder as its whole by the Noobuser that doesn't mean IMO that we shouldn't do something to prevent such operation, I mean amend in this case.
Think about how many users do/did that, that's why I created such a mini how-to to let them get back to the ACP and have one more chance to fix their own boards.
Something has to be done and put in the dormant status those ext when something like that happens instead of purpose a merely board-wreck in the middle of the ocean.
You could simply reproduce that screenshot renaming the composer.json file of an extension right after having it hard-disabled via the DB, though.