Documentation doesn’t include exact steps for that, only general information for developers about writing a plugin for OJS: https://docs.pkp.sfu.ca/dev/plugin-guide/en/
If using that as a template and through, e.g., this hook: pkp-lib/PKPTemplateManager.inc.php at b84a274742369313fe90b246487f672e3fcc5a10 · pkp/pkp-lib · GitHub, I think it’s possible. E.g.:
public function register($category, $path, $mainContextId = NULL) {
$success = parent::register($category, $path);
if ($success && $this->getEnabled()) {
HookRegistry::register('TemplateManager::display', array($this, 'doSomething'));
}
return $success;
}
public function doSomething($hookName, $args) {
$smarty = $args[0];
$smarty->unregisterPlugin('function', 'html_select_date_a11y');
$smarty->registerPlugin('function', 'html_select_date_a11y', function($params, $smarty) {
// Write your custom code here
});
return false;
}
Maybe it’s redundant to unregister plugin, I don’t know. But it gives a general sense. Docs about registering functions to Smarty: https://www.smarty.net/docs/en/api.register.plugin.tpl