Could anyone please tell me why CMSPage.OnBeforePageInit event is not getting called for non-admin pages? It is getting called only for admin pages.
It is because CMSPage is used only for administration pages:
"Base page for all CMS administration UI pages"
and it is not part of public pages.
Ok, so is there any event which will be called during public page load?
You can use Global Requests Events to handle the page requests. This will call multiple times for images and other things, you need to filter out the requests based on your requirement and write your logic there.
Please, sign in to be able to submit a new answer.