One of Advanced Mobile Contributions project requirements is tag user actions with advanced mobile edit tag.
The AMC tag should be applied under two conditions:
- the user acts in mobile web view
- the AMC mode is enabled in Special:MobileOptions page
If those two conditions are fulfilled we want to log actions listed below:
- blocking & unblocking
- delete article entries
- review changes (PageTriage extension)
- thanks (Thanks extension)
- moving pages
- protecting pages
- pending changes
The only place where we can define tags is the place where ManualLogEntry object is created and inserted to the database. This would cause a hard dependency between MediaWiki Core/PageTriage/Thanks extensions and MobileFrontend extension (where the Advanced Mobile Contributions mode lives).
Most probably we should use Hooks system, and MobileFrontend should listen to InsertLog hook and inject tags. There are two possible ways of doing that:
- call the hook inside the ManualLogEntry::insert()) method, most probably this will require a bit of refactoring
- create hooks for each log entry point, and make MobileFrontend listen to all newly created hooks
Note: Some of the logs (like block log) can already contain the advanced mobile edit tag. Some actions during ManualLogEntry apply the set of tags applied to related RecentChange object. AMC is using the RecentChangeSave hook to apply advanced mobile edit tag, which then is applied to the Log entry. The tagging system should take care of that and apply only one tag.