------------ Description ------------ Update Notify is two modules: a "client" and a "server". The client, to be enabled on all sites that are to report to the central tracker, sends a list of installed modules and their status to the tracking site via xmlrpc when cron is run. This information is taken from the update status module. The server component, enabled on the tracking site, receives these lists from all the clients and creates nodes for each module. These nodes will then get updated everytime the cron is run on the tracked sites. For the tracked sites to have the right to create these nodes, the keys of the tracked sites need to be entered into the tracker site. ------------ Requirements ------------ - Drupal 5.x - update status module (http://drupal.org/project/update_status) should be installed and enabled. - For the client, cron is required (more details below). ------------ Installation ------------ - Copy the entire update_notify directory into your modules directory (e.g. sites/all/modules). - Enable the server (on tracker site) or the client (on tracked sites) module, depending on which site you are, in the Modules admin page: Administer > Site building > Modules ------------- Configuration ------------- Configure client(s): - Go to the configuration page and set the xmlrpc address of the remote site. Administer > Settings > update_notify_client (e.g. http://trackeDsite.example.com/admin/settings/update_notify_client) - Copy the drupal key somewhere your gona need it later. - Add the XML-RPC URL of the server/tracker site (e.g. http://trackeRsite.example.com/xmlrpc.php) - Repeat this step for each site you want to track. Configure server: - Create a new update notify site with the name of the remote site and the key that you copied earlier. Create Content > Update notification site Run cron on client site(s): - Run the cron on the remote sites by visiting cron.php (e.g. http://trackeDsite.example.com/cron.php) or wait until cron is automatically run. - Repeat this step for each site you want to track. Testing: Once cron has been run you should see new nodes in the tracker site with the status of each module on the tracked sites. -------------------------------- Collaboration with other modules -------------------------------- - Poormanscron (http://drupal.org/project/poormanscron) Since the update_notify module requires that cron be run regularly, you'll need to have a cron job setup for your site. If your site doesn't already have cron running on a regular basis, and you don't have the possibility of crreating a cron job via your host's control panel or system administrator, you can install the poormanscron module to replicate this functionality. - Views (http://drupal.org/project/views) If your tracker site has the views module enabled, you can use import the following view definition to create a page with the list of avaiable updates. THE FOLLOWING SECTION IS A WORK IN PROGRESS $view = new stdClass(); $view->name = 'remote_module_status'; $view->description = 'Module status for remote sites'; $view->access = array ( 0 => '3', 1 => '5', 2 => '4', ); $view->view_args_php = ''; $view->page = TRUE; $view->page_title = 'Module status for remote sites'; $view->page_header = ''; $view->page_header_format = '3'; $view->page_footer = ''; $view->page_footer_format = '3'; $view->page_empty = ''; $view->page_empty_format = '3'; $view->page_type = 'table'; $view->url = 'maj'; $view->use_pager = TRUE; $view->nodes_per_page = '999'; $view->sort = array ( ); $view->argument = array ( ); $view->field = array ( array ( 'tablename' => 'update_notify', 'field' => 'site', 'label' => 'Site Web distant', 'sortable' => '1', 'defaultsort' => 'ASC', ), array ( 'tablename' => 'update_notify', 'field' => 'module', 'label' => 'Nom du module', 'sortable' => '1', ), array ( 'tablename' => 'update_notify', 'field' => 'status', 'label' => 'Status', 'sortable' => '1', ), ); $view->filter = array ( array ( 'tablename' => 'node', 'field' => 'type', 'operator' => 'OR', 'options' => '', 'value' => array ( 0 => 'update_notify', 1 => 'update_notify_module', 2 => 'update_notify_site', ), ), ); $view->exposed_filter = array ( ); $view->requires = array(update_notify, node); $views[$view->name] = $view; ------- Credits ------- Written by Patrick Hetu (patrick@koumbit.org) With the help of Robin Millette (robin@millette.info) and Yann Rocq (yann@koumbit.org) Testing and documentation Omar Bickell (omar@koumbit.org) and Marc Angle (marco@koumbit.org)