HowToDoThings.com - Everyday experts solving people's problems

Gman - September 12, 2007 - 00:02

How To Do Things.com, a community sharing their expertise to solve people’s problems. After 6 months of specifications, migrations, Drupal module development, theme designing and beta testing, we are please to announce the full relaunch of HowToDoThings.com.

We house over 3500 unique member articles found in 300+ categories. We when launched the beta site, we were also one of the first sites to fully implement the Google AdSense API framework with 50% revenue sharing with our authors.

What we left behind

When we considered migrating to Drupal, we were running off of a homespun ASP.net/MSSQL/IIS based CMS. More over, an outside contractor owned all of the hosting, database and development thus making the maintenance of the site completely dependent on resources outside our company. New features would have to be built from scratch, tested and then deployed, typically taking days or weeks to implement, depending on the availability of the one contractor.

Since this situation was going to inhibit our growth opportunities with the site, we took six months to evaluate Drupal, draw up new specifications for the site (refining and extending the feature set beyond the current in-house product), test contributed modules, develop new custom modules, design and implement a new theme and migrate all the old content. Through much learning and sweat, this effort has laid a strong foundation for future growth of the site, and the dividends of using an open-source solution are starting to pay off. We have also greatly increased our in-house Drupal expertise and made a few meaningful contributions back to Drupal.

Out of the box suprises

While reviewing the features of Drupal that comes standard in the core distribution, our our editors were pleasantly suprised with and thankful for a few features:

  • Article page view counters (and the ability to sort by page views).
  • Secure Password recovery tool.
  • Revision tracking of all articles.
  • Article commenting.
  • Configurable Block content.

All these features came for free just by choosing Drupal as our CMS, and had not even been placed on in the initial requirements document.

From a developer perspective, Drupal offers us:

  • Website and form submission security (not dependent on the security knowledge of one contractor)
  • Terrific framework to extend
  • An entire support community versus one individual (one site down issue was resolved in under 4 minutes with an email to the support mailing list)
  • Open source and highly transparent development

How Drupal decreases our development cycles (from from core to contributed modules)

We installed around 50 contributed modules for various purposes around the site. Due to these well written modules, our editors are regularly suprised at the speed we are able to extend the sites functionality. Creating new workflow states or a report to list articles in a new way can be done in real time. No developement time needed, just some interacting with the admins screens is all this is needed.

Need to add rich text editing to a profile field? Just add a new rule to TinyMCE.

Want to see the difference between the original article, and the changes the author has made in the new revision? Just install and configure the diff module. organizing a demo of the diffmodule took more time than to download and install it.

Need a central place that they could manage the incoming articles, applications and other submitted content? We already had reporting views for each of these separately, so we just joined them into a new panel. Done.

An extended example

A 6 hour effort in Drupal against a 2 day coding effort plus contractor communication/management overhead.

We wanted to start a recruitment campaign to bloggers, with the obvious requirement of wanting to measure the success (or lack of success) of the campaign. We didn't want to merely measure the number of new registered users, but also their expertise applications and published articles. So we installed the Referral module and instantly could track incoming member referrals. A great start. On top of referral module, we created a module that also tracked which referral campaign (entry landing pages) the new member entered through which dovetailed neatly with the Referral module. We also created a new report that adds some addition information about the user (ie, number of articles they have published on the site). Now we can track each new referral in a new dimension, besides just which user that referred them.

The whole project including research and installation of the Referral module, adding a custom table to capture our campaign information, adding the tracking information into the referral modules reporting, and creating a new report page only took 6 hours (not counting the overhead of pushing a change to the production server). Oh the miracle of the forms, database and page rendering APIs.

Along the way, we of course hit a few snags or found a few bugs. Here is a quick list of how we tried to give back to Drupal.

Committed patches:

Patches still to be reviewed:

Looking forward to Drupal 6

Of course HowToDoThings.com is not going to be a static site, so we are looking forward to the performace increases that each iteration of Drupal gives, but there are a few specifics in Drupal 6 that we are looking into for future development of our site.

  1. Better language translations. We will going mutli-lingual with the new internationalization tools found in Drupal 6.
  2. Though we have thoroughly grown our understanding of the theming layer, the addition of the theme registry and possible node rendering improvements will greatly decrease theme updates and/or redesigns time.
  3. Looking forward to Drupal 6 working correctly behind proxies like Squid and other performance/scalability advances like conditionally loaded include files, compressed JavaScript and database master/slave configurations.

How we did it, some highlights

To integrate the Google AdSense API, we wrote a custom module to handle the processing to and from the Google servers. Using a NuSoap implementation, we are able to sign up new member to the AdSense program, and save their IDs into our system. Then we integrated the Drupal AdSense module to render the ads consistently across the site. We were hoping to contribute this module to the Drupal community, but at present it is tailors too specifically to our particular site implementation.

Our Expertise system is based off of the tac_lite module, with many custom interactions. For a member to become an expert writer in a category (and thus submit articles), we ask them to fill out an application that is reviewed by our editors (using the workflow modules to keep track of the various states an application can exist in). If approved, then the categories listed in their application grant them access to write articles in those categories. We also have an intelligent Suggested Topics area that tries to give inspiration to an author with writer's block. If they are not already approved to write in a particular category, a prepopulated application is brought up for them to complete.

Category pages are a Panels mashup of featured article CCK nodes, popular/latest views, drill down views and Taxonomy_Context output. Custom views header PHP code tie together the different areas of the pages.

We also created a site specific custom module that took care our particular initialization, logging, form alterations, custom pages, menus, blocks, and cron jobs. The 1500+ line modules is the glue that keeps the site from falling apart.

Some of the standard must have modules were included:

  • CCK (with imagefield and link field extras).
  • Service_links and forward - hoping to virally spread the word.
  • Panels - All category pages, as well as member and editor dashboards were created with this versetile tool.
  • XML Sitemap and pathauto - SEO friendly is name of the game.
  • views - A reporting engine of great value.

Incomplete list of other modules used:

  • Actions - Fire configurable emails to authors of submitted articles and other content. We can't wait for Drupal 6's implementation of actions. (add link).
  • Adsense - Help to monetize the site
  • Adsense_api (custom) - A streamlined custom implementation of the Google Adsense API. Enables members to create or associate AdSense accounts to HowToDoThings.com.
  • Diff - Enables our editors to quickly see the changes made to an article by an author.
  • Globalredirect - Helps make sure previous site links are forwarded to the new drupal paths.
  • Google_cse - Embed a Custom Search Engine from Google, while monetizing the results page slightly. Very fast and up to date.
  • Jrating - a simply great voting widget.
  • Masquerade - Excellent small tool to see the site as one of our members would see the site. Good for QA testing new logical paths through submission process of a contributor.
  • Prepopulate - a great tool to create intelligent links. Helps speed up registrations and article composition when a few key fields are automatically filled in. Also, handy for 'hidden' tracking fields.
  • Referral - Recruitment campaign tracker. With a little custom layer on top of referral we are able to track how many articles and other submissions are made by each referred member.
  • Taxonomy_breadcrumbs and taxonomy_context - Good tools to keep our strong category structure consistent through out the site.
  • Workflow - Perfect tool to create a submission/resubmission flow for articles and other submissions. Coupled with the Actions module for great efficiencies.

All said an done, we are pleased with the outcome of our migration to Drupal. With this foundation we are sure that new features and designs can be quickly implemented into the site and we are confident in the direction Drupal 6 is heading.

Great article and thankyou

denizengt - September 12, 2007 - 00:32

Great article and thankyou for contributing back with great patches and development info! I will be watching HowToDoThings.com with interest!

The site is very inviting

Prodigy - September 12, 2007 - 01:04

The site is very inviting and I will visit it myself in the future when I need to learn how to do something, which is quite often :) Could you say a little bit about theming the site? eg. basetheme (if any), problems encountered, resources..etc.

Also, what type of server is the site hosted on?

For the theming aspect of

Gman - September 12, 2007 - 05:07

For the theming aspect of the site, we contracted a designer to create the wireframes and full Photoshop files. We then used a parts of the Garland and Bluemarine themes as starters for our theme. But with over 50 separate wireframes to theme to, we created a custom module that worked a ton of hook_form_alter magic. Then theme overrides, numerous node templates, an extensive template.php (function _phptemplate_variables()) and CSS took us the rest of the way.

I have heard the rule that every 3 days of development work will entail 2 days of theming, and I think that is about right.

As part of the relaunch we have upgraded our hardware a dedicated box with 3GB RAM and dual processors. We have developed a dozen other Drupal sites and many other static sites, which are all hosted by the same box. But howtodothings.com is definitely our flagship site.

----------
Blog
How To Do Things.com

You did a great job! Your

gunwitch - September 14, 2007 - 00:35

You did a great job!
Your site is an awesome example of Drupal's flexibility: the only thing, which give Drupal-based engine away is a mathematical question on "Become a Member" page :)

I wish you luck and keep it up!

• • • • • • •
¤ Ebay Blog.net Profitable eBay Niches for Making Money Selling Online
¤ BuyOCR.com: ABBYY FineReader 8.0 Professional & FR 7 Home :: ABBYY Lingvo 12 Dictionary

Site resources

BioALIEN - September 15, 2007 - 21:57

Gman, thanks for the great write up. It's full of good useful suggestions, the exact thing people want to read before embracing Drupal.

Please keep us updated on the site & server resources. It will be interesting to read how you tackle issues with high growth, especially for a site that requires authenticated users.

---
Dee
iScene Interactive :: iScene.eu

Perfect site, and perfect

sanlouisfeng@dr... - September 12, 2007 - 02:43

Perfect site, and perfect article, thanks for what you've done for the community! :)

Very good-looking

zeta ζ - September 12, 2007 - 04:18

Very good-looking site: clean design and helpful UI showing context of article within site. Also, scales well when you increase the font size.

May I suggest two things?

  1. When you click on a category, and get a list of articles, the category is highlighted. When you click on an article, the appearance of the categories remains the same. If the category ‘expanded’ to list the articles, I would expect the article to be highlighted and not the category. Maybe you could indicate the category differently, depending on whether an article or list of articles is displayed.
  2. The Typogrify module: a must for any text-rich (and not-so-rich) site. Can elevate the presentation of your text to match your design

Wow!

Amarnath - September 12, 2007 - 05:24

Great! Very impressive.

Modules used for User Profiles

uzbekjon - September 12, 2007 - 08:12

Nice work Gman,

This kind of articles always interesting. You can always find something new about the modules you've seen but never used. So thanks for this article.

User profiles' are always interesting :) Are you using core profile module or other modules like nodeprofile, etc.?

Thanks in advance,
Uzbek.

-------------------------------
Sites for uzbeks and Uzbekistan:
Uzbek Lyrics Database
Uzbekistan Forum

Nice site...

J.B - September 12, 2007 - 09:14

...nice article!

Thanks for taking the time to explain it, very interesting.
JB

Voting stars

lakyljuk - September 12, 2007 - 09:49

I dont know if it is bug, or you left it that way intentionaly, but voting stars click have no limit - I can click as many times as I want and every click is counted in Average rank. I think that every user should have only one vote and after vote saved, user could have only chance to change previous vote, not to vote again.

It does give the appearance

Gman - September 13, 2007 - 19:13

It does give the appearance that you describe, but what is actually saved is only one vote. If you refresh the screen, the vote will only go up by one. If you then change your vote, it will update the average vote, but the count will not increase. This is done handled in the backend by the Voting API module, anonymous voting options.

----------
Blog
How To Do Things.com

Sorry, I see something

lakyljuk - September 14, 2007 - 09:38

Sorry, I see something different - I clicked 20 times and every vote was counted, stars appearance changed in Average vote. Then I reloaded page many times - my votes still there (working in Opera). Then I opened page in IE and displayed article - the count is still the same as in Opera, all my 20 votes are there.

Great looking site. What did

esllou - September 12, 2007 - 10:51

Great looking site. What did you use for the "E-mail to a friend"? Is that custom built or adaptation of a drupal module?

uzbekjon, the user profile

Gman - September 12, 2007 - 21:38

uzbekjon, the user profile is actually the core profile module, but that choice is one regret we have. We now want to be able to place a workflow on the profiles, so we can check changes and make sure they are still of high quality. The best way to do that is with one of the node profile modules. Something we may revisit when we upgrade to Drupal 6.

esllou, the email friend like (and the print link) are we added via theming, but the email friend functionality is provided by the Feedback module. Some major CSS and form alters went into the creating the look of the email page.

----------
Blog
How To Do Things.com

Congrats on the redesign...

rszrama - September 12, 2007 - 10:57

Congrats on the redesign... I remember checking it in development and being impressed. Thanks for taking the time to write out the article, and good luck with your future projects Gman!

----------------------
Drupal by Wombats
Current Drupal project: http://www.ubercart.org

Thanks for the writeup

Cross_and_Flame - September 12, 2007 - 12:26

I like reading these writeups, especially the list of contributed patches or issues as you "give back" to the drupal community.

That's what this is all about!

Great writeup!

FiReaNG3L - September 12, 2007 - 13:59

Tons of details but we would want more! :) Could you consider posting about small details like problems encountered with modules, customization done, etc? Also, will you consider sharing your custom Adsense_api module? :)

Also, the design is really great!

---
Biology Articles

Writing so much detail takes

Gman - September 12, 2007 - 21:43

Writing so much detail takes time. Especially for us coders, English is the second language. But really, some of our trouble were more internal to the company, expectations, project management, realistic timelines..... We definitely learned that a large scale migration, full theme design, module implementation and development for a big site must be handled differently than the fly by night methods of developing a small site. Right now I am not planning on diving into more detail, but if you have specific question I will try to answer then.

As for the AdSense API module, the current implementation is rather site specific. Much of the code includes hard coded design options that fit our needs, instead of implementing admin interfaces for many options. Also, Google has upped the pageview limit to 100,000 pages a day, which affectively kill any widespread adoption of the module, even if we did spend the time to polish it to Drupal.org standards.

----------
Blog
How To Do Things.com

I really like the legal

esllou - September 12, 2007 - 14:08

I really like the legal agreement pop-up you have on registration too. Is that CSS/ajax??

http://drupal.org/project/legal

christefanø - September 12, 2007 - 15:51

I think that's done with the Legal module.

You are correct, it is the

Gman - September 12, 2007 - 21:46

You are correct, it is the Legal module, but for the popup, we used a custom implementation of the Greybox module. We use it also to show the revision history in a popup for our editors.

----------
Blog
How To Do Things.com

How were you able to get the

esllou - September 12, 2007 - 22:09

How were you able to get the Legal page without the usual site graphics, footers and headers? Is it in another directory?

I just installed greybox. When you click a link, the pop-up opens in a very jittery way, pretty slowly and then takes a few seconds to close too. How did you make it so smooth and fast?

Good point. A few places in

Gman - September 12, 2007 - 22:44

Good point. A few places in the site, we have flags that mark a page to strip out the extra stuff from the page. We use the function _phptemplate_variables($hook, $vars = array()) function in our template.php file to set the $vars['template_file'] variable to a 'content-only' template. So the legal page is set to 'content-only' in our theme.

This article by Lullabot, Hacking phptemplate gives a good guide for doing something like this.

great usage

-phd - September 15, 2007 - 05:27

Great usage of Greybox module. I'm thinking to use this with next site.

Thanks

Steven_NC - September 12, 2007 - 15:32

Thank you for taking the time to share your site, tools, and strategy. I wish more SuperDrupers would do this. This article will spawn days of reading for those of us who are new to Drupal and CMS. Thanks again.

Opera

Michelle - September 13, 2007 - 02:47

FYI - The layout is messed up in Opera.

Michelle

--------------------------------------
Drupal articles and tutorials: http://shellmultimedia.com
Current project: http://couleeregiononline.com/

interesting site

chlobe - September 13, 2007 - 06:28

great design and really pulls together some of the better functionality in Drupal. Well done and thanks for sharing.

Which parts are breaking? I

Gman - September 13, 2007 - 17:16

Which parts are breaking?

I downloaded the Opera browser for Windows, and it doesn't appear to messing up. Maybe the Windows version behaved differently than the one you have?

I must admit that we checked for IE7, IE6, FF (Mac and PC) and Safari (Mac and PC) compatibility, but not Opera.

----------
Blog
How To Do Things.com

Opera

Michelle - September 14, 2007 - 03:59

I'm using Opera on Windows XP. On the front page, there is a large white space to the right of the left sidebar and all the "blocks" of content on the page show up underneath starting way on the left under the sidebar.

Michelle

--------------------------------------
Drupal articles and tutorials: http://shellmultimedia.com
Current project: http://couleeregiononline.com/

For what it's worth, on OS X

marky - September 27, 2007 - 01:56

For what it's worth, on OS X Opera 9.23 displays your site exactly the same as Firefox and Safari, and it's the current version. Perhaps Michelle is using an older version?

Great site, by the way!

--
/marky

Nope

Michelle - September 27, 2007 - 04:04

I've got the latest but I'm on Windows. And it's still broken. Just checked.

Michelle

--------------------------------------
Drupal articles and tutorials: http://shellmultimedia.com
Current project: http://couleeregiononline.com/

Great one!

najibx - September 13, 2007 - 11:02

Hey Gman,
Thank you for great information and contribute back to the community.
About the categories, It looks like the left sub-category is not identical with one Browse All Categories's sub category, since this one is showing Latest Articles rather than displaying categories.

Anyway, how these are done? all with Taxonomy_context and Taxonomy_breadcrumbs? Not taxonomy_menu?

-najibx-

The Browser All Categories

Gman - September 13, 2007 - 16:59

The Browser All Categories page is a custom page that actually displays 17 views with a direct function call. It displays the latest articles in each main category.

The left navigation is a slight modification of the taxonomy context module. We are not sure if our 'update' is universally desirable, so we haven't submitted a patch to create an option for this layout.

No menu listing module did exactly what we wanted. Both taxonomy_menu and taxonomy_context were close, but we choose taxonomy_context due the need to update it the least to get our navigation concept working.

----------
Blog
How To Do Things.com

Browser Each Categories

najibx - September 29, 2007 - 16:19

Since then I was scratching my head trying to trying to work on it but no real success. I get the taxonomy_context work with OG_vocab though.

I have a similar requirement like yours. Rather than using the default taxonomy/term/xx pages which is translated into a URL friendly i.e in your case: /automotive/auto-financing-insurance, I wish to have own panel for /automotive as well as another for /automotive/auto-financing-insurance so I can put other things in Panel. I tried using "panel_taxonomy" but still no good. Also, what's a good option for calling another related node for the respective term? I tried CCK node reference. it works but why can't I just use the term, rather to a create cck field (node reference) and choose which node it is related to.

Can you share how you did yours? For categories sections, how many panels do you have? I am still confuse, how to pass argument in panel and how to sent that argument to work with views. Separately, I am quite comfortable, but integrate Panels and Views together, i am confused.

I would greatly appreciate your comment....

-najibx-

We have over 80 panels

Gman - September 30, 2007 - 21:25

We have over 80 panels defined. But since they are just interpretations of 2 panels, with slightly different content, if did a database Insert to speed up the panel definitions. Panel_taxonomy wasn't around when we started that portion of the project, and I still haven't tried using it, so I can't comment on it.

If you give the URL of the panel to be /taxonomy/term/XX, then it will override any view or the default taxonomy display for that page. For included views that are based on the taxonomy, just place %2 in the panel portion of View arguments. The view should then use that as the argument for the view filter when displaying that view in the panel.

----------
Drupal Blog
Dog Parks via Drupal

Thanks for sharing so much with us. Question on Google CSE.

Walt Esquivel - September 14, 2007 - 16:52

Thank you so much for taking the time to share with us so many things you and your firm experienced on the way to a successful relaunch.

I very much enjoyed reading your writeup and hope it will encourage others to, likewise, share with the Drupal community how they went about planning, designing, and launching their respective web sites.

I have one question. Why did you choose Google Custom Search Engine over Google Search? I've read both module descriptions but am still confused on when to use which module, so any clarification you can provide would be very much appreciated. Thanks in advance.

Keep up the good work Gman! I wish you and your firm continued success.

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Actually that is one

Gman - September 24, 2007 - 18:25

Actually that is one question I can't really answer. I didn't do an overall review of both modules. We tried the CSE module first and it fit all our needs, so I didn't bother checking the Google Search module.

A quick look at the code and the CSE has many more options, and displays the search results in a themed page on the site (with have a few configuration options for it). This was the main reason we went with the CSE module.

Greg
----------
Drupal Blog
Dog Parks via Drupal

Thanks for article and site!

kollega - September 18, 2007 - 20:49

Gman, tell us about drill down views in Categories pages! What did you do to make 'Browse Categories in (Taxonamy Term Name)' views automaticly and paste it to page? Did you really make all categories manually with Panels module?
I would like to make same views for each term in one of my vacubalaries, but don't want to make them manually!

What about front page? did you use Panels again ( what Layout did you use?) ?

Thanks for your answers! ;)

Since for the front page, we

Gman - September 19, 2007 - 18:10

Since for the front page, we wanted exact control, we made a new template and 6 block regions that are just used on the front page.

The Browse Category page is a PHP page that calls a function that finds all the top level categories and then calls a view (which displays the latest three articles) for each category found.

For the category pages, first we over-rode the /taxonomy/term/# path with a custom view that displayed the latest articles.

For the second level category pages, we created a specific /taxonomy/term/1 Panel that over-wrote the View we made. This panel included the popular articles, latest articles and a call similar to the Browse Category page, to retrieve the subcategories and the latest articles in each. Since the views take arguments from the URL, I just needed to copy the panel over an over again with a different path to get the needed category pages.

For the first level categories, we did a similar thing, but we added a CCK node on the top to include some featured articles and other stuff.

Lots of custom code, View header/footer code holds it all together. But once you learn how to call a view pro grammatically, a new kind of creativity can kick in. Kudos again to merlinofchaos for the creating the Views and Panels modules.

----------
Blog
How To Do Things.com

Hello, very nice idea.

Deeporange1 - September 19, 2007 - 02:09

Hello, very nice idea.

Out of curiosity though, why only 50% revenue sharing? The thing is, a sizable portion of people aren't even Google Adsense members. Not to mention that fact that you share no revenue on any of the main taxonomy pages (front page, term pages, etc...), only end nodes, and a great deal of the traffic is going to be routed through the site via taxonomy pages.

This realization is why my brother and I give 70% for content and 30% of referred content. Of course, you actually have some content already. We do not. Ha, so I guess it doesnt really matter. Kudos on your project though. I am glad to see that it is a hit with the community. Getting on the front page is a big deal.

Best regards, Derek Webb
http://makefunds.com
eCommerce made easy!

Makefunds.com is hosted with SimpleHost.

Need help? Want to help? Makefunds is there!

Thanks for

JoepH - September 21, 2007 - 16:44

Thanks for sharing!

-----------------------------------------
Joep
CompuBase, Drupal websites and design

Isn't AdSense sharing

esllou - September 23, 2007 - 12:47

Isn't AdSense sharing extremely risky? You risk getting your whole account blocked by G because you are giving an incentive to users to:

1. Create spammy content in an effort to get higher paying ads displayed on "their" pages.
2. Clicking on their own ads.
3. Getting family and friends to click on their own ads.

If you want to read a thousand sob stories from webmasters who implemented similar schemes and got burned badly, go to webmasterworld.com and do a search for "banned adsense". Might change your mind about allowing this.

How?

Michelle - September 23, 2007 - 13:42

I'm pretty new at adsense... Wondering how this would affect the site owner's account? Since the ads would show up under the individual users adsense accounts, how would Google even know that the ads are on a site belonging to another adsense user?

I was thinking of adding this to my own site, so I want to make sure I'm not going to get myself in trouble.

Michelle

--------------------------------------
Drupal articles and tutorials: http://shellmultimedia.com
Current project: http://couleeregiononline.com/

You don't think G knows

esllou - September 23, 2007 - 20:07

You don't think G knows exactly which URL every click and every impression comes from? (BTW, their newish "allowed sites" feature is proof enough they can easily and do easily track where every click/impression comes from:URLs we're talking here, not accounts)

It's true that your members put THEIR code onto your pages, but your site could quickly become a "bad neighborhood" and a source of invalid clicks. Especially if you're a pretty small fish (and we're talking pretty much anything under 2-3 grand a month), it's not worth G's time in resolving a problem if a couple of banned accounts have already caused problems on your site's URL. They've been shown to take the quick route in this situation...ban accounts and ask questions later.

Personally speaking, I wouldn't touch AdSense revenue sharing with a very long barge pole. The huge potential disadvantages heavily outweigh the very limited advantages.

There is a certain amount of

Gman - September 24, 2007 - 01:47

There is a certain amount of insulation from abuse that is given by using the AdSense APIs.

You may be correct if you are using the Drupal AdSense module with revenue sharing, which works more as you describe. In the AdSense API method, both your publisher ID and the writer's is sent to Google. Both IDs are saved and the revenue is split on the backend by Google. Thus and exact % is given, instead of the approximate sharing that is resulted from the random number distribution method.

Unfortunately, the AdSense API is now only available to site that have 100K pageviews a day.

----------
Drupal Blog
Dog Parks via Drupal

revenue sharing model

TheSterlingJoe - October 6, 2007 - 07:23

I am interested in learning more abou the revenue sharing model. How does revenue sharing model act as motivation for contributiors and support the howtodothings.com operation?

Is it effective?

Thanks for all the insights

gpk - September 23, 2007 - 17:16

--- will return to this informative article in the days ahead.

Incomplete list of other modules used:

...
* Globalredirect - Helps make sure previous site links are forwarded to the new drupal paths.

Do you mean path redirect? I thought global redirect was more to do with preventing multiple URLs resolving to the same content, e.g. by making a node redirect to its URL alias if accessed via node/xx.

gpk
----
www.alexoria.co.uk

You are correct. We use it

Gman - September 24, 2007 - 01:51

You are correct. We use it to make sure that no 'node/###' URL or other such system URLs get in the index. PathAuto sets up the aliases.
We accomplish mapping the old systems URLs to the new URLS via a custom init hook.

----------
Drupal Blog
Dog Parks via Drupal

mapping the old systems

gpk - September 24, 2007 - 19:48

mapping the old systems URLs to the new URLS via a custom init hook.

Ah, this is basically what path redirect does, works very nicely too if I may say!

Cheers,

gpk
----
www.alexoria.co.uk

Thanks for

godnews - September 27, 2007 - 03:21

Thanks for sharing!

nice writeup!!!

Sree - September 27, 2007 - 13:29

nice writeup!!! ....

Thanks!

kand - September 27, 2007 - 14:34

Thanks!

Very impressive...

Jacine - September 29, 2007 - 19:27

You really did an awesome job.

I love the category pages. The layout is very smart and it showcases the popular and new content quite well. The panels look great, and the star rating and RSS buttons for each category are a nice touch.

Congratulations on a job well done :)

The RSS buttons were a bit

Gman - September 30, 2007 - 21:16

The RSS buttons were a bit of a pain. Had to use the views header field to write the header CSS and the RSS button with the correct link. Of course, once you have it working for one, it works for all of them. But nearly every single View we have includes PHP code in either the header or the footer.

----------
Drupal Blog
Dog Parks via Drupal

 
 

Drupal is a registered trademark of Dries Buytaert.