| 1 | [[TOC]] |
| 2 | |
| 3 | = Overview = |
| 4 | |
| 5 | BOINC-Drupal integration harnesses many powerful functions of the Drupal development framework and content management system, both simplifying the management of BOINC projects and improving the end user experience on project websites. As a content management system, Drupal makes it possible for site content to be created and managed without knowledge of HTML. |
| 6 | |
| 7 | == Benefits of Drupal == |
| 8 | |
| 9 | Drupal offers a number of benefits to both project maintainers and end users. |
| 10 | |
| 11 | == Drupal Module Organization == |
| 12 | |
| 13 | The structure of any Drupal site revolves around the core functions of Drupal, third party enhancements to that core, and custom code that provides any required functionality not otherwise available by either of those established channels. This organization could be described as some combination of core, contrib, and custom modules working together to provide high level site features: |
| 14 | |
| 15 | [[Image(BOINC-Drupal_module_organization_0.9.png)]] |
| 16 | |
| 17 | Modules generally build on other modules, so a custom module to enhance part of the system may work in conjunction with half a dozen other modules in order to provide a given function. |
| 18 | |
| 19 | == Database Integration == |
| 20 | |
| 21 | The Drupal system ties into the BOINC database in order to display information for users, hosts, and teams. Most of this involves reading data only, though user profile data and preferences operate in a shared state, allowing changes to be made to the relevant BOINC table records from either the standard BOINC or Drupal enhanced web interfaces. There is also an import module that offers an interface for importing data when it is not feasible to rely on shared or read-only access, as is the case for discussion forums and private messages. The following diagram details how the BOINC database is used by the Drupal system: |
| 22 | |
| 23 | [[Image(BOINC-Drupal_dataflow_1.2.png)]] |