Rather than performing complicated upgrade procedures from the old (broken) logic in three activity modules, we are adding new capabilities to those three modules to make them all consistent, and using them in a callback from the Ratings API. This is the same as the Comments API.
The downside is that two sets of capabilities need to be enabled for ratings to work. Hopefully this can be mitigated somewhat when build some sort of shortcuts on the module settings forms to set capabilities. In the meantime, the effect is reduced somewhat by having all the rating capabilities enabled by default for student and teacher roles. This means control is in the hands of whatever the modules have set, giving very close backward compatibility.
This is not the perfect solution, but neither were the other two.
From now on, all English strings use the new syntax. They are not
eval()'ed any more and the only valid placeholders are {$a} and
{$a->foobar}. No extra quotes escaping, dollar sign escaping and putting
double percent signs.
The modified files were exported from AMOS database repository in the
new syntax and were re-ordered by stringid. Standard GNU/GPL and PHPdoc
blocks are added. Where there was no copyright note so far, I added the
default one with Martin Dougiamas as the copyright holder.
Live long and prosper.