The current version of CiviCRM is based on Drupal 4.5 (soon to be Drupal 4.6). We have made a strong attempt to integrate well with Drupal. At the same time, we've tried to be cautious with the amount of code we share with Drupal. We'd like to avoid getting into the situation where an install of CiviCRM requires an install of Drupal. We'd also like to run under other open source CMS frameworks like Mambo and Plone.
Drupal Dependencies
We currently rely on Drupal (or the host CMS) for the following functionality:
- The menuing system. This basically ties the menu structure displayed to parts of the CiviCRM code
- The user login and permissioning system. The host CMS is responsible for the roles/rights/permissions on various actions provided by CiviCRM. Note that we have not yet done any significant development with regard to permissions
- The templating system. The host CMS is responsible for building the page and displaying it. CiviCRM is one component of the entire page. In the Drupal context, we provide the main content and also have created various blocks to enhance functionality
- Themeing. We've tried to make sure our code is as themable as possible.
- CiviCRM uses PEAR libraries for a large part of the framework. More information can be found at http://objectledge.org/confluence/pages/viewpage.action?pageId=1928
- Feel free to download and look at the code. Instructions are at: http://objectledge.org/confluence/display/CRM/Installation+Guide+for+Developers
- Note that most of the drupal specific code is under modules and themes. CiviCRM uses Smarty as a templating engine and the relevant code to integrate Smarty with Drupal is in this folder (it is also in the drupal cvs contributions)
Labels:

2 Comments
Hide/Show CommentsApr 22, 2005
Michael Spredemann
I'm all for helping out where I can to get CivicCRM working with Mambo. When I get a few free momments I will dig into the code and see what I can see. Let me know if there is anything specific that I should be looking at.
Apr 22, 2005
Donald A. Lobo
hey michael:
that was a quick reply. would be great if you could download our code and take a quick look at it.
also to enable me to move forward, would help if u could let me know:
1. what version of mambo to use
2. some simple external module integration example (i.e. pointers to links/documentation/code)
3. related to 2, how do we create menu's and link them to our code under mambo
4. how could we potentially continue using smarty in the mambo framework
if easier, we can have an IM chat sometime soon