For a riding stable, i run and administrate a website since many years with joomla. So, i did this until a few days ago until joomla update assistant said, that my php 5.x is too old. i have contacted the provider and they moved it to a server with php 7.4.15.
Unfortunately, the frontend of the site was offline:
The error was: „Using $this when not in object context“.
The kind of the error is not joomla-like, more it is php-like as you will see Fortunately, the backend was still online. At first, i logged on to the backend and switched on (from: Nein->Ja means from No -> Yes) the debugging mode in the server settings in global configurations (the german word „Fehlersuche“ means „Debugging“), dont forget to save the new configuration:
The Debugging-Mode gives more informative data to the frontend. I changed to the frontend and pressed F5 for refreshing and i have got this site:
The special error information is this:
It seems so, that the file CMSApplication.php occurs problems and with the information in the line after, the SiteApplication.php seems also is to be involved.
I copied booth and found following code:
CMSApplication.php:
SiteApplication.php:
The line „return parent::getMenu($name, $options)“ in the SiteApplication calls the function getMenu(…) in the CMSApplication. The original error points to the kind of calling the function: „using $this when not in object“ means, that parent::getMenu is a static call. But the function getMenu in the CMSApplication is prepared to work with classes and objects and so you need an object orientated codeset for this kind of view.
I think, this error is ther since a long time (joomla version 3.3 in comments) and php 5.x was not configured to spill out error messages like this. rest assure: the error was there before, too. As a hotfix, you can comment out this line.
Type in an reason for this. Then, do a backup of the old file or rename it at serverside. Do an upload of the changed file to the server (e.g. via ftp and change the ftp-password then) and deactivate the debugging mode. Just try to click through the website frontend for seeking an further error and contact the developer (e.g. https://developer.joomla.org/security/contact-the-team.html)