There's still more before we're clear - need to adjust icms/ipf/About.php
I just installed Madfish's News module to test based on this thread and found another spot in the core to adjust. I've committed the fix and it's in my pull request.
There are quite a few more occurrences of $icmsModule throughout the core. In some cases, it is also being assigned, so it is a valid use. Rather than go though all 240 instances, I'm focusing on the results I get with some key functions and modules.
As of this point, I have tested these modules with the upcoming New 2.0 release
Most of what remains is going to have to be done in the modules.
PHPMailer is going to need an update, which I've got staged locally and doing a basic test before committing. I'll put that in another PR.
Here is the main pull request - https://github.com/ImpressCMS/impresscms/pull/1430 - and my working branch - https://github.com/skenow/impresscms/tree/1.5.x-PHP7-strict
Well, something to add to another release - finish this feature. For now, I'm not going to worry if it works in the new release, as it has nothing. Maybe we should add something to the page that it is under development and provide a landing page for feature discussion and development.
BTW - the Preview function does not work here. The page reloads, the editor area is empty, and there is no preview.
That is correct, it never got finished and as a result has never been used. I proposed a few years ago to remove it from the core until we had a working solution, but I got some resistance to that idea.
The description from Tom is more or less what I would expect it to do in its basic form : you have a calculated value that is updated each time someone votes, and that value is the one that is retrieved at display time. Each user should have a list in his user profile with all the votes that he cast. Perhaps it would be a useful feature to let admins determine if votes can be changed once cast, or even removed. A rating type would be interesting to have : for example when rating a module, you can define that there are multiple ratings that you want to capture : ease of installation, feature set, compatibility with existing modules, ... That means that you need to be able to link the vote to an object, and also define for this type of object which categories of votes can be cast.
A good place to integrate this would be the downloads module (which has other issues), there the voting
Going through the upcoming release and making sure everything still works - it looks like we never finished this. The wiki page has moved - it's now at https://www.impresscms.org/modules/simplywiki/index.php?page=Ratings
If anyone has an example of this and how it was intended to be used, that would be great! It came from SmartObject
the removal of the $icmsModule variable was part of the cleanups that were marked as 'to remove in 1.4' I remember. The fix for the modules should be to use icms::$module if I'm not mistaken.
The global variable that was coming up empty was $impresscms (and sometime $icmsModule). I'm not sure where the disconnect occurred. It may have been assigned an old variable somewhere. Better to figure it out now.
It is true that I did some major cleaning up of supposedly no-longer used attributes and functions in the core. Normally tests should have shown regressions, but no manual test is faultless I'm afraid.
The missing global is strange, I didn't change anything concerning that, as far as I know the content module did work during my latest tests.
Found the sorting issue - a global was no longer available and needed to be replaced with icms:: static object. Discovered it as I was testing with the Content module - the admin page for it would not load after installing.
Some additional findings that are not add-in library specific: sorting tables by clicking on the header link in a column is not working for custom tags, ratings, symlinks (pages), block positions, blocks, mimetypes, autotasks, and userranks. I verified these are working in 1.4.4. Trying to track it down now. I'm suspecting something with the IPF table class or filtering in the admin panel. What's missing in all of the links is "fct=" and the object name.
Currently working through some of the PHP7+ errors and requirements and removing some things that aren't used, at least in a new install (msyql support during install, for example). I've been testing with PHP7.0 to start with.
Just navigating through the administration panel, the version checker does not work on PHP7.0. The version of SimplePie (1.8) now in this release requires PHP7.2. SimplePie 1.7 will run on PHP7.0 and will also run on PHP8
Later than planned, but here is a first try : https://github.com/ImpressCMS/impresscms/pull/1429
That's certainly a viable solution. I'll take care of that this evening.
I was thinking along the lines of using the existing UA field and having it do some double duty. Do nothing and we assume, based on the format of the tag, that it's for UA. If you have switched to GA4, include the G- at the beginning of the tag and we'll load the proper snippet.
Using the preloads is a good idea - I think we should go that route for this round. The next phase will be to find a better way to insert and manage them from the control panel.
Short term : can't we simply add an extra field to the ACP where users can put their GA4 number? That would allow both Universal Analytics and GA4 to coexist for the time being.
The idea of custom tags it not bad, but configuration of these features should always be kept limited to the ACP, so even if you define a custom tag to include GA4 or Fathom or any other service, we will need to figure out a way to define these identifiers freely in the ACP as well.
I was thinking - Custom Tags already provides a lot of the flexibility to add other snippets anywhere. What it still requires is a way to insert your tag without having to manually edit a template, if you want something to be in the header of your pages. If it can go in the body, you're set.
I think turning this into module would be a great idea.
Yes, many use Google but not everyone. Sometimes other analytics tools are better.
This could turn into a whole lot of different scenarios and options to handle through the core admin UI. Or, we can add documentation on how to add preloads that each admin would need to customize before deploying on their sites. Even now, I think of a preload generator that would allow an admin to paste in the code snippet from the other provider, select where it loads, and be able to manage it that way. That's for a later release.
For immediate consideration is what do we put into the new 2.0 release? My first reaction is to keep it simple - provide a GA4 preload template that admins can customize with their tag and include on their sites. The UA portion would remain and not interact with the GA4 plugin. Admins would need to determine the impact of having both active on a site. We deprecate the UA code with this release and move towards a more easily customized solution, removing the UA portions in a later release this year.
Universal Analytics will be deactivated in a few months. If your site uses it, you will have received already quite a few reminders about moving to Google Analytics 4. But keep in mind that the data cannot be transferred.
Sunsetting a product is always a risk to retain users, as at that moment you force them to think about their needs, and perhaps they arrive at the conclusion that their needs are better met elsewhere.
ImpressCMS has been solely supporting UA in the past (we even come from the predecessor, but that's a long time ago). Perhaps in the future we should look into opening up this interface and making it possible to easily add new analytics products, and to have multiple analytics options simultaneously active.
But for now, let's make it so that users are supported in migration from UA to GA4