Describe the issue or problem
Profile shows blank page after some browsing. It seems like this problem is caused after changing language of the OJS system (but I’m not 100% sure)
Cleaning cache from activity panel solves the problem… but this is happening over and over again and I can’t keep cleaning cache over and over again.
Are you able to check your PHP error logs and report on error messages found there? That typically provides more clues as to what is occurring. If unsure of how to check your error log, please see this post here: How do I find my PHP error log?
After some time studying the errors log, think I found the problem.
fatal smarty error. The log line (repeated at least 8 times during the day):
[14-Oct-2025 23:56:15 America/Fortaleza] PHP Fatal error: Uncaught → Smarty: undefined extension class ‘Smarty_Internal_Method_SmartyHelp’ ←
thrown in /home3/pedr7410/public_html/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_undefined.php on line 62
Once I’m not really some expert, asked GPT to analyze the log line:
Summary
Root cause
This error originates from Smarty’s internal method resolution system.
In OJS/PKP, the SmartyHelp class (method handler for contextual help links like the “?” icons) is registered internally by the template manager. However, in this installation the Smarty runtime attempts to call:
Smarty_Internal_Method_SmartyHelp
but the corresponding PHP class file cannot be found or loaded.
Or, after certain plugin or template updates, the template cache keeps a reference to the now-missing extension class.
In all these cases, Smarty tries to call an internal method that doesn’t exist in the current runtime environment.
Temporary workaround
Manually clearing the OJS cache (especially /cache/t_compile/ and /cache/t_cache/) forces Smarty to recompile templates, which removes the stale reference.
That’s why the blank page disappears after clearing cache — but the problem recurs whenever the compiled template cache becomes invalid again.
If missing, restore it from the original OJS 3.5 distribution or from a clean smarty/ package (version 4.3.x used by PKP).
If present, ensure correct file permissions and ownership.
Clear all OJS caches:
This ensures Smarty will regenerate compiled templates with the valid method registry.
(Optional) If contextual help is not used, you can disable it in config.inc.php:
[general]
enable_help = Off
This prevents Smarty from calling the SmartyHelp method at all.
Looks like it found the error and the solution. I just don’t have enough knowlege to confirm this will work.
If I had to guess, I would suspect you have some template .tpl files that still contain references to a Smarty extension that’s been removed. Is it possible that when you upgraded to 3.5 you somehow left some .tpl content from 3.3 or 3.4 in place?
The error message should contain more text that identifies the exact file; if you can post that I can possibly identify the template to look in. But if you need to search, look for a .tpl file that contains the text {help in it.
Regards,
Alec Smecher
Public Knowledge Project Team
@asmecher Thx for your help, I did what you suggested: looked for a .tpl file that contains the text {help in it.
Think I found the problematic lines.
I did not update my OJS, it was installed from scratch the 3.5.
After analyzing the OJS package (version 3.5.0), I found that all {help …} calls — which trigger the “Smarty: undefined extension class ‘Smarty_Internal_Method_SmartyHelp’” fatal error — come exclusively from the openid plugin (that I indeed use).
These templates still reference the old Smarty {help} extension that was removed in OJS 3.5:
Ah, yes – it appears that adaptations from 3.4.0 to 3.5.0 were not completely made ino those template files. I’ll notify the developer maintaining that plugin, and meanwhile, you can just delete those lines from the template files.
Regards,
Alec Smecher
Public Knowledge Project Team