On Tue, Apr 10, 2012 at 7:24 AM, Niklas Laxström niklas.laxstrom@gmail.com wrote:
Solution 1: Use the LoadBalancer to open connection to the other wiki.
- Does WikiPage support editing pages on another databases like this?
- This way we culd bypass things like blocked user/protected page
unless we check for those
No, you can't do this. There are lots of wiki-specific things going on at edit time, both from the database and from the configuration. You have to run the edit entirely within the context of the target wiki, or it might trigger false positives or false negatives for all sorts of things, like $wgGroupPermissions , $wgSpamRegex, etc. etc.
Solution 2: Use the api.php to post to the user talk page.
- Has lots of failure cases:
** Connection error/Timeout ** May need to create user account separately ** The account may be protected ** Talk page might be protected
This is a bit tedious, as you point out, but I think it's the best solution.
Solution 3: ''Suggest another solution.''
The idea is that we will create a new job in the jobqueue for each user that has to be notified (translation administrator has a special page for sending out the translation requests) and that the job will notify the user by email or posting to his/her talk page depending on what the user wants.
If all of your cross-wiki edits occur from within the job queue, maybe you could try doing the *job insertion* cross-wiki? I.e. if I do something on enwiki and that causes a notification to be sent to you on fiwiki, the code (running on enwiki) should insert a job into fiwiki's job queue, not enwiki's. Then the job itself will be doing local stuff. Of course this does require that the receiving wiki (fiwiki in this case) also have the extension installed.
Roan