The Planned Parenthood Minnesota Action Fund is proud to announce our new Drupal based website: http://www.ppmaf.org

We selected Drupal for ease of use, clean output, community-oriented features, and an active support community. As a non-profit organization, we need to be careful of total cost of ownership of open-source software. Drupal breaks the rule that open-source software necessitates having an extensive technical staff on-site. Staff did all the work in-house.

Theme:
The theme is a custom theme, originally based on argeebee. We selected a CSS based theme for graceful degradation and clean output. The theme is not yet ready for public release, as it makes some assumptions within the code and does not rely on the standard logo, etc. These changes are mostly cosmetic, and we will attempt to release a public, GPL version of the theme as time permits.
Modules:
This site uses two custom modules.
  • GetActive: Our organization uses GetActive to provide constituent relationship tools (blast email, advocacy campaigns, fundraising, etc). The sign up form block is provided by a custom getactive.module. This module is pretty rough around edges, but we have plans to upgrade it in the near future.
  • Referertools: We need to provide intermediate "pop-up" windows depending on the HTTP referer of each visitor (pop ups in this context do not mean new windows, but rather pages that appear and automatically redirect to the requested page after some number of seconds). To accomplish this goal, we have created a custom referertools module that provides intermediate pop-up windows. We hope to have this in Drupal.org's CVS very soon. For an example of this module, just visit the site using the link in this post. We have configured a pop-up for Drupal.org.

We also use the following contrib modules:

  • Actions
  • Contact_list
  • Excerpt
  • Gsitemap
  • Image
  • Img_assist
  • Insert_block
  • Insert_view
  • Mimemail
  • Pathauto
  • Print
  • Send
  • Send_block
  • Urllist
  • Views
  • Workflow

We would like to thank all developers, documentation writers, forum visitors, and anyone else who contributed to the success of this site. Thank you.

Comments

edrupalec’s picture

M,
It looks nice. Thanks for sharing. We put it on our list of top Drupal sites.

a couple of questions
1) how did you choose your modules? for example, you use send instead of forward. is there a list of modules you tried and decided not to use?
2) you are using pathauto. do you have any concerns about scalability? what is your load like?

thank you.
-----
Drupal ecommerce, at www.drupalecommerce.com is a new site written using language that Drupal beginners and intermediate users can understand. Quick links to "Modules."

mfredrickson’s picture

My module selection process goes as follows:
1. Visit any project pages that seem interesting
2. Check the CVS message log. If there weren't any recent messages, or any messages indicating 4.7 compatibility, I skipped the project. (I would often check the issues too to see what problems people were having.)
3. Downloaded the module to my local dev install.
4. Played around with it.
5. If I couldn't get it to work the way I wanted in 15min I would either find a similar project or drop it.

I was given a pretty free hand to set the specs and choose the features of this project. I did write a spec early on and would occasionally refer to it. In the end, I dropped a large portion of the spec - not an unusual process in software development.

To answer your specific questions:
1. I chose send over forward because I know the author. Also, I am working on some CiviCRM projects, and I was using send as a basis to understand CiviCRM (it integrates). In the long run, I would like to harness the CiviCRM aspects.

2. I am guardedly optimistic about scalability. I know 4.7 has had some improvements to the path system. I am hoping that these will help me overcome the scalability problems associated with providing a path to every node. Good SEO and readable links are more important right now than scalability. As the site matures, I may have to revisit this issue, but for now I have bigger fish to fry.

I hope this helps,
-mark

--
http://www.ppmaf.org

edrupalec’s picture

Mark,
thank you very much. That was useful. Would you mind sharing a list of modules that you tried and didn't use? Feel free to private message me if you don't want to post that. Trying modules certainly can take up a lot of time. Thank you.
-----
Drupal ecommerce, at www.drupalecommerce.com is a new site written using language that Drupal beginners and intermediate users can understand. Quick links to "Modules."

mfredrickson’s picture

To be honest, I don't remember which modules I tried and dropped. You can do so much with the views module that it immediately displaced everything else. It is really a must have for all sites.
--
http://www.ppmaf.org

edrupalec’s picture

-----
Drupal ecommerce, at http://www.drupalecommerce.com is a new site written using language that Drupal beginners and intermediate users can understand. Quick links to "Modules" and "Module Groupings."

radiofranky’s picture

Hi,
what module did u use to achieve the middle portion of your node?
multi column listing?

could u share it?

thanks

mfredrickson’s picture

The home page uses this technique twice: http://drupal.org/node/44596

First, the main body content is split into two sections: "above the fold" and "below the fold".

The above the fold nodes are printed out.

Next, the same concept is applied to the right sidebar blocks. In this case, after every three blocks a <div class = "clearer"> is inserted (see http://www.complexspiral.com/publications/containing-floats/). The blocks are floated to the left in the CSS and the width is set to slightly less than 33% (dang IE). This creates a CSS design that looks like a table.

Next the left sidebar is floated to the left and the "below the fold" node text is printed out.

Here are the functions that make the magic happen:



function ppmaftheme_contentsplitter($incontent, $delimiter, $headlength)
{
  $outcontent = array();
  
  $tmp = explode($delimiter, $incontent, $headlength + 1);
  
  for ($i = 0; $i < $headlength; $i++) {
    $outcontent['head'] .= $tmp[$i];
  }
  
  $outcontent['tail'] = $tmp[$headlength];
  
  return $outcontent;
}

function ppmaftheme_blockclearer($inputtext, $delimiter, $chunksize, $inserthtml = '<div class="clearer">&nbsp;</div>')
{
  $units = explode($delimiter, $inputtext);
  $units_size = count($units);
  
  for ($i = 0; $i <  $units_size; $i = $i + $chunksize) {
    for ($k = 0; $k < $chunksize; $k++) {
      $output .= $units[$i + $k];
    }
    $output .= $inserthtml;
  }
  
  return $output;
}

If you view the page source you will see the HTML comments that serve as delimiters between the blocks and the nodes.

Hope this helps.
-Mark

--
http://www.ppmaf.org

radiofranky’s picture

i will give it a try

kozuch82’s picture

----
StandyGames.com - Quality, cross-platform free game downloads!