-
Notifications
You must be signed in to change notification settings - Fork 426
Closed as not planned
Description
Main aims:
- Multi-site compatibility
- Fix conflicting UI messages for usage in themes / plugins
- Improved UI by having the admin page always in the same location
- Updatability of TGMPA independently of the plugin/theme which ships it
- Show dependencies more clearly
- Provide translations of the TGMPA strings under own text-domain.
Basic architectural choices:
- Integration of the Plugin Dependencies (PD) plugin which will provide UI for dependency management and cascading deactivate if dependencies are not met.
- Ship as a bootstrap file + zip of the main plugin. The bootstrap will check if TGMPA is installed as a plugin and use that if possible and will fall back on the zipped version if not. By default both TGMPA as well as PD will now become required plugins. We can make the "Known Plugin Dependencies" plugin a low priority recommendation/suggestion.
- Registration of dependencies/recommended plugins should now be done through an activation hook rather than through a call on every (admin) page load. This will make the plugin leaner and will allow us to set a site option with all dependencies which can be read-out for the network admin.
- TGMPA will have it's own top-level admin page for a streamlined experience whether included in a plugin and/or theme.
- The plugin will be split into PSR-4 compliant classes.
- The new v3 version will have as a minimum requirement WP 3.8.5 (or higher if development shows we need that), PHP 5.2.4 (inline with WP minimum requirements) with the PHP SPL extension enabled (for spl_autoload).
Tentative indication of OOP direction this list is still liable to change without notice and is in addition to the existing classes:
TGMPA_Pluginclass which holds the properties passed for one individual plugin, can do property negotiation is both a theme as well as a plugin require/recommend the same plugin, will contain methods such asis_active(),has_update(),requires_update()etcTGMPA_Pluginsclass which holds the instances of all plugins and methods such asis_complete()TGMPA_Configclass which holds the config properties passed and can do property negotiation for conflicting properties from different sources.TGMPA_Noticesclass which will generate the admin_notices if needed.TGMPA_Executeclass which will act as a controller for requested (bulk-)actions (install/update/activate).TGMPA_Optionclass which will manage the tgmpa option which will hold the information registered on theme/plugin activate.
Action list:
- [PD] Send in PR to Plugin Dependencies to read out theme headers and work on the theme page as well
- Integrate Plugin Dependencies plugin
- Rewrite registration of dependencies to use activation hook in combination with option + provide new example
- Differentiate how certain things work for TGMPA in plugins vs themes (i.e. which hooks to hook into for force-deactivate)
- [Enhancement] Additional 'rationale' variable for each plugin #259 Add option for including themes/plugins to provide a rationale for requiring/recommending a plugin and Enhancements to the recommended/required plugins page #278 to add tags
- Additional "categories" for plugins #199, Dependency type management #267 Allow other advise type, not just required/recommended
- Write code dealing with conflicting config/plugin info provided by themes/plugins, i.e both a theme and a plugin requiring the same plugin, but for instance, providing different download locations.
- WP4.0 MU i get permission error. #228, [Develop] Fix: multisite admin menu and notices #247, [Master] Fix: multisite admin menu and notices #252 Refactor admin page code to work with the option and for multisite installs to show on network admin (install) and on site admin (activate)
- Add information to the admin page on which theme/plugin is requiring/recommending a plugin Additional "categories" for plugins #199#issuecomment-56191075 - use
debug_backtrace()to find the calling parent if TGMPA is not yet called using v3 code - Write version management code to deal with v2 versus v3
- Allow bundled version of TGMPA to bootstrap install of wp.org TGMPA plugin #273 Create bootstrap file
- Translation support #218 Make language strings more flexible / theme/plugin agnostic & create .pot file - make sure no language strings are in the bootstrap file or if they are, teach theme/plugin author about the .po exclude option
- Extend the (GitHub) readme & gh-pages with clear instructions on how to upgrade existing integrations to v3 (or rather link to a wiki page with those instructions)
- Create a readme, screenshots and image assets (icon, banner) for the WP repo plugin version
- Verify that a basic theme with TGMPA v3 will pass the theme check (probably should without issue as most code will be in the zip)
Other open issues which may or may not be included in v3:
- Check if issue Plugin activation failed message #276 (plugin activation fails in certain circumstances) is fixed after the refactor - most probably should/can be depending on how we hook into the PD plugin.
- Look into including Issue #231: Added notifications when plugins are force activated #232 - notice to admin on force (re-)activation
- Disable install link for codecanyon plugins #274 Look into allowing for a "buy" link - I'd suggest only for recommended plugins though
- update_dismiss should also run on deactivated_plugin #266 Verify that user is notified of missing required plugins (after install & then manual delete) is covered by using PD (albeit in a slightly different way)
- Dismiss notices only for optional plugins #248 Unique id on dismissable notices buggy #353 Revisit the logic of the dismissable notice
- Forced Network Activation? #204 Look into forced network activation but only if the required plugin is required by another plugin which is network activated. This does not make sense for themes as "network activating" them only makes them available to child sites.
- Add 'update_url' option for external plugins #380 Investigate including possibility of specifying a non-WP update check URL for non-WP repo plugins
- several "issues" with 2.4 release #186 Check if the angle has been taken out of this discussion by v3
Actions once 3.0 is finished:
- Submit TGMPA as a plugin to the WP plugin repo
- Put renewed gh-pages online
Post-3.0 roadmap:
- Set up TGMPA to be able to work with composer & create wiki page with instructions on how to set things up with and without it
- Add unit tests
Reactions are currently unavailable