Overview
We are working on integrating Algolia search into OJS. Ideally, we’d like to do this through a plugin so that it could be shared with others. In a forum post (OJS 3 - advance search - #8 by asmecher) we found a plugin that looks like it will get us most of the way there (GitHub - fostermadeco/ojs-algolia: Plugin integrating OJS and Algolia).
Upon installing it however, we ran into some PHP errors that I’m not sure how to parse. My hope is that:
- Someone that has experience with plugins may be able to figure out the specific issue.
- We may eventually get to a place where an official Algolia plugin is possible.
Steps to Reproduce
- Download/clone repo: GitHub - fostermadeco/ojs-algolia: Plugin integrating OJS and Algolia
- Pack into .tar.gz
- Upload through the plugins manager
/management/settings/website
- UI will become unresponsive, with spinners non-stop. Try accessing Installed Plugins, and you’ll just get spinners. The Plugin Gallery will still work fine. Similar to [OJS 3] Plugins Tab doesn't load but with a more specific cause.
- Deleting the plugin folder instantly fixes the issue.
Logs
error.log
[Fri Feb 19 20:17:10.402218 2021] [php7:error] [pid 2378] [client 70.66.230.254:64502] PHP Fatal error: Uncaught Error: Call to undefined method AlgoliaPlugin::getTemplateResourceName() in /var/www/html/plugins/generic/algolia/AlgoliaPlugin.inc.php:340\nStack trace:\n#0 /var/www/html/lib/pkp/classes/plugins/Plugin.inc.php(367): AlgoliaPlugin->getTemplatePath()\n#1 /var/www/html/lib/pkp/classes/plugins/Plugin.inc.php(118): Plugin->_registerTemplateResource()\n#2 /var/www/html/lib/pkp/classes/plugins/LazyLoadPlugin.inc.php(28): Plugin->register()\n#3 /var/www/html/plugins/generic/algolia/AlgoliaPlugin.inc.php(41): LazyLoadPlugin->register()\n#4 /var/www/html/lib/pkp/classes/plugins/PluginRegistry.inc.php(69): AlgoliaPlugin->register()\n#5 /var/www/html/lib/pkp/classes/plugins/PluginRegistry.inc.php(144): PluginRegistry::register()\n#6 /var/www/html/lib/pkp/classes/plugins/PluginRegistry.inc.php(214): PluginRegistry::loadCategory()\n#7 /var/www/html/plugins/generic/customLocale/controllers/grid/CustomLocaleAction.inc.php(22): PluginRegistry::loadAllPlugins()\n#8 /var/www/html/plugins/generic/customLocale/controllers/grid/Cu in /var/www/html/plugins/generic/algolia/AlgoliaPlugin.inc.php on line 340, referer: https://journal.bahaistudies.ca/online/management/settings/website
[Fri Feb 19 20:17:10.508306 2021] [php7:error] [pid 793] [client 70.66.230.254:64499] PHP Fatal error: Uncaught Error: Call to undefined method AlgoliaPlugin::getTemplateResourceName() in /var/www/html/plugins/generic/algolia/AlgoliaPlugin.inc.php:340\nStack trace:\n#0 /var/www/html/lib/pkp/classes/plugins/Plugin.inc.php(367): AlgoliaPlugin->getTemplatePath()\n#1 /var/www/html/lib/pkp/classes/plugins/Plugin.inc.php(118): Plugin->_registerTemplateResource()\n#2 /var/www/html/lib/pkp/classes/plugins/LazyLoadPlugin.inc.php(28): Plugin->register()\n#3 /var/www/html/plugins/generic/algolia/AlgoliaPlugin.inc.php(41): LazyLoadPlugin->register()\n#4 /var/www/html/lib/pkp/classes/plugins/PluginRegistry.inc.php(69): AlgoliaPlugin->register()\n#5 /var/www/html/lib/pkp/classes/plugins/PluginRegistry.inc.php(144): PluginRegistry::register()\n#6 /var/www/html/lib/pkp/classes/controllers/grid/plugins/PluginGridHandler.inc.php(155): PluginRegistry::loadCategory()\n#7 /var/www/html/controllers/grid/settings/plugins/SettingsPluginGridHandler.inc.php(36): PluginGridHandler->loadCategoryData()\n#8 /var/www/html/lib/pkp/classes/controllers/ in /var/www/html/plugins/generic/algolia/AlgoliaPlugin.inc.php on line 340, referer: https://journal.bahaistudies.ca/online/management/settings/website
[Fri Feb 19 20:17:10.689344 2021] [php7:notice] [pid 794] [client 70.66.230.254:64500] ojs2: 404 Not Found
access.log
70.66.230.254 - - [19/Feb/2021:20:17:10 +0000] "GET /online/$$$call$$$/grid/settings/plugins/settings-plugin-grid/fetch-grid?_=1613765829408 HTTP/1.1" 500 4118 "https://journal.bahaistudies.ca/online/management/settings/website" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
70.66.230.254 - - [19/Feb/2021:20:17:10 +0000] "GET /lib/pkp/lib/vendor/tinymce/tinymce/skins/lightgray/skin.min.css.map HTTP/1.1" 404 447 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
Possible Issues
So it seems like the most relevant issue here is:
PHP Fatal error: Uncaught Error: Call to undefined method AlgoliaPlugin::getTemplateResourceName() in /var/www/html/plugins/generic/algolia/AlgoliaPlugin.inc.php
You can find the line here:
return $this->getTemplateResourceName() . ':templates/';
There are also some other errors it seems. I don’t have the adequate experience with the plugin system needed to figure out why this would through an error.
Environment
OJS Version history
Version | Major | Minor | Revision | Build | Date installed |
---|---|---|---|---|---|
3.2.1.2 | 3 | 2 | 1 | 2 | 2021-01-19 |
Server Information
Setting Name | Setting Value |
---|---|
OS platform | Linux |
PHP version | 7.4.3 |
Apache version | Apache/2.4.41 (Ubuntu) |
Database driver | mysqli |
Database server version | 8.0.23-0ubuntu0.20.04.1 |