BuyBlue.org is proud to announce the launch of their new web site using Drupal’s upcoming 4.7 codebase. Thanks to the many community-driven features Drupal ships with, we were able to save time and money and concentrate on the custom modules developed by matt westgate. We have also designed an elastic 3 column theme that is compatible with all major browsers and operating systems and highlights the possibilities of the Phptemplate engine courtesy John.
The new BuyBlue site was a complex challenge primarily because of the need to create a company profile containing large subsets of data and intricate relationships with other node types, and still perform well under high traffic conditions. Our site has gone through periods where we got 50K to 60K hits a day in the past. Drupal's cache API was a godsend for this, allowing us to cache anonymous as well as authenticated user views. Profiles also have different levels of user access. Some users can edit all profile content while others only a couple of fields.
You can view a few company profiles here, here and here.
We wired JpGraph into profiles for dynamic graph generation of political donations. In the future we have many more graphing enhancements planned. We also tied it all together with an email templating system to send form letters to these companies which let us harness the new flood control features in core. Much of the customization however happened at the theme level. We manipulated the presentation of taxonomy terms, appended company forums to the company profile view, and added tabs and sub-tabs to the menu navigation. Only two core hacks were made (hack 1, hack 2 involved using contact module for a sitewide contact form and privatemsg module for community messages).
Yet another interesting challenge was to import the 2.4 million election records from the Federal Election Commission containing most of the political donation data needed for the site. Matt created an FEC module for us that imports future election cycles and generates pages which analyze donation and history trends. The performance of searches against this data are surprisingly fast on our server. Currently this functionality is only available to researchers but we plan to release it to the public in the future.
And thanks to Drupal's node workflow system, we were able to ditch our previous company workflow which involved using two different systems: one for research and one for publishing. Now after a profile has been reviewed it's simply a matter of checking the 'published' box. What previously took days now takes less than an hour.
We also use the following contributed modules:
- Actions
- Banner
- Directory (revised and reborn for this release)
- Emailpage
- Excerpt
- Legal
- Privatemsg
- Taxonomy_menu
- Troll
- Urlfilter
- Workflow
We very much believe in the Drupal community and the product and we’d like to contribute some of our modules back. Matt intends to contribute and maintain the following modules:
Directory - for creating directory views as shown here and here
Stockapi - an API for grabbing and caching stock quotes from finance.yahoo.com using cron.
We plan on contributing additional modules in the future as we have a chance to make them more generic and develop new ones. If anyone has questions we'd be happy to answer them here.
Comments
that's an awesome website
that's an awesome website, nice job
I agree
Looks good. Let us know how 4.7 works out for you guys.
Very good project...
Congratulations!
That's some awesome positive action!
.
--
http://www.reuniting.info/
Healing with Sexual Relationships.
very nice site,
very nice site, Congratulations!
Absolutely Amazed
All I can say is: Behold the power of Drupal! Just shows the future of democracy is Drupal. :) Democracy 1, Big Business 0
--
Please read the handbook, search the forums, then ask...
http://drupal.etopian.net (Modules and Drupal Services)
Demonstrated what Drupal can do
Nice Job!
"We manipulated the presentation of taxonomy terms, appended company forums to the company profile view, and added tabs and sub-tabs to the menu navigation."
Could you please provide more detail on this .
As I am doing similar to what you already designed like in the following URL
http://www.buyblue.org/node/1898/view/ratings/tid/139.
Thank you in advance
A little more detail...
We used two taxonomy vocabularies for that view, one for the rating category (e.g. labor & human rights) and one for positive/negative.
The rest of what you see is code we included in the .tpl files for the theme. Based on the Term ID and the mathematical percentage of positive vs. negative articles we grab a specific image to use.
For company forums, the code simply creates a forum for each company using the title field. We modified the forum template file to hide company forums from our main forum so it wouldn't get too busy.
The tabs are also handled by the theme by running certain code depending on the arguments passed which in turn renders different pages.
Stunning site. An incredible
Stunning site. An incredible amount of thought has gone into those pages.
For the company profile with tabs, my only suggestion is that when you have clicked on almost all the tabs, it is difficult to figure out where you are since the active tab is not highlighted.
Any pointers for implementing the drop down for the ratings?
Oh, and what do you use for fax sending in the Take Action section?
Good suggestion
Good suggestion on the tabs and knowing your "location". We are planning some additional styling on the tabs to make them appear more traditional so you know where you are at any given point in time. We had a multitude of things at go-live that weren't done but we couldn't justify delaying any longer, mostly because we had a print advertising campaign launching the following week.
Re: ratings - the drop down is populated by querying the terms for a particular taxonomy vocabulary we have set up. This is all done in the theme template file.
Re: fax - we thought we were going to allow the ability to fax online but we were unsuccessful in locating a fax service that was free and reliable. We did find a few that charge per fax but we don't have the budget to use them at the moment. I'm still researching free alternatives so if anyone knows of potential solutions to that problem your input would be greatly appreciated.
Coul you please explain In Details
Hello,
We could create the tabbed page. But we could not get how to give a particular URL alias to a tabbed page. And also put the current page as active. ie the last clicked link has to be set active.
With regards,
Baburaj
What piece of code has to be added in the themes folder
Hello ,
Could you please help me giving the details regarding what piece of code has to bed added to get the currect tab active.
With regards,
Baburaj
Forums magick How-To
Really good job, one of the best good-looking and higly customized Drupal sites out there.
I'd love to have the same 'company forums' on my site, but i am no developer :( Could you please explain bit further how to get there and hide them from main forum?
A snippet of code and where to put it would be a grace!
Thank you very much,
- Marco
Awsome
Awsome web site.
Lots of added functionality that shows that Drupal is a Content Managment Application Framework (CMAF) before being a content management system (CMS).
Matt, regarding the stock API, I was thinking of doing this very thing for my stock module, like I did with the currency exchange module (i.e. an API callable by others).
Maybe I can now change my stock to use your API, and provide an option for the admin on whether they want to cache the quotes, or get them real time from Yahoo.
I will also need this API for my planned Stock Portfolio module.
Any plans on releasing this API?
--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com
--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba
Stock API will be contributed
We'll definitely be contributing the stock API for others to use and expand on. I'm not sure what timeline Matt has in mind for that though, perhaps he can comment on that here. I know he is pretty busy these days :)
rbrooks00 any update on
rbrooks00 any update on stock api
I am the maintainer
Hi
Matt Westgate asked if I can take that module over, since I wrote the stock module and can make use of it.
I plan to commit this in the near future, after I integrate the stock module with it. If, in a few weeks, you do not see it in contrib, send me an email to remind me.
--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com
--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba
Here is the stock api module
Here is the stock api module.
--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com
--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba
Store module?
You don't mention using the ecommerce module - so buybluestore.org is separate software? You don't share data or track visitors between them?
Planned for the future
The short answer is that we plan to use the eCommerce module in the future for the store. The reason why we didn't do that in this release is because the store is run by a third party vendor so we have to be sensitive to contractual issues and their resources. Implementing an eCommerce solution is also a fairly big project in and of itself, even with the excellent module :)
But, we do plan to use the eCommerce module in the future for the store and also for paid memberships to (as yet undeveloped) premium content. We also plan to use it for online donations (currently hosted by a third party).
Aside from the work involved in implementing that solution we'll have to decide if we want to take on the responsibility of dealing with credit card transactions, getting products shipped, etc.
The good thing is that we have a robust and proven module ready to go so we don't have to worry about developing something.
Mailing list management
Nice looking site - got to love those gradients and outer glows! they have been used subtly.
I have a question directly relevant to a site I am creating at the moment. How do you handle the mailing list management without requiring sign-up as a registered user? Is that custom, or am I missing a really simple module/concept? All of the modules I have looked at work with authenticated user/user roles.
It's a great feature - nobody wants the hassle of registering for a simple subscription!
BTW nice supporting text on that feature to make it a really usable piece of design
Cheers
Mailing Lists...
The mailing list is definitely an area for improvement on my list. We are using a product called 1-2-all email marketing for our mailing list and there is no contributed module integrating this into Drupal at the moment. 1-2-all isn't a free product, but it is priced pretty reasonably.
We struggled quite a bit with the mailing list problem. The options which nicely integrated with drupal are phpList and ezmlm. We felt that ezmlm was a little bit too technical for the general user population. Our users range from internet experts to casual surfers that know how to check email and browse and that's it.
I've used phpList before and as an open source product it is great, but it had some deficiencies around your ability to send "professional" mailings and stability for high volume mailings. Just sending out 5k or 10k emails seemed to take forever, now I can send 30K in about 30 minutes. When we first started we were using phpList for our mailing list and later converted to 1-2-all. The biggest problem in my opinion is the fact that the Drupal integrated version is even more scaled down than the stand-alone and there is no way to allow anonymous users to subscribe, people have to register at the site (as you have noticed in your investigation). I'm not sure if this has since changed, I was evaluating it several months ago. For us, not allowing anonymous users to sign up would be a big problem because not everyone would want to create a user. We probably could have modified the contributed module but we wanted to make as much use of contributed modules as possible and concentrate on custom modules with our time and money.
So we evaluated several mailing products and decided on 1-2-all several months ago because of some of the outstanding features combined with a reasonable price. I've been very happy with it so far and it has handled high volume mailings gracefully.
As far as the integration with Drupal we just have it in a block right now, the product generates a subscription form for you based on what fields you want to track and posts the results to its database. You can configure what URLs you want to appear for your success, error, subscribe, unsubscribe pages, etc so we simply created pages in drupal for those and the app redirects you to them.
The one thing that I really need to do is give registered users the option of subscribing or unsubscribing when they register or edit their profile. This shouldn't be hard to do I just haven't had time yet. I don't know what interest there would be from the community in using this product (since it costs money to use) but I could look at contributing a module to do this integration.
Discussion group or Newsletter???
Are you both talking about a mailing list as in a discussion group, or about a newsletter?
In the latter case, http://drupal.org/project/simplenews might be what you were looking for, and people don't need to be registered to add their email to the newsletter mailing list.
B.
--
http://www.reuniting.info/
Healing with Sexual Relationships.
now that's why we post on forums!
I have been scrolling throught the modules and searching the forums for a simple mail manager and somehow this one escaped me! It would appear to do what I need - I guess my only question would be can it handle multiple mailing lists for each user based on some checkboxes in the signup process (can't install it until I get home, so that may become obvious in time).
Thanks for the pointer!
Nice!
Now that must be new, I hadn't seen it before. I'm definitely going to have to check that out and see if we can ditch yet another piece of software :)
It looks pretty impressive based on the description. Thanks for pointing that out!
a
a
Awesome!
Awesome!, that is just superb , I would love that style on my site.
Deepesh Agarwal,
http://www.freeware-alternative.uni.cc/
Deepesh,
http://MegaLeecher.Net/
How did you do this?
See http://drupal.org/node/32363
We use menu items
We use menu items as Matt stated in his post and some heavy lifting by the theme .tpl file for company nodes.
The menu section (in part) looks like this:
$sections is an array containing the names of the various tabs, the rest is stanard node stuff.
A company is a custom node type and utilizes the main node table but most of the data resides in custom tables. The .tpl file uses a case statement to determine what should be rendered for each $section of the menu (e.g. summary, information, etc). The theme then grabs the elements it needs and displays them.
That is the high level explanation of it.
TabbedPage Module
Inspired by the tabbed approach on BuyBlue and the discussion in this thread, I have created a 'TabbedPage' node type that allows them to be arranged into tabbed groups without writing any code.
The Tabbed Page module is described and can be downloaded from my site. I have not added it to the Drupal modules page, and will not do so unless I get feedback that other people have found it useful.
If you do use it, be advised that it works for me on Drupal 4.6.3, but it is as you find it!
David Hamilton
http://www.jiffle.net/
I would like to try this out
I would like to try this out but I am unable to download the link, whether I use right-click>>Save as or click directly.
Same problem with the other module(links_similar) too.
Fixed It
Sorry, forgot that '.module' files were protected. I've replaced them with zip files.
David Hamilton
http://www.jiffle.net/
Thanks for fixing this.
Thanks for fixing this.
Could you please explain something more about the custom tables
Hello,
It would be great if you could explain in detail. the structure of the custom tables and what is that custom tables used for and where do we access those custom tables etc.
Love ya Blue!
Do you think we can adopt that old Oilers song? :-)
Wonderful job on the site -- in all ways. I especially like the "view" items.
Directory Update
We made a pretty significant style update to our directory. You can view it here.
If anyone has any questions let us know.
Would love to have the
Would love to have the improved directory module you had planned to release. Any thoughts when this will be possible?
Link to Directory Module...
Here is a link to the directory module in CVS: http://cvs.drupal.org/viewcvs/drupal/contributions/modules/directory/
This may not be exactly the same as the version on our site because a lot of that is done with the theme.
Does not seem to work
I downloaded the module and my admin module page dies. No output until I delete the directory module. What am I doing wrong?
Thanks
It probably hasn't been
It probably hasn't been converted to the post forms api version of 4.7 annd it is breaking the settings page of the site. I'm not sure, that is just a guess. We'll hopefully be doing a full upgrade soon.
============================================
BuyBlue.org
Upgrade is *finally* done
Upgrade is *finally* done and I sent this off to someone recently, works fine for 4.7.2 now.
============================================
BuyBlue.org
Improving the registration process
Since we launched we've received considerable user feedback and one of the largest areas has been around the registration/login process.
Last night we put some code into production to improve that process. We started with an uncontributed module by jjeff and improved on it.
Some of the notable features are:
This thing isn't quite contribution-ready yet but I plan to work with jjeff on that - so we'll see where that goes. We had to make some small changes to the profile module to get profile attributes to show up on the registration form and I'd like to find a cleaner solution to that - obviously that isn't acceptable for a contributed module.
Anyway, check it out and let us know what you think.
Admin Approval?
Have you incorporated the feature where the site admin approves the registration before any e-mail is sent to the new user?
We currently don't require
We currently don't require admin approval so that part of it hasn't been tested/considered, but that would have to be taken into account were this module to be contributed. I'm not very familiar with how things work when you have admin approval on (I've never played with it) so I'm not sure what would happen. There is probably a decent amount of work that would need to be done to make it contribution worthy.
glad to see that you have
glad to see that you have come up with a major improvement in the registration process. process of validating a user is very neat. thumbs up for the module. let us know once this module is committed to cvs.
Login Toboggan is committed
The name of the module is LoginToboggan and it has now been contributed it just doesn't show up in the modules directory yet. You can find it here: http://drupal.org/node/34309
Jeff and Chad (the original authors) incorporated my improvements and added a few additional things to make it contrib ready. I haven't yet put the new version on our site but I plan to in the near future.
Great. I suppose only the
Great. I suppose only the CVS version is available right now.
Does this module also send out an email when the admin adds the user account? This is missing in drupal right now.
Yeah it is only on the CVS
Yeah it is only on the CVS at the moment. If Drupal doesn't normally do that then the answer would be no because we didn't add that to this module. It might be a good feature request though.
Thanks. And, you can be sure
Thanks. And, you can be sure I will add that feature request:-)
Edit: I suppose the module
Edit: I suppose the module will be listed in the Issues drop down only when a tar ball has been released:(
I guess so, Jeff said it was
I guess so, Jeff said it was still "in the queue" whatever that means :) I've never contributed a module before so the process is new to me.
Tag CVS to get a release
I can't quite work out if this is the solution to the CVS issue you describe, but since there is no official release of your module project, I'll chip in:
In order to have an 'official release' - i.e. be listed on the main (4.6) drupal modules page, you need to tag your module in CVS with the appropriate tag ('DRUPAL-4-6' in this case). This will also cause a 4.6 release tarball to be created overnight as well as the 'cvs' one.
Details on CVS Tagging are available at http://drupal.org/node/1002. Hope this helps, and thanks for the documentation on the sub-tabs.
David Hamilton
http://www.jiffle.net/
How is made this?
BuyBlue.org site is really good. I am wondering how it can be make such things like:
http://www.buyblue.org/node/1898/view/summary
What informations are saved in node?
From where is taken name of company (Starbucks Corporation),
From where is taken thouse data for graph ($23,800 to Dem...)
It is some special hack of node.module? Or it is somehow many modules glue togedher?
Please help.
Thank you
D. Rama
I think you are talking
I think you are talking about the tabbed pages. Just hop over to jiffle.net. The author has put together a module based on Buyblue's work that will give you the same tabbed pages.
For the graphs, they use an opensource package. It is mentioned in the parent post of this thread.
I mean something else
I mean that exactly on this link:
http://www.buyblue.org/node/1898/view/summary
That there is:
Name of Company (Starbucks Corporation)
Brief Biography
Political Contribution
Company Discussion
So, from where these all things are?
You have some special table for saving it? Or is it some special kind of node?
Or this node 1898 is just full of snippets which taking data from some database?
Thank you for answer
:-)
D. Rama
Using custom tables.
D. Rama -
Yep we are using tables outside of the Drupal standard tables, but these are all still in the same database. A "company" is a node, so are "articles" and "executives". We take advantage of all of the things built in for nodes but as far as data goes we only use the title (for the name) and the body (for the company bio). Everything else is set up in normalized tables.
The summary page represents a lot of heavy lifting by functions in our module to summarize things in a graphical manner and of course some work is done by the theme as well.
When creating a company the module walks you through 4 or so screens allowing you to enter data before saving it all in the various tables with the proper relationships.
Hope that answers the question.
============================================
BuyBlue.org
Now it is clear to me
Thank you for answer. Now I understand. :-)
D. Rama
Hi Drama
hello,
Could you please, help me how to create tabbed pages and link the tabbed page with the URL alias.
And also I want to display the current tab as active.
With regards,
Baburaj
There is a module that
There is a module that automates this process and it is well documented. Just visit jiffle.net and download the tabbed page module.
Thanks A lot
Thank you for your reply.
I have downloaded the module and installed. But I do not know how to change the URL alias "tabbedpage/nodeid" to a meaningful URL alias.
And also I did not get a solution on how to make the current tab as active.
With regards,
Baburaj
Which are the custom tables that has to be used
Hello,
Which are the custome tables that has to be used?
It would be great if you could explain this in details, as I am new to drupal.
regards,
Baburaj
which module
rb, thanks for this wonderful explanation. in your post you say it's done by the module. which module? there's the tabbed page module but I thought that's made by someone else trying to imitate what you did. what's the name of your module? is it contributed? if it's not in cvs, is there a place we can get it? thank you.
It is done by a custom module
It is done by a custom module, a combination of our "company" module and the theme on the site. This isn't contributed or available anywhere but I can try and explain more of the details (as I understand them anyway - Matt Westgate and our graphic designer John Haas are the brains behind this).
One of the really cool things about PHP Template is that you can create a page to look any way you want it to, you can go for something completely out of the box with your data presentation. This post gets into the technical details a bit.
But basically just think about the template file being a large case statement. If variable X with value Y is passed in we want to render the page this way with this information. If that same variable is passed in with value Z we render things a different way with different info. I can try and post a few more snippets when I get home, can't access SFTP at work due to firewall issues.
============================================
BuyBlue.org
thx
thank you!
Here's an example with code
Here's an example with code, this generates the "summary" page for each company.
The code for the otther sections is similar and invoked from otehr case statements. Hope that helps.
It maybe could be cleaner (and commented) but it works :)
============================================
BuyBlue.org
Caching authenticated users ?
The site looks great.
You mentioned you cache authenticated users. Is it part of Drupal 4.7 or a tweak to the core ?
If it's a tweak could you point me to some information about it?
Nbd
CoMagz - open magazines written by their readers.
CoMagz Web Magazine - if it's interesting, find it here, if it's not here, submit it
Its part of the core in 4.7
Its part of the core in 4.7 :)
============================================
BuyBlue.org
quick question.. how did u impliment the following on every node
which module did u use and how to impliment it? tks
BuyBlue.org, a consumer advocacy issues website, is a nonprofit corporation registered in the state of California, with federal 501(c)(3) status pending. The opinions and viewpoints expressed by the authors here are their own and do not necessarily reflect the opinions of BuyBlue.org.
© 2004-2006 BuyBlue.org, All Rights Reserved. Hosting provided by Drak.net.
Footer
That's the footer, a standard part of the core settings and invoked by your theme.
You get to it through admin -> settings -> general settings. Type whatever you want in the "footer message" box.
============================================
BuyBlue.org
instructions laid out
the instructions on this page are summarized on
http://www.drupalecommerce.com/buyblue
That's pretty sweet! I'd be
That's pretty sweet! I'd be happy to try and answer what I can for people trying to emulate what the site is doing. We're also working on a bunch of really awesome stuff this year (a lot of which we are sponsoring and contributing back such as extensive development of OG and some other modules). We've also just about got everything converted to the new forms api so we can re-launch on the current codebase.
============================================
BuyBlue.org
instructions laid out
great instructions and how-to...
also, further information on FEC module would be helpful
----
Darly
FEC
The FEC module isn't publicly available right now but basically it allows you to do all of the stuff you can on their site here. You can download their data electronically for each election cycle here. The individual contributions file is just shy of 2.5 million records.
So for the module we recreated the file structure in the database, imported the records and then designed a search form to use on top of it similar (but better) than the one they offer on their site (and faster too).
The search returns records, is sortable and most notably allows us too cut and paste the record ids. We then past these into our company creation form so each company's contributions are directly tied to the FEC records.
In a future release we are planning on making the FEC search public instead of available only for our researchers.
============================================
BuyBlue.org
Workflow and Actions Module
Hello,
You have done a great job, the website is wonderful.
As you mentioned you are successfully using Actions and Workflow Module.
We are also trying to use these modules but are not successful so far.
We are using Fedora Linux 4 loaded with PHP 5.0.4 and Mysql 4.1.11 and Drupal 4.7 rc3
we have installed the modules and able to create workflows, but when I am assigning action to any workflow state, it adds all the actions to that state instead of adding the selected action frol listbox.
If you can help us to sortout this problem it would be a great help to us
Not sure that I can help out
Not sure that I can help out with that, I don't have a good understanding of the underlying code for those modules. I'd suggest filing a bug or a support request under those modules or creating a general forum topic on the subject as your quickest path to resolution.
============================================
BuyBlue.org
Thanks
Thanks for the reply, As you said both the modules are working for your site without any problem so Can you please tell us what configuration you are using (i.e. Linux Ver, PHP, MYSQL versions etc.)
Ravi
We are using PHP 5.0.5,
We are using PHP 5.0.5, MySQL 4.1.18-standard, and Fedora Core 4.
We have not however made any special configuration changes to make this work, it just does.
============================================
BuyBlue.org
thanks
thanks a lot
Ravi