I've been trying to create an LTI subplugin in order to send the LTI provider some additional information that is not sent by default in Moodle's LTI activity (in particular, the system context role of a user). I understand I can do this by implementing the ltisource_pluginname_before_launch() callback. Is there a better way to do this rather than creating an LTI subplugin?
Also, I want to display this as a new activity in the activity chooser. Till recently, this was done using the get_types() callback. This function allowed to display new LTI activities in the file chooser while leaving the default or original one intact and still present and visible in the activity chooser. However, get_types() is deprecated and now we should use get_shortcuts(). This function seems to only allow replacing the original LTI activity by the one defined by the subplugin. This looks bad because in a typical scenario people would like (I do, at least) to have the sub-plugin modified LTI activity while the original, default LTI activity is still available for use. Is there a way to do this with get_shortcuts()?