packgr is a multistep installer for Drupal 6 that allows the selection and configuration of multiple 'Packages' upon installation of a new Drupal site.
How it works
It is implemented as an install profile, which a user can choose upon installing a new instance of Drupal. Upon completion of the basic site configuration information, the user is given a change to select multiple 'Packages' which can define multiple tasks, forms, and modules to enable. The installer than walks the user through each step of each package, presenting forms and updating the status of installed packages.
Behind the scenes
Each package consists of a packagename.inc file located in the
packgr/packages directory. This file contains two hooks, one to define the info about the package, and another to define default tasks and their callbacks. Please look at the Default package included with packgr for more examples.
These hooks are named somewhat differently from standard Drupal hooks to keep namespaces more open, and preventing conflicting function names. The format is package_package_name_info() and package_package_name_tasks(). For the default package these are named package_default_info() and package_default_tasks() and for a package named foo.inc they would be package_foo_info() and package_foo_tasks(). Any other functions in your module can be named as you wish, but keeping the package_package_name prefix is a good practice to keep your functions in their own namespace.
Drupal 6 I have the following features planned for the Drupal 6 version of this module, but to make these a possibility, please consider donating to fund development with the packgr improvements ChipIn widget.
- Integration with the Plugin Manager module to automatically download required modules.
- Better integration with the Install Profile API.
- Allow packages to be installed after initial Drupal installation is complete.
- Better integration with most popular modules, and Drupal default settings forms.
- Allow removal of packages after installation.
Drupal 7 Please see #332303: bootstrap from sqlite for the future of Packgr in Drupal 7 and beyond. With SQLite support in Drupal 7 packgr would no longer be a install profile but a full featured installer module, with much better support and integration with Drupal core. This would also enable many many more features for packgr.
Original development sponsored by OpenSourcery.